Compare commits
50 Commits
v7.0.0.4-b
...
v7.1.1.1-b
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e52de1d1a7 | ||
|
|
7c38e823c1 | ||
|
|
e6defd3e55 | ||
|
|
3caf4f2cb3 | ||
|
|
3f897b12cf | ||
|
|
12d0126dd5 | ||
|
|
b218619b2b | ||
|
|
ae80076f36 | ||
|
|
ae9c69e469 | ||
|
|
cfd2919e88 | ||
|
|
985460d98e | ||
|
|
7596d988b9 | ||
|
|
50cad04b47 | ||
|
|
457d93b5c4 | ||
|
|
bb2af95344 | ||
|
|
34e76946f3 | ||
|
|
3f52c1255e | ||
|
|
924e32f027 | ||
|
|
2f735215e0 | ||
|
|
23ed1457d5 | ||
|
|
52214c1e15 | ||
|
|
09de4a5e05 | ||
|
|
69a6754483 | ||
|
|
078756600e | ||
|
|
5e2c7055d4 | ||
|
|
eb265be0a4 | ||
|
|
ad74acae0f | ||
|
|
d325cf1165 | ||
|
|
39bace76d3 | ||
|
|
44e8ef7cd8 | ||
|
|
85e4e3f9df | ||
|
|
ad94042a2c | ||
|
|
304fe58f27 | ||
|
|
edcd8be662 | ||
|
|
3970d5c0c2 | ||
|
|
4451eafe71 | ||
|
|
1c799fd474 | ||
|
|
17e25619da | ||
|
|
a4376b1492 | ||
|
|
d41faad9d9 | ||
|
|
0e6116b478 | ||
|
|
789127e8ff | ||
|
|
6ef9f32d4f | ||
|
|
1048dbed40 | ||
|
|
86c823bfde | ||
|
|
764f00ed3a | ||
|
|
3e4ea03437 | ||
|
|
0ef679e00d | ||
|
|
7f2bf2e905 | ||
|
|
ab8a8d5a35 |
6
.github/workflows/build.yml
vendored
@@ -50,17 +50,17 @@ jobs:
|
||||
msbuild MpvNet.sln /m /p:Configuration=Debug
|
||||
- name: Create .mo files for localization
|
||||
shell: pwsh
|
||||
run: Install-Package Gettext.Tools -Force; .\lang\create-mo-files.ps1
|
||||
run: Install-Package Gettext.Tools -Force; $env:Path = ((Get-Package Gettext.Tools).Source | Split-Path) + '\tools\bin;' + $env:Path; .\lang\create-mo-files.ps1
|
||||
- name: Download libmpv # In principle, only update this binary file when significant feature changes occur in mpv/mpv.net
|
||||
shell: msys2 {0}
|
||||
run: |
|
||||
wget -nv -O libmpv.7z https://downloads.sourceforge.net/mpv-player-windows/mpv-dev-x86_64-20231203-git-f551a9d.7z
|
||||
wget -nv -O libmpv.7z https://github.com/zhongfly/mpv-winbuild/releases/download/2024-07-14-202ecc1/mpv-dev-x86_64-20240714-git-202ecc1.7z
|
||||
7z x -y libmpv.7z -olibmpv
|
||||
cp -f libmpv/libmpv-2.dll src/MpvNet.Windows/bin/Debug/ || true
|
||||
- name: Download MediaInfo
|
||||
shell: msys2 {0}
|
||||
run: |
|
||||
wget -nv -O MediaInfo.7z https://mediaarea.net/download/binary/libmediainfo0/23.11/MediaInfo_DLL_23.11_Windows_x64_WithoutInstaller.7z
|
||||
wget -nv -O MediaInfo.7z https://mediaarea.net/download/binary/libmediainfo0/24.03/MediaInfo_DLL_24.03_Windows_x64_WithoutInstaller.7z
|
||||
7z x -y MediaInfo.7z -oMediaInfo
|
||||
cp -f MediaInfo/MediaInfo.dll src/MpvNet.Windows/bin/Debug/ || true
|
||||
- name: Download mpvnet.com file
|
||||
|
||||
32
README.md
@@ -6,7 +6,7 @@
|
||||
🎞 mpv.net
|
||||
==========
|
||||
|
||||
mpv.net is a media player for Windows that has a modern GUI.
|
||||
mpv.net is a media player for Windows with a modern GUI.
|
||||
|
||||
The player is based on the popular [mpv](https://mpv.io) media player.
|
||||
mpv.net is designed to be mpv compatible, almost all mpv features are available,
|
||||
@@ -56,6 +56,7 @@ Table of contents
|
||||
- [Download](#download)
|
||||
- [Manual](#manual)
|
||||
- [Screenshots](#screenshots)
|
||||
- [Contributing](#contributing)
|
||||
|
||||
|
||||
Features that mpv and mpv.net have in common
|
||||
@@ -66,7 +67,7 @@ Features that mpv and mpv.net have in common
|
||||
- JSON IPC to control the player with a external programs
|
||||
- On Screen Controller (OSC, play control buttons) with modern flat design
|
||||
- Command Line Interface
|
||||
- Started from a terminal status, error and debug output is printed on the terminal
|
||||
- Started from a terminal, status, error and debug output is printed on the terminal
|
||||
- DXVA2 video decoding acceleration
|
||||
- Video output capable of features loved by videophiles, such as video scaling with popular high quality algorithms, color management, frame timing, interpolation, HDR, and more
|
||||
- Browser extensions to start mpv.net from the browser
|
||||
@@ -85,14 +86,11 @@ Features exclusive to mpv.net
|
||||
|
||||
- Very high degree of mpv compatibility, almost all mpv features are available
|
||||
- Modern graphical user interface with customizable color themes
|
||||
- Customizable context menu defined in the same file as the key bindings
|
||||
- Customizable context menu
|
||||
- Searchable config editor
|
||||
- Searchable input (shorcut keys) editor
|
||||
- C# and PowerShell Scripting
|
||||
- Global keyboard shortcuts
|
||||
- Extension API for .NET languages (C#, VB.NET and F#)
|
||||
- Portable, MS Store or WinGet download and installation
|
||||
- File history feature to log time and filename
|
||||
- Files can be enqueued from File Explorer
|
||||
|
||||
|
||||
@@ -111,6 +109,11 @@ Features exclusive to mpv.net
|
||||
[The mpv.net documentation.](docs/manual.md)
|
||||
|
||||
|
||||
## [Contributing](docs/contributing.md)
|
||||
|
||||
[Contributing section of the manual.](docs/manual.md#contributing)
|
||||
|
||||
|
||||
Screenshots
|
||||
-----------
|
||||
|
||||
@@ -121,27 +124,16 @@ Screenshots
|
||||
|
||||
#### Context Menu
|
||||
|
||||
Context menu using dark mode.
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
#### Config Editor
|
||||
|
||||
Searchable config editor as alternative to edit the conf file manually.
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
#### Terminal
|
||||
|
||||
OSD console and status printed on the terminal.
|
||||
|
||||

|
||||
|
||||
|
||||
#### Input Editor
|
||||
|
||||
Searchable key and mouse binding editor.
|
||||
|
||||

|
||||

|
||||
|
||||
@@ -1,4 +1,60 @@
|
||||
|
||||
# v7.1.1.1 Beta (2024-07-20)
|
||||
|
||||
- Korean, Russian and Turkish translation added, Japanese translation fixed. Thanks to the translation team!
|
||||
- Action/Workflow/Auto build fix and update.
|
||||
- New default bindings and menu items for select.lua which is a new simple mpv built-in command palette script.
|
||||
In the context menu select.lua features can be found under `View > On Screen Menu`.
|
||||
https://github.com/mpv-player/mpv/blob/master/player/lua/select.lua
|
||||
- New PowerShell script 'Tools\release-mpv.net.ps1' used to releases mpv.net on GitHub.
|
||||
- Fix DVD ISO file support.
|
||||
- MediaInfo updated to version v24.6.
|
||||
- New ARM64 support.
|
||||
- New zhongfly libmpv x64 build.
|
||||
- New Andarwinux libmpv ARM64 build.
|
||||
|
||||
|
||||
# v7.1.1.0 (2024-02-03)
|
||||
|
||||
- Chinese and Japanese translation updated. Thanks to the translation team!
|
||||
- Fix command line arguments being ignored in some situations.
|
||||
|
||||
|
||||
# v7.1.0.0 (2024-01-12)
|
||||
|
||||
- The menu item that shows profiles was moved into the menu item that lists profiles.
|
||||
- Fix geometry not working when used from mpv.conf and the conf editor.
|
||||
- GitHub Auto/Action/Workflow builds use a newer libmpv build.
|
||||
- German and Chinese translation updated. Japanese translation added. Thanks to our translation team!
|
||||
- New PowerShell script Tools/update-mpv-and-libmpv.ps1 to update mpv and libmpv.
|
||||
- Context menu supports audio device selection (Audio > Audio Device)
|
||||
- New option `remember-audio-device` to save and restore the audio device chosen in the context menu.
|
||||
- New zhongfly libmpv build.
|
||||
|
||||
|
||||
# v7.0.0.6 Beta (2024-01-02)
|
||||
|
||||
- Improved backward compatibility with input.conf files created by old versions.
|
||||
|
||||
|
||||
# v7.0.0.5 Beta (2023-12-28)
|
||||
|
||||
- Fix mpv.net option `language` not working from command line.
|
||||
- Chinese and German translation updated.
|
||||
- More libplacebo options added.
|
||||
- Support of the mpv option `title-bar`.
|
||||
- Video being less often rendered with black line at the bottom.
|
||||
- The conf file reader/writer detects if the user prefers space before and after the equal sign.
|
||||
- The portable download includes like the installer debug symbols.
|
||||
- Setup questions on startup removed.
|
||||
- Pressing shift while drag and drop appends instead of replaces
|
||||
files in the playlist. mpv supports this as well.
|
||||
- New menu item and binding: `File > Add files to playlist from clipboard` `Ctrl+Shift+v`.
|
||||
- All list operation suffixes are available on the command line.
|
||||
- Improved layout in conf editor.
|
||||
- New zhongfly libmpv build.
|
||||
|
||||
|
||||
# v7.0.0.4 Beta (2023-12-19)
|
||||
|
||||
- When mpv.net is started for the first time from a new startup location,
|
||||
@@ -1041,4 +1097,4 @@ stable release, no changes since the last beta
|
||||
|
||||
- new feature added to manage file associations from within the app. It can be found in the menu at: Tools > Manage... [Default Binding](https://github.com/mpvnet-player/mpv.net/blob/main/mpv.net/Resources/input.conf.txt#L149)
|
||||
- new zip download option added
|
||||
- new x86 download option added
|
||||
- new x86 download option added
|
||||
|
||||
|
Before Width: | Height: | Size: 272 KiB |
BIN
docs/img/ConfEditor.webp
Normal file
|
After Width: | Height: | Size: 243 KiB |
|
Before Width: | Height: | Size: 251 KiB |
|
Before Width: | Height: | Size: 442 KiB After Width: | Height: | Size: 429 KiB |
|
Before Width: | Height: | Size: 536 KiB |
BIN
docs/img/Menu.webp
Normal file
|
After Width: | Height: | Size: 148 KiB |
|
Before Width: | Height: | Size: 355 KiB |
BIN
docs/img/Terminal.webp
Normal file
|
After Width: | Height: | Size: 139 KiB |
@@ -27,7 +27,7 @@ Table of contents
|
||||
* [Environment Variables](#environment-variables)
|
||||
* [user-data](#user-data)
|
||||
* [Context Menu Commands](#context-menu)
|
||||
|
||||
* [Contributing](#contributing)
|
||||
|
||||
About
|
||||
-----
|
||||
@@ -92,14 +92,14 @@ Before making a support request, please try the newest [beta version](../../../r
|
||||
|
||||
Support can be requested here:
|
||||
|
||||
Beginner questions:
|
||||
|
||||
https://www.reddit.com/r/mpv
|
||||
|
||||
mpv.net bug reports, feature requests and advanced questions:
|
||||
|
||||
https://github.com/mpvnet-player/mpv.net/issues
|
||||
|
||||
Beginner mpv questions:
|
||||
|
||||
https://www.reddit.com/r/mpv
|
||||
|
||||
Advanced mpv questions:
|
||||
|
||||
https://github.com/mpv-player/mpv/issues
|
||||
@@ -151,7 +151,7 @@ and context menu design fixing it.
|
||||
In v7 no input.conf file is created, the default bindings and
|
||||
context menu is defined internally. input.conf only contains
|
||||
what is different from the internally defined defaults,
|
||||
so it works the same it work with mpv.
|
||||
so it works the same as it works in mpv.
|
||||
|
||||
For backward compatibility the old input.conf context menu
|
||||
format with the menu definition using `#menu: ` is still
|
||||
@@ -213,6 +213,9 @@ mpv.net commands are used when mpv commands don't exist or lack a feature.
|
||||
### add-to-path
|
||||
Adds mpv.net to the Path environment variable.
|
||||
|
||||
### remove-from-path
|
||||
Removes mpv.net from the Path environment variable.
|
||||
|
||||
### edit-conf-file [mpv.conf|input.conf]
|
||||
Opens mpv.conf or input.conf in a text editor.
|
||||
|
||||
@@ -241,10 +244,13 @@ Shows a folder browser dialog to open a DVD or BD folder.
|
||||
ISO images don't have to be mounted, but instead can be
|
||||
opened directly with the open-files command.
|
||||
|
||||
### open-clipboard
|
||||
### open-clipboard [\<flags\>]
|
||||
Opens a single URL or filepath from the clipboard,
|
||||
or multiple files in the file clipboard format.
|
||||
|
||||
**append**
|
||||
Appends files/URLs to the playlist.
|
||||
|
||||
### play-pause
|
||||
Cycles the pause property. In case the playlist is empty,
|
||||
the most recent file from the recent files list is loaded.
|
||||
@@ -267,6 +273,21 @@ Shows available audio devices in a message box.
|
||||
### show-commands
|
||||
Shows available [mpv input commands](https://mpv.io/manual/master/#list-of-input-commands).
|
||||
|
||||
### show-properties
|
||||
Shows available [properties](https://mpv.io/manual/master/#properties).
|
||||
|
||||
### show-keys
|
||||
Shows available [input keys](https://mpv.io/manual/master/#options-input-keylist).
|
||||
|
||||
### show-protocols
|
||||
Shows available [protocols](https://mpv.io/manual/master/#options-list-protocols).
|
||||
|
||||
### show-decoders
|
||||
Shows available decoders.
|
||||
|
||||
### show-demuxers
|
||||
Shows available demuxers.
|
||||
|
||||
### show-conf-editor
|
||||
Shows the conf editor.
|
||||
|
||||
@@ -292,15 +313,6 @@ Shows media info with raw property names.
|
||||
### show-menu
|
||||
Shows the context menu.
|
||||
|
||||
### show-playlist
|
||||
Shows the playlist in a message box. For a playlist menu
|
||||
the following user scripts exist:
|
||||
|
||||
- https://github.com/stax76/mpv-scripts#command_palette
|
||||
- https://github.com/stax76/mpv-scripts#search_menu
|
||||
- https://github.com/tomasklaen/uosc
|
||||
- https://github.com/jonniek/mpv-playlistmanager
|
||||
|
||||
### show-profiles
|
||||
Shows available profiles with a message box.
|
||||
|
||||
@@ -336,6 +348,10 @@ to create global keyboard shortcuts with AutoHotkey. Requires [process-instance=
|
||||
|
||||
### Audio
|
||||
|
||||
#### --remember-audio-device=\<yes|no\>
|
||||
|
||||
Save and restore the audio device chosen in the context menu. Default: yes
|
||||
|
||||
#### --remember-volume=\<yes|no\>
|
||||
|
||||
Save volume and mute on exit and restore it on start. Default: yes
|
||||
@@ -451,7 +467,7 @@ Enable this only when a developer asks for it. Default: no
|
||||
User interface display language.
|
||||
mpv.net must be restarted after a change.
|
||||
|
||||
Interested joining our translation team?:
|
||||
Work on the translation is done with transifex:
|
||||
https://app.transifex.com/stax76/teams/
|
||||
|
||||
#### --dark-mode=\<value\>
|
||||
@@ -603,7 +619,7 @@ visible, even when mpv.net is started from the terminal and music is played.
|
||||
For mpv.net it's currently not possible to find out where OSC menus are located,
|
||||
but there are 3 features that require this information, therefore mpv.net
|
||||
makes the assumption that near the window borders might be OSC menus. As a result
|
||||
the following three features, work only when invokes from the center of the window:
|
||||
the following three features, work only when invoked from the center of the window:
|
||||
|
||||
1. Window dragging (moving the window with the mouse).
|
||||
2. Showing the context menu.
|
||||
@@ -625,6 +641,7 @@ https://mpv.io/manual/master/#window
|
||||
- [ontop](https://mpv.io/manual/master/#options-ontop)
|
||||
- [screen](https://mpv.io/manual/master/#options-screen)
|
||||
- [snap-window](https://mpv.io/manual/master/#options-snap-window)
|
||||
- [title-bar](https://mpv.io/manual/master/#options-title-bar)
|
||||
- [title](https://mpv.io/manual/master/#options-title)
|
||||
- [window-maximized](https://mpv.io/manual/master/#options-window-maximized)
|
||||
- [window-minimized](https://mpv.io/manual/master/#options-window-minimized)
|
||||
@@ -649,12 +666,17 @@ https://mpv.io/manual/master/#window
|
||||
|
||||
Initial window location in percent. Default: 50:50 (centered)
|
||||
|
||||
Requires Windows 11, on Windows 10 it works slightly incorrect due to invisible borders.
|
||||
|
||||
x=0 docks the window to the left side.
|
||||
x=100 docks the window to the right side.
|
||||
|
||||
y=0 docks the window to the top side.
|
||||
y=100 docks the window to the bottom side.
|
||||
|
||||
#### --title-bar=\<yes|no\>
|
||||
|
||||
Shows the window title bar. Default: yes
|
||||
|
||||
**mpv.net specific window features:**
|
||||
|
||||
@@ -731,8 +753,8 @@ Blu-ray and DVD ISO image files are supported.
|
||||
|
||||
### Open > Open URL or file path from clipboard
|
||||
|
||||
Opens files and URLs from the clipboard. How to open URLs directly
|
||||
from the browser from sites like YouTube is described in the
|
||||
Opens files and URLs from the clipboard. Shift key appends to the playlist.
|
||||
How to open URLs directly from the browser from sites like YouTube is described in the
|
||||
[External Tools section](#external-tools).
|
||||
|
||||
|
||||
@@ -1407,3 +1429,11 @@ Exits mpv.net and remembers the position in the file using the following command
|
||||
`quit-watch-later`
|
||||
|
||||
[quit-watch-later command](https://mpv.io/manual/master/#command-interface-quit-watch-later)
|
||||
|
||||
|
||||
Contributing
|
||||
------------
|
||||
|
||||
Work on the translation is done with transifex:
|
||||
|
||||
https://app.transifex.com/stax76/teams/
|
||||
|
||||
@@ -1,34 +1,20 @@
|
||||
|
||||
$ErrorActionPreference = 'Stop'
|
||||
|
||||
$PoFiles = Get-ChildItem $PSScriptRoot/po
|
||||
$ExeFolder = "$PSScriptRoot/../src/MpvNet.Windows/bin/Debug"
|
||||
|
||||
function CreateFolder
|
||||
{
|
||||
param($path)
|
||||
|
||||
if (-not (Test-Path $path))
|
||||
{
|
||||
mkdir $path
|
||||
}
|
||||
|
||||
if (-not (Test-Path $path))
|
||||
{
|
||||
throw
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($it in $PoFiles)
|
||||
{
|
||||
$folder = "$ExeFolder/Locale/$($it.BaseName)/LC_MESSAGES"
|
||||
New-Item -ItemType Directory -Path $folder
|
||||
$moPath = "$folder/mpvnet.mo"
|
||||
New-Item -ItemType File -Path $moPath
|
||||
msgfmt --output-file=$moPath $it.FullName
|
||||
|
||||
if ($LASTEXITCODE -ne 0)
|
||||
if (-not (Test-Path $folder))
|
||||
{
|
||||
throw
|
||||
New-Item -ItemType Directory -Path $folder | Out-Null
|
||||
}
|
||||
|
||||
$moPath = "$folder/mpvnet.mo"
|
||||
msgfmt --output-file=$moPath $it.FullName
|
||||
if ($LastExitCode) { throw $LastExitCode }
|
||||
$moPath
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ D:\Projects\CS\mpv.net\src\MpvNet\AppInfo.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\Binding.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\Chapter.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\Command.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\CommandLine.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\ExtensionLoader.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\FileTypes.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\Folder.cs
|
||||
@@ -14,6 +15,7 @@ D:\Projects\CS\mpv.net\src\MpvNet\MediaTrack.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\MpvClient.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\Player.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\Settings.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\StringPair.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\Terminal.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\Translator.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet\ExtensionMethod\ObjectExtension.cs
|
||||
@@ -35,9 +37,8 @@ D:\Projects\CS\mpv.net\src\MpvNet.Windows\GlobalUsings.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\Program.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\Settings.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\StringPair.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\Help\RegistryHelp.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\Help\WinMpvHelp.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\Help\WinApiHelp.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\Native\StockIcon.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\Native\Taskbar.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\Native\WinApi.cs
|
||||
@@ -51,6 +52,7 @@ D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.Designer.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\SnapManager.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\BindingProxy.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\ComboBoxTemplateSelector.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\ConfWindow.xaml.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\InputWindow.xaml.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\ISettingControl.cs
|
||||
@@ -59,6 +61,7 @@ D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\MenuHelp.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\Msg.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\WpfApplication.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\WpfTranslator.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\Controls\ComboBoxSettingControl.xaml.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\Controls\CommandPaletteControl.xaml.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\Controls\HyperlinkEx.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\Controls\OptionSettingControl.xaml.cs
|
||||
|
||||
1145
lang/po/de.po
897
lang/po/ja.po
Normal file
@@ -0,0 +1,897 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# ever_green, 2024
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-04-23 05:45+0200\n"
|
||||
"PO-Revision-Date: 2023-12-08 00:34+0000\n"
|
||||
"Last-Translator: ever_green, 2024\n"
|
||||
"Language-Team: Japanese (https://app.transifex.com/stax76/teams/179964/ja/)\n"
|
||||
"Language: ja\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:113
|
||||
msgid "+10%"
|
||||
msgstr "+10%"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:112
|
||||
msgid "-10%"
|
||||
msgstr "-10%"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:141
|
||||
msgid "100 %"
|
||||
msgstr "100 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
msgid "200 %"
|
||||
msgstr "200 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
msgid "300 %"
|
||||
msgstr "300 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||
msgid "50 %"
|
||||
msgstr "50 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:184
|
||||
msgid "About mpv.net"
|
||||
msgstr "mpv.net のバージョン情報"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:16
|
||||
msgid "Add external audio files..."
|
||||
msgstr "外部オーディオファイルを追加..."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:17
|
||||
msgid "Add external subtitle files..."
|
||||
msgstr "外部字幕ファイルを追加..."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:19
|
||||
msgid "Add files to playlist..."
|
||||
msgstr "プレイリストへファイルを追加..."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:20
|
||||
msgid "Add files/URLs to playlist from clipboard"
|
||||
msgstr "クリップボードからプレイリストへファイル/URL を追加"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:166
|
||||
msgid "Add mpv.net to Path environment variable"
|
||||
msgstr "mpv.net を Path 環境変数へ追加"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:85
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:86
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:87
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:88
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:89
|
||||
msgid "Audio"
|
||||
msgstr "オーディオ"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:85
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:455
|
||||
msgid "Audio Device"
|
||||
msgstr "オーディオデバイス"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:194
|
||||
msgid "Backward"
|
||||
msgstr "戻る"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||
msgctxt "Move"
|
||||
msgid "Center"
|
||||
msgstr "中央"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:82
|
||||
msgid "Change Aspect Ratio"
|
||||
msgstr "アスペクト比を変更"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\InputWindow.xaml.cs:116
|
||||
msgid "Changes will be available on next startup."
|
||||
msgstr "変更は次回の起動時に利用可能になります。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:51
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:353
|
||||
msgid "Chapter"
|
||||
msgstr "チャプター"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:390
|
||||
msgid "Clear List"
|
||||
msgstr "リストをクリア"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:175
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:479
|
||||
msgid "Custom"
|
||||
msgstr "カスタム"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:70
|
||||
msgid "Decrease Brightness"
|
||||
msgstr "明るさを下げる"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:67
|
||||
msgid "Decrease Contrast"
|
||||
msgstr "コントラストを下げる"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:100
|
||||
msgid "Decrease Font Size"
|
||||
msgstr "フォントサイズを小さくする"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:73
|
||||
msgid "Decrease Gamma"
|
||||
msgstr "ガンマ値を下げる"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:62
|
||||
msgid "Decrease Height"
|
||||
msgstr "高さを縮小"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:76
|
||||
msgid "Decrease Saturation"
|
||||
msgstr "彩度を下げる"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:53
|
||||
msgid "Decrease Size"
|
||||
msgstr "サイズを縮小"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:88
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:95
|
||||
msgid "Delay +0.1"
|
||||
msgstr "遅延 +0.1"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:89
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:94
|
||||
msgid "Delay -0.1"
|
||||
msgstr "遅延 -0.1"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:116
|
||||
msgid "Double"
|
||||
msgstr "2 倍"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||
msgctxt "Move"
|
||||
msgid "Down"
|
||||
msgstr "下へ"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:108
|
||||
msgctxt "Volume"
|
||||
msgid "Down"
|
||||
msgstr "下げる"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:158
|
||||
msgid "Edit input.conf"
|
||||
msgstr "input.conf の編集"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:157
|
||||
msgid "Edit mpv.conf"
|
||||
msgstr "mpv.conf の編集"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:137
|
||||
msgid "Enlarge"
|
||||
msgstr "拡大"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:261
|
||||
msgid "Error creating file associations."
|
||||
msgstr "ファイルの関連付けの作成中にエラーが発生しました。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:23
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:186
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:218
|
||||
msgid "Exit"
|
||||
msgstr "終了"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:173
|
||||
msgid "Exit Watch Later"
|
||||
msgstr "後で見るから終了"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:12
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:13
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:14
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:15
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:16
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:17
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:18
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:19
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:20
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:21
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:22
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:23
|
||||
msgid "File"
|
||||
msgstr "ファイル"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:253
|
||||
msgid "File Explorer icons will refresh after process restart."
|
||||
msgstr ""
|
||||
"ファイルエクスプローラーのアイコンは、プロセスの再起動後に更新されます。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:258
|
||||
msgid "File associations were successfully created."
|
||||
msgstr "ファイルの関連付けが正常に作成されました。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:256
|
||||
msgid "File associations were successfully removed."
|
||||
msgstr "ファイルの関連付けは正常に削除されました。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:189
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:209
|
||||
msgid "Files/URLs were added to the playlist"
|
||||
msgstr "ファイル/URL がプレイリストへ追加されました"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:31
|
||||
msgid "First File"
|
||||
msgstr "最初のファイル"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:193
|
||||
msgid "Forward"
|
||||
msgstr "進む"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:206
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:207
|
||||
msgid "Fullscreen"
|
||||
msgstr "フルスクリーン"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:115
|
||||
msgid "Half"
|
||||
msgstr "1/2"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:178
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:180
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:183
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:184
|
||||
msgid "Help"
|
||||
msgstr "ヘルプ"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:205
|
||||
msgid "Ignore left mouse butten"
|
||||
msgstr "マウスの左ボタンを無視"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:71
|
||||
msgid "Increase Brightness"
|
||||
msgstr "明るさを上げる"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:68
|
||||
msgid "Increase Contrast"
|
||||
msgstr "コントラストを上げる"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:101
|
||||
msgid "Increase Font Size"
|
||||
msgstr "フォントサイズを大きくする"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:74
|
||||
msgid "Increase Gamma"
|
||||
msgstr "ガンマ値を上げる"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:63
|
||||
msgid "Increase Height"
|
||||
msgstr "高さを拡大"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:77
|
||||
msgid "Increase Saturation"
|
||||
msgstr "彩度を上げる"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:54
|
||||
msgid "Increase Size"
|
||||
msgstr "サイズを拡大"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:45
|
||||
msgid "Jump 30 sec backward"
|
||||
msgstr "30 秒後方へジャンプ"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:44
|
||||
msgid "Jump 30 sec forward"
|
||||
msgstr "30 秒前方へジャンプ"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:48
|
||||
msgid "Jump 5 min backward"
|
||||
msgstr "5 分後方へジャンプ"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:47
|
||||
msgid "Jump 5 min forward"
|
||||
msgstr "5 分前方へジャンプ"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:42
|
||||
msgid "Jump 5 sec backward"
|
||||
msgstr "5 秒後方へジャンプ"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:41
|
||||
msgid "Jump 5 sec forward"
|
||||
msgstr "5 秒前方へジャンプ"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:38
|
||||
msgid "Jump To Next Frame"
|
||||
msgstr "次のフレームへジャンプ"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:39
|
||||
msgid "Jump To Previous Frame"
|
||||
msgstr "前のフレームへジャンプ"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:32
|
||||
msgid "Last File"
|
||||
msgstr "最後のファイル"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||
msgctxt "Move"
|
||||
msgid "Left"
|
||||
msgstr "左へ"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:180
|
||||
msgid "Manual mpv"
|
||||
msgstr "mpv マニュアル"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||
msgid "Manual mpv.net"
|
||||
msgstr "mpv.net マニュアル"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:213
|
||||
msgid "Mark position for revert-seek"
|
||||
msgstr "復帰シークの位置をマーク"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:103
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:126
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
|
||||
msgid "More"
|
||||
msgstr "詳細"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||
msgid "Move"
|
||||
msgstr "移動"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:60
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:98
|
||||
msgid "Move Down"
|
||||
msgstr "下へ移動"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:56
|
||||
msgid "Move Left"
|
||||
msgstr "左へ移動"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:57
|
||||
msgid "Move Right"
|
||||
msgstr "右へ移動"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:59
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:97
|
||||
msgid "Move Up"
|
||||
msgstr "上へ移動"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:110
|
||||
msgid "Mute"
|
||||
msgstr "ミュート"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:28
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:29
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:30
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:31
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:32
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:34
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:35
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:36
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:37
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:38
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:39
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:40
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:41
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:42
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:43
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:44
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:45
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:46
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:47
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:48
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:49
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:50
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:51
|
||||
msgid "Navigate"
|
||||
msgstr "操作"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:35
|
||||
msgid "Next Chapter"
|
||||
msgstr "次のチャプター"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:29
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:200
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:202
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:204
|
||||
msgid "Next File"
|
||||
msgstr "次のファイル"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:86
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:91
|
||||
msgid "Next Track"
|
||||
msgstr "次のトラック"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
|
||||
msgid "Open Config Folder"
|
||||
msgstr "構成フォルダを開く"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:14
|
||||
msgid "Open DVD/Blu-ray Drive/Folder..."
|
||||
msgstr "DVD/Blu-ray ドライブ/フォルダを開く..."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:12
|
||||
msgid "Open Files..."
|
||||
msgstr "ファイルを開く..."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:13
|
||||
msgid "Open URL or file from clipboard"
|
||||
msgstr "クリップボードから URL またはファイルを開く"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:53
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:54
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:55
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:56
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:57
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:58
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:59
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:60
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:61
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:62
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:63
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:64
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:65
|
||||
msgid "Pan & Scan"
|
||||
msgstr "パン&スキャン"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:25
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:188
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:189
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:190
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:191
|
||||
msgid "Play/Pause"
|
||||
msgstr "再生/一時停止"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:25
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:26
|
||||
msgid "Playback"
|
||||
msgstr "再生"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:36
|
||||
msgid "Previous Chapter"
|
||||
msgstr "前のチャプター"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:28
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:199
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:201
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:203
|
||||
msgid "Previous File"
|
||||
msgstr "前のファイル"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:428
|
||||
msgid "Profile"
|
||||
msgstr "プロファイル"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:22
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:374
|
||||
msgid "Recent Files"
|
||||
msgstr "最近のファイル"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||
msgid "Register audio file associations"
|
||||
msgstr "オーディオファイルの関連付けを登録"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
|
||||
msgid "Register image file associations"
|
||||
msgstr "画像ファイルの関連付けを登録"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
|
||||
msgid "Register video file associations"
|
||||
msgstr "ビデオファイルの関連付けを登録"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:167
|
||||
msgid "Remove mpv.net from Path environment variable"
|
||||
msgstr "mpv.net を Path 環境変数から削除"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:65
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:118
|
||||
msgid "Reset"
|
||||
msgstr "リセット"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
|
||||
msgctxt "Move"
|
||||
msgid "Right"
|
||||
msgstr "右へ"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:83
|
||||
msgid "Rotate Video"
|
||||
msgstr "ビデオを回転"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:209
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:211
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:217
|
||||
msgid "Seek Backward"
|
||||
msgstr "後方へシーク"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:208
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:210
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:216
|
||||
msgid "Seek Forward"
|
||||
msgstr "前方へシーク"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:215
|
||||
msgid "Seek to next subtitle"
|
||||
msgstr "次の字幕へシーク"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:214
|
||||
msgid "Seek to previous subtitle"
|
||||
msgstr "前の字幕へシーク"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:169
|
||||
msgid "Set/clear A-B loop points"
|
||||
msgstr "A-B 区間ループの設定/解除"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:154
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:155
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:156
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:157
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:158
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:159
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:166
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:167
|
||||
msgid "Settings"
|
||||
msgstr "設定"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:166
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:167
|
||||
msgid "Setup"
|
||||
msgstr "セットアップ"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
|
||||
msgid "Show Audio Devices"
|
||||
msgstr "オーディオデバイスを表示"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
|
||||
msgid "Show Bindings"
|
||||
msgstr "バインディングを表示"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
|
||||
msgid "Show Commands"
|
||||
msgstr "コマンドを表示"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:154
|
||||
msgid "Show Config Editor"
|
||||
msgstr "構成エディターを表示"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:126
|
||||
msgid "Show Console"
|
||||
msgstr "コンソールを表示"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
|
||||
msgid "Show Decoders"
|
||||
msgstr "デコーダを表示"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
|
||||
msgid "Show Demuxers"
|
||||
msgstr "デマルチプレクサを表示"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:155
|
||||
msgid "Show Input Editor"
|
||||
msgstr "入力エディターを表示"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
|
||||
msgid "Show Keys"
|
||||
msgstr "キーを表示"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:124
|
||||
msgid "Show Media Info Message Box"
|
||||
msgstr "メディア情報メッセージボックスを表示"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:123
|
||||
msgid "Show Media Info On-Screen"
|
||||
msgstr "画面上にメディア情報を表示"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:187
|
||||
msgid "Show Menu"
|
||||
msgstr "メニューを表示"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:120
|
||||
msgid "Show Playlist"
|
||||
msgstr "プレイリストを表示"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:450
|
||||
msgid "Show Profiles"
|
||||
msgstr "プロファイルを表示"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:125
|
||||
msgid "Show Progress"
|
||||
msgstr "進行状況を表示"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
|
||||
msgid "Show Properties"
|
||||
msgstr "プロパティを表示"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
|
||||
msgid "Show Protocols"
|
||||
msgstr "プロトコルを表示"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
msgid "Shrink"
|
||||
msgstr "縮小"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:171
|
||||
msgid "Shuffle Playlist"
|
||||
msgstr "プレイリストをシャッフル"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:1419
|
||||
msgid "Shutdown thread failed to complete within 10 seconds."
|
||||
msgstr "シャットダウン スレッドが 10 秒以内に完了しませんでした。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:112
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:113
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:114
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:115
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:116
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:117
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:118
|
||||
msgid "Speed"
|
||||
msgstr "再生速度"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:26
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:192
|
||||
msgid "Stop"
|
||||
msgstr "停止"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:91
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:92
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:93
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:94
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:95
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:96
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:97
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:98
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:99
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:100
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:101
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:102
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:103
|
||||
msgid "Subtitle"
|
||||
msgstr "字幕"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:79
|
||||
msgid "Take Screenshot"
|
||||
msgstr "スクリーンショットを撮る"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:80
|
||||
msgid "Take Screenshot without subtitles"
|
||||
msgstr "字幕なしでスクリーンショットを撮る"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:202
|
||||
msgid "The clipboard does not contain a valid URL or file."
|
||||
msgstr "クリップボードに有効な URL またはファイルが含まれていません。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:389
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:396
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:404
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:411
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:416
|
||||
msgid "This feature was removed, but there are user scripts:"
|
||||
msgstr "この機能は削除されましたが、ユーザースクリプトがあります:"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:420
|
||||
msgid "This feature was removed."
|
||||
msgstr "この機能は削除されました。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:50
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:395
|
||||
msgid "Title"
|
||||
msgstr "タイトル"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
|
||||
msgid "Toggle Border"
|
||||
msgstr "ボーダーの切り替え"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:81
|
||||
msgid "Toggle Deinterlace"
|
||||
msgstr "インターレース解除の切り替え"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:172
|
||||
msgid "Toggle Hardware Decoding"
|
||||
msgstr "ハードウェアデコードの切り替え"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:122
|
||||
msgid "Toggle OSC Visibility"
|
||||
msgstr "OSC 表示の切り替え"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:150
|
||||
msgid "Toggle On Top"
|
||||
msgstr "常に手前に表示"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:121
|
||||
msgid "Toggle Statistics"
|
||||
msgstr "統計情報の切り替え"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:92
|
||||
msgid "Toggle Visibility"
|
||||
msgstr "表示の切り替え"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:170
|
||||
msgid "Toggle infinite file looping"
|
||||
msgstr "無限ファイルループの切り替え"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:103
|
||||
msgid "Toggle overriding SSA/ASS styles with normal styles"
|
||||
msgstr "SSA/ASS スタイルを通常のスタイルで上書きする"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:169
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:170
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:171
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:172
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:173
|
||||
msgid "Tools"
|
||||
msgstr "ツール"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:105
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:291
|
||||
msgid "Track"
|
||||
msgstr "トラック"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:212
|
||||
msgid "Undo previous (or marked) seek"
|
||||
msgstr "直前の (またはマークした) シークを元に戻す"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
|
||||
msgid "Unregister file associations"
|
||||
msgstr "ファイルの関連付けの登録解除"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||
msgctxt "Move"
|
||||
msgid "Up"
|
||||
msgstr "上へ"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:107
|
||||
msgctxt "Volume"
|
||||
msgid "Up"
|
||||
msgstr "上げる"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:67
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:68
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:69
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:70
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:71
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:72
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:73
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:74
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:75
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:76
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:77
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:78
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:79
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:80
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:81
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:82
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:83
|
||||
msgid "Video"
|
||||
msgstr "ビデオ"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:120
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:121
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:122
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:123
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:124
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:125
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:126
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
|
||||
msgid "View"
|
||||
msgstr "表示"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:107
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:108
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:109
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:110
|
||||
msgid "Volume"
|
||||
msgstr "音量"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:196
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:198
|
||||
msgid "Volume Down"
|
||||
msgstr "音量を下げる"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:195
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:197
|
||||
msgid "Volume Up"
|
||||
msgstr "音量を上げる"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||
msgid "Website mpv"
|
||||
msgstr "mpv ウェブサイト"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:178
|
||||
msgid "Website mpv.net"
|
||||
msgstr "mpv.net ウェブサイト"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:137
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:141
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:150
|
||||
msgid "Window"
|
||||
msgstr "ウィンドウ"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:137
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:141
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
msgid "Zoom"
|
||||
msgstr "ズーム"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:183
|
||||
msgid "awesome-mpv"
|
||||
msgstr "awesome-mpv"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\Properties\Resources.Designer.cs:79
|
||||
msgid "editor_conf"
|
||||
msgstr "editor_conf"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:358
|
||||
msgid "mpv.net is already in the Path environment variable."
|
||||
msgstr "mpv.net は既に Path 環境変数にあります。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:375
|
||||
msgid "mpv.net was not found in the Path environment variable."
|
||||
msgstr "mpv.net が Path 環境変数に見つかりませんでした。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:366
|
||||
msgid "mpv.net was successfully added to the Path environment variable."
|
||||
msgstr "mpv.net が Path 環境変数へ正常に追加されました。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:384
|
||||
msgid "mpv.net was successfully removed from the Path environment variable."
|
||||
msgstr "mpv.net は Path 環境変数から正常に削除されました。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\Properties\Resources.Designer.cs:114
|
||||
msgid "theme"
|
||||
msgstr "テーマ"
|
||||
896
lang/po/ko.po
Normal file
@@ -0,0 +1,896 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# YT H <dev@theYT.net>, 2024
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-04-23 05:45+0200\n"
|
||||
"PO-Revision-Date: 2023-12-08 00:34+0000\n"
|
||||
"Last-Translator: YT H <dev@theYT.net>, 2024\n"
|
||||
"Language-Team: Korean (https://app.transifex.com/stax76/teams/179964/ko/)\n"
|
||||
"Language: ko\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:113
|
||||
msgid "+10%"
|
||||
msgstr "+10%"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:112
|
||||
msgid "-10%"
|
||||
msgstr "-10%"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:141
|
||||
msgid "100 %"
|
||||
msgstr "100 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
msgid "200 %"
|
||||
msgstr "200 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
msgid "300 %"
|
||||
msgstr "300 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||
msgid "50 %"
|
||||
msgstr "50 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:184
|
||||
msgid "About mpv.net"
|
||||
msgstr "mpv.net 정보"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:16
|
||||
msgid "Add external audio files..."
|
||||
msgstr "외부 오디오 파일 추가..."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:17
|
||||
msgid "Add external subtitle files..."
|
||||
msgstr "외부 자막 파일 추가..."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:19
|
||||
msgid "Add files to playlist..."
|
||||
msgstr "재생 목록에 파일 추가..."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:20
|
||||
msgid "Add files/URLs to playlist from clipboard"
|
||||
msgstr "클립보드에서 파일/URL을 재생 목록에 추가"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:166
|
||||
msgid "Add mpv.net to Path environment variable"
|
||||
msgstr "Path 환경 변수에 mpv.net 추가"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:85
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:86
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:87
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:88
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:89
|
||||
msgid "Audio"
|
||||
msgstr "오디오"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:85
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:455
|
||||
msgid "Audio Device"
|
||||
msgstr "오디오 장치"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:194
|
||||
msgid "Backward"
|
||||
msgstr "뒤로"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||
msgctxt "Move"
|
||||
msgid "Center"
|
||||
msgstr "중앙"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:82
|
||||
msgid "Change Aspect Ratio"
|
||||
msgstr "화면 비율 변경"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\InputWindow.xaml.cs:116
|
||||
msgid "Changes will be available on next startup."
|
||||
msgstr "변경 사항은 다음 실행 시 적용됩니다."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:51
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:353
|
||||
msgid "Chapter"
|
||||
msgstr "챕터"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:390
|
||||
msgid "Clear List"
|
||||
msgstr "목록 비우기"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:175
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:479
|
||||
msgid "Custom"
|
||||
msgstr "사용자 지정"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:70
|
||||
msgid "Decrease Brightness"
|
||||
msgstr "밝기 감소"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:67
|
||||
msgid "Decrease Contrast"
|
||||
msgstr "대비 감소"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:100
|
||||
msgid "Decrease Font Size"
|
||||
msgstr "글꼴 크기 축소"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:73
|
||||
msgid "Decrease Gamma"
|
||||
msgstr "감마 감소"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:62
|
||||
msgid "Decrease Height"
|
||||
msgstr "높이 축소"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:76
|
||||
msgid "Decrease Saturation"
|
||||
msgstr "채도 감소"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:53
|
||||
msgid "Decrease Size"
|
||||
msgstr "크기 축소"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:88
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:95
|
||||
msgid "Delay +0.1"
|
||||
msgstr "지연 0.1초 증가"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:89
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:94
|
||||
msgid "Delay -0.1"
|
||||
msgstr "지연 0.1초 감소"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:116
|
||||
msgid "Double"
|
||||
msgstr "두배"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||
msgctxt "Move"
|
||||
msgid "Down"
|
||||
msgstr "아래"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:108
|
||||
msgctxt "Volume"
|
||||
msgid "Down"
|
||||
msgstr "감소"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:158
|
||||
msgid "Edit input.conf"
|
||||
msgstr "input.conf 파일 편집"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:157
|
||||
msgid "Edit mpv.conf"
|
||||
msgstr "mpv.conf 파일 편집"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:137
|
||||
msgid "Enlarge"
|
||||
msgstr "크게"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:261
|
||||
msgid "Error creating file associations."
|
||||
msgstr "파일 연결을 만드는 중 오류가 발생했습니다."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:23
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:186
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:218
|
||||
msgid "Exit"
|
||||
msgstr "종료"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:173
|
||||
msgid "Exit Watch Later"
|
||||
msgstr "다음에 이어 보기 설정하고 종료"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:12
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:13
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:14
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:15
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:16
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:17
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:18
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:19
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:20
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:21
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:22
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:23
|
||||
msgid "File"
|
||||
msgstr "파일"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:253
|
||||
msgid "File Explorer icons will refresh after process restart."
|
||||
msgstr "탐색기 아이콘은 프로세스를 다시 시작한 후 업데이트됩니다."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:258
|
||||
msgid "File associations were successfully created."
|
||||
msgstr "파일 연결을 생성했습니다."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:256
|
||||
msgid "File associations were successfully removed."
|
||||
msgstr "파일 연결을 제거했습니다."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:189
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:209
|
||||
msgid "Files/URLs were added to the playlist"
|
||||
msgstr "파일/URL을 재생 목록에 추가했습니다"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:31
|
||||
msgid "First File"
|
||||
msgstr "첫 파일"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:193
|
||||
msgid "Forward"
|
||||
msgstr "앞으로"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:206
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:207
|
||||
msgid "Fullscreen"
|
||||
msgstr "전체 화면"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:115
|
||||
msgid "Half"
|
||||
msgstr "절반"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:178
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:180
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:183
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:184
|
||||
msgid "Help"
|
||||
msgstr "도움말"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:205
|
||||
msgid "Ignore left mouse butten"
|
||||
msgstr "왼쪽 마우스 버튼 무시"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:71
|
||||
msgid "Increase Brightness"
|
||||
msgstr "밝기 증가"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:68
|
||||
msgid "Increase Contrast"
|
||||
msgstr "대비 증가"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:101
|
||||
msgid "Increase Font Size"
|
||||
msgstr "글꼴 크기 증가"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:74
|
||||
msgid "Increase Gamma"
|
||||
msgstr "감마 증가"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:63
|
||||
msgid "Increase Height"
|
||||
msgstr "높이 증가"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:77
|
||||
msgid "Increase Saturation"
|
||||
msgstr "채도 증가"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:54
|
||||
msgid "Increase Size"
|
||||
msgstr "크기 확대"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:45
|
||||
msgid "Jump 30 sec backward"
|
||||
msgstr "30초 전으로 이동"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:44
|
||||
msgid "Jump 30 sec forward"
|
||||
msgstr "30초 후로 이동"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:48
|
||||
msgid "Jump 5 min backward"
|
||||
msgstr "5분 전으로 이동"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:47
|
||||
msgid "Jump 5 min forward"
|
||||
msgstr "5분 후로 이동"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:42
|
||||
msgid "Jump 5 sec backward"
|
||||
msgstr "5초 전으로 이동"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:41
|
||||
msgid "Jump 5 sec forward"
|
||||
msgstr "5초 후로 이동"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:38
|
||||
msgid "Jump To Next Frame"
|
||||
msgstr "다음 프레임으로 이동"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:39
|
||||
msgid "Jump To Previous Frame"
|
||||
msgstr "이전 프레임으로 이동"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:32
|
||||
msgid "Last File"
|
||||
msgstr "마지막 파일"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||
msgctxt "Move"
|
||||
msgid "Left"
|
||||
msgstr "왼쪽"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:180
|
||||
msgid "Manual mpv"
|
||||
msgstr "mpv 설명서"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||
msgid "Manual mpv.net"
|
||||
msgstr "mpv.net 설명서"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:213
|
||||
msgid "Mark position for revert-seek"
|
||||
msgstr "복귀 탐색하기 위한 위치 표시"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:103
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:126
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
|
||||
msgid "More"
|
||||
msgstr "더 보기"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||
msgid "Move"
|
||||
msgstr "이동"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:60
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:98
|
||||
msgid "Move Down"
|
||||
msgstr "아래로 이동"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:56
|
||||
msgid "Move Left"
|
||||
msgstr "왼쪽으로 이동"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:57
|
||||
msgid "Move Right"
|
||||
msgstr "오른쪽으로 이동"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:59
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:97
|
||||
msgid "Move Up"
|
||||
msgstr "위로 이동"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:110
|
||||
msgid "Mute"
|
||||
msgstr "음소거"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:28
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:29
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:30
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:31
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:32
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:34
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:35
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:36
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:37
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:38
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:39
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:40
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:41
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:42
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:43
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:44
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:45
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:46
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:47
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:48
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:49
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:50
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:51
|
||||
msgid "Navigate"
|
||||
msgstr "탐색"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:35
|
||||
msgid "Next Chapter"
|
||||
msgstr "다음 장"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:29
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:200
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:202
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:204
|
||||
msgid "Next File"
|
||||
msgstr "다음 파일"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:86
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:91
|
||||
msgid "Next Track"
|
||||
msgstr "다음 트랙"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
|
||||
msgid "Open Config Folder"
|
||||
msgstr "설정 폴더 열기"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:14
|
||||
msgid "Open DVD/Blu-ray Drive/Folder..."
|
||||
msgstr "DVD/Blu-ray 드라이브/폴더 열기..."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:12
|
||||
msgid "Open Files..."
|
||||
msgstr "파일 열기..."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:13
|
||||
msgid "Open URL or file from clipboard"
|
||||
msgstr "클립보드의 URL이나 파일 열기"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:53
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:54
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:55
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:56
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:57
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:58
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:59
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:60
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:61
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:62
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:63
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:64
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:65
|
||||
msgid "Pan & Scan"
|
||||
msgstr "팬과 스캔"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:25
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:188
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:189
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:190
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:191
|
||||
msgid "Play/Pause"
|
||||
msgstr "재생/일시 정지"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:25
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:26
|
||||
msgid "Playback"
|
||||
msgstr "재생"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:36
|
||||
msgid "Previous Chapter"
|
||||
msgstr "이전 장"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:28
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:199
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:201
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:203
|
||||
msgid "Previous File"
|
||||
msgstr "이전 파일"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:428
|
||||
msgid "Profile"
|
||||
msgstr "프로파일"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:22
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:374
|
||||
msgid "Recent Files"
|
||||
msgstr "최근 파일"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||
msgid "Register audio file associations"
|
||||
msgstr "오디오 파일 연결 등록"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
|
||||
msgid "Register image file associations"
|
||||
msgstr "이미지 파일 연결 등록"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
|
||||
msgid "Register video file associations"
|
||||
msgstr "비디오 파일 연결 등록"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:167
|
||||
msgid "Remove mpv.net from Path environment variable"
|
||||
msgstr "Path 환경 변수에서 mpv.net 제거"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:65
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:118
|
||||
msgid "Reset"
|
||||
msgstr "초기화"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
|
||||
msgctxt "Move"
|
||||
msgid "Right"
|
||||
msgstr "오른쪽"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:83
|
||||
msgid "Rotate Video"
|
||||
msgstr "비디오 회전"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:209
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:211
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:217
|
||||
msgid "Seek Backward"
|
||||
msgstr "되감기"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:208
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:210
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:216
|
||||
msgid "Seek Forward"
|
||||
msgstr "빨리감기"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:215
|
||||
msgid "Seek to next subtitle"
|
||||
msgstr "다음 자막으로 이동"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:214
|
||||
msgid "Seek to previous subtitle"
|
||||
msgstr "이전 자막으로 이동"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:169
|
||||
msgid "Set/clear A-B loop points"
|
||||
msgstr "A-B 반복 지점 설정/해제"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:154
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:155
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:156
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:157
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:158
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:159
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:166
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:167
|
||||
msgid "Settings"
|
||||
msgstr "설정"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:166
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:167
|
||||
msgid "Setup"
|
||||
msgstr "시스템 설정"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
|
||||
msgid "Show Audio Devices"
|
||||
msgstr "오디오 장치 표시"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
|
||||
msgid "Show Bindings"
|
||||
msgstr "키 설정 표시"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
|
||||
msgid "Show Commands"
|
||||
msgstr "명령어 표시"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:154
|
||||
msgid "Show Config Editor"
|
||||
msgstr "구성 편집기 표시"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:126
|
||||
msgid "Show Console"
|
||||
msgstr "콘솔 표시"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
|
||||
msgid "Show Decoders"
|
||||
msgstr "디코더 표시"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
|
||||
msgid "Show Demuxers"
|
||||
msgstr "디멀티플렉서 표시"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:155
|
||||
msgid "Show Input Editor"
|
||||
msgstr "입력 편집기 표시"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
|
||||
msgid "Show Keys"
|
||||
msgstr "키 표시"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:124
|
||||
msgid "Show Media Info Message Box"
|
||||
msgstr "미디어 정보 메시지 상자 표시"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:123
|
||||
msgid "Show Media Info On-Screen"
|
||||
msgstr "On-Screen 미디어 정보 표시"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:187
|
||||
msgid "Show Menu"
|
||||
msgstr "메뉴 표시"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:120
|
||||
msgid "Show Playlist"
|
||||
msgstr "재생목록 보기"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:450
|
||||
msgid "Show Profiles"
|
||||
msgstr "프로파일 보기"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:125
|
||||
msgid "Show Progress"
|
||||
msgstr "진행률 표시"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
|
||||
msgid "Show Properties"
|
||||
msgstr "속성 표시"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
|
||||
msgid "Show Protocols"
|
||||
msgstr "프로토콜 표시"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
msgid "Shrink"
|
||||
msgstr "작게"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:171
|
||||
msgid "Shuffle Playlist"
|
||||
msgstr "재생 목록 순서 섞기"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:1419
|
||||
msgid "Shutdown thread failed to complete within 10 seconds."
|
||||
msgstr "종료 스레드가 10초 이내에 완료되지 않았습니다."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:112
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:113
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:114
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:115
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:116
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:117
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:118
|
||||
msgid "Speed"
|
||||
msgstr "속도"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:26
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:192
|
||||
msgid "Stop"
|
||||
msgstr "정지"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:91
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:92
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:93
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:94
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:95
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:96
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:97
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:98
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:99
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:100
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:101
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:102
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:103
|
||||
msgid "Subtitle"
|
||||
msgstr "자막"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:79
|
||||
msgid "Take Screenshot"
|
||||
msgstr "스크린샷 찍기"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:80
|
||||
msgid "Take Screenshot without subtitles"
|
||||
msgstr "자막 없이 스크린샷 찍기"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:202
|
||||
msgid "The clipboard does not contain a valid URL or file."
|
||||
msgstr "클립보드에 유효한 URL 또는 파일이 포함되어 있지 않습니다."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:389
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:396
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:404
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:411
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:416
|
||||
msgid "This feature was removed, but there are user scripts:"
|
||||
msgstr "이 기능은 삭제되었지만, 사용자 스크립트를 찾을 수 있습니다:"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:420
|
||||
msgid "This feature was removed."
|
||||
msgstr "이 기능은 삭제되었습니다."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:50
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:395
|
||||
msgid "Title"
|
||||
msgstr "타이틀"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
|
||||
msgid "Toggle Border"
|
||||
msgstr "창 테두리 전환"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:81
|
||||
msgid "Toggle Deinterlace"
|
||||
msgstr "디인터레이스 전환"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:172
|
||||
msgid "Toggle Hardware Decoding"
|
||||
msgstr "하드웨어 디코딩 전환"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:122
|
||||
msgid "Toggle OSC Visibility"
|
||||
msgstr "OSC 표시 전환"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:150
|
||||
msgid "Toggle On Top"
|
||||
msgstr "항상 위에 표시 전환"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:121
|
||||
msgid "Toggle Statistics"
|
||||
msgstr "통계 전환"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:92
|
||||
msgid "Toggle Visibility"
|
||||
msgstr "표시 전환"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:170
|
||||
msgid "Toggle infinite file looping"
|
||||
msgstr "파일 무한 반복 전환"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:103
|
||||
msgid "Toggle overriding SSA/ASS styles with normal styles"
|
||||
msgstr "SSA/ASS 스타일을 일반 스타일로 덮어쓰기 전환"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:169
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:170
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:171
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:172
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:173
|
||||
msgid "Tools"
|
||||
msgstr "도구"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:105
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:291
|
||||
msgid "Track"
|
||||
msgstr "트랙"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:212
|
||||
msgid "Undo previous (or marked) seek"
|
||||
msgstr "이전 (또는 표시된) 탐색을 취소"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
|
||||
msgid "Unregister file associations"
|
||||
msgstr "파일 연결 등록 해제"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||
msgctxt "Move"
|
||||
msgid "Up"
|
||||
msgstr "위"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:107
|
||||
msgctxt "Volume"
|
||||
msgid "Up"
|
||||
msgstr "증가"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:67
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:68
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:69
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:70
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:71
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:72
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:73
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:74
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:75
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:76
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:77
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:78
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:79
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:80
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:81
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:82
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:83
|
||||
msgid "Video"
|
||||
msgstr "비디오"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:120
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:121
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:122
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:123
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:124
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:125
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:126
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
|
||||
msgid "View"
|
||||
msgstr "보기"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:107
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:108
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:109
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:110
|
||||
msgid "Volume"
|
||||
msgstr "볼륨"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:196
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:198
|
||||
msgid "Volume Down"
|
||||
msgstr "볼륨 감소"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:195
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:197
|
||||
msgid "Volume Up"
|
||||
msgstr "볼륨 증가"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||
msgid "Website mpv"
|
||||
msgstr "mpv 웹사이트"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:178
|
||||
msgid "Website mpv.net"
|
||||
msgstr "mpv.net 웹사이트"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:137
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:141
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:150
|
||||
msgid "Window"
|
||||
msgstr "창"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:137
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:141
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
msgid "Zoom"
|
||||
msgstr "확대"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:183
|
||||
msgid "awesome-mpv"
|
||||
msgstr "awesome-mpv"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\Properties\Resources.Designer.cs:79
|
||||
msgid "editor_conf"
|
||||
msgstr "editor_conf"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:358
|
||||
msgid "mpv.net is already in the Path environment variable."
|
||||
msgstr "mpv.net은 이미 Path 환경 변수에 있습니다."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:375
|
||||
msgid "mpv.net was not found in the Path environment variable."
|
||||
msgstr "mpv.net을 Path 환경 변수에서 찾을 수 없습니다."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:366
|
||||
msgid "mpv.net was successfully added to the Path environment variable."
|
||||
msgstr "mpv.net을 Path 환경 변수에 추가했습니다."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:384
|
||||
msgid "mpv.net was successfully removed from the Path environment variable."
|
||||
msgstr "mpv.net을 Path 환경 변수에서 제거했습니다."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\Properties\Resources.Designer.cs:114
|
||||
msgid "theme"
|
||||
msgstr "theme"
|
||||
904
lang/po/ru.po
Normal file
@@ -0,0 +1,904 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# jambickz, 2024
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-04-23 05:45+0200\n"
|
||||
"PO-Revision-Date: 2023-12-08 00:34+0000\n"
|
||||
"Last-Translator: jambickz, 2024\n"
|
||||
"Language: ru\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:113
|
||||
msgid "+10%"
|
||||
msgstr "+10%"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:112
|
||||
msgid "-10%"
|
||||
msgstr "-10%"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:141
|
||||
msgid "100 %"
|
||||
msgstr "100 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
msgid "200 %"
|
||||
msgstr "200 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
msgid "300 %"
|
||||
msgstr "300 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||
msgid "50 %"
|
||||
msgstr "50 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:184
|
||||
msgid "About mpv.net"
|
||||
msgstr "О mpv.net"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:16
|
||||
msgid "Add external audio files..."
|
||||
msgstr "Добавить внешние аудиофайлы..."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:17
|
||||
msgid "Add external subtitle files..."
|
||||
msgstr "Добавить внешние файлы субтитров..."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:19
|
||||
msgid "Add files to playlist..."
|
||||
msgstr "Добавить файлы в плейлист..."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:20
|
||||
msgid "Add files/URLs to playlist from clipboard"
|
||||
msgstr "Добавить файлы/URL в плейлист из буфера обмена"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:166
|
||||
msgid "Add mpv.net to Path environment variable"
|
||||
msgstr "Добавить mpv.net в переменную среды Path"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:85
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:86
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:87
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:88
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:89
|
||||
msgid "Audio"
|
||||
msgstr "Аудио"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:85
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:455
|
||||
msgid "Audio Device"
|
||||
msgstr "Аудиоустройство"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:194
|
||||
msgid "Backward"
|
||||
msgstr "Назад"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||
msgctxt "Move"
|
||||
msgid "Center"
|
||||
msgstr "Центр"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:82
|
||||
msgid "Change Aspect Ratio"
|
||||
msgstr "Изменить соотношение сторон"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\InputWindow.xaml.cs:116
|
||||
msgid "Changes will be available on next startup."
|
||||
msgstr "Изменения будут доступны при следующем запуске."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:51
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:353
|
||||
msgid "Chapter"
|
||||
msgstr "Глава"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:390
|
||||
msgid "Clear List"
|
||||
msgstr "Очистить список"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:175
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:479
|
||||
msgid "Custom"
|
||||
msgstr "Пользовательский"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:70
|
||||
msgid "Decrease Brightness"
|
||||
msgstr "Уменьшить яркость"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:67
|
||||
msgid "Decrease Contrast"
|
||||
msgstr "Уменьшить контраст"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:100
|
||||
msgid "Decrease Font Size"
|
||||
msgstr "Уменьшить размер шрифта"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:73
|
||||
msgid "Decrease Gamma"
|
||||
msgstr "Уменьшить гамму"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:62
|
||||
msgid "Decrease Height"
|
||||
msgstr "Уменьшить высоту"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:76
|
||||
msgid "Decrease Saturation"
|
||||
msgstr "Уменьшить насыщенность"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:53
|
||||
msgid "Decrease Size"
|
||||
msgstr "Уменьшить размер"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:88
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:95
|
||||
msgid "Delay +0.1"
|
||||
msgstr "Задержка +0.1"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:89
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:94
|
||||
msgid "Delay -0.1"
|
||||
msgstr "Задержка -0.1"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:116
|
||||
msgid "Double"
|
||||
msgstr "Удвоить"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||
msgctxt "Move"
|
||||
msgid "Down"
|
||||
msgstr "Вниз"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:108
|
||||
msgctxt "Volume"
|
||||
msgid "Down"
|
||||
msgstr "Уменьшить"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:158
|
||||
msgid "Edit input.conf"
|
||||
msgstr "Изменить input.conf"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:157
|
||||
msgid "Edit mpv.conf"
|
||||
msgstr "Изменить mpv.conf"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:137
|
||||
msgid "Enlarge"
|
||||
msgstr "Увеличить"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:261
|
||||
msgid "Error creating file associations."
|
||||
msgstr "Ошибка создания ассоциаций файлов."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:23
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:186
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:218
|
||||
msgid "Exit"
|
||||
msgstr "Выход"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:173
|
||||
msgid "Exit Watch Later"
|
||||
msgstr "Выход и позже просмотреть"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:12
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:13
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:14
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:15
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:16
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:17
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:18
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:19
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:20
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:21
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:22
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:23
|
||||
msgid "File"
|
||||
msgstr "Файл"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:253
|
||||
msgid "File Explorer icons will refresh after process restart."
|
||||
msgstr "Иконки Проводника будут обновлены после перезапуска процесса."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:258
|
||||
msgid "File associations were successfully created."
|
||||
msgstr "Ассоциации файлов успешно созданы."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:256
|
||||
msgid "File associations were successfully removed."
|
||||
msgstr "Ассоциации файлов успешно удалены."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:189
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:209
|
||||
msgid "Files/URLs were added to the playlist"
|
||||
msgstr "Файлы/URL добавлены в список воспроизведения"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:31
|
||||
msgid "First File"
|
||||
msgstr "Первый файл"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:193
|
||||
msgid "Forward"
|
||||
msgstr "Вперед"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:206
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:207
|
||||
msgid "Fullscreen"
|
||||
msgstr "Полноэкранный режим"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:115
|
||||
msgid "Half"
|
||||
msgstr "Половина"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:178
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:180
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:183
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:184
|
||||
msgid "Help"
|
||||
msgstr "Помощь"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:205
|
||||
#, fuzzy
|
||||
msgid "Ignore left mouse butten"
|
||||
msgstr "Игнорировать левую кнопку мыши"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:71
|
||||
msgid "Increase Brightness"
|
||||
msgstr "Увеличить яркость"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:68
|
||||
msgid "Increase Contrast"
|
||||
msgstr "Увеличить контраст"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:101
|
||||
msgid "Increase Font Size"
|
||||
msgstr "Увеличить размер шрифта"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:74
|
||||
msgid "Increase Gamma"
|
||||
msgstr "Увеличить гамму"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:63
|
||||
msgid "Increase Height"
|
||||
msgstr "Увеличить высоту"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:77
|
||||
msgid "Increase Saturation"
|
||||
msgstr "Увеличить насыщенность"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:54
|
||||
msgid "Increase Size"
|
||||
msgstr "Увеличить размер"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:45
|
||||
msgid "Jump 30 sec backward"
|
||||
msgstr "Перейти назад на 30 секунд"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:44
|
||||
msgid "Jump 30 sec forward"
|
||||
msgstr "Перейти вперед на 30 секунд"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:48
|
||||
msgid "Jump 5 min backward"
|
||||
msgstr "Перейти назад на 5 минут"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:47
|
||||
msgid "Jump 5 min forward"
|
||||
msgstr "Перейти вперед на 5 минут"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:42
|
||||
msgid "Jump 5 sec backward"
|
||||
msgstr "Перейти назад на 5 секунд"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:41
|
||||
msgid "Jump 5 sec forward"
|
||||
msgstr "Перейти вперед на 5 секунд"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:38
|
||||
msgid "Jump To Next Frame"
|
||||
msgstr "Перейти к следующему кадру"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:39
|
||||
msgid "Jump To Previous Frame"
|
||||
msgstr "Перейти к предыдущему кадру"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:32
|
||||
msgid "Last File"
|
||||
msgstr "Последний файл"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||
msgctxt "Move"
|
||||
msgid "Left"
|
||||
msgstr "Влево"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:180
|
||||
msgid "Manual mpv"
|
||||
msgstr "Руководство mpv"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||
msgid "Manual mpv.net"
|
||||
msgstr "Руководство mpv.net"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:213
|
||||
msgid "Mark position for revert-seek"
|
||||
msgstr "Отметить позицию для возврата"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:103
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:126
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
|
||||
msgid "More"
|
||||
msgstr "Дополнительно"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||
msgid "Move"
|
||||
msgstr "Перемещение"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:60
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:98
|
||||
msgid "Move Down"
|
||||
msgstr "Сдвинуть вниз"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:56
|
||||
msgid "Move Left"
|
||||
msgstr "Сдвинуть влево"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:57
|
||||
msgid "Move Right"
|
||||
msgstr "Сдвинуть вправо"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:59
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:97
|
||||
msgid "Move Up"
|
||||
msgstr "Сдвинуть вверх"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:110
|
||||
msgid "Mute"
|
||||
msgstr "Без звука"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:28
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:29
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:30
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:31
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:32
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:34
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:35
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:36
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:37
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:38
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:39
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:40
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:41
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:42
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:43
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:44
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:45
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:46
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:47
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:48
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:49
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:50
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:51
|
||||
msgid "Navigate"
|
||||
msgstr "Навигация"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:35
|
||||
msgid "Next Chapter"
|
||||
msgstr "Следующая глава"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:29
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:200
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:202
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:204
|
||||
msgid "Next File"
|
||||
msgstr "Следующий файл"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:86
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:91
|
||||
msgid "Next Track"
|
||||
msgstr "Следующий трек"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
|
||||
msgid "Open Config Folder"
|
||||
msgstr "Открыть папку конфигурации"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:14
|
||||
#, fuzzy
|
||||
msgid "Open DVD/Blu-ray Drive/Folder..."
|
||||
msgstr "Открыть привод DVD/Blu-ray/Папку..."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:12
|
||||
msgid "Open Files..."
|
||||
msgstr "Открыть файлы..."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:13
|
||||
msgid "Open URL or file from clipboard"
|
||||
msgstr "Открыть URL или файл из буфера обмена"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:53
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:54
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:55
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:56
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:57
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:58
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:59
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:60
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:61
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:62
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:63
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:64
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:65
|
||||
msgid "Pan & Scan"
|
||||
msgstr "Панорамирование и масштабирование"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:25
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:188
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:189
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:190
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:191
|
||||
msgid "Play/Pause"
|
||||
msgstr "Воспроизведение/Пауза"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:25
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:26
|
||||
msgid "Playback"
|
||||
msgstr "Воспроизведение"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:36
|
||||
msgid "Previous Chapter"
|
||||
msgstr "Предыдущая глава"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:28
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:199
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:201
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:203
|
||||
msgid "Previous File"
|
||||
msgstr "Предыдущий файл"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:428
|
||||
msgid "Profile"
|
||||
msgstr "Профиль"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:22
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:374
|
||||
msgid "Recent Files"
|
||||
msgstr "Недавние файлы"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||
msgid "Register audio file associations"
|
||||
msgstr "Зарегистрировать ассоциации аудиофайлов"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
|
||||
msgid "Register image file associations"
|
||||
msgstr "Зарегистрировать ассоциации файлов изображений"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
|
||||
#, fuzzy
|
||||
msgid "Register video file associations"
|
||||
msgstr "Зарегистрировать ассоциации файлов Viuao"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:167
|
||||
msgid "Remove mpv.net from Path environment variable"
|
||||
msgstr "Удалить mpv.net из переменной среды Path"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:65
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:118
|
||||
msgid "Reset"
|
||||
msgstr "Сбросить"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
|
||||
msgctxt "Move"
|
||||
msgid "Right"
|
||||
msgstr "Вправо"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:83
|
||||
#, fuzzy
|
||||
msgid "Rotate Video"
|
||||
msgstr "Повернуть Viuao"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:209
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:211
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:217
|
||||
msgid "Seek Backward"
|
||||
msgstr "Перемотать назад"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:208
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:210
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:216
|
||||
msgid "Seek Forward"
|
||||
msgstr "Перемотать вперед"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:215
|
||||
msgid "Seek to next subtitle"
|
||||
msgstr "Перейти к следующему субтитру"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:214
|
||||
msgid "Seek to previous subtitle"
|
||||
msgstr "Перейти к предыдущему субтитру"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:169
|
||||
msgid "Set/clear A-B loop points"
|
||||
msgstr "Установить/очистить точки петли A-B"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:154
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:155
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:156
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:157
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:158
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:159
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:166
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:167
|
||||
msgid "Settings"
|
||||
msgstr "Настройки"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:166
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:167
|
||||
msgid "Setup"
|
||||
msgstr "Настройка"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
|
||||
msgid "Show Audio Devices"
|
||||
msgstr "Показать аудиоустройства"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
|
||||
msgid "Show Bindings"
|
||||
msgstr "Показать привязки"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
|
||||
msgid "Show Commands"
|
||||
msgstr "Показать команды"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:154
|
||||
msgid "Show Config Editor"
|
||||
msgstr "Показать редактор конфигурации"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:126
|
||||
msgid "Show Console"
|
||||
msgstr "Показать консоль"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
|
||||
msgid "Show Decoders"
|
||||
msgstr "Показать декодеры"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
|
||||
msgid "Show Demuxers"
|
||||
msgstr "Показать демуксеры"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:155
|
||||
msgid "Show Input Editor"
|
||||
msgstr "Показать редактор ввода"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
|
||||
msgid "Show Keys"
|
||||
msgstr "Показать клавиши"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:124
|
||||
msgid "Show Media Info Message Box"
|
||||
msgstr "Показать информацию о медиа в окне сообщения"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:123
|
||||
msgid "Show Media Info On-Screen"
|
||||
msgstr "Показать информацию о медиа на экране"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:187
|
||||
msgid "Show Menu"
|
||||
msgstr "Показать меню"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:120
|
||||
msgid "Show Playlist"
|
||||
msgstr "Показать плейлист"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:450
|
||||
msgid "Show Profiles"
|
||||
msgstr "Показать профили"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:125
|
||||
msgid "Show Progress"
|
||||
msgstr "Показать прогресс"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
|
||||
msgid "Show Properties"
|
||||
msgstr "Показать свойства"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
|
||||
msgid "Show Protocols"
|
||||
msgstr "Показать протоколы"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
msgid "Shrink"
|
||||
msgstr "Уменьшить"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:171
|
||||
msgid "Shuffle Playlist"
|
||||
msgstr "Перемешать плейлист"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:1419
|
||||
msgid "Shutdown thread failed to complete within 10 seconds."
|
||||
msgstr "Поток завершения не удалось завершить в течение 10 секунд."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:112
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:113
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:114
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:115
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:116
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:117
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:118
|
||||
msgid "Speed"
|
||||
msgstr "Скорость"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:26
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:192
|
||||
msgid "Stop"
|
||||
msgstr "Остановить"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:91
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:92
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:93
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:94
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:95
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:96
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:97
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:98
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:99
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:100
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:101
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:102
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:103
|
||||
msgid "Subtitle"
|
||||
msgstr "Субтитры"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:79
|
||||
msgid "Take Screenshot"
|
||||
msgstr "Сделать снимок экрана"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:80
|
||||
msgid "Take Screenshot without subtitles"
|
||||
msgstr "Сделать снимок экрана без субтитров"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:202
|
||||
msgid "The clipboard does not contain a valid URL or file."
|
||||
msgstr "Буфер обмена не содержит действительного URL ouar файла."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:389
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:396
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:404
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:411
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:416
|
||||
#, fuzzy
|
||||
msgid "This feature was removed, but there are user scripts:"
|
||||
msgstr "Эта функция была удалена."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:420
|
||||
msgid "This feature was removed."
|
||||
msgstr "Эта функция была удалена."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:50
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:395
|
||||
msgid "Title"
|
||||
msgstr "Заголовок"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
|
||||
msgid "Toggle Border"
|
||||
msgstr "Переключить рамку"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:81
|
||||
#, fuzzy
|
||||
msgid "Toggle Deinterlace"
|
||||
msgstr "Переключить деинтерлейс"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:172
|
||||
#, fuzzy
|
||||
msgid "Toggle Hardware Decoding"
|
||||
msgstr "Переключить аппаратное ускорение кодирования"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:122
|
||||
msgid "Toggle OSC Visibility"
|
||||
msgstr "Переключить видимость OSC"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:150
|
||||
msgid "Toggle On Top"
|
||||
msgstr "Переключить поверх всех окон"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:121
|
||||
msgid "Toggle Statistics"
|
||||
msgstr "Переключить статистику"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:92
|
||||
msgid "Toggle Visibility"
|
||||
msgstr "Переключить видимость"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:170
|
||||
msgid "Toggle infinite file looping"
|
||||
msgstr "Переключить бесконечное повторение файла"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:103
|
||||
msgid "Toggle overriding SSA/ASS styles with normal styles"
|
||||
msgstr "Переключить замещение стилей SSA/ASS обычными стилями"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:169
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:170
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:171
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:172
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:173
|
||||
msgid "Tools"
|
||||
msgstr "Инструменты"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:105
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:291
|
||||
msgid "Track"
|
||||
msgstr "Трек"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:212
|
||||
msgid "Undo previous (or marked) seek"
|
||||
msgstr "Отменить предыдущий (или помеченный) поиск"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
|
||||
msgid "Unregister file associations"
|
||||
msgstr "Отменить регистрацию ассоциаций файлов"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||
msgctxt "Move"
|
||||
msgid "Up"
|
||||
msgstr "Вверх"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:107
|
||||
msgctxt "Volume"
|
||||
msgid "Up"
|
||||
msgstr "Увеличить"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:67
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:68
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:69
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:70
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:71
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:72
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:73
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:74
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:75
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:76
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:77
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:78
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:79
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:80
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:81
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:82
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:83
|
||||
msgid "Video"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:120
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:121
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:122
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:123
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:124
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:125
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:126
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
|
||||
msgid "View"
|
||||
msgstr "Просмотр"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:107
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:108
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:109
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:110
|
||||
msgid "Volume"
|
||||
msgstr "Громкость"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:196
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:198
|
||||
msgid "Volume Down"
|
||||
msgstr "Уменьшить громкость"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:195
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:197
|
||||
msgid "Volume Up"
|
||||
msgstr "Увеличить громкость"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||
msgid "Website mpv"
|
||||
msgstr "Веб-сайт mpv"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:178
|
||||
msgid "Website mpv.net"
|
||||
msgstr "Веб-сайт mpv.net"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:137
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:141
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:150
|
||||
msgid "Window"
|
||||
msgstr "Окно"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:137
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:141
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
msgid "Zoom"
|
||||
msgstr "Увеличить"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:183
|
||||
msgid "awesome-mpv"
|
||||
msgstr "awesome-mpv"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\Properties\Resources.Designer.cs:79
|
||||
msgid "editor_conf"
|
||||
msgstr "editor_conf"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:358
|
||||
msgid "mpv.net is already in the Path environment variable."
|
||||
msgstr "mpv.net уже присутствует в переменной среды 'Path'."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:375
|
||||
msgid "mpv.net was not found in the Path environment variable."
|
||||
msgstr "mpv.net не найден в переменной среды 'Path'."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:366
|
||||
#, fuzzy
|
||||
msgid "mpv.net was successfully added to the Path environment variable."
|
||||
msgstr "mpv.net успешно добавлен в переменную среды 'Path'."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:384
|
||||
msgid "mpv.net was successfully removed from the Path environment variable."
|
||||
msgstr "mpv.net успешно удален из переменной среды 'Path'."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\Properties\Resources.Designer.cs:114
|
||||
msgid "theme"
|
||||
msgstr "тема"
|
||||
|
||||
#~ msgid "Viuao"
|
||||
#~ msgstr "Viuao"
|
||||
899
lang/po/tr.po
Normal file
@@ -0,0 +1,899 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# DogancanYr, 2024
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-01-13 13:46+0100\n"
|
||||
"PO-Revision-Date: 2024-05-06 HO:MI+ZONE\n"
|
||||
"Last-Translator: DogancanYr <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: TR\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Language: tr_TR\n"
|
||||
"X-Source-Language: en_EN\n"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:12
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:13
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:14
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:15
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:16
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:17
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:18
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:19
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:20
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:21
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:22
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:23
|
||||
msgid "File"
|
||||
msgstr "Dosya"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:12
|
||||
msgid "Open Files..."
|
||||
msgstr "Dosyaları Aç..."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:13
|
||||
msgid "Open URL or file from clipboard"
|
||||
msgstr "URL'yi veya dosyayı panodan açın"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:14
|
||||
msgid "Open DVD/Blu-ray Drive/Folder..."
|
||||
msgstr "DVD/Blu-ray Sürücüsü/Klasörü Aç..."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:16
|
||||
msgid "Add external audio files..."
|
||||
msgstr "Harici ses dosyaları ekle..."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:17
|
||||
msgid "Add external subtitle files..."
|
||||
msgstr "Harici altyazı dosyaları ekle..."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:19
|
||||
msgid "Add files to playlist..."
|
||||
msgstr "Dosyaları çalma listesine ekle..."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:20
|
||||
msgid "Add files/URLs to playlist from clipboard"
|
||||
msgstr "Panodan oynatma listesine dosya/URL ekle"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:22
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:379
|
||||
msgid "Recent Files"
|
||||
msgstr "Son Kullanılan Dosyalar"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:23
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:186
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:218
|
||||
msgid "Exit"
|
||||
msgstr "Çıkış"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:25
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:26
|
||||
msgid "Playback"
|
||||
msgstr "Kayıttan yürütme"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:25
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:188
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:189
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:190
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:191
|
||||
msgid "Play/Pause"
|
||||
msgstr "Oynat/Duraklat"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:26
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:192
|
||||
msgid "Stop"
|
||||
msgstr "Durdur"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:28
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:29
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:30
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:31
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:32
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:34
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:35
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:36
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:37
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:38
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:39
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:40
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:41
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:42
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:43
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:44
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:45
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:46
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:47
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:48
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:49
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:50
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:51
|
||||
msgid "Navigate"
|
||||
msgstr "Gezin"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:28
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:199
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:201
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:203
|
||||
msgid "Previous File"
|
||||
msgstr "Önceki Dosya"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:29
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:200
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:202
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:204
|
||||
msgid "Next File"
|
||||
msgstr "Sonraki Dosya"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:31
|
||||
msgid "First File"
|
||||
msgstr "İlk Dosya"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:32
|
||||
msgid "Last File"
|
||||
msgstr "Son Dosya"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:35
|
||||
msgid "Next Chapter"
|
||||
msgstr "Sonraki Bölüm"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:36
|
||||
msgid "Previous Chapter"
|
||||
msgstr "Önceki Bölüm"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:38
|
||||
msgid "Jump To Next Frame"
|
||||
msgstr "Sonraki Kare"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:39
|
||||
msgid "Jump To Previous Frame"
|
||||
msgstr "Önceki Kare"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:41
|
||||
msgid "Jump 5 sec forward"
|
||||
msgstr "5 saniye ileri"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:42
|
||||
msgid "Jump 5 sec backward"
|
||||
msgstr "5 saniye geriye"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:44
|
||||
msgid "Jump 30 sec forward"
|
||||
msgstr "30 saniye ileri "
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:45
|
||||
msgid "Jump 30 sec backward"
|
||||
msgstr "30 saniye geri"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:47
|
||||
msgid "Jump 5 min forward"
|
||||
msgstr "5 dakika ileri"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:48
|
||||
msgid "Jump 5 min backward"
|
||||
msgstr "5 dakika geri"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:50
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:400
|
||||
msgid "Title"
|
||||
msgstr "Başlık"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:51
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:358
|
||||
msgid "Chapter"
|
||||
msgstr "Bölüm"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:53
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:54
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:55
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:56
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:57
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:58
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:59
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:60
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:61
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:62
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:63
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:64
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:65
|
||||
msgid "Pan & Scan"
|
||||
msgstr "Videoyu Sıkıştır"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:53
|
||||
msgid "Decrease Size"
|
||||
msgstr "Boyutu Küçült"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:54
|
||||
msgid "Increase Size"
|
||||
msgstr "Boyutunu Büyüt"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:56
|
||||
msgid "Move Left"
|
||||
msgstr "Sola Taşı"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:57
|
||||
msgid "Move Right"
|
||||
msgstr "Sağa Taşı"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:59
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:97
|
||||
msgid "Move Up"
|
||||
msgstr "Yukarı Taşı"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:60
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:98
|
||||
msgid "Move Down"
|
||||
msgstr "Aşağı Taşı"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:62
|
||||
msgid "Decrease Height"
|
||||
msgstr "Yüksekliği Azalt"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:63
|
||||
msgid "Increase Height"
|
||||
msgstr "Yüksekliği Artır"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:65
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:118
|
||||
msgid "Reset"
|
||||
msgstr "Sıfırla"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:67
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:68
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:69
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:70
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:71
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:72
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:73
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:74
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:75
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:76
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:77
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:78
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:79
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:80
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:81
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:82
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:83
|
||||
msgid "Video"
|
||||
msgstr "Video"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:67
|
||||
msgid "Decrease Contrast"
|
||||
msgstr "Karşıtlığı Azalt"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:68
|
||||
msgid "Increase Contrast"
|
||||
msgstr "Karşıtlığı Arttır"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:70
|
||||
msgid "Decrease Brightness"
|
||||
msgstr "Parlaklığı Azalt"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:71
|
||||
msgid "Increase Brightness"
|
||||
msgstr "Parlaklığını Artır"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:73
|
||||
msgid "Decrease Gamma"
|
||||
msgstr "Gamayı Azalt"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:74
|
||||
msgid "Increase Gamma"
|
||||
msgstr "Gamayı Artır"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:76
|
||||
msgid "Decrease Saturation"
|
||||
msgstr "Doygunluğu Azalt"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:77
|
||||
msgid "Increase Saturation"
|
||||
msgstr "Doygunluğu Artır"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:79
|
||||
msgid "Take Screenshot"
|
||||
msgstr "Ekran Görüntüsü Al"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:80
|
||||
msgid "Take Screenshot without subtitles"
|
||||
msgstr "Ekran görüntüsünü altyazısız al"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:81
|
||||
msgid "Toggle Deinterlace"
|
||||
msgstr "Taramasızlaştırmayı göster"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:82
|
||||
msgid "Change Aspect Ratio"
|
||||
msgstr "Çerçeve Oranını Değiştir"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:83
|
||||
msgid "Rotate Video"
|
||||
msgstr "Videoyu Döndür"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:85
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:86
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:87
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:88
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:89
|
||||
msgid "Audio"
|
||||
msgstr "Ses"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:85
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:460
|
||||
msgid "Audio Device"
|
||||
msgstr "Ses Aygıtı"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:86
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:91
|
||||
msgid "Next Track"
|
||||
msgstr "Sonraki Ses Parçası"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:88
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:95
|
||||
msgid "Delay +0.1"
|
||||
msgstr "Gecikme +0.1"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:89
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:94
|
||||
msgid "Delay -0.1"
|
||||
msgstr "Gecikme -0.1"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:91
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:92
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:93
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:94
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:95
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:96
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:97
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:98
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:99
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:100
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:101
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:102
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:103
|
||||
msgid "Subtitle"
|
||||
msgstr "Altyazı"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:92
|
||||
msgid "Toggle Visibility"
|
||||
msgstr "Görünürlüğü Göster"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:100
|
||||
msgid "Decrease Font Size"
|
||||
msgstr "Yazı Boyutunu Küçült"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:101
|
||||
msgid "Increase Font Size"
|
||||
msgstr "Yazı Boyutunu Büyüt"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:103
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:126
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
|
||||
msgid "More"
|
||||
msgstr "Daha Fazla"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:103
|
||||
msgid "Toggle overriding SSA/ASS styles with normal styles"
|
||||
msgstr "SSA/ASS stillerini normal stillerle geçersiz kıl"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:105
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:296
|
||||
msgid "Track"
|
||||
msgstr "Ses Parçası"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:107
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:108
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:109
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:110
|
||||
msgid "Volume"
|
||||
msgstr "Sayı"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:107
|
||||
msgctxt "Volume"
|
||||
msgid "Up"
|
||||
msgstr "Yukarı"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:108
|
||||
msgctxt "Volume"
|
||||
msgid "Down"
|
||||
msgstr "Aşağı"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:110
|
||||
msgid "Mute"
|
||||
msgstr "Sessize al"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:112
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:113
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:114
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:115
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:116
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:117
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:118
|
||||
msgid "Speed"
|
||||
msgstr "Hız"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:112
|
||||
msgid "-10%"
|
||||
msgstr "-10%"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:113
|
||||
msgid "+10%"
|
||||
msgstr "+10%"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:115
|
||||
msgid "Half"
|
||||
msgstr "Yarım"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:116
|
||||
msgid "Double"
|
||||
msgstr "İkile"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:120
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:121
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:122
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:123
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:124
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:125
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:126
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
|
||||
msgid "View"
|
||||
msgstr "Görünüm"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:120
|
||||
msgid "Show Playlist"
|
||||
msgstr "Çalma Listesini Göster"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:121
|
||||
msgid "Toggle Statistics"
|
||||
msgstr "İstatistikleri Göster"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:122
|
||||
msgid "Toggle OSC Visibility"
|
||||
msgstr "OSC Görünürlüğünü Göster"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:123
|
||||
msgid "Show Media Info On-Screen"
|
||||
msgstr "Medya Bilgilerini Ekranda Göster"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:124
|
||||
msgid "Show Media Info Message Box"
|
||||
msgstr "Medya Bilgisi Mesaj Kutusunu Göster"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:125
|
||||
msgid "Show Progress"
|
||||
msgstr "İlerlemeyi Göster"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:126
|
||||
msgid "Show Console"
|
||||
msgstr "Konsolu Göster"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
|
||||
msgid "Show Audio Devices"
|
||||
msgstr "Ses Aygıtlarını Göster"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
|
||||
msgid "Show Commands"
|
||||
msgstr "Komutları Göster"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
|
||||
msgid "Show Bindings"
|
||||
msgstr "Bağlamaları Göster"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
|
||||
msgid "Show Properties"
|
||||
msgstr "Özellikleri Göster"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
|
||||
msgid "Show Keys"
|
||||
msgstr "Kısayol Tuşlarını Göster"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
|
||||
msgid "Show Protocols"
|
||||
msgstr "Protokolleri Göster"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
|
||||
msgid "Show Decoders"
|
||||
msgstr "Kod Çözücüleri Göster"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
|
||||
msgid "Show Demuxers"
|
||||
msgstr "Kod Çözücüleri Göster"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:137
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:141
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:150
|
||||
msgid "Window"
|
||||
msgstr "Pencere"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:206
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:207
|
||||
msgid "Fullscreen"
|
||||
msgstr "Tam Ekran"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:137
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:141
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
msgid "Zoom"
|
||||
msgstr "Büyüt"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:137
|
||||
msgid "Enlarge"
|
||||
msgstr "Genişlet"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
msgid "Shrink"
|
||||
msgstr "Daralt"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||
msgid "50 %"
|
||||
msgstr "50 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:141
|
||||
msgid "100 %"
|
||||
msgstr "100 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
msgid "200 %"
|
||||
msgstr "200 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
msgid "300 %"
|
||||
msgstr "300 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||
msgid "Move"
|
||||
msgstr "Hareket Ettir"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||
msgctxt "Move"
|
||||
msgid "Left"
|
||||
msgstr "Sol"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
|
||||
msgctxt "Move"
|
||||
msgid "Right"
|
||||
msgstr "Sağ"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||
msgctxt "Move"
|
||||
msgid "Up"
|
||||
msgstr "Yukarı"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||
msgctxt "Move"
|
||||
msgid "Down"
|
||||
msgstr "Aşağı"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||
msgctxt "Move"
|
||||
msgid "Center"
|
||||
msgstr "Merkez"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
|
||||
msgid "Toggle Border"
|
||||
msgstr "Kenarlığı Göster"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:150
|
||||
msgid "Toggle On Top"
|
||||
msgstr "Üstte Göster"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:433
|
||||
msgid "Profile"
|
||||
msgstr "Profil"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:154
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:155
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:156
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:157
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:158
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:159
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:166
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:167
|
||||
msgid "Settings"
|
||||
msgstr "Ayarlar"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:154
|
||||
msgid "Show Config Editor"
|
||||
msgstr "Yapılandırma Düzenleyiciyi Göster"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:155
|
||||
msgid "Show Input Editor"
|
||||
msgstr "Giriş Düzenleyicisini Göster"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:157
|
||||
msgid "Edit mpv.conf"
|
||||
msgstr "Mpv.conf dosyasını düzenle"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:158
|
||||
msgid "Edit input.conf"
|
||||
msgstr "Input.conf dosyasını düzenle"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
|
||||
msgid "Open Config Folder"
|
||||
msgstr "Yapılandırma Klasörünü Aç"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:166
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:167
|
||||
msgid "Setup"
|
||||
msgstr "Kurulum"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
|
||||
msgid "Register video file associations"
|
||||
msgstr "Video dosyaları ile ilişkilendir"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||
msgid "Register audio file associations"
|
||||
msgstr "Ses dosyaları ile ilişkilendir"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
|
||||
msgid "Register image file associations"
|
||||
msgstr "Görüntü dosyaları ile ilişkilendir"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
|
||||
msgid "Unregister file associations"
|
||||
msgstr "Dosya ilişkilendirmelerinin kaldır"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:166
|
||||
msgid "Add mpv.net to Path environment variable"
|
||||
msgstr "Mpv.net'i Path ortam değişkenine ekleyin"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:167
|
||||
msgid "Remove mpv.net from Path environment variable"
|
||||
msgstr "Mpv.net'i Path ortam değişkeninden kaldır"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:169
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:170
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:171
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:172
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:173
|
||||
msgid "Tools"
|
||||
msgstr "Araçlar"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:169
|
||||
msgid "Set/clear A-B loop points"
|
||||
msgstr "A - B döngü noktalarını ayarla/temizle"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:170
|
||||
msgid "Toggle infinite file looping"
|
||||
msgstr "Sonsuz dosya döngüsünü göster"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:171
|
||||
msgid "Shuffle Playlist"
|
||||
msgstr "Çalma Listesini Karıştır"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:172
|
||||
msgid "Toggle Hardware Decoding"
|
||||
msgstr "Donanım Kod Çözmeyi Göster"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:173
|
||||
msgid "Exit Watch Later"
|
||||
msgstr "Daha Sonra İzle'den Çık"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:175
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:484
|
||||
msgid "Custom"
|
||||
msgstr "Özel"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:178
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:180
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:183
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:184
|
||||
msgid "Help"
|
||||
msgstr "Yardım"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||
msgid "Website mpv"
|
||||
msgstr "İnternet sayfası mpv"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:178
|
||||
msgid "Website mpv.net"
|
||||
msgstr "İnternet sayfası mpv.net"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:180
|
||||
msgid "Manual mpv"
|
||||
msgstr "Manuel mpv"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||
msgid "Manual mpv.net"
|
||||
msgstr "Manuel mpv.net"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:183
|
||||
msgid "awesome-mpv"
|
||||
msgstr "müthiş-mpv"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:184
|
||||
msgid "About mpv.net"
|
||||
msgstr "Mpv.net hakkında"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:187
|
||||
msgid "Show Menu"
|
||||
msgstr "Menüyü göster"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:193
|
||||
msgid "Forward"
|
||||
msgstr "İleri"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:194
|
||||
msgid "Backward"
|
||||
msgstr "Geri"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:195
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:197
|
||||
msgid "Volume Up"
|
||||
msgstr "Sesi Aç"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:196
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:198
|
||||
msgid "Volume Down"
|
||||
msgstr "Sesi Kıs"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:205
|
||||
msgid "Ignore left mouse butten"
|
||||
msgstr "Sol fare düğmesini görmezden gel"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:208
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:210
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:216
|
||||
msgid "Seek Forward"
|
||||
msgstr "İleri Git"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:209
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:211
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:217
|
||||
msgid "Seek Backward"
|
||||
msgstr "Geri Git"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:212
|
||||
msgid "Undo previous (or marked) seek"
|
||||
msgstr "Önceki (veya işaretli) aramayı geri al"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:213
|
||||
msgid "Mark position for revert-seek"
|
||||
msgstr "Geri arama için konumu işaretle"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:214
|
||||
msgid "Seek to previous subtitle"
|
||||
msgstr "Önceki altyazıya git"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:215
|
||||
msgid "Seek to next subtitle"
|
||||
msgstr "Sonraki altyazıya git"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:189
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:209
|
||||
msgid "Files/URLs were added to the playlist"
|
||||
msgstr "Dosyalar/URL'ler oynatma listesine eklendi"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:202
|
||||
msgid "The clipboard does not contain a valid URL or file."
|
||||
msgstr "Pano geçerli bir URL veya dosya içermiyor."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:253
|
||||
msgid "File Explorer icons will refresh after process restart."
|
||||
msgstr ""
|
||||
"İşlem yeniden başlatıldıktan sonra Dosya Gezgini simgeleri yenilenecektir."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:256
|
||||
msgid "File associations were successfully removed."
|
||||
msgstr "Dosya ilişkilendirmeleri başarıyla kaldırıldı."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:258
|
||||
msgid "File associations were successfully created."
|
||||
msgstr "Dosya ilişkilendirmeleri başarıyla oluşturuldu."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:261
|
||||
msgid "Error creating file associations."
|
||||
msgstr "Dosya ilişkilendirmeleri oluşturulurken hata oluştu."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:358
|
||||
msgid "mpv.net is already in the Path environment variable."
|
||||
msgstr "mpv.net zaten Path ortam değişkeninde."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:366
|
||||
msgid "mpv.net was successfully added to the Path environment variable."
|
||||
msgstr "mpv.net Path ortam değişkenine başarıyla eklendi."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:375
|
||||
msgid "mpv.net was not found in the Path environment variable."
|
||||
msgstr "Path ortam değişkeninde mpv.net bulunamadı."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:384
|
||||
msgid "mpv.net was successfully removed from the Path environment variable."
|
||||
msgstr "mpv.net Path ortam değişkeninden başarıyla kaldırıldı."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:389
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:396
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:404
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:411
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:416
|
||||
msgid "This feature was removed, but there are user scripts:"
|
||||
msgstr "Bu özellik kaldırıldı, ancak kullanıcı komut dosyaları var:"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:420
|
||||
msgid "This feature was removed."
|
||||
msgstr "Bu özellik kaldırıldı."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\Properties\Resources.Designer.cs:79
|
||||
msgid "editor_conf"
|
||||
msgstr "editor_conf"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\Properties\Resources.Designer.cs:114
|
||||
msgid "theme"
|
||||
msgstr "tema"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:395
|
||||
msgid "Clear List"
|
||||
msgstr "Listeyi Temizle"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:455
|
||||
msgid "Show Profiles"
|
||||
msgstr "Profilleri Göster"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:1424
|
||||
msgid "Shutdown thread failed to complete within 10 seconds."
|
||||
msgstr "Kapatma dizisi 10 saniye içinde tamamlanamadı."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\InputWindow.xaml.cs:116
|
||||
msgid "Changes will be available on next startup."
|
||||
msgstr "Değişiklikler bir sonraki başlangıçta kullanılabilir olacaktır."
|
||||
1374
lang/po/zh_CN.po
1064
lang/source.pot
@@ -1,4 +1,6 @@
|
||||
|
||||
$ErrorActionPreference = 'Stop'
|
||||
|
||||
# Write list of .cs files into cs-files.txt file
|
||||
Get-ChildItem $PSScriptRoot/.. -Recurse -File -Filter '*.cs' |
|
||||
Where-Object { $_ -notmatch '[/\\]obj[/\\]' } |
|
||||
@@ -6,7 +8,8 @@ Get-ChildItem $PSScriptRoot/.. -Recurse -File -Filter '*.cs' |
|
||||
Out-File $PSScriptRoot/cs-files.txt
|
||||
|
||||
# Create .pot file
|
||||
xgettext --force-po --from-code=UTF-8 '--language=c#' -o $PSScriptRoot/source.pot --files-from=$PSScriptRoot/cs-files.txt --keyword=_
|
||||
xgettext -k_ -k_n:1,2 -k_p:1c,2 -k_pn:1c,2,3 --force-po --from-code=UTF-8 '--language=c#' -o $PSScriptRoot/source.pot --files-from=$PSScriptRoot/cs-files.txt --keyword=_
|
||||
if ($LastExitCode) { throw $LastExitCode }
|
||||
|
||||
# Backup .po files
|
||||
$BackupTargetFolder = $env:TEMP + '/mpv.net po backup ' + (Get-Date -Format 'yyyy-MM-dd HH_mm_ss')
|
||||
@@ -16,3 +19,5 @@ Copy-Item $PSScriptRoot/po $BackupTargetFolder -Force -Recurse
|
||||
# Update .po files
|
||||
(Get-ChildItem $PSScriptRoot/PO -Filter '*.po').FullName |
|
||||
ForEach-Object { msgmerge --sort-output --backup=none --update $_ $PSScriptRoot/source.pot }
|
||||
|
||||
if ($LastExitCode) { throw $LastExitCode }
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
|
||||
using System.Text;
|
||||
using System.Text.Json;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Globalization;
|
||||
using System.Windows.Forms;
|
||||
@@ -11,9 +12,8 @@ using MpvNet.Windows.WinForms;
|
||||
using MpvNet.Windows.WPF.Views;
|
||||
using MpvNet.Windows.WPF;
|
||||
using MpvNet.Windows.WPF.MsgBox;
|
||||
using MpvNet.Help;
|
||||
using System.Text.Json;
|
||||
using MpvNet.Windows.Help;
|
||||
using MpvNet.Help;
|
||||
|
||||
namespace MpvNet;
|
||||
|
||||
@@ -30,44 +30,53 @@ public class GuiCommand
|
||||
|
||||
public Dictionary<string, Action<IList<string>>> Commands => _commands ??= new()
|
||||
{
|
||||
["show-about"] = args => ShowDialog(typeof(AboutWindow)),
|
||||
["show-conf-editor"] = args => ShowDialog(typeof(ConfWindow)),
|
||||
["show-input-editor"] = args => ShowDialog(typeof(InputWindow)),
|
||||
["show-audio-devices"] = args => Msg.ShowInfo(Player.GetPropertyOsdString("audio-device-list")),
|
||||
["show-profiles"] = args => Msg.ShowInfo(Player.GetProfiles()),
|
||||
["load-sub"] = LoadSubtitle,
|
||||
["open-files"] = OpenFiles,
|
||||
["open-optical-media"] = Open_DVD_Or_BD_Folder,
|
||||
["load-audio"] = LoadAudio,
|
||||
["open-clipboard"] = OpenFromClipboard,
|
||||
["reg-file-assoc"] = RegisterFileAssociations,
|
||||
["scale-window"] = args => ScaleWindow?.Invoke(float.Parse(args[0], CultureInfo.InvariantCulture)),
|
||||
["show-media-info"] = ShowMediaInfo,
|
||||
["move-window"] = args => MoveWindow?.Invoke(args[0]),
|
||||
["window-scale"] = args => WindowScaleNet?.Invoke(float.Parse(args[0], CultureInfo.InvariantCulture)),
|
||||
["show-menu"] = args => ShowMenu?.Invoke(),
|
||||
["show-bindings"] = args => ShowBindings(),
|
||||
["show-playlist"] = args => ShowPlaylist(),
|
||||
["add-to-path"] = args => AddToPath(),
|
||||
["edit-conf-file"] = EditCongFile,
|
||||
["load-audio"] = LoadAudio,
|
||||
["load-sub"] = LoadSubtitle,
|
||||
["move-window"] = args => MoveWindow?.Invoke(args[0]),
|
||||
["open-clipboard"] = OpenFromClipboard,
|
||||
["open-files"] = OpenFiles,
|
||||
["open-optical-media"] = Open_DVD_Or_BD_Folder,
|
||||
["reg-file-assoc"] = RegisterFileAssociations,
|
||||
["remove-from-path"] = args => RemoveFromPath(),
|
||||
["scale-window"] = args => ScaleWindow?.Invoke(float.Parse(args[0], CultureInfo.InvariantCulture)),
|
||||
["show-about"] = args => ShowDialog(typeof(AboutWindow)),
|
||||
["show-bindings"] = args => ShowBindings(),
|
||||
["show-commands"] = args => ShowCommands(),
|
||||
["show-conf-editor"] = args => ShowDialog(typeof(ConfWindow)),
|
||||
["show-decoders"] = args => ShowDecoders(),
|
||||
["show-demuxers"] = args => ShowDemuxers(),
|
||||
["show-info"] = args => ShowMediaInfo(new[] { "osd" }),
|
||||
["show-input-editor"] = args => ShowDialog(typeof(InputWindow)),
|
||||
["show-keys"] = args => ShowKeys(),
|
||||
["show-media-info"] = ShowMediaInfo,
|
||||
["show-menu"] = args => ShowMenu?.Invoke(),
|
||||
["show-profiles"] = args => Msg.ShowInfo(Player.GetProfiles()),
|
||||
["show-properties"] = args => Player.Command("script-binding select/show-properties"),
|
||||
["show-protocols"] = args => ShowProtocols(),
|
||||
["window-scale"] = args => WindowScaleNet?.Invoke(float.Parse(args[0], CultureInfo.InvariantCulture)),
|
||||
|
||||
|
||||
// deprecated
|
||||
["show-info"] = args => ShowMediaInfo(new[] { "osd" }), // deprecated
|
||||
["show-recent"] = args => ShowRemoved(), // deprecated
|
||||
["quick-bookmark"] = args => QuickBookmark(), // deprecated
|
||||
["show-history"] = args => ShowHistory(), // deprecated
|
||||
["show-command-palette"] = args => ShowCommandPalette(), // deprecated
|
||||
["show-playlist"] = args => Player.Command("script-binding select/select-playlist"), // deprecated
|
||||
["show-command-palette"] = args => Player.Command("script-binding select/select-binding"), // deprecated
|
||||
["show-audio-tracks"] = args => Player.Command("script-binding select/select-aid"), // deprecated
|
||||
["show-subtitle-tracks"] = args => Player.Command("script-binding select/select-sid"), // deprecated
|
||||
["show-audio-devices"] = args => Player.Command("script-binding select/select-audio-device"), // deprecated
|
||||
};
|
||||
|
||||
public void ShowDialog(Type winType)
|
||||
void ShowDialog(Type winType)
|
||||
{
|
||||
Window? win = Activator.CreateInstance(winType) as Window;
|
||||
new WindowInteropHelper(win).Owner = MainForm.Instance!.Handle;
|
||||
win?.ShowDialog();
|
||||
}
|
||||
|
||||
public void LoadSubtitle(IList<string> args)
|
||||
void LoadSubtitle(IList<string> args)
|
||||
{
|
||||
using var dialog = new OpenFileDialog();
|
||||
string path = Player.GetPropertyString("path");
|
||||
@@ -82,7 +91,7 @@ public class GuiCommand
|
||||
Player.CommandV("sub-add", filename);
|
||||
}
|
||||
|
||||
public void OpenFiles(IList<string> args)
|
||||
void OpenFiles(IList<string> args)
|
||||
{
|
||||
bool append = false;
|
||||
|
||||
@@ -96,7 +105,7 @@ public class GuiCommand
|
||||
Player.LoadFiles(dialog.FileNames, true, append);
|
||||
}
|
||||
|
||||
public void Open_DVD_Or_BD_Folder(IList<string> args)
|
||||
void Open_DVD_Or_BD_Folder(IList<string> args)
|
||||
{
|
||||
var dialog = new FolderBrowserDialog();
|
||||
|
||||
@@ -104,15 +113,23 @@ public class GuiCommand
|
||||
Player.LoadDiskFolder(dialog.SelectedPath);
|
||||
}
|
||||
|
||||
public void EditCongFile(IList<string> args)
|
||||
void EditCongFile(IList<string> args)
|
||||
{
|
||||
string file = Player.ConfigFolder + args[0];
|
||||
|
||||
if (!File.Exists(file))
|
||||
{
|
||||
string msg = $"{args[0]} does not exist. Would you like to create it?";
|
||||
|
||||
if (Msg.ShowQuestion(msg) == MessageBoxResult.OK)
|
||||
File.WriteAllText(file, "");
|
||||
}
|
||||
|
||||
if (File.Exists(file))
|
||||
ProcessHelp.ShellExecute(WinApiHelp.GetAppPathForExtension("txt"), "\"" + file + "\"");
|
||||
}
|
||||
|
||||
public static void ShowTextWithEditor(string name, string text)
|
||||
void ShowTextWithEditor(string name, string text)
|
||||
{
|
||||
string file = Path.Combine(Path.GetTempPath(), name + ".txt");
|
||||
App.TempFiles.Add(file);
|
||||
@@ -120,7 +137,7 @@ public class GuiCommand
|
||||
ProcessHelp.ShellExecute(WinApiHelp.GetAppPathForExtension("txt"), "\"" + file + "\"");
|
||||
}
|
||||
|
||||
public static void ShowCommands()
|
||||
void ShowCommands()
|
||||
{
|
||||
string json = Core.GetPropertyString("command-list");
|
||||
var enumerator = JsonDocument.Parse(json).RootElement.EnumerateArray();
|
||||
@@ -151,12 +168,29 @@ public class GuiCommand
|
||||
ShowTextWithEditor("Input Commands", header + sb.ToString());
|
||||
}
|
||||
|
||||
public void OpenFromClipboard(IList<string> args)
|
||||
void ShowKeys() =>
|
||||
ShowTextWithEditor("Keys", Core.GetPropertyString("input-key-list").Replace(",", BR));
|
||||
|
||||
void ShowProtocols() =>
|
||||
ShowTextWithEditor("Protocols", Core.GetPropertyString("protocol-list").Replace(",", BR));
|
||||
|
||||
void ShowDecoders() =>
|
||||
ShowTextWithEditor("Decoders", Core.GetPropertyOsdString("decoder-list").Replace(",", BR));
|
||||
|
||||
void ShowDemuxers() =>
|
||||
ShowTextWithEditor("Demuxers", Core.GetPropertyOsdString("demuxer-lavf-list").Replace(",", BR));
|
||||
|
||||
void OpenFromClipboard(IList<string> args)
|
||||
{
|
||||
bool append = args.Count == 1 && args[0] == "append";
|
||||
|
||||
if (System.Windows.Forms.Clipboard.ContainsFileDropList())
|
||||
{
|
||||
string[] files = System.Windows.Forms.Clipboard.GetFileDropList().Cast<string>().ToArray();
|
||||
Player.LoadFiles(files, false, false);
|
||||
Player.LoadFiles(files, false, append);
|
||||
|
||||
if (append)
|
||||
Player.CommandV("show-text", _("Files/URLs were added to the playlist"));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -169,15 +203,18 @@ public class GuiCommand
|
||||
|
||||
if (files.Count == 0)
|
||||
{
|
||||
Terminal.WriteError("The clipboard does not contain a valid URL or file.");
|
||||
Terminal.WriteError(_("The clipboard does not contain a valid URL or file."));
|
||||
return;
|
||||
}
|
||||
|
||||
Player.LoadFiles(files.ToArray(), false, false);
|
||||
Player.LoadFiles(files.ToArray(), false, append);
|
||||
|
||||
if (append)
|
||||
Player.CommandV("show-text", _("Files/URLs were added to the playlist"));
|
||||
}
|
||||
}
|
||||
|
||||
public void LoadAudio(IList<string> args)
|
||||
void LoadAudio(IList<string> args)
|
||||
{
|
||||
using var dialog = new OpenFileDialog();
|
||||
string path = Player.GetPropertyString("path");
|
||||
@@ -192,7 +229,7 @@ public class GuiCommand
|
||||
Player.CommandV("audio-add", i);
|
||||
}
|
||||
|
||||
public void RegisterFileAssociations(IList<string> args)
|
||||
void RegisterFileAssociations(IList<string> args)
|
||||
{
|
||||
string perceivedType = args[0];
|
||||
string[] extensions = Array.Empty<string>();
|
||||
@@ -230,7 +267,7 @@ public class GuiCommand
|
||||
catch { }
|
||||
}
|
||||
|
||||
public void ShowMediaInfo(IList<string> args)
|
||||
void ShowMediaInfo(IList<string> args)
|
||||
{
|
||||
if (Player.PlaylistPos == -1)
|
||||
return;
|
||||
@@ -312,17 +349,17 @@ public class GuiCommand
|
||||
}
|
||||
}
|
||||
|
||||
public static string FormatTime(double value) => ((int)value).ToString("00");
|
||||
string FormatTime(double value) => ((int)value).ToString("00");
|
||||
|
||||
public void ShowBindings() => ShowTextWithEditor("Bindings", Player.UsedInputConfContent);
|
||||
void ShowBindings() => ShowTextWithEditor("Bindings", Player.UsedInputConfContent);
|
||||
|
||||
public void AddToPath()
|
||||
void AddToPath()
|
||||
{
|
||||
string path = Environment.GetEnvironmentVariable("Path", EnvironmentVariableTarget.User)!;
|
||||
|
||||
if (path.ToLower().Contains(Folder.Startup.TrimEnd(Path.DirectorySeparatorChar).ToLower()))
|
||||
{
|
||||
Msg.ShowWarning("mpv.net is already in Path.");
|
||||
Msg.ShowWarning(_("mpv.net is already in the Path environment variable."));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -330,63 +367,37 @@ public class GuiCommand
|
||||
Folder.Startup.TrimEnd(Path.DirectorySeparatorChar) + ";" + path,
|
||||
EnvironmentVariableTarget.User);
|
||||
|
||||
Msg.ShowInfo("mpv.net successfully was added to Path.");
|
||||
Msg.ShowInfo(_("mpv.net was successfully added to the Path environment variable."));
|
||||
}
|
||||
|
||||
public void ShowPlaylist()
|
||||
void RemoveFromPath()
|
||||
{
|
||||
var count = Player.GetPropertyInt("playlist-count");
|
||||
string path = Environment.GetEnvironmentVariable("Path", EnvironmentVariableTarget.User)!;
|
||||
|
||||
if (count < 1)
|
||||
return;
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
for (int i = 0; i < count; i++)
|
||||
if (!path.Contains(Folder.Startup.TrimEnd(Path.DirectorySeparatorChar)))
|
||||
{
|
||||
string name = Player.GetPropertyString($"playlist/{i}/title");
|
||||
|
||||
if (string.IsNullOrEmpty(name))
|
||||
name = Player.GetPropertyString($"playlist/{i}/filename").FileName();
|
||||
|
||||
sb.AppendLine(name);
|
||||
Msg.ShowWarning(_("mpv.net was not found in the Path environment variable."));
|
||||
return;
|
||||
}
|
||||
|
||||
string header = BR + "For a playlist menu the following user scripts exist:" + BR2 +
|
||||
"https://github.com/stax76/mpv-scripts#command_palette" + BR +
|
||||
"https://github.com/stax76/mpv-scripts#search_menu" + BR +
|
||||
"https://github.com/tomasklaen/uosc" + BR +
|
||||
"https://github.com/jonniek/mpv-playlistmanager" + BR2;
|
||||
path = path.Replace(Folder.Startup.TrimEnd(Path.DirectorySeparatorChar), "");
|
||||
path = path.Replace(";;", ";").Trim(';');
|
||||
|
||||
Msg.ShowInfo(header + sb.ToString().TrimEnd());
|
||||
Environment.SetEnvironmentVariable("Path", path, EnvironmentVariableTarget.User);
|
||||
|
||||
Msg.ShowInfo(_("mpv.net was successfully removed from the Path environment variable."));
|
||||
}
|
||||
|
||||
// deprecated
|
||||
public void QuickBookmark() =>
|
||||
Msg.ShowInfo("This feature was moved to a user script,\nwhich can be found here:\n\n" +
|
||||
void QuickBookmark() =>
|
||||
Msg.ShowInfo(_("This feature was removed, but there are user scripts:") + BR2 +
|
||||
"https://github.com/stax76/mpv-scripts/blob/main/misc.lua");
|
||||
|
||||
// deprecated
|
||||
public void ShowHistory() =>
|
||||
Msg.ShowInfo("This feature was moved to a user script,\nwhich can be found here:\n\n" +
|
||||
void ShowHistory() =>
|
||||
Msg.ShowInfo(_("This feature was removed, but there are user scripts:") + BR2 +
|
||||
"https://github.com/stax76/mpv-scripts/blob/main/history.lua");
|
||||
|
||||
// deprecated
|
||||
public void ShowCommandPalette() =>
|
||||
Msg.ShowInfo(
|
||||
"This feature was removed but is still available in the form of user scripts:" + BR2 +
|
||||
"https://github.com/stax76/mpv-scripts#command_palette" + BR +
|
||||
"https://github.com/stax76/mpv-scripts#search_menu" + BR +
|
||||
"https://github.com/tomasklaen/uosc");
|
||||
void ShowRemoved() => Msg.ShowInfo(_("This feature was removed."));
|
||||
}
|
||||
|
||||
|
||||
|
||||
//public void ShowCommandPalette()
|
||||
//{
|
||||
// MainForm.Instance?.BeginInvoke(() => {
|
||||
// CommandPalette.Instance.SetItems(CommandPalette.GetItems());
|
||||
// MainForm.Instance.ShowCommandPalette();
|
||||
// CommandPalette.Instance.SelectFirst();
|
||||
// });
|
||||
//}
|
||||
@@ -7,7 +7,7 @@ using static MpvNet.Windows.Native.WinApi;
|
||||
|
||||
namespace MpvNet.Windows.Help;
|
||||
|
||||
public class WinApiHelp
|
||||
public static class WinApiHelp
|
||||
{
|
||||
public static Version WindowsTen1607 { get; } = new Version(10, 0, 14393); // Windows 10 1607
|
||||
|
||||
@@ -27,31 +27,51 @@ public class WinApiHelp
|
||||
}
|
||||
}
|
||||
|
||||
public static void SubtractWindowBorders(IntPtr hwnd, ref Rect rc, int dpi)
|
||||
public static void AdjustWindowRect(IntPtr hwnd, ref RECT rc, int dpi)
|
||||
{
|
||||
Rect r = new Rect(0, 0, 0, 0);
|
||||
AddWindowBorders(hwnd, ref r, dpi);
|
||||
uint style = (uint)GetWindowLongPtr(hwnd, -16); // GWL_STYLE
|
||||
uint styleEx = (uint)GetWindowLongPtr(hwnd, -20); // GWL_EXSTYLE
|
||||
|
||||
if (Environment.OSVersion.Version >= WindowsTen1607)
|
||||
AdjustWindowRectExForDpi(ref rc, style, false, styleEx, (uint)dpi);
|
||||
else
|
||||
Native.WinApi.AdjustWindowRect(ref rc, style, false);
|
||||
}
|
||||
|
||||
public static void AddWindowBorders(IntPtr hwnd, ref RECT rc, int dpi, bool changeTop)
|
||||
{
|
||||
RECT win = rc;
|
||||
AdjustWindowRect(hwnd, ref rc, dpi);
|
||||
|
||||
if (changeTop)
|
||||
{
|
||||
int top = rc.Top;
|
||||
top -= rc.Top - win.Top;
|
||||
rc = new RECT(rc.Left, top, rc.Right, rc.Bottom);
|
||||
}
|
||||
}
|
||||
|
||||
public static void SubtractWindowBorders(IntPtr hwnd, ref RECT rc, int dpi, bool changeTop)
|
||||
{
|
||||
RECT r = new RECT();
|
||||
AddWindowBorders(hwnd, ref r, dpi, changeTop);
|
||||
rc.Left -= r.Left;
|
||||
rc.Top -= r.Top;
|
||||
rc.Right -= r.Right;
|
||||
rc.Bottom -= r.Bottom;
|
||||
}
|
||||
|
||||
public static void AddWindowBorders(IntPtr hwnd, ref Rect rc, int dpi)
|
||||
public static int GetTitleBarHeight(IntPtr hwnd, int dpi)
|
||||
{
|
||||
uint windowStyle = (uint)GetWindowLong(hwnd, -16); // GWL_STYLE
|
||||
uint windowStyleEx = (uint)GetWindowLong(hwnd, -20); // GWL_EXSTYLE
|
||||
|
||||
if (Environment.OSVersion.Version >= WindowsTen1607)
|
||||
AdjustWindowRectExForDpi(ref rc, windowStyle, false, windowStyleEx, (uint)dpi);
|
||||
else
|
||||
AdjustWindowRect(ref rc, windowStyle, false);
|
||||
RECT rect = new RECT();
|
||||
AdjustWindowRect(hwnd, ref rect, dpi);
|
||||
return -rect.Top;
|
||||
}
|
||||
|
||||
public static Rectangle GetWorkingArea(IntPtr handle, Rectangle workingArea)
|
||||
{
|
||||
if (handle != IntPtr.Zero && GetDwmWindowRect(handle, out Rect dwmRect) &&
|
||||
GetWindowRect(handle, out Rect rect))
|
||||
if (handle != IntPtr.Zero && GetDwmWindowRect(handle, out RECT dwmRect) &&
|
||||
GetWindowRect(handle, out RECT rect))
|
||||
{
|
||||
int left = workingArea.Left;
|
||||
int top = workingArea.Top;
|
||||
@@ -69,28 +89,12 @@ public class WinApiHelp
|
||||
return workingArea;
|
||||
}
|
||||
|
||||
public static bool GetDwmWindowRect(IntPtr handle, out Rect rect)
|
||||
public static bool GetDwmWindowRect(IntPtr handle, out RECT rect)
|
||||
{
|
||||
const uint DWMWA_EXTENDED_FRAME_BOUNDS = 9;
|
||||
|
||||
return 0 == DwmGetWindowAttribute(handle, DWMWA_EXTENDED_FRAME_BOUNDS,
|
||||
out rect, (uint)Marshal.SizeOf<Rect>());
|
||||
}
|
||||
|
||||
public static IntPtr GetWindowLong(IntPtr hWnd, int nIndex)
|
||||
{
|
||||
if (IntPtr.Size == 8)
|
||||
return GetWindowLongPtr(hWnd, nIndex);
|
||||
else
|
||||
return GetWindowLong32(hWnd, nIndex);
|
||||
}
|
||||
|
||||
public static IntPtr SetWindowLong(IntPtr hWnd, int nIndex, uint dwNewLong)
|
||||
{
|
||||
if (IntPtr.Size == 8)
|
||||
return SetWindowLongPtr(hWnd, nIndex, dwNewLong);
|
||||
else
|
||||
return SetWindowLong32(hWnd, nIndex, dwNewLong);
|
||||
out rect, (uint)Marshal.SizeOf<RECT>());
|
||||
}
|
||||
|
||||
public static string GetAppPathForExtension(params string[] extensions)
|
||||
|
||||
@@ -1,58 +0,0 @@
|
||||
|
||||
using System.Windows;
|
||||
using MpvNet.Windows.WPF;
|
||||
|
||||
namespace MpvNet.Windows.Help;
|
||||
|
||||
public class WinMpvHelp
|
||||
{
|
||||
public static void Setup()
|
||||
{
|
||||
string dir = RegistryHelp.GetString("PathEnvVarCheck"); // backward compatibility
|
||||
|
||||
if (dir == Folder.Startup)
|
||||
return;
|
||||
|
||||
dir = RegistryHelp.GetString("Setup");
|
||||
|
||||
if (dir == Folder.Startup)
|
||||
return;
|
||||
|
||||
string path = Environment.GetEnvironmentVariable("Path", EnvironmentVariableTarget.User)!;
|
||||
|
||||
if (!path.ToLower().Contains(Folder.Startup.TrimEnd(Path.DirectorySeparatorChar).ToLower()))
|
||||
{
|
||||
var result = Msg.ShowQuestion("Would you like to add mpv.net to the Path environment variable?" + BR2 +
|
||||
"This will allow using mpv.net in a console/terminal.", MessageBoxButton.YesNo);
|
||||
|
||||
if (result == MessageBoxResult.Yes)
|
||||
{
|
||||
Environment.SetEnvironmentVariable("Path",
|
||||
Folder.Startup.TrimEnd(Path.DirectorySeparatorChar) + ";" + path,
|
||||
EnvironmentVariableTarget.User);
|
||||
|
||||
Msg.ShowInfo("mpv.net was added successfully to Path.");
|
||||
}
|
||||
else
|
||||
Msg.ShowInfo("If you want to add mpv.net to the Path environment variable later," + BR +
|
||||
"you can do so with the context menu (Settings/Setup)");
|
||||
}
|
||||
|
||||
var result2 = Msg.ShowQuestion("Would you like to register video file associations?", MessageBoxButton.YesNo);
|
||||
|
||||
if (result2 == MessageBoxResult.Yes)
|
||||
{
|
||||
Player.Command("script-message-to mpvnet reg-file-assoc video");
|
||||
|
||||
result2 = Msg.ShowQuestion("Would you like to register audio file associations?", MessageBoxButton.YesNo);
|
||||
|
||||
if (result2 == MessageBoxResult.Yes)
|
||||
Player.Command("script-message-to mpvnet reg-file-assoc audio");
|
||||
}
|
||||
else
|
||||
Msg.ShowInfo("If you want to register file associations later," + BR +
|
||||
"you can do so with the context menu (Settings/Setup)");
|
||||
|
||||
RegistryHelp.SetString("Setup", Folder.Startup);
|
||||
}
|
||||
}
|
||||
@@ -11,9 +11,9 @@
|
||||
<UseWindowsForms>true</UseWindowsForms>
|
||||
<ApplicationIcon>mpv-icon.ico</ApplicationIcon>
|
||||
<Product>mpv.net</Product>
|
||||
<FileVersion>7.0.0.4</FileVersion>
|
||||
<AssemblyVersion>7.0.0.4</AssemblyVersion>
|
||||
<InformationalVersion>7.0.0.4</InformationalVersion>
|
||||
<FileVersion>7.1.1.1</FileVersion>
|
||||
<AssemblyVersion>7.1.1.1</AssemblyVersion>
|
||||
<InformationalVersion>7.1.1.1</InformationalVersion>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
using System.Drawing;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using static HandyControl.Tools.Interop.InteropValues;
|
||||
|
||||
namespace MpvNet.Windows.Native;
|
||||
|
||||
@@ -20,7 +21,7 @@ public static class WinApi
|
||||
public static extern uint ActivateKeyboardLayout(IntPtr hkl, uint flags);
|
||||
|
||||
[DllImport("user32.dll")]
|
||||
public static extern bool GetWindowRect(IntPtr hwnd, out Rect lpRect);
|
||||
public static extern bool GetWindowRect(IntPtr hwnd, out RECT lpRect);
|
||||
|
||||
[DllImport("user32.dll", CharSet = CharSet.Unicode)]
|
||||
public static extern IntPtr FindWindowEx(
|
||||
@@ -48,28 +49,19 @@ public static class WinApi
|
||||
public static extern int GetDpiForWindow(IntPtr hwnd);
|
||||
|
||||
[DllImport("user32.dll")]
|
||||
public static extern bool AdjustWindowRect(ref Rect lpRect, uint dwStyle, bool bMenu);
|
||||
public static extern bool AdjustWindowRect(ref RECT lpRect, uint dwStyle, bool bMenu);
|
||||
|
||||
[DllImport("user32.dll")]
|
||||
public static extern bool AdjustWindowRectExForDpi(
|
||||
ref Rect lpRect, uint dwStyle, bool bMenu, uint dwExStyle, uint dpi);
|
||||
ref RECT lpRect, uint dwStyle, bool bMenu, uint dwExStyle, uint dpi);
|
||||
|
||||
[DllImport("user32.dll")]
|
||||
public static extern bool SetWindowPos(
|
||||
IntPtr hWnd, IntPtr hWndInsertAfter, int x, int y, int cx, int cy, uint uFlags);
|
||||
|
||||
[DllImport("user32.dll", EntryPoint = "GetWindowLong")]
|
||||
public static extern IntPtr GetWindowLong32(IntPtr hWnd, int nIndex);
|
||||
|
||||
[DllImport("user32.dll")]
|
||||
public static extern IntPtr GetWindowLongPtr(IntPtr hWnd, int nIndex);
|
||||
|
||||
[DllImport("user32.dll", EntryPoint = "SetWindowLong")]
|
||||
public static extern IntPtr SetWindowLong32(IntPtr hWnd, int nIndex, uint dwNewLong);
|
||||
|
||||
[DllImport("user32.dll")]
|
||||
public static extern IntPtr SetWindowLongPtr(IntPtr hWnd, int nIndex, uint dwNewLong);
|
||||
|
||||
[DllImport("gdi32.dll")]
|
||||
public static extern int GetDeviceCaps(IntPtr hdc, int nIndex);
|
||||
|
||||
@@ -79,17 +71,17 @@ public static class WinApi
|
||||
|
||||
[DllImport("dwmapi.dll")]
|
||||
public static extern int DwmGetWindowAttribute(
|
||||
IntPtr hwnd, uint dwAttribute, out Rect pvAttribute, uint cbAttribute);
|
||||
IntPtr hwnd, uint dwAttribute, out RECT pvAttribute, uint cbAttribute);
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public struct Rect
|
||||
public struct RECT
|
||||
{
|
||||
public int Left;
|
||||
public int Top;
|
||||
public int Right;
|
||||
public int Bottom;
|
||||
|
||||
public Rect(Rectangle r)
|
||||
public RECT(Rectangle r)
|
||||
{
|
||||
Left = r.Left;
|
||||
Top = r.Top;
|
||||
@@ -97,7 +89,7 @@ public static class WinApi
|
||||
Bottom = r.Bottom;
|
||||
}
|
||||
|
||||
public Rect(int left, int top, int right, int bottom)
|
||||
public RECT(int left, int top, int right, int bottom)
|
||||
{
|
||||
Left = left;
|
||||
Top = top;
|
||||
@@ -110,9 +102,9 @@ public static class WinApi
|
||||
public int Width => Right - Left;
|
||||
public int Height => Bottom - Top;
|
||||
|
||||
public static Rect FromRectangle(Rectangle rect)
|
||||
public static RECT FromRectangle(Rectangle rect)
|
||||
{
|
||||
return new Rect(rect.X, rect.Y, rect.X + rect.Width, rect.Y + rect.Height);
|
||||
return new RECT(rect.X, rect.Y, rect.X + rect.Width, rect.Y + rect.Height);
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
@@ -121,6 +113,20 @@ public static class WinApi
|
||||
}
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public struct NCCALCSIZE_PARAMS
|
||||
{
|
||||
public NCCALCSIZE_PARAMS(RECT[] r, WINDOWPOS wp)
|
||||
{
|
||||
rgrc = r;
|
||||
lppos = wp;
|
||||
}
|
||||
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
|
||||
public RECT[] rgrc;
|
||||
public WINDOWPOS lppos;
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public struct CopyDataStruct
|
||||
{
|
||||
|
||||
@@ -41,7 +41,7 @@ static class Program
|
||||
Theme.Init();
|
||||
Mutex mutex = new Mutex(true, StringHelp.GetMD5Hash(App.ConfPath), out bool isFirst);
|
||||
|
||||
if (Control.ModifierKeys.HasFlag(Keys.Shift) ||
|
||||
if (Control.ModifierKeys == Keys.Shift ||
|
||||
App.CommandLine.Contains("--process-instance=multi") ||
|
||||
App.CommandLine.Contains("--o="))
|
||||
{
|
||||
@@ -101,9 +101,9 @@ static class Program
|
||||
else if (App.CommandLine.Contains("--o="))
|
||||
{
|
||||
App.AutoLoadFolder = false;
|
||||
Player.Init(IntPtr.Zero);
|
||||
Player.ProcessCommandLineArgsPost();
|
||||
Player.ProcessCommandLineFiles();
|
||||
Player.Init(IntPtr.Zero, true);
|
||||
CommandLine.ProcessCommandLineArgsPostInit();
|
||||
CommandLine.ProcessCommandLineFiles();
|
||||
Player.SetPropertyString("idle", "no");
|
||||
Player.EventLoop();
|
||||
Player.Destroy();
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
|
||||
name = process-instance
|
||||
file = mpvnet
|
||||
default = single
|
||||
directory = General
|
||||
help = Defines if more then one mpv.net process is allowed.\nMulti can alternatively be enabled by pressing the SHIFT key. (mpv.net option)
|
||||
default = single
|
||||
option = multi Create a new process everytime the shell starts mpv.net
|
||||
option = single Force a single process everytime the shell starts mpv.net
|
||||
option = queue Force a single process and add files to playlist
|
||||
@@ -15,9 +15,9 @@ help = <int> Amount of recent files to be remembered. Default: 15 (mpv.net optio
|
||||
|
||||
name = media-info
|
||||
file = mpvnet
|
||||
default = yes
|
||||
directory = General
|
||||
help = Usage of the media info library instead of mpv to access media information. (mpv.net option)
|
||||
help = Usage of the media info library instead of mpv to retrieve media information. (mpv.net option)
|
||||
default = yes
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
@@ -46,10 +46,10 @@ help = Used menu syntax for defining the context menu in input.conf.\nmpv.net by
|
||||
|
||||
name = video-sync
|
||||
file = mpv
|
||||
default = audio
|
||||
directory = General
|
||||
help = How the player synchronizes audio and video.\n\nFor more information visit:
|
||||
url = https://mpv.io/manual/master/#options-video-sync
|
||||
default = audio
|
||||
option = audio
|
||||
option = display-resample
|
||||
option = display-resample-vdrop
|
||||
@@ -61,28 +61,28 @@ option = desync
|
||||
|
||||
name = debug-mode
|
||||
file = mpvnet
|
||||
default = no
|
||||
directory = General
|
||||
help = Enable this only when a developer asks for it. (mpv.net option)
|
||||
default = no
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = vo
|
||||
file = mpv
|
||||
default = gpu
|
||||
directory = Video
|
||||
help = Video output drivers to be used.\n\nFor more information visit:
|
||||
url = https://mpv.io/manual/master/#video-output-drivers-vo
|
||||
default = gpu
|
||||
option = gpu General purpose, customizable, GPU-accelerated video output driver. It supports extended scaling methods, dithering, color management, custom shaders, HDR, and more.
|
||||
option = gpu-next Experimental video renderer based on libplacebo. This supports almost the same set of features as --vo=gpu.
|
||||
option = direct3d Video output driver that uses the Direct3D interface.
|
||||
|
||||
name = hwdec
|
||||
file = mpv
|
||||
default = no
|
||||
directory = Video
|
||||
url = https://mpv.io/manual/master/#options-hwdec
|
||||
help = Specify the hardware video decoding API that should be used if possible. Whether hardware decoding is actually done depends on the video codec. If hardware decoding is not possible, mpv will fall back on software decoding.\n\nFor more information visit:
|
||||
help = Specify the hardware video decoding API that should be used if possible. Whether hardware decoding is actually done depends on the video codec. If hardware decoding is not possible, mpv will fall back on software decoding. Hardware decoding is disabled by default to maintain reliability. However, modern hardware should support hardware video decoding, reducing CPU usage and power consumption.\n\nFor more information visit:
|
||||
default = no
|
||||
option = no always use software decoding
|
||||
option = auto enable best hw decoder
|
||||
option = yes exactly the same as auto
|
||||
@@ -99,9 +99,9 @@ option = nvdec-copy copies video back to system RAM
|
||||
|
||||
name = gpu-api
|
||||
file = mpv
|
||||
default = auto
|
||||
directory = Video/Render Options
|
||||
help = Controls which type of graphics APIs will be accepted. On Windows this defaults to d3d11 and should not be changed without a good reason.
|
||||
default = auto
|
||||
option = auto Use any available API
|
||||
option = d3d11 Allow only gpu-context=d3d11
|
||||
option = opengl Allow only OpenGL (requires OpenGL 2.1+ or GLES 2.0+)
|
||||
@@ -109,8 +109,8 @@ option = vulkan Allow only Vulkan
|
||||
|
||||
name = gpu-context
|
||||
file = mpv
|
||||
default = auto
|
||||
directory = Video/Render Options
|
||||
default = auto
|
||||
option = auto auto-select
|
||||
option = d3d11 Win32, with native Direct3D 11 rendering.
|
||||
option = angle Direct3D11 through the OpenGL ES translation layer ANGLE. This supports almost everything the win backend does (if the ANGLE build is new enough).
|
||||
@@ -120,10 +120,10 @@ option = winvk VK_KHR_win32_surface
|
||||
|
||||
name = scale
|
||||
file = mpv
|
||||
default = lanczos
|
||||
directory = Video/Render Options/Scaling
|
||||
help = The GPU renderer filter function to use when upscaling video. There are some more filters, but most are not as useful. For a complete list, pass help as value, e.g.: mpv --scale=help
|
||||
url = https://mpv.io/manual/master/#options-scale
|
||||
default = lanczos
|
||||
option = bilinear
|
||||
option = spline36
|
||||
option = lanczos
|
||||
@@ -134,10 +134,10 @@ option = oversample
|
||||
|
||||
name = cscale
|
||||
file = mpv
|
||||
default = bilinear
|
||||
directory = Video/Render Options/Scaling
|
||||
help = As scale, but for interpolating chroma information. If the image is not subsampled, this option is ignored entirely.
|
||||
url = https://mpv.io/manual/master/#options-cscale
|
||||
default = bilinear
|
||||
option = bilinear
|
||||
option = spline36
|
||||
option = lanczos
|
||||
@@ -148,10 +148,10 @@ option = oversample
|
||||
|
||||
name = dscale
|
||||
file = mpv
|
||||
default = lanczos
|
||||
directory = Video/Render Options/Scaling
|
||||
help = Like scale, but apply these filters on downscaling instead. \nIf no option is selected, it will keep the same with the upscaler.
|
||||
url = https://mpv.io/manual/master/#options-dscale
|
||||
default = lanczos
|
||||
option = bilinear
|
||||
option = spline36
|
||||
option = lanczos
|
||||
@@ -162,25 +162,25 @@ option = oversample
|
||||
|
||||
name = correct-downscaling
|
||||
file = mpv
|
||||
default = no
|
||||
directory = Video/Render Options/Scaling
|
||||
help = When using convolution based filters, extend the filter size when downscaling. Increases quality, but reduces performance while downscaling.\n\nThis will perform slightly sub-optimally for anamorphic video (but still better than without it) since it will extend the size to match only the milder of the scale factors between the axes.
|
||||
default = no
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = sigmoid-upscaling
|
||||
file = mpv
|
||||
default = no
|
||||
directory = Video/Render Options/Scaling
|
||||
help = When upscaling, use a sigmoidal color transform to avoid emphasizing ringing artifacts. This also implies linear-scaling.
|
||||
default = no
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = dither-depth
|
||||
file = mpv
|
||||
default = no
|
||||
directory = Video/Render Options
|
||||
help = Set dither target depth to N. Note that the depth of the connected video display device cannot be detected. Often, LCD panels will do dithering on their own, which conflicts with this option and leads to ugly output.
|
||||
default = no
|
||||
option = no Disable any dithering done by mpv.
|
||||
option = auto Automatic selection. If output bit depth cannot be detected, 8 bits per component are assumed.
|
||||
option = 8 Dither to 8 bit output.
|
||||
@@ -188,34 +188,34 @@ option = 10 Dither to 10 bit output.
|
||||
|
||||
name = deband
|
||||
file = mpv
|
||||
default = no
|
||||
directory = Video/Render Options
|
||||
help = Enable the debanding algorithm. This greatly reduces the amount of visible banding, blocking and other quantization artifacts, at the expense of very slightly blurring some of the finest details. In practice, it's virtually always an improvement - the only reason to disable it would be for performance.
|
||||
default = no
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = hdr-compute-peak
|
||||
file = mpv
|
||||
default = auto
|
||||
directory = Video/Render Options
|
||||
url = https://mpv.io/manual/master/#options-hdr-compute-peak
|
||||
default = auto
|
||||
option = auto
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = allow-delayed-peak-detect
|
||||
file = mpv
|
||||
default = yes
|
||||
directory = Video/Render Options
|
||||
url = https://mpv.io/manual/master/#options-allow-delayed-peak-detect
|
||||
default = yes
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = d3d11va-zero-copy
|
||||
file = mpv
|
||||
default = no
|
||||
directory = Video/Render Options
|
||||
url = https://mpv.io/manual/master/#options-d3d11va-zero-copy
|
||||
default = no
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
@@ -232,9 +232,9 @@ help = Passes extra raw option to the libplacebo rendering backend (used by --vo
|
||||
name = preset
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo
|
||||
default = default
|
||||
help = Override all libplacebo options by the values from the given preset.
|
||||
url = https://libplacebo.org/options/#presetdefaultfasthigh_quality
|
||||
default = default
|
||||
option = default Default settings, tuned to provide a balance of performance and quality.
|
||||
option = fast Disable all advanced rendering, equivalent to passing no to every option.
|
||||
option = high_quality Reset all everything to high quality presets (where available).
|
||||
@@ -242,10 +242,10 @@ option = high_quality Reset all everything to high quality presets (where avail
|
||||
name = upscaler
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Scaling
|
||||
default = lanczos
|
||||
help = Sets the filter used for upscaling.
|
||||
url = https://libplacebo.org/options/#upscalerfilter
|
||||
option-name-width = 135
|
||||
default = lanczos
|
||||
option = none No filter, only use basic GPU texture sampling.
|
||||
option = nearest Nearest-neighbour (box) sampling (very fast).
|
||||
option = bilinear Bilinear sampling (very fast).
|
||||
@@ -261,8 +261,8 @@ option = ewa_lanczos4sharpest Very sharp version of ewa_lanczos, with anti-ring
|
||||
name = downscaler
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Scaling
|
||||
default = hermite
|
||||
help = Sets the filter used for downscaling. The most relevant options, roughly ordered from fastest to slowest.
|
||||
default = hermite
|
||||
option = none Use the same filter as specified for upscaler
|
||||
option = box Box averaging (very fast)
|
||||
option = hermite Hermite-weighted averaging (fast)
|
||||
@@ -276,8 +276,8 @@ option = lanczos Lanczos reconstruction
|
||||
name = plane_upscaler
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Scaling
|
||||
default = none
|
||||
help = Override the filter used for upscaling planes, e.g. chroma/alpha. If set to none, use the same setting as upscaler, respectively.
|
||||
default = none
|
||||
option = none Use the same filter as specified for upscaler
|
||||
option = box Box averaging (very fast)
|
||||
option = hermite Hermite-weighted averaging (fast)
|
||||
@@ -291,8 +291,8 @@ option = lanczos Lanczos reconstruction
|
||||
name = plane_downscaler
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Scaling
|
||||
default = none
|
||||
help = Override the filter used for downscaling planes, e.g. chroma/alpha. If set to none, use the same setting as downscaler, respectively.
|
||||
default = none
|
||||
option = none Use the same filter as specified for upscaler
|
||||
option = box Box averaging (very fast)
|
||||
option = hermite Hermite-weighted averaging (fast)
|
||||
@@ -306,8 +306,8 @@ option = lanczos Lanczos reconstruction
|
||||
name = frame_mixer
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Scaling
|
||||
default = oversample
|
||||
help = Sets the filter used for frame mixing (temporal interpolation). Roughly ordered from fastest to slowest.
|
||||
default = oversample
|
||||
option = none Disable frame mixing, show nearest frame to target PTS
|
||||
option = oversample Oversampling, only mix "edge" frames while preserving FPS
|
||||
option = hermite Hermite-weighted frame mixing
|
||||
@@ -327,6 +327,14 @@ default = no
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = deband_preset
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Debanding
|
||||
help = Overrides the value of all options in this section by their default values from the given preset.
|
||||
default = none
|
||||
option = none
|
||||
option = default
|
||||
|
||||
name = deband_iterations
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Debanding
|
||||
@@ -355,6 +363,14 @@ default = yes
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = sigmoid_preset
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Sigmoidization
|
||||
help = Overrides the value of all options in this section by their default values from the given preset.
|
||||
default = none
|
||||
option = none
|
||||
option = default
|
||||
|
||||
name = sigmoid_center
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Sigmoidization
|
||||
@@ -365,6 +381,355 @@ file = libplacebo
|
||||
directory = Video/libplacebo/Sigmoidization
|
||||
help = <1.0..20.0> The slope (steepness) of the sigmoid curve. Defaults to 6.5.
|
||||
|
||||
name = color_adjustment
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Adjustment
|
||||
help = Enables color adjustment.
|
||||
default = yes
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = color_adjustment_preset
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Adjustment
|
||||
help = Overrides the value of all options in this section by their default values from the given preset.
|
||||
default = none
|
||||
option = none
|
||||
option = neutral
|
||||
|
||||
name = brightness
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Adjustment
|
||||
help = <-1.0..1.0> Brightness boost. Adds a constant bias onto the source luminance signal. 0.0 = neutral, 1.0 = solid white, -1.0 = solid black. Defaults to 0.0.
|
||||
|
||||
name = contrast
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Adjustment
|
||||
help = <0.0..100.0> Contrast gain. Multiplies the source luminance signal by a constant factor. 1.0 = neutral, 0.0 = solid black. Defaults to 1.0.
|
||||
|
||||
name = saturation
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Adjustment
|
||||
help = <0.0..100.0> Saturation gain. Multiplies the source chromaticity signal by a constant factor. 1.0 = neutral, 0.0 = grayscale. Defaults to 1.0.
|
||||
|
||||
name = hue
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Adjustment
|
||||
help = <angle> Hue shift. Corresponds to a rotation of the UV subvector around the neutral axis. Specified in radians. Defaults to 0.0 (neutral).
|
||||
|
||||
name = gamma
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Adjustment
|
||||
help = <0.0..100.0> Gamma lift. Subjectively brightnes or darkens the scene while preserving overall contrast. 1.0 = neutral, 0.0 = solid black. Defaults to 1.0.
|
||||
|
||||
name = temperature
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Adjustment
|
||||
help = <-1.143..5.286> Color temperature shift. Relative to 6500 K, a value of 0.0 gives you 6500 K (no change), a value of -1.0 gives you 3000 K, and a value of 1.0 gives you 10000 K. Defaults to 0.0.
|
||||
|
||||
name = peak_detect
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/HDR Peak Detection
|
||||
help = Enables HDR peak detection.
|
||||
default = yes
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = peak_detection_preset
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/HDR Peak Detection
|
||||
help = Overrides the value of all options in this section by their default values from the given preset. high_quality also enables frame histogram measurement.
|
||||
default = none
|
||||
option = none
|
||||
option = default
|
||||
option = high_quality
|
||||
|
||||
name = peak_smoothing_period
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/HDR Peak Detection
|
||||
help = <0.0..1000.0> Smoothing coefficient for the detected values.
|
||||
url = https://libplacebo.org/options/#peak_smoothing_period0010000
|
||||
|
||||
name = scene_threshold_low
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/HDR Peak Detection
|
||||
url = https://libplacebo.org/options/#scene_threshold_low001000-scene_threshold_high001000
|
||||
|
||||
name = scene_threshold_high
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/HDR Peak Detection
|
||||
url = https://libplacebo.org/options/#scene_threshold_low001000-scene_threshold_high001000
|
||||
|
||||
name = peak_percentile
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/HDR Peak Detection
|
||||
help = <0.0..100.0> Which percentile of the input image brightness histogram to consider as the true peak of the scene.
|
||||
url = https://libplacebo.org/options/#peak_percentile001000
|
||||
|
||||
name = black_cutoff
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/HDR Peak Detection
|
||||
help = <0.0..100.0> Black cutoff strength.
|
||||
url = https://libplacebo.org/options/#black_cutoff001000
|
||||
|
||||
name = allow_delayed_peak
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/HDR Peak Detection
|
||||
help = Allows the peak detection result to be delayed by up to a single frame, which can sometimes improve throughput, at the cost of introducing the possibility of 1-frame flickers on transitions.
|
||||
default = no
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = color_map
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Mapping
|
||||
help = Enables the use of these color mapping settings. Disabling this option does not disable color mapping, it just means "use the default options for everything".
|
||||
default = yes
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = color_map_preset
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Mapping
|
||||
help = Overrides the value of all options in this section by their default values from the given preset. high_quality also enables HDR contrast recovery.
|
||||
default = none
|
||||
option = none
|
||||
option = default
|
||||
option = high_quality
|
||||
|
||||
name = gamut_mapping
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Mapping
|
||||
help = Gamut mapping function to use to handle out-of-gamut colors, including colors which are out-of-gamut as a consequence of tone mapping.
|
||||
default = perceptual
|
||||
option = clip
|
||||
option = perceptual
|
||||
option = softclip
|
||||
option = relative
|
||||
option = saturation
|
||||
option = absolute
|
||||
option = desaturate
|
||||
option = darken
|
||||
option = highlight
|
||||
option = linear
|
||||
|
||||
name = perceptual_deadzone
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Mapping
|
||||
help = <0.0..1.0> (Relative) chromaticity protection zone for perceptual mapping. Defaults to 0.30.
|
||||
|
||||
name = perceptual_strength
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Mapping
|
||||
help = <0.0..1.0> Strength of the perceptual saturation mapping component. Defaults to 0.80.
|
||||
|
||||
name = colorimetric_gamma
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Mapping
|
||||
help = <0.0..10.0> I vs C curve gamma to use for colorimetric clipping (relative, absolute and darken). Defaults to 1.80.
|
||||
|
||||
name = softclip_knee
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Mapping
|
||||
help = <0.0..1.0> Knee point to use for soft-clipping methods (perceptual, softclip). Defaults to 0.70.
|
||||
|
||||
name = softclip_desat
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Mapping
|
||||
help = <0.0..1.0> Desaturation strength for softclip. Defaults to 0.35.
|
||||
|
||||
name = lut3d_size_I
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Mapping
|
||||
help = <0..1024> Gamut mapping 3DLUT size. Setting a dimension to 0 picks the default value. Defaults to 48.
|
||||
|
||||
name = lut3d_size_C
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Mapping
|
||||
help = <0..1024> Gamut mapping 3DLUT size. Setting a dimension to 0 picks the default value. Defaults to 32.
|
||||
|
||||
name = lut3d_size_h
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Mapping
|
||||
help = <0..1024> Gamut mapping 3DLUT size. Setting a dimension to 0 picks the default value. Defaults to 256.
|
||||
|
||||
name = lut3d_tricubic
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Mapping
|
||||
help = Use higher quality, but slower, tricubic interpolation for gamut mapping 3DLUTs. May substantially improve the 3DLUT gamut mapping accuracy, in particular at smaller 3DLUT sizes. Shouldn't have much effect at the default size.
|
||||
default = no
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = gamut_expansion
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Mapping
|
||||
help = If enabled, allows the gamut mapping function to expand the gamut, in cases where the target gamut exceeds that of the source. If disabled, the source gamut will never be enlarged, even when using a gamut mapping function capable of bidirectional mapping.
|
||||
default = no
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = tone_mapping
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Mapping
|
||||
help = Tone mapping function to use for adapting between difference luminance ranges, including black point adaptation.
|
||||
default = spline
|
||||
option = clip
|
||||
option = spline
|
||||
option = st2094-40
|
||||
option = st2094-10
|
||||
option = bt2390
|
||||
option = bt2446a
|
||||
option = reinhard
|
||||
option = mobius
|
||||
option = hable
|
||||
option = gamma
|
||||
option = linear
|
||||
option = linearlight
|
||||
|
||||
name = knee_adaptation
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Mapping
|
||||
url = https://libplacebo.org/options/#tone-mapping-constants
|
||||
|
||||
name = knee_minimum
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Mapping
|
||||
help = <0.0..0.5> Configures the knee point minimum as a percentage of the PQ luminance range. Provides a hard limit on the knee point chosen by knee_adaptation. Defaults to 0.1.
|
||||
|
||||
name = knee_maximum
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Mapping
|
||||
help = <0.5..1.0> Configures the knee point maximum as a percentage of the PQ luminance range. Provides a hard limit on the knee point chosen by knee_adaptation. Defaults to 0.8.
|
||||
|
||||
name = knee_default
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Mapping
|
||||
help = <0.0..1.0> Default knee point to use in the absence of source scene average metadata. Normally, this is ignored in favor of picking the knee point as the (relative) source scene average brightness level. Defaults to 0.4.
|
||||
|
||||
name = knee_offset
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Mapping
|
||||
help = <0.5..2.0> Knee point offset (for bt2390 only). Note that a value of 0.5 is the spec-defined default behavior, which differs from the libplacebo default of 1.0.
|
||||
|
||||
name = slope_tuning
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Mapping
|
||||
url = https://libplacebo.org/options/#tone-mapping-constants
|
||||
|
||||
name = slope_offset
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Mapping
|
||||
url = https://libplacebo.org/options/#tone-mapping-constants
|
||||
|
||||
name = spline_contrast
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Mapping
|
||||
url = https://libplacebo.org/options/#tone-mapping-constants
|
||||
|
||||
name = reinhard_contrast
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Mapping
|
||||
help = <0.0..1.0> For the reinhard function, this specifies the local contrast coefficient at the display peak. Essentially, a value of 0.5 implies that the reference white will be about half as bright as when clipping. Defaults to 0.5.
|
||||
|
||||
name = linear_knee
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Mapping
|
||||
help = <0.0..1.0> For legacy functions (mobius, gamma) which operate on linear light, this directly sets the corresponding knee point. Defaults to 0.3.
|
||||
|
||||
name = exposure
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Mapping
|
||||
help = <0.0..10.0> For linear methods (linear, linearlight), this controls the linear exposure/gain applied to the image. Defaults to 1.0.
|
||||
|
||||
name = inverse_tone_mapping
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Mapping
|
||||
help = If enabled, and supported by the given tone mapping function, will perform inverse tone mapping to expand the dynamic range of a signal. libplacebo is not liable for any HDR-induced eye damage.
|
||||
default = no
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = tone_map_metadata
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Mapping
|
||||
help = Data source to use when tone-mapping. Setting this to a specific value allows overriding the default metadata preference logic.
|
||||
default = any
|
||||
option = any
|
||||
option = none
|
||||
option = hdr10
|
||||
option = hdr10plus
|
||||
option = cie_y
|
||||
|
||||
name = tone_lut_size
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Mapping
|
||||
help = <0..4096> Tone mapping LUT size. Setting 0 picks the default size. Defaults to 256.
|
||||
|
||||
name = contrast_recovery
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Mapping
|
||||
url = https://libplacebo.org/options/#contrast_recovery0020
|
||||
|
||||
name = contrast_smoothness
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Mapping
|
||||
help = <1.0..32.0> HDR contrast recovery lowpass kernel size. Increasing or decreasing this will affect the visual appearance substantially. Defaults to 3.5.
|
||||
|
||||
name = force_tone_mapping_lut
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Mapping
|
||||
help = Force the use of a full tone-mapping LUT even for functions that have faster pure GLSL replacements (e.g. clip, linear, saturation). This is a debug option.
|
||||
default = no
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = visualize_lut
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Mapping
|
||||
url = https://libplacebo.org/options/#debug-options
|
||||
default = no
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = visualize_lut_x0
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Mapping
|
||||
help = Controls where to draw the LUt visualization, relative to the rendered video. Defaults to 0.0.
|
||||
|
||||
name = visualize_lut_y0
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Mapping
|
||||
help = Controls where to draw the LUt visualization, relative to the rendered video. Defaults to 0.0.
|
||||
|
||||
name = visualize_lut_x1
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Mapping
|
||||
help = Controls where to draw the LUt visualization, relative to the rendered video. Defaults to 1.0.
|
||||
|
||||
name = visualize_lut_y1
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Mapping
|
||||
help = Controls where to draw the LUt visualization, relative to the rendered video. Defaults to 1.0.
|
||||
|
||||
name = visualize_hue
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Mapping
|
||||
help = Controls the rotation of the gamut 3DLUT visualization. Rotates the gamut through hue space (around the I axis), in radians. Defaults to 0.0.
|
||||
|
||||
name = visualize_theta
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Mapping
|
||||
help = Controls the rotation of the gamut 3DLUT visualization. The theta parameter vertically rotates the cross section (around the C axis), in radians. Defaults to 0.0.
|
||||
|
||||
name = show_clipping
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Color Mapping
|
||||
help = Graphically highlight hard-clipped pixels during tone-mapping (i.e. pixels that exceed the claimed source luminance range).
|
||||
default = no
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = screenshot-directory
|
||||
file = mpv
|
||||
width = 500
|
||||
@@ -374,40 +739,39 @@ help = Store screenshots in this directory. This path is joined with the filenam
|
||||
|
||||
name = screenshot-format
|
||||
file = mpv
|
||||
default = jpg
|
||||
directory = Video/Screenshot
|
||||
help = Set the image file type used for saving screenshots.
|
||||
default = jpg
|
||||
option = jpg
|
||||
option = png
|
||||
|
||||
name = screenshot-tag-colorspace
|
||||
file = mpv
|
||||
default = no
|
||||
directory = Video/Screenshot
|
||||
help = Tag screenshots with the appropriate colorspace. Note that not all formats are supported.
|
||||
default = yes
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = screenshot-high-bit-depth
|
||||
file = mpv
|
||||
default = yes
|
||||
directory = Video/Screenshot
|
||||
help = If possible, write screenshots with a bit depth similar to the source video. This is interesting in particular for PNG, as this sometimes triggers writing 16 bit PNGs with huge file sizes. This will also include an unused alpha channel in the resulting files if 16 bit is used.
|
||||
default = yes
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = screenshot-jpeg-source-chroma
|
||||
file = mpv
|
||||
default = yes
|
||||
directory = Video/Screenshot
|
||||
help = Write JPEG files with the same chroma subsampling as the video. If disabled, the libjpeg default is used.
|
||||
default = yes
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = screenshot-template
|
||||
file = mpv
|
||||
directory = Video/Screenshot
|
||||
type = string
|
||||
help = Specify the filename template used to save screenshots. The template specifies the filename without file extension, and can contain format specifiers, which will be substituted when taking a screenshot. By default, the template is mpv-shot%n, which results in filenames like mpv-shot0012.png for example.\n\nFind the full documentation here:
|
||||
url = https://mpv.io/manual/master/#options-screenshot-template
|
||||
|
||||
@@ -433,23 +797,22 @@ help = Set the startup volume. 0 means silence, 100 means no volume reduction or
|
||||
|
||||
name = remember-volume
|
||||
file = mpvnet
|
||||
default = yes
|
||||
directory = Audio
|
||||
help = Save volume and mute on exit and restore it on start. (mpv.net option)
|
||||
default = yes
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = alang
|
||||
file = mpv
|
||||
directory = Audio
|
||||
type = string
|
||||
help = Specify a priority list of audio languages to use. Different container formats employ different language codes. DVDs use ISO 639-1 two-letter language codes, Matroska, MPEG-TS and NUT use ISO 639-2 three-letter language codes, while OGM uses a free-form identifier. See also aid.
|
||||
|
||||
name = audio-file-auto
|
||||
file = mpv
|
||||
default = no
|
||||
directory = Audio
|
||||
help = Load additional audio files matching the video filename. The parameter specifies how external audio files are matched.
|
||||
default = no
|
||||
option = no Don't automatically load external audio files.
|
||||
option = exact Load the media filename with audio file extension.
|
||||
option = fuzzy Load all audio files containing media filename.
|
||||
@@ -458,21 +821,28 @@ option = all Load all audio files in the current and audio-file-paths directo
|
||||
name = audio-device
|
||||
file = mpv
|
||||
directory = Audio
|
||||
type = string
|
||||
width = 400
|
||||
url = https://mpv.io/manual/master/#options-audio-device
|
||||
help = <name> Use the given audio device. This consists of the audio output name, e.g. alsa, followed by /, followed by the audio output specific device name. The default value for this option is auto, which tries every audio output in preference order with the default device.
|
||||
help = <name> Use the given audio device. This consists of the audio output name, e.g. alsa, followed by /, followed by the audio output specific device name. The default value for this option is auto, which tries every audio output in preference order with the default device.\n\nTo list available audio devices in mpv.net, use the context menu:\n\nView > More > Show Audio Devices.\n\nTo change the audio device in mpv.net, also use the context menu:\n\nAudio > Audio Device
|
||||
|
||||
name = remember-audio-device
|
||||
file = mpvnet
|
||||
directory = Audio
|
||||
help = Save and restore the audio device chosen in the context menu. Default: yes
|
||||
default = yes
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = slang
|
||||
file = mpv
|
||||
directory = Subtitle
|
||||
type = string
|
||||
help = Specify a priority list of subtitle languages to use. Different container formats employ different language codes. DVDs use ISO 639-1 two letter language codes, Matroska uses ISO 639-2 three letter language codes while OGM uses a free-form identifier. See also sid.
|
||||
|
||||
name = sub-auto
|
||||
file = mpv
|
||||
default = exact
|
||||
directory = Subtitle
|
||||
help = Load additional subtitle files matching the video filename. The parameter specifies how external subtitle files are matched. exact is enabled by default.
|
||||
default = exact
|
||||
option = no Don't automatically load external subtitle files.
|
||||
option = exact Load the media filename with subtitle file extension.
|
||||
option = fuzzy Load all subs containing media filename.
|
||||
@@ -481,7 +851,6 @@ option = all Load all subs in the current and sub-file-paths directories.
|
||||
name = sub-font
|
||||
file = mpv
|
||||
directory = Subtitle
|
||||
type = string
|
||||
help = Specify font to use for subtitles that do not themselves specify a particular font. The default is sans-serif.
|
||||
|
||||
name = sub-font-size
|
||||
@@ -516,17 +885,25 @@ help = Set the window title. This is used for the video window, and if possible,
|
||||
|
||||
name = fullscreen
|
||||
file = mpv
|
||||
default = no
|
||||
directory = Window
|
||||
help = Start the player in fullscreen mode.
|
||||
default = no
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = border
|
||||
file = mpv
|
||||
default = yes
|
||||
directory = Window
|
||||
help = Show window with decoration (titlebar, border).
|
||||
default = yes
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = title-bar
|
||||
file = mpv
|
||||
directory = Window
|
||||
help = Set this to no in order to hide the window title bar.
|
||||
default = yes
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
@@ -537,9 +914,9 @@ help = <0-32> In multi-monitor configurations (i.e. a single desktop that spans
|
||||
|
||||
name = taskbar-progress
|
||||
file = mpv
|
||||
default = yes
|
||||
directory = Window
|
||||
help = Show progress in taskbar.
|
||||
default = yes
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
@@ -547,7 +924,6 @@ name = osd-playing-msg
|
||||
file = mpv
|
||||
width = 300
|
||||
directory = Window
|
||||
type = string
|
||||
help = Show a message on OSD when playback starts. The string is expanded for properties, e.g. osd-playing-msg='file: ${filename}' will show the message file: followed by a space and the currently played filename. For more information visit:
|
||||
url = https://mpv.io/manual/master/#property-expansion
|
||||
|
||||
@@ -563,9 +939,9 @@ help = Set the duration of the OSD messages in ms. Default: 1000
|
||||
|
||||
name = osd-scale-by-window
|
||||
file = mpv
|
||||
default = yes
|
||||
directory = Window
|
||||
help = Whether to scale the OSD with the window size. If this is disabled, osd-font-size and other OSD options that use scaled pixels are always in actual pixels. The effect is that changing the window size won't change the OSD font size.
|
||||
default = yes
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
@@ -595,15 +971,15 @@ directory = Window
|
||||
help = <int> Initial window height in percent for audio files. Default: 70
|
||||
|
||||
name = geometry
|
||||
file = mpvnet
|
||||
file = mpv
|
||||
directory = Window
|
||||
help = <x:y> Initial window location in percent. Default: 50:50 (centered)\n\nx=0 docks the window to the left side.\nx=100 docks the window to the right side.\ny=0 docks the window to the top side.\ny=100 docks the window to the bottom side.
|
||||
help = <x:y> Initial window location in percent. Default: 50:50 (centered)\n\nRequires Windows 11, on Windows 10 it works slightly incorrect due to invisible borders.\n\nx=0 docks the window to the left side.\nx=100 docks the window to the right side.\n\ny=0 docks the window to the top side.\ny=100 docks the window to the bottom side.
|
||||
|
||||
name = start-size
|
||||
file = mpvnet
|
||||
default = height-session
|
||||
directory = Window
|
||||
help = Setting to remember the window size. (mpv.net option)
|
||||
default = height-session
|
||||
option = width-session Window width is remembered in the current session
|
||||
option = width-always Window width is always remembered
|
||||
option = height-session Window height is remembered in the current session
|
||||
@@ -614,9 +990,9 @@ option = always Window size is always remembered
|
||||
|
||||
name = keepaspect-window
|
||||
file = mpv
|
||||
default = yes
|
||||
directory = Window
|
||||
help = keepaspect-window will lock the window size to the video aspect. Default: yes
|
||||
default = yes
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
@@ -632,49 +1008,49 @@ help = Same as minimum-aspect-ratio but used for audio files.
|
||||
|
||||
name = remember-window-position
|
||||
file = mpvnet
|
||||
default = no
|
||||
directory = Window
|
||||
help = Save the window position on exit. (mpv.net option)
|
||||
default = no
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = snap-window
|
||||
file = mpv
|
||||
default = no
|
||||
directory = Window
|
||||
help = Snap the player window to screen edges.
|
||||
default = no
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = window-maximized
|
||||
file = mpv
|
||||
default = no
|
||||
directory = Window
|
||||
help = Start with a maximized window.
|
||||
default = no
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = keep-open
|
||||
file = mpv
|
||||
default = no
|
||||
directory = Playback
|
||||
default = no
|
||||
option = yes If the current file ends, go to the next file, keep the last file open.
|
||||
option = no If the current file ends, go to the next file. If idle is set to no, the player exits after the last file.
|
||||
option = always Playback will never automatically advance to the next file.
|
||||
|
||||
name = keep-open-pause
|
||||
file = mpv
|
||||
default = yes
|
||||
directory = Playback
|
||||
help = If set to no, instead of pausing when keep-open is active, just stop at end of file and continue playing forward when you seek backwards until end where it stops again.
|
||||
default = yes
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = idle
|
||||
file = mpv
|
||||
default = yes
|
||||
directory = Playback
|
||||
help = If set to no and keep-open is also set to no, the player exits after the last file ends.
|
||||
default = yes
|
||||
option = yes
|
||||
option = no
|
||||
option = once
|
||||
@@ -686,9 +1062,9 @@ help = <N|inf|no> Loop a single file N times. inf means forever, no means normal
|
||||
|
||||
name = save-position-on-quit
|
||||
file = mpv
|
||||
default = no
|
||||
directory = Playback
|
||||
help = Always save the current playback position on quit. When this file is played again later, the player will seek to the old playback position on start. This does not happen if playback of a file is stopped in any other way than quitting. For example, going to the next file in the playlist will not save the position, and start playback at beginning the next time the file is played.\n\nThis behavior is disabled by default, but is always available when quitting the player with Shift+Q.
|
||||
default = no
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
@@ -700,9 +1076,9 @@ url = https://mpv.io/manual/master/#options-watch-later-options
|
||||
|
||||
name = hr-seek
|
||||
file = mpv
|
||||
default = absolute
|
||||
directory = Playback
|
||||
help = Select when to use precise seeks that are not limited to keyframes. Such seeks require decoding video from the previous keyframe up to the target position and so can take some time depending on decoding performance. For some video formats, precise seeks are disabled. This option selects the default choice to use for seeks; it is possible to explicitly override that default in the definition of key bindings and in input commands.
|
||||
default = absolute
|
||||
option = yes Use precise seeks whenever possible.
|
||||
option = no Never use precise seeks.
|
||||
option = absolute Use precise seeks if the seek is to an absolute position in the file, such as a chapter seek, but not for relative seeks like the default behavior of arrow keys.
|
||||
@@ -710,9 +1086,9 @@ option = always Same as yes (for compatibility).
|
||||
|
||||
name = track-auto-selection
|
||||
file = mpv
|
||||
default = yes
|
||||
directory = Playback
|
||||
help = Enable the default track auto-selection. Enabling this will make the player select streams according to aid, alang, and others. If it is disabled, no tracks are selected. In addition, the player will not exit if no tracks are selected, and wait instead (this wait mode is similar to pausing, but the pause option is not set).\n\nThis is useful with lavfi-complex: you can start playback in this mode, and then set select tracks at runtime by setting the filter graph. Note that if lavfi-complex is set before playback is started, the referenced tracks are always selected.
|
||||
default = yes
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
@@ -723,9 +1099,9 @@ help = <N|inf|force|no> Loops playback N times. A value of 1 plays it one time (
|
||||
|
||||
name = auto-load-folder
|
||||
file = mpvnet
|
||||
default = yes
|
||||
directory = Playback
|
||||
help = For single files automatically load the entire directory into the playlist. (mpv.net option)
|
||||
default = yes
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
@@ -753,42 +1129,45 @@ url = https://mpv.io/manual/master/#options-input-ipc-server
|
||||
|
||||
name = language
|
||||
file = mpvnet
|
||||
directory = Appearance
|
||||
help = User interface display language.\nmpv.net must be restarted after a change.
|
||||
default = system
|
||||
directory = UI
|
||||
help = User interface display language.\nmpv.net must be restarted after a change.\nInterested joining our translation team?:
|
||||
url = https://app.transifex.com/stax76/teams/
|
||||
option = system
|
||||
option = english
|
||||
option = chinese-china
|
||||
option = german
|
||||
option = japanese
|
||||
option = korean
|
||||
option = russian
|
||||
option = turkish
|
||||
|
||||
name = dark-mode
|
||||
file = mpvnet
|
||||
default = always
|
||||
directory = UI
|
||||
directory = Appearance
|
||||
help = Changes between a light and dark theme.\nmpv.net must be restarted after a change.\nmpv.net specific option.
|
||||
default = always
|
||||
option = always
|
||||
option = system Available on Windows 10 or higher
|
||||
option = never
|
||||
|
||||
name = dark-theme
|
||||
file = mpvnet
|
||||
directory = UI
|
||||
directory = Appearance
|
||||
url = https://github.com/mpvnet-player/mpv.net/blob/main/docs/manual.md#color-theme
|
||||
help = Color theme used in dark mode.\nmpv.net must be restarted after a change.\nmpv.net specific option. Default: dark
|
||||
|
||||
name = light-theme
|
||||
file = mpvnet
|
||||
directory = UI
|
||||
directory = Appearance
|
||||
url = https://github.com/mpvnet-player/mpv.net/blob/main/docs/manual.md#color-theme
|
||||
help = Color theme used in light mode.\nmpv.net must be restarted after a change.\nmpv.net specific option. Default: light
|
||||
|
||||
name = cache
|
||||
file = mpv
|
||||
default = auto
|
||||
directory = Cache
|
||||
help = Decide whether to use network cache settings.
|
||||
url = https://mpv.io/manual/master/#options-cache
|
||||
default = auto
|
||||
option = yes
|
||||
option = no
|
||||
option = auto
|
||||
|
||||
@@ -36,7 +36,7 @@ public class OptionSettingOption
|
||||
|
||||
public string? Name { get; set; }
|
||||
public string? Help { get; set; }
|
||||
public int OptionWidth { get => OptionSetting!.OptionNameWidth; }
|
||||
public int Width { get => OptionSetting!.OptionNameWidth; }
|
||||
|
||||
public OptionSetting? OptionSetting { get; set; }
|
||||
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
|
||||
using MpvNet.Windows.WPF.Controls;
|
||||
|
||||
namespace MpvNet.Windows.UI;
|
||||
|
||||
public class CommandPalette
|
||||
{
|
||||
public static CommandPaletteControl Instance { get; } = new CommandPaletteControl();
|
||||
|
||||
public static IEnumerable<CommandPaletteItem> GetItems()
|
||||
{
|
||||
return InputHelp.GetBindingsFromContent(App.InputConf.GetContent())
|
||||
.Where(i => i.Command != "")
|
||||
.Select(i => new CommandPaletteItem()
|
||||
{
|
||||
Text = i.Comment,
|
||||
SecondaryText = i.Input,
|
||||
Action = () => Core.Command(i.Command),
|
||||
Binding = i
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
|
||||
namespace MpvNet.Windows.UI;
|
||||
|
||||
public class CommandPaletteItem
|
||||
{
|
||||
public CommandPaletteItem() { }
|
||||
|
||||
public CommandPaletteItem(string text, Action action)
|
||||
{
|
||||
Text = text;
|
||||
Action = action;
|
||||
}
|
||||
|
||||
public CommandPaletteItem(string text, string secondaryText, Action action)
|
||||
{
|
||||
Text = text;
|
||||
Action = action;
|
||||
SecondaryText = secondaryText;
|
||||
}
|
||||
|
||||
public string Text { get; set; } = "";
|
||||
public string SecondaryText { get; set; } = "";
|
||||
public Action? Action { get; set; }
|
||||
public Binding? Binding { get; set; }
|
||||
}
|
||||
@@ -40,7 +40,7 @@
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="180" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
@@ -48,6 +48,7 @@
|
||||
x:Name="SearchControl"
|
||||
HintText="Find a setting (Ctrl+F)"
|
||||
Margin="20,20,0,10"
|
||||
MaxWidth="190"
|
||||
Text="{Binding SearchText, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
/>
|
||||
|
||||
|
||||
@@ -20,13 +20,16 @@ namespace MpvNet.Windows.WPF;
|
||||
|
||||
public partial class ConfWindow : Window, INotifyPropertyChanged
|
||||
{
|
||||
List<Setting> Settings = Conf.LoadConf(Properties.Resources.editor_conf.TrimEnd());
|
||||
List<ConfItem> ConfItems = new List<ConfItem>();
|
||||
public ObservableCollection<string> FilterStrings { get; } = new();
|
||||
string InitialContent;
|
||||
string ThemeConf = GetThemeConf();
|
||||
List<Setting> _settings = Conf.LoadConf(Properties.Resources.editor_conf.TrimEnd());
|
||||
List<ConfItem> _confItems = new List<ConfItem>();
|
||||
string _initialContent;
|
||||
string _themeConf = GetThemeConf();
|
||||
string? _searchText;
|
||||
List<NodeViewModel>? _nodes;
|
||||
bool _shown;
|
||||
int _useSpace;
|
||||
int _useNoSpace;
|
||||
|
||||
public event PropertyChangedEventHandler? PropertyChanged;
|
||||
|
||||
public ConfWindow()
|
||||
@@ -37,7 +40,7 @@ public partial class ConfWindow : Window, INotifyPropertyChanged
|
||||
LoadConf(App.ConfPath);
|
||||
LoadLibplaceboConf();
|
||||
LoadSettings();
|
||||
InitialContent = GetCompareString();
|
||||
_initialContent = GetCompareString();
|
||||
|
||||
if (string.IsNullOrEmpty(App.Settings.ConfigEditorSearch))
|
||||
SearchText = "General:";
|
||||
@@ -51,6 +54,8 @@ public partial class ConfWindow : Window, INotifyPropertyChanged
|
||||
node.IsExpanded = true;
|
||||
}
|
||||
|
||||
public ObservableCollection<string> FilterStrings { get; } = new();
|
||||
|
||||
public Theme? Theme => Theme.Current;
|
||||
|
||||
public string SearchText
|
||||
@@ -72,7 +77,7 @@ public partial class ConfWindow : Window, INotifyPropertyChanged
|
||||
{
|
||||
var rootNode = new TreeNode();
|
||||
|
||||
foreach (Setting setting in Settings)
|
||||
foreach (Setting setting in _settings)
|
||||
AddNode(rootNode.Children, setting.Directory!);
|
||||
|
||||
_nodes = new NodeViewModel(rootNode).Children;
|
||||
@@ -125,14 +130,14 @@ public partial class ConfWindow : Window, INotifyPropertyChanged
|
||||
|
||||
void LoadSettings()
|
||||
{
|
||||
foreach (Setting setting in Settings)
|
||||
foreach (Setting setting in _settings)
|
||||
{
|
||||
setting.StartValue = setting.Value;
|
||||
|
||||
if (!FilterStrings.Contains(setting.Directory!))
|
||||
FilterStrings.Add(setting.Directory!);
|
||||
|
||||
foreach (ConfItem item in ConfItems)
|
||||
foreach (ConfItem item in _confItems)
|
||||
{
|
||||
if (setting.Name == item.Name &&
|
||||
setting.File == item.File &&
|
||||
@@ -162,65 +167,7 @@ public partial class ConfWindow : Window, INotifyPropertyChanged
|
||||
|
||||
static string GetThemeConf() => Theme.DarkMode + App.DarkTheme + App.LightTheme;
|
||||
|
||||
protected override void OnClosed(EventArgs e)
|
||||
{
|
||||
base.OnClosed(e);
|
||||
App.Settings.ConfigEditorSearch = SearchText;
|
||||
|
||||
if (InitialContent == GetCompareString())
|
||||
return;
|
||||
|
||||
foreach (Setting setting in Settings)
|
||||
{
|
||||
if (setting.Name == "libplacebo-opts")
|
||||
{
|
||||
setting.Value = GetKeyValueContent("libplacebo");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
File.WriteAllText(Player.ConfPath, GetContent("mpv"));
|
||||
File.WriteAllText(App.ConfPath, GetContent("mpvnet"));
|
||||
|
||||
foreach (Setting it in Settings)
|
||||
{
|
||||
if (it.Value != it.StartValue)
|
||||
{
|
||||
if (it.File == "mpv")
|
||||
{
|
||||
Player.ProcessProperty(it.Name, it.Value);
|
||||
Player.SetPropertyString(it.Name!, it.Value!);
|
||||
}
|
||||
else if (it.File == "mpvnet")
|
||||
App.ProcessProperty(it.Name ?? "", it.Value ?? "", true);
|
||||
}
|
||||
}
|
||||
|
||||
Theme.Init();
|
||||
Theme.UpdateWpfColors();
|
||||
|
||||
if (ThemeConf != GetThemeConf())
|
||||
MessageBox.Show("Changed theme settings require mpv.net being restarted.", "Info");
|
||||
}
|
||||
|
||||
bool _shown;
|
||||
|
||||
protected override void OnContentRendered(EventArgs e)
|
||||
{
|
||||
base.OnContentRendered(e);
|
||||
|
||||
if (_shown)
|
||||
return;
|
||||
|
||||
_shown = true;
|
||||
|
||||
Application.Current.Dispatcher.BeginInvoke(() => {
|
||||
SearchControl.SearchTextBox.SelectAll();
|
||||
},
|
||||
DispatcherPriority.Background);
|
||||
}
|
||||
|
||||
string GetCompareString() => string.Join("", Settings.Select(item => item.Name + item.Value).ToArray());
|
||||
string GetCompareString() => string.Join("", _settings.Select(item => item.Name + item.Value).ToArray());
|
||||
|
||||
void LoadConf(string file)
|
||||
{
|
||||
@@ -232,9 +179,12 @@ public partial class ConfWindow : Window, INotifyPropertyChanged
|
||||
|
||||
bool isSectionItem = false;
|
||||
|
||||
foreach (string currentLine in File.ReadAllLines(file))
|
||||
foreach (string it in File.ReadAllLines(file))
|
||||
{
|
||||
string line = currentLine.Trim();
|
||||
string line = it.Trim();
|
||||
|
||||
if (line.StartsWith("-"))
|
||||
line = line.TrimStart('-');
|
||||
|
||||
if (line == "")
|
||||
comment += "\r\n";
|
||||
@@ -243,7 +193,7 @@ public partial class ConfWindow : Window, INotifyPropertyChanged
|
||||
else if (line.StartsWith("[") && line.Contains(']'))
|
||||
{
|
||||
if (!isSectionItem && comment != "" && comment != "\r\n")
|
||||
ConfItems.Add(new ConfItem() {
|
||||
_confItems.Add(new ConfItem() {
|
||||
Comment = comment, File = Path.GetFileNameWithoutExtension(file)});
|
||||
|
||||
section = line.Substring(0, line.IndexOf("]") + 1);
|
||||
@@ -253,7 +203,20 @@ public partial class ConfWindow : Window, INotifyPropertyChanged
|
||||
else if (line.Contains('=') || Regex.Match(line, "^[\\w-]+$").Success)
|
||||
{
|
||||
if (!line.Contains('='))
|
||||
line += "=yes";
|
||||
{
|
||||
if (line.StartsWith("no-"))
|
||||
{
|
||||
line = line.Substring(3);
|
||||
line += "=no";
|
||||
}
|
||||
else
|
||||
line += "=yes";
|
||||
}
|
||||
|
||||
if (line.Contains(" =") || line.Contains("= "))
|
||||
_useSpace += 1;
|
||||
else
|
||||
_useNoSpace += 1;
|
||||
|
||||
ConfItem item = new();
|
||||
item.File = Path.GetFileNameWithoutExtension(file);
|
||||
@@ -263,7 +226,7 @@ public partial class ConfWindow : Window, INotifyPropertyChanged
|
||||
item.Section = section;
|
||||
section = "";
|
||||
|
||||
if (line.Contains('#') && !line.Contains("'") && !line.Contains("\""))
|
||||
if (line.Contains('#') && !line.Contains('\'') && !line.Contains('"'))
|
||||
{
|
||||
item.LineComment = line.Substring(line.IndexOf("#")).Trim();
|
||||
line = line.Substring(0, line.IndexOf("#")).Trim();
|
||||
@@ -287,7 +250,7 @@ public partial class ConfWindow : Window, INotifyPropertyChanged
|
||||
|
||||
item.Name = left;
|
||||
item.Value = right;
|
||||
ConfItems.Add(item);
|
||||
_confItems.Add(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -296,7 +259,7 @@ public partial class ConfWindow : Window, INotifyPropertyChanged
|
||||
{
|
||||
List<string> pairs = new();
|
||||
|
||||
foreach (Setting setting in Settings)
|
||||
foreach (Setting setting in _settings)
|
||||
{
|
||||
if (filename != setting.File)
|
||||
continue;
|
||||
@@ -310,7 +273,7 @@ public partial class ConfWindow : Window, INotifyPropertyChanged
|
||||
|
||||
void LoadLibplaceboConf()
|
||||
{
|
||||
foreach (ConfItem item in ConfItems.ToArray())
|
||||
foreach (ConfItem item in _confItems.ToArray())
|
||||
if (item.Name == "libplacebo-opts")
|
||||
LoadKeyValueList(item.Value, "libplacebo");
|
||||
}
|
||||
@@ -332,7 +295,7 @@ public partial class ConfWindow : Window, INotifyPropertyChanged
|
||||
item.Name = left;
|
||||
item.Value = right;
|
||||
item.File = file;
|
||||
ConfItems.Add(item);
|
||||
_confItems.Add(item);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -357,8 +320,9 @@ public partial class ConfWindow : Window, INotifyPropertyChanged
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
List<string> namesWritten = new List<string>();
|
||||
string equalString = _useSpace > _useNoSpace ? " = " : "=";
|
||||
|
||||
foreach (ConfItem item in ConfItems)
|
||||
foreach (ConfItem item in _confItems)
|
||||
{
|
||||
if (filename != item.File || item.Section != "" || item.IsSectionItem)
|
||||
continue;
|
||||
@@ -370,7 +334,7 @@ public partial class ConfWindow : Window, INotifyPropertyChanged
|
||||
{
|
||||
if (item.Name != "")
|
||||
{
|
||||
sb.Append(item.Name + " = " + EscapeValue(item.Value));
|
||||
sb.Append(item.Name + equalString + EscapeValue(item.Value));
|
||||
|
||||
if (item.LineComment != "")
|
||||
sb.Append(" " + item.LineComment);
|
||||
@@ -381,7 +345,7 @@ public partial class ConfWindow : Window, INotifyPropertyChanged
|
||||
}
|
||||
else if ((item.SettingBase.Value ?? "") != item.SettingBase.Default)
|
||||
{
|
||||
sb.Append(item.Name + " = " + EscapeValue(item.SettingBase.Value!));
|
||||
sb.Append(item.Name + equalString + EscapeValue(item.SettingBase.Value!));
|
||||
|
||||
if (item.LineComment != "")
|
||||
sb.Append(" " + item.LineComment);
|
||||
@@ -391,16 +355,16 @@ public partial class ConfWindow : Window, INotifyPropertyChanged
|
||||
}
|
||||
}
|
||||
|
||||
foreach (Setting setting in Settings)
|
||||
foreach (Setting setting in _settings)
|
||||
{
|
||||
if (filename != setting.File || namesWritten.Contains(setting.Name!))
|
||||
continue;
|
||||
|
||||
if ((setting.Value ?? "") != setting.Default)
|
||||
sb.AppendLine(setting.Name + " = " + EscapeValue(setting.Value!));
|
||||
sb.AppendLine(setting.Name + equalString + EscapeValue(setting.Value!));
|
||||
}
|
||||
|
||||
foreach (ConfItem item in ConfItems)
|
||||
foreach (ConfItem item in _confItems)
|
||||
{
|
||||
if (filename != item.File || (item.Section == "" && !item.IsSectionItem))
|
||||
continue;
|
||||
@@ -416,7 +380,7 @@ public partial class ConfWindow : Window, INotifyPropertyChanged
|
||||
if (item.Comment != "")
|
||||
sb.Append(item.Comment);
|
||||
|
||||
sb.Append(item.Name + " = " + EscapeValue(item.Value));
|
||||
sb.Append(item.Name + equalString + EscapeValue(item.Value));
|
||||
|
||||
if (item.LineComment != "")
|
||||
sb.Append(" " + item.LineComment);
|
||||
@@ -466,6 +430,47 @@ public partial class ConfWindow : Window, INotifyPropertyChanged
|
||||
i.Update();
|
||||
}
|
||||
|
||||
protected override void OnClosed(EventArgs e)
|
||||
{
|
||||
base.OnClosed(e);
|
||||
App.Settings.ConfigEditorSearch = SearchText;
|
||||
|
||||
if (_initialContent == GetCompareString())
|
||||
return;
|
||||
|
||||
foreach (Setting setting in _settings)
|
||||
{
|
||||
if (setting.Name == "libplacebo-opts")
|
||||
{
|
||||
setting.Value = GetKeyValueContent("libplacebo");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
File.WriteAllText(Player.ConfPath, GetContent("mpv"));
|
||||
File.WriteAllText(App.ConfPath, GetContent("mpvnet"));
|
||||
|
||||
foreach (Setting it in _settings)
|
||||
{
|
||||
if (it.Value != it.StartValue)
|
||||
{
|
||||
if (it.File == "mpv")
|
||||
{
|
||||
Player.ProcessProperty(it.Name, it.Value);
|
||||
Player.SetPropertyString(it.Name!, it.Value!);
|
||||
}
|
||||
else if (it.File == "mpvnet")
|
||||
App.ProcessProperty(it.Name ?? "", it.Value ?? "", true);
|
||||
}
|
||||
}
|
||||
|
||||
Theme.Init();
|
||||
Theme.UpdateWpfColors();
|
||||
|
||||
if (_themeConf != GetThemeConf())
|
||||
MessageBox.Show("Changed theme settings require mpv.net being restarted.", "Info");
|
||||
}
|
||||
|
||||
protected override void OnKeyDown(KeyEventArgs e)
|
||||
{
|
||||
base.OnKeyDown(e);
|
||||
@@ -480,9 +485,22 @@ public partial class ConfWindow : Window, INotifyPropertyChanged
|
||||
}
|
||||
}
|
||||
|
||||
protected void OnPropertyChanged([CallerMemberName] string? name = null)
|
||||
{
|
||||
protected void OnPropertyChanged([CallerMemberName] string? name = null) =>
|
||||
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
|
||||
|
||||
protected override void OnContentRendered(EventArgs e)
|
||||
{
|
||||
base.OnContentRendered(e);
|
||||
|
||||
if (_shown)
|
||||
return;
|
||||
|
||||
_shown = true;
|
||||
|
||||
Application.Current.Dispatcher.BeginInvoke(() => {
|
||||
SearchControl.SearchTextBox.SelectAll();
|
||||
},
|
||||
DispatcherPriority.Background);
|
||||
}
|
||||
|
||||
void TreeView_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
|
||||
|
||||
@@ -1,127 +0,0 @@
|
||||
<UserControl
|
||||
x:Class="MpvNet.Windows.WPF.Controls.CommandPaletteControl"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:controls="clr-namespace:MpvNet.Windows.WPF.Controls"
|
||||
mc:Ignorable="d"
|
||||
|
||||
FontSize="13"
|
||||
Loaded="OnLoaded"
|
||||
Background="#111111"
|
||||
>
|
||||
|
||||
<UserControl.InputBindings>
|
||||
<KeyBinding Gesture="Esc" Command="{Binding EscapeCommand}"/>
|
||||
<KeyBinding Gesture="Enter" Command="{Binding ExecuteCommand}"/>
|
||||
</UserControl.InputBindings>
|
||||
|
||||
<Border Name="MainBorder"
|
||||
BorderThickness="1,0,1,1"
|
||||
CornerRadius="0,0,5,5"
|
||||
Padding="0,0,0,5"
|
||||
BorderBrush="{Binding Theme.MenuHighlight}"
|
||||
Background="{Binding Theme.Background}"
|
||||
SnapsToDevicePixels="True"
|
||||
>
|
||||
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Border BorderBrush="{Binding Theme.Heading}"
|
||||
BorderThickness="1"
|
||||
CornerRadius="3"
|
||||
Margin="7"
|
||||
>
|
||||
|
||||
<controls:SearchControl
|
||||
HintText="Search"
|
||||
x:Name="SearchControl"
|
||||
Grid.ColumnSpan="2"
|
||||
Padding="1,1,1,0"
|
||||
/>
|
||||
</Border>
|
||||
|
||||
<ListView
|
||||
Name="MainListView"
|
||||
Grid.Row="1"
|
||||
Foreground="{Binding Theme.Foreground}"
|
||||
Background="{Binding Theme.Background}"
|
||||
BorderThickness="0"
|
||||
MaxHeight="202"
|
||||
SizeChanged="MainListView_SizeChanged"
|
||||
MouseUp="MainListView_MouseUp"
|
||||
>
|
||||
|
||||
<ListView.ItemContainerStyle>
|
||||
<Style TargetType="ListBoxItem">
|
||||
<Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter>
|
||||
<Setter Property="Height" Value="25"></Setter>
|
||||
<Setter Property="BorderThickness" Value="0"></Setter>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type ListBoxItem}">
|
||||
<Border x:Name="BD"
|
||||
BorderBrush="{TemplateBinding BorderBrush}"
|
||||
BorderThickness="{TemplateBinding BorderThickness}"
|
||||
Background="{TemplateBinding Background}"
|
||||
Padding="{TemplateBinding Padding}"
|
||||
SnapsToDevicePixels="true">
|
||||
|
||||
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
|
||||
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
|
||||
VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />
|
||||
</Border>
|
||||
<ControlTemplate.Triggers>
|
||||
<MultiTrigger>
|
||||
<MultiTrigger.Conditions>
|
||||
<Condition Property="IsMouseOver" Value="True" />
|
||||
</MultiTrigger.Conditions>
|
||||
<Setter Property="Background" TargetName="BD" Value="{DynamicResource HighlightBrush}" />
|
||||
</MultiTrigger>
|
||||
<MultiTrigger>
|
||||
<MultiTrigger.Conditions>
|
||||
<Condition Property="Selector.IsSelectionActive" Value="False" />
|
||||
<Condition Property="IsSelected" Value="True" />
|
||||
</MultiTrigger.Conditions>
|
||||
<Setter Property="Background" TargetName="BD" Value="{DynamicResource BorderBrush}" />
|
||||
</MultiTrigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
|
||||
<Style.Resources>
|
||||
<Style TargetType="Border">
|
||||
<Setter Property="CornerRadius" Value="3"/>
|
||||
</Style>
|
||||
</Style.Resources>
|
||||
</Style>
|
||||
</ListView.ItemContainerStyle>
|
||||
|
||||
<ListView.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<TextBlock Text="{Binding Text}"></TextBlock>
|
||||
|
||||
<TextBlock
|
||||
Grid.Column="1"
|
||||
Text="{Binding SecondaryText}"
|
||||
HorizontalAlignment="Right"
|
||||
/>
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
</ListView.ItemTemplate>
|
||||
</ListView>
|
||||
</Grid>
|
||||
</Border>
|
||||
</UserControl>
|
||||
@@ -1,151 +0,0 @@
|
||||
|
||||
using System.Collections.ObjectModel;
|
||||
using System.ComponentModel;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Input;
|
||||
|
||||
using CommunityToolkit.Mvvm.Input;
|
||||
|
||||
using MpvNet.Windows.UI;
|
||||
using MpvNet.Windows.WinForms;
|
||||
|
||||
namespace MpvNet.Windows.WPF.Controls;
|
||||
|
||||
public partial class CommandPaletteControl : UserControl
|
||||
{
|
||||
public ICollectionView CollectionView { get; set; }
|
||||
public CollectionViewSource CollectionViewSource { get; }
|
||||
public ObservableCollection<CommandPaletteItem> Items { get; } = new ObservableCollection<CommandPaletteItem>();
|
||||
|
||||
public CommandPaletteControl()
|
||||
{
|
||||
InitializeComponent();
|
||||
DataContext = this;
|
||||
CollectionViewSource = new CollectionViewSource() { Source = Items };
|
||||
CollectionView = CollectionViewSource.View;
|
||||
CollectionView.Filter = new Predicate<object>(item => Filter((CommandPaletteItem)item));
|
||||
MainListView.ItemsSource = CollectionView;
|
||||
|
||||
SearchControl.SearchTextBox.PreviewKeyDown += SearchTextBox_PreviewKeyDown;
|
||||
SearchControl.SearchTextBox.TextChanged += SearchTextBox_TextChanged;
|
||||
SearchControl.HideClearButton = true;
|
||||
|
||||
if (Environment.OSVersion.Version < new Version(10, 0))
|
||||
MainBorder.CornerRadius = new CornerRadius(0);
|
||||
}
|
||||
|
||||
void SearchTextBox_TextChanged(object sender, TextChangedEventArgs e)
|
||||
{
|
||||
CollectionView.Refresh();
|
||||
SelectFirst();
|
||||
}
|
||||
|
||||
void SearchTextBox_PreviewKeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
switch (e.Key)
|
||||
{
|
||||
case Key.Up:
|
||||
{
|
||||
int index = MainListView.SelectedIndex;
|
||||
index -= 1;
|
||||
|
||||
if (index < 0)
|
||||
index = 0;
|
||||
|
||||
MainListView.SelectedIndex = index;
|
||||
MainListView.ScrollIntoView(MainListView.SelectedItem);
|
||||
}
|
||||
break;
|
||||
case Key.Down:
|
||||
{
|
||||
int index = MainListView.SelectedIndex;
|
||||
|
||||
if (++index > MainListView.Items.Count - 1)
|
||||
index = MainListView.Items.Count - 1;
|
||||
|
||||
MainListView.SelectedIndex = index;
|
||||
MainListView.ScrollIntoView(MainListView.SelectedItem);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void MainListView_SizeChanged(object sender, SizeChangedEventArgs e) => AdjustHeight();
|
||||
|
||||
void MainListView_MouseUp(object sender, MouseButtonEventArgs e) => ExecuteInternal();
|
||||
|
||||
[RelayCommand]
|
||||
void Escape(object param) => MainForm.Instance?.HideCommandPalette();
|
||||
|
||||
[RelayCommand]
|
||||
void Execute() => ExecuteInternal();
|
||||
|
||||
void OnLoaded(object sender, RoutedEventArgs e) => Keyboard.Focus(SearchControl.SearchTextBox);
|
||||
|
||||
public Theme Theme => Theme.Current!;
|
||||
|
||||
bool Filter(CommandPaletteItem item)
|
||||
{
|
||||
string filter = SearchControl.SearchTextBox.Text.ToLower();
|
||||
|
||||
if (item.Binding != null)
|
||||
{
|
||||
// TODO: CommandItem.Alias
|
||||
//if (item.CommandItem.Alias.ContainsEx(filter))
|
||||
// return true;
|
||||
|
||||
if (filter.Length == 1)
|
||||
return item.Binding.Input.ToLower()
|
||||
.Replace("ctrl+", "")
|
||||
.Replace("shift+", "")
|
||||
.Replace("alt+", "") == filter.ToLower();
|
||||
|
||||
if (item.Binding.Command.ToLower().Contains(filter))
|
||||
return true;
|
||||
}
|
||||
|
||||
if (filter == "" || item.Text.ToLower().Contains(filter) ||
|
||||
item.SecondaryText.ToLower().Contains(filter))
|
||||
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public void SelectFirst()
|
||||
{
|
||||
if (MainListView.Items.Count > 0)
|
||||
{
|
||||
MainListView.SelectedIndex = 0;
|
||||
MainListView.ScrollIntoView(MainListView.SelectedItem);
|
||||
}
|
||||
}
|
||||
|
||||
void ExecuteInternal()
|
||||
{
|
||||
if (MainListView.SelectedItem != null)
|
||||
{
|
||||
CommandPaletteItem? item = MainListView.SelectedItem as CommandPaletteItem;
|
||||
MainForm.Instance?.HideCommandPalette();
|
||||
item?.Action?.Invoke();
|
||||
//MainForm.Instance.Voodoo(); //TODO: Voodoo
|
||||
}
|
||||
}
|
||||
|
||||
public void SetItems(IEnumerable<CommandPaletteItem> items)
|
||||
{
|
||||
Items.Clear();
|
||||
|
||||
foreach (var i in items)
|
||||
Items.Add(i);
|
||||
}
|
||||
|
||||
public void AdjustHeight()
|
||||
{
|
||||
double actualHeight = SearchControl.ActualHeight + MainListView.ActualHeight + 5 + 16;
|
||||
int dpi = MainForm.GetDpi(MainForm.Instance!.Handle);
|
||||
MainForm.Instance.CommandPaletteHost.Height = (int)(actualHeight / 96.0 * dpi);
|
||||
}
|
||||
}
|
||||
@@ -24,7 +24,7 @@
|
||||
Name="SearchTextBox"
|
||||
Height="25"
|
||||
BorderThickness="2"
|
||||
Padding="2"
|
||||
Padding="2,2,20,2"
|
||||
Background="Transparent"
|
||||
Foreground="{Binding Theme.Foreground}"
|
||||
CaretBrush="{Binding Theme.Foreground}"
|
||||
|
||||
@@ -39,10 +39,16 @@ public partial class SearchControl : UserControl
|
||||
{
|
||||
HintTextBlock.Text = string.IsNullOrEmpty(Text) ? HintText : "";
|
||||
|
||||
if (string.IsNullOrEmpty(Text) || HideClearButton || Text.Length > 21)
|
||||
if (string.IsNullOrEmpty(Text) || HideClearButton || Text.Length > 30)
|
||||
{
|
||||
SearchTextBox.Padding = new Thickness(2);
|
||||
SearchClearButton.Visibility = Visibility.Hidden;
|
||||
}
|
||||
else
|
||||
{
|
||||
SearchTextBox.Padding = new Thickness(2, 2, 20, 2);
|
||||
SearchClearButton.Visibility = Visibility.Visible;
|
||||
}
|
||||
}
|
||||
|
||||
public string Text
|
||||
|
||||
@@ -33,6 +33,9 @@ public partial class StringSettingControl : UserControl, ISettingControl
|
||||
|
||||
if (string.IsNullOrEmpty(stringSetting.URL))
|
||||
LinkTextBlock.Visibility = Visibility.Collapsed;
|
||||
|
||||
if (string.IsNullOrEmpty(stringSetting.Help))
|
||||
HelpTextBox.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
|
||||
public Theme? Theme => Theme.Current;
|
||||
|
||||
@@ -5,7 +5,7 @@ using System.Windows;
|
||||
|
||||
namespace HandyControl.Tools.Interop
|
||||
{
|
||||
internal class InteropValues
|
||||
public class InteropValues
|
||||
{
|
||||
internal static class ExternDll
|
||||
{
|
||||
@@ -290,7 +290,7 @@ namespace HandyControl.Tools.Interop
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
internal class WINDOWPOS
|
||||
public class WINDOWPOS
|
||||
{
|
||||
public IntPtr hwnd;
|
||||
public IntPtr hwndInsertAfter;
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<Border>
|
||||
<TextBlock
|
||||
Text="{Binding Text}"
|
||||
Width="{Binding OptionWidth}"
|
||||
Width="{Binding Width}"
|
||||
VerticalAlignment="Center"
|
||||
TextWrapping="Wrap"
|
||||
/>
|
||||
|
||||
@@ -7,10 +7,16 @@ namespace MpvNet.Windows.WPF;
|
||||
|
||||
public class WpfTranslator : ITranslator
|
||||
{
|
||||
string _localizerLangauge = "";
|
||||
|
||||
static Language[] Languages { get; } = new Language[] {
|
||||
new("english", "en", "en"),
|
||||
new("chinese-china", "zh-CN", "zh"), // Chinese (Simplified)
|
||||
new("german", "de", "de"),
|
||||
new("japanese", "ja", "ja"),
|
||||
new("korean", "ko", "ko"),
|
||||
new("russian", "ru", "ru"),
|
||||
new("turkish", "tr", "tr"),
|
||||
};
|
||||
|
||||
public string Gettext(string msgId)
|
||||
@@ -19,10 +25,19 @@ public class WpfTranslator : ITranslator
|
||||
return Translation._(msgId);
|
||||
}
|
||||
|
||||
public string GetParticularString(string context, string text)
|
||||
{
|
||||
InitNGettextWpf();
|
||||
return Translation.GetParticularString(context, text);
|
||||
}
|
||||
|
||||
void InitNGettextWpf()
|
||||
{
|
||||
if (Translation.Localizer == null)
|
||||
if (Translation.Localizer == null || _localizerLangauge != App.Language)
|
||||
{
|
||||
CompositionRoot.Compose("mpvnet", GetCulture(App.Language), Folder.Startup + "Locale");
|
||||
_localizerLangauge = App.Language;
|
||||
}
|
||||
}
|
||||
|
||||
string GetSystemLanguage()
|
||||
|
||||
@@ -19,7 +19,7 @@ using WpfControls = System.Windows.Controls;
|
||||
using CommunityToolkit.Mvvm.Messaging;
|
||||
|
||||
using static MpvNet.Windows.Native.WinApi;
|
||||
using MpvNet.Windows.Help;
|
||||
using static MpvNet.Windows.Help.WinApiHelp;
|
||||
|
||||
namespace MpvNet.Windows.WinForms;
|
||||
|
||||
@@ -27,7 +27,6 @@ public partial class MainForm : Form
|
||||
{
|
||||
public SnapManager SnapManager = new SnapManager();
|
||||
public IntPtr MpvWindowHandle { get; set; }
|
||||
public ElementHost? CommandPaletteHost { get; set; }
|
||||
public bool WasShown { get; set; }
|
||||
public static MainForm? Instance { get; set; }
|
||||
WpfControls.ContextMenu ContextMenu { get; } = new WpfControls.ContextMenu();
|
||||
@@ -43,13 +42,13 @@ public partial class MainForm : Form
|
||||
|
||||
bool _contextMenuIsReady;
|
||||
bool _wasMaximized;
|
||||
bool _maxSizeSet;
|
||||
|
||||
public MainForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
if (Environment.OSVersion.Version >= new Version(10, 0, 18985) && Theme.DarkMode)
|
||||
DwmSetWindowAttribute(Handle, 20, new[] { 1 }, 4); // DWMWA_USE_IMMERSIVE_DARK_MODE = 20
|
||||
UpdateDarkMode();
|
||||
|
||||
try
|
||||
{
|
||||
@@ -68,7 +67,30 @@ public partial class MainForm : Form
|
||||
GuiCommand.Current.WindowScaleNet += GuiCommand_WindowScaleNet;
|
||||
GuiCommand.Current.ShowMenu += GuiCommand_ShowMenu;
|
||||
|
||||
Init();
|
||||
Player.Init(Handle, true);
|
||||
|
||||
// bool methods not working correctly
|
||||
Player.ObserveProperty("window-maximized", PropChangeWindowMaximized);
|
||||
Player.ObserveProperty("window-minimized", PropChangeWindowMinimized);
|
||||
|
||||
Player.ObservePropertyBool("border", PropChangeBorder);
|
||||
Player.ObservePropertyBool("fullscreen", PropChangeFullscreen);
|
||||
Player.ObservePropertyBool("keepaspect-window", value => Player.KeepaspectWindow = value);
|
||||
Player.ObservePropertyBool("ontop", PropChangeOnTop);
|
||||
Player.ObservePropertyBool("title-bar", PropChangeTitleBar);
|
||||
|
||||
Player.ObservePropertyString("sid", PropChangeSid);
|
||||
Player.ObservePropertyString("aid", PropChangeAid);
|
||||
Player.ObservePropertyString("vid", PropChangeVid);
|
||||
|
||||
Player.ObservePropertyString("title", PropChangeTitle);
|
||||
|
||||
Player.ObservePropertyInt("edition", PropChangeEdition);
|
||||
|
||||
Player.ObservePropertyDouble("window-scale", PropChangeWindowScale);
|
||||
|
||||
CommandLine.ProcessCommandLineArgsPostInit();
|
||||
CommandLine.ProcessCommandLineFiles();
|
||||
|
||||
_taskbarButtonCreatedMessage = RegisterWindowMessage("TaskbarButtonCreated");
|
||||
|
||||
@@ -125,6 +147,12 @@ public partial class MainForm : Form
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateDarkMode()
|
||||
{
|
||||
if (Environment.OSVersion.Version >= new Version(10, 0, 18985))
|
||||
DwmSetWindowAttribute(Handle, 20, new[] { Theme.DarkMode ? 1 : 0 }, 4); // DWMWA_USE_IMMERSIVE_DARK_MODE = 20
|
||||
}
|
||||
|
||||
void Player_ClientMessage(string[] args)
|
||||
{
|
||||
if (Command.Current.Commands.ContainsKey(args[0]))
|
||||
@@ -139,33 +167,6 @@ public partial class MainForm : Form
|
||||
SetTitle();
|
||||
}
|
||||
|
||||
void Init()
|
||||
{
|
||||
Player.Init(Handle);
|
||||
|
||||
// bool methods not working correctly
|
||||
Player.ObserveProperty("window-maximized", PropChangeWindowMaximized);
|
||||
Player.ObserveProperty("window-minimized", PropChangeWindowMinimized);
|
||||
|
||||
Player.ObservePropertyBool("border", PropChangeBorder);
|
||||
Player.ObservePropertyBool("fullscreen", PropChangeFullscreen);
|
||||
Player.ObservePropertyBool("keepaspect-window", value => Player.KeepaspectWindow = value);
|
||||
Player.ObservePropertyBool("ontop", PropChangeOnTop);
|
||||
|
||||
Player.ObservePropertyString("sid", PropChangeSid);
|
||||
Player.ObservePropertyString("aid", PropChangeAid);
|
||||
Player.ObservePropertyString("vid", PropChangeVid);
|
||||
|
||||
Player.ObservePropertyString("title", PropChangeTitle);
|
||||
|
||||
Player.ObservePropertyInt("edition", PropChangeEdition);
|
||||
|
||||
Player.ObservePropertyDouble("window-scale", PropChangeWindowScale);
|
||||
|
||||
Player.ProcessCommandLineArgsPost();
|
||||
Player.ProcessCommandLineFiles();
|
||||
}
|
||||
|
||||
void PropChangeWindowScale(double scale)
|
||||
{
|
||||
if (!WasShown)
|
||||
@@ -174,13 +175,13 @@ public partial class MainForm : Form
|
||||
BeginInvoke(() => {
|
||||
SetSize(
|
||||
(int)(Player.VideoSize.Width * scale),
|
||||
(int)Math.Ceiling(Player.VideoSize.Height * scale),
|
||||
(int)Math.Floor(Player.VideoSize.Height * scale),
|
||||
Screen.FromControl(this), false);
|
||||
});
|
||||
}
|
||||
|
||||
void Player_Shutdown() => BeginInvoke(Close);
|
||||
|
||||
|
||||
void Player_VideoSizeChanged(Size value) => BeginInvoke(() =>
|
||||
{
|
||||
if (!KeepSize())
|
||||
@@ -200,7 +201,7 @@ public partial class MainForm : Form
|
||||
else
|
||||
{
|
||||
w = (int)(ClientSize.Width * scale);
|
||||
h = (int)Math.Ceiling(w * Player.VideoSize.Height / (double)Player.VideoSize.Width);
|
||||
h = (int)Math.Floor(w * Player.VideoSize.Height / (double)Player.VideoSize.Width);
|
||||
}
|
||||
|
||||
SetSize(w, h, Screen.FromControl(this), false);
|
||||
@@ -211,7 +212,7 @@ public partial class MainForm : Form
|
||||
{
|
||||
BeginInvoke(() => {
|
||||
Screen screen = Screen.FromControl(this);
|
||||
Rectangle workingArea = WinApiHelp.GetWorkingArea(Handle, screen.WorkingArea);
|
||||
Rectangle workingArea = GetWorkingArea(Handle, screen.WorkingArea);
|
||||
|
||||
switch (direction)
|
||||
{
|
||||
@@ -240,7 +241,7 @@ public partial class MainForm : Form
|
||||
BeginInvoke(() => {
|
||||
SetSize(
|
||||
(int)(Player.VideoSize.Width * scale),
|
||||
(int)Math.Ceiling(Player.VideoSize.Height * scale),
|
||||
(int)Math.Floor(Player.VideoSize.Height * scale),
|
||||
Screen.FromControl(this), false);
|
||||
Player.Command($"show-text \"window-scale {scale.ToString(CultureInfo.InvariantCulture)}\"");
|
||||
});
|
||||
@@ -278,8 +279,6 @@ public partial class MainForm : Form
|
||||
pos.Y > ClientSize.Height * 0.78;
|
||||
}
|
||||
|
||||
bool IsCommandPaletteVissible() => CommandPaletteHost != null && CommandPaletteHost.Visible;
|
||||
|
||||
void UpdateMenu()
|
||||
{
|
||||
Player.UpdateExternalTracks();
|
||||
@@ -381,12 +380,11 @@ public partial class MainForm : Form
|
||||
var menuItem = MenuHelp.Add(recentMenuItem.Items, file.Title.ShortPath(100));
|
||||
|
||||
if (menuItem != null)
|
||||
menuItem.Click += (sender, args) =>
|
||||
Player.LoadFiles(new[] { file.Path }, true, false);
|
||||
menuItem.Click += (sender, args) => Player.LoadFiles(new[] { file.Path }, true, false);
|
||||
}
|
||||
|
||||
recentMenuItem.Items.Add(new WpfControls.Separator());
|
||||
var clearMenuItem = new WpfControls.MenuItem() { Header = "Clear List" };
|
||||
var clearMenuItem = new WpfControls.MenuItem() { Header = _("Clear List") };
|
||||
clearMenuItem.Click += (sender, args) => App.Settings.RecentFiles.Clear();
|
||||
recentMenuItem.Items.Add(clearMenuItem);
|
||||
}
|
||||
@@ -444,34 +442,60 @@ public partial class MainForm : Form
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
profilesMenuItem.Items.Add(new WpfControls.Separator());
|
||||
var showProfilesMenuItem = new WpfControls.MenuItem() { Header = _("Show Profiles") };
|
||||
showProfilesMenuItem.Click += (sender, args) => Player.Command("script-message-to mpvnet show-profiles");
|
||||
profilesMenuItem.Items.Add(showProfilesMenuItem);
|
||||
}
|
||||
|
||||
var audioDevicesMenuItem = FindMenuItem(_("Audio Device"), "Audio Device");
|
||||
|
||||
if (audioDevicesMenuItem != null)
|
||||
{
|
||||
audioDevicesMenuItem.Items.Clear();
|
||||
|
||||
foreach (var pair in Player.AudioDevices)
|
||||
{
|
||||
var menuItem = MenuHelp.Add(audioDevicesMenuItem.Items, pair.Value);
|
||||
|
||||
if (menuItem != null)
|
||||
{
|
||||
menuItem.IsChecked = pair.Name == Player.GetPropertyString("audio-device");
|
||||
|
||||
menuItem.Click += (sender, args) =>
|
||||
{
|
||||
Player.SetPropertyString("audio-device", pair.Name);
|
||||
Player.CommandV("show-text", pair.Value);
|
||||
App.Settings.AudioDevice = pair.Name;
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var customMenuItem = FindMenuItem(_("Custom"), "Custom");
|
||||
|
||||
if (customMenuItem != null)
|
||||
if (customMenuItem != null && !customMenuItem.HasItems)
|
||||
{
|
||||
if (!customMenuItem.HasItems)
|
||||
var customBindings = _confBindings!.Where(it => it.IsCustomMenu);
|
||||
|
||||
if (customBindings.Any())
|
||||
{
|
||||
var customBindings = _confBindings!.Where(it => it.IsCustomMenu);
|
||||
|
||||
if (customBindings.Any())
|
||||
foreach (Binding binding in customBindings)
|
||||
{
|
||||
foreach (Binding binding in customBindings)
|
||||
{
|
||||
var menuItem = MenuHelp.Add(customMenuItem.Items, binding.Comment);
|
||||
var menuItem = MenuHelp.Add(customMenuItem.Items, binding.Comment);
|
||||
|
||||
if (menuItem != null)
|
||||
{
|
||||
menuItem.Click += (sender, args) => Player.Command(binding.Command);
|
||||
menuItem.InputGestureText = binding.Input;
|
||||
}
|
||||
if (menuItem != null)
|
||||
{
|
||||
menuItem.Click += (sender, args) => Player.Command(binding.Command);
|
||||
menuItem.InputGestureText = binding.Input;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (ContextMenu.Items.Contains(customMenuItem))
|
||||
ContextMenu.Items.Remove(customMenuItem);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (ContextMenu.Items.Contains(customMenuItem))
|
||||
ContextMenu.Items.Remove(customMenuItem);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -522,7 +546,7 @@ public partial class MainForm : Form
|
||||
}
|
||||
|
||||
Screen screen = Screen.FromControl(this);
|
||||
Rectangle workingArea = WinApiHelp.GetWorkingArea(Handle, screen.WorkingArea);
|
||||
Rectangle workingArea = GetWorkingArea(Handle, screen.WorkingArea);
|
||||
int autoFitHeight = Convert.ToInt32(workingArea.Height * Player.Autofit);
|
||||
|
||||
if (App.AutofitAudio > 1)
|
||||
@@ -565,12 +589,12 @@ public partial class MainForm : Form
|
||||
else if (App.StartSize == "height-always" || App.StartSize == "height-session")
|
||||
{
|
||||
height = ClientSize.Height;
|
||||
width = height * videoSize.Width / videoSize.Height;
|
||||
width = (int)Math.Ceiling(height * videoSize.Width / (double)videoSize.Height);
|
||||
}
|
||||
else if (App.StartSize == "width-always" || App.StartSize == "width-session")
|
||||
{
|
||||
width = ClientSize.Width;
|
||||
height = (int)Math.Ceiling(width * videoSize.Height / (double)videoSize.Width);
|
||||
height = (int)Math.Floor(width * videoSize.Height / (double)videoSize.Width);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -580,22 +604,22 @@ public partial class MainForm : Form
|
||||
if (App.StartSize == "height-always" && windowSize.Height != 0)
|
||||
{
|
||||
height = windowSize.Height;
|
||||
width = height * videoSize.Width / videoSize.Height;
|
||||
width = (int)Math.Ceiling(height * videoSize.Width / (double)videoSize.Height);
|
||||
}
|
||||
else if (App.StartSize == "height-session" || App.StartSize == "session")
|
||||
{
|
||||
height = autoFitHeight;
|
||||
width = height * videoSize.Width / videoSize.Height;
|
||||
width = (int)Math.Ceiling(height * videoSize.Width / (double)videoSize.Height);
|
||||
}
|
||||
else if(App.StartSize == "width-always" && windowSize.Height != 0)
|
||||
{
|
||||
width = windowSize.Width;
|
||||
height = (int)Math.Ceiling(width * videoSize.Height / (double)videoSize.Width);
|
||||
height = (int)Math.Floor(width * videoSize.Height / (double)videoSize.Width);
|
||||
}
|
||||
else if (App.StartSize == "width-session")
|
||||
{
|
||||
width = autoFitHeight / 9 * 16;
|
||||
height = (int)Math.Ceiling(width * videoSize.Height / (double)videoSize.Width);
|
||||
height = (int)Math.Floor(width * videoSize.Height / (double)videoSize.Width);
|
||||
}
|
||||
else if (App.StartSize == "always" && windowSize.Height != 0)
|
||||
{
|
||||
@@ -611,7 +635,7 @@ public partial class MainForm : Form
|
||||
|
||||
void SetSize(int width, int height, Screen screen, bool checkAutofit = true, bool load = false)
|
||||
{
|
||||
Rectangle workingArea = WinApiHelp.GetWorkingArea(Handle, screen.WorkingArea);
|
||||
Rectangle workingArea = GetWorkingArea(Handle, screen.WorkingArea);
|
||||
|
||||
int maxHeight = workingArea.Height - (Height - ClientSize.Height) - 2;
|
||||
int maxWidth = workingArea.Width - (Width - ClientSize.Width);
|
||||
@@ -623,38 +647,39 @@ public partial class MainForm : Form
|
||||
{
|
||||
if (height < maxHeight * Player.AutofitSmaller)
|
||||
{
|
||||
height = Convert.ToInt32(maxHeight * Player.AutofitSmaller);
|
||||
width = Convert.ToInt32(height * startWidth / (double)startHeight);
|
||||
height = (int)(maxHeight * Player.AutofitSmaller);
|
||||
width = (int)Math.Ceiling(height * startWidth / (double)startHeight);
|
||||
}
|
||||
|
||||
if (height > maxHeight * Player.AutofitLarger)
|
||||
{
|
||||
height = Convert.ToInt32(maxHeight * Player.AutofitLarger);
|
||||
width = Convert.ToInt32(height * startWidth / (double)startHeight);
|
||||
height = (int)(maxHeight * Player.AutofitLarger);
|
||||
width = (int)Math.Ceiling(height * startWidth / (double)startHeight);
|
||||
}
|
||||
}
|
||||
|
||||
if (width > maxWidth)
|
||||
{
|
||||
width = maxWidth;
|
||||
height = (int)Math.Ceiling(width * startHeight / (double)startWidth);
|
||||
height = (int)Math.Floor(width * startHeight / (double)startWidth);
|
||||
}
|
||||
|
||||
if (height > maxHeight)
|
||||
{
|
||||
height = maxHeight;
|
||||
width = Convert.ToInt32(height * startWidth / (double)startHeight);
|
||||
width = (int)Math.Ceiling(height * startWidth / (double)startHeight);
|
||||
}
|
||||
|
||||
if (height < maxHeight * 0.1)
|
||||
{
|
||||
height = Convert.ToInt32(maxHeight * 0.1);
|
||||
width = Convert.ToInt32(height * startWidth / (double)startHeight);
|
||||
height = (int)(maxHeight * 0.1);
|
||||
width = (int)Math.Ceiling(height * startWidth / (double)startHeight);
|
||||
}
|
||||
|
||||
Point middlePos = new Point(Left + Width / 2, Top + Height / 2);
|
||||
var rect = new Rect(new Rectangle(screen.Bounds.X, screen.Bounds.Y, width, height));
|
||||
WinApiHelp.AddWindowBorders(Handle, ref rect, GetDpi(Handle));
|
||||
var rect = new RECT(new Rectangle(screen.Bounds.X, screen.Bounds.Y, width, height));
|
||||
|
||||
AddWindowBorders(Handle, ref rect, GetDpi(Handle), !Player.TitleBar);
|
||||
|
||||
width = rect.Width;
|
||||
height = rect.Height;
|
||||
@@ -672,23 +697,25 @@ public partial class MainForm : Form
|
||||
|
||||
Screen[] screens = Screen.AllScreens;
|
||||
|
||||
int minLeft = screens.Select(val => WinApiHelp.GetWorkingArea(Handle, val.WorkingArea).X).Min();
|
||||
int maxRight = screens.Select(val => WinApiHelp.GetWorkingArea(Handle, val.WorkingArea).Right).Max();
|
||||
int minTop = screens.Select(val => WinApiHelp.GetWorkingArea(Handle, val.WorkingArea).Y).Min();
|
||||
int maxBottom = screens.Select(val => WinApiHelp.GetWorkingArea(Handle, val.WorkingArea).Bottom).Max();
|
||||
int minLeft = screens.Select(val => GetWorkingArea(Handle, val.WorkingArea).X).Min();
|
||||
int maxRight = screens.Select(val => GetWorkingArea(Handle, val.WorkingArea).Right).Max();
|
||||
int minTop = screens.Select(val => GetWorkingArea(Handle, val.WorkingArea).Y).Min();
|
||||
int maxBottom = screens.Select(val => GetWorkingArea(Handle, val.WorkingArea).Bottom).Max();
|
||||
|
||||
if (load && CommandLine.Contains("geometry"))
|
||||
if (load)
|
||||
{
|
||||
string geometryString = CommandLine.GetValue("geometry");
|
||||
string geometryString = Player.GetPropertyString("geometry");
|
||||
|
||||
var geometry = ParseGeometry(geometryString, WinApiHelp.GetWorkingArea(
|
||||
Handle, Screen.FromHandle(Handle).WorkingArea), width, height);
|
||||
if (!string.IsNullOrEmpty(geometryString))
|
||||
{
|
||||
var pos = ParseGeometry(geometryString, width, height);
|
||||
|
||||
if (geometry.x != int.MaxValue)
|
||||
left = geometry.x;
|
||||
if (pos.X != int.MaxValue)
|
||||
left = pos.X;
|
||||
|
||||
if (geometry.y != int.MaxValue)
|
||||
top = geometry.y;
|
||||
if (pos.Y != int.MaxValue)
|
||||
top = pos.Y;
|
||||
}
|
||||
}
|
||||
|
||||
if (left < minLeft)
|
||||
@@ -707,15 +734,17 @@ public partial class MainForm : Form
|
||||
SetWindowPos(Handle, IntPtr.Zero, left, top, width, height, SWP_NOACTIVATE);
|
||||
}
|
||||
|
||||
(int x, int y) ParseGeometry(string input, Rectangle workingArea, int width, int height)
|
||||
Point ParseGeometry(string input, int width, int height)
|
||||
{
|
||||
int x = int.MaxValue;
|
||||
int y = int.MaxValue;
|
||||
|
||||
Match match = Regex.Match(input, @"^(\d+)%?:(\d+)%?$");
|
||||
Match match = Regex.Match(input, @"^\+(\d+)%?\+(\d+)%?$");
|
||||
|
||||
if (match.Success)
|
||||
{
|
||||
Rectangle workingArea = GetWorkingArea(Handle, Screen.FromHandle(Handle).WorkingArea);
|
||||
|
||||
x = int.Parse(match.Groups[1].Value);
|
||||
y = int.Parse(match.Groups[2].Value);
|
||||
|
||||
@@ -723,7 +752,7 @@ public partial class MainForm : Form
|
||||
y = workingArea.Top + Convert.ToInt32((workingArea.Height - height) / 100.0 * y);
|
||||
}
|
||||
|
||||
return (x, y);
|
||||
return new Point(x, y);
|
||||
}
|
||||
|
||||
public void CycleFullscreen(bool enabled)
|
||||
@@ -771,7 +800,7 @@ public partial class MainForm : Form
|
||||
|
||||
public int GetHorizontalLocation(Screen screen)
|
||||
{
|
||||
Rectangle workingArea = WinApiHelp.GetWorkingArea(Handle, screen.WorkingArea);
|
||||
Rectangle workingArea = GetWorkingArea(Handle, screen.WorkingArea);
|
||||
Rectangle rect = new Rectangle(Left - workingArea.X, Top - workingArea.Y, Width, Height);
|
||||
|
||||
if (workingArea.Width / (float)Width < 1.1)
|
||||
@@ -788,7 +817,7 @@ public partial class MainForm : Form
|
||||
|
||||
public int GetVerticalLocation(Screen screen)
|
||||
{
|
||||
Rectangle workingArea = WinApiHelp.GetWorkingArea(Handle, screen.WorkingArea);
|
||||
Rectangle workingArea = GetWorkingArea(Handle, screen.WorkingArea);
|
||||
Rectangle rect = new Rectangle(Left - workingArea.X, Top - workingArea.Y, Width, Height);
|
||||
|
||||
if (workingArea.Height / (float)Height < 1.1)
|
||||
@@ -818,7 +847,7 @@ public partial class MainForm : Form
|
||||
|
||||
if (!binding.IsMenu)
|
||||
continue;
|
||||
|
||||
|
||||
var menuItem = MenuHelp.Add(ContextMenu.Items, tempBinding.Comment);
|
||||
|
||||
if (menuItem != null)
|
||||
@@ -874,7 +903,7 @@ public partial class MainForm : Form
|
||||
path = path + "|" + title;
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(path) && path != @"bd://" && path != @"dvd://")
|
||||
if (!string.IsNullOrEmpty(path) && path != "-" && path != @"bd://" && path != @"dvd://")
|
||||
{
|
||||
if (App.Settings.RecentFiles.Contains(path))
|
||||
App.Settings.RecentFiles.Remove(path);
|
||||
@@ -1007,6 +1036,9 @@ public partial class MainForm : Form
|
||||
m.Result = SendMessage(MpvWindowHandle, m.Msg, m.WParam, m.LParam);
|
||||
}
|
||||
break;
|
||||
case 0x001A: // WM_SETTINGCHANGE
|
||||
UpdateDarkMode();
|
||||
break;
|
||||
case 0x51: // WM_INPUTLANGCHANGE
|
||||
ActivateKeyboardLayout(m.LParam, 0x00000100u /*KLF_SETFORPROCESS*/);
|
||||
break;
|
||||
@@ -1046,16 +1078,45 @@ public partial class MainForm : Form
|
||||
if (!WasShown)
|
||||
break;
|
||||
|
||||
Rect rect = Marshal.PtrToStructure<Rect>(m.LParam);
|
||||
RECT rect = Marshal.PtrToStructure<RECT>(m.LParam);
|
||||
SetWindowPos(Handle, IntPtr.Zero, rect.Left, rect.Top, rect.Width, rect.Height, 0);
|
||||
}
|
||||
break;
|
||||
case 0x0112: // WM_SYSCOMMAND
|
||||
{
|
||||
// with title-bar=no when the window is restored from minimizing the height is too high
|
||||
if (!Player.TitleBar)
|
||||
{
|
||||
int SC_MINIMIZE = 0xF020;
|
||||
|
||||
if (m.WParam == (nint)SC_MINIMIZE)
|
||||
{
|
||||
MaximumSize = Size;
|
||||
_maxSizeSet = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 0x0083: // WM_NCCALCSIZE
|
||||
if ((int)m.WParam == 1 && !Player.TitleBar && !IsFullscreen)
|
||||
{
|
||||
var nccalcsize_params = Marshal.PtrToStructure<NCCALCSIZE_PARAMS>(m.LParam);
|
||||
RECT[] rects = nccalcsize_params.rgrc;
|
||||
rects[0].Top = rects[0].Top - GetTitleBarHeight(Handle, GetDpi(Handle));
|
||||
Marshal.StructureToPtr(nccalcsize_params, m.LParam, false);
|
||||
}
|
||||
break;
|
||||
case 0x231: // WM_ENTERSIZEMOVE
|
||||
case 0x005: // WM_SIZE
|
||||
if (Player.SnapWindow)
|
||||
SnapManager.OnSizeAndEnterSizeMove(this);
|
||||
break;
|
||||
case 0x214: // WM_SIZING
|
||||
if (Player.KeepaspectWindow)
|
||||
{
|
||||
Rect rc = Marshal.PtrToStructure<Rect>(m.LParam);
|
||||
Rect r = rc;
|
||||
WinApiHelp.SubtractWindowBorders(Handle, ref r, GetDpi(Handle));
|
||||
RECT rc = Marshal.PtrToStructure<RECT>(m.LParam);
|
||||
RECT r = rc;
|
||||
SubtractWindowBorders(Handle, ref r, GetDpi(Handle), !Player.TitleBar);
|
||||
|
||||
int c_w = r.Right - r.Left, c_h = r.Bottom - r.Top;
|
||||
Size videoSize = Player.VideoSize;
|
||||
@@ -1063,48 +1124,25 @@ public partial class MainForm : Form
|
||||
if (videoSize == Size.Empty)
|
||||
videoSize = new Size(16, 9);
|
||||
|
||||
float aspect = videoSize.Width / (float)videoSize.Height;
|
||||
int d_w = (int)(c_h * aspect - c_w);
|
||||
int d_h = (int)(c_w / aspect - c_h);
|
||||
double aspect = videoSize.Width / (double)videoSize.Height;
|
||||
int d_w = (int)Math.Ceiling(c_h * aspect - c_w);
|
||||
int d_h = (int)Math.Floor(c_w / aspect - c_h);
|
||||
|
||||
int[] d_corners = { d_w, d_h, -d_w, -d_h };
|
||||
int[] corners = { rc.Left, rc.Top, rc.Right, rc.Bottom };
|
||||
int corner = WinApiHelp.GetResizeBorder(m.WParam.ToInt32());
|
||||
int corner = GetResizeBorder(m.WParam.ToInt32());
|
||||
|
||||
if (corner >= 0)
|
||||
corners[corner] -= d_corners[corner];
|
||||
|
||||
Marshal.StructureToPtr(new Rect(corners[0], corners[1], corners[2], corners[3]), m.LParam, false);
|
||||
Marshal.StructureToPtr(new RECT(corners[0], corners[1], corners[2], corners[3]), m.LParam, false);
|
||||
m.Result = new IntPtr(1);
|
||||
}
|
||||
return;
|
||||
case 0x4A: // WM_COPYDATA
|
||||
{
|
||||
var copyData = (CopyDataStruct)m.GetLParam(typeof(CopyDataStruct))!;
|
||||
string[] args = copyData.lpData.Split('\n');
|
||||
string mode = args[0];
|
||||
args = args.Skip(1).ToArray();
|
||||
|
||||
switch (mode)
|
||||
{
|
||||
case "single":
|
||||
Player.LoadFiles(args, true, false);
|
||||
break;
|
||||
case "queue":
|
||||
foreach (string file in args)
|
||||
Player.CommandV("loadfile", file, "append");
|
||||
break;
|
||||
case "command":
|
||||
Player.Command(args[0]);
|
||||
break;
|
||||
}
|
||||
|
||||
Activate();
|
||||
}
|
||||
return;
|
||||
case 0x84: // WM_NCHITTEST
|
||||
// resize borderless window
|
||||
if (!Player.Border && !Player.Fullscreen) {
|
||||
if ((!Player.Border || !Player.TitleBar) && !Player.Fullscreen)
|
||||
{
|
||||
const int HTCLIENT = 1;
|
||||
const int HTLEFT = 10;
|
||||
const int HTRIGHT = 11;
|
||||
@@ -1143,11 +1181,30 @@ public partial class MainForm : Form
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case 0x231: // WM_ENTERSIZEMOVE
|
||||
case 0x005: // WM_SIZE
|
||||
if (Player.SnapWindow)
|
||||
SnapManager.OnSizeAndEnterSizeMove(this);
|
||||
break;
|
||||
case 0x4A: // WM_COPYDATA
|
||||
{
|
||||
var copyData = (CopyDataStruct)m.GetLParam(typeof(CopyDataStruct))!;
|
||||
string[] args = copyData.lpData.Split('\n');
|
||||
string mode = args[0];
|
||||
args = args.Skip(1).ToArray();
|
||||
|
||||
switch (mode)
|
||||
{
|
||||
case "single":
|
||||
Player.LoadFiles(args, true, false);
|
||||
break;
|
||||
case "queue":
|
||||
foreach (string file in args)
|
||||
Player.CommandV("loadfile", file, "append");
|
||||
break;
|
||||
case "command":
|
||||
Player.Command(args[0]);
|
||||
break;
|
||||
}
|
||||
|
||||
Activate();
|
||||
}
|
||||
return;
|
||||
case 0x216: // WM_MOVING
|
||||
if (Player.SnapWindow)
|
||||
SnapManager.OnMoving(ref m);
|
||||
@@ -1165,6 +1222,25 @@ public partial class MainForm : Form
|
||||
base.WndProc(ref m);
|
||||
}
|
||||
|
||||
protected override void OnActivated(EventArgs e)
|
||||
{
|
||||
base.OnActivated(e);
|
||||
|
||||
if (_maxSizeSet)
|
||||
{
|
||||
TaskHelp.Run(() => {
|
||||
Thread.Sleep(200);
|
||||
BeginInvoke(() => {
|
||||
if (!IsDisposed && !Disposing)
|
||||
{
|
||||
MaximumSize = new Size(int.MaxValue, int.MaxValue);
|
||||
_maxSizeSet = false;
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
void CursorTimer_Tick(object sender, EventArgs e)
|
||||
{
|
||||
if (IsCursorPosDifferent(_lastCursorPosition))
|
||||
@@ -1175,8 +1251,7 @@ public partial class MainForm : Form
|
||||
else if ((Environment.TickCount - _lastCursorChanged > 1500 ||
|
||||
Environment.TickCount - _lastCursorChanged > 5000) &&
|
||||
ClientRectangle.Contains(PointToClient(MousePosition)) &&
|
||||
ActiveForm == this && !ContextMenu.IsVisible && !IsMouseInOsc() &&
|
||||
!IsCommandPaletteVissible())
|
||||
ActiveForm == this && !ContextMenu.IsVisible && !IsMouseInOsc())
|
||||
|
||||
HideCursor();
|
||||
}
|
||||
@@ -1248,6 +1323,20 @@ public partial class MainForm : Form
|
||||
});
|
||||
}
|
||||
|
||||
void PropChangeTitleBar(bool enabled)
|
||||
{
|
||||
if (enabled == Player.TitleBar)
|
||||
return;
|
||||
|
||||
Player.TitleBar = enabled;
|
||||
|
||||
BeginInvoke(() => {
|
||||
SetSize(ClientSize.Width, ClientSize.Height, Screen.FromControl(this), false);
|
||||
Height += 1;
|
||||
Height -= 1;
|
||||
});
|
||||
}
|
||||
|
||||
void Player_Pause()
|
||||
{
|
||||
if (_taskbar != null && Player.TaskbarProgress)
|
||||
@@ -1282,14 +1371,8 @@ public partial class MainForm : Form
|
||||
InitAndBuildContextMenu();
|
||||
Cursor.Position = new Point(Cursor.Position.X + 1, Cursor.Position.Y);
|
||||
GlobalHotkey.RegisterGlobalHotkeys(Handle);
|
||||
WasShown = true;
|
||||
StrongReferenceMessenger.Default.Send(new MainWindowIsLoadedMessage());
|
||||
|
||||
TaskHelp.Run(() => {
|
||||
System.Windows.Application.Current.Dispatcher.BeginInvoke(() => {
|
||||
WinMpvHelp.Setup();
|
||||
}, DispatcherPriority.Background);
|
||||
});
|
||||
WasShown = true;
|
||||
}
|
||||
|
||||
void ContextMenu_Closed(object sender, System.Windows.RoutedEventArgs e) => MenuAutoResetEvent.Set();
|
||||
@@ -1337,11 +1420,7 @@ public partial class MainForm : Form
|
||||
protected override void OnMouseDown(MouseEventArgs e)
|
||||
{
|
||||
base.OnMouseDown(e);
|
||||
|
||||
_mouseDownLocation = PointToScreen(e.Location);
|
||||
|
||||
if (Width - e.Location.X < 10 && e.Location.Y < 10)
|
||||
Player.CommandV("quit");
|
||||
}
|
||||
|
||||
protected override void OnMouseMove(MouseEventArgs e)
|
||||
@@ -1378,10 +1457,12 @@ public partial class MainForm : Form
|
||||
{
|
||||
base.OnDragDrop(e);
|
||||
|
||||
bool append = ModifierKeys == Keys.Shift;
|
||||
|
||||
if (e.Data!.GetDataPresent(DataFormats.FileDrop))
|
||||
Player.LoadFiles(e.Data.GetData(DataFormats.FileDrop) as string[], true, false);
|
||||
Player.LoadFiles(e.Data.GetData(DataFormats.FileDrop) as string[], true, append);
|
||||
else if (e.Data.GetDataPresent(DataFormats.Text))
|
||||
Player.LoadFiles(new[] { e.Data.GetData(DataFormats.Text)!.ToString()! }, true, false);
|
||||
Player.LoadFiles(new[] { e.Data.GetData(DataFormats.Text)!.ToString()! }, true, append);
|
||||
}
|
||||
|
||||
protected override void OnKeyDown(KeyEventArgs e)
|
||||
@@ -1421,7 +1502,7 @@ public partial class MainForm : Form
|
||||
|
||||
public static int GetDpi(IntPtr hwnd)
|
||||
{
|
||||
if (Environment.OSVersion.Version >= WinApiHelp.WindowsTen1607 && hwnd != IntPtr.Zero)
|
||||
if (Environment.OSVersion.Version >= WindowsTen1607 && hwnd != IntPtr.Zero)
|
||||
return GetDpiForWindow(hwnd);
|
||||
else
|
||||
using (Graphics gx = Graphics.FromHwnd(hwnd))
|
||||
@@ -1430,103 +1511,4 @@ public partial class MainForm : Form
|
||||
|
||||
[DllImport("DwmApi")]
|
||||
static extern int DwmSetWindowAttribute(IntPtr hwnd, int attr, int[] attrValue, int attrSize);
|
||||
|
||||
//protected override void OnLayout(LayoutEventArgs args)
|
||||
//{
|
||||
// base.OnLayout(args);
|
||||
// AdjustCommandPaletteLeftAndWidth();
|
||||
//}
|
||||
|
||||
//class ElementHostEx : ElementHost
|
||||
//{
|
||||
// protected override void OnHandleCreated(EventArgs e)
|
||||
// {
|
||||
// base.OnHandleCreated(e);
|
||||
// const int LWA_ColorKey = 1;
|
||||
|
||||
// if (Environment.OSVersion.Version > new Version(10, 0))
|
||||
// SetLayeredWindowAttributes(Handle, 0x111111, 255, LWA_ColorKey);
|
||||
// }
|
||||
|
||||
// protected override CreateParams CreateParams
|
||||
// {
|
||||
// get
|
||||
// {
|
||||
// CreateParams cp = base.CreateParams;
|
||||
|
||||
// if (Environment.OSVersion.Version > new Version(10, 0))
|
||||
// cp.ExStyle |= 0x00080000; // WS_EX_LAYERED
|
||||
|
||||
// cp.ExStyle |= 0x00000008; // WS_EX_TOPMOST
|
||||
|
||||
// cp.Style |= 0x04000000; //WS_CLIPSIBLINGS
|
||||
// cp.Style |= 0x02000000; //WS_CLIPCHILDREN
|
||||
|
||||
// return cp;
|
||||
// }
|
||||
// }
|
||||
|
||||
// protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
|
||||
// {
|
||||
// try
|
||||
// {
|
||||
// return base.ProcessCmdKey(ref msg, keyData);
|
||||
// }
|
||||
// catch (Exception)
|
||||
// {
|
||||
// return true;
|
||||
// }
|
||||
// }
|
||||
|
||||
// [DllImport("user32.dll")]
|
||||
// public static extern bool SetLayeredWindowAttributes(IntPtr hWnd, int crKey, byte alpha, int dwFlags);
|
||||
//}
|
||||
|
||||
//public void ShowCommandPalette()
|
||||
//{
|
||||
// if (CommandPaletteHost == null)
|
||||
// {
|
||||
// CommandPaletteHost = new ElementHostEx();
|
||||
// CommandPaletteHost.Dock = DockStyle.Fill;
|
||||
// CommandPaletteHost.BackColor = Color.FromArgb(0x111111);
|
||||
|
||||
// AdjustCommandPaletteLeftAndWidth();
|
||||
// CommandPaletteHost.Child = CommandPalette.Instance;
|
||||
// CommandPalette.Instance.AdjustHeight();
|
||||
// Controls.Add(CommandPaletteHost);
|
||||
// CommandPaletteHost.BringToFront();
|
||||
// }
|
||||
//}
|
||||
|
||||
public void HideCommandPalette()
|
||||
{
|
||||
if (CommandPaletteHost != null)
|
||||
{
|
||||
CommandPaletteHost.Visible = false;
|
||||
|
||||
CommandPalette.Instance.Items.Clear();
|
||||
CommandPalette.Instance.SearchControl.SearchTextBox.Text = "";
|
||||
CommandPalette.Instance.UpdateLayout();
|
||||
|
||||
ActiveControl = null;
|
||||
Controls.Remove(CommandPaletteHost);
|
||||
|
||||
CommandPaletteHost.Child = null;
|
||||
CommandPaletteHost.Dispose();
|
||||
CommandPaletteHost = null;
|
||||
}
|
||||
}
|
||||
|
||||
//void AdjustCommandPaletteLeftAndWidth()
|
||||
//{
|
||||
// if (CommandPaletteHost == null)
|
||||
// return;
|
||||
|
||||
// CommandPaletteHost.Width = FontHeight * 26;
|
||||
|
||||
// if (CommandPaletteHost.Width > ClientSize.Width)
|
||||
// CommandPaletteHost.Width = ClientSize.Width;
|
||||
|
||||
// CommandPaletteHost.Left = (ClientSize.Width - CommandPaletteHost.Size.Width) / 2;
|
||||
//}
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ public class SnapManager
|
||||
if (Handle == IntPtr.Zero)
|
||||
return;
|
||||
|
||||
WinApi.Rect boundsLtrb = Marshal.PtrToStructure<WinApi.Rect>(m.LParam);
|
||||
WinApi.RECT boundsLtrb = Marshal.PtrToStructure<WinApi.RECT>(m.LParam);
|
||||
Rectangle bounds = boundsLtrb.ToRectangle();
|
||||
// This is where the window _would_ be located if snapping
|
||||
// had not occurred. This prevents the cursor from sliding
|
||||
@@ -62,7 +62,7 @@ public class SnapManager
|
||||
bounds.Width,
|
||||
bounds.Height);
|
||||
FindSnap(ref effectiveBounds);
|
||||
WinApi.Rect newLtrb = WinApi.Rect.FromRectangle(effectiveBounds);
|
||||
WinApi.RECT newLtrb = WinApi.RECT.FromRectangle(effectiveBounds);
|
||||
Marshal.StructureToPtr(newLtrb, m.LParam, false);
|
||||
m.Result = new IntPtr(1);
|
||||
}
|
||||
|
||||
@@ -27,6 +27,7 @@ public class AppClass
|
||||
public bool IsTerminalAttached { get; } = Environment.GetEnvironmentVariable("_started_from_console") == "yes";
|
||||
public bool MediaInfo { get; set; } = true;
|
||||
public bool Queue { get; set; }
|
||||
public bool RememberAudioDevice { get; set; } = true;
|
||||
public bool RememberVolume { get; set; } = true;
|
||||
public bool RememberWindowPosition { get; set; }
|
||||
|
||||
@@ -76,20 +77,14 @@ public class AppClass
|
||||
Player.Initialized += Player_Initialized;
|
||||
}
|
||||
|
||||
public static string About => "Copyright (C) 2000-2023 mpv.net/mpv/mplayer\n" +
|
||||
$"{AppInfo.Product} {AppInfo.Version}" + GetLastWriteTime(Environment.ProcessPath!) + "\n" +
|
||||
public static string About => "Copyright (C) 2000-2024 mpv.net/mpv/mplayer\n" +
|
||||
$"{AppInfo.Product} v{AppInfo.Version}" + GetLastWriteTime(Environment.ProcessPath!) + "\n" +
|
||||
$"{Player.GetPropertyString("mpv-version")}" + GetLastWriteTime(Folder.Startup + "libmpv-2.dll") + "\n" +
|
||||
$"ffmpeg {Player.GetPropertyString("ffmpeg-version")}\n" + "\nGPL v2 License";
|
||||
$"ffmpeg {Player.GetPropertyString("ffmpeg-version")}\n" +
|
||||
$"MediaInfo v{FileVersionInfo.GetVersionInfo(Folder.Startup + "MediaInfo.dll").FileVersion}" +
|
||||
$"{GetLastWriteTime(Folder.Startup + "MediaInfo.dll")}" + "\n" + "GPL v2 License";
|
||||
|
||||
static string GetLastWriteTime(string path)
|
||||
{
|
||||
if (IsStoreVersion)
|
||||
return "";
|
||||
|
||||
return $" ({File.GetLastWriteTime(path).ToShortDateString()})";
|
||||
}
|
||||
|
||||
static bool IsStoreVersion => Folder.Startup.Contains("FrankSkare.mpvnet");
|
||||
static string GetLastWriteTime(string path) => $" ({File.GetLastWriteTime(path).ToShortDateString()})";
|
||||
|
||||
void Player_Initialized()
|
||||
{
|
||||
@@ -98,6 +93,9 @@ public class AppClass
|
||||
Player.SetPropertyInt("volume", Settings.Volume);
|
||||
Player.SetPropertyString("mute", Settings.Mute);
|
||||
}
|
||||
|
||||
if (RememberAudioDevice && Settings.AudioDevice != "")
|
||||
Player.SetPropertyString("audio-device", Settings.AudioDevice);
|
||||
}
|
||||
|
||||
void Player_Shutdown()
|
||||
@@ -150,6 +148,7 @@ public class AppClass
|
||||
case "process-instance": ProcessInstance = value; return true;
|
||||
case "queue": Queue = value == "yes"; return true;
|
||||
case "recent-count": RecentCount = value.ToInt(15); return true;
|
||||
case "remember-audio-device": RememberAudioDevice = value == "yes"; return true;
|
||||
case "remember-volume": RememberVolume = value == "yes"; return true;
|
||||
case "remember-window-position": RememberWindowPosition = value == "yes"; return true;
|
||||
case "start-size": StartSize = value; return true;
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
|
||||
using System.Globalization;
|
||||
using System.Text;
|
||||
using System.Text.Json;
|
||||
using MpvNet.Help;
|
||||
|
||||
namespace MpvNet;
|
||||
@@ -26,13 +24,13 @@ public class Command
|
||||
|
||||
// deprecated
|
||||
["playlist-add"] = args => PlaylistAdd(Convert.ToInt32(args[0])), // deprecated
|
||||
["show-progress"] = args => ShowProgress(), // deprecated
|
||||
["show-progress"] = args => Player.Command("show-progress"), // deprecated
|
||||
["playlist-random"] = args => PlaylistRandom(), // deprecated
|
||||
};
|
||||
|
||||
public string FormatTime(double value) => ((int)value).ToString("00");
|
||||
string FormatTime(double value) => ((int)value).ToString("00");
|
||||
|
||||
public static void PlayPause(IList<string> args)
|
||||
void PlayPause(IList<string> args)
|
||||
{
|
||||
int count = Player.GetPropertyInt("playlist-count");
|
||||
|
||||
@@ -66,7 +64,7 @@ public class Command
|
||||
"}${osd-ass-cc/1}" + text + "\" " + duration);
|
||||
}
|
||||
|
||||
public static void CycleAudio()
|
||||
void CycleAudio()
|
||||
{
|
||||
Player.UpdateExternalTracks();
|
||||
|
||||
@@ -94,7 +92,7 @@ public class Command
|
||||
}
|
||||
}
|
||||
|
||||
public static void CycleSubtitles()
|
||||
void CycleSubtitles()
|
||||
{
|
||||
Player.UpdateExternalTracks();
|
||||
|
||||
@@ -126,7 +124,7 @@ public class Command
|
||||
}
|
||||
|
||||
// deprecated
|
||||
public static void PlaylistAdd(int value)
|
||||
void PlaylistAdd(int value)
|
||||
{
|
||||
int pos = Player.PlaylistPos;
|
||||
int count = Player.GetPropertyInt("playlist-count");
|
||||
@@ -145,13 +143,13 @@ public class Command
|
||||
Player.SetPropertyInt("playlist-pos", pos);
|
||||
}
|
||||
|
||||
public static void PlaylistFirst()
|
||||
void PlaylistFirst()
|
||||
{
|
||||
if (Player.PlaylistPos != 0)
|
||||
Player.SetPropertyInt("playlist-pos", 0);
|
||||
}
|
||||
|
||||
public static void PlaylistLast()
|
||||
void PlaylistLast()
|
||||
{
|
||||
int count = Player.GetPropertyInt("playlist-count");
|
||||
|
||||
@@ -160,14 +158,14 @@ public class Command
|
||||
}
|
||||
|
||||
// deprecated
|
||||
public static void PlaylistRandom()
|
||||
void PlaylistRandom()
|
||||
{
|
||||
int count = Player.GetPropertyInt("playlist-count");
|
||||
Player.SetPropertyInt("playlist-pos", new Random().Next(count));
|
||||
}
|
||||
|
||||
// deprecated
|
||||
public void ShowProgress()
|
||||
void ShowProgress()
|
||||
{
|
||||
TimeSpan position = TimeSpan.FromSeconds(Player.GetPropertyDouble("time-pos"));
|
||||
TimeSpan duration = TimeSpan.FromSeconds(Player.GetPropertyDouble("duration"));
|
||||
|
||||
@@ -5,6 +5,11 @@ public class CommandLine
|
||||
{
|
||||
static List<StringPair>? _arguments;
|
||||
|
||||
static string[] _preInitProperties { get; } = {
|
||||
"input-terminal", "terminal", "input-file", "config", "o",
|
||||
"config-dir", "input-conf", "load-scripts", "scripts", "player-operation-mode",
|
||||
"idle", "log-file", "msg-color", "dump-stats", "msg-level", "really-quiet" };
|
||||
|
||||
public static List<StringPair> Arguments
|
||||
{
|
||||
get
|
||||
@@ -53,6 +58,78 @@ public class CommandLine
|
||||
}
|
||||
}
|
||||
|
||||
public static void ProcessCommandLineArgsPreInit()
|
||||
{
|
||||
foreach (var pair in Arguments)
|
||||
{
|
||||
if (pair.Name.EndsWith("-add") ||
|
||||
pair.Name.EndsWith("-set") ||
|
||||
pair.Name.EndsWith("-pre") ||
|
||||
pair.Name.EndsWith("-clr") ||
|
||||
pair.Name.EndsWith("-append") ||
|
||||
pair.Name.EndsWith("-remove") ||
|
||||
pair.Name.EndsWith("-toggle"))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
Player.ProcessProperty(pair.Name, pair.Value);
|
||||
|
||||
if (!App.ProcessProperty(pair.Name, pair.Value))
|
||||
Player.SetPropertyString(pair.Name, pair.Value);
|
||||
}
|
||||
}
|
||||
|
||||
public static void ProcessCommandLineArgsPostInit()
|
||||
{
|
||||
foreach (var pair in Arguments)
|
||||
{
|
||||
if (_preInitProperties.Contains(pair.Name))
|
||||
continue;
|
||||
|
||||
if (pair.Name.EndsWith("-add"))
|
||||
Player.CommandV("change-list", pair.Name[..^4], "add", pair.Value);
|
||||
else if (pair.Name.EndsWith("-set"))
|
||||
Player.CommandV("change-list", pair.Name[..^4], "set", pair.Value);
|
||||
else if (pair.Name.EndsWith("-append"))
|
||||
Player.CommandV("change-list", pair.Name[..^7], "append", pair.Value);
|
||||
else if (pair.Name.EndsWith("-pre"))
|
||||
Player.CommandV("change-list", pair.Name[..^4], "pre", pair.Value);
|
||||
else if (pair.Name.EndsWith("-clr"))
|
||||
Player.CommandV("change-list", pair.Name[..^4], "clr", "");
|
||||
else if (pair.Name.EndsWith("-remove"))
|
||||
Player.CommandV("change-list", pair.Name[..^7], "remove", pair.Value);
|
||||
else if (pair.Name.EndsWith("-toggle"))
|
||||
Player.CommandV("change-list", pair.Name[..^7], "toggle", pair.Value);
|
||||
else
|
||||
{
|
||||
Player.ProcessProperty(pair.Name, pair.Value);
|
||||
|
||||
if (!App.ProcessProperty(pair.Name, pair.Value))
|
||||
Player.SetPropertyString(pair.Name, pair.Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void ProcessCommandLineFiles()
|
||||
{
|
||||
List<string> files = new List<string>();
|
||||
|
||||
foreach (string arg in Environment.GetCommandLineArgs().Skip(1))
|
||||
if (!arg.StartsWith("--") && (arg == "-" || arg.Contains("://") ||
|
||||
arg.Contains(":\\") || arg.StartsWith("\\\\") || File.Exists(arg)))
|
||||
|
||||
files.Add(arg);
|
||||
|
||||
Player.LoadFiles(files.ToArray(), !App.Queue, App.Queue);
|
||||
|
||||
if (App.CommandLine.Contains("--shuffle"))
|
||||
{
|
||||
Player.Command("playlist-shuffle");
|
||||
Player.SetPropertyInt("playlist-pos", 0);
|
||||
}
|
||||
}
|
||||
|
||||
public static bool Contains(string name)
|
||||
{
|
||||
foreach (StringPair pair in Arguments)
|
||||
|
||||
@@ -10,4 +10,5 @@ public static class Global
|
||||
public static readonly AppClass App = new AppClass();
|
||||
|
||||
public static string _(string value) => Translator.Current!.Gettext(value);
|
||||
public static string _p(string context, string value) => Translator.Current!.GetParticularString(context, value);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
|
||||
using MpvNet.ExtensionMethod;
|
||||
using MpvNet.Help;
|
||||
|
||||
namespace MpvNet;
|
||||
@@ -15,8 +14,11 @@ public class InputConf
|
||||
public string Path {
|
||||
get => _path ?? "";
|
||||
set {
|
||||
_path = value;
|
||||
Content = File.Exists(_path) ? FileHelp.ReadTextFile(_path) : "";
|
||||
if (_path != value)
|
||||
{
|
||||
_path = value;
|
||||
Content = File.Exists(_path) ? FileHelp.ReadTextFile(_path) : "";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,7 +52,29 @@ public class InputConf
|
||||
public string GetContent()
|
||||
{
|
||||
if (HasMenu)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (App.Settings.MenuUpdateVersion != 1)
|
||||
{
|
||||
string updatedContent = UpdateContent(Content);
|
||||
|
||||
if (updatedContent != Content)
|
||||
{
|
||||
File.Copy(Path, Path + ".backup", true);
|
||||
File.WriteAllText(Path, Content = updatedContent);
|
||||
}
|
||||
|
||||
App.Settings.MenuUpdateVersion = 1;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Terminal.WriteError("Failed to update menu." + BR + ex.Message);
|
||||
}
|
||||
|
||||
return Content;
|
||||
}
|
||||
else
|
||||
{
|
||||
var defaults = InputHelp.GetDefaults();
|
||||
@@ -73,4 +97,9 @@ public class InputConf
|
||||
return InputHelp.ConvertToString(defaults);
|
||||
}
|
||||
}
|
||||
|
||||
static string UpdateContent(string content) => content
|
||||
.Replace("script-message mpv.net", "script-message-to mpvnet")
|
||||
.Replace("/docs/Manual.md", "/docs/manual.md")
|
||||
.Replace("https://github.com/stax76/mpv.net", "https://github.com/mpvnet-player/mpv.net");
|
||||
}
|
||||
|
||||
@@ -17,8 +17,9 @@ public static class InputHelp
|
||||
new (_("File"), _("Add external subtitle files..."), "script-message-to mpvnet load-sub", "Alt+s"),
|
||||
new (_("File"), "-"),
|
||||
new (_("File"), _("Add files to playlist..."), "script-message-to mpvnet open-files append"),
|
||||
new (_("File"), _("Recent Files")),
|
||||
new (_("File"), _("Add files/URLs to playlist from clipboard"), "script-message-to mpvnet open-clipboard append", "Ctrl+Shift+v"),
|
||||
new (_("File"), "-"),
|
||||
new (_("File"), _("Recent Files")),
|
||||
new (_("File"), _("Exit"), "quit", "Esc"),
|
||||
|
||||
new (_("Playback"), _("Play/Pause"), "script-message-to mpvnet play-pause", "Space"),
|
||||
@@ -81,6 +82,7 @@ public static class InputHelp
|
||||
new (_("Video"), _("Change Aspect Ratio"), "cycle-values video-aspect-override 16:9 4:3 2.35:1 -1", "a"),
|
||||
new (_("Video"), _("Rotate Video"), "cycle-values video-rotate 90 180 270 0", "Ctrl+r"),
|
||||
|
||||
new (_("Audio"), _("Audio Device")),
|
||||
new (_("Audio"), _("Next Track"), "script-message-to mpvnet cycle-audio", "KP7"),
|
||||
new (_("Audio"), "-"),
|
||||
new (_("Audio"), _("Delay +0.1"), "add audio-delay 0.1", "Ctrl+d"),
|
||||
@@ -102,8 +104,8 @@ public static class InputHelp
|
||||
|
||||
new ("", _("Track")),
|
||||
|
||||
new (_("Volume"), _("Up"), "add volume 2", "+"),
|
||||
new (_("Volume"), _("Down"), "add volume -2", "-"),
|
||||
new (_("Volume"), _p("Volume", "Up"), "add volume 2", "+"),
|
||||
new (_("Volume"), _p("Volume", "Down"), "add volume -2", "-"),
|
||||
new (_("Volume"), "-"),
|
||||
new (_("Volume"), _("Mute"), "cycle mute", "m"),
|
||||
|
||||
@@ -115,17 +117,31 @@ public static class InputHelp
|
||||
new (_("Speed"), "-"),
|
||||
new (_("Speed"), _("Reset"), "set speed 1", "BS"),
|
||||
|
||||
new (_("View"), _("Show Playlist"), "script-message-to mpvnet show-playlist", "F8"),
|
||||
new (_("View"), _("Show Profiles"), "script-message-to mpvnet show-profiles", "Ctrl+P"),
|
||||
new (_("View"), _("Toggle Statistics"), "script-binding stats/display-stats-toggle", "t"),
|
||||
new (_("View"), _("Toggle OSC Visibility"), "script-binding osc/visibility", "Del"),
|
||||
new (_("View"), _("Show Media Info On-Screen"), "script-message-to mpvnet show-media-info osd", "i"),
|
||||
new (_("View"), _("Show Media Info Message Box"), "script-message-to mpvnet show-media-info msgbox", "Ctrl+m"),
|
||||
new (_("View"), _("Show Progress"), "show-progress", "p"),
|
||||
|
||||
new (_("View") + " > " + _("On Screen Menu"), _("Playlist"), "script-binding select/select-playlist", "F8"),
|
||||
new (_("View") + " > " + _("On Screen Menu"), _("Bindings"), "script-binding select/select-binding", "F1"),
|
||||
new (_("View") + " > " + _("On Screen Menu"), _("Properties"), "script-binding select/show-properties", "F3"),
|
||||
new (_("View") + " > " + _("On Screen Menu"), _("Chapters"), "script-binding select/select-chapter", "Alt+c"),
|
||||
new (_("View") + " > " + _("On Screen Menu"), _("Tracks"), "script-binding select/select-track", "Alt+t"),
|
||||
new (_("View") + " > " + _("On Screen Menu"), _("Audio Tracks"), "script-binding select/select-aid"),
|
||||
new (_("View") + " > " + _("On Screen Menu"), _("Subtitle Tracks"), "script-binding select/select-sid"),
|
||||
new (_("View") + " > " + _("On Screen Menu"), _("Secondary Subtitle"), "script-binding select/select-secondary-sid", "Alt+F2"),
|
||||
new (_("View") + " > " + _("On Screen Menu"), _("Video Tracks"), "script-binding select/select-vid", "Alt+v"),
|
||||
new (_("View") + " > " + _("On Screen Menu"), _("Subtitle Lines"), "script-binding select/select-subtitle-line", "Alt+l"),
|
||||
new (_("View") + " > " + _("On Screen Menu"), _("Audio Devices"), "script-binding select/select-audio-device", "Alt+d"),
|
||||
|
||||
new (_("View") + " > " + _("More"), _("Show Console"), "script-binding console/enable", "`"),
|
||||
new (_("View") + " > " + _("More"), _("Show Audio Devices"), "script-message-to mpvnet show-audio-devices"),
|
||||
new (_("View") + " > " + _("More"), _("Show Commands"), "script-message-to mpvnet show-commands", "F2"),
|
||||
new (_("View") + " > " + _("More"), _("Show Bindings"), "script-message-to mpvnet show-bindings"),
|
||||
new (_("View") + " > " + _("More"), _("Show Keys"), "script-message-to mpvnet show-keys", "Alt+k"),
|
||||
new (_("View") + " > " + _("More"), _("Show Protocols"), "script-message-to mpvnet show-protocols", "Alt+p"),
|
||||
new (_("View") + " > " + _("More"), _("Show Decoders"), "script-message-to mpvnet show-decoders"),
|
||||
new (_("View") + " > " + _("More"), _("Show Demuxers"), "script-message-to mpvnet show-demuxers"),
|
||||
|
||||
new (_("Window"), _("Fullscreen"), "cycle fullscreen", "Enter"),
|
||||
new (_("Window") + " > " + _("Zoom"), _("Enlarge"), "script-message-to mpvnet scale-window 1.2", "Alt++"),
|
||||
@@ -135,11 +151,11 @@ public static class InputHelp
|
||||
new (_("Window") + " > " + _("Zoom"), _("100 %"), "script-message-to mpvnet window-scale 1.0", "Alt+1"),
|
||||
new (_("Window") + " > " + _("Zoom"), _("200 %"), "script-message-to mpvnet window-scale 2.0", "Alt+2"),
|
||||
new (_("Window") + " > " + _("Zoom"), _("300 %"), "script-message-to mpvnet window-scale 3.0", "Alt+3"),
|
||||
new (_("Window") + " > " + _("Move"), _("Left"), "script-message-to mpvnet move-window left", "Alt+Left"),
|
||||
new (_("Window") + " > " + _("Move"), _("Right"), "script-message-to mpvnet move-window right", "Alt+Right"),
|
||||
new (_("Window") + " > " + _("Move"), _("Up"), "script-message-to mpvnet move-window top", "Alt+Up"),
|
||||
new (_("Window") + " > " + _("Move"), _("Down"), "script-message-to mpvnet move-window bottom", "Alt+Down"),
|
||||
new (_("Window") + " > " + _("Move"), _("Center"), "script-message-to mpvnet move-window center", "Alt+BS"),
|
||||
new (_("Window") + " > " + _("Move"), _p("Move", "Left"), "script-message-to mpvnet move-window left", "Alt+Left"),
|
||||
new (_("Window") + " > " + _("Move"), _p("Move", "Right"), "script-message-to mpvnet move-window right", "Alt+Right"),
|
||||
new (_("Window") + " > " + _("Move"), _p("Move", "Up"), "script-message-to mpvnet move-window top", "Alt+Up"),
|
||||
new (_("Window") + " > " + _("Move"), _p("Move", "Down"), "script-message-to mpvnet move-window bottom", "Alt+Down"),
|
||||
new (_("Window") + " > " + _("Move"), _p("Move", "Center"), "script-message-to mpvnet move-window center", "Alt+BS"),
|
||||
new (_("Window"), _("Toggle Border"), "cycle border", "b"),
|
||||
new (_("Window"), _("Toggle On Top"), "cycle ontop", "Ctrl+t"),
|
||||
|
||||
@@ -156,7 +172,9 @@ public static class InputHelp
|
||||
new (_("Settings") + " > " + _("Setup"), _("Register audio file associations"), "script-message-to mpvnet reg-file-assoc audio"),
|
||||
new (_("Settings") + " > " + _("Setup"), _("Register image file associations"), "script-message-to mpvnet reg-file-assoc image"),
|
||||
new (_("Settings") + " > " + _("Setup"), _("Unregister file associations"), "script-message-to mpvnet reg-file-assoc unreg"),
|
||||
new (_("Settings") + " > " + _("Setup"), "-"),
|
||||
new (_("Settings") + " > " + _("Setup"), _("Add mpv.net to Path environment variable"), "script-message-to mpvnet add-to-path"),
|
||||
new (_("Settings") + " > " + _("Setup"), _("Remove mpv.net from Path environment variable"), "script-message-to mpvnet remove-from-path"),
|
||||
|
||||
new (_("Tools"), _("Set/clear A-B loop points"), "ab-loop", "l"),
|
||||
new (_("Tools"), _("Toggle infinite file looping"), "cycle-values loop-file inf no", "L"),
|
||||
@@ -207,11 +225,7 @@ public static class InputHelp
|
||||
new ("", "", "no-osd sub-seek 1", "Ctrl+Shift+Right", _("Seek to next subtitle")),
|
||||
new ("", "", "no-osd seek 5", "Ctrl+Wheel_Up", _("Seek Forward")),
|
||||
new ("", "", "no-osd seek -5", "Ctrl+Wheel_Down", _("Seek Backward")),
|
||||
new ("", "", "quit 4", "Esc", _("Quit encoding")),
|
||||
new ("", "", "quit 4", "q", _("Quit encoding")),
|
||||
new ("", "", "quit", "Power", _("Exit")),
|
||||
|
||||
//new (_("Command Palette"), _("Commands"), "script-message-to mpvnet show-command-palette", "F1"),
|
||||
};
|
||||
|
||||
return bindings;
|
||||
@@ -284,6 +298,9 @@ public static class InputHelp
|
||||
if (string.IsNullOrEmpty(content))
|
||||
return bindings;
|
||||
|
||||
if (content.Contains('\t'))
|
||||
content = content.Replace('\t', ' ');
|
||||
|
||||
foreach (string it in content.Split('\n'))
|
||||
{
|
||||
string line = it.Trim();
|
||||
@@ -404,54 +421,6 @@ public static class InputHelp
|
||||
return defaults;
|
||||
}
|
||||
|
||||
// only used by dead command palette
|
||||
public static List<Binding> GetBindingsFromContent(string content)
|
||||
{
|
||||
var bindings = new List<Binding>();
|
||||
|
||||
if (!string.IsNullOrEmpty(content))
|
||||
{
|
||||
foreach (string line in content.Split('\r', '\n'))
|
||||
{
|
||||
string value = line.Trim();
|
||||
|
||||
if (value.StartsWith("#"))
|
||||
continue;
|
||||
|
||||
if (!value.Contains(' '))
|
||||
continue;
|
||||
|
||||
Binding binding = new Binding();
|
||||
binding.Input = value[..value.IndexOf(" ")];
|
||||
|
||||
if (binding.Input == "_")
|
||||
binding.Input = "";
|
||||
|
||||
value = value[(value.IndexOf(" ") + 1)..];
|
||||
|
||||
if (value.Contains(App.MenuSyntax))
|
||||
{
|
||||
binding.Comment = value[(value.IndexOf(App.MenuSyntax) + App.MenuSyntax.Length)..].Trim();
|
||||
value = value[..value.IndexOf(App.MenuSyntax)];
|
||||
|
||||
if (binding.Comment.Contains(';'))
|
||||
binding.Comment = binding.Comment[(binding.Comment.IndexOf(";") + 1)..].Trim();
|
||||
}
|
||||
|
||||
binding.Command = value.Trim();
|
||||
|
||||
if (binding.Command == "")
|
||||
continue;
|
||||
|
||||
if (binding.Command.ToLower() == "ignore")
|
||||
binding.Command = "";
|
||||
|
||||
bindings.Add(binding);
|
||||
}
|
||||
}
|
||||
return bindings;
|
||||
}
|
||||
|
||||
public static Dictionary<string, Binding> GetActiveBindings(List<Binding> bindings)
|
||||
{
|
||||
Dictionary<string, Binding> ret = new();
|
||||
@@ -479,7 +448,7 @@ public static class InputHelp
|
||||
|
||||
Binding binding = it.Value;
|
||||
|
||||
if (!keys.Contains(binding.Input) && (charCount + binding.Input.Length) < 20 && keys.Count < 2)
|
||||
if (!keys.Contains(binding.Input) && (charCount + binding.Input.Length) < 15)
|
||||
{
|
||||
keys.Add(binding.Input);
|
||||
charCount += binding.Input.Length;
|
||||
|
||||
@@ -16,8 +16,6 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="Extension\" />
|
||||
<Folder Include="Input\" />
|
||||
<Folder Include="Docs\" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
@@ -36,6 +36,7 @@ public class MainPlayer : MpvClient
|
||||
public bool Paused { get; set; }
|
||||
public bool SnapWindow { get; set; }
|
||||
public bool TaskbarProgress { get; set; } = true;
|
||||
public bool TitleBar { get; set; } = true;
|
||||
public bool WasInitialSizeSet;
|
||||
public bool WindowMaximized { get; set; }
|
||||
public bool WindowMinimized { get; set; }
|
||||
@@ -58,12 +59,14 @@ public class MainPlayer : MpvClient
|
||||
public TimeSpan Duration;
|
||||
public List<MpvClient> Clients { get; } = new List<MpvClient>();
|
||||
|
||||
List<StringPair>? _audioDevices;
|
||||
|
||||
public event Action? Initialized;
|
||||
public event Action? Pause;
|
||||
public event Action<int>? PlaylistPosChanged;
|
||||
public event Action<Size>? VideoSizeChanged;
|
||||
|
||||
public void Init(IntPtr formHandle, bool processCommandLineArguments = true)
|
||||
public void Init(IntPtr formHandle, bool processCommandLine)
|
||||
{
|
||||
App.ApplyShowMenuFix();
|
||||
|
||||
@@ -90,17 +93,20 @@ public class MainPlayer : MpvClient
|
||||
}
|
||||
|
||||
if (formHandle != IntPtr.Zero)
|
||||
{
|
||||
SetPropertyString("force-window", "yes");
|
||||
SetPropertyLong("wid", formHandle.ToInt64());
|
||||
}
|
||||
|
||||
SetPropertyInt("osd-duration", 2000);
|
||||
|
||||
SetPropertyBool("input-default-bindings", true);
|
||||
SetPropertyBool("input-builtin-bindings", false);
|
||||
|
||||
SetPropertyString("idle", "yes");
|
||||
SetPropertyString("screenshot-directory", "~~desktop/");
|
||||
SetPropertyString("osd-playing-msg", "${media-title}");
|
||||
SetPropertyString("osc", "yes");
|
||||
SetPropertyString("force-window", "yes");
|
||||
SetPropertyString("config-dir", ConfigFolder);
|
||||
SetPropertyString("config", "yes");
|
||||
|
||||
@@ -109,8 +115,8 @@ public class MainPlayer : MpvClient
|
||||
if (!string.IsNullOrEmpty(UsedInputConfContent))
|
||||
SetPropertyString("input-conf", @"memory://" + UsedInputConfContent);
|
||||
|
||||
if (processCommandLineArguments)
|
||||
ProcessCommandLineArgs();
|
||||
if (processCommandLine)
|
||||
CommandLine.ProcessCommandLineArgsPreInit();
|
||||
|
||||
if (CommandLine.Contains("config-dir"))
|
||||
{
|
||||
@@ -130,10 +136,6 @@ public class MainPlayer : MpvClient
|
||||
if (err < 0)
|
||||
throw new Exception("mpv_initialize error" + BR2 + GetError(err) + BR);
|
||||
|
||||
SetPropertyString("user-data/frontend/name", "mpv.net");
|
||||
SetPropertyString("user-data/frontend/version", AppInfo.Version.ToString());
|
||||
SetPropertyString("user-data/frontend/process-path", Environment.ProcessPath!);
|
||||
|
||||
string idle = GetPropertyString("idle");
|
||||
App.Exit = idle == "no" || idle == "once";
|
||||
|
||||
@@ -151,6 +153,10 @@ public class MainPlayer : MpvClient
|
||||
// this means Lua scripts that use idle might not work correctly
|
||||
SetPropertyString("idle", "yes");
|
||||
|
||||
SetPropertyString("user-data/frontend/name", "mpv.net");
|
||||
SetPropertyString("user-data/frontend/version", AppInfo.Version.ToString());
|
||||
SetPropertyString("user-data/frontend/process-path", Environment.ProcessPath!);
|
||||
|
||||
ObservePropertyBool("pause", value => {
|
||||
Paused = value;
|
||||
Pause?.Invoke();
|
||||
@@ -221,6 +227,7 @@ public class MainPlayer : MpvClient
|
||||
case "vo": VO = value!; break;
|
||||
case "window-maximized": WindowMaximized = value == "yes"; break;
|
||||
case "window-minimized": WindowMinimized = value == "yes"; break;
|
||||
case "title-bar": TitleBar = value == "yes"; break;
|
||||
}
|
||||
|
||||
if (AutofitLarger > 1)
|
||||
@@ -385,9 +392,6 @@ public class MainPlayer : MpvClient
|
||||
if (App.StartSize == "video")
|
||||
WasInitialSizeSet = false;
|
||||
|
||||
if (!FileTypes.Video.Contains(Path.Ext()) || FileTypes.Audio.Contains(Path.Ext()))
|
||||
UpdateVideoSize("width", "height");
|
||||
|
||||
TaskHelp.Run(UpdateTracks);
|
||||
|
||||
base.OnFileLoaded();
|
||||
@@ -413,52 +417,6 @@ public class MainPlayer : MpvClient
|
||||
|
||||
public void SetBluRayTitle(int id) => LoadFiles(new[] { @"bd://" + id }, false, false);
|
||||
|
||||
public void ProcessCommandLineArgs()
|
||||
{
|
||||
foreach (var pair in CommandLine.Arguments)
|
||||
{
|
||||
if (pair.Name.EndsWith("-add"))
|
||||
continue;
|
||||
|
||||
ProcessProperty(pair.Name, pair.Value);
|
||||
|
||||
if (!App.ProcessProperty(pair.Name, pair.Value))
|
||||
SetPropertyString(pair.Name, pair.Value);
|
||||
}
|
||||
}
|
||||
|
||||
public void ProcessCommandLineArgsPost()
|
||||
{
|
||||
foreach (var pair in CommandLine.Arguments)
|
||||
{
|
||||
if (pair.Name.EndsWith("-add"))
|
||||
{
|
||||
string name = pair.Name[..^4];
|
||||
string separator = name.Contains("-file") || name.Contains("-path") ? ";" : ",";
|
||||
SetPropertyString(name, GetPropertyString(name) + separator + pair.Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void ProcessCommandLineFiles()
|
||||
{
|
||||
List<string> files = new List<string>();
|
||||
|
||||
foreach (string arg in Environment.GetCommandLineArgs().Skip(1))
|
||||
if (!arg.StartsWith("--") && (arg == "-" || arg.Contains("://") ||
|
||||
arg.Contains(":\\") || arg.StartsWith("\\\\") || File.Exists(arg)))
|
||||
|
||||
files.Add(arg);
|
||||
|
||||
LoadFiles(files.ToArray(), !App.Queue, false || App.Queue);
|
||||
|
||||
if (App.CommandLine.Contains("--shuffle"))
|
||||
{
|
||||
Command("playlist-shuffle");
|
||||
SetPropertyInt("playlist-pos", 0);
|
||||
}
|
||||
}
|
||||
|
||||
public DateTime LastLoad;
|
||||
|
||||
public void LoadFiles(string[]? files, bool loadFolder, bool append)
|
||||
@@ -495,7 +453,7 @@ public class MainPlayer : MpvClient
|
||||
}
|
||||
|
||||
if (ext == "iso")
|
||||
LoadBluRayISO(file);
|
||||
LoadISO(file);
|
||||
else if(FileTypes.Subtitle.Contains(ext))
|
||||
CommandV("sub-add", file);
|
||||
else if (!FileTypes.IsMedia(ext) && !file.Contains("://") && Directory.Exists(file) &&
|
||||
@@ -530,12 +488,24 @@ public class MainPlayer : MpvClient
|
||||
return path;
|
||||
}
|
||||
|
||||
public void LoadBluRayISO(string path)
|
||||
public void LoadISO(string path)
|
||||
{
|
||||
Command("stop");
|
||||
Thread.Sleep(500);
|
||||
SetPropertyString("bluray-device", path);
|
||||
LoadFiles(new[] { @"bd://" }, false, false);
|
||||
using var mi = new MediaInfo(path);
|
||||
|
||||
if (mi.GetGeneral("Format") == "ISO 9660 / DVD Video")
|
||||
{
|
||||
Command("stop");
|
||||
Thread.Sleep(500);
|
||||
SetPropertyString("dvd-device", path);
|
||||
LoadFiles(new[] { @"dvd://" }, false, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
Command("stop");
|
||||
Thread.Sleep(500);
|
||||
SetPropertyString("bluray-device", path);
|
||||
LoadFiles(new[] { @"bd://" }, false, false);
|
||||
}
|
||||
}
|
||||
|
||||
public void LoadDiskFolder(string path)
|
||||
@@ -580,7 +550,7 @@ public class MainPlayer : MpvClient
|
||||
dir = System.IO.Path.GetDirectoryName(path)!;
|
||||
|
||||
List<string> files = FileTypes.GetMediaFiles(Directory.GetFiles(dir)).ToList();
|
||||
|
||||
|
||||
if (OperatingSystem.IsWindows())
|
||||
files.Sort(new StringLogicalComparer());
|
||||
|
||||
@@ -672,6 +642,26 @@ public class MainPlayer : MpvClient
|
||||
}
|
||||
}
|
||||
|
||||
public List<StringPair> AudioDevices {
|
||||
get {
|
||||
if (_audioDevices != null)
|
||||
return _audioDevices;
|
||||
|
||||
_audioDevices = new();
|
||||
string json = GetPropertyString("audio-device-list");
|
||||
var enumerator = JsonDocument.Parse(json).RootElement.EnumerateArray();
|
||||
|
||||
foreach (var element in enumerator)
|
||||
{
|
||||
string name = element.GetProperty("name").GetString()!;
|
||||
string description = element.GetProperty("description").GetString()!;
|
||||
_audioDevices.Add(new StringPair(name, description));
|
||||
}
|
||||
|
||||
return _audioDevices;
|
||||
}
|
||||
}
|
||||
|
||||
public List<Chapter> GetChapters() {
|
||||
List<Chapter> chapters = new List<Chapter>();
|
||||
int count = GetPropertyInt("chapter-list/count");
|
||||
|
||||
@@ -11,13 +11,16 @@ public class AppSettings
|
||||
{
|
||||
public bool InputDefaultBindingsFixApplied;
|
||||
public bool ShowMenuFixApplied;
|
||||
public int MenuUpdateVersion;
|
||||
public int Volume = 70;
|
||||
public List<string> RecentFiles = new List<string>();
|
||||
public Point WindowLocation;
|
||||
public Point WindowPosition;
|
||||
public Size WindowSize;
|
||||
public string AudioDevice = "";
|
||||
public string ConfigEditorSearch = "Video:";
|
||||
public string Mute = "no";
|
||||
public string StartupFolder = "";
|
||||
}
|
||||
|
||||
class SettingsManager
|
||||
|
||||
@@ -9,4 +9,5 @@ public class Translator
|
||||
public interface ITranslator
|
||||
{
|
||||
public string Gettext(string msgId);
|
||||
public string GetParticularString(string context, string text);
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ AppPublisher=Frank Skare (stax76)
|
||||
ArchitecturesInstallIn64BitMode=x64
|
||||
Compression=lzma2
|
||||
DefaultDirName={autopf}\{#MyAppName}
|
||||
OutputBaseFilename=mpv.net-v{#MyAppVersion}-setup
|
||||
OutputBaseFilename=mpv.net-v{#MyAppVersion}-setup-x64
|
||||
OutputDir=E:\Desktop
|
||||
DefaultGroupName={#MyAppName}
|
||||
SetupIconFile=..\..\MpvNet.Windows\mpv-icon.ico
|
||||
@@ -25,4 +25,4 @@ Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
|
||||
|
||||
[Files]
|
||||
Source: "{#MyAppSourceDir}\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "{#MyAppSourceDir}\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs;
|
||||
Source: "{#MyAppSourceDir}\*"; DestDir: "{app}"; Excludes: "win-x64,win-arm64"; Flags: ignoreversion recursesubdirs createallsubdirs;
|
||||
|
||||
114
src/Tools/release-mpv.net.ps1
Normal file
@@ -0,0 +1,114 @@
|
||||
|
||||
<#
|
||||
|
||||
Script that releases mpv.net on GitHub.
|
||||
|
||||
Needs 2 positional CLI arguments:
|
||||
1. Directory where the mpv.net source code is located.
|
||||
2. Directory of the output files, for instance the desktop dir.
|
||||
|
||||
Dependencies:
|
||||
7zip installation found at: 'C:\Program Files\7-Zip\7z.exe'.
|
||||
Inno Setup compiler installation found at: 'C:\Program Files (x86)\Inno Setup 6\ISCC.exe'.
|
||||
GitHub CLI https://cli.github.com
|
||||
|
||||
#>
|
||||
|
||||
# Stop when the first error occurs
|
||||
$ErrorActionPreference = 'Stop'
|
||||
|
||||
function DeleteDir($path) {
|
||||
if (Test-Path $path) {
|
||||
Remove-Item $path -Recurse
|
||||
}
|
||||
}
|
||||
|
||||
# Throw error if the file/dir don't exist
|
||||
function Test($path) {
|
||||
if (-not (Test-Path $path)) {
|
||||
throw $path
|
||||
}
|
||||
return $path
|
||||
}
|
||||
|
||||
# Variables
|
||||
$SourceDir = Test $args[0]
|
||||
$OutputRootDir = Test $args[1]
|
||||
|
||||
Test (Join-Path $SourceDir 'MpvNet.sln')
|
||||
|
||||
$7zFile = Test 'C:\Program Files\7-Zip\7z.exe'
|
||||
$InnoSetupCompiler = Test 'C:\Program Files (x86)\Inno Setup 6\ISCC.exe'
|
||||
|
||||
$ReleaseNotes = "- [.NET Desktop Runtime 6.0](https://dotnet.microsoft.com/en-us/download/dotnet/6.0)`n- [Changelog](https://github.com/mpvnet-player/mpv.net/blob/main/docs/changelog.md)"
|
||||
$Repo = 'github.com/mpvnet-player/mpv.net'
|
||||
|
||||
# Dotnet Publish
|
||||
$PublishDir64 = Join-Path $SourceDir 'MpvNet.Windows\bin\Debug\win-x64\publish\'
|
||||
$PublishDirARM64 = Join-Path $SourceDir 'MpvNet.Windows\bin\Debug\win-arm64\publish\'
|
||||
$ProjectFile = Test (Join-Path $SourceDir 'MpvNet.Windows\MpvNet.Windows.csproj')
|
||||
dotnet publish $ProjectFile --self-contained false --configuration Debug --runtime win-x64
|
||||
dotnet publish $ProjectFile --self-contained false --configuration Debug --runtime win-arm64
|
||||
$PublishedExeFile64 = Test ($PublishDir64 + 'mpvnet.exe')
|
||||
|
||||
# Create OutputName
|
||||
$VersionInfo = [Diagnostics.FileVersionInfo]::GetVersionInfo($PublishedExeFile64)
|
||||
$IsBeta = $VersionInfo.FilePrivatePart -ne 0
|
||||
$BetaString = if ($IsBeta) { '-beta' } else { '' }
|
||||
$VersionName = $VersionInfo.FileVersion
|
||||
$OutputName64 = 'mpv.net-v' + $VersionName + $BetaString + '-portable-x64'
|
||||
$OutputNameARM64 = 'mpv.net-v' + $VersionName + $BetaString + '-portable-ARM64'
|
||||
|
||||
# Create OutputFolder
|
||||
$OutputDir64 = Join-Path $OutputRootDir ($OutputName64 + '\')
|
||||
$OutputDirARM64 = Join-Path $OutputRootDir ($OutputNameARM64 + '\')
|
||||
DeleteDir $OutputDir64
|
||||
DeleteDir $OutputDirARM64
|
||||
mkdir $OutputDir64
|
||||
mkdir $OutputDirARM64
|
||||
|
||||
# Copy Files
|
||||
Copy-Item ($PublishDir64 + '*') $OutputDir64
|
||||
Copy-Item ($PublishDirARM64 + '*') $OutputDirARM64
|
||||
$BinDirX64 = Test (Join-Path $SourceDir 'MpvNet.Windows\bin\Debug\')
|
||||
$BinDirARM64 = Test (Join-Path $SourceDir 'MpvNet.Windows\bin\Debug\win-arm64\')
|
||||
$ExtraFiles = 'mpvnet.com', 'libmpv-2.dll', 'MediaInfo.dll'
|
||||
$ExtraFiles | ForEach-Object { Copy-Item ($BinDirX64 + $_) ($OutputDir64 + $_) }
|
||||
$ExtraFiles | ForEach-Object { Copy-Item ($BinDirARM64 + $_) ($OutputDirARM64 + $_) }
|
||||
$LocaleDir = Test (Join-Path $SourceDir 'MpvNet.Windows\bin\Debug\Locale\')
|
||||
Copy-Item $LocaleDir ($OutputDir64 + 'Locale') -Recurse
|
||||
Copy-Item $LocaleDir ($OutputDirARM64 + 'Locale') -Recurse
|
||||
|
||||
# Pack
|
||||
$ZipOutputFile64 = Join-Path $OutputRootDir ($OutputName64 + '.zip')
|
||||
$ZipOutputFileARM64 = Join-Path $OutputRootDir ($OutputNameARM64 + '.zip')
|
||||
& $7zFile a -tzip -mx9 $ZipOutputFile64 -r ($OutputDir64 + '*')
|
||||
if ($LastExitCode) { throw $LastExitCode }
|
||||
& $7zFile a -tzip -mx9 $ZipOutputFileARM64 -r ($OutputDirARM64 + '*')
|
||||
if ($LastExitCode) { throw $LastExitCode }
|
||||
Test $ZipOutputFile64
|
||||
Test $ZipOutputFileARM64
|
||||
|
||||
# Inno Setup
|
||||
''; ''
|
||||
$InnoSetupScript = Test (Join-Path $SourceDir 'Setup\Inno\inno-setup.iss')
|
||||
& $InnoSetupCompiler $InnoSetupScript
|
||||
if ($LastExitCode) { throw $LastExitCode }
|
||||
$SetupFile = Test (Join-Path $OutputRootDir "mpv.net-v$VersionName-setup-x64.exe")
|
||||
|
||||
if ($IsBeta) {
|
||||
$NewSetupFile = Join-Path $OutputRootDir "mpv.net-v$VersionName-beta-setup-x64.exe"
|
||||
Move-Item $SetupFile $NewSetupFile
|
||||
$SetupFile = $NewSetupFile
|
||||
}
|
||||
|
||||
# Release
|
||||
$Title = 'v' + $VersionName + $BetaString
|
||||
|
||||
if ($BetaString) {
|
||||
gh release create $Title -t $Title -n $ReleaseNotes --repo $Repo --prerelease $ZipOutputFile64 $ZipOutputFileARM64 $SetupFile
|
||||
} else {
|
||||
gh release create $Title -t $Title -n $ReleaseNotes --repo $Repo $ZipOutputFile64 $ZipOutputFileARM64 $SetupFile
|
||||
}
|
||||
|
||||
if ($LastExitCode) { throw $LastExitCode }
|
||||
104
src/Tools/update-mpv.ps1
Normal file
@@ -0,0 +1,104 @@
|
||||
|
||||
<#
|
||||
|
||||
Updates mpv (x64) and libmpv (x64 , ARM64).
|
||||
|
||||
Files are downloaded from:
|
||||
x64: github.com/zhongfly/mpv-winbuild
|
||||
ARM64: github.com/Andarwinux/mpv-winbuild
|
||||
|
||||
Requires 7zip being installed at 'C:\Program Files\7-Zip\7z.exe'.
|
||||
|
||||
Needs 3 positional CLI arguments:
|
||||
1. Directory where mpv x64 is located. To skip pass '-'.
|
||||
2. Directory where libmpv x64 is located. To skip pass '-'.
|
||||
3. Directory where libmpv ARM64 is located. To skip pass '-'.
|
||||
#>
|
||||
|
||||
$7ZipPath = 'C:\Program Files\7-Zip\7z.exe'
|
||||
|
||||
$MpvDirX64 = $args[0]
|
||||
$LibmpvDirX64 = $args[1]
|
||||
$LibmpvDirARM64 = $args[2]
|
||||
|
||||
# Stop when the first error occurs
|
||||
$ErrorActionPreference = 'Stop'
|
||||
|
||||
# Throw exception if file or folder does not exist
|
||||
function Test($path) {
|
||||
if (-not (Test-Path $path)) {
|
||||
throw $path
|
||||
}
|
||||
return $path
|
||||
}
|
||||
|
||||
# Download file to temp dir and return file path
|
||||
function Download($apiURL, $pattern) {
|
||||
$json = Invoke-WebRequest $apiURL -MaximumRedirection 0 -ErrorAction Ignore -UseBasicParsing | ConvertFrom-Json
|
||||
$filename = ($json.assets | Where-Object { $_.name -Match $pattern }).name
|
||||
$path = Join-Path $env:TEMP $filename
|
||||
$link = ($json.assets | Where-Object { $_.name -Match $pattern }).browser_download_url
|
||||
Invoke-WebRequest -Uri $link -UserAgent "mpv-win-updater" -OutFile $path
|
||||
return Test $path
|
||||
}
|
||||
|
||||
# Unpack archive
|
||||
function Unpack($archieveFile, $outputRootDir) {
|
||||
$outputDir = Join-Path $outputRootDir $archieveFile.BaseName
|
||||
if (Test-Path $outputDir) { Remove-Item $outputDir -Recurse }
|
||||
$process = Start-Process (Test $7ZipPath) @('x', $archieveFile.FullName, "-o$outputDir") -NoNewWindow -Wait
|
||||
if ($process.ExitCode) { throw $process.ExitCode }
|
||||
return Test $outputDir
|
||||
}
|
||||
|
||||
# Update mpv x64
|
||||
|
||||
if (Test-Path (Join-Path $MpvDirX64 'mpv.exe')) {
|
||||
$apiURL = "https://api.github.com/repos/zhongfly/mpv-winbuild/releases/latest"
|
||||
$archiveFile = Get-Item (Download $apiURL "mpv-x86_64-[0-9]{8}")
|
||||
$archiveDir = Unpack $archiveFile $env:TEMP
|
||||
Remove-Item "$MpvDirX64\*" -Force -Recurse
|
||||
Copy-Item "$archiveDir\*" $MpvDirX64 -Force -Recurse
|
||||
Remove-Item $archiveFile.FullName
|
||||
Remove-Item $archiveDir -Recurse
|
||||
} else {
|
||||
"mpv x64 location not found:`n$MpvDirX64"
|
||||
}
|
||||
|
||||
# Update libmpv x64
|
||||
|
||||
if (Test-Path (Join-Path $LibmpvDirX64 'libmpv-2.dll')) {
|
||||
$apiURL = "https://api.github.com/repos/zhongfly/mpv-winbuild/releases/latest"
|
||||
$archiveFile = Get-Item (Download $apiURL "mpv-dev-x86_64-[0-9]{8}")
|
||||
$archiveDir = Unpack $archiveFile $env:TEMP
|
||||
Copy-Item $archiveDir\libmpv-2.dll $LibmpvDirX64 -Force
|
||||
Remove-Item $archiveFile.FullName
|
||||
Remove-Item $archiveDir -Recurse
|
||||
} else {
|
||||
"libmpv x64 location not found:`n$LibmpvDirX64"
|
||||
}
|
||||
|
||||
# Update libmpv ARM64
|
||||
|
||||
if (Test-Path (Join-Path $LibmpvDirARM64 'libmpv-2.dll')) {
|
||||
$apiURL = "https://api.github.com/repos/Andarwinux/mpv-winbuild/releases/latest"
|
||||
$archiveFile = Get-Item (Download $apiURL "mpv-dev-aarch64-[0-9]{8}")
|
||||
$archiveDir = Unpack $archiveFile $env:TEMP
|
||||
Copy-Item $archiveDir\libmpv-2.dll $LibmpvDirARM64 -Force
|
||||
Remove-Item $archiveFile.FullName
|
||||
Remove-Item $archiveDir -Recurse
|
||||
} else {
|
||||
"libmpv ARM64 location not found:`n$LibmpvDirARM64"
|
||||
}
|
||||
|
||||
if (Test-Path (Join-Path $MpvDirX64 'mpv.exe')) {
|
||||
Get-Item (Join-Path $MpvDirX64 'mpv.exe')
|
||||
}
|
||||
|
||||
if (Test-Path (Join-Path $LibmpvDirX64 'libmpv-2.dll')) {
|
||||
Get-Item (Join-Path $LibmpvDirX64 'libmpv-2.dll')
|
||||
}
|
||||
|
||||
if (Test-Path (Join-Path $LibmpvDirARM64 'libmpv-2.dll')) {
|
||||
Get-Item (Join-Path $LibmpvDirARM64 'libmpv-2.dll')
|
||||
}
|
||||