Compare commits
110 Commits
v7.0.0.1-b
...
v7.1.1.3-b
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ace7566c2a | ||
|
|
0b646cedb5 | ||
|
|
a0d2fb6a4e | ||
|
|
59a556794f | ||
|
|
cca474a5a5 | ||
|
|
ae05b997c7 | ||
|
|
88a6e18e78 | ||
|
|
3de72df806 | ||
|
|
da176085cd | ||
|
|
2b0ac7c087 | ||
|
|
94ecf4a069 | ||
|
|
9355e2f50c | ||
|
|
058ae3d185 | ||
|
|
3c1e6395a4 | ||
|
|
236d10c14a | ||
|
|
53f350da9a | ||
|
|
bb6819f240 | ||
|
|
8f53254dbc | ||
|
|
8ed73f6ae0 | ||
|
|
d59ccd7beb | ||
|
|
aeb11c9be1 | ||
|
|
a1c8e93034 | ||
|
|
00a11ea076 | ||
|
|
9115f707dc | ||
|
|
a2ec8de976 | ||
|
|
be7e5aa7d2 | ||
|
|
27124c9cdd | ||
|
|
44079ed69c | ||
|
|
07749cb2cc | ||
|
|
9d30acaba6 | ||
|
|
f3fdef780d | ||
|
|
1243d1381b | ||
|
|
3602f627e8 | ||
|
|
97fab64d32 | ||
|
|
e7b7f33b1b | ||
|
|
01c2171a62 | ||
|
|
321dc13531 | ||
|
|
4032e8be7b | ||
|
|
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 | ||
|
|
a3b9c653fa | ||
|
|
ed48f5c559 | ||
|
|
d328f6b7ec | ||
|
|
16ba94d67d | ||
|
|
7978170133 | ||
|
|
ab313eb442 | ||
|
|
f40008d94a | ||
|
|
75e19d8d18 | ||
|
|
9bb978f612 | ||
|
|
7ea3fbc917 | ||
|
|
3af5b458ba | ||
|
|
b23542d681 | ||
|
|
e0616dee76 | ||
|
|
cd54e67b87 | ||
|
|
9d4779fd96 | ||
|
|
d4d147e5fc | ||
|
|
35b17bc620 | ||
|
|
3eb4af5e75 | ||
|
|
49f22a1f81 | ||
|
|
7cd5686488 | ||
|
|
0d63feec57 | ||
|
|
0ee8318ca4 |
6
.github/workflows/build.yml
vendored
@@ -50,17 +50,17 @@ jobs:
|
|||||||
msbuild MpvNet.sln /m /p:Configuration=Debug
|
msbuild MpvNet.sln /m /p:Configuration=Debug
|
||||||
- name: Create .mo files for localization
|
- name: Create .mo files for localization
|
||||||
shell: pwsh
|
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
|
- name: Download libmpv # In principle, only update this binary file when significant feature changes occur in mpv/mpv.net
|
||||||
shell: msys2 {0}
|
shell: msys2 {0}
|
||||||
run: |
|
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-10-09-e09278c/mpv-dev-x86_64-20241009-git-e09278c.7z
|
||||||
7z x -y libmpv.7z -olibmpv
|
7z x -y libmpv.7z -olibmpv
|
||||||
cp -f libmpv/libmpv-2.dll src/MpvNet.Windows/bin/Debug/ || true
|
cp -f libmpv/libmpv-2.dll src/MpvNet.Windows/bin/Debug/ || true
|
||||||
- name: Download MediaInfo
|
- name: Download MediaInfo
|
||||||
shell: msys2 {0}
|
shell: msys2 {0}
|
||||||
run: |
|
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
|
7z x -y MediaInfo.7z -oMediaInfo
|
||||||
cp -f MediaInfo/MediaInfo.dll src/MpvNet.Windows/bin/Debug/ || true
|
cp -f MediaInfo/MediaInfo.dll src/MpvNet.Windows/bin/Debug/ || true
|
||||||
- name: Download mpvnet.com file
|
- name: Download mpvnet.com file
|
||||||
|
|||||||
32
README.md
@@ -6,7 +6,7 @@
|
|||||||
🎞 mpv.net
|
🎞 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.
|
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,
|
mpv.net is designed to be mpv compatible, almost all mpv features are available,
|
||||||
@@ -56,6 +56,7 @@ Table of contents
|
|||||||
- [Download](#download)
|
- [Download](#download)
|
||||||
- [Manual](#manual)
|
- [Manual](#manual)
|
||||||
- [Screenshots](#screenshots)
|
- [Screenshots](#screenshots)
|
||||||
|
- [Contributing](#contributing)
|
||||||
|
|
||||||
|
|
||||||
Features that mpv and mpv.net have in common
|
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
|
- JSON IPC to control the player with a external programs
|
||||||
- On Screen Controller (OSC, play control buttons) with modern flat design
|
- On Screen Controller (OSC, play control buttons) with modern flat design
|
||||||
- Command Line Interface
|
- 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
|
- 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
|
- 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
|
- 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
|
- Very high degree of mpv compatibility, almost all mpv features are available
|
||||||
- Modern graphical user interface with customizable color themes
|
- 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 config editor
|
||||||
- Searchable input (shorcut keys) editor
|
- Searchable input (shorcut keys) editor
|
||||||
- C# and PowerShell Scripting
|
|
||||||
- Global keyboard shortcuts
|
- Global keyboard shortcuts
|
||||||
- Extension API for .NET languages (C#, VB.NET and F#)
|
- 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
|
- Files can be enqueued from File Explorer
|
||||||
|
|
||||||
|
|
||||||
@@ -111,6 +109,11 @@ Features exclusive to mpv.net
|
|||||||
[The mpv.net documentation.](docs/manual.md)
|
[The mpv.net documentation.](docs/manual.md)
|
||||||
|
|
||||||
|
|
||||||
|
## [Contributing](docs/contributing.md)
|
||||||
|
|
||||||
|
[Contributing section of the manual.](docs/manual.md#contributing)
|
||||||
|
|
||||||
|
|
||||||
Screenshots
|
Screenshots
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
@@ -121,27 +124,16 @@ Screenshots
|
|||||||
|
|
||||||
#### Context Menu
|
#### Context Menu
|
||||||
|
|
||||||
Context menu using dark mode.
|

|
||||||
|
|
||||||

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

|

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

|
||||||
|
|
||||||

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

|
|
||||||
|
|||||||
@@ -1,4 +1,142 @@
|
|||||||
|
|
||||||
|
# v7.1.1.3 Beta (2024-10-20)
|
||||||
|
|
||||||
|
- Support for autocreate-playlist, video-exts, audio-exts, image-exts.
|
||||||
|
Windows 7 support should still work, but needs auto-load-folder to be enabled
|
||||||
|
or autoload.lua.
|
||||||
|
- The command palette user script is installable from the context menu under
|
||||||
|
`Settings > Setup > Install Command Palette`. The command palette features
|
||||||
|
are shown in the menu under 'View > Command Palette'.
|
||||||
|
- New command to select the stream quality `Video > Stream Quality (Alt+q)`,
|
||||||
|
this calls the Stream Quality feature of the command palette.
|
||||||
|
- The Command Palette interacts with mpv.net to enable the Recent Files
|
||||||
|
feature in the Command Palette.
|
||||||
|
- New zhongfly libmpv x64 build.
|
||||||
|
- New Andarwinux libmpv ARM64 build.
|
||||||
|
|
||||||
|
|
||||||
|
# v7.1.1.2 Beta (2024-10-10)
|
||||||
|
|
||||||
|
- Polish translation fixed. German, Turkish and Japanese translation updated.
|
||||||
|
French translation added! Thanks to the translation team!
|
||||||
|
- Support of relative folders from command line.
|
||||||
|
- Support for the mpv option `cursor-autohide`.
|
||||||
|
- A issue with the support of the mpv property `title-bar` has been fixed,
|
||||||
|
at the moment this is most useful for users of the popular uosc user script,
|
||||||
|
the mpv built-in OSC doesn't fully support it yet.
|
||||||
|
- `media-controls=yes` is now enabled by default, this enables play controls
|
||||||
|
in the `KDE Connect` android app.
|
||||||
|
- The mpv.net option `auto-load-folder` by default is now disabled and the
|
||||||
|
option is deprecated. The reason for this is mpv has new native support
|
||||||
|
for it using `autocreate-playlist`, which mpv.net uses now instead by default.
|
||||||
|
- New zhongfly libmpv x64 build.
|
||||||
|
- New Andarwinux libmpv ARM64 build.
|
||||||
|
|
||||||
|
|
||||||
|
# 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,
|
||||||
|
it asks if file associations should be registered.
|
||||||
|
- Setup supports installing per user in non admin mode.
|
||||||
|
- Command line parser supports list options with `-add` suffix.
|
||||||
|
- Fix window sometimes shown with wrong size.
|
||||||
|
- Limited support for the mpv option `geometry`, it supports location in percent,
|
||||||
|
for size use `autofit`. Read the instructions in the mpv.net manual or in the conf editor.
|
||||||
|
- Improved manual.
|
||||||
|
- Improved bindings.
|
||||||
|
- Conf editor reorganized according to options categories used in mpv manual.
|
||||||
|
- mpv.net is available via command line package manager winget.
|
||||||
|
- New libplacebo config editor options added.
|
||||||
|
- The conf editor uses a newly developed combo box control (dropdown menu)
|
||||||
|
instead of radio buttons whenever an option has more than 3 items,
|
||||||
|
this improves the look and feel, usability and performance.
|
||||||
|
The navigation tree view was improved.
|
||||||
|
- New zhongfly libmpv build.
|
||||||
|
|
||||||
|
|
||||||
|
# v7.0.0.3 Beta (2023-12-15)
|
||||||
|
|
||||||
|
- New conf editor option `Video/libplacebo/preset`.
|
||||||
|
- New conf editor option `Video/libplacebo/Scaling/upscaler`.
|
||||||
|
- New menu item `Settings/Setup/Add mpv.net to Path environment variable' added.
|
||||||
|
- New menu item `Settings/Edit mpv.conf` added for opening mpv.conf with a text editor. Default binding `c`.
|
||||||
|
- New menu item `Settings/Edit input.conf` added for opening input.conf with a text editor. Default binding `k`.
|
||||||
|
- mpv.net can no longer be downloaded from the Microsoft store due
|
||||||
|
to a general very poor experience with the package creation and submission.
|
||||||
|
I've submitted mpv.net to the winget package repository, it's not yet processed.
|
||||||
|
- Improved conf file reader/writer.
|
||||||
|
- Conf editor support added for the mpv options:
|
||||||
|
`reset-on-next-file`, `input-ipc-server`, `background`, `title`
|
||||||
|
- Conf editor crash fixed.
|
||||||
|
- When mpv.net is started for the first time from a new startup location,
|
||||||
|
it asks if mpv.net should be added to the Path environment variable.
|
||||||
|
|
||||||
|
# v7.0.0.2 Beta (2023-12-13)
|
||||||
|
|
||||||
|
- Besides a portable download there is now again a setup installer.
|
||||||
|
- Fix dynamic menu items missing in context menu.
|
||||||
|
- Fix certain binding setups shown poorly or incorrectly in the main menu.
|
||||||
|
- Fix conf editor not remembering the search text.
|
||||||
|
- Fix quit-watch-later not working.
|
||||||
|
- New option `menu-syntax`. Default: `#menu:`
|
||||||
|
- New zhongfly libmpv build.
|
||||||
|
|
||||||
# v7.0.0.1 Beta (2023-12-11)
|
# v7.0.0.1 Beta (2023-12-11)
|
||||||
|
|
||||||
- [.NET 6 is a new requirement](https://dotnet.microsoft.com/en-us/download/dotnet/6.0)
|
- [.NET 6 is a new requirement](https://dotnet.microsoft.com/en-us/download/dotnet/6.0)
|
||||||
@@ -12,7 +150,7 @@
|
|||||||
- Fix message box exceding working area size.
|
- Fix message box exceding working area size.
|
||||||
- C# and PowerShell scripting was removed because of a compatibility problem
|
- C# and PowerShell scripting was removed because of a compatibility problem
|
||||||
with the .NET 6 platform. .NET extensions are supported with a new host
|
with the .NET 6 platform. .NET extensions are supported with a new host
|
||||||
(not backward compatible). A example extension is available under \src\MpvNet.Extension\ExampleExtension
|
(not backward compatible). An example extension is available under \src\MpvNet.Extension\ExampleExtension
|
||||||
- Redesigned bindings and context menu.
|
- Redesigned bindings and context menu.
|
||||||
- auto-play option removed, mpv supports it with the option reset-on-next-file.
|
- auto-play option removed, mpv supports it with the option reset-on-next-file.
|
||||||
- Dark mode title bar enabled on Windows 10.0.18985 or higher.
|
- Dark mode title bar enabled on Windows 10.0.18985 or higher.
|
||||||
|
|||||||
|
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 |
232
docs/manual.md
@@ -22,12 +22,12 @@ Table of contents
|
|||||||
* [Extensions](#extensions)
|
* [Extensions](#extensions)
|
||||||
* [Color Theme](#color-theme)
|
* [Color Theme](#color-theme)
|
||||||
* [Advanced Features](#advanced-features)
|
* [Advanced Features](#advanced-features)
|
||||||
* [Hidden Features](#hidden-features)
|
|
||||||
* [Differences compared to mpv](#differences-compared-to-mpv)
|
* [Differences compared to mpv](#differences-compared-to-mpv)
|
||||||
* [Environment Variables](#environment-variables)
|
* [Environment Variables](#environment-variables)
|
||||||
|
* [user-data](#user-data)
|
||||||
|
* [Contributing](#contributing)
|
||||||
* [Context Menu Commands](#context-menu)
|
* [Context Menu Commands](#context-menu)
|
||||||
|
|
||||||
|
|
||||||
About
|
About
|
||||||
-----
|
-----
|
||||||
|
|
||||||
@@ -42,13 +42,9 @@ differences are documented in this manual under [Differences compared to mpv](#d
|
|||||||
Download
|
Download
|
||||||
--------
|
--------
|
||||||
|
|
||||||
1. [Stable via Microsoft Store](https://www.microsoft.com/store/productId/9N64SQZTB3LM)
|
1. [Stable and beta portable and setup via GitHub download](../../../releases)
|
||||||
|
2. Stable via command line with winget: `winget install mpv.net`
|
||||||
2. [Stable and beta portable via GitHub download](../../../releases)
|
3. [Automated nightly portable builds](https://github.com/mpvnet-player/mpv.net/actions)
|
||||||
|
|
||||||
3. Stable via command line from Microsoft Store: `winget install mpv.net`
|
|
||||||
|
|
||||||
4. [Automated nightly portable builds](https://github.com/mpvnet-player/mpv.net/actions)
|
|
||||||
|
|
||||||
[Changelog](changelog.md)
|
[Changelog](changelog.md)
|
||||||
|
|
||||||
@@ -56,10 +52,8 @@ Download
|
|||||||
Installation
|
Installation
|
||||||
------------
|
------------
|
||||||
|
|
||||||
1. Windows 7 or higher is required (Windows 10 or higher is recommended).
|
1. Windows 10 or higher.
|
||||||
2. mpv.net since version 7.0 requires the
|
2. [.NET Desktop Runtime 6.0](https://dotnet.microsoft.com/en-us/download/dotnet/6.0)
|
||||||
[.NET Desktop Runtime 6.0](https://dotnet.microsoft.com/en-us/download/dotnet/6.0)
|
|
||||||
being installed. mpv.net before version 7.0 requires .NET Framework 4.8.
|
|
||||||
|
|
||||||
Internet streaming requires:
|
Internet streaming requires:
|
||||||
|
|
||||||
@@ -71,8 +65,8 @@ Internet streaming requires:
|
|||||||
|
|
||||||
File Associations can be registered using the context menu under 'Settings > Setup'.
|
File Associations can be registered using the context menu under 'Settings > Setup'.
|
||||||
|
|
||||||
After the file associations were registered, it might be necessary to change the
|
After the file associations were registered, it might still be necessary to change the
|
||||||
default app in the Windows settings (Win+I, ms-settings:defaultapps).
|
default app in the Windows settings.
|
||||||
|
|
||||||
Another way to register file associations is using Windows File Explorer,
|
Another way to register file associations is using Windows File Explorer,
|
||||||
select a media file and select 'Open with > Choose another app' in the context menu.
|
select a media file and select 'Open with > Choose another app' in the context menu.
|
||||||
@@ -84,6 +78,11 @@ to get menu items for [Play with mpv.net](https://github.com/stax76/OpenWithPlus
|
|||||||
When multiple files are selected in File Explorer and enter is pressed then
|
When multiple files are selected in File Explorer and enter is pressed then
|
||||||
the files are opened in mpv.net in random order, this works with maximum 15 files.
|
the files are opened in mpv.net in random order, this works with maximum 15 files.
|
||||||
|
|
||||||
|
#### Path environment variable
|
||||||
|
|
||||||
|
In order to use mpv.net in a terminal for advanced use cases,
|
||||||
|
mpv.net must be added to the Path environment variable,
|
||||||
|
this can be achieved with the context menu (Settings/Setup).
|
||||||
|
|
||||||
Support
|
Support
|
||||||
-------
|
-------
|
||||||
@@ -92,14 +91,14 @@ Before making a support request, please try the newest [beta version](../../../r
|
|||||||
|
|
||||||
Support can be requested here:
|
Support can be requested here:
|
||||||
|
|
||||||
Beginner questions:
|
|
||||||
|
|
||||||
https://www.reddit.com/r/mpv
|
|
||||||
|
|
||||||
mpv.net bug reports, feature requests and advanced questions:
|
mpv.net bug reports, feature requests and advanced questions:
|
||||||
|
|
||||||
https://github.com/mpvnet-player/mpv.net/issues
|
https://github.com/mpvnet-player/mpv.net/issues
|
||||||
|
|
||||||
|
Beginner mpv questions:
|
||||||
|
|
||||||
|
https://www.reddit.com/r/mpv
|
||||||
|
|
||||||
Advanced mpv questions:
|
Advanced mpv questions:
|
||||||
|
|
||||||
https://github.com/mpv-player/mpv/issues
|
https://github.com/mpv-player/mpv/issues
|
||||||
@@ -110,8 +109,9 @@ Settings
|
|||||||
|
|
||||||
mpv.net searches the config folder at:
|
mpv.net searches the config folder at:
|
||||||
|
|
||||||
1. startup\portable_config
|
1. Folder defined via MPVNET_HOME environment variable.
|
||||||
2. %APPDATA%\mpv.net (`C:\Users\%USERNAME%\AppData\Roaming\mpv.net`)
|
2. startup\portable_config (startup means the directory containing mpvnet.exe)
|
||||||
|
3. `%APPDATA%\mpv.net` (`C:\Users\Username\AppData\Roaming\mpv.net`)
|
||||||
|
|
||||||
mpv options are stored in the file mpv.conf,
|
mpv options are stored in the file mpv.conf,
|
||||||
mpv.net options are stored in the file mpvnet.conf,
|
mpv.net options are stored in the file mpvnet.conf,
|
||||||
@@ -121,7 +121,7 @@ mpv.net options are documented [here](#mpvnet-specific-options).
|
|||||||
Input and context menu
|
Input and context menu
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
Global keyboard shortcuts are supported via global-input.conf file.
|
Global keyboard shortcuts are supported via `global-input.conf` file.
|
||||||
|
|
||||||
The config folder can be opened from the context menu: `Settings > Open Config Folder`
|
The config folder can be opened from the context menu: `Settings > Open Config Folder`
|
||||||
|
|
||||||
@@ -141,24 +141,31 @@ mpv input options:
|
|||||||
https://mpv.io/manual/master/#input
|
https://mpv.io/manual/master/#input
|
||||||
|
|
||||||
Before version v7 all bindings and the context menu definition
|
Before version v7 all bindings and the context menu definition
|
||||||
was contained in the input.conf file, which mpv.net created
|
were defined in the input.conf file, which mpv.net created
|
||||||
in case it didn't exist. This had the disadvantage that mpv.net
|
in case it didn't exist. This had the disadvantage that mpv.net
|
||||||
lost control over all default bindings and the context menu
|
lost control over all default bindings and context menu
|
||||||
defaults. This was unfortunate, v7 introduces a new design
|
defaults. This was unfortunate, v7 introduces a new bindings
|
||||||
fixing it.
|
and context menu design fixing it.
|
||||||
|
|
||||||
In v7 no input.conf file is created, the default bindings and
|
In v7 no input.conf file is created, the default bindings and
|
||||||
context menu is defined internally. input.conf only contains
|
context menu is defined internally. input.conf only contains
|
||||||
what is different from the internally defined defaults,
|
what is different from the internally defined defaults,
|
||||||
so it's the same how mpv is used.
|
so it works the same as it works in mpv.
|
||||||
|
|
||||||
For backward compatibility the old input.conf format with the
|
For backward compatibility the old input.conf context menu
|
||||||
menu definition using `#menu: ` is still supported. The new
|
format with the menu definition using `#menu: ` is still
|
||||||
design also allows for a menu customization, in a sub section
|
supported. The new design also allows for a menu customization,
|
||||||
called `Custom`. In input.conf it can be defined like so:
|
in a sub section called `Custom`. In input.conf it can be
|
||||||
|
defined like so:
|
||||||
|
|
||||||
`Ctrl+a show-text Test #custom-menu: Test > Test`
|
`Ctrl+a show-text Test #custom-menu: Test > Test`
|
||||||
|
|
||||||
|
Users that have their bindings and context menu customized
|
||||||
|
before v7 can easily migrate to the new design by deleting
|
||||||
|
bindings they don't use and remember the shortcut and remove
|
||||||
|
`#menu:` everywhere, it's important to remove `#menu:`
|
||||||
|
everywhere in order to enable the new mode/design.
|
||||||
|
|
||||||
|
|
||||||
Command Line Interface
|
Command Line Interface
|
||||||
----------------------
|
----------------------
|
||||||
@@ -194,8 +201,6 @@ Terminal
|
|||||||
When mpv.net is started from a terminal it will output status,
|
When mpv.net is started from a terminal it will output status,
|
||||||
error and debug messages to the terminal and accept input keys from the terminal.
|
error and debug messages to the terminal and accept input keys from the terminal.
|
||||||
|
|
||||||
A common task for the terminal is debugging scripts.
|
|
||||||
|
|
||||||
|
|
||||||
mpv.net specific commands
|
mpv.net specific commands
|
||||||
-------------------------
|
-------------------------
|
||||||
@@ -204,6 +209,15 @@ mpv.net specific commands
|
|||||||
|
|
||||||
mpv.net commands are used when mpv commands don't exist or lack a feature.
|
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.
|
||||||
|
|
||||||
### load-audio
|
### load-audio
|
||||||
Shows a file browser dialog to open external audio files.
|
Shows a file browser dialog to open external audio files.
|
||||||
|
|
||||||
@@ -229,10 +243,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
|
ISO images don't have to be mounted, but instead can be
|
||||||
opened directly with the open-files command.
|
opened directly with the open-files command.
|
||||||
|
|
||||||
### open-clipboard
|
### open-clipboard [\<flags\>]
|
||||||
Opens a single URL or filepath from the clipboard,
|
Opens a single URL or filepath from the clipboard,
|
||||||
or multiple files in the file clipboard format.
|
or multiple files in the file clipboard format.
|
||||||
|
|
||||||
|
**append**
|
||||||
|
Appends files/URLs to the playlist.
|
||||||
|
|
||||||
### play-pause
|
### play-pause
|
||||||
Cycles the pause property. In case the playlist is empty,
|
Cycles the pause property. In case the playlist is empty,
|
||||||
the most recent file from the recent files list is loaded.
|
the most recent file from the recent files list is loaded.
|
||||||
@@ -255,8 +272,14 @@ Shows available audio devices in a message box.
|
|||||||
### show-commands
|
### show-commands
|
||||||
Shows available [mpv input commands](https://mpv.io/manual/master/#list-of-input-commands).
|
Shows available [mpv input commands](https://mpv.io/manual/master/#list-of-input-commands).
|
||||||
|
|
||||||
### show-conf-editor
|
### show-properties
|
||||||
Shows the conf editor.
|
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
|
### show-decoders
|
||||||
Shows available decoders.
|
Shows available decoders.
|
||||||
@@ -264,6 +287,9 @@ Shows available decoders.
|
|||||||
### show-demuxers
|
### show-demuxers
|
||||||
Shows available demuxers.
|
Shows available demuxers.
|
||||||
|
|
||||||
|
### show-conf-editor
|
||||||
|
Shows the conf editor.
|
||||||
|
|
||||||
### show-input-editor
|
### show-input-editor
|
||||||
Shows the input editor.
|
Shows the input editor.
|
||||||
|
|
||||||
@@ -286,21 +312,15 @@ Shows media info with raw property names.
|
|||||||
### show-menu
|
### show-menu
|
||||||
Shows the context 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
|
### show-profiles
|
||||||
Shows available profiles with a message box.
|
Shows available profiles with a message box.
|
||||||
|
|
||||||
### show-text \<text\> \<duration\> \<font-size\>
|
### show-text \<text\> \<duration\> \<font-size\>
|
||||||
Shows a OSD message with given text, duration and font size.
|
Shows a OSD message with given text, duration and font size.
|
||||||
|
|
||||||
|
### stream-quality
|
||||||
|
Shows a menu to select the stream quality.
|
||||||
|
|
||||||
### window-scale \<factor\>
|
### window-scale \<factor\>
|
||||||
Works similar as the [window-scale](https://mpv.io/manual/master/#command-interface-window-scale) mpv property.
|
Works similar as the [window-scale](https://mpv.io/manual/master/#command-interface-window-scale) mpv property.
|
||||||
|
|
||||||
@@ -330,6 +350,10 @@ to create global keyboard shortcuts with AutoHotkey. Requires [process-instance=
|
|||||||
|
|
||||||
### Audio
|
### Audio
|
||||||
|
|
||||||
|
#### --remember-audio-device=\<yes|no\>
|
||||||
|
|
||||||
|
Save and restore the audio device chosen in the context menu. Default: yes
|
||||||
|
|
||||||
#### --remember-volume=\<yes|no\>
|
#### --remember-volume=\<yes|no\>
|
||||||
|
|
||||||
Save volume and mute on exit and restore it on start. Default: yes
|
Save volume and mute on exit and restore it on start. Default: yes
|
||||||
@@ -385,11 +409,20 @@ are used as defined by autofit and start-size. Default: 1500
|
|||||||
|
|
||||||
#### --auto-load-folder=\<yes|no\>
|
#### --auto-load-folder=\<yes|no\>
|
||||||
|
|
||||||
For single files automatically load the entire directory into the playlist.
|
For single files automatically load the entire directory
|
||||||
|
into the playlist. This option by default is disabled.
|
||||||
|
The option is deprecated because mpv now has native
|
||||||
|
support for it using `autocreate-playlist`,
|
||||||
|
which by default mpv.net sets to `autocreate-playlist=filter`.
|
||||||
|
|
||||||
|
|
||||||
### General
|
### General
|
||||||
|
|
||||||
|
#### --menu-syntax=\<value\>
|
||||||
|
|
||||||
|
Used menu syntax for defining the context menu in input.conf.
|
||||||
|
mpv.net by default uses `#menu:`, uosc uses `#!` by default.
|
||||||
|
|
||||||
#### --process-instance=\<value\>
|
#### --process-instance=\<value\>
|
||||||
|
|
||||||
Defines if more then one mpv.net process is allowed.
|
Defines if more then one mpv.net process is allowed.
|
||||||
@@ -417,18 +450,6 @@ Amount of recent files to be remembered. Default: 15
|
|||||||
|
|
||||||
Usage of the media info library instead of mpv to access media information. Default: yes (mpv.net specific option)
|
Usage of the media info library instead of mpv to access media information. Default: yes (mpv.net specific option)
|
||||||
|
|
||||||
#### --video-file-extensions=\<string\>
|
|
||||||
|
|
||||||
Video file extensions used to create file associations and used by the auto-load-folder feature.
|
|
||||||
|
|
||||||
#### --audio-file-extensions=\<string\>
|
|
||||||
|
|
||||||
Audio file extensions used to create file associations and used by the auto-load-folder feature.
|
|
||||||
|
|
||||||
#### --image-file-extensions=\<string\>
|
|
||||||
|
|
||||||
Image file extensions used to create file associations and used by the auto-load-folder feature.
|
|
||||||
|
|
||||||
#### --debug-mode=\<yes|no\>
|
#### --debug-mode=\<yes|no\>
|
||||||
|
|
||||||
Enable this only when a developer asks for it. Default: no
|
Enable this only when a developer asks for it. Default: no
|
||||||
@@ -441,7 +462,7 @@ Enable this only when a developer asks for it. Default: no
|
|||||||
User interface display language.
|
User interface display language.
|
||||||
mpv.net must be restarted after a change.
|
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/
|
https://app.transifex.com/stax76/teams/
|
||||||
|
|
||||||
#### --dark-mode=\<value\>
|
#### --dark-mode=\<value\>
|
||||||
@@ -508,7 +529,8 @@ Scripting
|
|||||||
|
|
||||||
#### Lua
|
#### Lua
|
||||||
|
|
||||||
A very large collection of Lua user scripts can be found in the mpv wiki [here](https://github.com/mpv-player/mpv/wiki/User-Scripts).
|
A very large collection of user scripts can be found in the GitHub repository
|
||||||
|
[awesome-mpv](https://github.com/stax76/awesome-mpv).
|
||||||
|
|
||||||
Lua scripting is documented in the mpv.net wiki [here](https://github.com/mpvnet-player/mpv.net/wiki/Extending-mpv-and-mpv.net-via-Lua-scripting).
|
Lua scripting is documented in the mpv.net wiki [here](https://github.com/mpvnet-player/mpv.net/wiki/Extending-mpv-and-mpv.net-via-Lua-scripting).
|
||||||
|
|
||||||
@@ -517,10 +539,10 @@ Lua scripting is documented in the mpv.net wiki [here](https://github.com/mpvnet
|
|||||||
[mpv JavaScript documentation](https://mpv.io/manual/master/#javascript)
|
[mpv JavaScript documentation](https://mpv.io/manual/master/#javascript)
|
||||||
|
|
||||||
|
|
||||||
Extensions
|
.NET Extensions
|
||||||
----------
|
---------------
|
||||||
|
|
||||||
Extensions are located in a subfolder _extensions_ in the config folder,
|
.NET Extensions are located in a subfolder _extensions_ in the config folder,
|
||||||
the filename must have the same name as the directory:
|
the filename must have the same name as the directory:
|
||||||
|
|
||||||
```Text
|
```Text
|
||||||
@@ -561,16 +583,6 @@ demuxer-lavf-format = vapoursynth
|
|||||||
Python and VapourSynth must be in the path environment variable.
|
Python and VapourSynth must be in the path environment variable.
|
||||||
|
|
||||||
|
|
||||||
Hidden Features
|
|
||||||
---------------
|
|
||||||
|
|
||||||
Selecting multiple files in File Explorer and pressing enter will
|
|
||||||
open the files in mpv.net. Explorer restricts this to maximum 15 files
|
|
||||||
and the order will be random.
|
|
||||||
|
|
||||||
In fullscreen mode clicking the top right corner closes the player.
|
|
||||||
|
|
||||||
|
|
||||||
Differences compared to mpv
|
Differences compared to mpv
|
||||||
---------------------------
|
---------------------------
|
||||||
|
|
||||||
@@ -592,7 +604,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,
|
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
|
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
|
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).
|
1. Window dragging (moving the window with the mouse).
|
||||||
2. Showing the context menu.
|
2. Showing the context menu.
|
||||||
@@ -609,25 +621,50 @@ https://mpv.io/manual/master/#window
|
|||||||
**mpv.net has currently implemented the following window properties:**
|
**mpv.net has currently implemented the following window properties:**
|
||||||
|
|
||||||
- [border](https://mpv.io/manual/master/#options-border)
|
- [border](https://mpv.io/manual/master/#options-border)
|
||||||
|
- [cursor-autohide](https://mpv.io/manual/master/#options-cursor-autohide)
|
||||||
- [fullscreen](https://mpv.io/manual/master/#options-fullscreen)
|
- [fullscreen](https://mpv.io/manual/master/#options-fullscreen)
|
||||||
- [keepaspect-window](https://mpv.io/manual/master/#options-keepaspect-window)
|
- [keepaspect-window](https://mpv.io/manual/master/#options-keepaspect-window)
|
||||||
- [ontop](https://mpv.io/manual/master/#options-ontop)
|
- [ontop](https://mpv.io/manual/master/#options-ontop)
|
||||||
- [screen](https://mpv.io/manual/master/#options-screen)
|
- [screen](https://mpv.io/manual/master/#options-screen)
|
||||||
- [snap-window](https://mpv.io/manual/master/#options-snap-window)
|
- [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)
|
- [title](https://mpv.io/manual/master/#options-title)
|
||||||
- [window-maximized](https://mpv.io/manual/master/#options-window-maximized)
|
- [window-maximized](https://mpv.io/manual/master/#options-window-maximized)
|
||||||
- [window-minimized](https://mpv.io/manual/master/#options-window-minimized)
|
- [window-minimized](https://mpv.io/manual/master/#options-window-minimized)
|
||||||
- [window-scale](https://mpv.io/manual/master/#options-window-scale)
|
- [window-scale](https://mpv.io/manual/master/#options-window-scale)
|
||||||
|
|
||||||
|
|
||||||
**Partly implemented are:**
|
**Partly implemented or modified:**
|
||||||
|
|
||||||
- [autofit-larger](https://mpv.io/manual/master/#options-autofit-larger)
|
#### --autofit=\<int\>
|
||||||
Supported is a single integer value in the range 0-100.
|
|
||||||
- [autofit-smaller](https://mpv.io/manual/master/#options-autofit-smaller)
|
\<int\> Initial window height in percent. Default: 60
|
||||||
Supported is a single integer value in the range 0-100.
|
|
||||||
- [autofit](https://mpv.io/manual/master/#options-autofit)
|
#### --autofit-smaller=\<int\>
|
||||||
Supported is a single integer value in the range 0-100.
|
|
||||||
|
\<int\> Minimum window height in percent. Default: 10
|
||||||
|
|
||||||
|
#### --autofit-larger=\<int\>
|
||||||
|
|
||||||
|
\<int\> Maximum window height in percent. Default: 80
|
||||||
|
|
||||||
|
#### --geometry\<x:y\>
|
||||||
|
|
||||||
|
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:**
|
||||||
|
|
||||||
mpv.net specific window features are documented in the [screen section](#screen).
|
mpv.net specific window features are documented in the [screen section](#screen).
|
||||||
|
|
||||||
@@ -672,10 +709,29 @@ Environment Variables
|
|||||||
|
|
||||||
Directory where mpv.net looks for user settings.
|
Directory where mpv.net looks for user settings.
|
||||||
|
|
||||||
### MPVNET_VERSION
|
|
||||||
|
|
||||||
Returns the version of mpv.net.
|
user-data
|
||||||
|
---------
|
||||||
|
|
||||||
|
Script authors can access the following
|
||||||
|
[user-data](https://mpv.io/manual/master/#command-interface-user-data) properties:
|
||||||
|
|
||||||
|
```
|
||||||
|
user-data/frontend/name
|
||||||
|
user-data/frontend/version
|
||||||
|
user-data/frontend/process-path
|
||||||
|
```
|
||||||
|
|
||||||
|
Contributing
|
||||||
|
------------
|
||||||
|
|
||||||
|
Work on the translation is done with transifex, translators have to create a transifex account:
|
||||||
|
|
||||||
|
https://app.transifex.com/stax76/teams/
|
||||||
|
|
||||||
|
For questions visit:
|
||||||
|
|
||||||
|
https://github.com/mpvnet-player/mpv.net/issues/576
|
||||||
|
|
||||||
Context Menu Commands
|
Context Menu Commands
|
||||||
---------------------
|
---------------------
|
||||||
@@ -694,8 +750,8 @@ Blu-ray and DVD ISO image files are supported.
|
|||||||
|
|
||||||
### Open > Open URL or file path from clipboard
|
### Open > Open URL or file path from clipboard
|
||||||
|
|
||||||
Opens files and URLs from the clipboard. How to open URLs directly
|
Opens files and URLs from the clipboard. Shift key appends to the playlist.
|
||||||
from the browser from sites like YouTube is described in the
|
How to open URLs directly from the browser from sites like YouTube is described in the
|
||||||
[External Tools section](#external-tools).
|
[External Tools section](#external-tools).
|
||||||
|
|
||||||
|
|
||||||
@@ -1022,11 +1078,11 @@ Cycles the deinterlace property using the following command:
|
|||||||
|
|
||||||
Cycles the aspect ratio using the following command:
|
Cycles the aspect ratio using the following command:
|
||||||
|
|
||||||
`cycle-values video-aspect 16:9 4:3 2.35:1 -1`
|
`cycle-values video-aspect-override 16:9 4:3 2.35:1 0 -1`
|
||||||
|
|
||||||
[cycle-values command](https://mpv.io/manual/master/#command-interface-cycle-values)
|
[cycle-values command](https://mpv.io/manual/master/#command-interface-cycle-values)
|
||||||
|
|
||||||
[video-aspect property](https://mpv.io/manual/master/#command-interface-video-aspect)
|
[video-aspect property](https://mpv.io/manual/master/#options-video-aspect-override)
|
||||||
|
|
||||||
|
|
||||||
### Audio > Next
|
### Audio > Next
|
||||||
@@ -1346,7 +1402,7 @@ Shows the [mpv.net web site](https://github.com/mpvnet-player/mpv.net).
|
|||||||
|
|
||||||
### Help > Show mpv.net manual
|
### Help > Show mpv.net manual
|
||||||
|
|
||||||
Shows the [mpv.net manual](https://github.com/mpvnet-player/mpv.net/blob/main/manual.md).
|
Shows the [mpv.net manual](https://github.com/mpvnet-player/mpv.net/blob/main/docs/manual.md).
|
||||||
|
|
||||||
|
|
||||||
### Help > About mpv.net
|
### Help > About mpv.net
|
||||||
|
|||||||
@@ -1,34 +1,20 @@
|
|||||||
|
|
||||||
|
$ErrorActionPreference = 'Stop'
|
||||||
|
|
||||||
$PoFiles = Get-ChildItem $PSScriptRoot/po
|
$PoFiles = Get-ChildItem $PSScriptRoot/po
|
||||||
$ExeFolder = "$PSScriptRoot/../src/MpvNet.Windows/bin/Debug"
|
$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)
|
foreach ($it in $PoFiles)
|
||||||
{
|
{
|
||||||
$folder = "$ExeFolder/Locale/$($it.BaseName)/LC_MESSAGES"
|
$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
|
$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\Binding.cs
|
||||||
D:\Projects\CS\mpv.net\src\MpvNet\Chapter.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\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\ExtensionLoader.cs
|
||||||
D:\Projects\CS\mpv.net\src\MpvNet\FileTypes.cs
|
D:\Projects\CS\mpv.net\src\MpvNet\FileTypes.cs
|
||||||
D:\Projects\CS\mpv.net\src\MpvNet\Folder.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\MpvClient.cs
|
||||||
D:\Projects\CS\mpv.net\src\MpvNet\Player.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\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\Terminal.cs
|
||||||
D:\Projects\CS\mpv.net\src\MpvNet\Translator.cs
|
D:\Projects\CS\mpv.net\src\MpvNet\Translator.cs
|
||||||
D:\Projects\CS\mpv.net\src\MpvNet\ExtensionMethod\ObjectExtension.cs
|
D:\Projects\CS\mpv.net\src\MpvNet\ExtensionMethod\ObjectExtension.cs
|
||||||
@@ -35,15 +37,12 @@ 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\GuiCommand.cs
|
||||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\Program.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\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\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\StockIcon.cs
|
||||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\Native\Taskbar.cs
|
D:\Projects\CS\mpv.net\src\MpvNet.Windows\Native\Taskbar.cs
|
||||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\Native\WinApi.cs
|
D:\Projects\CS\mpv.net\src\MpvNet.Windows\Native\WinApi.cs
|
||||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\Properties\Resources.Designer.cs
|
D:\Projects\CS\mpv.net\src\MpvNet.Windows\Properties\Resources.Designer.cs
|
||||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\UI\CommandPalette.cs
|
|
||||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\UI\CommandPaletteItem.cs
|
|
||||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\UI\GlobalHotkey.cs
|
D:\Projects\CS\mpv.net\src\MpvNet.Windows\UI\GlobalHotkey.cs
|
||||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\UI\Theme.cs
|
D:\Projects\CS\mpv.net\src\MpvNet.Windows\UI\Theme.cs
|
||||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\UI\TreeNode.cs
|
D:\Projects\CS\mpv.net\src\MpvNet.Windows\UI\TreeNode.cs
|
||||||
@@ -51,6 +50,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\MainForm.Designer.cs
|
||||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\SnapManager.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\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\ConfWindow.xaml.cs
|
||||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\InputWindow.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
|
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\ISettingControl.cs
|
||||||
@@ -59,7 +59,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\Msg.cs
|
||||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\WpfApplication.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\WpfTranslator.cs
|
||||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\Controls\CommandPaletteControl.xaml.cs
|
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\Controls\ComboBoxSettingControl.xaml.cs
|
||||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\Controls\HyperlinkEx.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
|
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\Controls\OptionSettingControl.xaml.cs
|
||||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\Controls\SearchControl.xaml.cs
|
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\Controls\SearchControl.xaml.cs
|
||||||
|
|||||||
1464
lang/po/de.po
946
lang/po/fr.po
Normal file
@@ -0,0 +1,946 @@
|
|||||||
|
# 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:
|
||||||
|
# Nathanael Gagnepain, 2024
|
||||||
|
#
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2024-07-25 10:31+0200\n"
|
||||||
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
|
"Last-Translator: Nathanael Gagnepain <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"Language: fr\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"X-Language: fr_FR\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 "Fichier"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:12
|
||||||
|
msgid "Open Files..."
|
||||||
|
msgstr "Ouvrir les Fichiers..."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:13
|
||||||
|
msgid "Open URL or file from clipboard"
|
||||||
|
msgstr "Ouvrir l'URL ou le fichier depuis le presse-papiers"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:14
|
||||||
|
msgid "Open DVD/Blu-ray Drive/Folder..."
|
||||||
|
msgstr "Ouvrir le lecteur/dossier DVD/Blu-ray…"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:16
|
||||||
|
msgid "Add external audio files..."
|
||||||
|
msgstr "Ajouter des fichiers audio externes..."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:17
|
||||||
|
msgid "Add external subtitle files..."
|
||||||
|
msgstr "Ajouter des fichiers de sous-titres externes…"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:19
|
||||||
|
msgid "Add files to playlist..."
|
||||||
|
msgstr "Ajouter des fichiers à la liste de lecture…"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:20
|
||||||
|
msgid "Add files/URLs to playlist from clipboard"
|
||||||
|
msgstr "Ajouter des fichiers/URL à la liste de lecture depuis le presse-papiers"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:22
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:370
|
||||||
|
msgid "Recent Files"
|
||||||
|
msgstr "Fichiers récents"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:23
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:196
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:228
|
||||||
|
msgid "Exit"
|
||||||
|
msgstr "Quitter"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:25
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:26
|
||||||
|
msgid "Playback"
|
||||||
|
msgstr "Lecture"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:25
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:198
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:199
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:200
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:201
|
||||||
|
msgid "Play/Pause"
|
||||||
|
msgstr "Lecture/Pause"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:26
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:202
|
||||||
|
msgid "Stop"
|
||||||
|
msgstr "Stop"
|
||||||
|
|
||||||
|
#: 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 "Naviguer"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:28
|
||||||
|
#: 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:213
|
||||||
|
msgid "Previous File"
|
||||||
|
msgstr "Fichier Précédent"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:29
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:210
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:212
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:214
|
||||||
|
msgid "Next File"
|
||||||
|
msgstr "Fichier Suivant"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:31
|
||||||
|
msgid "First File"
|
||||||
|
msgstr "Premier Fichier"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:32
|
||||||
|
msgid "Last File"
|
||||||
|
msgstr "Dernier Fichier"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:35
|
||||||
|
msgid "Next Chapter"
|
||||||
|
msgstr "Chapitre Suivant"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:36
|
||||||
|
msgid "Previous Chapter"
|
||||||
|
msgstr "Chapitre Précédent"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:38
|
||||||
|
msgid "Jump To Next Frame"
|
||||||
|
msgstr "Passer à l'image suivante"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:39
|
||||||
|
msgid "Jump To Previous Frame"
|
||||||
|
msgstr "Revenir à l'image précédente"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:41
|
||||||
|
msgid "Jump 5 sec forward"
|
||||||
|
msgstr "Avancer de 5 secondes"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:42
|
||||||
|
msgid "Jump 5 sec backward"
|
||||||
|
msgstr "Reculer de 5 secondes"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:44
|
||||||
|
msgid "Jump 30 sec forward"
|
||||||
|
msgstr "Avancer de 30 secondes"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:45
|
||||||
|
msgid "Jump 30 sec backward"
|
||||||
|
msgstr "Reculer de 30 secondes"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:47
|
||||||
|
msgid "Jump 5 min forward"
|
||||||
|
msgstr "Avancer de 5 minutes"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:48
|
||||||
|
msgid "Jump 5 min backward"
|
||||||
|
msgstr "Reculer de 5 minutes"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:50
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:391
|
||||||
|
msgid "Title"
|
||||||
|
msgstr "Titre"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:51
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:349
|
||||||
|
msgid "Chapter"
|
||||||
|
msgstr "Chapitre"
|
||||||
|
|
||||||
|
#: 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 "Pan & Scan"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:53
|
||||||
|
msgid "Decrease Size"
|
||||||
|
msgstr "Réduire la Taille"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:54
|
||||||
|
msgid "Increase Size"
|
||||||
|
msgstr "Augmenter la Taille"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:56
|
||||||
|
msgid "Move Left"
|
||||||
|
msgstr "Déplacer vers la Gauche"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:57
|
||||||
|
msgid "Move Right"
|
||||||
|
msgstr "Déplacer vers la Droite"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:59
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:97
|
||||||
|
msgid "Move Up"
|
||||||
|
msgstr "Monter"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:60
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:98
|
||||||
|
msgid "Move Down"
|
||||||
|
msgstr "Descendre"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:62
|
||||||
|
msgid "Decrease Height"
|
||||||
|
msgstr "Réduire la Taille"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:63
|
||||||
|
msgid "Increase Height"
|
||||||
|
msgstr "Augmenter la Taille"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:65
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:118
|
||||||
|
msgid "Reset"
|
||||||
|
msgstr "Réinitialiser"
|
||||||
|
|
||||||
|
#: 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 "Vidéo"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:67
|
||||||
|
msgid "Decrease Contrast"
|
||||||
|
msgstr "Réduire le Contraste"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:68
|
||||||
|
msgid "Increase Contrast"
|
||||||
|
msgstr "Augmenter le Contraste"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:70
|
||||||
|
msgid "Decrease Brightness"
|
||||||
|
msgstr "Réduire la Luminosité"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:71
|
||||||
|
msgid "Increase Brightness"
|
||||||
|
msgstr "Augmenter la Luminosité"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:73
|
||||||
|
msgid "Decrease Gamma"
|
||||||
|
msgstr "Réduire le Gamma"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:74
|
||||||
|
msgid "Increase Gamma"
|
||||||
|
msgstr "Augmenter le Gamma"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:76
|
||||||
|
msgid "Decrease Saturation"
|
||||||
|
msgstr "Réduire la Saturation"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:77
|
||||||
|
msgid "Increase Saturation"
|
||||||
|
msgstr "Augmenter la Saturation"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:79
|
||||||
|
msgid "Take Screenshot"
|
||||||
|
msgstr "Faire une capture d'écran"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:80
|
||||||
|
msgid "Take Screenshot without subtitles"
|
||||||
|
msgstr "Faire une capture d'écran sans sous-titres"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:81
|
||||||
|
msgid "Toggle Deinterlace"
|
||||||
|
msgstr "Modifier le Désentrelacement"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:82
|
||||||
|
msgid "Change Aspect Ratio"
|
||||||
|
msgstr "Modifier le format d'image"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:83
|
||||||
|
msgid "Rotate Video"
|
||||||
|
msgstr "Faire pivoter la Vidéo"
|
||||||
|
|
||||||
|
#: 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 "Audio"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:85
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:451
|
||||||
|
msgid "Audio Device"
|
||||||
|
msgstr "Périphérique Audio"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:86
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:91
|
||||||
|
msgid "Next Track"
|
||||||
|
msgstr "Piste Suivante"
|
||||||
|
|
||||||
|
#: 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 "Délai +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 "Délai -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 "Sous-titre"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:92
|
||||||
|
msgid "Toggle Visibility"
|
||||||
|
msgstr "Activer/Désactiver l'affichage"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:100
|
||||||
|
msgid "Decrease Font Size"
|
||||||
|
msgstr "Réduire la taille de la police"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:101
|
||||||
|
msgid "Increase Font Size"
|
||||||
|
msgstr "Augmenter la taille de la police"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:103
|
||||||
|
#: 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
|
||||||
|
msgid "More"
|
||||||
|
msgstr "Plus"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:103
|
||||||
|
msgid "Toggle overriding SSA/ASS styles with normal styles"
|
||||||
|
msgstr "Activer/désactiver le remplacement des styles SSA/ASS par les styles normaux"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:105
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:287
|
||||||
|
msgid "Track"
|
||||||
|
msgstr "Piste"
|
||||||
|
|
||||||
|
#: 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 "Volume"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:107
|
||||||
|
msgctxt "Volume"
|
||||||
|
msgid "Up"
|
||||||
|
msgstr "Augmenter"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:108
|
||||||
|
msgctxt "Volume"
|
||||||
|
msgid "Down"
|
||||||
|
msgstr "Réduire"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:110
|
||||||
|
msgid "Mute"
|
||||||
|
msgstr "Mettre en Sourdine"
|
||||||
|
|
||||||
|
#: 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 "Vitesse"
|
||||||
|
|
||||||
|
#: 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 "Moitié"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:116
|
||||||
|
msgid "Double"
|
||||||
|
msgstr "Double"
|
||||||
|
|
||||||
|
#: 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: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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:135
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||||
|
#: 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
|
||||||
|
msgid "View"
|
||||||
|
msgstr "Vue"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:120
|
||||||
|
msgid "Toggle Statistics"
|
||||||
|
msgstr "Activer/Désactiver les Statistiques"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:121
|
||||||
|
msgid "Toggle OSC Visibility"
|
||||||
|
msgstr "Activer/désactiver la visibilité de l'OSC"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:122
|
||||||
|
msgid "Show Media Info On-Screen"
|
||||||
|
msgstr "Afficher les informations des médias à l'écran"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:123
|
||||||
|
msgid "Show Media Info Message Box"
|
||||||
|
msgstr "Afficher la boîte de message d'informations sur les médias"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:124
|
||||||
|
msgid "Show Progress"
|
||||||
|
msgstr "Afficher la Progression"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:135
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||||
|
msgid "On Screen Menu"
|
||||||
|
msgstr "Menu à l'écran"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:126
|
||||||
|
msgid "Playlist"
|
||||||
|
msgstr "Liste de Lecture"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
|
||||||
|
msgid "Bindings"
|
||||||
|
msgstr "Liens"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
|
||||||
|
msgid "Properties"
|
||||||
|
msgstr "Propriétés"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
|
||||||
|
msgid "Chapters"
|
||||||
|
msgstr "Chapitres"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
|
||||||
|
msgid "Tracks"
|
||||||
|
msgstr "Pistes"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
|
||||||
|
msgid "Audio Tracks"
|
||||||
|
msgstr "Pistes Audio"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
|
||||||
|
msgid "Subtitle Tracks"
|
||||||
|
msgstr "Pistes de Sous-titres"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
|
||||||
|
msgid "Secondary Subtitle"
|
||||||
|
msgstr "Sous-titre Secondaire"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
|
||||||
|
msgid "Video Tracks"
|
||||||
|
msgstr "Pistes Vidéo"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:135
|
||||||
|
msgid "Subtitle Lines"
|
||||||
|
msgstr "Lignes de Sous-titres"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||||
|
msgid "Audio Devices"
|
||||||
|
msgstr "Périphériques Audio"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||||
|
msgid "Show Console"
|
||||||
|
msgstr "Afficher la Console"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||||
|
msgid "Show Commands"
|
||||||
|
msgstr "Afficher les Commandes"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||||
|
msgid "Show Bindings"
|
||||||
|
msgstr "Afficher les liens"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:141
|
||||||
|
msgid "Show Keys"
|
||||||
|
msgstr "Montrer les Touches"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||||
|
msgid "Show Protocols"
|
||||||
|
msgstr "Afficher les Protocoles"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||||
|
msgid "Show Decoders"
|
||||||
|
msgstr "Afficher les décodeurs"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||||
|
msgid "Show Demuxers"
|
||||||
|
msgstr "Afficher les démultiplexeurs"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:151
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:153
|
||||||
|
#: 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
|
||||||
|
msgid "Window"
|
||||||
|
msgstr "Fenêtre"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:216
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:217
|
||||||
|
msgid "Fullscreen"
|
||||||
|
msgstr "Plein Écran"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:151
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:153
|
||||||
|
msgid "Zoom"
|
||||||
|
msgstr "Zoom"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||||
|
msgid "Enlarge"
|
||||||
|
msgstr "Agrandir"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||||
|
msgid "Shrink"
|
||||||
|
msgstr "Rétrécir"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:150
|
||||||
|
msgid "50 %"
|
||||||
|
msgstr "50 %"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:151
|
||||||
|
msgid "100 %"
|
||||||
|
msgstr "100 %"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||||
|
msgid "200 %"
|
||||||
|
msgstr "200 %"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:153
|
||||||
|
msgid "300 %"
|
||||||
|
msgstr "300 %"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
msgid "Move"
|
||||||
|
msgstr "Déplacer"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:154
|
||||||
|
msgctxt "Move"
|
||||||
|
msgid "Left"
|
||||||
|
msgstr "Gauche"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:155
|
||||||
|
msgctxt "Move"
|
||||||
|
msgid "Right"
|
||||||
|
msgstr "Droite"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:156
|
||||||
|
msgctxt "Move"
|
||||||
|
msgid "Up"
|
||||||
|
msgstr "Haut"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:157
|
||||||
|
msgctxt "Move"
|
||||||
|
msgid "Down"
|
||||||
|
msgstr "Bas"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:158
|
||||||
|
msgctxt "Move"
|
||||||
|
msgid "Center"
|
||||||
|
msgstr "Centre"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:159
|
||||||
|
msgid "Toggle Border"
|
||||||
|
msgstr "Activer/désactiver la bordure"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
|
||||||
|
msgid "Toggle On Top"
|
||||||
|
msgstr "Activer/désactiver l'affichage au premier plan"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:424
|
||||||
|
msgid "Profile"
|
||||||
|
msgstr "Profile"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:168
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:174
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:175
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||||
|
msgid "Settings"
|
||||||
|
msgstr "Paramètres"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
|
||||||
|
msgid "Show Config Editor"
|
||||||
|
msgstr "Afficher l'éditeur de configuration"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
|
||||||
|
msgid "Show Input Editor"
|
||||||
|
msgstr "Afficher l'éditeur d'entrée"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:167
|
||||||
|
msgid "Edit mpv.conf"
|
||||||
|
msgstr "Éditer mpv.conf"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:168
|
||||||
|
msgid "Edit input.conf"
|
||||||
|
msgstr "Éditer input.conf"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:170
|
||||||
|
msgid "Open Config Folder"
|
||||||
|
msgstr "Ouvrir le dossier de Configuration"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:174
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:175
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||||
|
msgid "Setup"
|
||||||
|
msgstr "Configuration"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:171
|
||||||
|
msgid "Register video file associations"
|
||||||
|
msgstr "Enregistrer l'association avec les fichiers vidéo"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:172
|
||||||
|
msgid "Register audio file associations"
|
||||||
|
msgstr "Enregistrer l'association avec les fichiers audio"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:173
|
||||||
|
msgid "Register image file associations"
|
||||||
|
msgstr "Enregistrer l'association avec les fichiers image"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:174
|
||||||
|
msgid "Unregister file associations"
|
||||||
|
msgstr "Annuler l'enregistrement de l'associations de fichiers"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||||
|
msgid "Add mpv.net to Path environment variable"
|
||||||
|
msgstr "Ajouter mpv.net au chemin des variables d'environnement"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||||
|
msgid "Remove mpv.net from Path environment variable"
|
||||||
|
msgstr "Retirer mpv.net du chemin des variables d'environnement"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
msgid "Tools"
|
||||||
|
msgstr "Outils"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
|
||||||
|
msgid "Set/clear A-B loop points"
|
||||||
|
msgstr "Définir/effacer les points de boucle A-B"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:180
|
||||||
|
msgid "Toggle infinite file looping"
|
||||||
|
msgstr "Activer/désactiver la Boucle infinie du fichier"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||||
|
msgid "Shuffle Playlist"
|
||||||
|
msgstr "Liste de lecture aléatoire"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
|
||||||
|
msgid "Toggle Hardware Decoding"
|
||||||
|
msgstr "Activer/désactiver le Décodage matériel"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:183
|
||||||
|
msgid "Exit Watch Later"
|
||||||
|
msgstr "Quitter Regarder plus tard"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:185
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:475
|
||||||
|
msgid "Custom"
|
||||||
|
msgstr "Personnalisé"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:187
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:192
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:193
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:194
|
||||||
|
msgid "Help"
|
||||||
|
msgstr "Aide"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:187
|
||||||
|
msgid "Website mpv"
|
||||||
|
msgstr "Site internet de mpv"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:188
|
||||||
|
msgid "Website mpv.net"
|
||||||
|
msgstr "Site Internet de mpv.net"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:190
|
||||||
|
msgid "Manual mpv"
|
||||||
|
msgstr "Manuel d'mpv"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:191
|
||||||
|
msgid "Manual mpv.net"
|
||||||
|
msgstr "Manuel d'mpv.net"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:193
|
||||||
|
msgid "awesome-mpv"
|
||||||
|
msgstr "awesome-mpv"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:194
|
||||||
|
msgid "About mpv.net"
|
||||||
|
msgstr "À propos de mpv.net"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:197
|
||||||
|
msgid "Show Menu"
|
||||||
|
msgstr "Afficher le Menu"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:203
|
||||||
|
msgid "Forward"
|
||||||
|
msgstr "Avant"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:204
|
||||||
|
msgid "Backward"
|
||||||
|
msgstr "Arrière"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:205
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:207
|
||||||
|
msgid "Volume Up"
|
||||||
|
msgstr "Augmenter le Volume"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:206
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:208
|
||||||
|
msgid "Volume Down"
|
||||||
|
msgstr "Diminuer le Volume"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:215
|
||||||
|
msgid "Ignore left mouse butten"
|
||||||
|
msgstr "Ignorer le bouton gauche de la souris"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:218
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:220
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:226
|
||||||
|
msgid "Seek Forward"
|
||||||
|
msgstr "Chercher en Avant"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:219
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:221
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:227
|
||||||
|
msgid "Seek Backward"
|
||||||
|
msgstr "Chercher en Arrière"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:222
|
||||||
|
msgid "Undo previous (or marked) seek"
|
||||||
|
msgstr "Annuler la recherche précédente (ou marquée)"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:223
|
||||||
|
msgid "Mark position for revert-seek"
|
||||||
|
msgstr "Marquer la position pour la recherche inverse"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:224
|
||||||
|
msgid "Seek to previous subtitle"
|
||||||
|
msgstr "Retour au sous-titre précédent"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:225
|
||||||
|
msgid "Seek to next subtitle"
|
||||||
|
msgstr "Passer au sous-titre suivant"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:193
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:213
|
||||||
|
msgid "Files/URLs were added to the playlist"
|
||||||
|
msgstr "Des fichiers/URLs ont été ajoutés à la liste de lecture."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:206
|
||||||
|
msgid "The clipboard does not contain a valid URL or file."
|
||||||
|
msgstr "Le presse-papiers ne contient pas d'URL ou de fichier valide."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:257
|
||||||
|
msgid "File Explorer icons will refresh after process restart."
|
||||||
|
msgstr "Les icônes de l'explorateur de fichiers s'actualisent après le redémarrage du processus"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:260
|
||||||
|
msgid "File associations were successfully removed."
|
||||||
|
msgstr "Les associations de fichiers ont été retirées avec succès."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:262
|
||||||
|
msgid "File associations were successfully created."
|
||||||
|
msgstr "Les associations de fichiers ont été créées avec succès."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:265
|
||||||
|
msgid "Error creating file associations."
|
||||||
|
msgstr "Erreur dans la création des associations de fichiers."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:362
|
||||||
|
msgid "mpv.net is already in the Path environment variable."
|
||||||
|
msgstr "mpv.net se trouve déjà dans la variable d'environnement Path."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:370
|
||||||
|
msgid "mpv.net was successfully added to the Path environment variable."
|
||||||
|
msgstr "mpv.net a été ajouté avec succès à la variable d'environnement Path."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:379
|
||||||
|
msgid "mpv.net was not found in the Path environment variable."
|
||||||
|
msgstr "mpv.net n'a pas été trouvé dans la variable d'environnement Path."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:388
|
||||||
|
msgid "mpv.net was successfully removed from the Path environment variable."
|
||||||
|
msgstr "mpv.net a été supprimé de la variable d'environnement Path."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:393
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:398
|
||||||
|
msgid "This feature was removed, but there are user scripts:"
|
||||||
|
msgstr "Cette fonctionnalité a été retirée, mais il existe néanmoins des scripts d'utilisateurs :"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:402
|
||||||
|
msgid "This feature was removed."
|
||||||
|
msgstr "Cette fonctionnalité a été retirée"
|
||||||
|
|
||||||
|
#: 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 "thème"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:386
|
||||||
|
msgid "Clear List"
|
||||||
|
msgstr "Effacer la Liste"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:446
|
||||||
|
msgid "Show Profiles"
|
||||||
|
msgstr "Afficher les profils"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:1414
|
||||||
|
msgid "Shutdown thread failed to complete within 10 seconds."
|
||||||
|
msgstr "Le processus d'arrêt ne s'est pas achevé dans les 10 secondes."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\InputWindow.xaml.cs:116
|
||||||
|
msgid "Changes will be available on next startup."
|
||||||
|
msgstr "Les modifications seront effectives lors du prochain démarrage."
|
||||||
945
lang/po/ja.po
Normal file
@@ -0,0 +1,945 @@
|
|||||||
|
# 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-07-25 10:31+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"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Language: ja\n"
|
||||||
|
"Plural-Forms: nplurals=1; plural=0;\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 "ファイル"
|
||||||
|
|
||||||
|
#: 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:14
|
||||||
|
msgid "Open DVD/Blu-ray Drive/Folder..."
|
||||||
|
msgstr "DVD/Blu-ray ドライブ/フォルダを開く..."
|
||||||
|
|
||||||
|
#: 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:22
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:370
|
||||||
|
msgid "Recent Files"
|
||||||
|
msgstr "最近のファイル"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:23
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:196
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:228
|
||||||
|
msgid "Exit"
|
||||||
|
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:25
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:198
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:199
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:200
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:201
|
||||||
|
msgid "Play/Pause"
|
||||||
|
msgstr "再生/一時停止"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:26
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:202
|
||||||
|
msgid "Stop"
|
||||||
|
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:28
|
||||||
|
#: 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:213
|
||||||
|
msgid "Previous File"
|
||||||
|
msgstr "前のファイル"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:29
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:210
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:212
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:214
|
||||||
|
msgid "Next File"
|
||||||
|
msgstr "次のファイル"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:31
|
||||||
|
msgid "First File"
|
||||||
|
msgstr "最初のファイル"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:32
|
||||||
|
msgid "Last File"
|
||||||
|
msgstr "最後のファイル"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:35
|
||||||
|
msgid "Next Chapter"
|
||||||
|
msgstr "次のチャプター"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:36
|
||||||
|
msgid "Previous Chapter"
|
||||||
|
msgstr "前のチャプター"
|
||||||
|
|
||||||
|
#: 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:41
|
||||||
|
msgid "Jump 5 sec 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:44
|
||||||
|
msgid "Jump 30 sec forward"
|
||||||
|
msgstr "30 秒前方へジャンプ"
|
||||||
|
|
||||||
|
#: 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:47
|
||||||
|
msgid "Jump 5 min forward"
|
||||||
|
msgstr "5 分前方へジャンプ"
|
||||||
|
|
||||||
|
#: 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:50
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:391
|
||||||
|
msgid "Title"
|
||||||
|
msgstr "タイトル"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:51
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:349
|
||||||
|
msgid "Chapter"
|
||||||
|
msgstr "チャプター"
|
||||||
|
|
||||||
|
#: 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:53
|
||||||
|
msgid "Decrease Size"
|
||||||
|
msgstr "サイズを縮小"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:54
|
||||||
|
msgid "Increase Size"
|
||||||
|
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:60
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:98
|
||||||
|
msgid "Move Down"
|
||||||
|
msgstr "下へ移動"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:62
|
||||||
|
msgid "Decrease Height"
|
||||||
|
msgstr "高さを縮小"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:63
|
||||||
|
msgid "Increase Height"
|
||||||
|
msgstr "高さを拡大"
|
||||||
|
|
||||||
|
#: 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: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:67
|
||||||
|
msgid "Decrease Contrast"
|
||||||
|
msgstr "コントラストを下げる"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:68
|
||||||
|
msgid "Increase Contrast"
|
||||||
|
msgstr "コントラストを上げる"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:70
|
||||||
|
msgid "Decrease Brightness"
|
||||||
|
msgstr "明るさを下げる"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:71
|
||||||
|
msgid "Increase Brightness"
|
||||||
|
msgstr "明るさを上げる"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:73
|
||||||
|
msgid "Decrease Gamma"
|
||||||
|
msgstr "ガンマ値を下げる"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:74
|
||||||
|
msgid "Increase Gamma"
|
||||||
|
msgstr "ガンマ値を上げる"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:76
|
||||||
|
msgid "Decrease Saturation"
|
||||||
|
msgstr "彩度を下げる"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:77
|
||||||
|
msgid "Increase Saturation"
|
||||||
|
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\InputHelp.cs:81
|
||||||
|
msgid "Toggle Deinterlace"
|
||||||
|
msgstr "インターレース解除の切り替え"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:82
|
||||||
|
msgid "Change Aspect Ratio"
|
||||||
|
msgstr "アスペクト比を変更"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:83
|
||||||
|
msgid "Rotate Video"
|
||||||
|
msgstr "ビデオを回転"
|
||||||
|
|
||||||
|
#: 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:451
|
||||||
|
msgid "Audio Device"
|
||||||
|
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: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: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:92
|
||||||
|
msgid "Toggle Visibility"
|
||||||
|
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:101
|
||||||
|
msgid "Increase Font Size"
|
||||||
|
msgstr "フォントサイズを拡大"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:103
|
||||||
|
#: 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
|
||||||
|
msgid "More"
|
||||||
|
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:105
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:287
|
||||||
|
msgid "Track"
|
||||||
|
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:107
|
||||||
|
msgctxt "Volume"
|
||||||
|
msgid "Up"
|
||||||
|
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:110
|
||||||
|
msgid "Mute"
|
||||||
|
msgstr "ミュート"
|
||||||
|
|
||||||
|
#: 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: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 "1/2"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:116
|
||||||
|
msgid "Double"
|
||||||
|
msgstr "2 倍"
|
||||||
|
|
||||||
|
#: 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: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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:135
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||||
|
#: 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
|
||||||
|
msgid "View"
|
||||||
|
msgstr "表示"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:120
|
||||||
|
msgid "Toggle Statistics"
|
||||||
|
msgstr "統計情報の切り替え"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:121
|
||||||
|
msgid "Toggle OSC Visibility"
|
||||||
|
msgstr "OSC 表示の切り替え"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:122
|
||||||
|
msgid "Show Media Info On-Screen"
|
||||||
|
msgstr "画面上にメディア情報を表示"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:123
|
||||||
|
msgid "Show Media Info Message Box"
|
||||||
|
msgstr "メディア情報メッセージボックスを表示"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:124
|
||||||
|
msgid "Show Progress"
|
||||||
|
msgstr "進行状況を表示"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:135
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||||
|
msgid "On Screen Menu"
|
||||||
|
msgstr "オンスクリーンメニュー"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:126
|
||||||
|
msgid "Playlist"
|
||||||
|
msgstr "プレイリスト"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
|
||||||
|
msgid "Bindings"
|
||||||
|
msgstr "バインディング"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
|
||||||
|
msgid "Properties"
|
||||||
|
msgstr "プロパティ"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
|
||||||
|
msgid "Chapters"
|
||||||
|
msgstr "チャプター"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
|
||||||
|
msgid "Tracks"
|
||||||
|
msgstr "トラック"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
|
||||||
|
msgid "Audio Tracks"
|
||||||
|
msgstr "オーディオトラック"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
|
||||||
|
msgid "Subtitle Tracks"
|
||||||
|
msgstr "字幕トラック"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
|
||||||
|
msgid "Secondary Subtitle"
|
||||||
|
msgstr "セカンダリ字幕"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
|
||||||
|
msgid "Video Tracks"
|
||||||
|
msgstr "ビデオトラック"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:135
|
||||||
|
msgid "Subtitle Lines"
|
||||||
|
msgstr "字幕ライン"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||||
|
msgid "Audio Devices"
|
||||||
|
msgstr "オーディオデバイス"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||||
|
msgid "Show Console"
|
||||||
|
msgstr "コンソールを表示"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||||
|
msgid "Show Commands"
|
||||||
|
msgstr "コマンドを表示"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||||
|
msgid "Show Bindings"
|
||||||
|
msgstr "バインディングを表示"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:141
|
||||||
|
msgid "Show Keys"
|
||||||
|
msgstr "キーを表示"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||||
|
msgid "Show Protocols"
|
||||||
|
msgstr "プロトコルを表示"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||||
|
msgid "Show Decoders"
|
||||||
|
msgstr "デコーダを表示"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||||
|
msgid "Show Demuxers"
|
||||||
|
msgstr "デマルチプレクサを表示"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:151
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:153
|
||||||
|
#: 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
|
||||||
|
msgid "Window"
|
||||||
|
msgstr "ウィンドウ"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:216
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:217
|
||||||
|
msgid "Fullscreen"
|
||||||
|
msgstr "フルスクリーン"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:151
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:153
|
||||||
|
msgid "Zoom"
|
||||||
|
msgstr "ズーム"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||||
|
msgid "Enlarge"
|
||||||
|
msgstr "拡大"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||||
|
msgid "Shrink"
|
||||||
|
msgstr "縮小"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:150
|
||||||
|
msgid "50 %"
|
||||||
|
msgstr "50 %"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:151
|
||||||
|
msgid "100 %"
|
||||||
|
msgstr "100 %"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||||
|
msgid "200 %"
|
||||||
|
msgstr "200 %"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:153
|
||||||
|
msgid "300 %"
|
||||||
|
msgstr "300 %"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
msgid "Move"
|
||||||
|
msgstr "移動"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:154
|
||||||
|
msgctxt "Move"
|
||||||
|
msgid "Left"
|
||||||
|
msgstr "左へ"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:155
|
||||||
|
msgctxt "Move"
|
||||||
|
msgid "Right"
|
||||||
|
msgstr "右へ"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:156
|
||||||
|
msgctxt "Move"
|
||||||
|
msgid "Up"
|
||||||
|
msgstr "上へ"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:157
|
||||||
|
msgctxt "Move"
|
||||||
|
msgid "Down"
|
||||||
|
msgstr "下へ"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:158
|
||||||
|
msgctxt "Move"
|
||||||
|
msgid "Center"
|
||||||
|
msgstr "中央"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:159
|
||||||
|
msgid "Toggle Border"
|
||||||
|
msgstr "ボーダーの切り替え"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
|
||||||
|
msgid "Toggle On Top"
|
||||||
|
msgstr "常に手前に表示"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:424
|
||||||
|
msgid "Profile"
|
||||||
|
msgstr "プロファイル"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:168
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:174
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:175
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||||
|
msgid "Settings"
|
||||||
|
msgstr "設定"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
|
||||||
|
msgid "Show Config Editor"
|
||||||
|
msgstr "構成エディターを表示"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
|
||||||
|
msgid "Show Input Editor"
|
||||||
|
msgstr "入力エディターを表示"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:167
|
||||||
|
msgid "Edit mpv.conf"
|
||||||
|
msgstr "mpv.conf の編集"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:168
|
||||||
|
msgid "Edit input.conf"
|
||||||
|
msgstr "input.conf の編集"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:170
|
||||||
|
msgid "Open Config Folder"
|
||||||
|
msgstr "構成フォルダを開く"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:174
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:175
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||||
|
msgid "Setup"
|
||||||
|
msgstr "セットアップ"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:171
|
||||||
|
msgid "Register video file associations"
|
||||||
|
msgstr "ビデオファイルの関連付けを登録"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:172
|
||||||
|
msgid "Register audio file associations"
|
||||||
|
msgstr "オーディオファイルの関連付けを登録"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:173
|
||||||
|
msgid "Register image file associations"
|
||||||
|
msgstr "画像ファイルの関連付けを登録"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:174
|
||||||
|
msgid "Unregister file associations"
|
||||||
|
msgstr "ファイルの関連付けの登録解除"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||||
|
msgid "Add mpv.net to Path environment variable"
|
||||||
|
msgstr "mpv.net を Path 環境変数へ追加"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||||
|
msgid "Remove mpv.net from Path environment variable"
|
||||||
|
msgstr "mpv.net を Path 環境変数から削除"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
msgid "Tools"
|
||||||
|
msgstr "ツール"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
|
||||||
|
msgid "Set/clear A-B loop points"
|
||||||
|
msgstr "A-B 区間ループの設定/解除"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:180
|
||||||
|
msgid "Toggle infinite file looping"
|
||||||
|
msgstr "無限ファイルループの切り替え"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||||
|
msgid "Shuffle Playlist"
|
||||||
|
msgstr "プレイリストをシャッフル"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
|
||||||
|
msgid "Toggle Hardware Decoding"
|
||||||
|
msgstr "ハードウェアデコードの切り替え"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:183
|
||||||
|
msgid "Exit Watch Later"
|
||||||
|
msgstr "後で見るから終了"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:185
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:475
|
||||||
|
msgid "Custom"
|
||||||
|
msgstr "カスタム"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:187
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:192
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:193
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:194
|
||||||
|
msgid "Help"
|
||||||
|
msgstr "ヘルプ"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:187
|
||||||
|
msgid "Website mpv"
|
||||||
|
msgstr "mpv ウェブサイト"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:188
|
||||||
|
msgid "Website mpv.net"
|
||||||
|
msgstr "mpv.net ウェブサイト"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:190
|
||||||
|
msgid "Manual mpv"
|
||||||
|
msgstr "mpv マニュアル"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:191
|
||||||
|
msgid "Manual mpv.net"
|
||||||
|
msgstr "mpv.net マニュアル"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:193
|
||||||
|
msgid "awesome-mpv"
|
||||||
|
msgstr "awesome-mpv"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:194
|
||||||
|
msgid "About mpv.net"
|
||||||
|
msgstr "mpv.net のバージョン情報"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:197
|
||||||
|
msgid "Show Menu"
|
||||||
|
msgstr "メニューを表示"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:203
|
||||||
|
msgid "Forward"
|
||||||
|
msgstr "進む"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:204
|
||||||
|
msgid "Backward"
|
||||||
|
msgstr "戻る"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:205
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:207
|
||||||
|
msgid "Volume Up"
|
||||||
|
msgstr "音量を上げる"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:206
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:208
|
||||||
|
msgid "Volume Down"
|
||||||
|
msgstr "音量を下げる"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:215
|
||||||
|
msgid "Ignore left mouse butten"
|
||||||
|
msgstr "マウスの左ボタンを無視"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:218
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:220
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:226
|
||||||
|
msgid "Seek Forward"
|
||||||
|
msgstr "前方へシーク"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:219
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:221
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:227
|
||||||
|
msgid "Seek Backward"
|
||||||
|
msgstr "後方へシーク"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:222
|
||||||
|
msgid "Undo previous (or marked) seek"
|
||||||
|
msgstr "直前の (またはマークした) シークを元に戻す"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:223
|
||||||
|
msgid "Mark position for revert-seek"
|
||||||
|
msgstr "復帰シークの位置をマーク"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:224
|
||||||
|
msgid "Seek to previous subtitle"
|
||||||
|
msgstr "前の字幕へシーク"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:225
|
||||||
|
msgid "Seek to next subtitle"
|
||||||
|
msgstr "次の字幕へシーク"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:193
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:213
|
||||||
|
msgid "Files/URLs were added to the playlist"
|
||||||
|
msgstr "ファイル/URL がプレイリストへ追加されました"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:206
|
||||||
|
msgid "The clipboard does not contain a valid URL or file."
|
||||||
|
msgstr "クリップボードに有効な URL またはファイルが含まれていません。"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:257
|
||||||
|
msgid "File Explorer icons will refresh after process restart."
|
||||||
|
msgstr "ファイルエクスプローラーのアイコンは、プロセスの再起動後に更新されます。"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:260
|
||||||
|
msgid "File associations were successfully removed."
|
||||||
|
msgstr "ファイルの関連付けは正常に削除されました。"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:262
|
||||||
|
msgid "File associations were successfully created."
|
||||||
|
msgstr "ファイルの関連付けが正常に作成されました。"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:265
|
||||||
|
msgid "Error creating file associations."
|
||||||
|
msgstr "ファイルの関連付けの作成中にエラーが発生しました。"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:362
|
||||||
|
msgid "mpv.net is already in the Path environment variable."
|
||||||
|
msgstr "mpv.net は既に Path 環境変数にあります。"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:370
|
||||||
|
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:379
|
||||||
|
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:388
|
||||||
|
msgid "mpv.net was successfully removed from the Path environment variable."
|
||||||
|
msgstr "mpv.net は Path 環境変数から正常に削除されました。"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:393
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:398
|
||||||
|
msgid "This feature was removed, but there are user scripts:"
|
||||||
|
msgstr "この機能は削除されましたが、ユーザースクリプトがあります:"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:402
|
||||||
|
msgid "This feature was removed."
|
||||||
|
msgstr "この機能は削除されました。"
|
||||||
|
|
||||||
|
#: 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 "テーマ"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:386
|
||||||
|
msgid "Clear List"
|
||||||
|
msgstr "リストをクリア"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:446
|
||||||
|
msgid "Show Profiles"
|
||||||
|
msgstr "プロファイルを表示"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:1414
|
||||||
|
msgid "Shutdown thread failed to complete within 10 seconds."
|
||||||
|
msgstr "シャットダウン スレッドが 10 秒以内に完了しませんでした。"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\InputWindow.xaml.cs:116
|
||||||
|
msgid "Changes will be available on next startup."
|
||||||
|
msgstr "変更は次回の起動時に利用可能になります。"
|
||||||
945
lang/po/ko.po
Normal file
@@ -0,0 +1,945 @@
|
|||||||
|
# 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-07-25 10:31+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"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Language: ko\n"
|
||||||
|
"Plural-Forms: nplurals=1; plural=0;\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 "파일"
|
||||||
|
|
||||||
|
#: 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:14
|
||||||
|
msgid "Open DVD/Blu-ray Drive/Folder..."
|
||||||
|
msgstr "DVD/Blu-ray 드라이브/폴더 열기..."
|
||||||
|
|
||||||
|
#: 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:22
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:370
|
||||||
|
msgid "Recent Files"
|
||||||
|
msgstr "최근 파일"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:23
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:196
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:228
|
||||||
|
msgid "Exit"
|
||||||
|
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:25
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:198
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:199
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:200
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:201
|
||||||
|
msgid "Play/Pause"
|
||||||
|
msgstr "재생/일시 정지"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:26
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:202
|
||||||
|
msgid "Stop"
|
||||||
|
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:28
|
||||||
|
#: 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:213
|
||||||
|
msgid "Previous File"
|
||||||
|
msgstr "이전 파일"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:29
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:210
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:212
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:214
|
||||||
|
msgid "Next File"
|
||||||
|
msgstr "다음 파일"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:31
|
||||||
|
msgid "First File"
|
||||||
|
msgstr "첫 파일"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:32
|
||||||
|
msgid "Last File"
|
||||||
|
msgstr "마지막 파일"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:35
|
||||||
|
msgid "Next Chapter"
|
||||||
|
msgstr "다음 장"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:36
|
||||||
|
msgid "Previous Chapter"
|
||||||
|
msgstr "이전 장"
|
||||||
|
|
||||||
|
#: 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:41
|
||||||
|
msgid "Jump 5 sec 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:44
|
||||||
|
msgid "Jump 30 sec forward"
|
||||||
|
msgstr "30초 후로 이동"
|
||||||
|
|
||||||
|
#: 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:47
|
||||||
|
msgid "Jump 5 min forward"
|
||||||
|
msgstr "5분 후로 이동"
|
||||||
|
|
||||||
|
#: 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:50
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:391
|
||||||
|
msgid "Title"
|
||||||
|
msgstr "타이틀"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:51
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:349
|
||||||
|
msgid "Chapter"
|
||||||
|
msgstr "챕터"
|
||||||
|
|
||||||
|
#: 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:53
|
||||||
|
msgid "Decrease Size"
|
||||||
|
msgstr "크기 축소"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:54
|
||||||
|
msgid "Increase Size"
|
||||||
|
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:60
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:98
|
||||||
|
msgid "Move Down"
|
||||||
|
msgstr "아래로 이동"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:62
|
||||||
|
msgid "Decrease Height"
|
||||||
|
msgstr "높이 축소"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:63
|
||||||
|
msgid "Increase Height"
|
||||||
|
msgstr "높이 증가"
|
||||||
|
|
||||||
|
#: 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: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:67
|
||||||
|
msgid "Decrease Contrast"
|
||||||
|
msgstr "대비 감소"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:68
|
||||||
|
msgid "Increase Contrast"
|
||||||
|
msgstr "대비 증가"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:70
|
||||||
|
msgid "Decrease Brightness"
|
||||||
|
msgstr "밝기 감소"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:71
|
||||||
|
msgid "Increase Brightness"
|
||||||
|
msgstr "밝기 증가"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:73
|
||||||
|
msgid "Decrease Gamma"
|
||||||
|
msgstr "감마 감소"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:74
|
||||||
|
msgid "Increase Gamma"
|
||||||
|
msgstr "감마 증가"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:76
|
||||||
|
msgid "Decrease Saturation"
|
||||||
|
msgstr "채도 감소"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:77
|
||||||
|
msgid "Increase Saturation"
|
||||||
|
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\InputHelp.cs:81
|
||||||
|
msgid "Toggle Deinterlace"
|
||||||
|
msgstr "디인터레이스 전환"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:82
|
||||||
|
msgid "Change Aspect Ratio"
|
||||||
|
msgstr "화면 비율 변경"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:83
|
||||||
|
msgid "Rotate Video"
|
||||||
|
msgstr "비디오 회전"
|
||||||
|
|
||||||
|
#: 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:451
|
||||||
|
msgid "Audio Device"
|
||||||
|
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: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: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:92
|
||||||
|
msgid "Toggle Visibility"
|
||||||
|
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:101
|
||||||
|
msgid "Increase Font Size"
|
||||||
|
msgstr "글꼴 크기 증가"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:103
|
||||||
|
#: 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
|
||||||
|
msgid "More"
|
||||||
|
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:105
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:287
|
||||||
|
msgid "Track"
|
||||||
|
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:107
|
||||||
|
msgctxt "Volume"
|
||||||
|
msgid "Up"
|
||||||
|
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:110
|
||||||
|
msgid "Mute"
|
||||||
|
msgstr "음소거"
|
||||||
|
|
||||||
|
#: 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: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 "절반"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:116
|
||||||
|
msgid "Double"
|
||||||
|
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: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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:135
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||||
|
#: 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
|
||||||
|
msgid "View"
|
||||||
|
msgstr "보기"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:120
|
||||||
|
msgid "Toggle Statistics"
|
||||||
|
msgstr "통계 전환"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:121
|
||||||
|
msgid "Toggle OSC Visibility"
|
||||||
|
msgstr "OSC 표시 전환"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:122
|
||||||
|
msgid "Show Media Info On-Screen"
|
||||||
|
msgstr "On-Screen 미디어 정보 표시"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:123
|
||||||
|
msgid "Show Media Info Message Box"
|
||||||
|
msgstr "미디어 정보 메시지 상자 표시"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:124
|
||||||
|
msgid "Show Progress"
|
||||||
|
msgstr "진행률 표시"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:135
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||||
|
msgid "On Screen Menu"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:126
|
||||||
|
msgid "Playlist"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
|
||||||
|
msgid "Bindings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
|
||||||
|
msgid "Properties"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
|
||||||
|
msgid "Chapters"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
|
||||||
|
msgid "Tracks"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
|
||||||
|
msgid "Audio Tracks"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
|
||||||
|
msgid "Subtitle Tracks"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
|
||||||
|
msgid "Secondary Subtitle"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
|
||||||
|
msgid "Video Tracks"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:135
|
||||||
|
msgid "Subtitle Lines"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||||
|
msgid "Audio Devices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||||
|
msgid "Show Console"
|
||||||
|
msgstr "콘솔 표시"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||||
|
msgid "Show Commands"
|
||||||
|
msgstr "명령어 표시"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||||
|
msgid "Show Bindings"
|
||||||
|
msgstr "키 설정 표시"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:141
|
||||||
|
msgid "Show Keys"
|
||||||
|
msgstr "키 표시"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||||
|
msgid "Show Protocols"
|
||||||
|
msgstr "프로토콜 표시"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||||
|
msgid "Show Decoders"
|
||||||
|
msgstr "디코더 표시"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||||
|
msgid "Show Demuxers"
|
||||||
|
msgstr "디멀티플렉서 표시"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:151
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:153
|
||||||
|
#: 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
|
||||||
|
msgid "Window"
|
||||||
|
msgstr "창"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:216
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:217
|
||||||
|
msgid "Fullscreen"
|
||||||
|
msgstr "전체 화면"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:151
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:153
|
||||||
|
msgid "Zoom"
|
||||||
|
msgstr "확대"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||||
|
msgid "Enlarge"
|
||||||
|
msgstr "크게"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||||
|
msgid "Shrink"
|
||||||
|
msgstr "작게"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:150
|
||||||
|
msgid "50 %"
|
||||||
|
msgstr "50 %"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:151
|
||||||
|
msgid "100 %"
|
||||||
|
msgstr "100 %"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||||
|
msgid "200 %"
|
||||||
|
msgstr "200 %"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:153
|
||||||
|
msgid "300 %"
|
||||||
|
msgstr "300 %"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
msgid "Move"
|
||||||
|
msgstr "이동"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:154
|
||||||
|
msgctxt "Move"
|
||||||
|
msgid "Left"
|
||||||
|
msgstr "왼쪽"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:155
|
||||||
|
msgctxt "Move"
|
||||||
|
msgid "Right"
|
||||||
|
msgstr "오른쪽"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:156
|
||||||
|
msgctxt "Move"
|
||||||
|
msgid "Up"
|
||||||
|
msgstr "위"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:157
|
||||||
|
msgctxt "Move"
|
||||||
|
msgid "Down"
|
||||||
|
msgstr "아래"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:158
|
||||||
|
msgctxt "Move"
|
||||||
|
msgid "Center"
|
||||||
|
msgstr "중앙"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:159
|
||||||
|
msgid "Toggle Border"
|
||||||
|
msgstr "창 테두리 전환"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
|
||||||
|
msgid "Toggle On Top"
|
||||||
|
msgstr "항상 위에 표시 전환"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:424
|
||||||
|
msgid "Profile"
|
||||||
|
msgstr "프로파일"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:168
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:174
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:175
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||||
|
msgid "Settings"
|
||||||
|
msgstr "설정"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
|
||||||
|
msgid "Show Config Editor"
|
||||||
|
msgstr "구성 편집기 표시"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
|
||||||
|
msgid "Show Input Editor"
|
||||||
|
msgstr "입력 편집기 표시"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:167
|
||||||
|
msgid "Edit mpv.conf"
|
||||||
|
msgstr "mpv.conf 파일 편집"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:168
|
||||||
|
msgid "Edit input.conf"
|
||||||
|
msgstr "input.conf 파일 편집"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:170
|
||||||
|
msgid "Open Config Folder"
|
||||||
|
msgstr "설정 폴더 열기"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:174
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:175
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||||
|
msgid "Setup"
|
||||||
|
msgstr "시스템 설정"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:171
|
||||||
|
msgid "Register video file associations"
|
||||||
|
msgstr "비디오 파일 연결 등록"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:172
|
||||||
|
msgid "Register audio file associations"
|
||||||
|
msgstr "오디오 파일 연결 등록"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:173
|
||||||
|
msgid "Register image file associations"
|
||||||
|
msgstr "이미지 파일 연결 등록"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:174
|
||||||
|
msgid "Unregister file associations"
|
||||||
|
msgstr "파일 연결 등록 해제"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||||
|
msgid "Add mpv.net to Path environment variable"
|
||||||
|
msgstr "Path 환경 변수에 mpv.net 추가"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||||
|
msgid "Remove mpv.net from Path environment variable"
|
||||||
|
msgstr "Path 환경 변수에서 mpv.net 제거"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
msgid "Tools"
|
||||||
|
msgstr "도구"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
|
||||||
|
msgid "Set/clear A-B loop points"
|
||||||
|
msgstr "A-B 반복 지점 설정/해제"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:180
|
||||||
|
msgid "Toggle infinite file looping"
|
||||||
|
msgstr "파일 무한 반복 전환"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||||
|
msgid "Shuffle Playlist"
|
||||||
|
msgstr "재생 목록 순서 섞기"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
|
||||||
|
msgid "Toggle Hardware Decoding"
|
||||||
|
msgstr "하드웨어 디코딩 전환"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:183
|
||||||
|
msgid "Exit Watch Later"
|
||||||
|
msgstr "다음에 이어 보기 설정하고 종료"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:185
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:475
|
||||||
|
msgid "Custom"
|
||||||
|
msgstr "사용자 지정"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:187
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:192
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:193
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:194
|
||||||
|
msgid "Help"
|
||||||
|
msgstr "도움말"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:187
|
||||||
|
msgid "Website mpv"
|
||||||
|
msgstr "mpv 웹사이트"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:188
|
||||||
|
msgid "Website mpv.net"
|
||||||
|
msgstr "mpv.net 웹사이트"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:190
|
||||||
|
msgid "Manual mpv"
|
||||||
|
msgstr "mpv 설명서"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:191
|
||||||
|
msgid "Manual mpv.net"
|
||||||
|
msgstr "mpv.net 설명서"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:193
|
||||||
|
msgid "awesome-mpv"
|
||||||
|
msgstr "awesome-mpv"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:194
|
||||||
|
msgid "About mpv.net"
|
||||||
|
msgstr "mpv.net 정보"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:197
|
||||||
|
msgid "Show Menu"
|
||||||
|
msgstr "메뉴 표시"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:203
|
||||||
|
msgid "Forward"
|
||||||
|
msgstr "앞으로"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:204
|
||||||
|
msgid "Backward"
|
||||||
|
msgstr "뒤로"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:205
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:207
|
||||||
|
msgid "Volume Up"
|
||||||
|
msgstr "볼륨 증가"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:206
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:208
|
||||||
|
msgid "Volume Down"
|
||||||
|
msgstr "볼륨 감소"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:215
|
||||||
|
msgid "Ignore left mouse butten"
|
||||||
|
msgstr "왼쪽 마우스 버튼 무시"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:218
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:220
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:226
|
||||||
|
msgid "Seek Forward"
|
||||||
|
msgstr "빨리감기"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:219
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:221
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:227
|
||||||
|
msgid "Seek Backward"
|
||||||
|
msgstr "되감기"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:222
|
||||||
|
msgid "Undo previous (or marked) seek"
|
||||||
|
msgstr "이전 (또는 표시된) 탐색을 취소"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:223
|
||||||
|
msgid "Mark position for revert-seek"
|
||||||
|
msgstr "복귀 탐색하기 위한 위치 표시"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:224
|
||||||
|
msgid "Seek to previous subtitle"
|
||||||
|
msgstr "이전 자막으로 이동"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:225
|
||||||
|
msgid "Seek to next subtitle"
|
||||||
|
msgstr "다음 자막으로 이동"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:193
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:213
|
||||||
|
msgid "Files/URLs were added to the playlist"
|
||||||
|
msgstr "파일/URL을 재생 목록에 추가했습니다"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:206
|
||||||
|
msgid "The clipboard does not contain a valid URL or file."
|
||||||
|
msgstr "클립보드에 유효한 URL 또는 파일이 포함되어 있지 않습니다."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:257
|
||||||
|
msgid "File Explorer icons will refresh after process restart."
|
||||||
|
msgstr "탐색기 아이콘은 프로세스를 다시 시작한 후 업데이트됩니다."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:260
|
||||||
|
msgid "File associations were successfully removed."
|
||||||
|
msgstr "파일 연결을 제거했습니다."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:262
|
||||||
|
msgid "File associations were successfully created."
|
||||||
|
msgstr "파일 연결을 생성했습니다."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:265
|
||||||
|
msgid "Error creating file associations."
|
||||||
|
msgstr "파일 연결을 만드는 중 오류가 발생했습니다."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:362
|
||||||
|
msgid "mpv.net is already in the Path environment variable."
|
||||||
|
msgstr "mpv.net은 이미 Path 환경 변수에 있습니다."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:370
|
||||||
|
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:379
|
||||||
|
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:388
|
||||||
|
msgid "mpv.net was successfully removed from the Path environment variable."
|
||||||
|
msgstr "mpv.net을 Path 환경 변수에서 제거했습니다."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:393
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:398
|
||||||
|
msgid "This feature was removed, but there are user scripts:"
|
||||||
|
msgstr "이 기능은 삭제되었지만, 사용자 스크립트를 찾을 수 있습니다:"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:402
|
||||||
|
msgid "This feature was removed."
|
||||||
|
msgstr "이 기능은 삭제되었습니다."
|
||||||
|
|
||||||
|
#: 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 "theme"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:386
|
||||||
|
msgid "Clear List"
|
||||||
|
msgstr "목록 비우기"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:446
|
||||||
|
msgid "Show Profiles"
|
||||||
|
msgstr "프로파일 보기"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:1414
|
||||||
|
msgid "Shutdown thread failed to complete within 10 seconds."
|
||||||
|
msgstr "종료 스레드가 10초 이내에 완료되지 않았습니다."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\InputWindow.xaml.cs:116
|
||||||
|
msgid "Changes will be available on next startup."
|
||||||
|
msgstr "변경 사항은 다음 실행 시 적용됩니다."
|
||||||
945
lang/po/pl.po
Normal file
@@ -0,0 +1,945 @@
|
|||||||
|
# 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:
|
||||||
|
# Krzysztof Marcinek, 2024
|
||||||
|
#
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2024-07-25 10:31+0200\n"
|
||||||
|
"PO-Revision-Date: 2023-12-08 00:34+0000\n"
|
||||||
|
"Last-Translator: Krzysztof Marcinek, 2024\n"
|
||||||
|
"Language-Team: Polish (https://app.transifex.com/stax76/teams/179964/pl/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Language: pl\n"
|
||||||
|
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\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 "Plik"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:12
|
||||||
|
msgid "Open Files..."
|
||||||
|
msgstr "Otwórz pliki..."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:13
|
||||||
|
msgid "Open URL or file from clipboard"
|
||||||
|
msgstr "Otwórz URL lub plik ze schowka"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:14
|
||||||
|
msgid "Open DVD/Blu-ray Drive/Folder..."
|
||||||
|
msgstr "Otwórz płytę/folder DVD/Blu-Ray"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:16
|
||||||
|
msgid "Add external audio files..."
|
||||||
|
msgstr "Dodaj zewnętrzne pliki audio..."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:17
|
||||||
|
msgid "Add external subtitle files..."
|
||||||
|
msgstr "Dodaj zewnętrzne pliki napisów..."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:19
|
||||||
|
msgid "Add files to playlist..."
|
||||||
|
msgstr "Dodaj pliki do playlisty..."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:20
|
||||||
|
msgid "Add files/URLs to playlist from clipboard"
|
||||||
|
msgstr "Dodaj pliki/URL do playlisty ze schowka"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:22
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:370
|
||||||
|
msgid "Recent Files"
|
||||||
|
msgstr "Ostatnie pliki"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:23
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:196
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:228
|
||||||
|
msgid "Exit"
|
||||||
|
msgstr "Wyjście"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:25
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:26
|
||||||
|
msgid "Playback"
|
||||||
|
msgstr "Odtwarzanie"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:25
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:198
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:199
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:200
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:201
|
||||||
|
msgid "Play/Pause"
|
||||||
|
msgstr "Odtwórz/Wstrzymaj"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:26
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:202
|
||||||
|
msgid "Stop"
|
||||||
|
msgstr "Zatrzymaj"
|
||||||
|
|
||||||
|
#: 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 "Nawiguj"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:28
|
||||||
|
#: 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:213
|
||||||
|
msgid "Previous File"
|
||||||
|
msgstr "Poprzedni plik"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:29
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:210
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:212
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:214
|
||||||
|
msgid "Next File"
|
||||||
|
msgstr "Następny plik"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:31
|
||||||
|
msgid "First File"
|
||||||
|
msgstr "Pierwszy plik"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:32
|
||||||
|
msgid "Last File"
|
||||||
|
msgstr "Ostatni plik"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:35
|
||||||
|
msgid "Next Chapter"
|
||||||
|
msgstr "Następny rozdział"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:36
|
||||||
|
msgid "Previous Chapter"
|
||||||
|
msgstr "Poprzedni rozdział"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:38
|
||||||
|
msgid "Jump To Next Frame"
|
||||||
|
msgstr "Skocz do następnej klatki"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:39
|
||||||
|
msgid "Jump To Previous Frame"
|
||||||
|
msgstr "Skocz do poprzedniej klatki"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:41
|
||||||
|
msgid "Jump 5 sec forward"
|
||||||
|
msgstr "Skocz 5 sek. naprzód"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:42
|
||||||
|
msgid "Jump 5 sec backward"
|
||||||
|
msgstr "Skocz 5 sek. wstecz"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:44
|
||||||
|
msgid "Jump 30 sec forward"
|
||||||
|
msgstr "Skocz 30 sek. naprzód"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:45
|
||||||
|
msgid "Jump 30 sec backward"
|
||||||
|
msgstr "Skocz 30 sek. wstecz"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:47
|
||||||
|
msgid "Jump 5 min forward"
|
||||||
|
msgstr "Skocz 5 min. naprzód"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:48
|
||||||
|
msgid "Jump 5 min backward"
|
||||||
|
msgstr "Skocz 5 min. wstecz"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:50
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:391
|
||||||
|
msgid "Title"
|
||||||
|
msgstr "Tytuł"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:51
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:349
|
||||||
|
msgid "Chapter"
|
||||||
|
msgstr "Rozdział"
|
||||||
|
|
||||||
|
#: 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 "Pan & Scan"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:53
|
||||||
|
msgid "Decrease Size"
|
||||||
|
msgstr "Zmniejsz rozmiar"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:54
|
||||||
|
msgid "Increase Size"
|
||||||
|
msgstr "Zwiększ rozmiar"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:56
|
||||||
|
msgid "Move Left"
|
||||||
|
msgstr "Przesuń w lewo"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:57
|
||||||
|
msgid "Move Right"
|
||||||
|
msgstr "Przesuń w prawo"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:59
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:97
|
||||||
|
msgid "Move Up"
|
||||||
|
msgstr "Przesuń w górę"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:60
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:98
|
||||||
|
msgid "Move Down"
|
||||||
|
msgstr "Przesuń w dół"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:62
|
||||||
|
msgid "Decrease Height"
|
||||||
|
msgstr "Zmniejsz wysokość"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:63
|
||||||
|
msgid "Increase Height"
|
||||||
|
msgstr "Zwiększ wysokość"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:65
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:118
|
||||||
|
msgid "Reset"
|
||||||
|
msgstr "Resetuj"
|
||||||
|
|
||||||
|
#: 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 "Wideo"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:67
|
||||||
|
msgid "Decrease Contrast"
|
||||||
|
msgstr "Zmniejsz kontrast"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:68
|
||||||
|
msgid "Increase Contrast"
|
||||||
|
msgstr "Zwiększ kontrast"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:70
|
||||||
|
msgid "Decrease Brightness"
|
||||||
|
msgstr "Zmniejsz jasność"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:71
|
||||||
|
msgid "Increase Brightness"
|
||||||
|
msgstr "Zwiększ jasność"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:73
|
||||||
|
msgid "Decrease Gamma"
|
||||||
|
msgstr "Zmniejsz gammę"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:74
|
||||||
|
msgid "Increase Gamma"
|
||||||
|
msgstr "Zwiększ gammę"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:76
|
||||||
|
msgid "Decrease Saturation"
|
||||||
|
msgstr "Zmniejsz nasycenie"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:77
|
||||||
|
msgid "Increase Saturation"
|
||||||
|
msgstr "Zwiększ nasycenie"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:79
|
||||||
|
msgid "Take Screenshot"
|
||||||
|
msgstr "Zrób zrzut ekranu"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:80
|
||||||
|
msgid "Take Screenshot without subtitles"
|
||||||
|
msgstr "Zrób zrzut ekranu bez napisów"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:81
|
||||||
|
msgid "Toggle Deinterlace"
|
||||||
|
msgstr "Przełącz usuwanie przeplotu"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:82
|
||||||
|
msgid "Change Aspect Ratio"
|
||||||
|
msgstr "Zmień proporcje obrazu"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:83
|
||||||
|
msgid "Rotate Video"
|
||||||
|
msgstr "Obróć wideo"
|
||||||
|
|
||||||
|
#: 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 "Audio"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:85
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:451
|
||||||
|
msgid "Audio Device"
|
||||||
|
msgstr "Urządzenie audio"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:86
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:91
|
||||||
|
msgid "Next Track"
|
||||||
|
msgstr "Następna ścieżka"
|
||||||
|
|
||||||
|
#: 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 "Opóźnienie +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 "Opóźnienie -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 "Napis"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:92
|
||||||
|
msgid "Toggle Visibility"
|
||||||
|
msgstr "Przełącz widoczność"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:100
|
||||||
|
msgid "Decrease Font Size"
|
||||||
|
msgstr "Zmniejsz rozmiar czcionki"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:101
|
||||||
|
msgid "Increase Font Size"
|
||||||
|
msgstr "Zwiększ rozmiar czcionki"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:103
|
||||||
|
#: 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
|
||||||
|
msgid "More"
|
||||||
|
msgstr "Więcej"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:103
|
||||||
|
msgid "Toggle overriding SSA/ASS styles with normal styles"
|
||||||
|
msgstr "Przełącz zastępowanie stylów SSA/ASS zwykłymi stylami"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:105
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:287
|
||||||
|
msgid "Track"
|
||||||
|
msgstr "Ścieżka"
|
||||||
|
|
||||||
|
#: 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 "Głośność"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:107
|
||||||
|
msgctxt "Volume"
|
||||||
|
msgid "Up"
|
||||||
|
msgstr "Góra"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:108
|
||||||
|
msgctxt "Volume"
|
||||||
|
msgid "Down"
|
||||||
|
msgstr "Dół"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:110
|
||||||
|
msgid "Mute"
|
||||||
|
msgstr "Wycisz"
|
||||||
|
|
||||||
|
#: 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 "Prędkość"
|
||||||
|
|
||||||
|
#: 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 "Połowa"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:116
|
||||||
|
msgid "Double"
|
||||||
|
msgstr "Podwójnie"
|
||||||
|
|
||||||
|
#: 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: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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:135
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||||
|
#: 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
|
||||||
|
msgid "View"
|
||||||
|
msgstr "Widok"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:120
|
||||||
|
msgid "Toggle Statistics"
|
||||||
|
msgstr "Przełącz statystyki"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:121
|
||||||
|
msgid "Toggle OSC Visibility"
|
||||||
|
msgstr "Przełącz widoczność OSC"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:122
|
||||||
|
msgid "Show Media Info On-Screen"
|
||||||
|
msgstr "Pokaż informacje na ekranie"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:123
|
||||||
|
msgid "Show Media Info Message Box"
|
||||||
|
msgstr "Pokaż okno komunikatu informacji"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:124
|
||||||
|
msgid "Show Progress"
|
||||||
|
msgstr "Pokaż postęp"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:135
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||||
|
msgid "On Screen Menu"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:126
|
||||||
|
msgid "Playlist"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
|
||||||
|
msgid "Bindings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
|
||||||
|
msgid "Properties"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
|
||||||
|
msgid "Chapters"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
|
||||||
|
msgid "Tracks"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
|
||||||
|
msgid "Audio Tracks"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
|
||||||
|
msgid "Subtitle Tracks"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
|
||||||
|
msgid "Secondary Subtitle"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
|
||||||
|
msgid "Video Tracks"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:135
|
||||||
|
msgid "Subtitle Lines"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||||
|
msgid "Audio Devices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||||
|
msgid "Show Console"
|
||||||
|
msgstr "Pokaż konsolę"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||||
|
msgid "Show Commands"
|
||||||
|
msgstr "Pokaż polecenia"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||||
|
msgid "Show Bindings"
|
||||||
|
msgstr "Pokaż powiązania"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:141
|
||||||
|
msgid "Show Keys"
|
||||||
|
msgstr "Pokaż klawisze"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||||
|
msgid "Show Protocols"
|
||||||
|
msgstr "Pokaż protokoły"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||||
|
msgid "Show Decoders"
|
||||||
|
msgstr "Pokaż dekodery"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||||
|
msgid "Show Demuxers"
|
||||||
|
msgstr "Pokaż demuksery"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:151
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:153
|
||||||
|
#: 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
|
||||||
|
msgid "Window"
|
||||||
|
msgstr "Okno"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:216
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:217
|
||||||
|
msgid "Fullscreen"
|
||||||
|
msgstr "Pełny ekran"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:151
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:153
|
||||||
|
msgid "Zoom"
|
||||||
|
msgstr "Przybliż"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||||
|
msgid "Enlarge"
|
||||||
|
msgstr "Powiększ"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||||
|
msgid "Shrink"
|
||||||
|
msgstr "Zmniejsz"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:150
|
||||||
|
msgid "50 %"
|
||||||
|
msgstr "50%"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:151
|
||||||
|
msgid "100 %"
|
||||||
|
msgstr "100%"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||||
|
msgid "200 %"
|
||||||
|
msgstr "200%"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:153
|
||||||
|
msgid "300 %"
|
||||||
|
msgstr "300%"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
msgid "Move"
|
||||||
|
msgstr "Przesuń"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:154
|
||||||
|
msgctxt "Move"
|
||||||
|
msgid "Left"
|
||||||
|
msgstr "Lewo"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:155
|
||||||
|
msgctxt "Move"
|
||||||
|
msgid "Right"
|
||||||
|
msgstr "Prawo"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:156
|
||||||
|
msgctxt "Move"
|
||||||
|
msgid "Up"
|
||||||
|
msgstr "Góra"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:157
|
||||||
|
msgctxt "Move"
|
||||||
|
msgid "Down"
|
||||||
|
msgstr "Dół"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:158
|
||||||
|
msgctxt "Move"
|
||||||
|
msgid "Center"
|
||||||
|
msgstr "Środek"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:159
|
||||||
|
msgid "Toggle Border"
|
||||||
|
msgstr "Przełącz obramowanie"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
|
||||||
|
msgid "Toggle On Top"
|
||||||
|
msgstr "Przełącz na wierzchu"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:424
|
||||||
|
msgid "Profile"
|
||||||
|
msgstr "Profil"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:168
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:174
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:175
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||||
|
msgid "Settings"
|
||||||
|
msgstr "Ustawienia"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
|
||||||
|
msgid "Show Config Editor"
|
||||||
|
msgstr "Pokaż edytor konfiguracji"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
|
||||||
|
msgid "Show Input Editor"
|
||||||
|
msgstr "Pokaż edytor wejścia"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:167
|
||||||
|
msgid "Edit mpv.conf"
|
||||||
|
msgstr "Edytuj mpv.conf"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:168
|
||||||
|
msgid "Edit input.conf"
|
||||||
|
msgstr "Edytuj input.conf"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:170
|
||||||
|
msgid "Open Config Folder"
|
||||||
|
msgstr "Otwórz folder konfiguracji"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:174
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:175
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||||
|
msgid "Setup"
|
||||||
|
msgstr "Konfiguracja wstępna"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:171
|
||||||
|
msgid "Register video file associations"
|
||||||
|
msgstr "Zarejestruj skojarzenia plików wideo"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:172
|
||||||
|
msgid "Register audio file associations"
|
||||||
|
msgstr "Zarejestruj skojarzenia plików audio"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:173
|
||||||
|
msgid "Register image file associations"
|
||||||
|
msgstr "Zarejestruj skojarzenia plików obrazów"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:174
|
||||||
|
msgid "Unregister file associations"
|
||||||
|
msgstr "Wyrejestruj skojarzenia plików"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||||
|
msgid "Add mpv.net to Path environment variable"
|
||||||
|
msgstr "Dodaj mpv.net do zmiennych środowiskowych Path"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||||
|
msgid "Remove mpv.net from Path environment variable"
|
||||||
|
msgstr "Usuń mpv.net ze zmiennych środowiskowych Path"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
msgid "Tools"
|
||||||
|
msgstr "Narzędzia"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
|
||||||
|
msgid "Set/clear A-B loop points"
|
||||||
|
msgstr "Ustaw/wyczyść punkty pętli A-B"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:180
|
||||||
|
msgid "Toggle infinite file looping"
|
||||||
|
msgstr "Przełącz powtarzanie pliku bez przerwy"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||||
|
msgid "Shuffle Playlist"
|
||||||
|
msgstr "Losuj w playliście"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
|
||||||
|
msgid "Toggle Hardware Decoding"
|
||||||
|
msgstr "Przełącz dekodowanie sprzętowe"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:183
|
||||||
|
msgid "Exit Watch Later"
|
||||||
|
msgstr "Wyjdź obejrzyj później"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:185
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:475
|
||||||
|
msgid "Custom"
|
||||||
|
msgstr "Niestandardowe"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:187
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:192
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:193
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:194
|
||||||
|
msgid "Help"
|
||||||
|
msgstr "Pomoc"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:187
|
||||||
|
msgid "Website mpv"
|
||||||
|
msgstr "Strona mpv"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:188
|
||||||
|
msgid "Website mpv.net"
|
||||||
|
msgstr "Strona mpv.net"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:190
|
||||||
|
msgid "Manual mpv"
|
||||||
|
msgstr "Instrukcja mpv"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:191
|
||||||
|
msgid "Manual mpv.net"
|
||||||
|
msgstr "Instrukcja mpv.net"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:193
|
||||||
|
msgid "awesome-mpv"
|
||||||
|
msgstr "awesome-mpv"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:194
|
||||||
|
msgid "About mpv.net"
|
||||||
|
msgstr "O mpv.net"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:197
|
||||||
|
msgid "Show Menu"
|
||||||
|
msgstr "Pokaż menu"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:203
|
||||||
|
msgid "Forward"
|
||||||
|
msgstr "Naprzód"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:204
|
||||||
|
msgid "Backward"
|
||||||
|
msgstr "Wstecz"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:205
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:207
|
||||||
|
msgid "Volume Up"
|
||||||
|
msgstr "Głośność w górę"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:206
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:208
|
||||||
|
msgid "Volume Down"
|
||||||
|
msgstr "Głośność w dół"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:215
|
||||||
|
msgid "Ignore left mouse butten"
|
||||||
|
msgstr "Ignoruj LPM"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:218
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:220
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:226
|
||||||
|
msgid "Seek Forward"
|
||||||
|
msgstr "Szukaj naprzód"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:219
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:221
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:227
|
||||||
|
msgid "Seek Backward"
|
||||||
|
msgstr "Szukaj wstecz"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:222
|
||||||
|
msgid "Undo previous (or marked) seek"
|
||||||
|
msgstr "Cofnij poprzednie (lub zaznaczone) wyszukiwanie"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:223
|
||||||
|
msgid "Mark position for revert-seek"
|
||||||
|
msgstr "Oznacz pozycję dla odwróconego wyszukiwania"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:224
|
||||||
|
msgid "Seek to previous subtitle"
|
||||||
|
msgstr "Szukaj do poprzedniego napisu"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:225
|
||||||
|
msgid "Seek to next subtitle"
|
||||||
|
msgstr "Szukaj do następnego napisu"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:193
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:213
|
||||||
|
msgid "Files/URLs were added to the playlist"
|
||||||
|
msgstr "Pliki/URL zostały dodane do playlisty"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:206
|
||||||
|
msgid "The clipboard does not contain a valid URL or file."
|
||||||
|
msgstr "Schowek nie zawiera prawidłowego URL lub pliku."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:257
|
||||||
|
msgid "File Explorer icons will refresh after process restart."
|
||||||
|
msgstr "Ikony Eksploratora plików zostaną odświeżone po restarcie procesu."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:260
|
||||||
|
msgid "File associations were successfully removed."
|
||||||
|
msgstr "Skojarzenia plików zostały pomyślnie usunięte."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:262
|
||||||
|
msgid "File associations were successfully created."
|
||||||
|
msgstr "Skojarzenia plików zostały pomyślnie stworzone."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:265
|
||||||
|
msgid "Error creating file associations."
|
||||||
|
msgstr "Błąd tworzenia skojarzeń plików."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:362
|
||||||
|
msgid "mpv.net is already in the Path environment variable."
|
||||||
|
msgstr "mpv.net już znajduje się w zmiennych środowiskowych Path."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:370
|
||||||
|
msgid "mpv.net was successfully added to the Path environment variable."
|
||||||
|
msgstr "mpv.net zostało pomyślnie dodane do zmiennych środowiskowych Path."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:379
|
||||||
|
msgid "mpv.net was not found in the Path environment variable."
|
||||||
|
msgstr "mpv.net nie zostało znalezione w zmiennych środowiskowych Path."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:388
|
||||||
|
msgid "mpv.net was successfully removed from the Path environment variable."
|
||||||
|
msgstr "mpv.net zostało pomyślnie usunięte ze zmiennych środowiskowych Path."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:393
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:398
|
||||||
|
msgid "This feature was removed, but there are user scripts:"
|
||||||
|
msgstr "Ta funkcja została usunięta, ale istnieją skrypty użytkowników:"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:402
|
||||||
|
msgid "This feature was removed."
|
||||||
|
msgstr "Ta funkcja została usunięta."
|
||||||
|
|
||||||
|
#: 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 "motyw"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:386
|
||||||
|
msgid "Clear List"
|
||||||
|
msgstr "Wyczyść listę"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:446
|
||||||
|
msgid "Show Profiles"
|
||||||
|
msgstr "Pokaż profile"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:1414
|
||||||
|
msgid "Shutdown thread failed to complete within 10 seconds."
|
||||||
|
msgstr "Wątek zamykania nie został ukończony w ciągu 10 sekund."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\InputWindow.xaml.cs:116
|
||||||
|
msgid "Changes will be available on next startup."
|
||||||
|
msgstr "Zmiany będą dostępne przy następnym uruchomieniu."
|
||||||
945
lang/po/ru.po
Normal file
@@ -0,0 +1,945 @@
|
|||||||
|
# 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:
|
||||||
|
# Frank Skare, 2024
|
||||||
|
#
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2024-07-25 10:31+0200\n"
|
||||||
|
"PO-Revision-Date: 2023-12-08 00:34+0000\n"
|
||||||
|
"Last-Translator: Frank Skare, 2024\n"
|
||||||
|
"Language-Team: Russian (https://app.transifex.com/stax76/teams/179964/ru/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Language: ru\n"
|
||||||
|
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\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 "Файл"
|
||||||
|
|
||||||
|
#: 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:14
|
||||||
|
msgid "Open DVD/Blu-ray Drive/Folder..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: 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:22
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:370
|
||||||
|
msgid "Recent Files"
|
||||||
|
msgstr "Недавние файлы"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:23
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:196
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:228
|
||||||
|
msgid "Exit"
|
||||||
|
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:25
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:198
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:199
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:200
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:201
|
||||||
|
msgid "Play/Pause"
|
||||||
|
msgstr "Воспроизведение/Пауза"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:26
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:202
|
||||||
|
msgid "Stop"
|
||||||
|
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:28
|
||||||
|
#: 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:213
|
||||||
|
msgid "Previous File"
|
||||||
|
msgstr "Предыдущий файл"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:29
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:210
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:212
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:214
|
||||||
|
msgid "Next File"
|
||||||
|
msgstr "Следующий файл"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:31
|
||||||
|
msgid "First File"
|
||||||
|
msgstr "Первый файл"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:32
|
||||||
|
msgid "Last File"
|
||||||
|
msgstr "Последний файл"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:35
|
||||||
|
msgid "Next Chapter"
|
||||||
|
msgstr "Следующая глава"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:36
|
||||||
|
msgid "Previous Chapter"
|
||||||
|
msgstr "Предыдущая глава"
|
||||||
|
|
||||||
|
#: 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:41
|
||||||
|
msgid "Jump 5 sec 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:44
|
||||||
|
msgid "Jump 30 sec forward"
|
||||||
|
msgstr "Перейти вперед на 30 секунд"
|
||||||
|
|
||||||
|
#: 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:47
|
||||||
|
msgid "Jump 5 min forward"
|
||||||
|
msgstr "Перейти вперед на 5 минут"
|
||||||
|
|
||||||
|
#: 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:50
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:391
|
||||||
|
msgid "Title"
|
||||||
|
msgstr "Заголовок"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:51
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:349
|
||||||
|
msgid "Chapter"
|
||||||
|
msgstr "Глава"
|
||||||
|
|
||||||
|
#: 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:53
|
||||||
|
msgid "Decrease Size"
|
||||||
|
msgstr "Уменьшить размер"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:54
|
||||||
|
msgid "Increase Size"
|
||||||
|
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:60
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:98
|
||||||
|
msgid "Move Down"
|
||||||
|
msgstr "Сдвинуть вниз"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:62
|
||||||
|
msgid "Decrease Height"
|
||||||
|
msgstr "Уменьшить высоту"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:63
|
||||||
|
msgid "Increase Height"
|
||||||
|
msgstr "Увеличить высоту"
|
||||||
|
|
||||||
|
#: 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: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:67
|
||||||
|
msgid "Decrease Contrast"
|
||||||
|
msgstr "Уменьшить контраст"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:68
|
||||||
|
msgid "Increase Contrast"
|
||||||
|
msgstr "Увеличить контраст"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:70
|
||||||
|
msgid "Decrease Brightness"
|
||||||
|
msgstr "Уменьшить яркость"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:71
|
||||||
|
msgid "Increase Brightness"
|
||||||
|
msgstr "Увеличить яркость"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:73
|
||||||
|
msgid "Decrease Gamma"
|
||||||
|
msgstr "Уменьшить гамму"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:74
|
||||||
|
msgid "Increase Gamma"
|
||||||
|
msgstr "Увеличить гамму"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:76
|
||||||
|
msgid "Decrease Saturation"
|
||||||
|
msgstr "Уменьшить насыщенность"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:77
|
||||||
|
msgid "Increase Saturation"
|
||||||
|
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\InputHelp.cs:81
|
||||||
|
msgid "Toggle Deinterlace"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:82
|
||||||
|
msgid "Change Aspect Ratio"
|
||||||
|
msgstr "Изменить соотношение сторон"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:83
|
||||||
|
msgid "Rotate Video"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: 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:451
|
||||||
|
msgid "Audio Device"
|
||||||
|
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: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: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:92
|
||||||
|
msgid "Toggle Visibility"
|
||||||
|
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:101
|
||||||
|
msgid "Increase Font Size"
|
||||||
|
msgstr "Увеличить размер шрифта"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:103
|
||||||
|
#: 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
|
||||||
|
msgid "More"
|
||||||
|
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:105
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:287
|
||||||
|
msgid "Track"
|
||||||
|
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:107
|
||||||
|
msgctxt "Volume"
|
||||||
|
msgid "Up"
|
||||||
|
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:110
|
||||||
|
msgid "Mute"
|
||||||
|
msgstr "Без звука"
|
||||||
|
|
||||||
|
#: 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: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 "Половина"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:116
|
||||||
|
msgid "Double"
|
||||||
|
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: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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:135
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||||
|
#: 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
|
||||||
|
msgid "View"
|
||||||
|
msgstr "Просмотр"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:120
|
||||||
|
msgid "Toggle Statistics"
|
||||||
|
msgstr "Переключить статистику"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:121
|
||||||
|
msgid "Toggle OSC Visibility"
|
||||||
|
msgstr "Переключить видимость OSC"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:122
|
||||||
|
msgid "Show Media Info On-Screen"
|
||||||
|
msgstr "Показать информацию о медиа на экране"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:123
|
||||||
|
msgid "Show Media Info Message Box"
|
||||||
|
msgstr "Показать информацию о медиа в окне сообщения"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:124
|
||||||
|
msgid "Show Progress"
|
||||||
|
msgstr "Показать прогресс"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:135
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||||
|
msgid "On Screen Menu"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:126
|
||||||
|
msgid "Playlist"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
|
||||||
|
msgid "Bindings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
|
||||||
|
msgid "Properties"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
|
||||||
|
msgid "Chapters"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
|
||||||
|
msgid "Tracks"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
|
||||||
|
msgid "Audio Tracks"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
|
||||||
|
msgid "Subtitle Tracks"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
|
||||||
|
msgid "Secondary Subtitle"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
|
||||||
|
msgid "Video Tracks"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:135
|
||||||
|
msgid "Subtitle Lines"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||||
|
msgid "Audio Devices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||||
|
msgid "Show Console"
|
||||||
|
msgstr "Показать консоль"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||||
|
msgid "Show Commands"
|
||||||
|
msgstr "Показать команды"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||||
|
msgid "Show Bindings"
|
||||||
|
msgstr "Показать привязки"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:141
|
||||||
|
msgid "Show Keys"
|
||||||
|
msgstr "Показать клавиши"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||||
|
msgid "Show Protocols"
|
||||||
|
msgstr "Показать протоколы"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||||
|
msgid "Show Decoders"
|
||||||
|
msgstr "Показать декодеры"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||||
|
msgid "Show Demuxers"
|
||||||
|
msgstr "Показать демуксеры"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:151
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:153
|
||||||
|
#: 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
|
||||||
|
msgid "Window"
|
||||||
|
msgstr "Окно"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:216
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:217
|
||||||
|
msgid "Fullscreen"
|
||||||
|
msgstr "Полноэкранный режим"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:151
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:153
|
||||||
|
msgid "Zoom"
|
||||||
|
msgstr "Увеличить"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||||
|
msgid "Enlarge"
|
||||||
|
msgstr "Увеличить"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||||
|
msgid "Shrink"
|
||||||
|
msgstr "Уменьшить"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:150
|
||||||
|
msgid "50 %"
|
||||||
|
msgstr "50 %"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:151
|
||||||
|
msgid "100 %"
|
||||||
|
msgstr "100 %"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||||
|
msgid "200 %"
|
||||||
|
msgstr "200 %"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:153
|
||||||
|
msgid "300 %"
|
||||||
|
msgstr "300 %"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
msgid "Move"
|
||||||
|
msgstr "Перемещение"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:154
|
||||||
|
msgctxt "Move"
|
||||||
|
msgid "Left"
|
||||||
|
msgstr "Влево"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:155
|
||||||
|
msgctxt "Move"
|
||||||
|
msgid "Right"
|
||||||
|
msgstr "Вправо"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:156
|
||||||
|
msgctxt "Move"
|
||||||
|
msgid "Up"
|
||||||
|
msgstr "Вверх"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:157
|
||||||
|
msgctxt "Move"
|
||||||
|
msgid "Down"
|
||||||
|
msgstr "Вниз"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:158
|
||||||
|
msgctxt "Move"
|
||||||
|
msgid "Center"
|
||||||
|
msgstr "Центр"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:159
|
||||||
|
msgid "Toggle Border"
|
||||||
|
msgstr "Переключить рамку"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
|
||||||
|
msgid "Toggle On Top"
|
||||||
|
msgstr "Переключить поверх всех окон"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:424
|
||||||
|
msgid "Profile"
|
||||||
|
msgstr "Профиль"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:168
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:174
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:175
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||||
|
msgid "Settings"
|
||||||
|
msgstr "Настройки"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
|
||||||
|
msgid "Show Config Editor"
|
||||||
|
msgstr "Показать редактор конфигурации"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
|
||||||
|
msgid "Show Input Editor"
|
||||||
|
msgstr "Показать редактор ввода"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:167
|
||||||
|
msgid "Edit mpv.conf"
|
||||||
|
msgstr "Изменить mpv.conf"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:168
|
||||||
|
msgid "Edit input.conf"
|
||||||
|
msgstr "Изменить input.conf"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:170
|
||||||
|
msgid "Open Config Folder"
|
||||||
|
msgstr "Открыть папку конфигурации"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:174
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:175
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||||
|
msgid "Setup"
|
||||||
|
msgstr "Настройка"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:171
|
||||||
|
msgid "Register video file associations"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:172
|
||||||
|
msgid "Register audio file associations"
|
||||||
|
msgstr "Зарегистрировать ассоциации аудиофайлов"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:173
|
||||||
|
msgid "Register image file associations"
|
||||||
|
msgstr "Зарегистрировать ассоциации файлов изображений"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:174
|
||||||
|
msgid "Unregister file associations"
|
||||||
|
msgstr "Отменить регистрацию ассоциаций файлов"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||||
|
msgid "Add mpv.net to Path environment variable"
|
||||||
|
msgstr "Добавить mpv.net в переменную среды Path"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||||
|
msgid "Remove mpv.net from Path environment variable"
|
||||||
|
msgstr "Удалить mpv.net из переменной среды Path"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
msgid "Tools"
|
||||||
|
msgstr "Инструменты"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
|
||||||
|
msgid "Set/clear A-B loop points"
|
||||||
|
msgstr "Установить/очистить точки петли A-B"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:180
|
||||||
|
msgid "Toggle infinite file looping"
|
||||||
|
msgstr "Переключить бесконечное повторение файла"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||||
|
msgid "Shuffle Playlist"
|
||||||
|
msgstr "Перемешать плейлист"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
|
||||||
|
msgid "Toggle Hardware Decoding"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:183
|
||||||
|
msgid "Exit Watch Later"
|
||||||
|
msgstr "Выход и позже просмотреть"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:185
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:475
|
||||||
|
msgid "Custom"
|
||||||
|
msgstr "Пользовательский"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:187
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:192
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:193
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:194
|
||||||
|
msgid "Help"
|
||||||
|
msgstr "Помощь"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:187
|
||||||
|
msgid "Website mpv"
|
||||||
|
msgstr "Веб-сайт mpv"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:188
|
||||||
|
msgid "Website mpv.net"
|
||||||
|
msgstr "Веб-сайт mpv.net"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:190
|
||||||
|
msgid "Manual mpv"
|
||||||
|
msgstr "Руководство mpv"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:191
|
||||||
|
msgid "Manual mpv.net"
|
||||||
|
msgstr "Руководство mpv.net"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:193
|
||||||
|
msgid "awesome-mpv"
|
||||||
|
msgstr "awesome-mpv"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:194
|
||||||
|
msgid "About mpv.net"
|
||||||
|
msgstr "О mpv.net"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:197
|
||||||
|
msgid "Show Menu"
|
||||||
|
msgstr "Показать меню"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:203
|
||||||
|
msgid "Forward"
|
||||||
|
msgstr "Вперед"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:204
|
||||||
|
msgid "Backward"
|
||||||
|
msgstr "Назад"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:205
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:207
|
||||||
|
msgid "Volume Up"
|
||||||
|
msgstr "Увеличить громкость"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:206
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:208
|
||||||
|
msgid "Volume Down"
|
||||||
|
msgstr "Уменьшить громкость"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:215
|
||||||
|
msgid "Ignore left mouse butten"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:218
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:220
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:226
|
||||||
|
msgid "Seek Forward"
|
||||||
|
msgstr "Перемотать вперед"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:219
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:221
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:227
|
||||||
|
msgid "Seek Backward"
|
||||||
|
msgstr "Перемотать назад"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:222
|
||||||
|
msgid "Undo previous (or marked) seek"
|
||||||
|
msgstr "Отменить предыдущий (или помеченный) поиск"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:223
|
||||||
|
msgid "Mark position for revert-seek"
|
||||||
|
msgstr "Отметить позицию для возврата"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:224
|
||||||
|
msgid "Seek to previous subtitle"
|
||||||
|
msgstr "Перейти к предыдущему субтитру"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:225
|
||||||
|
msgid "Seek to next subtitle"
|
||||||
|
msgstr "Перейти к следующему субтитру"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:193
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:213
|
||||||
|
msgid "Files/URLs were added to the playlist"
|
||||||
|
msgstr "Файлы/URL добавлены в список воспроизведения"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:206
|
||||||
|
msgid "The clipboard does not contain a valid URL or file."
|
||||||
|
msgstr "Буфер обмена не содержит действительного URL ouar файла."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:257
|
||||||
|
msgid "File Explorer icons will refresh after process restart."
|
||||||
|
msgstr "Иконки Проводника будут обновлены после перезапуска процесса."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:260
|
||||||
|
msgid "File associations were successfully removed."
|
||||||
|
msgstr "Ассоциации файлов успешно удалены."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:262
|
||||||
|
msgid "File associations were successfully created."
|
||||||
|
msgstr "Ассоциации файлов успешно созданы."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:265
|
||||||
|
msgid "Error creating file associations."
|
||||||
|
msgstr "Ошибка создания ассоциаций файлов."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:362
|
||||||
|
msgid "mpv.net is already in the Path environment variable."
|
||||||
|
msgstr "mpv.net уже присутствует в переменной среды 'Path'."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:370
|
||||||
|
msgid "mpv.net was successfully added to the Path environment variable."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:379
|
||||||
|
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:388
|
||||||
|
msgid "mpv.net was successfully removed from the Path environment variable."
|
||||||
|
msgstr "mpv.net успешно удален из переменной среды 'Path'."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:393
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:398
|
||||||
|
msgid "This feature was removed, but there are user scripts:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:402
|
||||||
|
msgid "This feature was removed."
|
||||||
|
msgstr "Эта функция была удалена."
|
||||||
|
|
||||||
|
#: 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 "тема"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:386
|
||||||
|
msgid "Clear List"
|
||||||
|
msgstr "Очистить список"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:446
|
||||||
|
msgid "Show Profiles"
|
||||||
|
msgstr "Показать профили"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:1414
|
||||||
|
msgid "Shutdown thread failed to complete within 10 seconds."
|
||||||
|
msgstr "Поток завершения не удалось завершить в течение 10 секунд."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\InputWindow.xaml.cs:116
|
||||||
|
msgid "Changes will be available on next startup."
|
||||||
|
msgstr "Изменения будут доступны при следующем запуске."
|
||||||
947
lang/po/tr.po
Normal file
@@ -0,0 +1,947 @@
|
|||||||
|
# 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:
|
||||||
|
# Frank Skare, 2024
|
||||||
|
# ERCAN KOÇAK, 2024
|
||||||
|
#
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2024-07-25 10:31+0200\n"
|
||||||
|
"PO-Revision-Date: 2023-12-08 00:34+0000\n"
|
||||||
|
"Last-Translator: ERCAN KOÇAK, 2024\n"
|
||||||
|
"Language-Team: Turkish (https://app.transifex.com/stax76/teams/179964/tr/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Language: tr\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n > 1);\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:370
|
||||||
|
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:196
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:228
|
||||||
|
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:198
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:199
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:200
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:201
|
||||||
|
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:202
|
||||||
|
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:209
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:211
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:213
|
||||||
|
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:210
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:212
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:214
|
||||||
|
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:391
|
||||||
|
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:349
|
||||||
|
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:451
|
||||||
|
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: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
|
||||||
|
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:287
|
||||||
|
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: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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:135
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||||
|
#: 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
|
||||||
|
msgid "View"
|
||||||
|
msgstr "Görünüm"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:120
|
||||||
|
msgid "Toggle Statistics"
|
||||||
|
msgstr "İstatistikleri Göster"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:121
|
||||||
|
msgid "Toggle OSC Visibility"
|
||||||
|
msgstr "OSC Görünürlüğünü Göster"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:122
|
||||||
|
msgid "Show Media Info On-Screen"
|
||||||
|
msgstr "Medya Bilgilerini Ekranda Göster"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:123
|
||||||
|
msgid "Show Media Info Message Box"
|
||||||
|
msgstr "Medya Bilgisi Mesaj Kutusunu Göster"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:124
|
||||||
|
msgid "Show Progress"
|
||||||
|
msgstr "İlerlemeyi Göster"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:135
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||||
|
msgid "On Screen Menu"
|
||||||
|
msgstr "Ekran Menüsü"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:126
|
||||||
|
msgid "Playlist"
|
||||||
|
msgstr "Çalma listesi"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
|
||||||
|
msgid "Bindings"
|
||||||
|
msgstr "Bağlamalar"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
|
||||||
|
msgid "Properties"
|
||||||
|
msgstr "Özellikler"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
|
||||||
|
msgid "Chapters"
|
||||||
|
msgstr "Bölümler"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
|
||||||
|
msgid "Tracks"
|
||||||
|
msgstr "Parçalar"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
|
||||||
|
msgid "Audio Tracks"
|
||||||
|
msgstr "Ses Parçaları"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
|
||||||
|
msgid "Subtitle Tracks"
|
||||||
|
msgstr "Altyazı Parçaları"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
|
||||||
|
msgid "Secondary Subtitle"
|
||||||
|
msgstr "İkincil Altyazı"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
|
||||||
|
msgid "Video Tracks"
|
||||||
|
msgstr "Video Parçaları"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:135
|
||||||
|
msgid "Subtitle Lines"
|
||||||
|
msgstr "Altyazı Satırları"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||||
|
msgid "Audio Devices"
|
||||||
|
msgstr "Ses Cihazları"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||||
|
msgid "Show Console"
|
||||||
|
msgstr "Konsolu Göster"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||||
|
msgid "Show Commands"
|
||||||
|
msgstr "Komutları Göster"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||||
|
msgid "Show Bindings"
|
||||||
|
msgstr "Bağlamaları Göster"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:141
|
||||||
|
msgid "Show Keys"
|
||||||
|
msgstr "Kısayol Tuşlarını Göster"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||||
|
msgid "Show Protocols"
|
||||||
|
msgstr "Protokolleri Göster"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||||
|
msgid "Show Decoders"
|
||||||
|
msgstr "Kod Çözücüleri Göster"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||||
|
msgid "Show Demuxers"
|
||||||
|
msgstr "Kod Çözücüleri Göster"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:151
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:153
|
||||||
|
#: 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
|
||||||
|
msgid "Window"
|
||||||
|
msgstr "Pencere"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:216
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:217
|
||||||
|
msgid "Fullscreen"
|
||||||
|
msgstr "Tam Ekran"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:151
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:153
|
||||||
|
msgid "Zoom"
|
||||||
|
msgstr "Büyüt"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||||
|
msgid "Enlarge"
|
||||||
|
msgstr "Genişlet"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||||
|
msgid "Shrink"
|
||||||
|
msgstr "Daralt"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:150
|
||||||
|
msgid "50 %"
|
||||||
|
msgstr "50 %"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:151
|
||||||
|
msgid "100 %"
|
||||||
|
msgstr "100 %"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||||
|
msgid "200 %"
|
||||||
|
msgstr "200 %"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:153
|
||||||
|
msgid "300 %"
|
||||||
|
msgstr "300 %"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
msgid "Move"
|
||||||
|
msgstr "Hareket Ettir"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:154
|
||||||
|
msgctxt "Move"
|
||||||
|
msgid "Left"
|
||||||
|
msgstr "Sol"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:155
|
||||||
|
msgctxt "Move"
|
||||||
|
msgid "Right"
|
||||||
|
msgstr "Sağ"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:156
|
||||||
|
msgctxt "Move"
|
||||||
|
msgid "Up"
|
||||||
|
msgstr "Yukarı"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:157
|
||||||
|
msgctxt "Move"
|
||||||
|
msgid "Down"
|
||||||
|
msgstr "Aşağı"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:158
|
||||||
|
msgctxt "Move"
|
||||||
|
msgid "Center"
|
||||||
|
msgstr "Merkez"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:159
|
||||||
|
msgid "Toggle Border"
|
||||||
|
msgstr "Kenarlığı Göster"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
|
||||||
|
msgid "Toggle On Top"
|
||||||
|
msgstr "Üstte Göster"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:424
|
||||||
|
msgid "Profile"
|
||||||
|
msgstr "Profil"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:168
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:174
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:175
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||||
|
msgid "Settings"
|
||||||
|
msgstr "Ayarlar"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
|
||||||
|
msgid "Show Config Editor"
|
||||||
|
msgstr "Yapılandırma Düzenleyiciyi Göster"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
|
||||||
|
msgid "Show Input Editor"
|
||||||
|
msgstr "Giriş Düzenleyicisini Göster"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:167
|
||||||
|
msgid "Edit mpv.conf"
|
||||||
|
msgstr "Mpv.conf dosyasını düzenle"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:168
|
||||||
|
msgid "Edit input.conf"
|
||||||
|
msgstr "Input.conf dosyasını düzenle"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:170
|
||||||
|
msgid "Open Config Folder"
|
||||||
|
msgstr "Yapılandırma Klasörünü Aç"
|
||||||
|
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:174
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:175
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||||
|
msgid "Setup"
|
||||||
|
msgstr "Kurulum"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:171
|
||||||
|
msgid "Register video file associations"
|
||||||
|
msgstr "Video dosyaları ile ilişkilendir"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:172
|
||||||
|
msgid "Register audio file associations"
|
||||||
|
msgstr "Ses dosyaları ile ilişkilendir"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:173
|
||||||
|
msgid "Register image file associations"
|
||||||
|
msgstr "Görüntü dosyaları ile ilişkilendir"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:174
|
||||||
|
msgid "Unregister file associations"
|
||||||
|
msgstr "Dosya ilişkilendirmelerinin kaldır"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||||
|
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:177
|
||||||
|
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: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
|
||||||
|
msgid "Tools"
|
||||||
|
msgstr "Araçlar"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
|
||||||
|
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:180
|
||||||
|
msgid "Toggle infinite file looping"
|
||||||
|
msgstr "Sonsuz dosya döngüsünü göster"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||||
|
msgid "Shuffle Playlist"
|
||||||
|
msgstr "Çalma Listesini Karıştır"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
|
||||||
|
msgid "Toggle Hardware Decoding"
|
||||||
|
msgstr "Donanım Kod Çözmeyi Göster"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:183
|
||||||
|
msgid "Exit Watch Later"
|
||||||
|
msgstr "Daha Sonra İzle'den Çık"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:185
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:475
|
||||||
|
msgid "Custom"
|
||||||
|
msgstr "Özel"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:187
|
||||||
|
#: 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
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:192
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:193
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:194
|
||||||
|
msgid "Help"
|
||||||
|
msgstr "Yardım"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:187
|
||||||
|
msgid "Website mpv"
|
||||||
|
msgstr "İnternet sayfası mpv"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:188
|
||||||
|
msgid "Website mpv.net"
|
||||||
|
msgstr "İnternet sayfası mpv.net"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:190
|
||||||
|
msgid "Manual mpv"
|
||||||
|
msgstr "Manuel mpv"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:191
|
||||||
|
msgid "Manual mpv.net"
|
||||||
|
msgstr "Manuel mpv.net"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:193
|
||||||
|
msgid "awesome-mpv"
|
||||||
|
msgstr "müthiş-mpv"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:194
|
||||||
|
msgid "About mpv.net"
|
||||||
|
msgstr "Mpv.net hakkında"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:197
|
||||||
|
msgid "Show Menu"
|
||||||
|
msgstr "Menüyü göster"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:203
|
||||||
|
msgid "Forward"
|
||||||
|
msgstr "İleri"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:204
|
||||||
|
msgid "Backward"
|
||||||
|
msgstr "Geri"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:205
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:207
|
||||||
|
msgid "Volume Up"
|
||||||
|
msgstr "Sesi Aç"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:206
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:208
|
||||||
|
msgid "Volume Down"
|
||||||
|
msgstr "Sesi Kıs"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:215
|
||||||
|
msgid "Ignore left mouse butten"
|
||||||
|
msgstr "Sol fare düğmesini görmezden gel"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:218
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:220
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:226
|
||||||
|
msgid "Seek Forward"
|
||||||
|
msgstr "İleri Git"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:219
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:221
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:227
|
||||||
|
msgid "Seek Backward"
|
||||||
|
msgstr "Geri Git"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:222
|
||||||
|
msgid "Undo previous (or marked) seek"
|
||||||
|
msgstr "Önceki (veya işaretli) aramayı geri al"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:223
|
||||||
|
msgid "Mark position for revert-seek"
|
||||||
|
msgstr "Geri arama için konumu işaretle"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:224
|
||||||
|
msgid "Seek to previous subtitle"
|
||||||
|
msgstr "Önceki altyazıya git"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:225
|
||||||
|
msgid "Seek to next subtitle"
|
||||||
|
msgstr "Sonraki altyazıya git"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:193
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:213
|
||||||
|
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:206
|
||||||
|
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:257
|
||||||
|
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:260
|
||||||
|
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:262
|
||||||
|
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:265
|
||||||
|
msgid "Error creating file associations."
|
||||||
|
msgstr "Dosya ilişkilendirmeleri oluşturulurken hata oluştu."
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:362
|
||||||
|
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:370
|
||||||
|
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:379
|
||||||
|
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:388
|
||||||
|
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:393
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:398
|
||||||
|
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:402
|
||||||
|
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:386
|
||||||
|
msgid "Clear List"
|
||||||
|
msgstr "Listeyi Temizle"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:446
|
||||||
|
msgid "Show Profiles"
|
||||||
|
msgstr "Profilleri Göster"
|
||||||
|
|
||||||
|
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:1414
|
||||||
|
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."
|
||||||
1170
lang/po/zh_CN.po
1075
lang/source.pot
@@ -1,4 +1,6 @@
|
|||||||
|
|
||||||
|
$ErrorActionPreference = 'Stop'
|
||||||
|
|
||||||
# Write list of .cs files into cs-files.txt file
|
# Write list of .cs files into cs-files.txt file
|
||||||
Get-ChildItem $PSScriptRoot/.. -Recurse -File -Filter '*.cs' |
|
Get-ChildItem $PSScriptRoot/.. -Recurse -File -Filter '*.cs' |
|
||||||
Where-Object { $_ -notmatch '[/\\]obj[/\\]' } |
|
Where-Object { $_ -notmatch '[/\\]obj[/\\]' } |
|
||||||
@@ -6,7 +8,8 @@ Get-ChildItem $PSScriptRoot/.. -Recurse -File -Filter '*.cs' |
|
|||||||
Out-File $PSScriptRoot/cs-files.txt
|
Out-File $PSScriptRoot/cs-files.txt
|
||||||
|
|
||||||
# Create .pot file
|
# 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
|
# Backup .po files
|
||||||
$BackupTargetFolder = $env:TEMP + '/mpv.net po backup ' + (Get-Date -Format 'yyyy-MM-dd HH_mm_ss')
|
$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
|
# Update .po files
|
||||||
(Get-ChildItem $PSScriptRoot/PO -Filter '*.po').FullName |
|
(Get-ChildItem $PSScriptRoot/PO -Filter '*.po').FullName |
|
||||||
ForEach-Object { msgmerge --sort-output --backup=none --update $_ $PSScriptRoot/source.pot }
|
ForEach-Object { msgmerge --sort-output --backup=none --update $_ $PSScriptRoot/source.pot }
|
||||||
|
|
||||||
|
if ($LastExitCode) { throw $LastExitCode }
|
||||||
|
|||||||
@@ -23,3 +23,12 @@ dotnet_diagnostic.IDE0044.severity = silent
|
|||||||
|
|
||||||
# Member does not access instance data and can be marked as static
|
# Member does not access instance data and can be marked as static
|
||||||
dotnet_diagnostic.CA1822.severity = none
|
dotnet_diagnostic.CA1822.severity = none
|
||||||
|
|
||||||
|
# IDE0057: Use range operator
|
||||||
|
csharp_style_prefer_range_operator = false
|
||||||
|
|
||||||
|
# CA1401: P/Invokes should not be visible
|
||||||
|
dotnet_diagnostic.CA1401.severity = none
|
||||||
|
|
||||||
|
# IDE0017: Simplify object initialization
|
||||||
|
dotnet_style_object_initializer = false
|
||||||
|
|||||||
@@ -53,6 +53,7 @@ public class Conf
|
|||||||
if (section.HasName("help")) baseSetting.Help = section.GetValue("help");
|
if (section.HasName("help")) baseSetting.Help = section.GetValue("help");
|
||||||
if (section.HasName("url")) baseSetting.URL = section.GetValue("url");
|
if (section.HasName("url")) baseSetting.URL = section.GetValue("url");
|
||||||
if (section.HasName("width")) baseSetting.Width = Convert.ToInt32(section.GetValue("width"));
|
if (section.HasName("width")) baseSetting.Width = Convert.ToInt32(section.GetValue("width"));
|
||||||
|
if (section.HasName("option-name-width")) baseSetting.OptionNameWidth = Convert.ToInt32(section.GetValue("option-name-width"));
|
||||||
if (section.HasName("type")) baseSetting.Type = section.GetValue("type");
|
if (section.HasName("type")) baseSetting.Type = section.GetValue("type");
|
||||||
|
|
||||||
if (baseSetting.Help.ContainsEx("\\n"))
|
if (baseSetting.Help.ContainsEx("\\n"))
|
||||||
@@ -90,6 +91,9 @@ public class ConfParser
|
|||||||
{
|
{
|
||||||
string line = it.Trim();
|
string line = it.Trim();
|
||||||
|
|
||||||
|
if (line.StartsWith('#'))
|
||||||
|
continue;
|
||||||
|
|
||||||
if (line == "")
|
if (line == "")
|
||||||
{
|
{
|
||||||
currentGroup = new ConfSection();
|
currentGroup = new ConfSection();
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
|
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using System.Text.Json;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
@@ -11,6 +12,8 @@ using MpvNet.Windows.WinForms;
|
|||||||
using MpvNet.Windows.WPF.Views;
|
using MpvNet.Windows.WPF.Views;
|
||||||
using MpvNet.Windows.WPF;
|
using MpvNet.Windows.WPF;
|
||||||
using MpvNet.Windows.WPF.MsgBox;
|
using MpvNet.Windows.WPF.MsgBox;
|
||||||
|
using MpvNet.Windows.Help;
|
||||||
|
using MpvNet.Help;
|
||||||
|
|
||||||
namespace MpvNet;
|
namespace MpvNet;
|
||||||
|
|
||||||
@@ -27,41 +30,56 @@ public class GuiCommand
|
|||||||
|
|
||||||
public Dictionary<string, Action<IList<string>>> Commands => _commands ??= new()
|
public Dictionary<string, Action<IList<string>>> Commands => _commands ??= new()
|
||||||
{
|
{
|
||||||
["show-about"] = args => ShowDialog(typeof(AboutWindow)),
|
["add-to-path"] = args => AddToPath(),
|
||||||
["show-conf-editor"] = args => ShowDialog(typeof(ConfWindow)),
|
["edit-conf-file"] = EditCongFile,
|
||||||
["show-input-editor"] = args => ShowDialog(typeof(InputWindow)),
|
["install-command-palette"] = args => InstallCommandPalette(),
|
||||||
["show-audio-devices"] = args => Msg.ShowInfo(Player.GetPropertyOsdString("audio-device-list")),
|
["load-audio"] = LoadAudio,
|
||||||
["show-profiles"] = args => Msg.ShowInfo(Player.GetProfiles()),
|
|
||||||
["load-sub"] = LoadSubtitle,
|
["load-sub"] = LoadSubtitle,
|
||||||
|
["move-window"] = args => MoveWindow?.Invoke(args[0]),
|
||||||
|
["open-clipboard"] = OpenFromClipboard,
|
||||||
["open-files"] = OpenFiles,
|
["open-files"] = OpenFiles,
|
||||||
["open-optical-media"] = Open_DVD_Or_BD_Folder,
|
["open-optical-media"] = Open_DVD_Or_BD_Folder,
|
||||||
["load-audio"] = LoadAudio,
|
|
||||||
["open-clipboard"] = OpenFromClipboard,
|
|
||||||
["reg-file-assoc"] = RegisterFileAssociations,
|
["reg-file-assoc"] = RegisterFileAssociations,
|
||||||
|
["remove-from-path"] = args => RemoveFromPath(),
|
||||||
["scale-window"] = args => ScaleWindow?.Invoke(float.Parse(args[0], CultureInfo.InvariantCulture)),
|
["scale-window"] = args => ScaleWindow?.Invoke(float.Parse(args[0], CultureInfo.InvariantCulture)),
|
||||||
["show-media-info"] = ShowMediaInfo,
|
["show-about"] = args => ShowDialog(typeof(AboutWindow)),
|
||||||
["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-bindings"] = args => ShowBindings(),
|
||||||
["show-playlist"] = args => ShowPlaylist(),
|
["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(),
|
||||||
|
["show-recent-in-command-palette"] = args => ShowRecentFilesInCommandPalette(),
|
||||||
|
["stream-quality"] = args => StreamQuality(),
|
||||||
|
["window-scale"] = args => WindowScaleNet?.Invoke(float.Parse(args[0], CultureInfo.InvariantCulture)),
|
||||||
|
|
||||||
|
|
||||||
// deprecated
|
// deprecated
|
||||||
["show-info"] = args => ShowMediaInfo(new[] { "osd" }), // deprecated
|
["show-recent"] = args => ShowRemoved(), // deprecated
|
||||||
["quick-bookmark"] = args => QuickBookmark(), // deprecated
|
["quick-bookmark"] = args => QuickBookmark(), // deprecated
|
||||||
["show-history"] = args => ShowHistory(), // 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;
|
Window? win = Activator.CreateInstance(winType) as Window;
|
||||||
new WindowInteropHelper(win).Owner = MainForm.Instance!.Handle;
|
new WindowInteropHelper(win).Owner = MainForm.Instance!.Handle;
|
||||||
win?.ShowDialog();
|
win?.ShowDialog();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void LoadSubtitle(IList<string> args)
|
void LoadSubtitle(IList<string> args)
|
||||||
{
|
{
|
||||||
using var dialog = new OpenFileDialog();
|
using var dialog = new OpenFileDialog();
|
||||||
string path = Player.GetPropertyString("path");
|
string path = Player.GetPropertyString("path");
|
||||||
@@ -76,7 +94,7 @@ public class GuiCommand
|
|||||||
Player.CommandV("sub-add", filename);
|
Player.CommandV("sub-add", filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OpenFiles(IList<string> args)
|
void OpenFiles(IList<string> args)
|
||||||
{
|
{
|
||||||
bool append = false;
|
bool append = false;
|
||||||
|
|
||||||
@@ -90,7 +108,7 @@ public class GuiCommand
|
|||||||
Player.LoadFiles(dialog.FileNames, true, append);
|
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();
|
var dialog = new FolderBrowserDialog();
|
||||||
|
|
||||||
@@ -98,12 +116,84 @@ public class GuiCommand
|
|||||||
Player.LoadDiskFolder(dialog.SelectedPath);
|
Player.LoadDiskFolder(dialog.SelectedPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OpenFromClipboard(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 + "\"");
|
||||||
|
}
|
||||||
|
|
||||||
|
void ShowTextWithEditor(string name, string text)
|
||||||
|
{
|
||||||
|
string file = Path.Combine(Path.GetTempPath(), name + ".txt");
|
||||||
|
App.TempFiles.Add(file);
|
||||||
|
File.WriteAllText(file, BR + text.Trim() + BR);
|
||||||
|
ProcessHelp.ShellExecute(WinApiHelp.GetAppPathForExtension("txt"), "\"" + file + "\"");
|
||||||
|
}
|
||||||
|
|
||||||
|
void ShowCommands()
|
||||||
|
{
|
||||||
|
string json = Core.GetPropertyString("command-list");
|
||||||
|
var enumerator = JsonDocument.Parse(json).RootElement.EnumerateArray();
|
||||||
|
var commands = enumerator.OrderBy(it => it.GetProperty("name").GetString());
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
|
||||||
|
foreach (var cmd in commands)
|
||||||
|
{
|
||||||
|
sb.AppendLine();
|
||||||
|
sb.AppendLine(cmd.GetProperty("name").GetString());
|
||||||
|
|
||||||
|
foreach (var args in cmd.GetProperty("args").EnumerateArray())
|
||||||
|
{
|
||||||
|
string value = args.GetProperty("name").GetString() + " <" +
|
||||||
|
args.GetProperty("type").GetString()!.ToLower() + ">";
|
||||||
|
|
||||||
|
if (args.GetProperty("optional").GetBoolean())
|
||||||
|
value = "[" + value + "]";
|
||||||
|
|
||||||
|
sb.AppendLine(" " + value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
string header = BR +
|
||||||
|
"https://mpv.io/manual/master/#list-of-input-commands" + BR2 +
|
||||||
|
"https://github.com/stax76/mpv-scripts#command_palette" + BR;
|
||||||
|
|
||||||
|
ShowTextWithEditor("Input Commands", header + sb.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
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())
|
if (System.Windows.Forms.Clipboard.ContainsFileDropList())
|
||||||
{
|
{
|
||||||
string[] files = System.Windows.Forms.Clipboard.GetFileDropList().Cast<string>().ToArray();
|
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
|
else
|
||||||
{
|
{
|
||||||
@@ -116,15 +206,18 @@ public class GuiCommand
|
|||||||
|
|
||||||
if (files.Count == 0)
|
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;
|
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();
|
using var dialog = new OpenFileDialog();
|
||||||
string path = Player.GetPropertyString("path");
|
string path = Player.GetPropertyString("path");
|
||||||
@@ -139,16 +232,16 @@ public class GuiCommand
|
|||||||
Player.CommandV("audio-add", i);
|
Player.CommandV("audio-add", i);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RegisterFileAssociations(IList<string> args)
|
void RegisterFileAssociations(IList<string> args)
|
||||||
{
|
{
|
||||||
string perceivedType = args[0];
|
string perceivedType = args[0];
|
||||||
string[] extensions = Array.Empty<string>();
|
string[] extensions = Array.Empty<string>();
|
||||||
|
|
||||||
switch (perceivedType)
|
switch (perceivedType)
|
||||||
{
|
{
|
||||||
case "video": extensions = FileTypes.Video; break;
|
case "video": extensions = FileTypes.GetVideoExts(); break;
|
||||||
case "audio": extensions = FileTypes.Audio; break;
|
case "audio": extensions = FileTypes.GetAudioExts(); break;
|
||||||
case "image": extensions = FileTypes.Image; break;
|
case "image": extensions = FileTypes.GetImgExts(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
try
|
try
|
||||||
@@ -177,7 +270,73 @@ public class GuiCommand
|
|||||||
catch { }
|
catch { }
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ShowMediaInfo(IList<string> args)
|
void InstallCommandPalette()
|
||||||
|
{
|
||||||
|
if (Msg.ShowQuestion("Install command palette?") != MessageBoxResult.OK)
|
||||||
|
return;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Environment.SetEnvironmentVariable("MPVNET_HOME", Player.ConfigFolder);
|
||||||
|
using Process proc = new Process();
|
||||||
|
proc.StartInfo.FileName = "powershell";
|
||||||
|
proc.StartInfo.Arguments = "-executionpolicy bypass -nologo -noexit -noprofile -command \"irm https://raw.githubusercontent.com/stax76/mpv-scripts/refs/heads/main/powershell/command_palette_installer.ps1 | iex\"";
|
||||||
|
proc.Start();
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void StreamQuality()
|
||||||
|
{
|
||||||
|
int version = Player.GetPropertyInt("user-data/command-palette/version");
|
||||||
|
|
||||||
|
if (version >= 2)
|
||||||
|
Player.Command("script-message-to command_palette show-command-palette \"Stream Quality\"");
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var r = Msg.ShowQuestion("The Stream Quality feature requires the command palette to be installed." + BR2 +
|
||||||
|
"Would you like to install the command palette now?");
|
||||||
|
|
||||||
|
if (r == MessageBoxResult.OK)
|
||||||
|
Player.Command("script-message-to mpvnet install-command-palette");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ShowRecentFilesInCommandPalette()
|
||||||
|
{
|
||||||
|
Obj o = new();
|
||||||
|
o.title = "Recent Files";
|
||||||
|
o.selected_index = 0;
|
||||||
|
|
||||||
|
var items = new List<Item>();
|
||||||
|
|
||||||
|
foreach (string file in App.Settings.RecentFiles)
|
||||||
|
items.Add(new Item() { title = Path.GetFileName(file),
|
||||||
|
value = new string []{ "loadfile", file },
|
||||||
|
hint = file});
|
||||||
|
|
||||||
|
o.items = items.ToArray();
|
||||||
|
string json = JsonSerializer.Serialize(o);
|
||||||
|
Player.CommandV("script-message", "show-command-palette-json", json);
|
||||||
|
}
|
||||||
|
|
||||||
|
class Obj
|
||||||
|
{
|
||||||
|
public string title { get; set; } = "";
|
||||||
|
public int selected_index { get; set; } = 0;
|
||||||
|
public Item[] items { get; set; } = Array.Empty<Item>();
|
||||||
|
}
|
||||||
|
|
||||||
|
class Item
|
||||||
|
{
|
||||||
|
public string[] value { get; set; } = Array.Empty<string>();
|
||||||
|
public string title { get; set; } = "";
|
||||||
|
public string hint { get; set; } = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
void ShowMediaInfo(IList<string> args)
|
||||||
{
|
{
|
||||||
if (Player.PlaylistPos == -1)
|
if (Player.PlaylistPos == -1)
|
||||||
return;
|
return;
|
||||||
@@ -194,13 +353,13 @@ public class GuiCommand
|
|||||||
|
|
||||||
if (File.Exists(path) && osd)
|
if (File.Exists(path) && osd)
|
||||||
{
|
{
|
||||||
if (FileTypes.Audio.Contains(path.Ext()))
|
if (FileTypes.IsAudio(path.Ext()))
|
||||||
{
|
{
|
||||||
text = Player.GetPropertyOsdString("filtered-metadata");
|
text = Player.GetPropertyOsdString("filtered-metadata");
|
||||||
Player.CommandV("show-text", text, "5000");
|
Player.CommandV("show-text", text, "5000");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (FileTypes.Image.Contains(path.Ext()))
|
else if (FileTypes.IsImage(path.Ext()))
|
||||||
{
|
{
|
||||||
fileSize = new FileInfo(path).Length;
|
fileSize = new FileInfo(path).Length;
|
||||||
|
|
||||||
@@ -248,7 +407,7 @@ public class GuiCommand
|
|||||||
text = text.TrimEx();
|
text = text.TrimEx();
|
||||||
|
|
||||||
if (editor)
|
if (editor)
|
||||||
Command.ShowTextWithEditor("media-info", text);
|
ShowTextWithEditor("media-info", text);
|
||||||
else if (osd)
|
else if (osd)
|
||||||
Command.ShowText(text.Replace("\r", ""), 5000, 16);
|
Command.ShowText(text.Replace("\r", ""), 5000, 16);
|
||||||
else
|
else
|
||||||
@@ -259,64 +418,55 @@ public class GuiCommand
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string FormatTime(double value) => ((int)value).ToString("00");
|
string FormatTime(double value) => ((int)value).ToString("00");
|
||||||
|
|
||||||
public void ShowBindings() => Command.ShowTextWithEditor("Bindings", Player.UsedInputConfContent);
|
void ShowBindings() => ShowTextWithEditor("Bindings", Player.UsedInputConfContent);
|
||||||
|
|
||||||
public void ShowPlaylist()
|
void AddToPath()
|
||||||
{
|
{
|
||||||
var count = Player.GetPropertyInt("playlist-count");
|
string path = Environment.GetEnvironmentVariable("Path", EnvironmentVariableTarget.User)!;
|
||||||
|
|
||||||
if (count < 1)
|
if (path.ToLower().Contains(Folder.Startup.TrimEnd(Path.DirectorySeparatorChar).ToLower()))
|
||||||
return;
|
|
||||||
|
|
||||||
StringBuilder sb = new StringBuilder();
|
|
||||||
|
|
||||||
for (int i = 0; i < count; i++)
|
|
||||||
{
|
{
|
||||||
string name = Player.GetPropertyString($"playlist/{i}/title");
|
Msg.ShowWarning(_("mpv.net is already in the Path environment variable."));
|
||||||
|
return;
|
||||||
if (string.IsNullOrEmpty(name))
|
|
||||||
name = Player.GetPropertyString($"playlist/{i}/filename").FileName();
|
|
||||||
|
|
||||||
sb.AppendLine(name);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
string header = BR + "For a playlist menu the following user scripts exist:" + BR2 +
|
Environment.SetEnvironmentVariable("Path",
|
||||||
"https://github.com/stax76/mpv-scripts#command_palette" + BR +
|
Folder.Startup.TrimEnd(Path.DirectorySeparatorChar) + ";" + path,
|
||||||
"https://github.com/stax76/mpv-scripts#search_menu" + BR +
|
EnvironmentVariableTarget.User);
|
||||||
"https://github.com/tomasklaen/uosc" + BR +
|
|
||||||
"https://github.com/jonniek/mpv-playlistmanager" + BR2;
|
|
||||||
|
|
||||||
Msg.ShowInfo(header + sb.ToString().TrimEnd());
|
Msg.ShowInfo(_("mpv.net was successfully added to the Path environment variable."));
|
||||||
|
}
|
||||||
|
|
||||||
|
void RemoveFromPath()
|
||||||
|
{
|
||||||
|
string path = Environment.GetEnvironmentVariable("Path", EnvironmentVariableTarget.User)!;
|
||||||
|
|
||||||
|
if (!path.Contains(Folder.Startup.TrimEnd(Path.DirectorySeparatorChar)))
|
||||||
|
{
|
||||||
|
Msg.ShowWarning(_("mpv.net was not found in the Path environment variable."));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
path = path.Replace(Folder.Startup.TrimEnd(Path.DirectorySeparatorChar), "");
|
||||||
|
path = path.Replace(";;", ";").Trim(';');
|
||||||
|
|
||||||
|
Environment.SetEnvironmentVariable("Path", path, EnvironmentVariableTarget.User);
|
||||||
|
|
||||||
|
Msg.ShowInfo(_("mpv.net was successfully removed from the Path environment variable."));
|
||||||
}
|
}
|
||||||
|
|
||||||
// deprecated
|
// deprecated
|
||||||
public void QuickBookmark() =>
|
void QuickBookmark() =>
|
||||||
Msg.ShowInfo("This feature was moved to a user script,\nwhich can be found here:\n\n" +
|
Msg.ShowInfo(_("This feature was removed, but there are user scripts:") + BR2 +
|
||||||
"https://github.com/stax76/mpv-scripts/blob/main/misc.lua");
|
"https://github.com/stax76/mpv-scripts/blob/main/misc.lua");
|
||||||
|
|
||||||
// deprecated
|
// deprecated
|
||||||
public void ShowHistory() =>
|
void ShowHistory() =>
|
||||||
Msg.ShowInfo("This feature was moved to a user script,\nwhich can be found here:\n\n" +
|
Msg.ShowInfo(_("This feature was removed, but there are user scripts:") + BR2 +
|
||||||
"https://github.com/stax76/mpv-scripts/blob/main/history.lua");
|
"https://github.com/stax76/mpv-scripts/blob/main/history.lua");
|
||||||
|
|
||||||
// deprecated
|
// deprecated
|
||||||
public void ShowCommandPalette() =>
|
void ShowRemoved() => Msg.ShowInfo(_("This feature was removed."));
|
||||||
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");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//public void ShowCommandPalette()
|
|
||||||
//{
|
|
||||||
// MainForm.Instance?.BeginInvoke(() => {
|
|
||||||
// CommandPalette.Instance.SetItems(CommandPalette.GetItems());
|
|
||||||
// MainForm.Instance.ShowCommandPalette();
|
|
||||||
// CommandPalette.Instance.SelectFirst();
|
|
||||||
// });
|
|
||||||
//}
|
|
||||||
130
src/MpvNet.Windows/Help/WinApiHelp.cs
Normal file
@@ -0,0 +1,130 @@
|
|||||||
|
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
using static MpvNet.Windows.Native.WinApi;
|
||||||
|
|
||||||
|
namespace MpvNet.Windows.Help;
|
||||||
|
|
||||||
|
public static class WinApiHelp
|
||||||
|
{
|
||||||
|
public static Version WindowsTen1607 { get; } = new Version(10, 0, 14393); // Windows 10 1607
|
||||||
|
|
||||||
|
public static int GetResizeBorder(int v)
|
||||||
|
{
|
||||||
|
switch (v)
|
||||||
|
{
|
||||||
|
case 1 /* WMSZ_LEFT */ : return 3;
|
||||||
|
case 3 /* WMSZ_TOP */ : return 2;
|
||||||
|
case 2 /* WMSZ_RIGHT */ : return 3;
|
||||||
|
case 6 /* WMSZ_BOTTOM */ : return 2;
|
||||||
|
case 4 /* WMSZ_TOPLEFT */ : return 1;
|
||||||
|
case 5 /* WMSZ_TOPRIGHT */ : return 1;
|
||||||
|
case 7 /* WMSZ_BOTTOMLEFT */ : return 3;
|
||||||
|
case 8 /* WMSZ_BOTTOMRIGHT */ : return 3;
|
||||||
|
default: return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void AdjustWindowRectangle(IntPtr hwnd, ref RECT rc, int 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
|
||||||
|
AdjustWindowRect(ref rc, style, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void AddWindowBorders(IntPtr hwnd, ref RECT rc, int dpi, bool changeTop)
|
||||||
|
{
|
||||||
|
RECT win = rc;
|
||||||
|
AdjustWindowRectangle(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 int GetTitleBarHeight(IntPtr hwnd, int dpi)
|
||||||
|
{
|
||||||
|
RECT rect = new RECT();
|
||||||
|
AdjustWindowRectangle(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))
|
||||||
|
{
|
||||||
|
int left = workingArea.Left;
|
||||||
|
int top = workingArea.Top;
|
||||||
|
int right = workingArea.Right;
|
||||||
|
int bottom = workingArea.Bottom;
|
||||||
|
|
||||||
|
left += rect.Left - dwmRect.Left;
|
||||||
|
top -= rect.Top - dwmRect.Top;
|
||||||
|
right -= dwmRect.Right - rect.Right;
|
||||||
|
bottom -= dwmRect.Bottom - rect.Bottom;
|
||||||
|
|
||||||
|
return new Rectangle(left, top, right - left, bottom - top);
|
||||||
|
}
|
||||||
|
|
||||||
|
return workingArea;
|
||||||
|
}
|
||||||
|
|
||||||
|
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 string GetAppPathForExtension(params string[] extensions)
|
||||||
|
{
|
||||||
|
foreach (string it in extensions)
|
||||||
|
{
|
||||||
|
string extension = it;
|
||||||
|
|
||||||
|
if (!extension.StartsWith("."))
|
||||||
|
extension = "." + extension;
|
||||||
|
|
||||||
|
uint c = 0U;
|
||||||
|
|
||||||
|
if (AssocQueryString(0x40, 2, extension, null, null, ref c) == 1)
|
||||||
|
{
|
||||||
|
if (c > 0L)
|
||||||
|
{
|
||||||
|
var sb = new StringBuilder((int)c);
|
||||||
|
|
||||||
|
if (0 == AssocQueryString(0x40, 2, extension, default, sb, ref c))
|
||||||
|
{
|
||||||
|
string ret = sb.ToString();
|
||||||
|
|
||||||
|
if (File.Exists(ret))
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
|
|
||||||
using MpvNet.ExtensionMethod;
|
|
||||||
|
|
||||||
namespace MpvNet.Windows.Help;
|
|
||||||
|
|
||||||
public class WinMpvHelp
|
|
||||||
{
|
|
||||||
public static void CopyMpvNetCom()
|
|
||||||
{
|
|
||||||
string dir = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData).AddSep() +
|
|
||||||
"Microsoft\\WindowsApps\\";
|
|
||||||
|
|
||||||
if (File.Exists(dir + "mpvnet.exe") && !File.Exists(dir + "mpvnet.com"))
|
|
||||||
File.Copy(Folder.Startup + "mpvnet.com", dir + "mpvnet.com");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -11,11 +11,19 @@
|
|||||||
<UseWindowsForms>true</UseWindowsForms>
|
<UseWindowsForms>true</UseWindowsForms>
|
||||||
<ApplicationIcon>mpv-icon.ico</ApplicationIcon>
|
<ApplicationIcon>mpv-icon.ico</ApplicationIcon>
|
||||||
<Product>mpv.net</Product>
|
<Product>mpv.net</Product>
|
||||||
<AssemblyVersion>7.0.0.1</AssemblyVersion>
|
<FileVersion>7.1.1.3</FileVersion>
|
||||||
<FileVersion>7.0.0.1</FileVersion>
|
<AssemblyVersion>7.1.1.3</AssemblyVersion>
|
||||||
|
<InformationalVersion>7.1.1.3</InformationalVersion>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Remove="Misc\**" />
|
||||||
|
<EmbeddedResource Remove="Misc\**" />
|
||||||
|
<None Remove="Misc\**" />
|
||||||
|
<Page Remove="Misc\**" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Content Include="mpv-icon.ico" />
|
<Content Include="mpv-icon.ico" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
@@ -38,8 +46,4 @@
|
|||||||
<PackageReference Include="Microsoft.Xaml.Behaviors.Wpf" Version="1.1.77" />
|
<PackageReference Include="Microsoft.Xaml.Behaviors.Wpf" Version="1.1.77" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Folder Include="Misc\" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
|
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
using System.Text;
|
||||||
|
using static HandyControl.Tools.Interop.InteropValues;
|
||||||
|
|
||||||
namespace MpvNet.Windows.Native;
|
namespace MpvNet.Windows.Native;
|
||||||
|
|
||||||
public static class WinApi
|
public static class WinApi
|
||||||
{
|
{
|
||||||
public static Version WindowsTen1607 { get; } = new Version(10, 0, 14393); // Windows 10 1607
|
|
||||||
|
|
||||||
[DllImport("kernel32.dll")]
|
[DllImport("kernel32.dll")]
|
||||||
public static extern bool AttachConsole(int dwProcessId);
|
public static extern bool AttachConsole(int dwProcessId);
|
||||||
|
|
||||||
@@ -21,7 +21,7 @@ public static class WinApi
|
|||||||
public static extern uint ActivateKeyboardLayout(IntPtr hkl, uint flags);
|
public static extern uint ActivateKeyboardLayout(IntPtr hkl, uint flags);
|
||||||
|
|
||||||
[DllImport("user32.dll")]
|
[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)]
|
[DllImport("user32.dll", CharSet = CharSet.Unicode)]
|
||||||
public static extern IntPtr FindWindowEx(
|
public static extern IntPtr FindWindowEx(
|
||||||
@@ -49,89 +49,39 @@ public static class WinApi
|
|||||||
public static extern int GetDpiForWindow(IntPtr hwnd);
|
public static extern int GetDpiForWindow(IntPtr hwnd);
|
||||||
|
|
||||||
[DllImport("user32.dll")]
|
[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")]
|
[DllImport("user32.dll")]
|
||||||
public static extern bool AdjustWindowRectExForDpi(
|
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")]
|
[DllImport("user32.dll")]
|
||||||
public static extern bool SetWindowPos(
|
public static extern bool SetWindowPos(
|
||||||
IntPtr hWnd, IntPtr hWndInsertAfter, int x, int y, int cx, int cy, uint uFlags);
|
IntPtr hWnd, IntPtr hWndInsertAfter, int x, int y, int cx, int cy, uint uFlags);
|
||||||
|
|
||||||
[DllImport("user32.dll", EntryPoint = "GetWindowLong")]
|
|
||||||
static extern IntPtr GetWindowLong32(IntPtr hWnd, int nIndex);
|
|
||||||
|
|
||||||
[DllImport("user32.dll")]
|
[DllImport("user32.dll")]
|
||||||
static extern IntPtr GetWindowLongPtr(IntPtr hWnd, int nIndex);
|
public static extern IntPtr GetWindowLongPtr(IntPtr hWnd, int nIndex);
|
||||||
|
|
||||||
public static IntPtr GetWindowLong(IntPtr hWnd, int nIndex)
|
|
||||||
{
|
|
||||||
if (IntPtr.Size == 8)
|
|
||||||
return GetWindowLongPtr(hWnd, nIndex);
|
|
||||||
else
|
|
||||||
return GetWindowLong32(hWnd, 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);
|
|
||||||
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
[DllImport("gdi32.dll")]
|
[DllImport("gdi32.dll")]
|
||||||
public static extern int GetDeviceCaps(IntPtr hdc, int nIndex);
|
public static extern int GetDeviceCaps(IntPtr hdc, int nIndex);
|
||||||
|
|
||||||
|
[DllImport("shlwapi", CharSet = CharSet.Auto)]
|
||||||
|
public static extern uint AssocQueryString(
|
||||||
|
uint flags, uint str, string? pszAssoc, string? pszExtra, [Out] StringBuilder? pszOut, ref uint pcchOut);
|
||||||
|
|
||||||
[DllImport("dwmapi.dll")]
|
[DllImport("dwmapi.dll")]
|
||||||
public static extern int DwmGetWindowAttribute(
|
public static extern int DwmGetWindowAttribute(
|
||||||
IntPtr hwnd, uint dwAttribute, out Rect pvAttribute, uint cbAttribute);
|
IntPtr hwnd, uint dwAttribute, out RECT pvAttribute, uint cbAttribute);
|
||||||
|
|
||||||
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 Rectangle GetWorkingArea(IntPtr handle, Rectangle workingArea)
|
|
||||||
{
|
|
||||||
if (handle != IntPtr.Zero && GetDwmWindowRect(handle, out Rect dwmRect) &&
|
|
||||||
GetWindowRect(handle, out Rect rect))
|
|
||||||
{
|
|
||||||
int left = workingArea.Left;
|
|
||||||
int top = workingArea.Top;
|
|
||||||
int right = workingArea.Right;
|
|
||||||
int bottom = workingArea.Bottom;
|
|
||||||
|
|
||||||
left += rect.Left - dwmRect.Left;
|
|
||||||
top -= rect.Top - dwmRect.Top;
|
|
||||||
right -= dwmRect.Right - rect.Right;
|
|
||||||
bottom -= dwmRect.Bottom - rect.Bottom;
|
|
||||||
|
|
||||||
return new Rectangle(left, top, right - left, bottom - top);
|
|
||||||
}
|
|
||||||
|
|
||||||
return workingArea;
|
|
||||||
}
|
|
||||||
|
|
||||||
[StructLayout(LayoutKind.Sequential)]
|
[StructLayout(LayoutKind.Sequential)]
|
||||||
public struct Rect
|
public struct RECT
|
||||||
{
|
{
|
||||||
public int Left;
|
public int Left;
|
||||||
public int Top;
|
public int Top;
|
||||||
public int Right;
|
public int Right;
|
||||||
public int Bottom;
|
public int Bottom;
|
||||||
|
|
||||||
public Rect(Rectangle r)
|
public RECT(Rectangle r)
|
||||||
{
|
{
|
||||||
Left = r.Left;
|
Left = r.Left;
|
||||||
Top = r.Top;
|
Top = r.Top;
|
||||||
@@ -139,7 +89,7 @@ public static class WinApi
|
|||||||
Bottom = r.Bottom;
|
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;
|
Left = left;
|
||||||
Top = top;
|
Top = top;
|
||||||
@@ -152,9 +102,9 @@ public static class WinApi
|
|||||||
public int Width => Right - Left;
|
public int Width => Right - Left;
|
||||||
public int Height => Bottom - Top;
|
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()
|
public override string ToString()
|
||||||
@@ -163,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)]
|
[StructLayout(LayoutKind.Sequential)]
|
||||||
public struct CopyDataStruct
|
public struct CopyDataStruct
|
||||||
{
|
{
|
||||||
@@ -171,41 +135,4 @@ public static class WinApi
|
|||||||
[MarshalAs(UnmanagedType.LPTStr)]
|
[MarshalAs(UnmanagedType.LPTStr)]
|
||||||
public string lpData;
|
public string lpData;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int GetResizeBorder(int v)
|
|
||||||
{
|
|
||||||
switch (v)
|
|
||||||
{
|
|
||||||
case 1 /* WMSZ_LEFT */ : return 3;
|
|
||||||
case 3 /* WMSZ_TOP */ : return 2;
|
|
||||||
case 2 /* WMSZ_RIGHT */ : return 3;
|
|
||||||
case 6 /* WMSZ_BOTTOM */ : return 2;
|
|
||||||
case 4 /* WMSZ_TOPLEFT */ : return 1;
|
|
||||||
case 5 /* WMSZ_TOPRIGHT */ : return 1;
|
|
||||||
case 7 /* WMSZ_BOTTOMLEFT */ : return 3;
|
|
||||||
case 8 /* WMSZ_BOTTOMRIGHT */ : return 3;
|
|
||||||
default: return -1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void SubtractWindowBorders(IntPtr hwnd, ref Rect rc, int dpi)
|
|
||||||
{
|
|
||||||
Rect r = new Rect(0, 0, 0, 0);
|
|
||||||
AddWindowBorders(hwnd, ref r, dpi);
|
|
||||||
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)
|
|
||||||
{
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 49 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 11 KiB |
@@ -1,137 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
|
|
||||||
<Package
|
|
||||||
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
|
|
||||||
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
|
|
||||||
xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3"
|
|
||||||
xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10"
|
|
||||||
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
|
|
||||||
IgnorableNamespaces="uap rescap">
|
|
||||||
|
|
||||||
<Identity
|
|
||||||
Name="5664FrankSkare.mpv.net"
|
|
||||||
Publisher="CN=6A1A1E69-736C-4C77-B310-7B6D38E32617"
|
|
||||||
Version="6.0.3.0" />
|
|
||||||
|
|
||||||
<Properties>
|
|
||||||
<DisplayName>mpv.net</DisplayName>
|
|
||||||
<PublisherDisplayName>Frank Skare</PublisherDisplayName>
|
|
||||||
<Logo>Images\StoreLogo.png</Logo>
|
|
||||||
</Properties>
|
|
||||||
|
|
||||||
<Dependencies>
|
|
||||||
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.0.0" MaxVersionTested="10.0.0.0" />
|
|
||||||
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.14393.0" MaxVersionTested="10.0.14393.0" />
|
|
||||||
</Dependencies>
|
|
||||||
|
|
||||||
<Resources>
|
|
||||||
<Resource Language="x-generate"/>
|
|
||||||
</Resources>
|
|
||||||
|
|
||||||
<Applications>
|
|
||||||
<Application Id="App"
|
|
||||||
Executable="$targetnametoken$.exe"
|
|
||||||
EntryPoint="$targetentrypoint$">
|
|
||||||
<uap:VisualElements
|
|
||||||
DisplayName="mpv.net"
|
|
||||||
Description="mpv.net is a modern media player based on the popular mpv player."
|
|
||||||
BackgroundColor="transparent"
|
|
||||||
Square150x150Logo="Images\Square150x150Logo.png"
|
|
||||||
Square44x44Logo="Images\Square44x44Logo.png">
|
|
||||||
<uap:DefaultTile Wide310x150Logo="Images\Wide310x150Logo.png" />
|
|
||||||
<uap:SplashScreen Image="Images\SplashScreen.png" />
|
|
||||||
</uap:VisualElements>
|
|
||||||
|
|
||||||
<Extensions>
|
|
||||||
<uap3:Extension Category="windows.appExecutionAlias">
|
|
||||||
<uap3:AppExecutionAlias>
|
|
||||||
<desktop:ExecutionAlias Alias="MpvNet.exe" />
|
|
||||||
</uap3:AppExecutionAlias>
|
|
||||||
</uap3:Extension>
|
|
||||||
|
|
||||||
<uap:Extension Category="windows.fileTypeAssociation">
|
|
||||||
<uap:FileTypeAssociation Name="videotypes">
|
|
||||||
<uap:SupportedFileTypes>
|
|
||||||
<uap:FileType>.264</uap:FileType>
|
|
||||||
<uap:FileType>.265</uap:FileType>
|
|
||||||
<uap:FileType>.asf</uap:FileType>
|
|
||||||
<uap:FileType>.avc</uap:FileType>
|
|
||||||
<uap:FileType>.avi</uap:FileType>
|
|
||||||
<uap:FileType>.avs</uap:FileType>
|
|
||||||
<uap:FileType>.dav</uap:FileType>
|
|
||||||
<uap:FileType>.flv</uap:FileType>
|
|
||||||
<uap:FileType>.h264</uap:FileType>
|
|
||||||
<uap:FileType>.h265</uap:FileType>
|
|
||||||
<uap:FileType>.hevc</uap:FileType>
|
|
||||||
<uap:FileType>.m2t</uap:FileType>
|
|
||||||
<uap:FileType>.m2ts</uap:FileType>
|
|
||||||
<uap:FileType>.m2v</uap:FileType>
|
|
||||||
<uap:FileType>.m4v</uap:FileType>
|
|
||||||
<uap:FileType>.mkv</uap:FileType>
|
|
||||||
<uap:FileType>.mov</uap:FileType>
|
|
||||||
<uap:FileType>.mp4</uap:FileType>
|
|
||||||
<uap:FileType>.mpeg</uap:FileType>
|
|
||||||
<uap:FileType>.mpg</uap:FileType>
|
|
||||||
<uap:FileType>.mpv</uap:FileType>
|
|
||||||
<uap:FileType>.mts</uap:FileType>
|
|
||||||
<uap:FileType>.ts</uap:FileType>
|
|
||||||
<uap:FileType>.vob</uap:FileType>
|
|
||||||
<uap:FileType>.vpy</uap:FileType>
|
|
||||||
<uap:FileType>.webm</uap:FileType>
|
|
||||||
<uap:FileType>.wmv</uap:FileType>
|
|
||||||
<uap:FileType>.y4m</uap:FileType>
|
|
||||||
</uap:SupportedFileTypes>
|
|
||||||
</uap:FileTypeAssociation>
|
|
||||||
</uap:Extension>
|
|
||||||
|
|
||||||
<uap:Extension Category="windows.fileTypeAssociation">
|
|
||||||
<uap:FileTypeAssociation Name="audiotypes">
|
|
||||||
<uap:SupportedFileTypes>
|
|
||||||
<uap:FileType>.aac</uap:FileType>
|
|
||||||
<uap:FileType>.ac3</uap:FileType>
|
|
||||||
<uap:FileType>.dts</uap:FileType>
|
|
||||||
<uap:FileType>.dtshd</uap:FileType>
|
|
||||||
<uap:FileType>.dtshr</uap:FileType>
|
|
||||||
<uap:FileType>.dtsma</uap:FileType>
|
|
||||||
<uap:FileType>.eac3</uap:FileType>
|
|
||||||
<uap:FileType>.flac</uap:FileType>
|
|
||||||
<uap:FileType>.m4a</uap:FileType>
|
|
||||||
<uap:FileType>.mka</uap:FileType>
|
|
||||||
<uap:FileType>.mp2</uap:FileType>
|
|
||||||
<uap:FileType>.mp3</uap:FileType>
|
|
||||||
<uap:FileType>.mpa</uap:FileType>
|
|
||||||
<uap:FileType>.mpc</uap:FileType>
|
|
||||||
<uap:FileType>.ogg</uap:FileType>
|
|
||||||
<uap:FileType>.opus</uap:FileType>
|
|
||||||
<uap:FileType>.thd</uap:FileType>
|
|
||||||
<uap:FileType>.w64</uap:FileType>
|
|
||||||
<uap:FileType>.wav</uap:FileType>
|
|
||||||
</uap:SupportedFileTypes>
|
|
||||||
</uap:FileTypeAssociation>
|
|
||||||
</uap:Extension>
|
|
||||||
|
|
||||||
<uap:Extension Category="windows.protocol">
|
|
||||||
<uap:Protocol Name="ytdl" />
|
|
||||||
</uap:Extension>
|
|
||||||
|
|
||||||
<uap:Extension Category="windows.protocol">
|
|
||||||
<uap:Protocol Name="rtsp" />
|
|
||||||
</uap:Extension>
|
|
||||||
|
|
||||||
<uap:Extension Category="windows.protocol">
|
|
||||||
<uap:Protocol Name="srt" />
|
|
||||||
</uap:Extension>
|
|
||||||
|
|
||||||
<uap:Extension Category="windows.protocol">
|
|
||||||
<uap:Protocol Name="srtp" />
|
|
||||||
</uap:Extension>
|
|
||||||
</Extensions>
|
|
||||||
|
|
||||||
</Application>
|
|
||||||
</Applications>
|
|
||||||
|
|
||||||
<Capabilities>
|
|
||||||
<Capability Name="internetClient" />
|
|
||||||
<rescap:Capability Name="runFullTrust" />
|
|
||||||
</Capabilities>
|
|
||||||
</Package>
|
|
||||||
@@ -1,78 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<PropertyGroup Condition="'$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' < '15.0'">
|
|
||||||
<VisualStudioVersion>15.0</VisualStudioVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
|
||||||
<ProjectConfiguration Include="Debug|x64">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|x64">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<WapProjPath Condition="'$(WapProjPath)'==''">$(MSBuildExtensionsPath)\Microsoft\DesktopBridge\</WapProjPath>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(WapProjPath)\Microsoft.DesktopBridge.props" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<ProjectGuid>81daee3a-76ff-4494-9384-d28a651d70bb</ProjectGuid>
|
|
||||||
<TargetPlatformVersion>10.0.22000.0</TargetPlatformVersion>
|
|
||||||
<TargetPlatformMinVersion>10.0.14393.0</TargetPlatformMinVersion>
|
|
||||||
<DefaultLanguage>en-US</DefaultLanguage>
|
|
||||||
<AppxPackageSigningEnabled>false</AppxPackageSigningEnabled>
|
|
||||||
<EntryPointProjectUniqueName>..\mpv.net.csproj</EntryPointProjectUniqueName>
|
|
||||||
<GenerateAppInstallerFile>False</GenerateAppInstallerFile>
|
|
||||||
<AppxAutoIncrementPackageRevision>False</AppxAutoIncrementPackageRevision>
|
|
||||||
<GenerateTestArtifacts>True</GenerateTestArtifacts>
|
|
||||||
<AppxBundlePlatforms>x64</AppxBundlePlatforms>
|
|
||||||
<GenerateTemporaryStoreCertificate>True</GenerateTemporaryStoreCertificate>
|
|
||||||
<HoursBetweenUpdateChecks>0</HoursBetweenUpdateChecks>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<AppxBundle>Always</AppxBundle>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<AppxBundle>Always</AppxBundle>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<AppxManifest Include="Package.appxmanifest">
|
|
||||||
<SubType>Designer</SubType>
|
|
||||||
</AppxManifest>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Content Include="..\bin\MediaInfo.dll">
|
|
||||||
<Link>mpv.net\MediaInfo.dll</Link>
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="..\bin\Microsoft.Management.Infrastructure.dll">
|
|
||||||
<Link>mpv.net\Microsoft.Management.Infrastructure.dll</Link>
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="..\bin\libmpv-2.dll">
|
|
||||||
<Link>mpv.net\libmpv-2.dll</Link>
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="..\bin\mpvnet.com">
|
|
||||||
<Link>mpv.net\mpvnet.com</Link>
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="Images\SplashScreen.scale-200.png" />
|
|
||||||
<Content Include="Images\LockScreenLogo.scale-200.png" />
|
|
||||||
<Content Include="Images\Square150x150Logo.scale-200.png" />
|
|
||||||
<Content Include="Images\Square44x44Logo.scale-200.png" />
|
|
||||||
<Content Include="Images\Square44x44Logo.targetsize-24_altform-unplated.png" />
|
|
||||||
<Content Include="Images\StoreLogo.png" />
|
|
||||||
<Content Include="Images\Wide310x150Logo.scale-200.png" />
|
|
||||||
<None Include="Package.StoreAssociation.xml" />
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(WapProjPath)\Microsoft.DesktopBridge.targets" />
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="Microsoft.Windows.SDK.BuildTools" Version="10.0.19041.8" PrivateAssets="all" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\mpv.net.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
||||||
@@ -7,7 +7,6 @@ using MpvNet.Help;
|
|||||||
using MpvNet.Windows.UI;
|
using MpvNet.Windows.UI;
|
||||||
using MpvNet.Windows.Help;
|
using MpvNet.Windows.Help;
|
||||||
using MpvNet.Windows.WPF;
|
using MpvNet.Windows.WPF;
|
||||||
using System.Diagnostics;
|
|
||||||
|
|
||||||
namespace MpvNet.Windows;
|
namespace MpvNet.Windows;
|
||||||
|
|
||||||
@@ -42,7 +41,7 @@ static class Program
|
|||||||
Theme.Init();
|
Theme.Init();
|
||||||
Mutex mutex = new Mutex(true, StringHelp.GetMD5Hash(App.ConfPath), out bool isFirst);
|
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("--process-instance=multi") ||
|
||||||
App.CommandLine.Contains("--o="))
|
App.CommandLine.Contains("--o="))
|
||||||
{
|
{
|
||||||
@@ -97,11 +96,14 @@ static class Program
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (App.CommandLine.Contains("--o="))
|
if (ProcessCommandLineArguments())
|
||||||
|
Environment.GetCommandLineArgs();
|
||||||
|
else if (App.CommandLine.Contains("--o="))
|
||||||
{
|
{
|
||||||
App.AutoLoadFolder = false;
|
App.AutoLoadFolder = false;
|
||||||
Player.Init(IntPtr.Zero);
|
Player.Init(IntPtr.Zero, true);
|
||||||
Player.ProcessCommandLineFiles();
|
CommandLine.ProcessCommandLineArgsPostInit();
|
||||||
|
CommandLine.ProcessCommandLineFiles();
|
||||||
Player.SetPropertyString("idle", "no");
|
Player.SetPropertyString("idle", "no");
|
||||||
Player.EventLoop();
|
Player.EventLoop();
|
||||||
Player.Destroy();
|
Player.Destroy();
|
||||||
@@ -119,4 +121,48 @@ static class Program
|
|||||||
Terminal.WriteError(ex);
|
Terminal.WriteError(ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool ProcessCommandLineArguments()
|
||||||
|
{
|
||||||
|
foreach (string arg in Environment.GetCommandLineArgs().Skip(1))
|
||||||
|
{
|
||||||
|
if (arg == "--profile=help")
|
||||||
|
{
|
||||||
|
Player.Init(IntPtr.Zero, false);
|
||||||
|
Console.WriteLine(Player.GetProfiles());
|
||||||
|
Player.Destroy();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else if (arg == "--vd=help" || arg == "--ad=help")
|
||||||
|
{
|
||||||
|
Player.Init(IntPtr.Zero, false);
|
||||||
|
Console.WriteLine(Player.GetDecoders());
|
||||||
|
Player.Destroy();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else if (arg == "--audio-device=help")
|
||||||
|
{
|
||||||
|
Player.Init(IntPtr.Zero, false);
|
||||||
|
Console.WriteLine(Player.GetPropertyOsdString("audio-device-list"));
|
||||||
|
Player.Destroy();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else if (arg == "--input-keylist")
|
||||||
|
{
|
||||||
|
Player.Init(IntPtr.Zero, false);
|
||||||
|
Console.WriteLine(Player.GetPropertyString("input-key-list").Replace(",", BR));
|
||||||
|
Player.Destroy();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else if (arg == "--version")
|
||||||
|
{
|
||||||
|
Player.Init(IntPtr.Zero, false);
|
||||||
|
Console.WriteLine(AppClass.About);
|
||||||
|
Player.Destroy();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
7
src/MpvNet.Windows/Properties/launchSettings.json
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"profiles": {
|
||||||
|
"MpvNet.Windows": {
|
||||||
|
"commandName": "Project"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -16,6 +16,7 @@ public abstract class Setting
|
|||||||
public string? Value { get; set; }
|
public string? Value { get; set; }
|
||||||
|
|
||||||
public int Width { get; set; }
|
public int Width { get; set; }
|
||||||
|
public int OptionNameWidth { get; set; } = 100;
|
||||||
|
|
||||||
public ConfItem? ConfItem { get; set; }
|
public ConfItem? ConfItem { get; set; }
|
||||||
}
|
}
|
||||||
@@ -35,12 +36,13 @@ public class OptionSettingOption
|
|||||||
|
|
||||||
public string? Name { get; set; }
|
public string? Name { get; set; }
|
||||||
public string? Help { get; set; }
|
public string? Help { get; set; }
|
||||||
|
public int Width { get => OptionSetting!.OptionNameWidth; }
|
||||||
|
|
||||||
public OptionSetting? OptionSetting { get; set; }
|
public OptionSetting? OptionSetting { get; set; }
|
||||||
|
|
||||||
public string? Text
|
public string? Text
|
||||||
{
|
{
|
||||||
get => string.IsNullOrEmpty(_text) ? Name : _text;
|
get => _text ?? Name;
|
||||||
set => _text = value;
|
set => _text = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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; }
|
|
||||||
}
|
|
||||||
18
src/MpvNet.Windows/WPF/ComboBoxTemplateSelector.cs
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
|
||||||
|
using System.Windows.Controls;
|
||||||
|
using System.Windows;
|
||||||
|
|
||||||
|
namespace MpvNet.Windows.WPF;
|
||||||
|
|
||||||
|
public class ComboBoxTemplateSelector : DataTemplateSelector
|
||||||
|
{
|
||||||
|
public override DataTemplate SelectTemplate(object item, DependencyObject container)
|
||||||
|
{
|
||||||
|
ContentPresenter presenter = (ContentPresenter)container;
|
||||||
|
|
||||||
|
if (presenter.TemplatedParent is ComboBox)
|
||||||
|
return (DataTemplate)presenter.FindResource("ComboBoxCollapsedDataTemplate");
|
||||||
|
else // Templated parent is ComboBoxItem
|
||||||
|
return (DataTemplate)presenter.FindResource("ComboBoxExpandedDataTemplate");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -28,8 +28,8 @@
|
|||||||
<KeyBinding Key="n" Modifiers="Ctrl" Command="{Binding ShowMpvNetSpecificSettingsCommand}"/>
|
<KeyBinding Key="n" Modifiers="Ctrl" Command="{Binding ShowMpvNetSpecificSettingsCommand}"/>
|
||||||
<KeyBinding Key="F5" Command="{Binding PreviewMpvConfFileCommand}"/>
|
<KeyBinding Key="F5" Command="{Binding PreviewMpvConfFileCommand}"/>
|
||||||
<KeyBinding Key="F6" Command="{Binding PreviewMpvNetConfFileCommand}"/>
|
<KeyBinding Key="F6" Command="{Binding PreviewMpvNetConfFileCommand}"/>
|
||||||
<KeyBinding Key="F1" Command="{Binding ShowMpvManualCommand}"/>
|
<KeyBinding Key="F1" Modifiers="Ctrl" Command="{Binding ShowMpvManualCommand}"/>
|
||||||
<KeyBinding Key="F2" Command="{Binding ShowMpvNetManualCommand}"/>
|
<KeyBinding Key="F2" Modifiers="Ctrl" Command="{Binding ShowMpvNetManualCommand}"/>
|
||||||
</Window.InputBindings>
|
</Window.InputBindings>
|
||||||
|
|
||||||
<Grid>
|
<Grid>
|
||||||
@@ -40,7 +40,7 @@
|
|||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="170" />
|
<ColumnDefinition Width="Auto" />
|
||||||
<ColumnDefinition Width="*" />
|
<ColumnDefinition Width="*" />
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
@@ -48,6 +48,7 @@
|
|||||||
x:Name="SearchControl"
|
x:Name="SearchControl"
|
||||||
HintText="Find a setting (Ctrl+F)"
|
HintText="Find a setting (Ctrl+F)"
|
||||||
Margin="20,20,0,10"
|
Margin="20,20,0,10"
|
||||||
|
MaxWidth="190"
|
||||||
Text="{Binding SearchText, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
Text="{Binding SearchText, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
@@ -135,12 +136,12 @@
|
|||||||
<Separator />
|
<Separator />
|
||||||
<MenuItem
|
<MenuItem
|
||||||
Header="Show mpv manual"
|
Header="Show mpv manual"
|
||||||
InputGestureText="F1"
|
InputGestureText="Ctrl+F1"
|
||||||
Command="{Binding Data.ShowMpvManualCommand, Source={StaticResource BindingProxy}}"
|
Command="{Binding Data.ShowMpvManualCommand, Source={StaticResource BindingProxy}}"
|
||||||
/>
|
/>
|
||||||
<MenuItem
|
<MenuItem
|
||||||
Header="Show mpv.net manual"
|
Header="Show mpv.net manual"
|
||||||
InputGestureText="F2"
|
InputGestureText="Ctrl+F2"
|
||||||
Command="{Binding Data.ShowMpvNetManualCommand, Source={StaticResource BindingProxy}}"
|
Command="{Binding Data.ShowMpvNetManualCommand, Source={StaticResource BindingProxy}}"
|
||||||
/>
|
/>
|
||||||
</ContextMenu>
|
</ContextMenu>
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ using System.Collections.ObjectModel;
|
|||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using System.Runtime.CompilerServices;
|
using System.Runtime.CompilerServices;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
using System.Windows.Input;
|
using System.Windows.Input;
|
||||||
@@ -19,13 +20,16 @@ namespace MpvNet.Windows.WPF;
|
|||||||
|
|
||||||
public partial class ConfWindow : Window, INotifyPropertyChanged
|
public partial class ConfWindow : Window, INotifyPropertyChanged
|
||||||
{
|
{
|
||||||
List<Setting> Settings = Conf.LoadConf(Properties.Resources.editor_conf.TrimEnd());
|
List<Setting> _settings = Conf.LoadConf(Properties.Resources.editor_conf.TrimEnd());
|
||||||
List<ConfItem> ConfItems = new List<ConfItem>();
|
List<ConfItem> _confItems = new List<ConfItem>();
|
||||||
public ObservableCollection<string> FilterStrings { get; } = new();
|
string _initialContent;
|
||||||
string InitialContent;
|
string _themeConf = GetThemeConf();
|
||||||
string ThemeConf = GetThemeConf();
|
|
||||||
string? _searchText;
|
string? _searchText;
|
||||||
List<NodeViewModel>? _nodes;
|
List<NodeViewModel>? _nodes;
|
||||||
|
bool _shown;
|
||||||
|
int _useSpace;
|
||||||
|
int _useNoSpace;
|
||||||
|
|
||||||
public event PropertyChangedEventHandler? PropertyChanged;
|
public event PropertyChangedEventHandler? PropertyChanged;
|
||||||
|
|
||||||
public ConfWindow()
|
public ConfWindow()
|
||||||
@@ -34,21 +38,24 @@ public partial class ConfWindow : Window, INotifyPropertyChanged
|
|||||||
DataContext = this;
|
DataContext = this;
|
||||||
LoadConf(Player.ConfPath);
|
LoadConf(Player.ConfPath);
|
||||||
LoadConf(App.ConfPath);
|
LoadConf(App.ConfPath);
|
||||||
|
LoadLibplaceboConf();
|
||||||
LoadSettings();
|
LoadSettings();
|
||||||
InitialContent = GetCompareString();
|
_initialContent = GetCompareString();
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(App.Settings.ConfigEditorSearch))
|
if (string.IsNullOrEmpty(App.Settings.ConfigEditorSearch))
|
||||||
SearchControl.Text = "General:";
|
SearchText = "General:";
|
||||||
else
|
else
|
||||||
SearchControl.Text = App.Settings.ConfigEditorSearch;
|
SearchText = App.Settings.ConfigEditorSearch;
|
||||||
|
|
||||||
foreach (var node in Nodes)
|
foreach (var node in Nodes)
|
||||||
SelectNodeFromSearchText(node);
|
SelectNodeFromSearchText(node);
|
||||||
|
|
||||||
foreach (var node in Nodes)
|
foreach (var node in Nodes)
|
||||||
ExpandNode(node);
|
node.IsExpanded = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ObservableCollection<string> FilterStrings { get; } = new();
|
||||||
|
|
||||||
public Theme? Theme => Theme.Current;
|
public Theme? Theme => Theme.Current;
|
||||||
|
|
||||||
public string SearchText
|
public string SearchText
|
||||||
@@ -70,7 +77,7 @@ public partial class ConfWindow : Window, INotifyPropertyChanged
|
|||||||
{
|
{
|
||||||
var rootNode = new TreeNode();
|
var rootNode = new TreeNode();
|
||||||
|
|
||||||
foreach (Setting setting in Settings)
|
foreach (Setting setting in _settings)
|
||||||
AddNode(rootNode.Children, setting.Directory!);
|
AddNode(rootNode.Children, setting.Directory!);
|
||||||
|
|
||||||
_nodes = new NodeViewModel(rootNode).Children;
|
_nodes = new NodeViewModel(rootNode).Children;
|
||||||
@@ -82,6 +89,9 @@ public partial class ConfWindow : Window, INotifyPropertyChanged
|
|||||||
|
|
||||||
public static TreeNode? AddNode(IList<TreeNode> nodes, string path)
|
public static TreeNode? AddNode(IList<TreeNode> nodes, string path)
|
||||||
{
|
{
|
||||||
|
if (string.IsNullOrEmpty(path))
|
||||||
|
return null;
|
||||||
|
|
||||||
string[] parts = path.Split('/', StringSplitOptions.RemoveEmptyEntries);
|
string[] parts = path.Split('/', StringSplitOptions.RemoveEmptyEntries);
|
||||||
|
|
||||||
for (int x = 0; x < parts.Length; x++)
|
for (int x = 0; x < parts.Length; x++)
|
||||||
@@ -120,21 +130,23 @@ public partial class ConfWindow : Window, INotifyPropertyChanged
|
|||||||
|
|
||||||
void LoadSettings()
|
void LoadSettings()
|
||||||
{
|
{
|
||||||
foreach (Setting setting in Settings)
|
foreach (Setting setting in _settings)
|
||||||
{
|
{
|
||||||
setting.StartValue = setting.Value;
|
setting.StartValue = setting.Value;
|
||||||
|
|
||||||
if (!FilterStrings.Contains(setting.Directory!))
|
if (!FilterStrings.Contains(setting.Directory!))
|
||||||
FilterStrings.Add(setting.Directory!);
|
FilterStrings.Add(setting.Directory!);
|
||||||
|
|
||||||
foreach (ConfItem confItem in ConfItems)
|
foreach (ConfItem item in _confItems)
|
||||||
{
|
{
|
||||||
if (setting.Name == confItem.Name && confItem.Section == "" && !confItem.IsSectionItem)
|
if (setting.Name == item.Name &&
|
||||||
|
setting.File == item.File &&
|
||||||
|
item.Section == "" && !item.IsSectionItem)
|
||||||
{
|
{
|
||||||
setting.Value = confItem.Value.Trim('\'', '"');
|
setting.Value = item.Value;
|
||||||
setting.StartValue = setting.Value;
|
setting.StartValue = setting.Value;
|
||||||
setting.ConfItem = confItem;
|
setting.ConfItem = item;
|
||||||
confItem.SettingBase = setting;
|
item.SettingBase = setting;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -144,7 +156,10 @@ public partial class ConfWindow : Window, INotifyPropertyChanged
|
|||||||
MainStackPanel.Children.Add(new StringSettingControl(s) { Visibility = Visibility.Collapsed });
|
MainStackPanel.Children.Add(new StringSettingControl(s) { Visibility = Visibility.Collapsed });
|
||||||
break;
|
break;
|
||||||
case OptionSetting s:
|
case OptionSetting s:
|
||||||
MainStackPanel.Children.Add(new OptionSettingControl(s) { Visibility = Visibility.Collapsed });
|
if (s.Options.Count > 3)
|
||||||
|
MainStackPanel.Children.Add(new ComboBoxSettingControl(s) { Visibility = Visibility.Collapsed });
|
||||||
|
else
|
||||||
|
MainStackPanel.Children.Add(new OptionSettingControl(s) { Visibility = Visibility.Collapsed });
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -152,59 +167,7 @@ public partial class ConfWindow : Window, INotifyPropertyChanged
|
|||||||
|
|
||||||
static string GetThemeConf() => Theme.DarkMode + App.DarkTheme + App.LightTheme;
|
static string GetThemeConf() => Theme.DarkMode + App.DarkTheme + App.LightTheme;
|
||||||
|
|
||||||
protected override void OnClosed(EventArgs e)
|
string GetCompareString() => string.Join("", _settings.Select(item => item.Name + item.Value).ToArray());
|
||||||
{
|
|
||||||
base.OnClosed(e);
|
|
||||||
App.Settings.ConfigEditorSearch = SearchControl.Text;
|
|
||||||
|
|
||||||
if (InitialContent == GetCompareString())
|
|
||||||
return;
|
|
||||||
|
|
||||||
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()
|
|
||||||
{
|
|
||||||
return string.Join("", Settings.Select(item => item.Name + item.Value).ToArray());
|
|
||||||
}
|
|
||||||
|
|
||||||
void LoadConf(string file)
|
void LoadConf(string file)
|
||||||
{
|
{
|
||||||
@@ -216,31 +179,46 @@ public partial class ConfWindow : Window, INotifyPropertyChanged
|
|||||||
|
|
||||||
bool isSectionItem = false;
|
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 == "")
|
if (line == "")
|
||||||
{
|
|
||||||
comment += "\r\n";
|
comment += "\r\n";
|
||||||
}
|
|
||||||
else if (line.StartsWith("#"))
|
else if (line.StartsWith("#"))
|
||||||
{
|
|
||||||
comment += line.Trim() + "\r\n";
|
comment += line.Trim() + "\r\n";
|
||||||
}
|
else if (line.StartsWith("[") && line.Contains(']'))
|
||||||
else if (line.StartsWith("[") && line.Contains("]"))
|
|
||||||
{
|
{
|
||||||
if (!isSectionItem && comment != "" && comment != "\r\n")
|
if (!isSectionItem && comment != "" && comment != "\r\n")
|
||||||
ConfItems.Add(new ConfItem() {
|
_confItems.Add(new ConfItem() {
|
||||||
Comment = comment, File = Path.GetFileNameWithoutExtension(file)});
|
Comment = comment, File = Path.GetFileNameWithoutExtension(file)});
|
||||||
|
|
||||||
section = line.Substring(0, line.IndexOf("]") + 1);
|
section = line.Substring(0, line.IndexOf("]") + 1);
|
||||||
comment = "";
|
comment = "";
|
||||||
isSectionItem = true;
|
isSectionItem = true;
|
||||||
}
|
}
|
||||||
else if (line.Contains("="))
|
else if (line.Contains('=') || Regex.Match(line, "^[\\w-]+$").Success)
|
||||||
{
|
{
|
||||||
ConfItem item = new ConfItem();
|
if (!line.Contains('='))
|
||||||
|
{
|
||||||
|
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);
|
item.File = Path.GetFileNameWithoutExtension(file);
|
||||||
item.IsSectionItem = isSectionItem;
|
item.IsSectionItem = isSectionItem;
|
||||||
item.Comment = comment;
|
item.Comment = comment;
|
||||||
@@ -248,16 +226,22 @@ public partial class ConfWindow : Window, INotifyPropertyChanged
|
|||||||
item.Section = section;
|
item.Section = section;
|
||||||
section = "";
|
section = "";
|
||||||
|
|
||||||
if (line.Contains("#") && !line.Contains("'") && !line.Contains("\""))
|
if (line.Contains('#') && !line.Contains('\'') && !line.Contains('"'))
|
||||||
{
|
{
|
||||||
item.LineComment = line.Substring(line.IndexOf("#")).Trim();
|
item.LineComment = line.Substring(line.IndexOf("#")).Trim();
|
||||||
line = line.Substring(0, line.IndexOf("#")).Trim();
|
line = line.Substring(0, line.IndexOf("#")).Trim();
|
||||||
}
|
}
|
||||||
|
|
||||||
int pos = line.IndexOf("=");
|
int pos = line.IndexOf("=");
|
||||||
string left = line.Substring(0, pos).Trim().ToLower();
|
string left = line.Substring(0, pos).Trim().ToLower().TrimStart('-');
|
||||||
string right = line.Substring(pos + 1).Trim();
|
string right = line.Substring(pos + 1).Trim();
|
||||||
|
|
||||||
|
if (right.StartsWith('\'') && right.EndsWith('\''))
|
||||||
|
right = right.Trim('\'');
|
||||||
|
|
||||||
|
if (right.StartsWith('"') && right.EndsWith('"'))
|
||||||
|
right = right.Trim('"');
|
||||||
|
|
||||||
if (left == "fs")
|
if (left == "fs")
|
||||||
left = "fullscreen";
|
left = "fullscreen";
|
||||||
|
|
||||||
@@ -266,17 +250,79 @@ public partial class ConfWindow : Window, INotifyPropertyChanged
|
|||||||
|
|
||||||
item.Name = left;
|
item.Name = left;
|
||||||
item.Value = right;
|
item.Value = right;
|
||||||
ConfItems.Add(item);
|
_confItems.Add(item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
string GetKeyValueContent(string filename)
|
||||||
|
{
|
||||||
|
List<string> pairs = new();
|
||||||
|
|
||||||
|
foreach (Setting setting in _settings)
|
||||||
|
{
|
||||||
|
if (filename != setting.File)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if ((setting.Value ?? "") != setting.Default)
|
||||||
|
pairs.Add(setting.Name + "=" + EscapeValue(setting.Value!));
|
||||||
|
}
|
||||||
|
|
||||||
|
return string.Join(',', pairs);
|
||||||
|
}
|
||||||
|
|
||||||
|
void LoadLibplaceboConf()
|
||||||
|
{
|
||||||
|
foreach (ConfItem item in _confItems.ToArray())
|
||||||
|
if (item.Name == "libplacebo-opts")
|
||||||
|
LoadKeyValueList(item.Value, "libplacebo");
|
||||||
|
}
|
||||||
|
|
||||||
|
void LoadKeyValueList(string options, string file)
|
||||||
|
{
|
||||||
|
string[] optionStrings = options.Split(",", StringSplitOptions.RemoveEmptyEntries);
|
||||||
|
|
||||||
|
foreach (string pair in optionStrings)
|
||||||
|
{
|
||||||
|
if (!pair.Contains('='))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
int pos = pair.IndexOf("=");
|
||||||
|
string left = pair.Substring(0, pos).Trim().ToLower();
|
||||||
|
string right = pair.Substring(pos + 1).Trim();
|
||||||
|
|
||||||
|
ConfItem item = new();
|
||||||
|
item.Name = left;
|
||||||
|
item.Value = right;
|
||||||
|
item.File = file;
|
||||||
|
_confItems.Add(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
string EscapeValue(string value)
|
||||||
|
{
|
||||||
|
if (value.Contains('\''))
|
||||||
|
return '"' + value + '"';
|
||||||
|
|
||||||
|
if (value.Contains('"'))
|
||||||
|
return '\'' + value + '\'';
|
||||||
|
|
||||||
|
if (value.Contains('"') || value.Contains('#') || value.StartsWith("%") ||
|
||||||
|
value.StartsWith(" ") || value.EndsWith(" "))
|
||||||
|
{
|
||||||
|
return '\'' + value + '\'';
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
string GetContent(string filename)
|
string GetContent(string filename)
|
||||||
{
|
{
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
List<string> namesWritten = new List<string>();
|
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)
|
if (filename != item.File || item.Section != "" || item.IsSectionItem)
|
||||||
continue;
|
continue;
|
||||||
@@ -288,7 +334,7 @@ public partial class ConfWindow : Window, INotifyPropertyChanged
|
|||||||
{
|
{
|
||||||
if (item.Name != "")
|
if (item.Name != "")
|
||||||
{
|
{
|
||||||
sb.Append(item.Name + " = " + item.Value);
|
sb.Append(item.Name + equalString + EscapeValue(item.Value));
|
||||||
|
|
||||||
if (item.LineComment != "")
|
if (item.LineComment != "")
|
||||||
sb.Append(" " + item.LineComment);
|
sb.Append(" " + item.LineComment);
|
||||||
@@ -299,17 +345,7 @@ public partial class ConfWindow : Window, INotifyPropertyChanged
|
|||||||
}
|
}
|
||||||
else if ((item.SettingBase.Value ?? "") != item.SettingBase.Default)
|
else if ((item.SettingBase.Value ?? "") != item.SettingBase.Default)
|
||||||
{
|
{
|
||||||
string? value;
|
sb.Append(item.Name + equalString + EscapeValue(item.SettingBase.Value!));
|
||||||
|
|
||||||
if (item.SettingBase.Type == "string" ||
|
|
||||||
item.SettingBase.Type == "folder" ||
|
|
||||||
item.SettingBase.Type == "color")
|
|
||||||
|
|
||||||
value = "'" + item.SettingBase.Value + "'";
|
|
||||||
else
|
|
||||||
value = item.SettingBase.Value;
|
|
||||||
|
|
||||||
sb.Append(item.Name + " = " + value);
|
|
||||||
|
|
||||||
if (item.LineComment != "")
|
if (item.LineComment != "")
|
||||||
sb.Append(" " + item.LineComment);
|
sb.Append(" " + item.LineComment);
|
||||||
@@ -319,31 +355,16 @@ public partial class ConfWindow : Window, INotifyPropertyChanged
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!sb.ToString().Contains("# Editor"))
|
foreach (Setting setting in _settings)
|
||||||
sb.AppendLine("# Editor");
|
|
||||||
|
|
||||||
foreach (Setting setting in Settings)
|
|
||||||
{
|
{
|
||||||
if (filename != setting.File || namesWritten.Contains(setting.Name!))
|
if (filename != setting.File || namesWritten.Contains(setting.Name!))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if ((setting.Value ?? "") != setting.Default)
|
if ((setting.Value ?? "") != setting.Default)
|
||||||
{
|
sb.AppendLine(setting.Name + equalString + EscapeValue(setting.Value!));
|
||||||
string? value;
|
|
||||||
|
|
||||||
if (setting.Type == "string" ||
|
|
||||||
setting.Type == "folder" ||
|
|
||||||
setting.Type == "color")
|
|
||||||
|
|
||||||
value = "'" + setting.Value + "'";
|
|
||||||
else
|
|
||||||
value = setting.Value;
|
|
||||||
|
|
||||||
sb.AppendLine(setting.Name + " = " + value);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (ConfItem item in ConfItems)
|
foreach (ConfItem item in _confItems)
|
||||||
{
|
{
|
||||||
if (filename != item.File || (item.Section == "" && !item.IsSectionItem))
|
if (filename != item.File || (item.Section == "" && !item.IsSectionItem))
|
||||||
continue;
|
continue;
|
||||||
@@ -359,7 +380,7 @@ public partial class ConfWindow : Window, INotifyPropertyChanged
|
|||||||
if (item.Comment != "")
|
if (item.Comment != "")
|
||||||
sb.Append(item.Comment);
|
sb.Append(item.Comment);
|
||||||
|
|
||||||
sb.Append(item.Name + " = " + item.Value);
|
sb.Append(item.Name + equalString + EscapeValue(item.Value));
|
||||||
|
|
||||||
if (item.LineComment != "")
|
if (item.LineComment != "")
|
||||||
sb.Append(" " + item.LineComment);
|
sb.Append(" " + item.LineComment);
|
||||||
@@ -409,6 +430,47 @@ public partial class ConfWindow : Window, INotifyPropertyChanged
|
|||||||
i.Update();
|
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)
|
protected override void OnKeyDown(KeyEventArgs e)
|
||||||
{
|
{
|
||||||
base.OnKeyDown(e);
|
base.OnKeyDown(e);
|
||||||
@@ -423,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));
|
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)
|
void TreeView_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
|
||||||
@@ -443,9 +518,10 @@ public partial class ConfWindow : Window, INotifyPropertyChanged
|
|||||||
|
|
||||||
void SelectNodeFromSearchText(NodeViewModel node)
|
void SelectNodeFromSearchText(NodeViewModel node)
|
||||||
{
|
{
|
||||||
if (node.Path + ":" == SearchControl.Text)
|
if (node.Path + ":" == SearchText)
|
||||||
{
|
{
|
||||||
node.IsSelected = true;
|
node.IsSelected = true;
|
||||||
|
node.IsExpanded = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -462,15 +538,7 @@ public partial class ConfWindow : Window, INotifyPropertyChanged
|
|||||||
UnselectNode(it);
|
UnselectNode(it);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ExpandNode(NodeViewModel node)
|
[RelayCommand] void ShowMpvNetSpecificSettings() => SearchText = "mpv.net";
|
||||||
{
|
|
||||||
node.IsExpanded = true;
|
|
||||||
|
|
||||||
foreach (var it in node.Children)
|
|
||||||
ExpandNode(it);
|
|
||||||
}
|
|
||||||
|
|
||||||
[RelayCommand] void ShowMpvNetSpecificSettings() => SearchControl.Text = "mpv.net";
|
|
||||||
|
|
||||||
[RelayCommand] void PreviewMpvConfFile() => Msg.ShowInfo(GetContent("mpv"));
|
[RelayCommand] void PreviewMpvConfFile() => Msg.ShowInfo(GetContent("mpv"));
|
||||||
|
|
||||||
|
|||||||
72
src/MpvNet.Windows/WPF/Controls/ComboBoxSettingControl.xaml
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
<UserControl
|
||||||
|
x:Name="ComboBoxSettingControl1"
|
||||||
|
x:Class="MpvNet.Windows.WPF.ComboBoxSettingControl"
|
||||||
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
|
xmlns:local="clr-namespace:MpvNet.Windows.WPF"
|
||||||
|
mc:Ignorable="d"
|
||||||
|
|
||||||
|
d:DesignHeight="450"
|
||||||
|
d:DesignWidth="800">
|
||||||
|
|
||||||
|
<Grid Margin="20,0">
|
||||||
|
<StackPanel>
|
||||||
|
<TextBox
|
||||||
|
x:Name="TitleTextBox"
|
||||||
|
FontSize="24"
|
||||||
|
Margin="0,10"
|
||||||
|
BorderThickness="0"
|
||||||
|
IsReadOnly="True"
|
||||||
|
Foreground="{Binding Theme.Heading}"
|
||||||
|
Background="{Binding Theme.Background}"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<ComboBox
|
||||||
|
Name="ComboBoxControl"
|
||||||
|
Width="200"
|
||||||
|
HorizontalAlignment="Left"
|
||||||
|
MaxDropDownHeight="2000"
|
||||||
|
Foreground="{Binding Theme.Foreground}"
|
||||||
|
Background="{Binding Theme.Background}"
|
||||||
|
|
||||||
|
SelectionChanged="ComboBoxControl_SelectionChanged"
|
||||||
|
>
|
||||||
|
<ComboBox.ItemTemplateSelector>
|
||||||
|
<local:ComboBoxTemplateSelector/>
|
||||||
|
</ComboBox.ItemTemplateSelector>
|
||||||
|
|
||||||
|
<ComboBox.ItemContainerStyle>
|
||||||
|
<Style TargetType="ComboBoxItem">
|
||||||
|
<Style.Resources>
|
||||||
|
<Style TargetType="Border">
|
||||||
|
<Setter Property="CornerRadius" Value="3"/>
|
||||||
|
</Style>
|
||||||
|
</Style.Resources>
|
||||||
|
</Style>
|
||||||
|
</ComboBox.ItemContainerStyle>
|
||||||
|
</ComboBox>
|
||||||
|
|
||||||
|
<TextBox
|
||||||
|
x:Name="HelpTextBox"
|
||||||
|
TextWrapping="WrapWithOverflow"
|
||||||
|
BorderThickness="0"
|
||||||
|
IsReadOnly="True"
|
||||||
|
Margin="0,10,0,0"
|
||||||
|
Foreground="{Binding Theme.Foreground}"
|
||||||
|
Background="{Binding Theme.Background}"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<TextBlock
|
||||||
|
x:Name="LinkTextBlock"
|
||||||
|
Margin="2,0"
|
||||||
|
>
|
||||||
|
<local:HyperlinkEx
|
||||||
|
x:Name="Link"
|
||||||
|
Foreground="{Binding Theme.Heading}"
|
||||||
|
/>
|
||||||
|
</TextBlock>
|
||||||
|
</StackPanel>
|
||||||
|
</Grid>
|
||||||
|
</UserControl>
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
|
||||||
|
using System.Windows;
|
||||||
|
using System.Windows.Controls;
|
||||||
|
|
||||||
|
using MpvNet.Windows.UI;
|
||||||
|
|
||||||
|
namespace MpvNet.Windows.WPF;
|
||||||
|
|
||||||
|
public partial class ComboBoxSettingControl : UserControl, ISettingControl
|
||||||
|
{
|
||||||
|
OptionSetting OptionSetting;
|
||||||
|
|
||||||
|
public ComboBoxSettingControl(OptionSetting optionSetting)
|
||||||
|
{
|
||||||
|
OptionSetting = optionSetting;
|
||||||
|
InitializeComponent();
|
||||||
|
DataContext = this;
|
||||||
|
TitleTextBox.Text = optionSetting.Name;
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(optionSetting.Help))
|
||||||
|
HelpTextBox.Visibility = Visibility.Collapsed;
|
||||||
|
|
||||||
|
HelpTextBox.Text = optionSetting.Help;
|
||||||
|
ComboBoxControl.ItemsSource = optionSetting.Options;
|
||||||
|
|
||||||
|
foreach (var item in optionSetting.Options)
|
||||||
|
if (item.Name == optionSetting.Value)
|
||||||
|
ComboBoxControl.SelectedItem = item;
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(optionSetting.URL))
|
||||||
|
LinkTextBlock.Visibility = Visibility.Collapsed;
|
||||||
|
|
||||||
|
Link.SetURL(optionSetting.URL);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Theme? Theme => Theme.Current;
|
||||||
|
|
||||||
|
public Setting Setting => OptionSetting;
|
||||||
|
|
||||||
|
public bool Contains(string searchString) => ContainsInternal(searchString.ToLower());
|
||||||
|
|
||||||
|
public bool ContainsInternal(string search)
|
||||||
|
{
|
||||||
|
if (TitleTextBox.Text.IndexOf(search, StringComparison.InvariantCultureIgnoreCase) > -1)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
if (HelpTextBox.Text.IndexOf(search, StringComparison.InvariantCultureIgnoreCase) > -1)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
foreach (var i in OptionSetting.Options)
|
||||||
|
{
|
||||||
|
if (i.Text?.IndexOf(search, StringComparison.InvariantCultureIgnoreCase) > -1)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
if (i.Help?.IndexOf(search, StringComparison.InvariantCultureIgnoreCase) > -1)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
if (i.Name?.IndexOf(search, StringComparison.InvariantCultureIgnoreCase) > -1)
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ComboBoxControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
||||||
|
{
|
||||||
|
OptionSetting.Value = (ComboBoxControl.SelectedItem as OptionSettingOption)?.Name;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -4,7 +4,6 @@ using System.Windows.Navigation;
|
|||||||
|
|
||||||
using MpvNet.Help;
|
using MpvNet.Help;
|
||||||
|
|
||||||
// TODO: change namespace to MpvNet.Windows.WPF.Controls
|
|
||||||
namespace MpvNet.Windows.WPF;
|
namespace MpvNet.Windows.WPF;
|
||||||
|
|
||||||
public class HyperlinkEx : Hyperlink
|
public class HyperlinkEx : Hyperlink
|
||||||
@@ -20,6 +19,6 @@ public class HyperlinkEx : Hyperlink
|
|||||||
NavigateUri = new Uri(url);
|
NavigateUri = new Uri(url);
|
||||||
RequestNavigate += HyperLinkEx_RequestNavigate;
|
RequestNavigate += HyperLinkEx_RequestNavigate;
|
||||||
Inlines.Clear();
|
Inlines.Clear();
|
||||||
Inlines.Add(url);
|
Inlines.Add("Manual");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -66,8 +66,14 @@
|
|||||||
Background="{Binding Theme.Background}"
|
Background="{Binding Theme.Background}"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<TextBlock x:Name="LinkTextBlock" Margin="0,10">
|
<TextBlock
|
||||||
<local:HyperlinkEx x:Name="Link"></local:HyperlinkEx>
|
x:Name="LinkTextBlock"
|
||||||
|
Margin="2,0,0,0"
|
||||||
|
>
|
||||||
|
<local:HyperlinkEx
|
||||||
|
x:Name="Link"
|
||||||
|
Foreground="{Binding Theme.Heading}"
|
||||||
|
/>
|
||||||
</TextBlock>
|
</TextBlock>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|||||||
@@ -21,6 +21,10 @@ public partial class OptionSettingControl : UserControl, ISettingControl
|
|||||||
HelpTextBox.Visibility = Visibility.Collapsed;
|
HelpTextBox.Visibility = Visibility.Collapsed;
|
||||||
|
|
||||||
HelpTextBox.Text = optionSetting.Help;
|
HelpTextBox.Text = optionSetting.Help;
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(optionSetting.Help))
|
||||||
|
LinkTextBlock.Margin = new Thickness(2, 6, 0, 0);
|
||||||
|
|
||||||
ItemsControl.ItemsSource = optionSetting.Options;
|
ItemsControl.ItemsSource = optionSetting.Options;
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(optionSetting.URL))
|
if (string.IsNullOrEmpty(optionSetting.URL))
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
Name="SearchTextBox"
|
Name="SearchTextBox"
|
||||||
Height="25"
|
Height="25"
|
||||||
BorderThickness="2"
|
BorderThickness="2"
|
||||||
Padding="2"
|
Padding="2,2,20,2"
|
||||||
Background="Transparent"
|
Background="Transparent"
|
||||||
Foreground="{Binding Theme.Foreground}"
|
Foreground="{Binding Theme.Foreground}"
|
||||||
CaretBrush="{Binding Theme.Foreground}"
|
CaretBrush="{Binding Theme.Foreground}"
|
||||||
|
|||||||
@@ -39,10 +39,16 @@ public partial class SearchControl : UserControl
|
|||||||
{
|
{
|
||||||
HintTextBlock.Text = string.IsNullOrEmpty(Text) ? HintText : "";
|
HintTextBlock.Text = string.IsNullOrEmpty(Text) ? HintText : "";
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(Text) || HideClearButton)
|
if (string.IsNullOrEmpty(Text) || HideClearButton || Text.Length > 30)
|
||||||
|
{
|
||||||
|
SearchTextBox.Padding = new Thickness(2);
|
||||||
SearchClearButton.Visibility = Visibility.Hidden;
|
SearchClearButton.Visibility = Visibility.Hidden;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
SearchTextBox.Padding = new Thickness(2, 2, 20, 2);
|
||||||
SearchClearButton.Visibility = Visibility.Visible;
|
SearchClearButton.Visibility = Visibility.Visible;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public string Text
|
public string Text
|
||||||
|
|||||||
@@ -60,8 +60,14 @@
|
|||||||
Background="{Binding Theme.Background}"
|
Background="{Binding Theme.Background}"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<TextBlock x:Name="LinkTextBlock" Margin="0,10">
|
<TextBlock
|
||||||
<local:HyperlinkEx x:Name="Link"></local:HyperlinkEx>
|
x:Name="LinkTextBlock"
|
||||||
|
Margin="2,0"
|
||||||
|
>
|
||||||
|
<local:HyperlinkEx
|
||||||
|
x:Name="Link"
|
||||||
|
Foreground="{Binding Theme.Heading}"
|
||||||
|
/>
|
||||||
</TextBlock>
|
</TextBlock>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|||||||
@@ -33,6 +33,9 @@ public partial class StringSettingControl : UserControl, ISettingControl
|
|||||||
|
|
||||||
if (string.IsNullOrEmpty(stringSetting.URL))
|
if (string.IsNullOrEmpty(stringSetting.URL))
|
||||||
LinkTextBlock.Visibility = Visibility.Collapsed;
|
LinkTextBlock.Visibility = Visibility.Collapsed;
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(stringSetting.Help))
|
||||||
|
HelpTextBox.Visibility = Visibility.Collapsed;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Theme? Theme => Theme.Current;
|
public Theme? Theme => Theme.Current;
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ using System.Windows;
|
|||||||
|
|
||||||
namespace HandyControl.Tools.Interop
|
namespace HandyControl.Tools.Interop
|
||||||
{
|
{
|
||||||
internal class InteropValues
|
public class InteropValues
|
||||||
{
|
{
|
||||||
internal static class ExternDll
|
internal static class ExternDll
|
||||||
{
|
{
|
||||||
@@ -290,7 +290,7 @@ namespace HandyControl.Tools.Interop
|
|||||||
}
|
}
|
||||||
|
|
||||||
[StructLayout(LayoutKind.Sequential)]
|
[StructLayout(LayoutKind.Sequential)]
|
||||||
internal class WINDOWPOS
|
public class WINDOWPOS
|
||||||
{
|
{
|
||||||
public IntPtr hwnd;
|
public IntPtr hwnd;
|
||||||
public IntPtr hwndInsertAfter;
|
public IntPtr hwndInsertAfter;
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ public partial class InputWindow : Window
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
newContent = InputHelp.ConvertToString(InputHelp.GetReducedBindings(Bindings));
|
newContent = InputHelp.ConvertToString(InputHelp.GetReducedBindings(Bindings));
|
||||||
newContent = newContent.Replace("#menu: ", "# ");
|
newContent = newContent.Replace(App.MenuSyntax + " ", "# ");
|
||||||
File.WriteAllText(App.InputConf.Path, App.InputConf.Content = newContent);
|
File.WriteAllText(App.InputConf.Path, App.InputConf.Content = newContent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -122,39 +122,67 @@
|
|||||||
<Border x:Name="stackButtons" Grid.Row="3" Padding="10"
|
<Border x:Name="stackButtons" Grid.Row="3" Padding="10"
|
||||||
Background="{Binding Path=ButtonBackground}" >
|
Background="{Binding Path=ButtonBackground}" >
|
||||||
<StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Center" >
|
<StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Center" >
|
||||||
<Button x:Name="btnOK" Content=" OK " MinWidth="75" Margin="5,0,5,0"
|
<Button x:Name="btnOK"
|
||||||
|
Content=" OK "
|
||||||
|
MinWidth="75"
|
||||||
|
Margin="5,0,5,0"
|
||||||
Width="{Binding Path=ButtonWidth}"
|
Width="{Binding Path=ButtonWidth}"
|
||||||
Height="25"
|
Height="25"
|
||||||
|
MinHeight="25"
|
||||||
Visibility="{Binding Path=ShowOk}"
|
Visibility="{Binding Path=ShowOk}"
|
||||||
IsDefault="{Binding Path=IsDefaultOK}"
|
IsDefault="{Binding Path=IsDefaultOK}"
|
||||||
Click="BtnOK_Click" />
|
Click="BtnOK_Click" />
|
||||||
<Button x:Name="btnYes" Content=" Yes " MinWidth="75" Margin="5,0,5,0"
|
<Button x:Name="btnYes"
|
||||||
|
Content=" Yes "
|
||||||
Width="{Binding Path=ButtonWidth}"
|
Width="{Binding Path=ButtonWidth}"
|
||||||
|
MinWidth="75"
|
||||||
|
MinHeight="25"
|
||||||
|
Margin="5,0,5,0"
|
||||||
Visibility="{Binding Path=ShowYes}"
|
Visibility="{Binding Path=ShowYes}"
|
||||||
IsDefault="{Binding Path=IsDefaultYes}"
|
IsDefault="{Binding Path=IsDefaultYes}"
|
||||||
Click="BtnYes_Click"/>
|
Click="BtnYes_Click"/>
|
||||||
<Button x:Name="btnNo" Content=" No " MinWidth="75" Margin="5,0,5,0"
|
<Button x:Name="btnNo"
|
||||||
|
Content=" No "
|
||||||
Width="{Binding Path=ButtonWidth}"
|
Width="{Binding Path=ButtonWidth}"
|
||||||
|
MinWidth="75"
|
||||||
|
MinHeight="25"
|
||||||
|
Margin="5,0,5,0"
|
||||||
Visibility="{Binding Path=ShowNo}"
|
Visibility="{Binding Path=ShowNo}"
|
||||||
IsDefault="{Binding Path=IsDefaultNo}"
|
IsDefault="{Binding Path=IsDefaultNo}"
|
||||||
Click="BtnNo_Click"/>
|
Click="BtnNo_Click"/>
|
||||||
<Button x:Name="btnAbort" Content=" Abort " MinWidth="75" Margin="5,0,5,0"
|
<Button x:Name="btnAbort"
|
||||||
|
Content=" Abort "
|
||||||
Width="{Binding Path=ButtonWidth}"
|
Width="{Binding Path=ButtonWidth}"
|
||||||
|
MinWidth="75"
|
||||||
|
MinHeight="25"
|
||||||
|
Margin="5,0,5,0"
|
||||||
Visibility="{Binding Path=ShowAbort}"
|
Visibility="{Binding Path=ShowAbort}"
|
||||||
IsDefault="{Binding Path=IsDefaultAbort}"
|
IsDefault="{Binding Path=IsDefaultAbort}"
|
||||||
Click="BtnAbort_Click"/>
|
Click="BtnAbort_Click"/>
|
||||||
<Button x:Name="btnRetry" Content=" Retry " MinWidth="75" Margin="5,0,5,0"
|
<Button x:Name="btnRetry"
|
||||||
|
Content=" Retry "
|
||||||
Width="{Binding Path=ButtonWidth}"
|
Width="{Binding Path=ButtonWidth}"
|
||||||
|
MinWidth="75"
|
||||||
|
MinHeight="25"
|
||||||
|
Margin="5,0,5,0"
|
||||||
Visibility="{Binding Path=ShowRetry}"
|
Visibility="{Binding Path=ShowRetry}"
|
||||||
IsDefault="{Binding Path=IsDefaultRetry}"
|
IsDefault="{Binding Path=IsDefaultRetry}"
|
||||||
Click="BtnRetry_Click"/>
|
Click="BtnRetry_Click"/>
|
||||||
<Button x:Name="btnIgnore" Content=" Ignore " MinWidth="75" Margin="5,0,5,0"
|
<Button x:Name="btnIgnore"
|
||||||
|
Content=" Ignore "
|
||||||
Width="{Binding Path=ButtonWidth}"
|
Width="{Binding Path=ButtonWidth}"
|
||||||
|
MinWidth="75"
|
||||||
|
MinHeight="25"
|
||||||
|
Margin="5,0,5,0"
|
||||||
Visibility="{Binding Path=ShowIgnore}"
|
Visibility="{Binding Path=ShowIgnore}"
|
||||||
IsDefault="{Binding Path=IsDefaultIgnore}"
|
IsDefault="{Binding Path=IsDefaultIgnore}"
|
||||||
Click="BtnIgnore_Click"/>
|
Click="BtnIgnore_Click"/>
|
||||||
<Button x:Name="btnCancel" Content=" Cancel " MinWidth="75" Margin="5,0,5,0"
|
<Button x:Name="btnCancel"
|
||||||
|
Content=" Cancel "
|
||||||
Width="{Binding Path=ButtonWidth}"
|
Width="{Binding Path=ButtonWidth}"
|
||||||
|
MinWidth="75"
|
||||||
|
MinHeight="25"
|
||||||
|
Margin="5,0,5,0"
|
||||||
Visibility="{Binding Path=ShowCancel}"
|
Visibility="{Binding Path=ShowCancel}"
|
||||||
IsDefault="{Binding Path=IsDefaultCancel}"
|
IsDefault="{Binding Path=IsDefaultCancel}"
|
||||||
Click="BtnCancel_Click"/>
|
Click="BtnCancel_Click"/>
|
||||||
|
|||||||
@@ -96,13 +96,13 @@ public partial class MessageBoxEx : Window, INotifyPropertyChanged
|
|||||||
|
|
||||||
public static void SetOwner(Window window)
|
public static void SetOwner(Window window)
|
||||||
{
|
{
|
||||||
IntPtr ownerHandle = GetOwnerHandle();
|
IntPtr parentHandle = GetParentHandle();
|
||||||
|
|
||||||
if (ownerHandle != IntPtr.Zero)
|
if (parentHandle != IntPtr.Zero)
|
||||||
new WindowInteropHelper(window).Owner = ownerHandle;
|
new WindowInteropHelper(window).Owner = parentHandle;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IntPtr GetOwnerHandle()
|
public static IntPtr GetParentHandle()
|
||||||
{
|
{
|
||||||
IntPtr foregroundWindow = GetForegroundWindow();
|
IntPtr foregroundWindow = GetForegroundWindow();
|
||||||
GetWindowThreadProcessId(foregroundWindow, out var procID);
|
GetWindowThreadProcessId(foregroundWindow, out var procID);
|
||||||
|
|||||||
@@ -6,6 +6,183 @@
|
|||||||
xmlns:local="clr-namespace:MpvNet.Windows.WPF"
|
xmlns:local="clr-namespace:MpvNet.Windows.WPF"
|
||||||
>
|
>
|
||||||
|
|
||||||
|
<DataTemplate x:Key="ComboBoxCollapsedDataTemplate" >
|
||||||
|
<TextBlock Text="{Binding Text}"/>
|
||||||
|
</DataTemplate>
|
||||||
|
|
||||||
|
<DataTemplate x:Key="ComboBoxExpandedDataTemplate" >
|
||||||
|
<StackPanel Orientation="Horizontal" VerticalAlignment="Bottom">
|
||||||
|
<Border>
|
||||||
|
<TextBlock
|
||||||
|
Text="{Binding Text}"
|
||||||
|
Width="{Binding Width}"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
TextWrapping="Wrap"
|
||||||
|
/>
|
||||||
|
</Border>
|
||||||
|
<Border>
|
||||||
|
<TextBlock
|
||||||
|
Text="{Binding Help}"
|
||||||
|
MaxWidth="400"
|
||||||
|
Padding="0,3"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
TextWrapping="Wrap"
|
||||||
|
/>
|
||||||
|
</Border>
|
||||||
|
</StackPanel>
|
||||||
|
</DataTemplate>
|
||||||
|
|
||||||
|
<Style x:Key="ComboBoxToggleButton" TargetType="ToggleButton">
|
||||||
|
<Setter Property="Template">
|
||||||
|
<Setter.Value>
|
||||||
|
<ControlTemplate TargetType="ToggleButton">
|
||||||
|
<Grid>
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition />
|
||||||
|
<ColumnDefinition Width="32" />
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<Border
|
||||||
|
x:Name="Border"
|
||||||
|
Grid.ColumnSpan="2"
|
||||||
|
CornerRadius="3"
|
||||||
|
Background="{TemplateBinding Background}"
|
||||||
|
BorderBrush="{TemplateBinding BorderBrush}"
|
||||||
|
BorderThickness="1"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<Path
|
||||||
|
x:Name="Arrow"
|
||||||
|
Grid.Column="1"
|
||||||
|
HorizontalAlignment="Center"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
Data="M 1,1.5 L 4.5,5 L 8,1.5"
|
||||||
|
SnapsToDevicePixels="false"
|
||||||
|
Stroke="{TemplateBinding Foreground}"
|
||||||
|
StrokeThickness="1.5"
|
||||||
|
/>
|
||||||
|
</Grid>
|
||||||
|
</ControlTemplate>
|
||||||
|
</Setter.Value>
|
||||||
|
</Setter>
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<ControlTemplate x:Key="ComboBoxTextBox" TargetType="TextBox">
|
||||||
|
<Border x:Name="PART_ContentHost" Focusable="True" />
|
||||||
|
</ControlTemplate>
|
||||||
|
|
||||||
|
<Style TargetType="{x:Type ComboBox}">
|
||||||
|
<Setter Property="Foreground" Value="#333" />
|
||||||
|
<Setter Property="BorderBrush" Value="{DynamicResource PrimaryTextBrush}" />
|
||||||
|
<Setter Property="SnapsToDevicePixels" Value="true"/>
|
||||||
|
<Setter Property="OverridesDefaultStyle" Value="true"/>
|
||||||
|
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto"/>
|
||||||
|
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
|
||||||
|
<Setter Property="ScrollViewer.CanContentScroll" Value="true"/>
|
||||||
|
<Setter Property="FontSize" Value="13" />
|
||||||
|
<Setter Property="MinWidth" Value="150"/>
|
||||||
|
<Setter Property="MinHeight" Value="25"/>
|
||||||
|
<Setter Property="Template">
|
||||||
|
<Setter.Value>
|
||||||
|
<ControlTemplate TargetType="ComboBox">
|
||||||
|
<Grid>
|
||||||
|
<ToggleButton
|
||||||
|
Cursor="Hand"
|
||||||
|
Name="ToggleButton"
|
||||||
|
BorderBrush="{TemplateBinding BorderBrush}"
|
||||||
|
Background="{TemplateBinding Background}"
|
||||||
|
Foreground="{TemplateBinding Foreground}"
|
||||||
|
Style="{StaticResource ComboBoxToggleButton}"
|
||||||
|
Grid.Column="2"
|
||||||
|
Focusable="false"
|
||||||
|
IsChecked="{Binding Path=IsDropDownOpen,Mode=TwoWay,RelativeSource={RelativeSource TemplatedParent}}"
|
||||||
|
ClickMode="Press"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<ContentPresenter
|
||||||
|
Name="ContentSite"
|
||||||
|
IsHitTestVisible="False"
|
||||||
|
Content="{TemplateBinding SelectionBoxItem}"
|
||||||
|
ContentTemplate="{TemplateBinding SelectionBoxItemTemplate}"
|
||||||
|
ContentTemplateSelector="{TemplateBinding ItemTemplateSelector}"
|
||||||
|
Margin="10,3,30,3"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
HorizontalAlignment="Left"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<TextBox
|
||||||
|
x:Name="PART_EditableTextBox"
|
||||||
|
Style="{x:Null}"
|
||||||
|
Template="{StaticResource ComboBoxTextBox}"
|
||||||
|
HorizontalAlignment="Left"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
Margin="3,3,23,3"
|
||||||
|
Focusable="True"
|
||||||
|
Visibility="Hidden"
|
||||||
|
IsReadOnly="{TemplateBinding IsReadOnly}"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<Popup
|
||||||
|
Name="Popup"
|
||||||
|
Placement="Bottom"
|
||||||
|
IsOpen="{TemplateBinding IsDropDownOpen}"
|
||||||
|
AllowsTransparency="True"
|
||||||
|
Focusable="False"
|
||||||
|
PopupAnimation="Slide"
|
||||||
|
>
|
||||||
|
|
||||||
|
<Grid
|
||||||
|
Name="DropDown"
|
||||||
|
SnapsToDevicePixels="True"
|
||||||
|
MinWidth="{TemplateBinding ActualWidth}"
|
||||||
|
MaxHeight="{TemplateBinding MaxDropDownHeight}"
|
||||||
|
>
|
||||||
|
|
||||||
|
<Border
|
||||||
|
CornerRadius="3"
|
||||||
|
x:Name="DropDownBorder"
|
||||||
|
Background="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ComboBox}}, Path=Background}"
|
||||||
|
BorderBrush="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ComboBox}}, Path=Foreground}"
|
||||||
|
BorderThickness="1"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<ScrollViewer Margin="4,6,4,6" SnapsToDevicePixels="True">
|
||||||
|
<StackPanel
|
||||||
|
IsItemsHost="True"
|
||||||
|
KeyboardNavigation.DirectionalNavigation="Contained" />
|
||||||
|
</ScrollViewer>
|
||||||
|
</Grid>
|
||||||
|
</Popup>
|
||||||
|
|
||||||
|
</Grid>
|
||||||
|
<ControlTemplate.Triggers>
|
||||||
|
<Trigger Property="HasItems" Value="false">
|
||||||
|
<Setter TargetName="DropDownBorder" Property="MinHeight" Value="95"/>
|
||||||
|
</Trigger>
|
||||||
|
<Trigger Property="IsGrouping" Value="true">
|
||||||
|
<Setter Property="ScrollViewer.CanContentScroll" Value="false"/>
|
||||||
|
</Trigger>
|
||||||
|
<Trigger Property="IsEditable" Value="true">
|
||||||
|
<Setter Property="IsTabStop" Value="false"/>
|
||||||
|
<Setter TargetName="PART_EditableTextBox" Property="Visibility" Value="Visible"/>
|
||||||
|
<Setter TargetName="ContentSite" Property="Visibility" Value="Hidden"/>
|
||||||
|
</Trigger>
|
||||||
|
</ControlTemplate.Triggers>
|
||||||
|
</ControlTemplate>
|
||||||
|
</Setter.Value>
|
||||||
|
</Setter>
|
||||||
|
<Style.Triggers>
|
||||||
|
<Trigger Property="IsEnabled" Value="false">
|
||||||
|
<Setter Property="Opacity" Value="0.56"/>
|
||||||
|
</Trigger>
|
||||||
|
<Trigger Property="IsMouseOver" Value="true">
|
||||||
|
<Setter Property="BorderBrush" Value="#FF7EB4EA"/>
|
||||||
|
</Trigger>
|
||||||
|
<Trigger Property="IsFocused" Value="true">
|
||||||
|
<Setter Property="BorderBrush" Value="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}, Path=DataContext.Theme.Heading}"/>
|
||||||
|
</Trigger>
|
||||||
|
</Style.Triggers>
|
||||||
|
</Style>
|
||||||
|
|
||||||
<Style TargetType="local:HyperlinkEx">
|
<Style TargetType="local:HyperlinkEx">
|
||||||
<Style.Triggers>
|
<Style.Triggers>
|
||||||
<Trigger Property="IsMouseOver" Value="True">
|
<Trigger Property="IsMouseOver" Value="True">
|
||||||
@@ -53,20 +230,23 @@
|
|||||||
</Style>
|
</Style>
|
||||||
|
|
||||||
<Style TargetType="TextBox">
|
<Style TargetType="TextBox">
|
||||||
|
<Setter Property="MinHeight" Value="25" />
|
||||||
<Setter Property="Template">
|
<Setter Property="Template">
|
||||||
<Setter.Value>
|
<Setter.Value>
|
||||||
<ControlTemplate TargetType="{x:Type TextBox}">
|
<ControlTemplate TargetType="{x:Type TextBox}">
|
||||||
<Border x:Name="border"
|
<Border
|
||||||
BorderBrush="{DynamicResource PrimaryTextBrush}"
|
x:Name="border"
|
||||||
BorderThickness="{TemplateBinding BorderThickness}"
|
BorderBrush="{DynamicResource PrimaryTextBrush}"
|
||||||
Background="{TemplateBinding Background}"
|
BorderThickness="{TemplateBinding BorderThickness}"
|
||||||
CornerRadius="3"
|
Background="{TemplateBinding Background}"
|
||||||
SnapsToDevicePixels="True">
|
CornerRadius="3"
|
||||||
|
SnapsToDevicePixels="True">
|
||||||
|
|
||||||
<ScrollViewer x:Name="PART_ContentHost"
|
<ScrollViewer
|
||||||
Focusable="false"
|
x:Name="PART_ContentHost"
|
||||||
HorizontalScrollBarVisibility="Hidden"
|
Focusable="false"
|
||||||
VerticalScrollBarVisibility="Hidden"/>
|
HorizontalScrollBarVisibility="Hidden"
|
||||||
|
VerticalScrollBarVisibility="Hidden"/>
|
||||||
</Border>
|
</Border>
|
||||||
|
|
||||||
<ControlTemplate.Triggers>
|
<ControlTemplate.Triggers>
|
||||||
|
|||||||
@@ -7,10 +7,18 @@ namespace MpvNet.Windows.WPF;
|
|||||||
|
|
||||||
public class WpfTranslator : ITranslator
|
public class WpfTranslator : ITranslator
|
||||||
{
|
{
|
||||||
|
string _localizerLangauge = "";
|
||||||
|
|
||||||
static Language[] Languages { get; } = new Language[] {
|
static Language[] Languages { get; } = new Language[] {
|
||||||
new("english", "en", "en"),
|
new("english", "en", "en"),
|
||||||
new("chinese-china", "zh-CN", "zh"), // Chinese (Simplified)
|
new("chinese-china", "zh-CN", "zh"), // Chinese (Simplified)
|
||||||
|
new("french", "fr", "fr"),
|
||||||
new("german", "de", "de"),
|
new("german", "de", "de"),
|
||||||
|
new("japanese", "ja", "ja"),
|
||||||
|
new("korean", "ko", "ko"),
|
||||||
|
new("polish", "pl", "pl"),
|
||||||
|
new("russian", "ru", "ru"),
|
||||||
|
new("turkish", "tr", "tr"),
|
||||||
};
|
};
|
||||||
|
|
||||||
public string Gettext(string msgId)
|
public string Gettext(string msgId)
|
||||||
@@ -19,10 +27,19 @@ public class WpfTranslator : ITranslator
|
|||||||
return Translation._(msgId);
|
return Translation._(msgId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string GetParticularString(string context, string text)
|
||||||
|
{
|
||||||
|
InitNGettextWpf();
|
||||||
|
return Translation.GetParticularString(context, text);
|
||||||
|
}
|
||||||
|
|
||||||
void InitNGettextWpf()
|
void InitNGettextWpf()
|
||||||
{
|
{
|
||||||
if (Translation.Localizer == null)
|
if (Translation.Localizer == null || _localizerLangauge != App.Language)
|
||||||
|
{
|
||||||
CompositionRoot.Compose("mpvnet", GetCulture(App.Language), Folder.Startup + "Locale");
|
CompositionRoot.Compose("mpvnet", GetCulture(App.Language), Folder.Startup + "Locale");
|
||||||
|
_localizerLangauge = App.Language;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
string GetSystemLanguage()
|
string GetSystemLanguage()
|
||||||
|
|||||||
39
src/MpvNet.Windows/WinForms/MainForm.Designer.cs
generated
@@ -29,36 +29,35 @@ partial class MainForm
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
void InitializeComponent()
|
void InitializeComponent()
|
||||||
{
|
{
|
||||||
this.components = new System.ComponentModel.Container();
|
components = new System.ComponentModel.Container();
|
||||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
|
||||||
this.CursorTimer = new System.Windows.Forms.Timer(this.components);
|
CursorTimer = new System.Windows.Forms.Timer(components);
|
||||||
this.ProgressTimer = new System.Windows.Forms.Timer(this.components);
|
ProgressTimer = new System.Windows.Forms.Timer(components);
|
||||||
this.SuspendLayout();
|
SuspendLayout();
|
||||||
//
|
//
|
||||||
// CursorTimer
|
// CursorTimer
|
||||||
//
|
//
|
||||||
this.CursorTimer.Enabled = true;
|
CursorTimer.Enabled = true;
|
||||||
this.CursorTimer.Interval = 1000;
|
CursorTimer.Interval = 500;
|
||||||
this.CursorTimer.Tick += new System.EventHandler(this.CursorTimer_Tick);
|
CursorTimer.Tick += CursorTimer_Tick;
|
||||||
//
|
//
|
||||||
// ProgressTimer
|
// ProgressTimer
|
||||||
//
|
//
|
||||||
this.ProgressTimer.Tick += new System.EventHandler(this.ProgressTimer_Tick);
|
ProgressTimer.Tick += ProgressTimer_Tick;
|
||||||
//
|
//
|
||||||
// MainForm
|
// MainForm
|
||||||
//
|
//
|
||||||
this.AllowDrop = true;
|
AllowDrop = true;
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(288F, 288F);
|
AutoScaleDimensions = new System.Drawing.SizeF(288F, 288F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||||
this.BackColor = System.Drawing.Color.Black;
|
BackColor = System.Drawing.Color.Black;
|
||||||
this.ClientSize = new System.Drawing.Size(857, 444);
|
ClientSize = new System.Drawing.Size(1243, 720);
|
||||||
this.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
||||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
Icon = (System.Drawing.Icon)resources.GetObject("$this.Icon");
|
||||||
this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
|
Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
|
||||||
this.Name = "MainForm";
|
Name = "MainForm";
|
||||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||||
this.ResumeLayout(false);
|
ResumeLayout(false);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ using System.Runtime.InteropServices;
|
|||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using System.Windows.Threading;
|
using System.Windows.Threading;
|
||||||
using System.Windows.Forms.Integration;
|
using System.Text.RegularExpressions;
|
||||||
|
|
||||||
using MpvNet.Windows.WPF;
|
using MpvNet.Windows.WPF;
|
||||||
using MpvNet.Windows.UI;
|
using MpvNet.Windows.UI;
|
||||||
@@ -18,7 +18,7 @@ using WpfControls = System.Windows.Controls;
|
|||||||
using CommunityToolkit.Mvvm.Messaging;
|
using CommunityToolkit.Mvvm.Messaging;
|
||||||
|
|
||||||
using static MpvNet.Windows.Native.WinApi;
|
using static MpvNet.Windows.Native.WinApi;
|
||||||
using MpvNet.Windows.Help;
|
using static MpvNet.Windows.Help.WinApiHelp;
|
||||||
|
|
||||||
namespace MpvNet.Windows.WinForms;
|
namespace MpvNet.Windows.WinForms;
|
||||||
|
|
||||||
@@ -26,8 +26,6 @@ public partial class MainForm : Form
|
|||||||
{
|
{
|
||||||
public SnapManager SnapManager = new SnapManager();
|
public SnapManager SnapManager = new SnapManager();
|
||||||
public IntPtr MpvWindowHandle { get; set; }
|
public IntPtr MpvWindowHandle { get; set; }
|
||||||
public ElementHost? CommandPaletteHost { get; set; }
|
|
||||||
public Dictionary<string, WpfControls.MenuItem> MenuItemDuplicate = new Dictionary<string, WpfControls.MenuItem>();
|
|
||||||
public bool WasShown { get; set; }
|
public bool WasShown { get; set; }
|
||||||
public static MainForm? Instance { get; set; }
|
public static MainForm? Instance { get; set; }
|
||||||
WpfControls.ContextMenu ContextMenu { get; } = new WpfControls.ContextMenu();
|
WpfControls.ContextMenu ContextMenu { get; } = new WpfControls.ContextMenu();
|
||||||
@@ -40,16 +38,18 @@ public partial class MainForm : Form
|
|||||||
int _lastCursorChanged;
|
int _lastCursorChanged;
|
||||||
int _lastCycleFullscreen;
|
int _lastCycleFullscreen;
|
||||||
int _taskbarButtonCreatedMessage;
|
int _taskbarButtonCreatedMessage;
|
||||||
|
int _cursorAutohide = 1000;
|
||||||
|
|
||||||
bool _contextMenuIsReady;
|
bool _contextMenuIsReady;
|
||||||
bool _wasMaximized;
|
bool _wasMaximized;
|
||||||
|
bool _maxSizeSet;
|
||||||
|
bool _isCursorVisible = true;
|
||||||
|
|
||||||
public MainForm()
|
public MainForm()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
if (Environment.OSVersion.Version >= new Version(10, 0, 18985) && Theme.DarkMode)
|
UpdateDarkMode();
|
||||||
DwmSetWindowAttribute(Handle, 20, new[] { 1 }, 4); // DWMWA_USE_IMMERSIVE_DARK_MODE = 20
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -68,8 +68,30 @@ public partial class MainForm : Form
|
|||||||
GuiCommand.Current.WindowScaleNet += GuiCommand_WindowScaleNet;
|
GuiCommand.Current.WindowScaleNet += GuiCommand_WindowScaleNet;
|
||||||
GuiCommand.Current.ShowMenu += GuiCommand_ShowMenu;
|
GuiCommand.Current.ShowMenu += GuiCommand_ShowMenu;
|
||||||
|
|
||||||
if (Player.GPUAPI != "vulkan")
|
Player.Init(Handle, true);
|
||||||
Init();
|
|
||||||
|
Player.ObserveProperty("window-maximized", PropChangeWindowMaximized); // bool methods not working correctly
|
||||||
|
Player.ObserveProperty("window-minimized", PropChangeWindowMinimized); // bool methods not working correctly
|
||||||
|
Player.ObserveProperty("cursor-autohide", PropChangeCursorAutohide);
|
||||||
|
|
||||||
|
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");
|
_taskbarButtonCreatedMessage = RegisterWindowMessage("TaskbarButtonCreated");
|
||||||
|
|
||||||
@@ -126,6 +148,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)
|
void Player_ClientMessage(string[] args)
|
||||||
{
|
{
|
||||||
if (Command.Current.Commands.ContainsKey(args[0]))
|
if (Command.Current.Commands.ContainsKey(args[0]))
|
||||||
@@ -140,32 +168,6 @@ public partial class MainForm : Form
|
|||||||
SetTitle();
|
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.ProcessCommandLineFiles();
|
|
||||||
}
|
|
||||||
|
|
||||||
void PropChangeWindowScale(double scale)
|
void PropChangeWindowScale(double scale)
|
||||||
{
|
{
|
||||||
if (!WasShown)
|
if (!WasShown)
|
||||||
@@ -174,7 +176,7 @@ public partial class MainForm : Form
|
|||||||
BeginInvoke(() => {
|
BeginInvoke(() => {
|
||||||
SetSize(
|
SetSize(
|
||||||
(int)(Player.VideoSize.Width * scale),
|
(int)(Player.VideoSize.Width * scale),
|
||||||
(int)Math.Ceiling(Player.VideoSize.Height * scale),
|
(int)Math.Floor(Player.VideoSize.Height * scale),
|
||||||
Screen.FromControl(this), false);
|
Screen.FromControl(this), false);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -200,7 +202,7 @@ public partial class MainForm : Form
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
w = (int)(ClientSize.Width * scale);
|
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);
|
SetSize(w, h, Screen.FromControl(this), false);
|
||||||
@@ -240,7 +242,7 @@ public partial class MainForm : Form
|
|||||||
BeginInvoke(() => {
|
BeginInvoke(() => {
|
||||||
SetSize(
|
SetSize(
|
||||||
(int)(Player.VideoSize.Width * scale),
|
(int)(Player.VideoSize.Width * scale),
|
||||||
(int)Math.Ceiling(Player.VideoSize.Height * scale),
|
(int)Math.Floor(Player.VideoSize.Height * scale),
|
||||||
Screen.FromControl(this), false);
|
Screen.FromControl(this), false);
|
||||||
Player.Command($"show-text \"window-scale {scale.ToString(CultureInfo.InvariantCulture)}\"");
|
Player.Command($"show-text \"window-scale {scale.ToString(CultureInfo.InvariantCulture)}\"");
|
||||||
});
|
});
|
||||||
@@ -278,15 +280,13 @@ public partial class MainForm : Form
|
|||||||
pos.Y > ClientSize.Height * 0.78;
|
pos.Y > ClientSize.Height * 0.78;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IsCommandPaletteVissible() => CommandPaletteHost != null && CommandPaletteHost.Visible;
|
|
||||||
|
|
||||||
void UpdateMenu()
|
void UpdateMenu()
|
||||||
{
|
{
|
||||||
Player.UpdateExternalTracks();
|
Player.UpdateExternalTracks();
|
||||||
|
|
||||||
lock (Player.MediaTracksLock)
|
lock (Player.MediaTracksLock)
|
||||||
{
|
{
|
||||||
var trackMenuItem = FindMenuItem(_("Track"));
|
var trackMenuItem = FindMenuItem(_("Track"), "Track");
|
||||||
|
|
||||||
if (trackMenuItem != null)
|
if (trackMenuItem != null)
|
||||||
{
|
{
|
||||||
@@ -348,7 +348,7 @@ public partial class MainForm : Form
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var chaptersMenuItem = FindMenuItem(_("Chapter"));
|
var chaptersMenuItem = FindMenuItem(_("Chapter"), "Chapters");
|
||||||
|
|
||||||
if (chaptersMenuItem != null)
|
if (chaptersMenuItem != null)
|
||||||
{
|
{
|
||||||
@@ -369,7 +369,7 @@ public partial class MainForm : Form
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var recentMenuItem = FindMenuItem(_("Recent Files"));
|
var recentMenuItem = FindMenuItem(_("Recent Files"), "Recent");
|
||||||
|
|
||||||
if (recentMenuItem != null)
|
if (recentMenuItem != null)
|
||||||
{
|
{
|
||||||
@@ -381,17 +381,16 @@ public partial class MainForm : Form
|
|||||||
var menuItem = MenuHelp.Add(recentMenuItem.Items, file.Title.ShortPath(100));
|
var menuItem = MenuHelp.Add(recentMenuItem.Items, file.Title.ShortPath(100));
|
||||||
|
|
||||||
if (menuItem != null)
|
if (menuItem != null)
|
||||||
menuItem.Click += (sender, args) =>
|
menuItem.Click += (sender, args) => Player.LoadFiles(new[] { file.Path }, true, false);
|
||||||
Player.LoadFiles(new[] { file.Path }, true, false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
recentMenuItem.Items.Add(new WpfControls.Separator());
|
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();
|
clearMenuItem.Click += (sender, args) => App.Settings.RecentFiles.Clear();
|
||||||
recentMenuItem.Items.Add(clearMenuItem);
|
recentMenuItem.Items.Add(clearMenuItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
var titlesMenuItem = FindMenuItem(_("Title"));
|
var titlesMenuItem = FindMenuItem(_("Title"), "Titles");
|
||||||
|
|
||||||
if (titlesMenuItem != null)
|
if (titlesMenuItem != null)
|
||||||
{
|
{
|
||||||
@@ -424,7 +423,7 @@ public partial class MainForm : Form
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var profilesMenuItem = FindMenuItem(_("Profile"));
|
var profilesMenuItem = FindMenuItem(_("Profile"), "Profile");
|
||||||
|
|
||||||
if (profilesMenuItem != null && !profilesMenuItem.HasItems)
|
if (profilesMenuItem != null && !profilesMenuItem.HasItems)
|
||||||
{
|
{
|
||||||
@@ -444,39 +443,72 @@ 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 customMenuItem = FindMenuItem(_("Custom"));
|
var audioDevicesMenuItem = FindMenuItem(_("Audio Device"), "Audio Device");
|
||||||
|
|
||||||
if (customMenuItem != null)
|
if (audioDevicesMenuItem != null)
|
||||||
{
|
{
|
||||||
if (!customMenuItem.HasItems)
|
audioDevicesMenuItem.Items.Clear();
|
||||||
|
|
||||||
|
foreach (var pair in Player.AudioDevices)
|
||||||
{
|
{
|
||||||
var customBindings = _confBindings!.Where(it => it.IsCustomMenu);
|
var menuItem = MenuHelp.Add(audioDevicesMenuItem.Items, pair.Value);
|
||||||
|
|
||||||
if (customBindings.Any())
|
if (menuItem != null)
|
||||||
{
|
{
|
||||||
foreach (Binding binding in customBindings)
|
menuItem.IsChecked = pair.Name == Player.GetPropertyString("audio-device");
|
||||||
{
|
|
||||||
var menuItem = MenuHelp.Add(customMenuItem.Items, binding.Comment);
|
|
||||||
|
|
||||||
if (menuItem != null)
|
menuItem.Click += (sender, args) =>
|
||||||
{
|
{
|
||||||
menuItem.Click += (sender, args) => Player.Command(binding.Command);
|
Player.SetPropertyString("audio-device", pair.Name);
|
||||||
menuItem.InputGestureText = binding.Input;
|
Player.CommandV("show-text", pair.Value);
|
||||||
}
|
App.Settings.AudioDevice = pair.Name;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var customMenuItem = FindMenuItem(_("Custom"), "Custom");
|
||||||
|
|
||||||
|
if (customMenuItem != null && !customMenuItem.HasItems)
|
||||||
|
{
|
||||||
|
var customBindings = _confBindings!.Where(it => it.IsCustomMenu);
|
||||||
|
|
||||||
|
if (customBindings.Any())
|
||||||
|
{
|
||||||
|
foreach (Binding binding in customBindings)
|
||||||
|
{
|
||||||
|
var menuItem = MenuHelp.Add(customMenuItem.Items, binding.Comment);
|
||||||
|
|
||||||
|
if (menuItem != null)
|
||||||
|
{
|
||||||
|
menuItem.Click += (sender, args) => Player.Command(binding.Command);
|
||||||
|
menuItem.InputGestureText = binding.Input;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
}
|
||||||
{
|
else
|
||||||
if (ContextMenu.Items.Contains(customMenuItem))
|
{
|
||||||
ContextMenu.Items.Remove(customMenuItem);
|
if (ContextMenu.Items.Contains(customMenuItem))
|
||||||
}
|
ContextMenu.Items.Remove(customMenuItem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public WpfControls.MenuItem? FindMenuItem(string text) => FindMenuItem(text, ContextMenu.Items);
|
public WpfControls.MenuItem? FindMenuItem(string text, string text2 = "") {
|
||||||
|
var ret = FindMenuItem(text, ContextMenu.Items);
|
||||||
|
|
||||||
|
if (ret == null && text2 != "")
|
||||||
|
return FindMenuItem(text2, ContextMenu.Items);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
WpfControls.MenuItem? FindMenuItem(string text, WpfControls.ItemCollection? items)
|
WpfControls.MenuItem? FindMenuItem(string text, WpfControls.ItemCollection? items)
|
||||||
{
|
{
|
||||||
@@ -500,7 +532,7 @@ public partial class MainForm : Form
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetFormPosAndSize(bool force = false, bool checkAutofit = true)
|
void SetFormPosAndSize(bool force = false, bool checkAutofit = true, bool load = false)
|
||||||
{
|
{
|
||||||
if (!force)
|
if (!force)
|
||||||
{
|
{
|
||||||
@@ -558,12 +590,12 @@ public partial class MainForm : Form
|
|||||||
else if (App.StartSize == "height-always" || App.StartSize == "height-session")
|
else if (App.StartSize == "height-always" || App.StartSize == "height-session")
|
||||||
{
|
{
|
||||||
height = ClientSize.Height;
|
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")
|
else if (App.StartSize == "width-always" || App.StartSize == "width-session")
|
||||||
{
|
{
|
||||||
width = ClientSize.Width;
|
width = ClientSize.Width;
|
||||||
height = (int)Math.Ceiling(width * videoSize.Height / (double)videoSize.Width);
|
height = (int)Math.Floor(width * videoSize.Height / (double)videoSize.Width);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -573,22 +605,22 @@ public partial class MainForm : Form
|
|||||||
if (App.StartSize == "height-always" && windowSize.Height != 0)
|
if (App.StartSize == "height-always" && windowSize.Height != 0)
|
||||||
{
|
{
|
||||||
height = windowSize.Height;
|
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")
|
else if (App.StartSize == "height-session" || App.StartSize == "session")
|
||||||
{
|
{
|
||||||
height = autoFitHeight;
|
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)
|
else if(App.StartSize == "width-always" && windowSize.Height != 0)
|
||||||
{
|
{
|
||||||
width = windowSize.Width;
|
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")
|
else if (App.StartSize == "width-session")
|
||||||
{
|
{
|
||||||
width = autoFitHeight / 9 * 16;
|
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)
|
else if (App.StartSize == "always" && windowSize.Height != 0)
|
||||||
{
|
{
|
||||||
@@ -599,10 +631,10 @@ public partial class MainForm : Form
|
|||||||
Player.WasInitialSizeSet = true;
|
Player.WasInitialSizeSet = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
SetSize(width, height, screen, checkAutofit);
|
SetSize(width, height, screen, checkAutofit, load);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetSize(int width, int height, Screen screen, bool checkAutofit = true)
|
void SetSize(int width, int height, Screen screen, bool checkAutofit = true, bool load = false)
|
||||||
{
|
{
|
||||||
Rectangle workingArea = GetWorkingArea(Handle, screen.WorkingArea);
|
Rectangle workingArea = GetWorkingArea(Handle, screen.WorkingArea);
|
||||||
|
|
||||||
@@ -616,49 +648,56 @@ public partial class MainForm : Form
|
|||||||
{
|
{
|
||||||
if (height < maxHeight * Player.AutofitSmaller)
|
if (height < maxHeight * Player.AutofitSmaller)
|
||||||
{
|
{
|
||||||
height = Convert.ToInt32(maxHeight * Player.AutofitSmaller);
|
height = (int)(maxHeight * Player.AutofitSmaller);
|
||||||
width = Convert.ToInt32(height * startWidth / (double)startHeight);
|
width = (int)Math.Ceiling(height * startWidth / (double)startHeight);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (height > maxHeight * Player.AutofitLarger)
|
if (height > maxHeight * Player.AutofitLarger)
|
||||||
{
|
{
|
||||||
height = Convert.ToInt32(maxHeight * Player.AutofitLarger);
|
height = (int)(maxHeight * Player.AutofitLarger);
|
||||||
width = Convert.ToInt32(height * startWidth / (double)startHeight);
|
width = (int)Math.Ceiling(height * startWidth / (double)startHeight);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (width > maxWidth)
|
if (width > maxWidth)
|
||||||
{
|
{
|
||||||
width = maxWidth;
|
width = maxWidth;
|
||||||
height = (int)Math.Ceiling(width * startHeight / (double)startWidth);
|
height = (int)Math.Floor(width * startHeight / (double)startWidth);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (height > maxHeight)
|
if (height > maxHeight)
|
||||||
{
|
{
|
||||||
height = maxHeight;
|
height = maxHeight;
|
||||||
width = Convert.ToInt32(height * startWidth / (double)startHeight);
|
width = (int)Math.Ceiling(height * startWidth / (double)startHeight);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (height < maxHeight * 0.1)
|
if (height < maxHeight * 0.1)
|
||||||
{
|
{
|
||||||
height = Convert.ToInt32(maxHeight * 0.1);
|
height = (int)(maxHeight * 0.1);
|
||||||
width = Convert.ToInt32(height * startWidth / (double)startHeight);
|
width = (int)Math.Ceiling(height * startWidth / (double)startHeight);
|
||||||
}
|
}
|
||||||
|
|
||||||
Point middlePos = new Point(Left + Width / 2, Top + Height / 2);
|
Point middlePos = new Point(Left + Width / 2, Top + Height / 2);
|
||||||
var rect = new Rect(new Rectangle(screen.Bounds.X, screen.Bounds.Y, width, height));
|
var rect = new RECT(new Rectangle(screen.Bounds.X, screen.Bounds.Y, width, height));
|
||||||
AddWindowBorders(Handle, ref rect, GetDpi(Handle));
|
|
||||||
|
|
||||||
int left = middlePos.X - rect.Width / 2;
|
AddWindowBorders(Handle, ref rect, GetDpi(Handle), !Player.TitleBar);
|
||||||
int top = middlePos.Y - rect.Height / 2;
|
|
||||||
|
width = rect.Width;
|
||||||
|
height = rect.Height;
|
||||||
|
|
||||||
|
int left = Convert.ToInt32(middlePos.X - width / 2.0);
|
||||||
|
int top = Convert.ToInt32(middlePos.Y - height / 2.0);
|
||||||
|
|
||||||
|
if (!Player.TitleBar)
|
||||||
|
top -= Convert.ToInt32(GetTitleBarHeight(Handle, GetDpi(Handle)) / 2.0);
|
||||||
|
|
||||||
Rectangle currentRect = new Rectangle(Left, Top, Width, Height);
|
Rectangle currentRect = new Rectangle(Left, Top, Width, Height);
|
||||||
|
|
||||||
if (GetHorizontalLocation(screen) == -1) left = Left;
|
if (GetHorizontalLocation(screen) == -1) left = Left;
|
||||||
if (GetHorizontalLocation(screen) == 1) left = currentRect.Right - rect.Width;
|
if (GetHorizontalLocation(screen) == 1) left = currentRect.Right - width;
|
||||||
|
|
||||||
if (GetVerticalLocation(screen) == -1) top = Top;
|
if (GetVerticalLocation(screen) == -1) top = Top;
|
||||||
if (GetVerticalLocation(screen) == 1) top = currentRect.Bottom - rect.Height;
|
if (GetVerticalLocation(screen) == 1) top = currentRect.Bottom - height;
|
||||||
|
|
||||||
Screen[] screens = Screen.AllScreens;
|
Screen[] screens = Screen.AllScreens;
|
||||||
|
|
||||||
@@ -667,20 +706,57 @@ public partial class MainForm : Form
|
|||||||
int minTop = screens.Select(val => GetWorkingArea(Handle, val.WorkingArea).Y).Min();
|
int minTop = screens.Select(val => GetWorkingArea(Handle, val.WorkingArea).Y).Min();
|
||||||
int maxBottom = screens.Select(val => GetWorkingArea(Handle, val.WorkingArea).Bottom).Max();
|
int maxBottom = screens.Select(val => GetWorkingArea(Handle, val.WorkingArea).Bottom).Max();
|
||||||
|
|
||||||
|
if (load)
|
||||||
|
{
|
||||||
|
string geometryString = Player.GetPropertyString("geometry");
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(geometryString))
|
||||||
|
{
|
||||||
|
var pos = ParseGeometry(geometryString, width, height);
|
||||||
|
|
||||||
|
if (pos.X != int.MaxValue)
|
||||||
|
left = pos.X;
|
||||||
|
|
||||||
|
if (pos.Y != int.MaxValue)
|
||||||
|
top = pos.Y;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (left < minLeft)
|
if (left < minLeft)
|
||||||
left = minLeft;
|
left = minLeft;
|
||||||
|
|
||||||
if (left + rect.Width > maxRight)
|
if (left + width > maxRight)
|
||||||
left = maxRight - rect.Width;
|
left = maxRight - width;
|
||||||
|
|
||||||
if (top < minTop)
|
if (top < minTop)
|
||||||
top = minTop;
|
top = minTop;
|
||||||
|
|
||||||
if (top + rect.Height > maxBottom)
|
if (top + height > maxBottom)
|
||||||
top = maxBottom - rect.Height;
|
top = maxBottom - height;
|
||||||
|
|
||||||
uint SWP_NOACTIVATE = 0x0010;
|
uint SWP_NOACTIVATE = 0x0010;
|
||||||
SetWindowPos(Handle, IntPtr.Zero, left, top, rect.Width, rect.Height, SWP_NOACTIVATE);
|
SetWindowPos(Handle, IntPtr.Zero, left, top, width, height, SWP_NOACTIVATE);
|
||||||
|
}
|
||||||
|
|
||||||
|
Point ParseGeometry(string input, int width, int height)
|
||||||
|
{
|
||||||
|
int x = int.MaxValue;
|
||||||
|
int y = int.MaxValue;
|
||||||
|
|
||||||
|
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);
|
||||||
|
|
||||||
|
x = workingArea.Left + Convert.ToInt32((workingArea.Width - width) / 100.0 * x);
|
||||||
|
y = workingArea.Top + Convert.ToInt32((workingArea.Height - height) / 100.0 * y);
|
||||||
|
}
|
||||||
|
|
||||||
|
return new Point(x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void CycleFullscreen(bool enabled)
|
public void CycleFullscreen(bool enabled)
|
||||||
@@ -767,17 +843,12 @@ public partial class MainForm : Form
|
|||||||
|
|
||||||
var (menuBindings, confBindings) = App.InputConf.GetBindings();
|
var (menuBindings, confBindings) = App.InputConf.GetBindings();
|
||||||
_confBindings = confBindings;
|
_confBindings = confBindings;
|
||||||
|
var activeBindings = InputHelp.GetActiveBindings(menuBindings);
|
||||||
|
|
||||||
foreach (Binding binding in menuBindings)
|
foreach (Binding binding in menuBindings)
|
||||||
{
|
{
|
||||||
Binding tempBinding = binding;
|
Binding tempBinding = binding;
|
||||||
|
|
||||||
if (MenuItemDuplicate.ContainsKey(tempBinding.Command) && tempBinding.Input != "")
|
|
||||||
{
|
|
||||||
var mi = MenuItemDuplicate[tempBinding.Command];
|
|
||||||
mi.InputGestureText = mi.InputGestureText + ", " + tempBinding.Input;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!binding.IsMenu)
|
if (!binding.IsMenu)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@@ -785,9 +856,6 @@ public partial class MainForm : Form
|
|||||||
|
|
||||||
if (menuItem != null)
|
if (menuItem != null)
|
||||||
{
|
{
|
||||||
if (tempBinding.Input != "")
|
|
||||||
MenuItemDuplicate[tempBinding.Command] = menuItem;
|
|
||||||
|
|
||||||
menuItem.Click += (sender, args) => {
|
menuItem.Click += (sender, args) => {
|
||||||
try {
|
try {
|
||||||
TaskHelp.Run(() => {
|
TaskHelp.Run(() => {
|
||||||
@@ -803,7 +871,7 @@ public partial class MainForm : Form
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
menuItem.InputGestureText = tempBinding.Input;
|
menuItem.InputGestureText = InputHelp.GetBindingsForCommand(activeBindings, tempBinding.Command);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -839,7 +907,7 @@ public partial class MainForm : Form
|
|||||||
path = path + "|" + title;
|
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))
|
if (App.Settings.RecentFiles.Contains(path))
|
||||||
App.Settings.RecentFiles.Remove(path);
|
App.Settings.RecentFiles.Remove(path);
|
||||||
@@ -972,16 +1040,20 @@ public partial class MainForm : Form
|
|||||||
m.Result = SendMessage(MpvWindowHandle, m.Msg, m.WParam, m.LParam);
|
m.Result = SendMessage(MpvWindowHandle, m.Msg, m.WParam, m.LParam);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case 0x001A: // WM_SETTINGCHANGE
|
||||||
|
UpdateDarkMode();
|
||||||
|
break;
|
||||||
case 0x51: // WM_INPUTLANGCHANGE
|
case 0x51: // WM_INPUTLANGCHANGE
|
||||||
ActivateKeyboardLayout(m.LParam, 0x00000100u /*KLF_SETFORPROCESS*/);
|
ActivateKeyboardLayout(m.LParam, 0x00000100u /*KLF_SETFORPROCESS*/);
|
||||||
break;
|
break;
|
||||||
case 0x319: // WM_APPCOMMAND
|
case 0x319: // WM_APPCOMMAND
|
||||||
{
|
{
|
||||||
string? value = MpvHelp.WM_APPCOMMAND_to_mpv_key((int)(m.LParam.ToInt64() >> 16 & ~0xf000));
|
string? key = MpvHelp.WM_APPCOMMAND_to_mpv_key((int)(m.LParam.ToInt64() >> 16 & ~0xf000));
|
||||||
|
bool inputMediaKeys = Player.GetPropertyBool("input-media-keys");
|
||||||
|
|
||||||
if (value != null)
|
if (key != null && inputMediaKeys)
|
||||||
{
|
{
|
||||||
Player.Command("keypress " + value);
|
Player.Command("keypress " + key);
|
||||||
m.Result = new IntPtr(1);
|
m.Result = new IntPtr(1);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -1011,16 +1083,46 @@ public partial class MainForm : Form
|
|||||||
if (!WasShown)
|
if (!WasShown)
|
||||||
break;
|
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);
|
SetWindowPos(Handle, IntPtr.Zero, rect.Left, rect.Top, rect.Width, rect.Height, 0);
|
||||||
}
|
}
|
||||||
break;
|
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;
|
||||||
|
int h = GetTitleBarHeight(Handle, GetDpi(Handle));
|
||||||
|
rects[0].Top = rects[0].Top - h;
|
||||||
|
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
|
case 0x214: // WM_SIZING
|
||||||
if (Player.KeepaspectWindow)
|
if (Player.KeepaspectWindow)
|
||||||
{
|
{
|
||||||
Rect rc = Marshal.PtrToStructure<Rect>(m.LParam);
|
RECT rc = Marshal.PtrToStructure<RECT>(m.LParam);
|
||||||
Rect r = rc;
|
RECT r = rc;
|
||||||
SubtractWindowBorders(Handle, ref r, GetDpi(Handle));
|
SubtractWindowBorders(Handle, ref r, GetDpi(Handle), !Player.TitleBar);
|
||||||
|
|
||||||
int c_w = r.Right - r.Left, c_h = r.Bottom - r.Top;
|
int c_w = r.Right - r.Left, c_h = r.Bottom - r.Top;
|
||||||
Size videoSize = Player.VideoSize;
|
Size videoSize = Player.VideoSize;
|
||||||
@@ -1028,9 +1130,9 @@ public partial class MainForm : Form
|
|||||||
if (videoSize == Size.Empty)
|
if (videoSize == Size.Empty)
|
||||||
videoSize = new Size(16, 9);
|
videoSize = new Size(16, 9);
|
||||||
|
|
||||||
float aspect = videoSize.Width / (float)videoSize.Height;
|
double aspect = videoSize.Width / (double)videoSize.Height;
|
||||||
int d_w = (int)(c_h * aspect - c_w);
|
int d_w = (int)Math.Ceiling(c_h * aspect - c_w);
|
||||||
int d_h = (int)(c_w / aspect - c_h);
|
int d_h = (int)Math.Floor(c_w / aspect - c_h);
|
||||||
|
|
||||||
int[] d_corners = { d_w, d_h, -d_w, -d_h };
|
int[] d_corners = { d_w, d_h, -d_w, -d_h };
|
||||||
int[] corners = { rc.Left, rc.Top, rc.Right, rc.Bottom };
|
int[] corners = { rc.Left, rc.Top, rc.Right, rc.Bottom };
|
||||||
@@ -1039,37 +1141,14 @@ public partial class MainForm : Form
|
|||||||
if (corner >= 0)
|
if (corner >= 0)
|
||||||
corners[corner] -= d_corners[corner];
|
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);
|
m.Result = new IntPtr(1);
|
||||||
}
|
}
|
||||||
return;
|
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
|
case 0x84: // WM_NCHITTEST
|
||||||
// resize borderless window
|
// resize borderless window
|
||||||
if (!Player.Border && !Player.Fullscreen) {
|
if ((!Player.Border || !Player.TitleBar) && !Player.Fullscreen)
|
||||||
|
{
|
||||||
const int HTCLIENT = 1;
|
const int HTCLIENT = 1;
|
||||||
const int HTLEFT = 10;
|
const int HTLEFT = 10;
|
||||||
const int HTRIGHT = 11;
|
const int HTRIGHT = 11;
|
||||||
@@ -1108,11 +1187,30 @@ public partial class MainForm : Form
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 0x231: // WM_ENTERSIZEMOVE
|
case 0x4A: // WM_COPYDATA
|
||||||
case 0x005: // WM_SIZE
|
{
|
||||||
if (Player.SnapWindow)
|
var copyData = (CopyDataStruct)m.GetLParam(typeof(CopyDataStruct))!;
|
||||||
SnapManager.OnSizeAndEnterSizeMove(this);
|
string[] args = copyData.lpData.Split('\n');
|
||||||
break;
|
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
|
case 0x216: // WM_MOVING
|
||||||
if (Player.SnapWindow)
|
if (Player.SnapWindow)
|
||||||
SnapManager.OnMoving(ref m);
|
SnapManager.OnMoving(ref m);
|
||||||
@@ -1130,6 +1228,25 @@ public partial class MainForm : Form
|
|||||||
base.WndProc(ref m);
|
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)
|
void CursorTimer_Tick(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (IsCursorPosDifferent(_lastCursorPosition))
|
if (IsCursorPosDifferent(_lastCursorPosition))
|
||||||
@@ -1137,11 +1254,9 @@ public partial class MainForm : Form
|
|||||||
_lastCursorPosition = MousePosition;
|
_lastCursorPosition = MousePosition;
|
||||||
_lastCursorChanged = Environment.TickCount;
|
_lastCursorChanged = Environment.TickCount;
|
||||||
}
|
}
|
||||||
else if ((Environment.TickCount - _lastCursorChanged > 1500 ||
|
else if ((Environment.TickCount - _lastCursorChanged > _cursorAutohide) &&
|
||||||
Environment.TickCount - _lastCursorChanged > 5000) &&
|
|
||||||
ClientRectangle.Contains(PointToClient(MousePosition)) &&
|
ClientRectangle.Contains(PointToClient(MousePosition)) &&
|
||||||
ActiveForm == this && !ContextMenu.IsVisible && !IsMouseInOsc() &&
|
ActiveForm == this && !ContextMenu.IsVisible && !IsMouseInOsc())
|
||||||
!IsCommandPaletteVissible())
|
|
||||||
|
|
||||||
HideCursor();
|
HideCursor();
|
||||||
}
|
}
|
||||||
@@ -1198,6 +1313,18 @@ public partial class MainForm : Form
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PropChangeCursorAutohide()
|
||||||
|
{
|
||||||
|
string strValue = Player.GetPropertyString("cursor-autohide");
|
||||||
|
|
||||||
|
if (strValue == "no")
|
||||||
|
_cursorAutohide = 0;
|
||||||
|
else if (strValue == "always")
|
||||||
|
_cursorAutohide = -1;
|
||||||
|
else if (int.TryParse(strValue, out var intValue))
|
||||||
|
_cursorAutohide = intValue;
|
||||||
|
}
|
||||||
|
|
||||||
void PropChangeBorder(bool enabled) {
|
void PropChangeBorder(bool enabled) {
|
||||||
Player.Border = enabled;
|
Player.Border = enabled;
|
||||||
|
|
||||||
@@ -1213,6 +1340,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()
|
void Player_Pause()
|
||||||
{
|
{
|
||||||
if (_taskbar != null && Player.TaskbarProgress)
|
if (_taskbar != null && Player.TaskbarProgress)
|
||||||
@@ -1222,10 +1363,8 @@ public partial class MainForm : Form
|
|||||||
protected override void OnLoad(EventArgs e)
|
protected override void OnLoad(EventArgs e)
|
||||||
{
|
{
|
||||||
base.OnLoad(e);
|
base.OnLoad(e);
|
||||||
if (Player.GPUAPI != "vulkan")
|
|
||||||
Player.VideoSizeAutoResetEvent.WaitOne(App.StartThreshold);
|
|
||||||
_lastCycleFullscreen = Environment.TickCount;
|
_lastCycleFullscreen = Environment.TickCount;
|
||||||
SetFormPosAndSize();
|
SetFormPosAndSize(false, true, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnLostFocus(EventArgs e)
|
protected override void OnLostFocus(EventArgs e)
|
||||||
@@ -1238,9 +1377,6 @@ public partial class MainForm : Form
|
|||||||
{
|
{
|
||||||
base.OnShown(e);
|
base.OnShown(e);
|
||||||
|
|
||||||
if (Player.GPUAPI == "vulkan")
|
|
||||||
Init();
|
|
||||||
|
|
||||||
if (WindowState == FormWindowState.Maximized)
|
if (WindowState == FormWindowState.Maximized)
|
||||||
Player.SetPropertyBool("window-maximized", true);
|
Player.SetPropertyBool("window-maximized", true);
|
||||||
|
|
||||||
@@ -1252,9 +1388,8 @@ public partial class MainForm : Form
|
|||||||
InitAndBuildContextMenu();
|
InitAndBuildContextMenu();
|
||||||
Cursor.Position = new Point(Cursor.Position.X + 1, Cursor.Position.Y);
|
Cursor.Position = new Point(Cursor.Position.X + 1, Cursor.Position.Y);
|
||||||
GlobalHotkey.RegisterGlobalHotkeys(Handle);
|
GlobalHotkey.RegisterGlobalHotkeys(Handle);
|
||||||
TaskHelp.Run(WinMpvHelp.CopyMpvNetCom);
|
|
||||||
WasShown = true;
|
|
||||||
StrongReferenceMessenger.Default.Send(new MainWindowIsLoadedMessage());
|
StrongReferenceMessenger.Default.Send(new MainWindowIsLoadedMessage());
|
||||||
|
WasShown = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ContextMenu_Closed(object sender, System.Windows.RoutedEventArgs e) => MenuAutoResetEvent.Set();
|
void ContextMenu_Closed(object sender, System.Windows.RoutedEventArgs e) => MenuAutoResetEvent.Set();
|
||||||
@@ -1302,11 +1437,7 @@ public partial class MainForm : Form
|
|||||||
protected override void OnMouseDown(MouseEventArgs e)
|
protected override void OnMouseDown(MouseEventArgs e)
|
||||||
{
|
{
|
||||||
base.OnMouseDown(e);
|
base.OnMouseDown(e);
|
||||||
|
|
||||||
_mouseDownLocation = PointToScreen(e.Location);
|
_mouseDownLocation = PointToScreen(e.Location);
|
||||||
|
|
||||||
if (Width - e.Location.X < 10 && e.Location.Y < 10)
|
|
||||||
Player.CommandV("quit");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnMouseMove(MouseEventArgs e)
|
protected override void OnMouseMove(MouseEventArgs e)
|
||||||
@@ -1343,10 +1474,12 @@ public partial class MainForm : Form
|
|||||||
{
|
{
|
||||||
base.OnDragDrop(e);
|
base.OnDragDrop(e);
|
||||||
|
|
||||||
|
bool append = ModifierKeys == Keys.Shift;
|
||||||
|
|
||||||
if (e.Data!.GetDataPresent(DataFormats.FileDrop))
|
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))
|
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)
|
protected override void OnKeyDown(KeyEventArgs e)
|
||||||
@@ -1358,20 +1491,18 @@ public partial class MainForm : Form
|
|||||||
base.OnKeyDown(e);
|
base.OnKeyDown(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool _isCursorVisible = true;
|
void ShowCursor()
|
||||||
|
|
||||||
static void ShowCursor()
|
|
||||||
{
|
{
|
||||||
if (!_isCursorVisible)
|
if (!_isCursorVisible && _cursorAutohide != -1)
|
||||||
{
|
{
|
||||||
Cursor.Show();
|
Cursor.Show();
|
||||||
_isCursorVisible = true;
|
_isCursorVisible = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void HideCursor()
|
void HideCursor()
|
||||||
{
|
{
|
||||||
if (_isCursorVisible)
|
if (_isCursorVisible && _cursorAutohide != 0)
|
||||||
{
|
{
|
||||||
Cursor.Hide();
|
Cursor.Hide();
|
||||||
_isCursorVisible = false;
|
_isCursorVisible = false;
|
||||||
@@ -1395,103 +1526,4 @@ public partial class MainForm : Form
|
|||||||
|
|
||||||
[DllImport("DwmApi")]
|
[DllImport("DwmApi")]
|
||||||
static extern int DwmSetWindowAttribute(IntPtr hwnd, int attr, int[] attrValue, int attrSize);
|
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;
|
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,64 @@
|
|||||||
<root>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
|||||||
@@ -2,10 +2,9 @@
|
|||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
using MpvNet.Windows.Help;
|
||||||
using MpvNet.Windows.Native;
|
using MpvNet.Windows.Native;
|
||||||
|
|
||||||
using static MpvNet.Windows.Native.WinApi;
|
|
||||||
|
|
||||||
namespace MpvNet.Windows.WinForms;
|
namespace MpvNet.Windows.WinForms;
|
||||||
|
|
||||||
public class SnapManager
|
public class SnapManager
|
||||||
@@ -35,7 +34,7 @@ public class SnapManager
|
|||||||
void FindSnap(ref Rectangle effectiveBounds)
|
void FindSnap(ref Rectangle effectiveBounds)
|
||||||
{
|
{
|
||||||
Screen currentScreen = Screen.FromPoint(effectiveBounds.Location);
|
Screen currentScreen = Screen.FromPoint(effectiveBounds.Location);
|
||||||
Rectangle workingArea = GetWorkingArea(Handle, currentScreen.WorkingArea);
|
Rectangle workingArea = WinApiHelp.GetWorkingArea(Handle, currentScreen.WorkingArea);
|
||||||
|
|
||||||
if (InSnapRange(effectiveBounds.Left, workingArea.Left + AnchorDistance))
|
if (InSnapRange(effectiveBounds.Left, workingArea.Left + AnchorDistance))
|
||||||
effectiveBounds.X = workingArea.Left + AnchorDistance;
|
effectiveBounds.X = workingArea.Left + AnchorDistance;
|
||||||
@@ -52,7 +51,7 @@ public class SnapManager
|
|||||||
if (Handle == IntPtr.Zero)
|
if (Handle == IntPtr.Zero)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
WinApi.Rect boundsLtrb = Marshal.PtrToStructure<WinApi.Rect>(m.LParam);
|
WinApi.RECT boundsLtrb = Marshal.PtrToStructure<WinApi.RECT>(m.LParam);
|
||||||
Rectangle bounds = boundsLtrb.ToRectangle();
|
Rectangle bounds = boundsLtrb.ToRectangle();
|
||||||
// This is where the window _would_ be located if snapping
|
// This is where the window _would_ be located if snapping
|
||||||
// had not occurred. This prevents the cursor from sliding
|
// had not occurred. This prevents the cursor from sliding
|
||||||
@@ -63,7 +62,7 @@ public class SnapManager
|
|||||||
bounds.Width,
|
bounds.Width,
|
||||||
bounds.Height);
|
bounds.Height);
|
||||||
FindSnap(ref effectiveBounds);
|
FindSnap(ref effectiveBounds);
|
||||||
WinApi.Rect newLtrb = WinApi.Rect.FromRectangle(effectiveBounds);
|
WinApi.RECT newLtrb = WinApi.RECT.FromRectangle(effectiveBounds);
|
||||||
Marshal.StructureToPtr(newLtrb, m.LParam, false);
|
Marshal.StructureToPtr(newLtrb, m.LParam, false);
|
||||||
m.Result = new IntPtr(1);
|
m.Result = new IntPtr(1);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,21 +20,77 @@ EndProject
|
|||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Debug|ARM = Debug|ARM
|
||||||
|
Debug|ARM64 = Debug|ARM64
|
||||||
|
Debug|x64 = Debug|x64
|
||||||
|
Debug|x86 = Debug|x86
|
||||||
Release|Any CPU = Release|Any CPU
|
Release|Any CPU = Release|Any CPU
|
||||||
|
Release|ARM = Release|ARM
|
||||||
|
Release|ARM64 = Release|ARM64
|
||||||
|
Release|x64 = Release|x64
|
||||||
|
Release|x86 = Release|x86
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
{ADC341B5-863A-4DFB-9352-475518FABE91}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{ADC341B5-863A-4DFB-9352-475518FABE91}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{ADC341B5-863A-4DFB-9352-475518FABE91}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{ADC341B5-863A-4DFB-9352-475518FABE91}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{ADC341B5-863A-4DFB-9352-475518FABE91}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{ADC341B5-863A-4DFB-9352-475518FABE91}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{ADC341B5-863A-4DFB-9352-475518FABE91}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{ADC341B5-863A-4DFB-9352-475518FABE91}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{ADC341B5-863A-4DFB-9352-475518FABE91}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{ADC341B5-863A-4DFB-9352-475518FABE91}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{ADC341B5-863A-4DFB-9352-475518FABE91}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{ADC341B5-863A-4DFB-9352-475518FABE91}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{ADC341B5-863A-4DFB-9352-475518FABE91}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{ADC341B5-863A-4DFB-9352-475518FABE91}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{ADC341B5-863A-4DFB-9352-475518FABE91}.Release|Any CPU.Build.0 = Release|Any CPU
|
{ADC341B5-863A-4DFB-9352-475518FABE91}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{ADC341B5-863A-4DFB-9352-475518FABE91}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{ADC341B5-863A-4DFB-9352-475518FABE91}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{ADC341B5-863A-4DFB-9352-475518FABE91}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{ADC341B5-863A-4DFB-9352-475518FABE91}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{ADC341B5-863A-4DFB-9352-475518FABE91}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{ADC341B5-863A-4DFB-9352-475518FABE91}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{ADC341B5-863A-4DFB-9352-475518FABE91}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{ADC341B5-863A-4DFB-9352-475518FABE91}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{0B524801-DA28-433F-808D-3F74EF81EB53}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{0B524801-DA28-433F-808D-3F74EF81EB53}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{0B524801-DA28-433F-808D-3F74EF81EB53}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{0B524801-DA28-433F-808D-3F74EF81EB53}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{0B524801-DA28-433F-808D-3F74EF81EB53}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{0B524801-DA28-433F-808D-3F74EF81EB53}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{0B524801-DA28-433F-808D-3F74EF81EB53}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{0B524801-DA28-433F-808D-3F74EF81EB53}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{0B524801-DA28-433F-808D-3F74EF81EB53}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{0B524801-DA28-433F-808D-3F74EF81EB53}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{0B524801-DA28-433F-808D-3F74EF81EB53}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{0B524801-DA28-433F-808D-3F74EF81EB53}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{0B524801-DA28-433F-808D-3F74EF81EB53}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{0B524801-DA28-433F-808D-3F74EF81EB53}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{0B524801-DA28-433F-808D-3F74EF81EB53}.Release|Any CPU.Build.0 = Release|Any CPU
|
{0B524801-DA28-433F-808D-3F74EF81EB53}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{0B524801-DA28-433F-808D-3F74EF81EB53}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{0B524801-DA28-433F-808D-3F74EF81EB53}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{0B524801-DA28-433F-808D-3F74EF81EB53}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{0B524801-DA28-433F-808D-3F74EF81EB53}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{0B524801-DA28-433F-808D-3F74EF81EB53}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{0B524801-DA28-433F-808D-3F74EF81EB53}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{0B524801-DA28-433F-808D-3F74EF81EB53}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{0B524801-DA28-433F-808D-3F74EF81EB53}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{0B7958FD-2138-482A-A21B-481AE7A0F851}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{0B7958FD-2138-482A-A21B-481AE7A0F851}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{0B7958FD-2138-482A-A21B-481AE7A0F851}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{0B7958FD-2138-482A-A21B-481AE7A0F851}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{0B7958FD-2138-482A-A21B-481AE7A0F851}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{0B7958FD-2138-482A-A21B-481AE7A0F851}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{0B7958FD-2138-482A-A21B-481AE7A0F851}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{0B7958FD-2138-482A-A21B-481AE7A0F851}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{0B7958FD-2138-482A-A21B-481AE7A0F851}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{0B7958FD-2138-482A-A21B-481AE7A0F851}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{0B7958FD-2138-482A-A21B-481AE7A0F851}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{0B7958FD-2138-482A-A21B-481AE7A0F851}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{0B7958FD-2138-482A-A21B-481AE7A0F851}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{0B7958FD-2138-482A-A21B-481AE7A0F851}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{0B7958FD-2138-482A-A21B-481AE7A0F851}.Release|Any CPU.Build.0 = Release|Any CPU
|
{0B7958FD-2138-482A-A21B-481AE7A0F851}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{0B7958FD-2138-482A-A21B-481AE7A0F851}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{0B7958FD-2138-482A-A21B-481AE7A0F851}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{0B7958FD-2138-482A-A21B-481AE7A0F851}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{0B7958FD-2138-482A-A21B-481AE7A0F851}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{0B7958FD-2138-482A-A21B-481AE7A0F851}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{0B7958FD-2138-482A-A21B-481AE7A0F851}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{0B7958FD-2138-482A-A21B-481AE7A0F851}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{0B7958FD-2138-482A-A21B-481AE7A0F851}.Release|x86.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ namespace MpvNet;
|
|||||||
public class AppClass
|
public class AppClass
|
||||||
{
|
{
|
||||||
public List<string> TempFiles { get; } = new ();
|
public List<string> TempFiles { get; } = new ();
|
||||||
public Dictionary<string, string> CommandLineArguments { get; } = new ();
|
|
||||||
|
|
||||||
public string ConfPath { get => Player.ConfigFolder + "mpvnet.conf"; }
|
public string ConfPath { get => Player.ConfigFolder + "mpvnet.conf"; }
|
||||||
public string ProcessInstance { get; set; } = "single";
|
public string ProcessInstance { get; set; } = "single";
|
||||||
@@ -20,17 +19,18 @@ public class AppClass
|
|||||||
public string StartSize { get; set; } = "height-session";
|
public string StartSize { get; set; } = "height-session";
|
||||||
public string Language { get; set; } = "system";
|
public string Language { get; set; } = "system";
|
||||||
public string CommandLine { get; set; } = Environment.CommandLine;
|
public string CommandLine { get; set; } = Environment.CommandLine;
|
||||||
|
public string MenuSyntax { get; set; } = "#menu:";
|
||||||
|
|
||||||
public bool AutoLoadFolder { get; set; } = true;
|
public bool AutoLoadFolder { get; set; }
|
||||||
public bool DebugMode { get; set; }
|
public bool DebugMode { get; set; }
|
||||||
public bool Exit { get; set; }
|
public bool Exit { get; set; }
|
||||||
public bool IsTerminalAttached { get; } = Environment.GetEnvironmentVariable("_started_from_console") == "yes";
|
public bool IsTerminalAttached { get; } = Environment.GetEnvironmentVariable("_started_from_console") == "yes";
|
||||||
public bool MediaInfo { get; set; } = true;
|
public bool MediaInfo { get; set; } = true;
|
||||||
public bool Queue { get; set; }
|
public bool Queue { get; set; }
|
||||||
|
public bool RememberAudioDevice { get; set; } = true;
|
||||||
public bool RememberVolume { get; set; } = true;
|
public bool RememberVolume { get; set; } = true;
|
||||||
public bool RememberWindowPosition { get; set; }
|
public bool RememberWindowPosition { get; set; }
|
||||||
|
|
||||||
public int StartThreshold { get; set; } = 1500;
|
|
||||||
public int RecentCount { get; set; } = 15;
|
public int RecentCount { get; set; } = 15;
|
||||||
|
|
||||||
public float AutofitAudio { get; set; } = 0.7f;
|
public float AutofitAudio { get; set; } = 0.7f;
|
||||||
@@ -77,20 +77,14 @@ public class AppClass
|
|||||||
Player.Initialized += Player_Initialized;
|
Player.Initialized += Player_Initialized;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string About => "Copyright (C) 2000-2023 mpv.net/mpv/mplayer\n" +
|
public static string About => "Copyright (C) 2000-2024 mpv.net/mpv/mplayer\n" +
|
||||||
$"{AppInfo.Product} {AppInfo.Version}" + GetLastWriteTime(Environment.ProcessPath!) + "\n" +
|
$"{AppInfo.Product} v{AppInfo.Version}" + GetLastWriteTime(Environment.ProcessPath!) + "\n" +
|
||||||
$"{Player.GetPropertyString("mpv-version")}" + GetLastWriteTime(Folder.Startup + "libmpv-2.dll") + "\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)
|
static string GetLastWriteTime(string path) => $" ({File.GetLastWriteTime(path).ToShortDateString()})";
|
||||||
{
|
|
||||||
if (IsStoreVersion)
|
|
||||||
return "";
|
|
||||||
|
|
||||||
return $" ({File.GetLastWriteTime(path).ToShortDateString()})";
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool IsStoreVersion => Folder.Startup.Contains("FrankSkare.mpvnet");
|
|
||||||
|
|
||||||
void Player_Initialized()
|
void Player_Initialized()
|
||||||
{
|
{
|
||||||
@@ -99,6 +93,9 @@ public class AppClass
|
|||||||
Player.SetPropertyInt("volume", Settings.Volume);
|
Player.SetPropertyInt("volume", Settings.Volume);
|
||||||
Player.SetPropertyString("mute", Settings.Mute);
|
Player.SetPropertyString("mute", Settings.Mute);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (RememberAudioDevice && Settings.AudioDevice != "")
|
||||||
|
Player.SetPropertyString("audio-device", Settings.AudioDevice);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Player_Shutdown()
|
void Player_Shutdown()
|
||||||
@@ -134,27 +131,25 @@ public class AppClass
|
|||||||
{
|
{
|
||||||
switch (name)
|
switch (name)
|
||||||
{
|
{
|
||||||
case "audio-file-extensions": FileTypes.Audio = value.Split(" ,;".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); return true;
|
|
||||||
case "auto-load-folder": AutoLoadFolder = value == "yes"; return true;
|
case "auto-load-folder": AutoLoadFolder = value == "yes"; return true;
|
||||||
case "autofit-audio": AutofitAudio = value.Trim('%').ToInt(70) / 100f; return true;
|
case "autofit-audio": AutofitAudio = value.Trim('%').ToInt(70) / 100f; return true;
|
||||||
case "autofit-image": AutofitImage = value.Trim('%').ToInt(80) / 100f; return true;
|
case "autofit-image": AutofitImage = value.Trim('%').ToInt(80) / 100f; return true;
|
||||||
case "dark-mode": DarkMode = value; return true;
|
case "dark-mode": DarkMode = value; return true;
|
||||||
case "dark-theme": DarkTheme = value.Trim('\'', '"'); return true;
|
case "dark-theme": DarkTheme = value.Trim('\'', '"'); return true;
|
||||||
case "debug-mode": DebugMode = value == "yes"; return true;
|
case "debug-mode": DebugMode = value == "yes"; return true;
|
||||||
case "image-file-extensions": FileTypes.Image = value.Split(" ,;".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); return true;
|
|
||||||
case "language": Language = value; return true;
|
case "language": Language = value; return true;
|
||||||
case "light-theme": LightTheme = value.Trim('\'', '"'); return true;
|
case "light-theme": LightTheme = value.Trim('\'', '"'); return true;
|
||||||
case "media-info": MediaInfo = value == "yes"; return true;
|
case "media-info": MediaInfo = value == "yes"; return true;
|
||||||
|
case "menu-syntax": MenuSyntax = value; return true;
|
||||||
case "minimum-aspect-ratio-audio": MinimumAspectRatioAudio = value.ToFloat(); return true;
|
case "minimum-aspect-ratio-audio": MinimumAspectRatioAudio = value.ToFloat(); return true;
|
||||||
case "minimum-aspect-ratio": MinimumAspectRatio = value.ToFloat(); return true;
|
case "minimum-aspect-ratio": MinimumAspectRatio = value.ToFloat(); return true;
|
||||||
case "process-instance": ProcessInstance = value; return true;
|
case "process-instance": ProcessInstance = value; return true;
|
||||||
case "queue": Queue = value == "yes"; return true;
|
case "queue": Queue = value == "yes"; return true;
|
||||||
case "recent-count": RecentCount = value.ToInt(15); 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-volume": RememberVolume = value == "yes"; return true;
|
||||||
case "remember-window-position": RememberWindowPosition = value == "yes"; return true;
|
case "remember-window-position": RememberWindowPosition = value == "yes"; return true;
|
||||||
case "start-size": StartSize = value; return true;
|
case "start-size": StartSize = value; return true;
|
||||||
case "start-threshold": StartThreshold = value.ToInt(1500); return true;
|
|
||||||
case "video-file-extensions": FileTypes.Video = value.Split(" ,;".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); return true;
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
if (writeError)
|
if (writeError)
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
|
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Text;
|
|
||||||
using System.Text.Json;
|
|
||||||
using MpvNet.Help;
|
using MpvNet.Help;
|
||||||
|
|
||||||
namespace MpvNet;
|
namespace MpvNet;
|
||||||
@@ -18,7 +16,6 @@ public class Command
|
|||||||
["play-pause"] = PlayPause,
|
["play-pause"] = PlayPause,
|
||||||
["shell-execute"] = args => ProcessHelp.ShellExecute(args[0]),
|
["shell-execute"] = args => ProcessHelp.ShellExecute(args[0]),
|
||||||
["show-text"] = args => ShowText(args[0], Convert.ToInt32(args[1]), Convert.ToInt32(args[2])),
|
["show-text"] = args => ShowText(args[0], Convert.ToInt32(args[1]), Convert.ToInt32(args[2])),
|
||||||
["show-commands"] = args => ShowCommands(),
|
|
||||||
["cycle-audio"] = args => CycleAudio(),
|
["cycle-audio"] = args => CycleAudio(),
|
||||||
["cycle-subtitles"] = args => CycleSubtitles(),
|
["cycle-subtitles"] = args => CycleSubtitles(),
|
||||||
["playlist-first"] = args => PlaylistFirst(),
|
["playlist-first"] = args => PlaylistFirst(),
|
||||||
@@ -27,13 +24,13 @@ public class Command
|
|||||||
|
|
||||||
// deprecated
|
// deprecated
|
||||||
["playlist-add"] = args => PlaylistAdd(Convert.ToInt32(args[0])), // 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
|
["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");
|
int count = Player.GetPropertyInt("playlist-count");
|
||||||
|
|
||||||
@@ -52,37 +49,6 @@ public class Command
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void ShowCommands()
|
|
||||||
{
|
|
||||||
string json = Core.GetPropertyString("command-list");
|
|
||||||
var enumerator = JsonDocument.Parse(json).RootElement.EnumerateArray();
|
|
||||||
var commands = enumerator.OrderBy(it => it.GetProperty("name").GetString());
|
|
||||||
StringBuilder sb = new StringBuilder();
|
|
||||||
|
|
||||||
foreach (var cmd in commands)
|
|
||||||
{
|
|
||||||
sb.AppendLine();
|
|
||||||
sb.AppendLine(cmd.GetProperty("name").GetString());
|
|
||||||
|
|
||||||
foreach (var args in cmd.GetProperty("args").EnumerateArray())
|
|
||||||
{
|
|
||||||
string value = args.GetProperty("name").GetString() + " <" +
|
|
||||||
args.GetProperty("type").GetString()!.ToLower() + ">";
|
|
||||||
|
|
||||||
if (args.GetProperty("optional").GetBoolean())
|
|
||||||
value = "[" + value + "]";
|
|
||||||
|
|
||||||
sb.AppendLine(" " + value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
string header = BR +
|
|
||||||
"https://mpv.io/manual/master/#list-of-input-commands" + BR2 +
|
|
||||||
"https://github.com/stax76/mpv-scripts#command_palette" + BR;
|
|
||||||
|
|
||||||
ShowTextWithEditor("Input Commands", header + sb.ToString());
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void ShowText(string text, int duration = 0, int fontSize = 0)
|
public static void ShowText(string text, int duration = 0, int fontSize = 0)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(text))
|
if (string.IsNullOrEmpty(text))
|
||||||
@@ -98,15 +64,7 @@ public class Command
|
|||||||
"}${osd-ass-cc/1}" + text + "\" " + duration);
|
"}${osd-ass-cc/1}" + text + "\" " + duration);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void ShowTextWithEditor(string name, string text)
|
void CycleAudio()
|
||||||
{
|
|
||||||
string file = Path.Combine(Path.GetTempPath(), name + ".txt");
|
|
||||||
App.TempFiles.Add(file);
|
|
||||||
File.WriteAllText(file, BR + text.Trim() + BR);
|
|
||||||
ProcessHelp.ShellExecute(file);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void CycleAudio()
|
|
||||||
{
|
{
|
||||||
Player.UpdateExternalTracks();
|
Player.UpdateExternalTracks();
|
||||||
|
|
||||||
@@ -134,7 +92,7 @@ public class Command
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void CycleSubtitles()
|
void CycleSubtitles()
|
||||||
{
|
{
|
||||||
Player.UpdateExternalTracks();
|
Player.UpdateExternalTracks();
|
||||||
|
|
||||||
@@ -166,7 +124,7 @@ public class Command
|
|||||||
}
|
}
|
||||||
|
|
||||||
// deprecated
|
// deprecated
|
||||||
public static void PlaylistAdd(int value)
|
void PlaylistAdd(int value)
|
||||||
{
|
{
|
||||||
int pos = Player.PlaylistPos;
|
int pos = Player.PlaylistPos;
|
||||||
int count = Player.GetPropertyInt("playlist-count");
|
int count = Player.GetPropertyInt("playlist-count");
|
||||||
@@ -185,13 +143,13 @@ public class Command
|
|||||||
Player.SetPropertyInt("playlist-pos", pos);
|
Player.SetPropertyInt("playlist-pos", pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void PlaylistFirst()
|
void PlaylistFirst()
|
||||||
{
|
{
|
||||||
if (Player.PlaylistPos != 0)
|
if (Player.PlaylistPos != 0)
|
||||||
Player.SetPropertyInt("playlist-pos", 0);
|
Player.SetPropertyInt("playlist-pos", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void PlaylistLast()
|
void PlaylistLast()
|
||||||
{
|
{
|
||||||
int count = Player.GetPropertyInt("playlist-count");
|
int count = Player.GetPropertyInt("playlist-count");
|
||||||
|
|
||||||
@@ -200,14 +158,14 @@ public class Command
|
|||||||
}
|
}
|
||||||
|
|
||||||
// deprecated
|
// deprecated
|
||||||
public static void PlaylistRandom()
|
void PlaylistRandom()
|
||||||
{
|
{
|
||||||
int count = Player.GetPropertyInt("playlist-count");
|
int count = Player.GetPropertyInt("playlist-count");
|
||||||
Player.SetPropertyInt("playlist-pos", new Random().Next(count));
|
Player.SetPropertyInt("playlist-pos", new Random().Next(count));
|
||||||
}
|
}
|
||||||
|
|
||||||
// deprecated
|
// deprecated
|
||||||
public void ShowProgress()
|
void ShowProgress()
|
||||||
{
|
{
|
||||||
TimeSpan position = TimeSpan.FromSeconds(Player.GetPropertyDouble("time-pos"));
|
TimeSpan position = TimeSpan.FromSeconds(Player.GetPropertyDouble("time-pos"));
|
||||||
TimeSpan duration = TimeSpan.FromSeconds(Player.GetPropertyDouble("duration"));
|
TimeSpan duration = TimeSpan.FromSeconds(Player.GetPropertyDouble("duration"));
|
||||||
|
|||||||
151
src/MpvNet/CommandLine.cs
Normal file
@@ -0,0 +1,151 @@
|
|||||||
|
|
||||||
|
namespace MpvNet;
|
||||||
|
|
||||||
|
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
|
||||||
|
{
|
||||||
|
if (_arguments != null)
|
||||||
|
return _arguments;
|
||||||
|
|
||||||
|
_arguments = new();
|
||||||
|
|
||||||
|
foreach (string i in Environment.GetCommandLineArgs().Skip(1))
|
||||||
|
{
|
||||||
|
string arg = i;
|
||||||
|
|
||||||
|
if (!arg.StartsWith("--"))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (!arg.Contains('='))
|
||||||
|
{
|
||||||
|
if (arg.Contains("--no-"))
|
||||||
|
{
|
||||||
|
arg = arg.Replace("--no-", "--");
|
||||||
|
arg += "=no";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
arg += "=yes";
|
||||||
|
}
|
||||||
|
|
||||||
|
string left = arg[2..arg.IndexOf("=")];
|
||||||
|
string right = arg[(left.Length + 3)..];
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(left))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
switch (left)
|
||||||
|
{
|
||||||
|
case "script": left = "scripts"; break;
|
||||||
|
case "audio-file": left = "audio-files"; break;
|
||||||
|
case "sub-file": left = "sub-files"; break;
|
||||||
|
case "external-file": left = "external-files"; break;
|
||||||
|
}
|
||||||
|
|
||||||
|
_arguments.Add(new StringPair(left, right));
|
||||||
|
}
|
||||||
|
|
||||||
|
return _arguments;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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("\\\\") || 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)
|
||||||
|
if (pair.Name == name)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string GetValue(string name)
|
||||||
|
{
|
||||||
|
foreach (StringPair pair in Arguments)
|
||||||
|
if (pair.Name == name)
|
||||||
|
return pair.Value;
|
||||||
|
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -5,16 +5,49 @@ namespace MpvNet;
|
|||||||
|
|
||||||
public static class FileTypes
|
public static class FileTypes
|
||||||
{
|
{
|
||||||
public static string[] Video { get; set; } = "mkv mp4 avi mov flv mpg webm wmv ts vob 264 265 asf avc avs dav h264 h265 hevc m2t m2ts m2v m4v mpeg mpv mts vpy y4m".Split(' ');
|
|
||||||
public static string[] Audio { get; set; } = "mp3 flac m4a mka mp2 ogg opus aac ac3 dts dtshd dtshr dtsma eac3 mpa mpc thd w64 wav".Split(' ');
|
|
||||||
public static string[] Image { get; set; } = { "jpg", "bmp", "png", "gif", "webp" };
|
|
||||||
public static string[] Subtitle { get; } = { "srt", "ass", "idx", "sub", "sup", "ttxt", "txt", "ssa", "smi", "mks" };
|
public static string[] Subtitle { get; } = { "srt", "ass", "idx", "sub", "sup", "ttxt", "txt", "ssa", "smi", "mks" };
|
||||||
|
|
||||||
public static bool IsImage(string extension) => Image.Contains(extension);
|
public static bool IsVideo(string[] exts, string ext) => exts?.Contains(ext) ?? false;
|
||||||
public static bool IsAudio(string extension) => Audio.Contains(extension);
|
public static bool IsAudio(string[] exts, string ext) => exts?.Contains(ext) ?? false;
|
||||||
|
public static bool IsImage(string[] exts, string ext) => exts?.Contains(ext) ?? false;
|
||||||
|
|
||||||
public static bool IsMedia(string extension) =>
|
public static bool IsVideo(string ext) => GetVideoExts().Contains(ext);
|
||||||
Video.Contains(extension) || Audio.Contains(extension) || Image.Contains(extension);
|
public static bool IsAudio(string ext) => GetAudioExts().Contains(ext);
|
||||||
|
public static bool IsImage(string ext) => GetImgExts().Contains(ext);
|
||||||
|
|
||||||
public static IEnumerable<string> GetMediaFiles(IEnumerable<string> files) => files.Where(i => IsMedia(i.Ext()));
|
public static string[] GetVideoExts()
|
||||||
|
{
|
||||||
|
string exts = Player.GetPropertyString("video-exts");
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(exts))
|
||||||
|
return "mkv mp4 avi mov flv mpg webm wmv ts vob 264 265 asf avc avs dav h264 h265 hevc m2t m2ts m2v m4v mpeg mpv mts vpy y4m".Split(' ');
|
||||||
|
|
||||||
|
return exts.Split(" ,;".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string[] GetAudioExts()
|
||||||
|
{
|
||||||
|
string exts = Player.GetPropertyString("audio-exts");
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(exts))
|
||||||
|
return "mp3 flac m4a mka mp2 ogg opus aac ac3 dts dtshd dtshr dtsma eac3 mpa mpc thd w64 wav".Split(' ');
|
||||||
|
|
||||||
|
return exts.Split(" ,;".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string[] GetImgExts()
|
||||||
|
{
|
||||||
|
string exts = Player.GetPropertyString("image-exts");
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(exts))
|
||||||
|
return new string[]{ "jpg", "bmp", "png", "gif", "webp" };
|
||||||
|
|
||||||
|
return exts.Split(" ,;".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool IsMedia(string[] exts, string ext) =>
|
||||||
|
IsVideo(exts, ext) || IsAudio(exts, ext) || IsImage(exts, ext);
|
||||||
|
|
||||||
|
public static IEnumerable<string> GetMediaFiles(string[] files) =>
|
||||||
|
files.Where(i => IsMedia(files, i.Ext()));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,4 +10,5 @@ public static class Global
|
|||||||
public static readonly AppClass App = new AppClass();
|
public static readonly AppClass App = new AppClass();
|
||||||
|
|
||||||
public static string _(string value) => Translator.Current!.Gettext(value);
|
public static string _(string value) => Translator.Current!.Gettext(value);
|
||||||
|
public static string _p(string context, string value) => Translator.Current!.GetParticularString(context, value);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,14 +1,22 @@
|
|||||||
namespace MpvNet.Help;
|
|
||||||
|
namespace MpvNet.Help;
|
||||||
|
|
||||||
public static class ProcessHelp
|
public static class ProcessHelp
|
||||||
{
|
{
|
||||||
public static void Execute(string file, string arguments = "", bool shellExecute = false)
|
public static void Execute(string file, string arguments = "", bool shellExecute = false)
|
||||||
{
|
{
|
||||||
using Process proc = new Process();
|
try
|
||||||
proc.StartInfo.FileName = file;
|
{
|
||||||
proc.StartInfo.Arguments = arguments;
|
using Process proc = new Process();
|
||||||
proc.StartInfo.UseShellExecute = shellExecute;
|
proc.StartInfo.FileName = file;
|
||||||
proc.Start();
|
proc.StartInfo.Arguments = arguments;
|
||||||
|
proc.StartInfo.UseShellExecute = shellExecute;
|
||||||
|
proc.Start();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Terminal.WriteError(ex.ToString());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void ShellExecute(string file, string arguments = "") => Execute(file, arguments, true);
|
public static void ShellExecute(string file, string arguments = "") => Execute(file, arguments, true);
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
|
|
||||||
using MpvNet.ExtensionMethod;
|
|
||||||
using MpvNet.Help;
|
using MpvNet.Help;
|
||||||
|
|
||||||
namespace MpvNet;
|
namespace MpvNet;
|
||||||
@@ -15,12 +14,15 @@ public class InputConf
|
|||||||
public string Path {
|
public string Path {
|
||||||
get => _path ?? "";
|
get => _path ?? "";
|
||||||
set {
|
set {
|
||||||
_path = value;
|
if (_path != value)
|
||||||
Content = File.Exists(_path) ? FileHelp.ReadTextFile(_path) : "";
|
{
|
||||||
|
_path = value;
|
||||||
|
Content = File.Exists(_path) ? FileHelp.ReadTextFile(_path) : "";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool HasMenu => Content.Contains("#menu:") || Content.Contains("#! ");
|
public bool HasMenu => Content.Contains(App.MenuSyntax + " ");
|
||||||
|
|
||||||
public (List<Binding> menuBindings, List<Binding>? confBindings) GetBindings()
|
public (List<Binding> menuBindings, List<Binding>? confBindings) GetBindings()
|
||||||
{
|
{
|
||||||
@@ -50,7 +52,29 @@ public class InputConf
|
|||||||
public string GetContent()
|
public string GetContent()
|
||||||
{
|
{
|
||||||
if (HasMenu)
|
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;
|
return Content;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var defaults = InputHelp.GetDefaults();
|
var defaults = InputHelp.GetDefaults();
|
||||||
@@ -73,4 +97,9 @@ public class InputConf
|
|||||||
return InputHelp.ConvertToString(defaults);
|
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");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,210 +7,255 @@ public static class InputHelp
|
|||||||
{
|
{
|
||||||
public static List<Binding> GetDefaults()
|
public static List<Binding> GetDefaults()
|
||||||
{
|
{
|
||||||
List<Binding> bindings = new List<Binding>()
|
List<Binding> b = new();
|
||||||
{
|
|
||||||
new (_("File"), _("Open Files..."), "script-message-to mpvnet open-files", "o"),
|
|
||||||
new (_("File"), _("Open URL or file from clipboard"), "script-message-to mpvnet open-clipboard", "Ctrl+v"),
|
|
||||||
new (_("File"), _("Open DVD/Blu-ray Drive/Folder..."), "script-message-to mpvnet open-optical-media"),
|
|
||||||
new (_("File"), "-"),
|
|
||||||
new (_("File"), _("Add external audio files..."), "script-message-to mpvnet load-audio", "Alt+a"),
|
|
||||||
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"), "-"),
|
|
||||||
new (_("File"), _("Exit"), "quit", "Esc"),
|
|
||||||
|
|
||||||
new (_("Playback"), _("Play/Pause"), "script-message-to mpvnet play-pause", "Space"),
|
Add(b, new (_("File"), _("Open Files..."), "script-message-to mpvnet open-files", "o"));
|
||||||
new (_("Playback"), _("Stop"), "stop", "Ctrl+s"),
|
Add(b, new (_("File"), _("Open URL or file from clipboard"), "script-message-to mpvnet open-clipboard", "Ctrl+v"));
|
||||||
|
Add(b, new (_("File"), _("Open DVD/Blu-ray Drive/Folder..."), "script-message-to mpvnet open-optical-media"));
|
||||||
|
Add(b, new (_("File"), "-"));
|
||||||
|
Add(b, new (_("File"), _("Add external audio files..."), "script-message-to mpvnet load-audio", "Alt+a"));
|
||||||
|
Add(b, new (_("File"), _("Add external subtitle files..."), "script-message-to mpvnet load-sub", "Alt+s"));
|
||||||
|
Add(b, new (_("File"), "-"));
|
||||||
|
Add(b, new (_("File"), _("Add files to playlist..."), "script-message-to mpvnet open-files append"));
|
||||||
|
Add(b, new (_("File"), _("Add files/URLs to playlist from clipboard"), "script-message-to mpvnet open-clipboard append", "Ctrl+Shift+v"));
|
||||||
|
Add(b, new (_("File"), "-"));
|
||||||
|
Add(b, new (_("File"), _("Recent Files")));
|
||||||
|
Add(b, new (_("File"), _("Exit"), "quit", "Esc"));
|
||||||
|
|
||||||
new (_("Navigate"), _("Previous File"), "playlist-prev", "F11"),
|
Add(b, new (_("Playback"), _("Play/Pause"), "script-message-to mpvnet play-pause", "Space"));
|
||||||
new (_("Navigate"), _("Next File"), "playlist-next", "F12"),
|
Add(b, new (_("Playback"), _("Stop"), "stop", "Ctrl+s"));
|
||||||
new (_("Navigate"), "-"),
|
|
||||||
new (_("Navigate"), _("First File"), "script-message-to mpvnet playlist-first", "Home"),
|
|
||||||
new (_("Navigate"), _("Last File"), "script-message-to mpvnet playlist-last", "End"),
|
|
||||||
|
|
||||||
new (_("Navigate"), "-"),
|
Add(b, new (_("Navigate"), _("Previous File"), "playlist-prev", "F11"));
|
||||||
new (_("Navigate"), _("Next Chapter"), "add chapter 1", "PGUP"),
|
Add(b, new (_("Navigate"), _("Next File"), "playlist-next", "F12"));
|
||||||
new (_("Navigate"), _("Previous Chapter"), "add chapter -1", "PGDWN"),
|
Add(b, new (_("Navigate"), "-"));
|
||||||
new (_("Navigate"), "-"),
|
Add(b, new (_("Navigate"), _("First File"), "script-message-to mpvnet playlist-first", "Home"));
|
||||||
new (_("Navigate"), _("Jump To Next Frame"), "frame-step", "."),
|
Add(b, new (_("Navigate"), _("Last File"), "script-message-to mpvnet playlist-last", "End"));
|
||||||
new (_("Navigate"), _("Jump To Previous Frame"), "frame-back-step", ","),
|
|
||||||
new (_("Navigate"), "-"),
|
|
||||||
new (_("Navigate"), _("Jump 5 sec forward"), "seek 5", "Right"),
|
|
||||||
new (_("Navigate"), _("Jump 5 sec backward"), "seek -5", "Left"),
|
|
||||||
new (_("Navigate"), "-"),
|
|
||||||
new (_("Navigate"), _("Jump 30 sec forward"), "seek 30", "Up"),
|
|
||||||
new (_("Navigate"), _("Jump 30 sec backward"), "seek -30", "Down"),
|
|
||||||
new (_("Navigate"), "-"),
|
|
||||||
new (_("Navigate"), _("Jump 5 min forward"), "seek 300", "Ctrl+Right"),
|
|
||||||
new (_("Navigate"), _("Jump 5 min backward"), "seek -300", "Ctrl+Left"),
|
|
||||||
new (_("Navigate"), "-"),
|
|
||||||
new (_("Navigate"), _("Title")),
|
|
||||||
new (_("Navigate"), _("Chapter")),
|
|
||||||
|
|
||||||
new (_("Pan & Scan"), _("Decrease Size"), "add video-zoom -0.1", "Ctrl+-"),
|
Add(b, new (_("Navigate"), "-"));
|
||||||
new (_("Pan & Scan"), _("Increase Size"), "add video-zoom 0.1", "Ctrl++"),
|
Add(b, new (_("Navigate"), _("Next Chapter"), "add chapter 1", "PGUP"));
|
||||||
new (_("Pan & Scan"), "-"),
|
Add(b, new (_("Navigate"), _("Previous Chapter"), "add chapter -1", "PGDWN"));
|
||||||
new (_("Pan & Scan"), _("Move Left"), "add video-pan-x -0.01", "Ctrl+KP4"),
|
Add(b, new (_("Navigate"), "-"));
|
||||||
new (_("Pan & Scan"), _("Move Right"), "add video-pan-x 0.01", "Ctrl+KP6"),
|
Add(b, new (_("Navigate"), _("Jump To Next Frame"), "frame-step", "."));
|
||||||
new (_("Pan & Scan"), "-"),
|
Add(b, new (_("Navigate"), _("Jump To Previous Frame"), "frame-back-step", ","));
|
||||||
new (_("Pan & Scan"), _("Move Up"), "add video-pan-y -0.01", "Ctrl+KP8"),
|
Add(b, new (_("Navigate"), "-"));
|
||||||
new (_("Pan & Scan"), _("Move Down"), "add video-pan-y 0.01", "Ctrl+KP2"),
|
Add(b, new (_("Navigate"), _("Jump 5 sec forward"), "seek 5", "Right"));
|
||||||
new (_("Pan & Scan"), "-"),
|
Add(b, new (_("Navigate"), _("Jump 5 sec backward"), "seek -5", "Left"));
|
||||||
new (_("Pan & Scan"), _("Decrease Height"), "add panscan -0.1", "w"),
|
Add(b, new (_("Navigate"), "-"));
|
||||||
new (_("Pan & Scan"), _("Increase Height"), "add panscan 0.1", "W"),
|
Add(b, new (_("Navigate"), _("Jump 30 sec forward"), "seek 30", "Up"));
|
||||||
new (_("Pan & Scan"), "-"),
|
Add(b, new (_("Navigate"), _("Jump 30 sec backward"), "seek -30", "Down"));
|
||||||
new (_("Pan & Scan"), _("Reset"), "set video-zoom 0; set video-pan-x 0; set video-pan-y 0", "Ctrl+BS"),
|
Add(b, new (_("Navigate"), "-"));
|
||||||
|
Add(b, new (_("Navigate"), _("Jump 5 min forward"), "seek 300", "Ctrl+Right"));
|
||||||
|
Add(b, new (_("Navigate"), _("Jump 5 min backward"), "seek -300", "Ctrl+Left"));
|
||||||
|
Add(b, new (_("Navigate"), "-"));
|
||||||
|
Add(b, new (_("Navigate"), _("Title")));
|
||||||
|
Add(b, new (_("Navigate"), _("Chapter")));
|
||||||
|
|
||||||
new (_("Video"), _("Decrease Contrast"), "add contrast -1", "Ctrl+1"),
|
Add(b, new (_("Pan & Scan"), _("Decrease Size"), "add video-zoom -0.1", "Ctrl+-"));
|
||||||
new (_("Video"), _("Increase Contrast"), "add contrast 1", "Ctrl+2"),
|
Add(b, new (_("Pan & Scan"), _("Increase Size"), "add video-zoom 0.1", "Ctrl++"));
|
||||||
new (_("Video"), "-"),
|
Add(b, new (_("Pan & Scan"), "-"));
|
||||||
new (_("Video"), _("Decrease Brightness"), "add brightness -1", "Ctrl+3"),
|
Add(b, new (_("Pan & Scan"), _("Move Left"), "add video-pan-x -0.01", "Ctrl+KP4"));
|
||||||
new (_("Video"), _("Increase Brightness"), "add brightness 1", "Ctrl+4"),
|
Add(b, new (_("Pan & Scan"), _("Move Right"), "add video-pan-x 0.01", "Ctrl+KP6"));
|
||||||
new (_("Video"), "-"),
|
Add(b, new (_("Pan & Scan"), "-"));
|
||||||
new (_("Video"), _("Decrease Gamma"), "add gamma -1", "Ctrl+5"),
|
Add(b, new (_("Pan & Scan"), _("Move Up"), "add video-pan-y -0.01", "Ctrl+KP8"));
|
||||||
new (_("Video"), _("Increase Gamma"), "add gamma 1", "Ctrl+6"),
|
Add(b, new (_("Pan & Scan"), _("Move Down"), "add video-pan-y 0.01", "Ctrl+KP2"));
|
||||||
new (_("Video"), "-"),
|
Add(b, new (_("Pan & Scan"), "-"));
|
||||||
new (_("Video"), _("Decrease Saturation"), "add saturation -1", "Ctrl+7"),
|
Add(b, new (_("Pan & Scan"), _("Decrease Height"), "add panscan -0.1", "w"));
|
||||||
new (_("Video"), _("Increase Saturation"), "add saturation 1", "Ctrl+8"),
|
Add(b, new (_("Pan & Scan"), _("Increase Height"), "add panscan 0.1", "W"));
|
||||||
new (_("Video"), "-"),
|
Add(b, new (_("Pan & Scan"), "-"));
|
||||||
new (_("Video"), _("Take Screenshot"), "async screenshot", "s"),
|
Add(b, new (_("Pan & Scan"), _("Reset"), "set video-zoom 0; set video-pan-x 0; set video-pan-y 0", "Ctrl+BS"));
|
||||||
new (_("Video"), _("Take Screenshot without subtitles"), "async screenshot video", "S"),
|
|
||||||
new (_("Video"), _("Toggle Deinterlace"), "cycle deinterlace", "d"),
|
|
||||||
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"), _("Next Track"), "script-message-to mpvnet cycle-audio", "KP7"),
|
Add(b, new (_("Video"), _("Decrease Contrast"), "add contrast -1", "Ctrl+1"));
|
||||||
new (_("Audio"), "-"),
|
Add(b, new (_("Video"), _("Increase Contrast"), "add contrast 1", "Ctrl+2"));
|
||||||
new (_("Audio"), _("Delay +0.1"), "add audio-delay 0.1", "Ctrl+d"),
|
Add(b, new (_("Video"), "-"));
|
||||||
new (_("Audio"), _("Delay -0.1"), "add audio-delay -0.1", "Ctrl+D"),
|
Add(b, new (_("Video"), _("Decrease Brightness"), "add brightness -1", "Ctrl+3"));
|
||||||
|
Add(b, new (_("Video"), _("Increase Brightness"), "add brightness 1", "Ctrl+4"));
|
||||||
|
Add(b, new (_("Video"), "-"));
|
||||||
|
Add(b, new (_("Video"), _("Decrease Gamma"), "add gamma -1", "Ctrl+5"));
|
||||||
|
Add(b, new (_("Video"), _("Increase Gamma"), "add gamma 1", "Ctrl+6"));
|
||||||
|
Add(b, new (_("Video"), "-"));
|
||||||
|
Add(b, new (_("Video"), _("Decrease Saturation"), "add saturation -1", "Ctrl+7"));
|
||||||
|
Add(b, new (_("Video"), _("Increase Saturation"), "add saturation 1", "Ctrl+8"));
|
||||||
|
Add(b, new (_("Video"), "-"));
|
||||||
|
Add(b, new (_("Video"), _("Take Screenshot"), "async screenshot", "s"));
|
||||||
|
Add(b, new (_("Video"), _("Take Screenshot without subtitles"), "async screenshot video", "S"));
|
||||||
|
Add(b, new (_("Video"), _("Toggle Deinterlace"), "cycle deinterlace", "d"));
|
||||||
|
Add(b, new (_("Video"), _("Change Aspect Ratio"), "cycle-values video-aspect-override 16:9 4:3 2.35:1 0 -1", "a"));
|
||||||
|
Add(b, new (_("Video"), _("Rotate Video"), "cycle-values video-rotate 90 180 270 0", "Ctrl+r"));
|
||||||
|
Add(b, new (_("Video"), _("Stream Quality"), "script-message-to mpvnet stream-quality", "Alt+q"));
|
||||||
|
|
||||||
new (_("Subtitle"), _("Next Track"), "script-message-to mpvnet cycle-subtitles", "KP8"),
|
Add(b, new (_("Audio"), _("Audio Device")));
|
||||||
new (_("Subtitle"), _("Toggle Visibility"), "cycle sub-visibility", "v"),
|
Add(b, new (_("Audio"), _("Next Track"), "script-message-to mpvnet cycle-audio", "KP7"));
|
||||||
new (_("Subtitle"), "-"),
|
Add(b, new (_("Audio"), "-"));
|
||||||
new (_("Subtitle"), _("Delay -0.1"), "add sub-delay -0.1", "z"),
|
Add(b, new (_("Audio"), _("Delay +0.1"), "add audio-delay 0.1", "Ctrl+d"));
|
||||||
new (_("Subtitle"), _("Delay +0.1"), "add sub-delay 0.1", "Z"),
|
Add(b, new (_("Audio"), _("Delay -0.1"), "add audio-delay -0.1", "Ctrl+D"));
|
||||||
new (_("Subtitle"), "-"),
|
|
||||||
new (_("Subtitle"), _("Move Up"), "add sub-pos -1", "r"),
|
|
||||||
new (_("Subtitle"), _("Move Down"), "add sub-pos 1", "R"),
|
|
||||||
new (_("Subtitle"), "-"),
|
|
||||||
new (_("Subtitle"), _("Decrease Font Size"), "add sub-scale -0.1", "F"),
|
|
||||||
new (_("Subtitle"), _("Increase Font Size"), "add sub-scale 0.1", "G"),
|
|
||||||
new (_("Subtitle"), "-"),
|
|
||||||
new (_("Subtitle") + " > " + _("More"), _("Toggle overriding SSA/ASS styles with normal styles"), "cycle-values sub-ass-override force no", "u"),
|
|
||||||
|
|
||||||
new ("", _("Track")),
|
Add(b, new (_("Subtitle"), _("Next Track"), "script-message-to mpvnet cycle-subtitles", "KP8"));
|
||||||
|
Add(b, new (_("Subtitle"), _("Toggle Visibility"), "cycle sub-visibility", "v"));
|
||||||
|
Add(b, new (_("Subtitle"), "-"));
|
||||||
|
Add(b, new (_("Subtitle"), _("Delay -0.1"), "add sub-delay -0.1", "z"));
|
||||||
|
Add(b, new (_("Subtitle"), _("Delay +0.1"), "add sub-delay 0.1", "Z"));
|
||||||
|
Add(b, new (_("Subtitle"), "-"));
|
||||||
|
Add(b, new (_("Subtitle"), _("Move Up"), "add sub-pos -1", "r"));
|
||||||
|
Add(b, new (_("Subtitle"), _("Move Down"), "add sub-pos 1", "R"));
|
||||||
|
Add(b, new (_("Subtitle"), "-"));
|
||||||
|
Add(b, new (_("Subtitle"), _("Decrease Font Size"), "add sub-scale -0.1", "F"));
|
||||||
|
Add(b, new (_("Subtitle"), _("Increase Font Size"), "add sub-scale 0.1", "G"));
|
||||||
|
Add(b, new (_("Subtitle"), "-"));
|
||||||
|
Add(b, new (_("Subtitle") + " > " + _("More"), _("Toggle overriding SSA/ASS styles with normal styles"), "cycle-values sub-ass-override force no", "u"));
|
||||||
|
|
||||||
new (_("Volume"), _("Up"), "add volume 2", "+"),
|
Add(b, new ("", _("Track")));
|
||||||
new (_("Volume"), _("Down"), "add volume -2", "-"),
|
|
||||||
new (_("Volume"), "-"),
|
|
||||||
new (_("Volume"), _("Mute"), "cycle mute", "m"),
|
|
||||||
|
|
||||||
new (_("Speed"), _("-10%"), "multiply speed 1/1.1", "["),
|
Add(b, new (_("Volume"), _p("Volume", "Up"), "add volume 2", "+"));
|
||||||
new (_("Speed"), _("+10%"), "multiply speed 1.1", "]"),
|
Add(b, new (_("Volume"), _p("Volume", "Down"), "add volume -2", "-"));
|
||||||
new (_("Speed"), "-"),
|
Add(b, new (_("Volume"), "-"));
|
||||||
new (_("Speed"), _("Half"), "multiply speed 0.5", "{"),
|
Add(b, new (_("Volume"), _("Mute"), "cycle mute", "m"));
|
||||||
new (_("Speed"), _("Double"), "multiply speed 2.0", "}"),
|
|
||||||
new (_("Speed"), "-"),
|
|
||||||
new (_("Speed"), _("Reset"), "set speed 1", "BS"),
|
|
||||||
|
|
||||||
new (_("View"), _("Show Playlist"), "script-message-to mpvnet show-playlist", "F8"),
|
Add(b, new (_("Speed"), _("-10%"), "multiply speed 1/1.1", "["));
|
||||||
new (_("View"), _("Show Profiles"), "script-message-to mpvnet show-profiles", "Ctrl+P"),
|
Add(b, new (_("Speed"), _("+10%"), "multiply speed 1.1", "]"));
|
||||||
new (_("View"), _("Toggle Statistics"), "script-binding stats/display-stats-toggle", "t"),
|
Add(b, new (_("Speed"), "-"));
|
||||||
new (_("View"), _("Toggle OSC Visibility"), "script-binding osc/visibility", "Del"),
|
Add(b, new (_("Speed"), _("Half"), "multiply speed 0.5", "{"));
|
||||||
new (_("View"), _("Show Media Info On-Screen"), "script-message-to mpvnet show-media-info osd", "i"),
|
Add(b, new (_("Speed"), _("Double"), "multiply speed 2.0", "}"));
|
||||||
new (_("View"), _("Show Media Info Message Box"), "script-message-to mpvnet show-media-info msgbox", "Ctrl+m"),
|
Add(b, new (_("Speed"), "-"));
|
||||||
new (_("View"), _("Show Progress"), "show-progress", "p"),
|
Add(b, new (_("Speed"), _("Reset"), "set speed 1", "BS"));
|
||||||
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 Demuxers"), "script-message-to mpvnet show-demuxers"),
|
|
||||||
new (_("View") + " > " + _("More"), _("Show Decoders"), "script-message-to mpvnet show-decoders"),
|
|
||||||
new (_("View") + " > " + _("More"), _("Show Bindings"), "script-message-to mpvnet show-bindings"),
|
|
||||||
|
|
||||||
new (_("Window"), _("Fullscreen"), "cycle fullscreen", "Enter"),
|
Add(b, new (_("View"), _("Toggle Statistics"), "script-binding stats/display-stats-toggle", "t"));
|
||||||
new (_("Window") + " > " + _("Zoom"), _("Enlarge"), "script-message-to mpvnet scale-window 1.2", "Alt++"),
|
Add(b, new (_("View"), _("Toggle OSC Visibility"), "script-binding osc/visibility", "Del"));
|
||||||
new (_("Window") + " > " + _("Zoom"), _("Shrink"), "script-message-to mpvnet scale-window 0.8", "Alt+-"),
|
Add(b, new (_("View"), _("Show Media Info On-Screen"), "script-message-to mpvnet show-media-info osd", "i"));
|
||||||
new (_("Window") + " > " + _("Zoom"), "-"),
|
Add(b, new (_("View"), _("Show Media Info Message Box"), "script-message-to mpvnet show-media-info msgbox", "Ctrl+m"));
|
||||||
new (_("Window") + " > " + _("Zoom"), _("50 %"), "script-message-to mpvnet window-scale 0.5", "Alt+0"),
|
Add(b, new (_("View"), _("Show Progress"), "show-progress", "p"));
|
||||||
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"), _("Toggle Border"), "cycle border", "b"),
|
|
||||||
new (_("Window"), _("Toggle On Top"), "cycle ontop", "Ctrl+t"),
|
|
||||||
|
|
||||||
new ("", _("Profile")),
|
Add(b, new (_("View") + " > " + _("On Screen Menu"), _("Playlist"), "script-binding select/select-playlist", "F8"));
|
||||||
|
Add(b, new (_("View") + " > " + _("On Screen Menu"), _("Bindings"), "script-binding select/select-binding", "F1"));
|
||||||
|
Add(b, new (_("View") + " > " + _("On Screen Menu"), _("Properties"), "script-binding select/show-properties", "F3"));
|
||||||
|
Add(b, new (_("View") + " > " + _("On Screen Menu"), _("Chapters"), "script-binding select/select-chapter", "Alt+c"));
|
||||||
|
Add(b, new (_("View") + " > " + _("On Screen Menu"), _("Tracks"), "script-binding select/select-track", "F9"));
|
||||||
|
Add(b, new (_("View") + " > " + _("On Screen Menu"), _("Audio Tracks"), "script-binding select/select-aid"));
|
||||||
|
Add(b, new (_("View") + " > " + _("On Screen Menu"), _("Subtitle Tracks"), "script-binding select/select-sid"));
|
||||||
|
Add(b, new (_("View") + " > " + _("On Screen Menu"), _("Secondary Subtitle"), "script-binding select/select-secondary-sid", "Alt+b"));
|
||||||
|
Add(b, new (_("View") + " > " + _("On Screen Menu"), _("Video Tracks"), "script-binding select/select-vid", "Alt+v"));
|
||||||
|
Add(b, new (_("View") + " > " + _("On Screen Menu"), _("Subtitle Lines"), "script-binding select/select-subtitle-line", "Alt+l"));
|
||||||
|
Add(b, new (_("View") + " > " + _("On Screen Menu"), _("Audio Devices"), "script-binding select/select-audio-device", "Alt+d"));
|
||||||
|
|
||||||
new (_("Settings"), _("Show Config Editor"), "script-message-to mpvnet show-conf-editor", "Ctrl+,"),
|
if (File.Exists(Player.ConfigFolder + "/scripts/command_palette.lua"))
|
||||||
new (_("Settings"), _("Show Input Editor"), "script-message-to mpvnet show-input-editor", "Ctrl+i"),
|
{
|
||||||
new (_("Settings"), _("Open Config Folder"), "script-message-to mpvnet open-conf-folder", "Ctrl+f"),
|
Add(b, new(_("View") + " > " + _("Command Palette"), _("Command Palette"), "script-message-to command_palette show-command-palette \"Command Palette\"", "Ctrl+p"));
|
||||||
new (_("Settings") + " > " + _("Setup"), _("Register video file associations"), "script-message-to mpvnet reg-file-assoc video"),
|
Add(b, new(_("View") + " > " + _("Command Palette"), _("Bindings"), "script-message-to command_palette show-command-palette \"Bindings\"", "F1"));
|
||||||
new (_("Settings") + " > " + _("Setup"), _("Register audio file associations"), "script-message-to mpvnet reg-file-assoc audio"),
|
Add(b, new(_("View") + " > " + _("Command Palette"), _("Properties"), "script-message-to command_palette show-command-palette \"Properties\"", "F2"));
|
||||||
new (_("Settings") + " > " + _("Setup"), _("Register image file associations"), "script-message-to mpvnet reg-file-assoc image"),
|
Add(b, new(_("View") + " > " + _("Command Palette"), _("Commands"), "script-message-to command_palette show-command-palette \"Commands\"", "F3"));
|
||||||
new (_("Settings") + " > " + _("Setup"), _("Unregister file associations"), "script-message-to mpvnet reg-file-assoc unreg"),
|
Add(b, new(_("View") + " > " + _("Command Palette"), _("Options"), "script-message-to command_palette show-command-palette \"Options\"", "F4"));
|
||||||
|
Add(b, new(_("View") + " > " + _("Command Palette"), _("Playlist"), "script-message-to command_palette show-command-palette \"Playlist\"", "F8"));
|
||||||
|
Add(b, new(_("View") + " > " + _("Command Palette"), _("Tracks"), "script-message-to command_palette show-command-palette \"Tracks\"", "F9"));
|
||||||
|
Add(b, new(_("View") + " > " + _("Command Palette"), _("Audio Tracks"), "script-message-to command_palette show-command-palette \"Audio Tracks\"", "Alt+a"));
|
||||||
|
Add(b, new(_("View") + " > " + _("Command Palette"), _("Subtitle Tracks"), "script-message-to command_palette show-command-palette \"Subtitle Tracks\"", "Alt+s"));
|
||||||
|
Add(b, new(_("View") + " > " + _("Command Palette"), _("Secondary Subtitle"), "script-message-to command_palette show-command-palette \"Secondary Subtitle\"", "Alt+b"));
|
||||||
|
Add(b, new(_("View") + " > " + _("Command Palette"), _("Video Tracks"), "script-message-to command_palette show-command-palette \"Video Tracks\"", "Alt+v"));
|
||||||
|
Add(b, new(_("View") + " > " + _("Command Palette"), _("Chapters"), "script-message-to command_palette show-command-palette \"Chapters\"", "Alt+c"));
|
||||||
|
Add(b, new(_("View") + " > " + _("Command Palette"), _("Profiles"), "script-message-to command_palette show-command-palette \"Profiles\"", "Alt+p"));
|
||||||
|
Add(b, new(_("View") + " > " + _("Command Palette"), _("Audio Devices"), "script-message-to command_palette show-command-palette \"Audio Devices\"", "Alt+d"));
|
||||||
|
Add(b, new(_("View") + " > " + _("Command Palette"), _("Subtitle Line"), "script-message-to command_palette show-command-palette \"Subtitle Line\"", "Alt+l"));
|
||||||
|
Add(b, new(_("View") + " > " + _("Command Palette"), _("Blu-ray Titles"), "script-message-to command_palette show-command-palette \"Blu-ray Titles\"", "Alt+t"));
|
||||||
|
Add(b, new(_("View") + " > " + _("Command Palette"), _("Stream Quality"), "script-message-to command_palette show-command-palette \"Stream Quality\"", "Alt+q"));
|
||||||
|
Add(b, new(_("View") + " > " + _("Command Palette"), _("Aspect Ratio"), "script-message-to command_palette show-command-palette \"Aspect Ratio\"", "Alt+r"));
|
||||||
|
Add(b, new(_("View") + " > " + _("Command Palette"), _("Recent Files"), "script-message-to mpvnet show-recent-in-command-palette", "Alt+f"));
|
||||||
|
}
|
||||||
|
|
||||||
new (_("Tools"), _("Set/clear A-B loop points"), "ab-loop", "l"),
|
Add(b, new (_("View") + " > " + _("More"), _("Show Console"), "script-binding console/enable", "`"));
|
||||||
new (_("Tools"), _("Toggle infinite file looping"), "cycle-values loop-file inf no", "L"),
|
Add(b, new (_("View") + " > " + _("More"), _("Show Commands"), "script-message-to mpvnet show-commands", "F2"));
|
||||||
new (_("Tools"), _("Shuffle Playlist"), "playlist-shuffle"),
|
Add(b, new (_("View") + " > " + _("More"), _("Show Bindings"), "script-message-to mpvnet show-bindings"));
|
||||||
new (_("Tools"), _("Toggle Hardware Decoding"), "cycle-values hwdec auto no", "Ctrl+h"),
|
Add(b, new (_("View") + " > " + _("More"), _("Show Keys"), "script-message-to mpvnet show-keys", "Alt+k"));
|
||||||
new (_("Tools"), _("Exit Watch Later"), "quit-watch-later", "Q"),
|
Add(b, new (_("View") + " > " + _("More"), _("Show Protocols"), "script-message-to mpvnet show-protocols", "Alt+p"));
|
||||||
|
Add(b, new (_("View") + " > " + _("More"), _("Show Decoders"), "script-message-to mpvnet show-decoders"));
|
||||||
|
Add(b, new (_("View") + " > " + _("More"), _("Show Demuxers"), "script-message-to mpvnet show-demuxers"));
|
||||||
|
|
||||||
new ("", _("Custom")),
|
Add(b, new (_("Window"), _("Fullscreen"), "cycle fullscreen", "Enter"));
|
||||||
|
Add(b, new (_("Window") + " > " + _("Zoom"), _("Enlarge"), "script-message-to mpvnet scale-window 1.2", "Alt++"));
|
||||||
|
Add(b, new (_("Window") + " > " + _("Zoom"), _("Shrink"), "script-message-to mpvnet scale-window 0.8", "Alt+-"));
|
||||||
|
Add(b, new (_("Window") + " > " + _("Zoom"), "-"));
|
||||||
|
Add(b, new (_("Window") + " > " + _("Zoom"), _("50 %"), "script-message-to mpvnet window-scale 0.5", "Alt+0"));
|
||||||
|
Add(b, new (_("Window") + " > " + _("Zoom"), _("100 %"), "script-message-to mpvnet window-scale 1.0", "Alt+1"));
|
||||||
|
Add(b, new (_("Window") + " > " + _("Zoom"), _("200 %"), "script-message-to mpvnet window-scale 2.0", "Alt+2"));
|
||||||
|
Add(b, new (_("Window") + " > " + _("Zoom"), _("300 %"), "script-message-to mpvnet window-scale 3.0", "Alt+3"));
|
||||||
|
Add(b, new (_("Window") + " > " + _("Move"), _p("Move", "Left"), "script-message-to mpvnet move-window left", "Alt+Left"));
|
||||||
|
Add(b, new (_("Window") + " > " + _("Move"), _p("Move", "Right"), "script-message-to mpvnet move-window right", "Alt+Right"));
|
||||||
|
Add(b, new (_("Window") + " > " + _("Move"), _p("Move", "Up"), "script-message-to mpvnet move-window top", "Alt+Up"));
|
||||||
|
Add(b, new (_("Window") + " > " + _("Move"), _p("Move", "Down"), "script-message-to mpvnet move-window bottom", "Alt+Down"));
|
||||||
|
Add(b, new (_("Window") + " > " + _("Move"), _p("Move", "Center"), "script-message-to mpvnet move-window center", "Alt+BS"));
|
||||||
|
Add(b, new (_("Window"), _("Toggle Border"), "cycle border", "b"));
|
||||||
|
Add(b, new (_("Window"), _("Toggle On Top"), "cycle ontop", "Ctrl+t"));
|
||||||
|
|
||||||
new (_("Help"), _("Website mpv"), "script-message-to mpvnet shell-execute https://mpv.io", "Ctrl+Home"),
|
Add(b, new ("", _("Profile")));
|
||||||
new (_("Help"), _("Website mpv.net"), "script-message-to mpvnet shell-execute https://github.com/mpvnet-player/mpv.net"),
|
|
||||||
new (_("Help"), "-"),
|
|
||||||
new (_("Help"), _("Manual mpv"), "script-message-to mpvnet shell-execute https://mpv.io/manual/stable", "Ctrl+F1"),
|
|
||||||
new (_("Help"), _("Manual mpv.net"), "script-message-to mpvnet shell-execute https://github.com/mpvnet-player/mpv.net/blob/main/docs/manual.md", "Ctrl+F2"),
|
|
||||||
new (_("Help"), "-"),
|
|
||||||
new (_("Help"), _("awesome-mpv"), "script-message-to mpvnet shell-execute https://github.com/stax76/awesome-mpv", "Ctrl+a"),
|
|
||||||
new (_("Help"), _("About mpv.net"), "script-message-to mpvnet show-about"),
|
|
||||||
|
|
||||||
new ("", "", "quit", "q", _("Exit")),
|
Add(b, new (_("Settings"), _("Show Config Editor"), "script-message-to mpvnet show-conf-editor", "Ctrl+,"));
|
||||||
new ("", "", "script-message-to mpvnet show-menu", "MBTN_Right", _("Show Menu")),
|
Add(b, new (_("Settings"), _("Show Input Editor"), "script-message-to mpvnet show-input-editor", "Ctrl+i"));
|
||||||
new ("", "", "quit", "Power", _("Exit")),
|
Add(b, new (_("Settings"), "-"));
|
||||||
new ("", "", "cycle pause", "Play", _("Play/Pause")),
|
Add(b, new (_("Settings"), _("Edit mpv.conf"), "script-message-to mpvnet edit-conf-file mpv.conf", "c"));
|
||||||
new ("", "", "cycle pause", "Pause", _("Play/Pause")),
|
Add(b, new (_("Settings"), _("Edit input.conf"), "script-message-to mpvnet edit-conf-file input.conf", "k"));
|
||||||
new ("", "", "cycle pause", "PlayPause", _("Play/Pause")),
|
Add(b, new (_("Settings"), "-"));
|
||||||
new ("", "", "cycle pause", "MBTN_Mid", _("Play/Pause")),
|
Add(b, new (_("Settings"), _("Open Config Folder"), "script-message-to mpvnet open-conf-folder", "Ctrl+f"));
|
||||||
new ("", "", "stop", "Stop", _("Stop")),
|
Add(b, new (_("Settings") + " > " + _("Setup"), _("Register video file associations"), "script-message-to mpvnet reg-file-assoc video"));
|
||||||
new ("", "", "seek 60", "Forward", _("Forward")),
|
Add(b, new (_("Settings") + " > " + _("Setup"), _("Register audio file associations"), "script-message-to mpvnet reg-file-assoc audio"));
|
||||||
new ("", "", "seek -60", "Rewind", _("Backward")),
|
Add(b, new (_("Settings") + " > " + _("Setup"), _("Register image file associations"), "script-message-to mpvnet reg-file-assoc image"));
|
||||||
new ("", "", "add volume 2", "Wheel_Up", _("Volume Up")),
|
Add(b, new (_("Settings") + " > " + _("Setup"), _("Unregister file associations"), "script-message-to mpvnet reg-file-assoc unreg"));
|
||||||
new ("", "", "add volume -2", "Wheel_Down", _("Volume Down")),
|
Add(b, new (_("Settings") + " > " + _("Setup"), "-"));
|
||||||
new ("", "", "add volume 2", "Wheel_Right", _("Volume Up")),
|
Add(b, new (_("Settings") + " > " + _("Setup"), _("Add mpv.net to Path environment variable"), "script-message-to mpvnet add-to-path"));
|
||||||
new ("", "", "add volume -2", "Wheel_Left", _("Volume Down")),
|
Add(b, new (_("Settings") + " > " + _("Setup"), _("Remove mpv.net from Path environment variable"), "script-message-to mpvnet remove-from-path"));
|
||||||
new ("", "", "playlist-prev", "Prev", _("Previous File")),
|
Add(b, new (_("Settings") + " > " + _("Setup"), "-"));
|
||||||
new ("", "", "playlist-next", "Next", _("Next File")),
|
Add(b, new (_("Settings") + " > " + _("Setup"), _("Install Command Palette"), "script-message-to mpvnet install-command-palette"));
|
||||||
new ("", "", "playlist-prev", "MBTN_Back", _("Previous File")),
|
|
||||||
new ("", "", "playlist-next", "MBTN_Forward", _("Next File")),
|
|
||||||
new ("", "", "playlist-prev", "<", _("Previous File")),
|
|
||||||
new ("", "", "playlist-next", ">", _("Next File")),
|
|
||||||
new ("", "", "ignore", "MBTN_Left", _("Ignore left mouse butten")),
|
|
||||||
new ("", "", "cycle fullscreen", "f", _("Fullscreen")),
|
|
||||||
new ("", "", "cycle fullscreen", "MBTN_Left_DBL", _("Fullscreen")),
|
|
||||||
new ("", "", "no-osd seek 1 exact", "Shift+Right", _("Seek Forward")),
|
|
||||||
new ("", "", "no-osd seek -1 exact", "Shift+Left", _("Seek Backward")),
|
|
||||||
new ("", "", "no-osd seek 5 exact", "Shift+Up", _("Seek Forward")),
|
|
||||||
new ("", "", "no-osd seek -5 exact", "Shift+Down", _("Seek Backward")),
|
|
||||||
new ("", "", "revert-seek", "Shift+BS", _("Undo previous (or marked) seek")),
|
|
||||||
new ("", "", "revert-seek mark", "Shift+Ctrl+BS", _("Mark position for revert-seek")),
|
|
||||||
new ("", "", "no-osd sub-seek -1", "Ctrl+Shift+Left", _("Seek to previous subtitle")),
|
|
||||||
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 (_("Command Palette"), _("Commands"), "script-message-to mpvnet show-command-palette", "F1"),
|
|
||||||
};
|
|
||||||
|
|
||||||
return bindings;
|
Add(b, new (_("Tools"), _("Set/clear A-B loop points"), "ab-loop", "l"));
|
||||||
|
Add(b, new (_("Tools"), _("Toggle infinite file looping"), "cycle-values loop-file inf no", "L"));
|
||||||
|
Add(b, new (_("Tools"), _("Shuffle Playlist"), "playlist-shuffle"));
|
||||||
|
Add(b, new (_("Tools"), _("Toggle Hardware Decoding"), "cycle-values hwdec auto no", "Ctrl+h"));
|
||||||
|
Add(b, new (_("Tools"), _("Exit Watch Later"), "quit-watch-later", "Q"));
|
||||||
|
|
||||||
|
Add(b, new ("", _("Custom")));
|
||||||
|
|
||||||
|
Add(b, new (_("Help"), _("Website mpv"), "script-message-to mpvnet shell-execute https://mpv.io", "Ctrl+Home"));
|
||||||
|
Add(b, new (_("Help"), _("Website mpv.net"), "script-message-to mpvnet shell-execute https://github.com/mpvnet-player/mpv.net"));
|
||||||
|
Add(b, new (_("Help"), "-"));
|
||||||
|
Add(b, new (_("Help"), _("Manual mpv"), "script-message-to mpvnet shell-execute https://mpv.io/manual/stable", "Ctrl+F1"));
|
||||||
|
Add(b, new (_("Help"), _("Manual mpv.net"), "script-message-to mpvnet shell-execute https://github.com/mpvnet-player/mpv.net/blob/main/docs/manual.md", "Ctrl+F2"));
|
||||||
|
Add(b, new (_("Help"), "-"));
|
||||||
|
Add(b, new (_("Help"), _("awesome-mpv"), "script-message-to mpvnet shell-execute https://github.com/stax76/awesome-mpv", "Ctrl+a"));
|
||||||
|
Add(b, new (_("Help"), _("About mpv.net"), "script-message-to mpvnet show-about"));
|
||||||
|
|
||||||
|
Add(b, new ("", "", "quit", "q", _("Exit")));
|
||||||
|
Add(b, new ("", "", "script-message-to mpvnet show-menu", "MBTN_Right", _("Show Menu")));
|
||||||
|
Add(b, new ("", "", "script-message-to mpvnet play-pause", "Play", _("Play/Pause")));
|
||||||
|
Add(b, new ("", "", "script-message-to mpvnet play-pause", "Pause", _("Play/Pause")));
|
||||||
|
Add(b, new ("", "", "script-message-to mpvnet play-pause", "PlayPause", _("Play/Pause")));
|
||||||
|
Add(b, new ("", "", "script-message-to mpvnet play-pause", "MBTN_Mid", _("Play/Pause")));
|
||||||
|
Add(b, new ("", "", "stop", "Stop", _("Stop")));
|
||||||
|
Add(b, new ("", "", "seek 60", "Forward", _("Forward")));
|
||||||
|
Add(b, new ("", "", "seek -60", "Rewind", _("Backward")));
|
||||||
|
Add(b, new ("", "", "add volume 2", "Wheel_Up", _("Volume Up")));
|
||||||
|
Add(b, new ("", "", "add volume -2", "Wheel_Down", _("Volume Down")));
|
||||||
|
Add(b, new ("", "", "add volume 2", "Wheel_Right", _("Volume Up")));
|
||||||
|
Add(b, new ("", "", "add volume -2", "Wheel_Left", _("Volume Down")));
|
||||||
|
Add(b, new ("", "", "playlist-prev", "Prev", _("Previous File")));
|
||||||
|
Add(b, new ("", "", "playlist-next", "Next", _("Next File")));
|
||||||
|
Add(b, new ("", "", "playlist-prev", "MBTN_Back", _("Previous File")));
|
||||||
|
Add(b, new ("", "", "playlist-next", "MBTN_Forward", _("Next File")));
|
||||||
|
Add(b, new ("", "", "playlist-prev", "<", _("Previous File")));
|
||||||
|
Add(b, new ("", "", "playlist-next", ">", _("Next File")));
|
||||||
|
Add(b, new ("", "", "ignore", "MBTN_Left", _("Ignore left mouse butten")));
|
||||||
|
Add(b, new ("", "", "cycle fullscreen", "f", _("Fullscreen")));
|
||||||
|
Add(b, new ("", "", "cycle fullscreen", "MBTN_Left_DBL", _("Fullscreen")));
|
||||||
|
Add(b, new ("", "", "no-osd seek 1 exact", "Shift+Right", _("Seek Forward")));
|
||||||
|
Add(b, new ("", "", "no-osd seek -1 exact", "Shift+Left", _("Seek Backward")));
|
||||||
|
Add(b, new ("", "", "no-osd seek 5 exact", "Shift+Up", _("Seek Forward")));
|
||||||
|
Add(b, new ("", "", "no-osd seek -5 exact", "Shift+Down", _("Seek Backward")));
|
||||||
|
Add(b, new ("", "", "revert-seek", "Shift+BS", _("Undo previous (or marked) seek")));
|
||||||
|
Add(b, new ("", "", "revert-seek mark", "Shift+Ctrl+BS", _("Mark position for revert-seek")));
|
||||||
|
Add(b, new ("", "", "no-osd sub-seek -1", "Ctrl+Shift+Left", _("Seek to previous subtitle")));
|
||||||
|
Add(b, new ("", "", "no-osd sub-seek 1", "Ctrl+Shift+Right", _("Seek to next subtitle")));
|
||||||
|
Add(b, new ("", "", "no-osd seek 5", "Ctrl+Wheel_Up", _("Seek Forward")));
|
||||||
|
Add(b, new ("", "", "no-osd seek -5", "Ctrl+Wheel_Down", _("Seek Backward")));
|
||||||
|
Add(b, new ("", "", "quit", "Power", _("Exit")));
|
||||||
|
|
||||||
|
return b;
|
||||||
|
|
||||||
|
static void Add(List<Binding> bindings, Binding b) => bindings.Add(b);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string ConvertToString(List<Binding> bindings)
|
public static string ConvertToString(List<Binding> bindings)
|
||||||
@@ -280,6 +325,9 @@ public static class InputHelp
|
|||||||
if (string.IsNullOrEmpty(content))
|
if (string.IsNullOrEmpty(content))
|
||||||
return bindings;
|
return bindings;
|
||||||
|
|
||||||
|
if (content.Contains('\t'))
|
||||||
|
content = content.Replace('\t', ' ');
|
||||||
|
|
||||||
foreach (string it in content.Split('\n'))
|
foreach (string it in content.Split('\n'))
|
||||||
{
|
{
|
||||||
string line = it.Trim();
|
string line = it.Trim();
|
||||||
@@ -321,18 +369,11 @@ public static class InputHelp
|
|||||||
|
|
||||||
line = line[(line.IndexOf(" ") + 1)..];
|
line = line[(line.IndexOf(" ") + 1)..];
|
||||||
|
|
||||||
if (line.Contains("#menu:"))
|
if (line.Contains(App.MenuSyntax))
|
||||||
{
|
{
|
||||||
binding.Comment = line[(line.IndexOf("#menu:") + 6)..].Trim();
|
binding.Comment = line[(line.IndexOf(App.MenuSyntax) + App.MenuSyntax.Length)..].Trim();
|
||||||
binding.IsMenu = true;
|
binding.IsMenu = true;
|
||||||
line = line[..line.IndexOf("#menu:")];
|
line = line[..line.IndexOf(App.MenuSyntax)];
|
||||||
}
|
|
||||||
else if (line.Contains("#!"))
|
|
||||||
{
|
|
||||||
binding.Comment = line[(line.IndexOf("#!") + 2)..].Trim();
|
|
||||||
binding.IsMenu = true;
|
|
||||||
binding.IsShortMenuSyntax = true;
|
|
||||||
line = line[..line.IndexOf("#!")];
|
|
||||||
}
|
}
|
||||||
else if (line.Contains("#custom-menu:"))
|
else if (line.Contains("#custom-menu:"))
|
||||||
{
|
{
|
||||||
@@ -407,51 +448,40 @@ public static class InputHelp
|
|||||||
return defaults;
|
return defaults;
|
||||||
}
|
}
|
||||||
|
|
||||||
// only used by dead command palette
|
public static Dictionary<string, Binding> GetActiveBindings(List<Binding> bindings)
|
||||||
public static List<Binding> GetBindingsFromContent(string content)
|
|
||||||
{
|
{
|
||||||
var bindings = new List<Binding>();
|
Dictionary<string, Binding> ret = new();
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(content))
|
foreach (Binding binding in bindings)
|
||||||
{
|
{
|
||||||
foreach (string line in content.Split('\r', '\n'))
|
if (binding.Input == "" || binding.Command == "")
|
||||||
|
continue;
|
||||||
|
|
||||||
|
ret[binding.Input] = binding;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string GetBindingsForCommand(Dictionary<string, Binding> activeBindings, string command)
|
||||||
|
{
|
||||||
|
List<string> keys = new();
|
||||||
|
int charCount = 0;
|
||||||
|
|
||||||
|
foreach (var it in activeBindings)
|
||||||
|
{
|
||||||
|
if (it.Value.Command != command)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
Binding binding = it.Value;
|
||||||
|
|
||||||
|
if (!keys.Contains(binding.Input) && (charCount + binding.Input.Length) < 15)
|
||||||
{
|
{
|
||||||
string value = line.Trim();
|
keys.Add(binding.Input);
|
||||||
|
charCount += binding.Input.Length;
|
||||||
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("#menu:"))
|
|
||||||
{
|
|
||||||
binding.Comment = value[(value.IndexOf("#menu:") + 6)..].Trim();
|
|
||||||
value = value[..value.IndexOf("#menu:")];
|
|
||||||
|
|
||||||
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;
|
|
||||||
|
return string.Join(", ", keys);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ public class MpvClient
|
|||||||
OnEndFile(data);
|
OnEndFile(data);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case mpv_event_id.MPV_EVENT_FILE_LOADED:
|
case mpv_event_id.MPV_EVENT_FILE_LOADED: // triggered after MPV_EVENT_START_FILE
|
||||||
OnFileLoaded();
|
OnFileLoaded();
|
||||||
break;
|
break;
|
||||||
case mpv_event_id.MPV_EVENT_PROPERTY_CHANGE:
|
case mpv_event_id.MPV_EVENT_PROPERTY_CHANGE:
|
||||||
@@ -82,7 +82,7 @@ public class MpvClient
|
|||||||
case mpv_event_id.MPV_EVENT_COMMAND_REPLY:
|
case mpv_event_id.MPV_EVENT_COMMAND_REPLY:
|
||||||
OnCommandReply();
|
OnCommandReply();
|
||||||
break;
|
break;
|
||||||
case mpv_event_id.MPV_EVENT_START_FILE:
|
case mpv_event_id.MPV_EVENT_START_FILE: // triggered before MPV_EVENT_FILE_LOADED
|
||||||
OnStartFile();
|
OnStartFile();
|
||||||
break;
|
break;
|
||||||
case mpv_event_id.MPV_EVENT_AUDIO_RECONFIG:
|
case mpv_event_id.MPV_EVENT_AUDIO_RECONFIG:
|
||||||
@@ -346,6 +346,9 @@ public class MpvClient
|
|||||||
|
|
||||||
public string GetPropertyString(string name)
|
public string GetPropertyString(string name)
|
||||||
{
|
{
|
||||||
|
if (Handle == IntPtr.Zero)
|
||||||
|
return "";
|
||||||
|
|
||||||
mpv_error err = mpv_get_property(Handle, GetUtf8Bytes(name),
|
mpv_error err = mpv_get_property(Handle, GetUtf8Bytes(name),
|
||||||
mpv_format.MPV_FORMAT_STRING, out IntPtr lpBuffer);
|
mpv_format.MPV_FORMAT_STRING, out IntPtr lpBuffer);
|
||||||
|
|
||||||
@@ -364,6 +367,12 @@ public class MpvClient
|
|||||||
|
|
||||||
public void SetPropertyString(string name, string value)
|
public void SetPropertyString(string name, string value)
|
||||||
{
|
{
|
||||||
|
if (Handle == IntPtr.Zero)
|
||||||
|
{
|
||||||
|
Terminal.WriteError($"error setting property: {name} = {value}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
byte[] bytes = GetUtf8Bytes(value);
|
byte[] bytes = GetUtf8Bytes(value);
|
||||||
mpv_error err = mpv_set_property(Handle, GetUtf8Bytes(name), mpv_format.MPV_FORMAT_STRING, ref bytes);
|
mpv_error err = mpv_set_property(Handle, GetUtf8Bytes(name), mpv_format.MPV_FORMAT_STRING, ref bytes);
|
||||||
|
|
||||||
|
|||||||
@@ -16,8 +16,6 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Folder Include="Extension\" />
|
|
||||||
<Folder Include="Input\" />
|
|
||||||
<Folder Include="Docs\" />
|
<Folder Include="Docs\" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ public class MainPlayer : MpvClient
|
|||||||
public bool Paused { get; set; }
|
public bool Paused { get; set; }
|
||||||
public bool SnapWindow { get; set; }
|
public bool SnapWindow { get; set; }
|
||||||
public bool TaskbarProgress { get; set; } = true;
|
public bool TaskbarProgress { get; set; } = true;
|
||||||
|
public bool TitleBar { get; set; } = true;
|
||||||
public bool WasInitialSizeSet;
|
public bool WasInitialSizeSet;
|
||||||
public bool WindowMaximized { get; set; }
|
public bool WindowMaximized { get; set; }
|
||||||
public bool WindowMinimized { get; set; }
|
public bool WindowMinimized { get; set; }
|
||||||
@@ -50,7 +51,6 @@ public class MainPlayer : MpvClient
|
|||||||
public float AutofitLarger { get; set; } = 0.8f;
|
public float AutofitLarger { get; set; } = 0.8f;
|
||||||
|
|
||||||
public AutoResetEvent ShutdownAutoResetEvent { get; } = new AutoResetEvent(false);
|
public AutoResetEvent ShutdownAutoResetEvent { get; } = new AutoResetEvent(false);
|
||||||
public AutoResetEvent VideoSizeAutoResetEvent { get; } = new AutoResetEvent(false);
|
|
||||||
public nint MainHandle { get; set; }
|
public nint MainHandle { get; set; }
|
||||||
public List<MediaTrack> MediaTracks { get; set; } = new List<MediaTrack>();
|
public List<MediaTrack> MediaTracks { get; set; } = new List<MediaTrack>();
|
||||||
public List<TimeSpan> BluRayTitles { get; } = new List<TimeSpan>();
|
public List<TimeSpan> BluRayTitles { get; } = new List<TimeSpan>();
|
||||||
@@ -59,12 +59,14 @@ public class MainPlayer : MpvClient
|
|||||||
public TimeSpan Duration;
|
public TimeSpan Duration;
|
||||||
public List<MpvClient> Clients { get; } = new List<MpvClient>();
|
public List<MpvClient> Clients { get; } = new List<MpvClient>();
|
||||||
|
|
||||||
|
List<StringPair>? _audioDevices;
|
||||||
|
|
||||||
public event Action? Initialized;
|
public event Action? Initialized;
|
||||||
public event Action? Pause;
|
public event Action? Pause;
|
||||||
public event Action<int>? PlaylistPosChanged;
|
public event Action<int>? PlaylistPosChanged;
|
||||||
public event Action<Size>? VideoSizeChanged;
|
public event Action<Size>? VideoSizeChanged;
|
||||||
|
|
||||||
public void Init(IntPtr formHandle)
|
public void Init(IntPtr formHandle, bool processCommandLine)
|
||||||
{
|
{
|
||||||
App.ApplyShowMenuFix();
|
App.ApplyShowMenuFix();
|
||||||
|
|
||||||
@@ -91,18 +93,23 @@ public class MainPlayer : MpvClient
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (formHandle != IntPtr.Zero)
|
if (formHandle != IntPtr.Zero)
|
||||||
|
{
|
||||||
|
SetPropertyString("force-window", "yes");
|
||||||
SetPropertyLong("wid", formHandle.ToInt64());
|
SetPropertyLong("wid", formHandle.ToInt64());
|
||||||
|
}
|
||||||
|
|
||||||
SetPropertyInt("osd-duration", 2000);
|
SetPropertyInt("osd-duration", 2000);
|
||||||
|
|
||||||
SetPropertyBool("input-default-bindings", true);
|
SetPropertyBool("input-default-bindings", true);
|
||||||
SetPropertyBool("input-builtin-bindings", false);
|
SetPropertyBool("input-builtin-bindings", false);
|
||||||
|
SetPropertyBool("input-media-keys", true);
|
||||||
|
|
||||||
SetPropertyString("watch-later-options", "mute");
|
SetPropertyString("autocreate-playlist", "filter");
|
||||||
|
SetPropertyString("media-controls", "yes");
|
||||||
|
SetPropertyString("idle", "yes");
|
||||||
SetPropertyString("screenshot-directory", "~~desktop/");
|
SetPropertyString("screenshot-directory", "~~desktop/");
|
||||||
SetPropertyString("osd-playing-msg", "${media-title}");
|
SetPropertyString("osd-playing-msg", "${media-title}");
|
||||||
SetPropertyString("osc", "yes");
|
SetPropertyString("osc", "yes");
|
||||||
SetPropertyString("force-window", "yes");
|
|
||||||
SetPropertyString("config-dir", ConfigFolder);
|
SetPropertyString("config-dir", ConfigFolder);
|
||||||
SetPropertyString("config", "yes");
|
SetPropertyString("config", "yes");
|
||||||
|
|
||||||
@@ -111,11 +118,12 @@ public class MainPlayer : MpvClient
|
|||||||
if (!string.IsNullOrEmpty(UsedInputConfContent))
|
if (!string.IsNullOrEmpty(UsedInputConfContent))
|
||||||
SetPropertyString("input-conf", @"memory://" + UsedInputConfContent);
|
SetPropertyString("input-conf", @"memory://" + UsedInputConfContent);
|
||||||
|
|
||||||
ProcessCommandLineArgs();
|
if (processCommandLine)
|
||||||
|
CommandLine.ProcessCommandLineArgsPreInit();
|
||||||
|
|
||||||
if (App.CommandLineArguments.ContainsKey("config-dir"))
|
if (CommandLine.Contains("config-dir"))
|
||||||
{
|
{
|
||||||
string configDir = App.CommandLineArguments["config-dir"];
|
string configDir = CommandLine.GetValue("config-dir");
|
||||||
string fullPath = System.IO.Path.GetFullPath(configDir);
|
string fullPath = System.IO.Path.GetFullPath(configDir);
|
||||||
App.InputConf.Path = fullPath.AddSep() + "input.conf";
|
App.InputConf.Path = fullPath.AddSep() + "input.conf";
|
||||||
string content = App.InputConf.GetContent();
|
string content = App.InputConf.GetContent();
|
||||||
@@ -131,10 +139,6 @@ public class MainPlayer : MpvClient
|
|||||||
if (err < 0)
|
if (err < 0)
|
||||||
throw new Exception("mpv_initialize error" + BR2 + GetError(err) + BR);
|
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");
|
string idle = GetPropertyString("idle");
|
||||||
App.Exit = idle == "no" || idle == "once";
|
App.Exit = idle == "no" || idle == "once";
|
||||||
|
|
||||||
@@ -152,16 +156,24 @@ public class MainPlayer : MpvClient
|
|||||||
// this means Lua scripts that use idle might not work correctly
|
// this means Lua scripts that use idle might not work correctly
|
||||||
SetPropertyString("idle", "yes");
|
SetPropertyString("idle", "yes");
|
||||||
|
|
||||||
ObservePropertyString("path", value => Path = value);
|
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 => {
|
ObservePropertyBool("pause", value => {
|
||||||
Paused = value;
|
Paused = value;
|
||||||
Pause?.Invoke();
|
Pause?.Invoke();
|
||||||
});
|
});
|
||||||
|
|
||||||
ObservePropertyInt("video-rotate", value => {
|
VideoRotate = GetPropertyInt("video-rotate");
|
||||||
VideoRotate = value;
|
|
||||||
UpdateVideoSize("dwidth", "dheight");
|
ObservePropertyInt("video-rotate", value =>
|
||||||
|
{
|
||||||
|
if (VideoRotate != value)
|
||||||
|
{
|
||||||
|
VideoRotate = value;
|
||||||
|
UpdateVideoSize("dwidth", "dheight");
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
ObservePropertyInt("playlist-pos", value => {
|
ObservePropertyInt("playlist-pos", value => {
|
||||||
@@ -173,9 +185,6 @@ public class MainPlayer : MpvClient
|
|||||||
CommandV("quit");
|
CommandV("quit");
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!GetPropertyBool("osd-scale-by-window"))
|
|
||||||
App.StartThreshold = 0;
|
|
||||||
|
|
||||||
Initialized?.Invoke();
|
Initialized?.Invoke();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -221,6 +230,7 @@ public class MainPlayer : MpvClient
|
|||||||
case "vo": VO = value!; break;
|
case "vo": VO = value!; break;
|
||||||
case "window-maximized": WindowMaximized = value == "yes"; break;
|
case "window-maximized": WindowMaximized = value == "yes"; break;
|
||||||
case "window-minimized": WindowMinimized = value == "yes"; break;
|
case "window-minimized": WindowMinimized = value == "yes"; break;
|
||||||
|
case "title-bar": TitleBar = value == "yes"; break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (AutofitLarger > 1)
|
if (AutofitLarger > 1)
|
||||||
@@ -244,20 +254,7 @@ public class MainPlayer : MpvClient
|
|||||||
_configFolder = Folder.AppData + "mpv.net";
|
_configFolder = Folder.AppData + "mpv.net";
|
||||||
|
|
||||||
if (!Directory.Exists(_configFolder))
|
if (!Directory.Exists(_configFolder))
|
||||||
{
|
Directory.CreateDirectory(_configFolder);
|
||||||
try {
|
|
||||||
using Process proc = new Process();
|
|
||||||
proc.StartInfo.UseShellExecute = false;
|
|
||||||
proc.StartInfo.CreateNoWindow = true;
|
|
||||||
proc.StartInfo.FileName = "powershell.exe";
|
|
||||||
proc.StartInfo.Arguments = $@"-Command New-Item -Path '{_configFolder}' -ItemType Directory";
|
|
||||||
proc.Start();
|
|
||||||
proc.WaitForExit();
|
|
||||||
} catch (Exception) {}
|
|
||||||
|
|
||||||
if (!Directory.Exists(_configFolder))
|
|
||||||
Directory.CreateDirectory(_configFolder);
|
|
||||||
}
|
|
||||||
|
|
||||||
_configFolder = _configFolder.AddSep();
|
_configFolder = _configFolder.AddSep();
|
||||||
}
|
}
|
||||||
@@ -269,57 +266,65 @@ public class MainPlayer : MpvClient
|
|||||||
Dictionary<string, string>? _Conf;
|
Dictionary<string, string>? _Conf;
|
||||||
|
|
||||||
public Dictionary<string, string> Conf {
|
public Dictionary<string, string> Conf {
|
||||||
get {
|
get
|
||||||
if (_Conf == null)
|
{
|
||||||
|
if (_Conf != null)
|
||||||
|
return _Conf;
|
||||||
|
|
||||||
|
App.ApplyInputDefaultBindingsFix();
|
||||||
|
|
||||||
|
_Conf = new Dictionary<string, string>();
|
||||||
|
|
||||||
|
if (File.Exists(ConfPath))
|
||||||
{
|
{
|
||||||
App.ApplyInputDefaultBindingsFix();
|
foreach (string? it in File.ReadAllLines(ConfPath))
|
||||||
|
|
||||||
_Conf = new Dictionary<string, string>();
|
|
||||||
|
|
||||||
if (File.Exists(ConfPath))
|
|
||||||
{
|
{
|
||||||
foreach (string? it in File.ReadAllLines(ConfPath))
|
string line = it.TrimStart(' ', '-').TrimEnd();
|
||||||
|
|
||||||
|
if (line.StartsWith("#"))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (!line.Contains('='))
|
||||||
{
|
{
|
||||||
string line = it.TrimStart(' ', '-').TrimEnd();
|
if (Regex.Match(line, "^[\\w-]+$").Success)
|
||||||
|
line += "=yes";
|
||||||
if (!line.Contains('=') || line.StartsWith("#"))
|
else
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
string key = line[..line.IndexOf("=")].Trim();
|
|
||||||
string value = line[(line.IndexOf("=") + 1)..].Trim();
|
|
||||||
|
|
||||||
if (value.Contains('#') && !value.StartsWith("#") &&
|
|
||||||
!value.StartsWith("'#") && !value.StartsWith("\"#"))
|
|
||||||
|
|
||||||
value = value[..value.IndexOf("#")].Trim();
|
|
||||||
|
|
||||||
_Conf[key] = value;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
foreach (var i in _Conf)
|
string key = line[..line.IndexOf("=")].Trim();
|
||||||
ProcessProperty(i.Key, i.Value);
|
string value = line[(line.IndexOf("=") + 1)..].Trim();
|
||||||
|
|
||||||
|
if (value.Contains('#') && !value.StartsWith("#") &&
|
||||||
|
!value.StartsWith("'#") && !value.StartsWith("\"#"))
|
||||||
|
|
||||||
|
value = value[..value.IndexOf("#")].Trim();
|
||||||
|
|
||||||
|
_Conf[key] = value;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
foreach (var i in _Conf)
|
||||||
|
ProcessProperty(i.Key, i.Value);
|
||||||
|
|
||||||
return _Conf;
|
return _Conf;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateVideoSize(string w, string h)
|
void UpdateVideoSize(string w, string h)
|
||||||
{
|
{
|
||||||
Size size = new Size(GetPropertyInt(w), GetPropertyInt(h));
|
if (string.IsNullOrEmpty(Path))
|
||||||
|
|
||||||
if (size.Width == 0 || size.Height == 0)
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
Size size = new Size(GetPropertyInt(w), GetPropertyInt(h));
|
||||||
|
|
||||||
if (VideoRotate == 90 || VideoRotate == 270)
|
if (VideoRotate == 90 || VideoRotate == 270)
|
||||||
size = new Size(size.Height, size.Width);
|
size = new Size(size.Height, size.Width);
|
||||||
|
|
||||||
if (VideoSize != size)
|
if (size != VideoSize && size != Size.Empty)
|
||||||
{
|
{
|
||||||
VideoSize = size;
|
VideoSize = size;
|
||||||
VideoSizeChanged?.Invoke(size);
|
VideoSizeChanged?.Invoke(size);
|
||||||
VideoSizeAutoResetEvent.Set();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -349,24 +354,27 @@ public class MainPlayer : MpvClient
|
|||||||
base.OnLogMessage(data);
|
base.OnLogMessage(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnVideoReconfig()
|
|
||||||
{
|
|
||||||
UpdateVideoSize("dwidth", "dheight");
|
|
||||||
base.OnVideoReconfig();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void OnEndFile(mpv_event_end_file data)
|
protected override void OnEndFile(mpv_event_end_file data)
|
||||||
{
|
{
|
||||||
base.OnEndFile(data);
|
base.OnEndFile(data);
|
||||||
FileEnded = true;
|
FileEnded = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected override void OnVideoReconfig()
|
||||||
|
{
|
||||||
|
UpdateVideoSize("dwidth", "dheight");
|
||||||
|
base.OnVideoReconfig();
|
||||||
|
}
|
||||||
|
|
||||||
|
// executed before OnFileLoaded
|
||||||
protected override void OnStartFile()
|
protected override void OnStartFile()
|
||||||
{
|
{
|
||||||
|
Path = GetPropertyString("path");
|
||||||
base.OnStartFile();
|
base.OnStartFile();
|
||||||
TaskHelp.Run(LoadFolder);
|
TaskHelp.Run(LoadFolder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// executed after OnStartFile
|
||||||
protected override void OnFileLoaded()
|
protected override void OnFileLoaded()
|
||||||
{
|
{
|
||||||
Duration = TimeSpan.FromSeconds(GetPropertyDouble("duration"));
|
Duration = TimeSpan.FromSeconds(GetPropertyDouble("duration"));
|
||||||
@@ -374,14 +382,6 @@ public class MainPlayer : MpvClient
|
|||||||
if (App.StartSize == "video")
|
if (App.StartSize == "video")
|
||||||
WasInitialSizeSet = false;
|
WasInitialSizeSet = false;
|
||||||
|
|
||||||
string path = GetPropertyString("path");
|
|
||||||
|
|
||||||
if (!FileTypes.Video.Contains(path.Ext()) || FileTypes.Audio.Contains(path.Ext()))
|
|
||||||
{
|
|
||||||
UpdateVideoSize("width", "height");
|
|
||||||
VideoSizeAutoResetEvent.Set();
|
|
||||||
}
|
|
||||||
|
|
||||||
TaskHelp.Run(UpdateTracks);
|
TaskHelp.Run(UpdateTracks);
|
||||||
|
|
||||||
base.OnFileLoaded();
|
base.OnFileLoaded();
|
||||||
@@ -407,105 +407,6 @@ public class MainPlayer : MpvClient
|
|||||||
|
|
||||||
public void SetBluRayTitle(int id) => LoadFiles(new[] { @"bd://" + id }, false, false);
|
public void SetBluRayTitle(int id) => LoadFiles(new[] { @"bd://" + id }, false, false);
|
||||||
|
|
||||||
public void ProcessCommandLineArgs()
|
|
||||||
{
|
|
||||||
foreach (string i in Environment.GetCommandLineArgs().Skip(1))
|
|
||||||
{
|
|
||||||
string arg = i;
|
|
||||||
|
|
||||||
if (!arg.StartsWith("--"))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (arg == "--profile=help")
|
|
||||||
{
|
|
||||||
Console.WriteLine(GetProfiles());
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
else if (arg == "--vd=help" || arg == "--ad=help")
|
|
||||||
{
|
|
||||||
Console.WriteLine(GetDecoders());
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
else if (arg == "--audio-device=help")
|
|
||||||
{
|
|
||||||
Console.WriteLine(GetPropertyOsdString("audio-device-list"));
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
else if (arg == "--version")
|
|
||||||
{
|
|
||||||
Console.WriteLine(AppClass.About);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
else if (arg == "--input-keylist")
|
|
||||||
{
|
|
||||||
Console.WriteLine(GetPropertyString("input-key-list").Replace(",", BR));
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
else if (arg.StartsWith("--command="))
|
|
||||||
{
|
|
||||||
Command(arg[10..]);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!arg.Contains('='))
|
|
||||||
{
|
|
||||||
if (arg.Contains("--no-"))
|
|
||||||
{
|
|
||||||
arg = arg.Replace("--no-", "--");
|
|
||||||
arg += "=no";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
arg += "=yes";
|
|
||||||
}
|
|
||||||
|
|
||||||
string left = arg[2..arg.IndexOf("=")];
|
|
||||||
string right = arg[(left.Length + 3)..];
|
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(left))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
switch (left)
|
|
||||||
{
|
|
||||||
case "script": left = "scripts"; break;
|
|
||||||
case "audio-file": left = "audio-files"; break;
|
|
||||||
case "sub-file": left = "sub-files"; break;
|
|
||||||
case "external-file": left = "external-files"; break;
|
|
||||||
}
|
|
||||||
|
|
||||||
App.CommandLineArguments[left] = right;
|
|
||||||
|
|
||||||
ProcessProperty(left, right);
|
|
||||||
|
|
||||||
if (!App.ProcessProperty(left, right))
|
|
||||||
SetPropertyString(left, right);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (files.Count == 0 || files[0].Contains("://"))
|
|
||||||
{
|
|
||||||
VideoSizeChanged?.Invoke(VideoSize);
|
|
||||||
VideoSizeAutoResetEvent.Set();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public DateTime LastLoad;
|
public DateTime LastLoad;
|
||||||
|
|
||||||
public void LoadFiles(string[]? files, bool loadFolder, bool append)
|
public void LoadFiles(string[]? files, bool loadFolder, bool append)
|
||||||
@@ -542,17 +443,9 @@ public class MainPlayer : MpvClient
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (ext == "iso")
|
if (ext == "iso")
|
||||||
LoadBluRayISO(file);
|
LoadISO(file);
|
||||||
else if(FileTypes.Subtitle.Contains(ext))
|
else if(FileTypes.Subtitle.Contains(ext))
|
||||||
CommandV("sub-add", file);
|
CommandV("sub-add", file);
|
||||||
else if (!FileTypes.IsMedia(ext) && !file.Contains("://") && Directory.Exists(file) &&
|
|
||||||
File.Exists(System.IO.Path.Combine(file, "BDMV\\index.bdmv")))
|
|
||||||
{
|
|
||||||
Command("stop");
|
|
||||||
Thread.Sleep(500);
|
|
||||||
SetPropertyString("bluray-device", file);
|
|
||||||
CommandV("loadfile", @"bd://");
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (i == 0 && !append)
|
if (i == 0 && !append)
|
||||||
@@ -577,12 +470,24 @@ public class MainPlayer : MpvClient
|
|||||||
return path;
|
return path;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void LoadBluRayISO(string path)
|
public void LoadISO(string path)
|
||||||
{
|
{
|
||||||
Command("stop");
|
using var mi = new MediaInfo(path);
|
||||||
Thread.Sleep(500);
|
|
||||||
SetPropertyString("bluray-device", path);
|
if (mi.GetGeneral("Format") == "ISO 9660 / DVD Video")
|
||||||
LoadFiles(new[] { @"bd://" }, false, false);
|
{
|
||||||
|
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)
|
public void LoadDiskFolder(string path)
|
||||||
@@ -719,6 +624,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() {
|
public List<Chapter> GetChapters() {
|
||||||
List<Chapter> chapters = new List<Chapter>();
|
List<Chapter> chapters = new List<Chapter>();
|
||||||
int count = GetPropertyInt("chapter-list/count");
|
int count = GetPropertyInt("chapter-list/count");
|
||||||
|
|||||||
7
src/MpvNet/Properties/launchSettings.json
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"profiles": {
|
||||||
|
"MpvNet": {
|
||||||
|
"commandName": "Project"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -11,13 +11,16 @@ public class AppSettings
|
|||||||
{
|
{
|
||||||
public bool InputDefaultBindingsFixApplied;
|
public bool InputDefaultBindingsFixApplied;
|
||||||
public bool ShowMenuFixApplied;
|
public bool ShowMenuFixApplied;
|
||||||
|
public int MenuUpdateVersion;
|
||||||
public int Volume = 70;
|
public int Volume = 70;
|
||||||
public List<string> RecentFiles = new List<string>();
|
public List<string> RecentFiles = new List<string>();
|
||||||
public Point WindowLocation;
|
public Point WindowLocation;
|
||||||
public Point WindowPosition;
|
public Point WindowPosition;
|
||||||
public Size WindowSize;
|
public Size WindowSize;
|
||||||
|
public string AudioDevice = "";
|
||||||
public string ConfigEditorSearch = "Video:";
|
public string ConfigEditorSearch = "Video:";
|
||||||
public string Mute = "no";
|
public string Mute = "no";
|
||||||
|
public string StartupFolder = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
class SettingsManager
|
class SettingsManager
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
namespace MpvNet.Windows;
|
|
||||||
|
namespace MpvNet;
|
||||||
|
|
||||||
public class StringPair
|
public class StringPair
|
||||||
{
|
{
|
||||||
@@ -9,4 +9,5 @@ public class Translator
|
|||||||
public interface ITranslator
|
public interface ITranslator
|
||||||
{
|
{
|
||||||
public string Gettext(string msgId);
|
public string Gettext(string msgId);
|
||||||
|
public string GetParticularString(string context, string text);
|
||||||
}
|
}
|
||||||
|
|||||||
28
src/Setup/Inno/inno-setup.iss
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
|
||||||
|
#define MyAppName "mpv.net"
|
||||||
|
#define MyAppExeName "mpvnet.exe"
|
||||||
|
#define MyAppSourceDir "..\..\MpvNet.Windows\bin\Debug"
|
||||||
|
#define MyAppVersion GetFileVersion("..\..\MpvNet.Windows\bin\Debug\mpvnet.exe")
|
||||||
|
|
||||||
|
[Setup]
|
||||||
|
AppId={{9AA2B100-BEF3-44D0-B819-D8FC3C4D557D}}
|
||||||
|
AppName={#MyAppName}
|
||||||
|
AppVersion={#MyAppVersion}
|
||||||
|
AppPublisher=Frank Skare (stax76)
|
||||||
|
ArchitecturesInstallIn64BitMode=x64
|
||||||
|
Compression=lzma2
|
||||||
|
DefaultDirName={autopf}\{#MyAppName}
|
||||||
|
OutputBaseFilename=mpv.net-v{#MyAppVersion}-setup-x64
|
||||||
|
OutputDir=E:\Desktop
|
||||||
|
DefaultGroupName={#MyAppName}
|
||||||
|
SetupIconFile=..\..\MpvNet.Windows\mpv-icon.ico
|
||||||
|
UninstallDisplayIcon={app}\{#MyAppExeName}
|
||||||
|
PrivilegesRequired=admin
|
||||||
|
PrivilegesRequiredOverridesAllowed=dialog
|
||||||
|
|
||||||
|
[Icons]
|
||||||
|
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
|
||||||
|
|
||||||
|
[Files]
|
||||||
|
Source: "{#MyAppSourceDir}\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion
|
||||||
|
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')
|
||||||
|
}
|
||||||