Compare commits
119 Commits
v7.0.0.5-b
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ef45baecbd | ||
|
|
30e75b2100 | ||
|
|
563472b489 | ||
|
|
724a9adab8 | ||
|
|
9686c28f6a | ||
|
|
03d0aeb879 | ||
|
|
96afc62165 | ||
|
|
fd3ea9afe9 | ||
|
|
853d38a427 | ||
|
|
76a2f64fa6 | ||
|
|
6c0e116918 | ||
|
|
c1abf90559 | ||
|
|
eb085a6534 | ||
|
|
78b85d59aa | ||
|
|
0f900e01fa | ||
|
|
f754d4d865 | ||
|
|
474c4e888d | ||
|
|
8f8ca453da | ||
|
|
8bd00fd2f1 | ||
|
|
61958aba2c | ||
|
|
3fa6f44828 | ||
|
|
31be72efb2 | ||
|
|
405c20f056 | ||
|
|
5f0fb4ebc3 | ||
|
|
c6a2b06fdf | ||
|
|
8f38eba23e | ||
|
|
79164aae72 | ||
|
|
e5d3ac0d92 | ||
|
|
f7c8c16344 | ||
|
|
b1fccbf175 | ||
|
|
cc1e4bc9f8 | ||
|
|
3812f3031c | ||
|
|
837f97d491 | ||
|
|
2dab825af4 | ||
|
|
a78c1ba50d | ||
|
|
50aea3b5ba | ||
|
|
6a971595f7 | ||
|
|
a1d944a9a0 | ||
|
|
8b49312bad | ||
|
|
95b279b0e9 | ||
|
|
01477d8b25 | ||
|
|
4e5182eb73 | ||
|
|
8d0b70a5dc | ||
|
|
37a241f136 | ||
|
|
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 |
@@ -50,17 +50,17 @@ jobs:
|
||||
msbuild MpvNet.sln /m /p:Configuration=Debug
|
||||
- name: Create .mo files for localization
|
||||
shell: pwsh
|
||||
run: Install-Package Gettext.Tools -Force; .\lang\create-mo-files.ps1
|
||||
run: Install-Package Gettext.Tools -Force; $env:Path = ((Get-Package Gettext.Tools).Source | Split-Path) + '\tools\bin;' + $env:Path; .\lang\create-mo-files.ps1
|
||||
- name: Download libmpv # In principle, only update this binary file when significant feature changes occur in mpv/mpv.net
|
||||
shell: msys2 {0}
|
||||
run: |
|
||||
wget -nv -O libmpv.7z https://downloads.sourceforge.net/mpv-player-windows/mpv-dev-x86_64-20231203-git-f551a9d.7z
|
||||
wget -nv -O libmpv.7z https://github.com/zhongfly/mpv-winbuild/releases/download/2025-05-03-e663cbc/mpv-dev-x86_64-20250503-git-e663cbc.7z
|
||||
7z x -y libmpv.7z -olibmpv
|
||||
cp -f libmpv/libmpv-2.dll src/MpvNet.Windows/bin/Debug/ || true
|
||||
- name: Download MediaInfo
|
||||
shell: msys2 {0}
|
||||
run: |
|
||||
wget -nv -O MediaInfo.7z https://mediaarea.net/download/binary/libmediainfo0/23.11/MediaInfo_DLL_23.11_Windows_x64_WithoutInstaller.7z
|
||||
wget -nv -O MediaInfo.7z https://mediaarea.net/download/binary/libmediainfo0/24.03/MediaInfo_DLL_24.03_Windows_x64_WithoutInstaller.7z
|
||||
7z x -y MediaInfo.7z -oMediaInfo
|
||||
cp -f MediaInfo/MediaInfo.dll src/MpvNet.Windows/bin/Debug/ || true
|
||||
- name: Download mpvnet.com file
|
||||
@@ -69,7 +69,7 @@ jobs:
|
||||
wget -nv -O mpvnet.com https://github.com/mpvnet-player/file-host/releases/download/tag/mpvnet.com.txt
|
||||
cp -f mpvnet.com src/MpvNet.Windows/bin/Debug/ || true
|
||||
- name: Upload
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: "mpv.net-win64"
|
||||
path: src/MpvNet.Windows/bin/Debug/
|
||||
32
README.md
@@ -6,7 +6,7 @@
|
||||
🎞 mpv.net
|
||||
==========
|
||||
|
||||
mpv.net is a media player for Windows that has a modern GUI.
|
||||
mpv.net is a media player for Windows with a modern GUI.
|
||||
|
||||
The player is based on the popular [mpv](https://mpv.io) media player.
|
||||
mpv.net is designed to be mpv compatible, almost all mpv features are available,
|
||||
@@ -56,6 +56,7 @@ Table of contents
|
||||
- [Download](#download)
|
||||
- [Manual](#manual)
|
||||
- [Screenshots](#screenshots)
|
||||
- [Contributing](#contributing)
|
||||
|
||||
|
||||
Features that mpv and mpv.net have in common
|
||||
@@ -66,7 +67,7 @@ Features that mpv and mpv.net have in common
|
||||
- JSON IPC to control the player with a external programs
|
||||
- On Screen Controller (OSC, play control buttons) with modern flat design
|
||||
- Command Line Interface
|
||||
- Started from a terminal status, error and debug output is printed on the terminal
|
||||
- Started from a terminal, status, error and debug output is printed on the terminal
|
||||
- DXVA2 video decoding acceleration
|
||||
- Video output capable of features loved by videophiles, such as video scaling with popular high quality algorithms, color management, frame timing, interpolation, HDR, and more
|
||||
- Browser extensions to start mpv.net from the browser
|
||||
@@ -85,14 +86,11 @@ Features exclusive to mpv.net
|
||||
|
||||
- Very high degree of mpv compatibility, almost all mpv features are available
|
||||
- Modern graphical user interface with customizable color themes
|
||||
- Customizable context menu defined in the same file as the key bindings
|
||||
- Customizable context menu
|
||||
- Searchable config editor
|
||||
- Searchable input (shorcut keys) editor
|
||||
- C# and PowerShell Scripting
|
||||
- Global keyboard shortcuts
|
||||
- Extension API for .NET languages (C#, VB.NET and F#)
|
||||
- Portable, MS Store or WinGet download and installation
|
||||
- File history feature to log time and filename
|
||||
- Files can be enqueued from File Explorer
|
||||
|
||||
|
||||
@@ -111,6 +109,11 @@ Features exclusive to mpv.net
|
||||
[The mpv.net documentation.](docs/manual.md)
|
||||
|
||||
|
||||
## [Contributing](docs/contributing.md)
|
||||
|
||||
[Contributing section of the manual.](docs/manual.md#contributing)
|
||||
|
||||
|
||||
Screenshots
|
||||
-----------
|
||||
|
||||
@@ -121,27 +124,24 @@ Screenshots
|
||||
|
||||
#### Context Menu
|
||||
|
||||
Context menu using dark mode.
|
||||
|
||||

|
||||

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

|
||||

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

|
||||

|
||||
|
||||
|
||||
#### Input Editor
|
||||
Other projects from me
|
||||
----------------------
|
||||
|
||||
Searchable key and mouse binding editor.
|
||||
A list of my other projects can be found here:
|
||||
|
||||

|
||||
https://stax76.github.io/software-list
|
||||
@@ -1,4 +1,119 @@
|
||||
|
||||
- The Japanese translation was updated. Thanks to the translators!
|
||||
|
||||
# v7.1.2.0 (2026-01-09)
|
||||
|
||||
- libmpv updated to v0.41 2026-01-09.
|
||||
- Some adjustments to recent mpv changes.
|
||||
- The Japanese and Turkish translations were updated. Thanks to the translators!
|
||||
|
||||
# v7.1.1.5 Beta (2025-11-20)
|
||||
|
||||
- Same as in mpv the `?` and `t-4` keys can be used to show the active
|
||||
key bindings on-screen, it supports scrolling and searching.
|
||||
In the context menu it's located at:
|
||||
`View > More > Show Active Bindings On-Screen`
|
||||
- Bindings of select.lua menus have changed:
|
||||
`F1` On-Screen menu
|
||||
`F2` Bindings
|
||||
`F3` Properties
|
||||
`F4` Commands
|
||||
- The German, Chinese, Japanese and Turkish translations were updated. Thanks to the translators!
|
||||
- Users need to install .NET 10 LTS (Long Term Support), it should run on Windows 10.
|
||||
It was requested by users to prefer LTS over STS (Short Term Support).
|
||||
- libmpv and MediaInfo was updated.
|
||||
|
||||
# v7.1.1.4 Beta (2025-10-05)
|
||||
|
||||
- Support for select.lua has been added. It's a new Lua script built
|
||||
directly into mpv like the osc or console script. It's similar to command_palete.lua.
|
||||
- Fix --script-opt not working.
|
||||
- The mpv.net manual was updated.
|
||||
- The Turkish translation was updated. A Bulgarian translation was added.
|
||||
Thanks to the translators!
|
||||
- The required Dotnet version changed from 6.0 to 9.0. This drops Win 7 support
|
||||
unfortunately. It was done to use new C# language features and make
|
||||
the mpv.net project more attractive for new developers to contribute.
|
||||
Also most users prefer having the newest runtime.
|
||||
- auto build has been disabled because it requires updating libmpv and
|
||||
mediainfo all the time which is too much manual work.
|
||||
- The script src/Tools/update-mpv.ps1 has been improved. It's the easiest way
|
||||
update mpv and libmpv (x64 and ARM64). Shinshiro has a update script too,
|
||||
but it's a lot longer and more complex.
|
||||
- mediainfo and libmpv have been updated.
|
||||
|
||||
# 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.
|
||||
@@ -1059,4 +1174,4 @@ stable release, no changes since the last beta
|
||||
|
||||
- new feature added to manage file associations from within the app. It can be found in the menu at: Tools > Manage... [Default Binding](https://github.com/mpvnet-player/mpv.net/blob/main/mpv.net/Resources/input.conf.txt#L149)
|
||||
- new zip download option added
|
||||
- new x86 download option added
|
||||
- new x86 download option added
|
||||
|
||||
|
Before Width: | Height: | Size: 272 KiB |
BIN
docs/img/ConfEditor.webp
Normal file
|
After Width: | Height: | Size: 243 KiB |
|
Before Width: | Height: | Size: 251 KiB |
|
Before Width: | Height: | Size: 442 KiB After Width: | Height: | Size: 429 KiB |
|
Before Width: | Height: | Size: 536 KiB |
BIN
docs/img/Menu.webp
Normal file
|
After Width: | Height: | Size: 148 KiB |
|
Before Width: | Height: | Size: 355 KiB |
BIN
docs/img/Terminal.webp
Normal file
|
After Width: | Height: | Size: 139 KiB |
859
docs/manual.md
@@ -4,28 +4,13 @@ $ErrorActionPreference = 'Stop'
|
||||
$PoFiles = Get-ChildItem $PSScriptRoot/po
|
||||
$ExeFolder = "$PSScriptRoot/../src/MpvNet.Windows/bin/Debug"
|
||||
|
||||
function CreateFolder
|
||||
{
|
||||
param($path)
|
||||
|
||||
if (-not (Test-Path $path))
|
||||
{
|
||||
mkdir $path
|
||||
}
|
||||
|
||||
if (-not (Test-Path $path))
|
||||
{
|
||||
throw
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($it in $PoFiles)
|
||||
{
|
||||
$folder = "$ExeFolder/Locale/$($it.BaseName)/LC_MESSAGES"
|
||||
|
||||
if (-not (Test-Path $folder))
|
||||
{
|
||||
New-Item -ItemType Directory -Path $folder
|
||||
New-Item -ItemType Directory -Path $folder | Out-Null
|
||||
}
|
||||
|
||||
$moPath = "$folder/mpvnet.mo"
|
||||
|
||||
@@ -43,8 +43,6 @@ D:\Projects\CS\mpv.net\src\MpvNet.Windows\Native\StockIcon.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\Native\Taskbar.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\Native\WinApi.cs
|
||||
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\Theme.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\UI\TreeNode.cs
|
||||
@@ -62,7 +60,6 @@ D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\Msg.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\WpfApplication.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\WpfTranslator.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\Controls\ComboBoxSettingControl.xaml.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\Controls\CommandPaletteControl.xaml.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\Controls\HyperlinkEx.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\Controls\OptionSettingControl.xaml.cs
|
||||
D:\Projects\CS\mpv.net\src\MpvNet.Windows\WPF\Controls\SearchControl.xaml.cs
|
||||
|
||||
1013
lang/po/bg.po
Normal file
662
lang/po/de.po
@@ -4,16 +4,16 @@
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Frank Skare, 2023
|
||||
# Frank Skare, 2025
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-12-26 10:28+0100\n"
|
||||
"POT-Creation-Date: 2025-10-06 00:24+0200\n"
|
||||
"PO-Revision-Date: 2023-12-08 00:34+0000\n"
|
||||
"Last-Translator: Frank Skare, 2023\n"
|
||||
"Last-Translator: Frank Skare, 2025\n"
|
||||
"Language-Team: German (https://app.transifex.com/stax76/teams/179964/de/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -65,13 +65,13 @@ msgid "Add files/URLs to playlist from clipboard"
|
||||
msgstr "Dateien/URLs zur Wiedergabeliste aus der Zwischenablage hinzufügen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:22
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:380
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:372
|
||||
msgid "Recent Files"
|
||||
msgstr "Zuletzt geöffnete Dateien"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:23
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:213
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:201
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:233
|
||||
msgid "Exit"
|
||||
msgstr "Beenden"
|
||||
|
||||
@@ -81,15 +81,15 @@ msgid "Playback"
|
||||
msgstr "Wiedergabe"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:25
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:183
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:184
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:203
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:204
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:205
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:206
|
||||
msgid "Play/Pause"
|
||||
msgstr "Wiedergabe/Pause"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:26
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:185
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:207
|
||||
msgid "Stop"
|
||||
msgstr "Stopp"
|
||||
|
||||
@@ -120,16 +120,16 @@ msgid "Navigate"
|
||||
msgstr "Navigieren"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:28
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:192
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:194
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:196
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:214
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:216
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:218
|
||||
msgid "Previous File"
|
||||
msgstr "Vorherige Datei"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:29
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:193
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:195
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:197
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:215
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:217
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:219
|
||||
msgid "Next File"
|
||||
msgstr "Nächste Datei"
|
||||
|
||||
@@ -182,12 +182,12 @@ msgid "Jump 5 min backward"
|
||||
msgstr "5 Minuten rückwärts springen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:50
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:402
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:393
|
||||
msgid "Title"
|
||||
msgstr "Titel"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:51
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:359
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:351
|
||||
msgid "Chapter"
|
||||
msgstr "Kapitel"
|
||||
|
||||
@@ -224,12 +224,12 @@ msgid "Move Right"
|
||||
msgstr "Nach rechts bewegen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:59
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:96
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:97
|
||||
msgid "Move Up"
|
||||
msgstr "Nach oben bewegen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:60
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:97
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:98
|
||||
msgid "Move Down"
|
||||
msgstr "Nach unten bewegen"
|
||||
|
||||
@@ -242,7 +242,7 @@ msgid "Increase Height"
|
||||
msgstr "Höhe erhöhen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:65
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:117
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:118
|
||||
msgid "Reset"
|
||||
msgstr "Zurücksetzen"
|
||||
|
||||
@@ -322,25 +322,30 @@ msgstr "Video drehen"
|
||||
#: 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\InputHelp.cs:90
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:453
|
||||
msgid "Audio Device"
|
||||
msgstr "Audiogerä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 "Nächster Titel"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:87
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:94
|
||||
#: 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 "Verzögerung +0.1"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:88
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:93
|
||||
#: 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 "Verzögerung -0.1"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:90
|
||||
#: 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
|
||||
@@ -353,86 +358,90 @@ msgstr "Verzögerung -0.1"
|
||||
#: 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 "Untertitel"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:91
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:92
|
||||
msgid "Toggle Visibility"
|
||||
msgstr "Sichtbarkeit umschalten"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:99
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:100
|
||||
msgid "Decrease Font Size"
|
||||
msgstr "Schriftgröße verringern"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:100
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:101
|
||||
msgid "Increase Font Size"
|
||||
msgstr "Schriftgröße erhöhen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:102
|
||||
#: 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:103
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
|
||||
msgid "More"
|
||||
msgstr "Mehr"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:102
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:103
|
||||
msgid "Toggle overriding SSA/ASS styles with normal styles"
|
||||
msgstr "Überschreiben von SSA/ASS-Stilen mit normalen Stilen umschalten"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:104
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:297
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:105
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:289
|
||||
msgid "Track"
|
||||
msgstr "Spur"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:106
|
||||
#: 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 "Lautstärke"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:106
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:141
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:107
|
||||
msgctxt "Volume"
|
||||
msgid "Up"
|
||||
msgstr "Hoch"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:107
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:108
|
||||
msgctxt "Volume"
|
||||
msgid "Down"
|
||||
msgstr "Runter"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:109
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:110
|
||||
msgid "Mute"
|
||||
msgstr "Stumm"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:111
|
||||
#: 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 "Geschwindigkeit"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:111
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:112
|
||||
msgid "-10%"
|
||||
msgstr "-10%"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:112
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:113
|
||||
msgid "+10%"
|
||||
msgstr "+10%"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:114
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:115
|
||||
msgid "Half"
|
||||
msgstr "Halb"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:115
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:116
|
||||
msgid "Double"
|
||||
msgstr "Doppelt"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:119
|
||||
#: 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
|
||||
@@ -443,16 +452,34 @@ msgstr "Doppelt"
|
||||
#: 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:137
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:141
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
|
||||
msgid "View"
|
||||
msgstr "Ansicht"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:119
|
||||
msgid "Show Playlist"
|
||||
msgstr "Wiedergabeliste anzeigen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:120
|
||||
msgid "Show Profiles"
|
||||
msgstr "Profile anzeigen"
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:234
|
||||
msgid "Playlist"
|
||||
msgstr "Wiedergabeliste"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:121
|
||||
msgid "Toggle Statistics"
|
||||
@@ -463,126 +490,133 @@ msgid "Toggle OSC Visibility"
|
||||
msgstr "Bildschirmschaltflächen-Sichtbarkeit umschalten"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:123
|
||||
msgid "Show Media Info On-Screen"
|
||||
msgstr "Medieninformationen auf dem Bildschirm anzeigen"
|
||||
msgid "Media Info On-Screen"
|
||||
msgstr "Media Info Bildschirm"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:124
|
||||
msgid "Show Media Info Message Box"
|
||||
msgstr "Medieninformation in Nachrichtenbox anzeigen"
|
||||
msgid "Media Info Message Box"
|
||||
msgstr "Media Info Message Box"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:125
|
||||
msgid "Show Progress"
|
||||
msgstr "Fortschritt anzeigen"
|
||||
msgid "Progress"
|
||||
msgstr "Fortschritt"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:126
|
||||
msgid "Show Console"
|
||||
msgstr "Konsole anzeigen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
|
||||
msgid "Show Audio Devices"
|
||||
msgstr "Audio-Geräte anzeigen"
|
||||
#: 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:137
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:248
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:249
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:250
|
||||
msgid "On-Screen Menu"
|
||||
msgstr "Bildschirmmenü"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
|
||||
msgid "Show Commands"
|
||||
msgstr "Befehle anzeigen"
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:246
|
||||
msgid "Bindings"
|
||||
msgstr "Tastaturkurzbefehle"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
|
||||
msgid "Show Bindings"
|
||||
msgstr "Tastenkombinationen anzeigen"
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:247
|
||||
msgid "Properties"
|
||||
msgstr "Eigenschaften"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:240
|
||||
msgid "Chapters"
|
||||
msgstr "Kapitel"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:239
|
||||
msgid "Tracks"
|
||||
msgstr "Spuren"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:237
|
||||
msgid "Audio Tracks"
|
||||
msgstr "Audiospuren"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
|
||||
msgid "Subtitle Tracks"
|
||||
msgstr "Untertitelspuren"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
|
||||
msgid "Secondary Subtitle"
|
||||
msgstr "Sekundärer Untertitel"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:135
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:238
|
||||
msgid "Video Tracks"
|
||||
msgstr "Videospuren"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:241
|
||||
msgid "Editions"
|
||||
msgstr "Editionen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:137
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:242
|
||||
msgid "Subtitle Lines"
|
||||
msgstr "Untertitellinien"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:243
|
||||
msgid "Audio Devices"
|
||||
msgstr "Audiogeräte"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:244
|
||||
msgid "Watch History"
|
||||
msgstr "Anschauverlauf"
|
||||
|
||||
#: 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:245
|
||||
msgid "Watch Later"
|
||||
msgstr "Später Anschauen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
|
||||
msgid "Window"
|
||||
msgstr "Fenster"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:199
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:200
|
||||
msgid "Fullscreen"
|
||||
msgstr "Vollbild"
|
||||
|
||||
#: 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:137
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
msgid "Zoom"
|
||||
msgstr "Zoom"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
|
||||
msgid "Enlarge"
|
||||
msgstr "Vergrößern"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
|
||||
msgid "Shrink"
|
||||
msgstr "Verkleinern"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:135
|
||||
msgid "50 %"
|
||||
msgstr "50 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||
msgid "100 %"
|
||||
msgstr "100 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:137
|
||||
msgid "200 %"
|
||||
msgstr "200 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
msgid "300 %"
|
||||
msgstr "300 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:141
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
msgid "Move"
|
||||
msgstr "Verschieben"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||
msgid "Left"
|
||||
msgstr "Links"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||
msgid "Right"
|
||||
msgstr "Rechts"
|
||||
msgid "Console"
|
||||
msgstr "Konsole"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
msgid "Center"
|
||||
msgstr "Mitte"
|
||||
msgid "Commands"
|
||||
msgstr "Befehle"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||
msgid "Toggle Border"
|
||||
msgstr "Rahmen umschalten"
|
||||
msgid "Active Bindings In Text Editor"
|
||||
msgstr "Aktive Tastaturkombinationen Im Texteditor"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
|
||||
msgid "Toggle On Top"
|
||||
msgstr "Fenster im Vordergrund umschalten"
|
||||
msgid "Active Bindings On-Screen"
|
||||
msgstr "Aktive Tastaturkombinationen Auf Bildschirm"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||
msgid "Keys"
|
||||
msgstr "Tastaturkombinationen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:435
|
||||
msgid "Profile"
|
||||
msgstr "Profil"
|
||||
msgid "Protocols"
|
||||
msgstr "Protokolle"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||
msgid "Decoders"
|
||||
msgstr "Dekoder"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:150
|
||||
msgid "Demuxers"
|
||||
msgstr "Demuxer"
|
||||
|
||||
#: 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
|
||||
@@ -593,90 +627,101 @@ msgstr "Profil"
|
||||
#: 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 "Settings"
|
||||
msgstr "Einstellungen"
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
|
||||
msgid "Window"
|
||||
msgstr "Fenster"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
|
||||
msgid "Show Config Editor"
|
||||
msgstr "Konfigurationseditor anzeigen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:150
|
||||
msgid "Show Input Editor"
|
||||
msgstr "Tastenkombinationeneditor anzeigen"
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:151
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:221
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:222
|
||||
msgid "Fullscreen"
|
||||
msgstr "Vollbild"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||
msgid "Edit mpv.conf"
|
||||
msgstr "mpv.conf bearbeiten"
|
||||
#: 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
|
||||
msgid "Zoom"
|
||||
msgstr "Zoom"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||
msgid "Enlarge"
|
||||
msgstr "Vergrößern"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:153
|
||||
msgid "Edit input.conf"
|
||||
msgstr "input.conf bearbeiten"
|
||||
msgid "Shrink"
|
||||
msgstr "Verkleinern"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:155
|
||||
msgid "Open Config Folder"
|
||||
msgstr "Konfigurationsordner öffnen"
|
||||
msgid "50 %"
|
||||
msgstr "50 %"
|
||||
|
||||
#: 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 "Setup"
|
||||
msgstr "Einrichten"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:156
|
||||
msgid "Register video file associations"
|
||||
msgstr "Video-Dateizuordnungen registrieren"
|
||||
msgid "100 %"
|
||||
msgstr "100 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:157
|
||||
msgid "Register audio file associations"
|
||||
msgstr "Audio-Dateizuordnungen registrieren"
|
||||
msgid "200 %"
|
||||
msgstr "200 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:158
|
||||
msgid "Register image file associations"
|
||||
msgstr "Bild-Dateizuordnungen registrieren"
|
||||
msgid "300 %"
|
||||
msgstr "300 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:159
|
||||
msgid "Unregister file associations"
|
||||
msgstr "Dateizuordnungen entfernen"
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
|
||||
msgid "Move"
|
||||
msgstr "Verschieben"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:159
|
||||
msgctxt "Move"
|
||||
msgid "Left"
|
||||
msgstr "Links"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
|
||||
msgid "Add mpv.net to Path environment variable"
|
||||
msgstr "mpv.net zur Umgebungsvariable Path hinzufügen"
|
||||
msgctxt "Move"
|
||||
msgid "Right"
|
||||
msgstr "Rechts"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
|
||||
msgctxt "Move"
|
||||
msgid "Up"
|
||||
msgstr "Hoch"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:166
|
||||
msgid "Tools"
|
||||
msgstr "Werkzeuge"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||
msgid "Set/clear A-B loop points"
|
||||
msgstr "Setzen/Löschen von A-B Schleifenpunkten"
|
||||
msgctxt "Move"
|
||||
msgid "Down"
|
||||
msgstr "Runter"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
|
||||
msgid "Toggle infinite file looping"
|
||||
msgstr "Unendliche Dateischleife umschalten"
|
||||
msgctxt "Move"
|
||||
msgid "Center"
|
||||
msgstr "Mitte"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
|
||||
msgid "Shuffle Playlist"
|
||||
msgstr "Wiedergabeliste mischen"
|
||||
msgid "Toggle Border"
|
||||
msgstr "Rahmen umschalten"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
|
||||
msgid "Toggle Hardware Decoding"
|
||||
msgstr "Hardware-Decodierung umschalten"
|
||||
msgid "Toggle On Top"
|
||||
msgstr "Fenster im Vordergrund umschalten"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:166
|
||||
msgid "Exit Watch Later"
|
||||
msgstr "Beenden und später anschauen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:168
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:457
|
||||
msgid "Custom"
|
||||
msgstr "Benutzerdefiniert"
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:167
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:426
|
||||
msgid "Profile"
|
||||
msgstr "Profil"
|
||||
|
||||
#: 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
|
||||
@@ -685,125 +730,248 @@ msgstr "Benutzerdefiniert"
|
||||
#: 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
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:178
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:180
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
|
||||
msgid "Config"
|
||||
msgstr "Konfiguration"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:169
|
||||
msgid "Show Config Editor"
|
||||
msgstr "Konfigurationseditor anzeigen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:170
|
||||
msgid "Show Input Editor"
|
||||
msgstr "Tastenkombinationeneditor anzeigen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:172
|
||||
msgid "Edit mpv.conf"
|
||||
msgstr "mpv.conf bearbeiten"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:173
|
||||
msgid "Edit input.conf"
|
||||
msgstr "input.conf bearbeiten"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:175
|
||||
msgid "Open Config Folder"
|
||||
msgstr "Konfigurationsordner öffnen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:178
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:180
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
|
||||
msgid "Setup"
|
||||
msgstr "Einrichten"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||
msgid "Register video file associations"
|
||||
msgstr "Video-Dateizuordnungen registrieren"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||
msgid "Register audio file associations"
|
||||
msgstr "Audio-Dateizuordnungen registrieren"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:178
|
||||
msgid "Register image file associations"
|
||||
msgstr "Bild-Dateizuordnungen registrieren"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
|
||||
msgid "Unregister file associations"
|
||||
msgstr "Dateizuordnungen entfernen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||
msgid "Add mpv.net to Path environment variable"
|
||||
msgstr "mpv.net zur Umgebungsvariable Path hinzufügen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
|
||||
msgid "Remove mpv.net from Path environment variable"
|
||||
msgstr "mpv.net aus der Umgebungsvariablen 'Path' entfernen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:184
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:185
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:186
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:187
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:188
|
||||
msgid "Tools"
|
||||
msgstr "Werkzeuge"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:184
|
||||
msgid "Set/clear A-B loop points"
|
||||
msgstr "Setzen/Löschen von A-B Schleifenpunkten"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:185
|
||||
msgid "Toggle infinite file looping"
|
||||
msgstr "Unendliche Dateischleife umschalten"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:186
|
||||
msgid "Shuffle Playlist"
|
||||
msgstr "Wiedergabeliste mischen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:187
|
||||
msgid "Toggle Hardware Decoding"
|
||||
msgstr "Hardware-Decodierung umschalten"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:188
|
||||
msgid "Exit Watch Later"
|
||||
msgstr "Beenden und später anschauen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:190
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:477
|
||||
msgid "Custom"
|
||||
msgstr "Benutzerdefiniert"
|
||||
|
||||
#: 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
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:195
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:196
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:197
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:198
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:199
|
||||
msgid "Help"
|
||||
msgstr "Hilfe"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:170
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:192
|
||||
msgid "Website mpv"
|
||||
msgstr "Webseite mpv"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:171
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:193
|
||||
msgid "Website mpv.net"
|
||||
msgstr "Webseite mpv.net"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:173
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:195
|
||||
msgid "Manual mpv"
|
||||
msgstr "Handbuch mpv"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:174
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:196
|
||||
msgid "Manual mpv.net"
|
||||
msgstr "Handbuch mpv.net"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:198
|
||||
msgid "awesome-mpv"
|
||||
msgstr "awesome-mpv"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:199
|
||||
msgid "About mpv.net"
|
||||
msgstr "Über mpv.net"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:180
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:202
|
||||
msgid "Show Menu"
|
||||
msgstr "Menü anzeigen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:186
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:208
|
||||
msgid "Forward"
|
||||
msgstr "Vorwärts"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:187
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:209
|
||||
msgid "Backward"
|
||||
msgstr "Rückwärts"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:188
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:190
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:210
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:212
|
||||
msgid "Volume Up"
|
||||
msgstr "Lautstärke erhöhen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:189
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:191
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:211
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:213
|
||||
msgid "Volume Down"
|
||||
msgstr "Lautstärke verringern"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:198
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:220
|
||||
msgid "Ignore left mouse butten"
|
||||
msgstr "Ignoriere die linke Maustaste"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:201
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:203
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:209
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:223
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:225
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:231
|
||||
msgid "Seek Forward"
|
||||
msgstr "Suchen vorwärts"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:202
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:204
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:210
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:224
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:226
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:232
|
||||
msgid "Seek Backward"
|
||||
msgstr "Suchen rückwärts"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:205
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:227
|
||||
msgid "Undo previous (or marked) seek"
|
||||
msgstr "Rückgängig machen vorherige (oder markierte) Suche"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:206
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:228
|
||||
msgid "Mark position for revert-seek"
|
||||
msgstr "Markieren der Position für die Rückwärtssuche"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:207
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:229
|
||||
msgid "Seek to previous subtitle"
|
||||
msgstr "Zum vorherigen Untertitel springen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:208
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:230
|
||||
msgid "Seek to next subtitle"
|
||||
msgstr "Zum nächsten Untertitel springen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:211
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:212
|
||||
msgid "Quit encoding"
|
||||
msgstr "Enkodierung beenden"
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:235
|
||||
msgid "Subtitles"
|
||||
msgstr "Untertitel"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:164
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:184
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:236
|
||||
msgid "Secondary Subtitles"
|
||||
msgstr "Zweite Untertitel"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:192
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:214
|
||||
msgid "Files/URLs were added to the playlist"
|
||||
msgstr "Dateien/URLs wurden zur Wiedergabeliste hinzugefügt"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:177
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:207
|
||||
msgid "The clipboard does not contain a valid URL or file."
|
||||
msgstr "Die Zwischenablage enthält keine gültige URL oder Datei."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:228
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:262
|
||||
msgid "File Explorer icons will refresh after process restart."
|
||||
msgstr ""
|
||||
"Datei-Explorer-Symbole werden nach dem Neustart des Prozesses aktualisiert."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:231
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:265
|
||||
msgid "File associations were successfully removed."
|
||||
msgstr "Dateizuordnungen wurden erfolgreich entfernt."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:233
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:267
|
||||
msgid "File associations were successfully created."
|
||||
msgstr "Dateizuordnungen wurden erfolgreich erstellt."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:236
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:270
|
||||
msgid "Error creating file associations."
|
||||
msgstr "Fehler beim Erstellen von Dateizuordnungen."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:333
|
||||
msgid "mpv.net is already in Path."
|
||||
msgstr "mpv.net ist bereits in Path enthalten."
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:387
|
||||
msgid "mpv.net is already in the Path environment variable."
|
||||
msgstr "mpv.net ist bereits in der 'Path' Umgebungsvariable enthalten."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:341
|
||||
msgid "mpv.net successfully was added to Path."
|
||||
msgstr "mpv.net wurde erfolgreich zu Path hinzugefügt."
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:395
|
||||
msgid "mpv.net was successfully added to the Path environment variable."
|
||||
msgstr "mpv.net wurde erfolgreich zur 'Path' Umgebungsvariable hinzugefügt."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:404
|
||||
msgid "mpv.net was not found in the Path environment variable."
|
||||
msgstr "mpv.net wurde nicht in der 'Path' Umgebungsvariable gefunden."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:413
|
||||
msgid "mpv.net was successfully removed from the Path environment variable."
|
||||
msgstr "mpv.net wurde erfolgreich aus der 'Path' Umgebungsvariable entfernt."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:418
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:423
|
||||
msgid "This feature was removed, but there are user scripts:"
|
||||
msgstr "Diese Funktion wurde entfernt, aber es gibt Benutzerskripte:"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:427
|
||||
msgid "This feature was removed."
|
||||
msgstr "Diese Funktion wurde entfernt."
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\Properties\Resources.Designer.cs:79
|
||||
msgid "editor_conf"
|
||||
@@ -813,7 +981,15 @@ msgstr "editor_conf"
|
||||
msgid "theme"
|
||||
msgstr "theme"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:1396
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:388
|
||||
msgid "Clear List"
|
||||
msgstr "Liste löschen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:448
|
||||
msgid "Show Profiles"
|
||||
msgstr "Profile anzeigen"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:1432
|
||||
msgid "Shutdown thread failed to complete within 10 seconds."
|
||||
msgstr ""
|
||||
"Shutdown-Thread konnte nicht innerhalb von 10 Sekunden abgeschlossen werden."
|
||||
|
||||
1028
lang/po/fr.po
Normal file
997
lang/po/ja.po
Normal file
@@ -0,0 +1,997 @@
|
||||
# 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, 2025
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-10-06 00:24+0200\n"
|
||||
"PO-Revision-Date: 2023-12-08 00:34+0000\n"
|
||||
"Last-Translator: ever_green, 2025\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:372
|
||||
msgid "Recent Files"
|
||||
msgstr "最近のファイル"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:23
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:201
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:233
|
||||
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:203
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:204
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:205
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:206
|
||||
msgid "Play/Pause"
|
||||
msgstr "再生/一時停止"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:26
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:207
|
||||
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:214
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:216
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:218
|
||||
msgid "Previous File"
|
||||
msgstr "前のファイル"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:29
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:215
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:217
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:219
|
||||
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:393
|
||||
msgid "Title"
|
||||
msgstr "タイトル"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:51
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:351
|
||||
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:453
|
||||
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:142
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
|
||||
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:289
|
||||
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:125
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:126
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
|
||||
#: 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:137
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:141
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
|
||||
msgid "View"
|
||||
msgstr "表示"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:120
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:234
|
||||
msgid "Playlist"
|
||||
msgstr "プレイリスト"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:121
|
||||
msgid "Toggle Statistics"
|
||||
msgstr "統計情報の切り替え"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:122
|
||||
msgid "Toggle OSC Visibility"
|
||||
msgstr "OSC 表示の切り替え"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:123
|
||||
msgid "Media Info On-Screen"
|
||||
msgstr "画面メディア情報"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:124
|
||||
msgid "Media Info Message Box"
|
||||
msgstr "メッセージメディア情報"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:125
|
||||
msgid "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
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:137
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:248
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:249
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:250
|
||||
msgid "On-Screen Menu"
|
||||
msgstr "画面メニュー"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:246
|
||||
msgid "Bindings"
|
||||
msgstr "バインディング"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:247
|
||||
msgid "Properties"
|
||||
msgstr "プロパティ"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:240
|
||||
msgid "Chapters"
|
||||
msgstr "チャプター"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:239
|
||||
msgid "Tracks"
|
||||
msgstr "トラック"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:237
|
||||
msgid "Audio Tracks"
|
||||
msgstr "オーディオトラック"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
|
||||
msgid "Subtitle Tracks"
|
||||
msgstr "字幕トラック"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
|
||||
msgid "Secondary Subtitle"
|
||||
msgstr "セカンダリ字幕"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:135
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:238
|
||||
msgid "Video Tracks"
|
||||
msgstr "ビデオトラック"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:241
|
||||
msgid "Editions"
|
||||
msgstr "エディション"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:137
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:242
|
||||
msgid "Subtitle Lines"
|
||||
msgstr "字幕ライン"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:243
|
||||
msgid "Audio Devices"
|
||||
msgstr "オーディオデバイス"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:244
|
||||
msgid "Watch History"
|
||||
msgstr "再生履歴"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:245
|
||||
msgid "Watch Later"
|
||||
msgstr "再生位置を保存"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
msgid "Console"
|
||||
msgstr "コンソール"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
msgid "Commands"
|
||||
msgstr "コマンド"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||
msgid "Active Bindings In Text Editor"
|
||||
msgstr "キーバインドをエディタで編集"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
|
||||
msgid "Active Bindings On-Screen"
|
||||
msgstr "キーバインドを画面に表示"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||
msgid "Keys"
|
||||
msgstr "キー"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||
msgid "Protocols"
|
||||
msgstr "プロトコル"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||
msgid "Decoders"
|
||||
msgstr "デコーダー"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
|
||||
msgid "Demuxers"
|
||||
msgstr "デマルチプレクサ"
|
||||
|
||||
#: 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
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
|
||||
msgid "Window"
|
||||
msgstr "ウィンドウ"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:151
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:221
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:222
|
||||
msgid "Fullscreen"
|
||||
msgstr "フルスクリーン"
|
||||
|
||||
#: 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
|
||||
msgid "Zoom"
|
||||
msgstr "ズーム"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||
msgid "Enlarge"
|
||||
msgstr "拡大"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:153
|
||||
msgid "Shrink"
|
||||
msgstr "縮小"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:155
|
||||
msgid "50 %"
|
||||
msgstr "50 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:156
|
||||
msgid "100 %"
|
||||
msgstr "100 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:157
|
||||
msgid "200 %"
|
||||
msgstr "200 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:158
|
||||
msgid "300 %"
|
||||
msgstr "300 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:159
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
|
||||
msgid "Move"
|
||||
msgstr "移動"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:159
|
||||
msgctxt "Move"
|
||||
msgid "Left"
|
||||
msgstr "左へ"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
|
||||
msgctxt "Move"
|
||||
msgid "Right"
|
||||
msgstr "右へ"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
|
||||
msgctxt "Move"
|
||||
msgid "Up"
|
||||
msgstr "上へ"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||
msgctxt "Move"
|
||||
msgid "Down"
|
||||
msgstr "下へ"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
|
||||
msgctxt "Move"
|
||||
msgid "Center"
|
||||
msgstr "中央"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
|
||||
msgid "Toggle Border"
|
||||
msgstr "ボーダーの切り替え"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
|
||||
msgid "Toggle On Top"
|
||||
msgstr "常に手前に表示"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:167
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:426
|
||||
msgid "Profile"
|
||||
msgstr "プロファイル"
|
||||
|
||||
#: 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
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:178
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:180
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
|
||||
msgid "Config"
|
||||
msgstr "設定"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:169
|
||||
msgid "Show Config Editor"
|
||||
msgstr "構成エディターを表示"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:170
|
||||
msgid "Show Input Editor"
|
||||
msgstr "入力エディターを表示"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:172
|
||||
msgid "Edit mpv.conf"
|
||||
msgstr "mpv.conf の編集"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:173
|
||||
msgid "Edit input.conf"
|
||||
msgstr "input.conf の編集"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:175
|
||||
msgid "Open Config Folder"
|
||||
msgstr "構成フォルダを開く"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:178
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:180
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
|
||||
msgid "Setup"
|
||||
msgstr "セットアップ"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||
msgid "Register video file associations"
|
||||
msgstr "ビデオファイルの関連付けを登録"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||
msgid "Register audio file associations"
|
||||
msgstr "オーディオファイルの関連付けを登録"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:178
|
||||
msgid "Register image file associations"
|
||||
msgstr "画像ファイルの関連付けを登録"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
|
||||
msgid "Unregister file associations"
|
||||
msgstr "ファイルの関連付けの登録解除"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||
msgid "Add mpv.net to Path environment variable"
|
||||
msgstr "mpv.net を Path 環境変数へ追加"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
|
||||
msgid "Remove mpv.net from Path environment variable"
|
||||
msgstr "mpv.net を Path 環境変数から削除"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:184
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:185
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:186
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:187
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:188
|
||||
msgid "Tools"
|
||||
msgstr "ツール"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:184
|
||||
msgid "Set/clear A-B loop points"
|
||||
msgstr "A-B 区間ループの設定/解除"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:185
|
||||
msgid "Toggle infinite file looping"
|
||||
msgstr "無限ファイルループの切り替え"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:186
|
||||
msgid "Shuffle Playlist"
|
||||
msgstr "プレイリストをシャッフル"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:187
|
||||
msgid "Toggle Hardware Decoding"
|
||||
msgstr "ハードウェアデコードの切り替え"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:188
|
||||
msgid "Exit Watch Later"
|
||||
msgstr "再生位置を保存して終了"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:190
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:477
|
||||
msgid "Custom"
|
||||
msgstr "カスタム"
|
||||
|
||||
#: 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
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:195
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:196
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:197
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:198
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:199
|
||||
msgid "Help"
|
||||
msgstr "ヘルプ"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:192
|
||||
msgid "Website mpv"
|
||||
msgstr "mpv ウェブサイト"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:193
|
||||
msgid "Website mpv.net"
|
||||
msgstr "mpv.net ウェブサイト"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:195
|
||||
msgid "Manual mpv"
|
||||
msgstr "mpv マニュアル"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:196
|
||||
msgid "Manual mpv.net"
|
||||
msgstr "mpv.net マニュアル"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:198
|
||||
msgid "awesome-mpv"
|
||||
msgstr "awesome-mpv"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:199
|
||||
msgid "About mpv.net"
|
||||
msgstr "mpv.net のバージョン情報"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:202
|
||||
msgid "Show Menu"
|
||||
msgstr "メニューを表示"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:208
|
||||
msgid "Forward"
|
||||
msgstr "進む"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:209
|
||||
msgid "Backward"
|
||||
msgstr "戻る"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:210
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:212
|
||||
msgid "Volume Up"
|
||||
msgstr "音量を上げる"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:211
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:213
|
||||
msgid "Volume Down"
|
||||
msgstr "音量を下げる"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:220
|
||||
msgid "Ignore left mouse butten"
|
||||
msgstr "マウスの左ボタンを無視"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:223
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:225
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:231
|
||||
msgid "Seek Forward"
|
||||
msgstr "早送り"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:224
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:226
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:232
|
||||
msgid "Seek Backward"
|
||||
msgstr "早戻し"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:227
|
||||
msgid "Undo previous (or marked) seek"
|
||||
msgstr "直前の (またはマークした) シークを元に戻す"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:228
|
||||
msgid "Mark position for revert-seek"
|
||||
msgstr "戻り位置をマーク"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:229
|
||||
msgid "Seek to previous subtitle"
|
||||
msgstr "前の字幕へ戻る"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:230
|
||||
msgid "Seek to next subtitle"
|
||||
msgstr "次の字幕へ進む"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:235
|
||||
msgid "Subtitles"
|
||||
msgstr "字幕"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:236
|
||||
msgid "Secondary Subtitles"
|
||||
msgstr "セカンダリ字幕"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:192
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:214
|
||||
msgid "Files/URLs were added to the playlist"
|
||||
msgstr "ファイル/URL がプレイリストへ追加されました"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:207
|
||||
msgid "The clipboard does not contain a valid URL or file."
|
||||
msgstr "クリップボードに有効な URL またはファイルが含まれていません。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:262
|
||||
msgid "File Explorer icons will refresh after process restart."
|
||||
msgstr "ファイルエクスプローラーのアイコンは、プロセスの再起動後に更新されます。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:265
|
||||
msgid "File associations were successfully removed."
|
||||
msgstr "ファイルの関連付けは正常に削除されました。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:267
|
||||
msgid "File associations were successfully created."
|
||||
msgstr "ファイルの関連付けが正常に作成されました。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:270
|
||||
msgid "Error creating file associations."
|
||||
msgstr "ファイルの関連付けの作成中にエラーが発生しました。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:387
|
||||
msgid "mpv.net is already in the Path environment variable."
|
||||
msgstr "mpv.net は既に Path 環境変数にあります。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:395
|
||||
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:404
|
||||
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:413
|
||||
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:418
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:423
|
||||
msgid "This feature was removed, but there are user scripts:"
|
||||
msgstr "この機能は削除されましたが、ユーザースクリプトがあります:"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:427
|
||||
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:388
|
||||
msgid "Clear List"
|
||||
msgstr "リストをクリア"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:448
|
||||
msgid "Show Profiles"
|
||||
msgstr "プロファイルを表示"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:1432
|
||||
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 "変更は次回の起動時に利用可能になります。"
|
||||
1020
lang/po/ko.po
Normal file
1022
lang/po/pl.po
Normal file
1022
lang/po/ru.po
Normal file
1009
lang/po/tr.po
Normal file
670
lang/po/zh_CN.po
@@ -5,16 +5,16 @@
|
||||
#
|
||||
# Translators:
|
||||
# dyphire, 2023
|
||||
# nkh0472 <nkh0472@hotmail.com>, 2023
|
||||
# nkh0472 <nkh0472@hotmail.com>, 2025
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-12-26 10:28+0100\n"
|
||||
"POT-Creation-Date: 2025-10-06 00:24+0200\n"
|
||||
"PO-Revision-Date: 2023-12-08 00:34+0000\n"
|
||||
"Last-Translator: nkh0472 <nkh0472@hotmail.com>, 2023\n"
|
||||
"Last-Translator: nkh0472 <nkh0472@hotmail.com>, 2025\n"
|
||||
"Language-Team: Chinese (China) (https://app.transifex.com/stax76/teams/179964/zh_CN/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -66,13 +66,13 @@ 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:380
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:372
|
||||
msgid "Recent Files"
|
||||
msgstr "近期文件"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:23
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:213
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:201
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:233
|
||||
msgid "Exit"
|
||||
msgstr "退出"
|
||||
|
||||
@@ -82,15 +82,15 @@ msgid "Playback"
|
||||
msgstr "回放"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:25
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:183
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:184
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:203
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:204
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:205
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:206
|
||||
msgid "Play/Pause"
|
||||
msgstr "播放/暂停"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:26
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:185
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:207
|
||||
msgid "Stop"
|
||||
msgstr "停止"
|
||||
|
||||
@@ -121,16 +121,16 @@ msgid "Navigate"
|
||||
msgstr "导航"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:28
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:192
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:194
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:196
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:214
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:216
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:218
|
||||
msgid "Previous File"
|
||||
msgstr "上一个文件"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:29
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:193
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:195
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:197
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:215
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:217
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:219
|
||||
msgid "Next File"
|
||||
msgstr "下一个文件"
|
||||
|
||||
@@ -183,12 +183,12 @@ 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:402
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:393
|
||||
msgid "Title"
|
||||
msgstr "标题"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:51
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:359
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:351
|
||||
msgid "Chapter"
|
||||
msgstr "章节"
|
||||
|
||||
@@ -225,12 +225,12 @@ msgid "Move Right"
|
||||
msgstr "右移"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:59
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:96
|
||||
#: 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:97
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:98
|
||||
msgid "Move Down"
|
||||
msgstr "下移"
|
||||
|
||||
@@ -243,7 +243,7 @@ msgid "Increase Height"
|
||||
msgstr "增加高度"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:65
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:117
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:118
|
||||
msgid "Reset"
|
||||
msgstr "重置"
|
||||
|
||||
@@ -323,25 +323,30 @@ msgstr "旋转视频"
|
||||
#: 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\InputHelp.cs:90
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:453
|
||||
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:87
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:94
|
||||
#: 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:88
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:93
|
||||
#: 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:90
|
||||
#: 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
|
||||
@@ -354,86 +359,90 @@ msgstr "延迟 -0.1"
|
||||
#: 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:91
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:92
|
||||
msgid "Toggle Visibility"
|
||||
msgstr "切换 可见性"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:99
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:100
|
||||
msgid "Decrease Font Size"
|
||||
msgstr "减小字体大小"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:100
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:101
|
||||
msgid "Increase Font Size"
|
||||
msgstr "增加字体大小"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:102
|
||||
#: 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:103
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
|
||||
msgid "More"
|
||||
msgstr "更多"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:102
|
||||
#: 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:104
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:297
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:105
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:289
|
||||
msgid "Track"
|
||||
msgstr "轨道"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:106
|
||||
#: 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:106
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:141
|
||||
msgid "Up"
|
||||
msgstr "上移"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:107
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
msgid "Down"
|
||||
msgstr "下移"
|
||||
msgctxt "Volume"
|
||||
msgid "Up"
|
||||
msgstr "增大"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:109
|
||||
#: 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:111
|
||||
#: 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:111
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:112
|
||||
msgid "-10%"
|
||||
msgstr "-10%"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:112
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:113
|
||||
msgid "+10%"
|
||||
msgstr "+10%"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:114
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:115
|
||||
msgid "Half"
|
||||
msgstr "减半"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:115
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:116
|
||||
msgid "Double"
|
||||
msgstr "翻倍"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:119
|
||||
#: 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
|
||||
@@ -444,16 +453,34 @@ msgstr "翻倍"
|
||||
#: 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:137
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:141
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
|
||||
msgid "View"
|
||||
msgstr "查看"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:119
|
||||
msgid "Show Playlist"
|
||||
msgstr "显示播放列表"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:120
|
||||
msgid "Show Profiles"
|
||||
msgstr "显示配置文件"
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:234
|
||||
msgid "Playlist"
|
||||
msgstr "播放列表"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:121
|
||||
msgid "Toggle Statistics"
|
||||
@@ -464,126 +491,133 @@ msgid "Toggle OSC Visibility"
|
||||
msgstr "切换 OSC 可见性"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:123
|
||||
msgid "Show Media Info On-Screen"
|
||||
msgstr "在 OSD 上显示媒体信息"
|
||||
msgid "Media Info On-Screen"
|
||||
msgstr "显示媒体信息"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:124
|
||||
msgid "Show Media Info Message Box"
|
||||
msgstr "显示媒体信息消息框"
|
||||
msgid "Media Info Message Box"
|
||||
msgstr "媒体信息消息框"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:125
|
||||
msgid "Show Progress"
|
||||
msgstr "显示进度"
|
||||
msgid "Progress"
|
||||
msgstr "进度"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:126
|
||||
msgid "Show Console"
|
||||
msgstr "显示控制台"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
|
||||
msgid "Show Audio Devices"
|
||||
msgstr "显示音频设备"
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs: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:137
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:248
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:249
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:250
|
||||
msgid "On-Screen Menu"
|
||||
msgstr "屏幕菜单"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
|
||||
msgid "Show Commands"
|
||||
msgstr "显示命令"
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:246
|
||||
msgid "Bindings"
|
||||
msgstr "键位绑定"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
|
||||
msgid "Show Bindings"
|
||||
msgstr "显示键位绑定"
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:247
|
||||
msgid "Properties"
|
||||
msgstr "属性"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:240
|
||||
msgid "Chapters"
|
||||
msgstr "章节"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:239
|
||||
msgid "Tracks"
|
||||
msgstr "轨道"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:237
|
||||
msgid "Audio Tracks"
|
||||
msgstr "音频轨道"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
|
||||
msgid "Subtitle Tracks"
|
||||
msgstr "字幕轨道"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
|
||||
msgid "Secondary Subtitle"
|
||||
msgstr "第二字幕"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:135
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:238
|
||||
msgid "Video Tracks"
|
||||
msgstr "视频轨道"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:241
|
||||
msgid "Editions"
|
||||
msgstr "版本"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:137
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:242
|
||||
msgid "Subtitle Lines"
|
||||
msgstr "字幕行"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:243
|
||||
msgid "Audio Devices"
|
||||
msgstr "音频设备"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:244
|
||||
msgid "Watch History"
|
||||
msgstr "观看历史"
|
||||
|
||||
#: 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:245
|
||||
msgid "Watch Later"
|
||||
msgstr "稍后观看"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
|
||||
msgid "Window"
|
||||
msgstr "窗口"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:199
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:200
|
||||
msgid "Fullscreen"
|
||||
msgstr "全屏"
|
||||
|
||||
#: 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:137
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
msgid "Zoom"
|
||||
msgstr "缩放"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
|
||||
msgid "Enlarge"
|
||||
msgstr "放大"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
|
||||
msgid "Shrink"
|
||||
msgstr "缩小"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:135
|
||||
msgid "50 %"
|
||||
msgstr "50 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||
msgid "100 %"
|
||||
msgstr "100 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:137
|
||||
msgid "200 %"
|
||||
msgstr "200 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
msgid "300 %"
|
||||
msgstr "300 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:141
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
msgid "Move"
|
||||
msgstr "移动"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||
msgid "Left"
|
||||
msgstr "左移"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||
msgid "Right"
|
||||
msgstr "右移"
|
||||
msgid "Console"
|
||||
msgstr "控制台"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
msgid "Center"
|
||||
msgstr "居中"
|
||||
msgid "Commands"
|
||||
msgstr "命令"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||
msgid "Toggle Border"
|
||||
msgstr "切换 边框"
|
||||
msgid "Active Bindings In Text Editor"
|
||||
msgstr "文本编辑器中的活动绑定"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
|
||||
msgid "Toggle On Top"
|
||||
msgstr "切换 置顶"
|
||||
msgid "Active Bindings On-Screen"
|
||||
msgstr "屏幕上的活动绑定"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||
msgid "Keys"
|
||||
msgstr "键"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:435
|
||||
msgid "Profile"
|
||||
msgstr "配置文件"
|
||||
msgid "Protocols"
|
||||
msgstr "协议"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||
msgid "Decoders"
|
||||
msgstr "解码器"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:150
|
||||
msgid "Demuxers"
|
||||
msgstr "解复用器"
|
||||
|
||||
#: 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
|
||||
@@ -594,90 +628,101 @@ msgstr "配置文件"
|
||||
#: 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 "Settings"
|
||||
msgstr "设置"
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
|
||||
msgid "Window"
|
||||
msgstr "窗口"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
|
||||
msgid "Show Config Editor"
|
||||
msgstr "显示配置编辑器"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:150
|
||||
msgid "Show Input Editor"
|
||||
msgstr "显示输入编辑器"
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:151
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:221
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:222
|
||||
msgid "Fullscreen"
|
||||
msgstr "全屏"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||
msgid "Edit mpv.conf"
|
||||
msgstr "编辑 mpv.conf"
|
||||
#: 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
|
||||
msgid "Zoom"
|
||||
msgstr "缩放"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||
msgid "Enlarge"
|
||||
msgstr "放大"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:153
|
||||
msgid "Edit input.conf"
|
||||
msgstr "编辑 input.conf"
|
||||
msgid "Shrink"
|
||||
msgstr "缩小"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:155
|
||||
msgid "Open Config Folder"
|
||||
msgstr "打开配置文件夹"
|
||||
msgid "50 %"
|
||||
msgstr "50 %"
|
||||
|
||||
#: 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 "Setup"
|
||||
msgstr "设置"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:156
|
||||
msgid "Register video file associations"
|
||||
msgstr "注册视频文件关联"
|
||||
msgid "100 %"
|
||||
msgstr "100 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:157
|
||||
msgid "Register audio file associations"
|
||||
msgstr "注册音频文件关联"
|
||||
msgid "200 %"
|
||||
msgstr "200 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:158
|
||||
msgid "Register image file associations"
|
||||
msgstr "注册图像文件关联"
|
||||
msgid "300 %"
|
||||
msgstr "300 %"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:159
|
||||
msgid "Unregister file associations"
|
||||
msgstr "注销文件关联"
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
|
||||
msgid "Move"
|
||||
msgstr "移动"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:159
|
||||
msgctxt "Move"
|
||||
msgid "Left"
|
||||
msgstr "左移"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
|
||||
msgid "Add mpv.net to Path environment variable"
|
||||
msgstr "将 mpv.net 添加到环境变量"
|
||||
msgctxt "Move"
|
||||
msgid "Right"
|
||||
msgstr "右移"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
|
||||
msgctxt "Move"
|
||||
msgid "Up"
|
||||
msgstr "上移"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:166
|
||||
msgid "Tools"
|
||||
msgstr "工具"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||
msgid "Set/clear A-B loop points"
|
||||
msgstr "设置/清除 A-B 循环点"
|
||||
msgctxt "Move"
|
||||
msgid "Down"
|
||||
msgstr "下移"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
|
||||
msgid "Toggle infinite file looping"
|
||||
msgstr "切换 无限文件循环"
|
||||
msgctxt "Move"
|
||||
msgid "Center"
|
||||
msgstr "居中"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
|
||||
msgid "Shuffle Playlist"
|
||||
msgstr "随机播放列表"
|
||||
msgid "Toggle Border"
|
||||
msgstr "切换 边框"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
|
||||
msgid "Toggle Hardware Decoding"
|
||||
msgstr "切换 硬件解码"
|
||||
msgid "Toggle On Top"
|
||||
msgstr "切换 置顶"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:166
|
||||
msgid "Exit Watch Later"
|
||||
msgstr "退出(稍后观看)"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:168
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:457
|
||||
msgid "Custom"
|
||||
msgstr "自定义"
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:167
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:426
|
||||
msgid "Profile"
|
||||
msgstr "配置文件"
|
||||
|
||||
#: 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
|
||||
@@ -686,124 +731,247 @@ msgstr "自定义"
|
||||
#: 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
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:178
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:180
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
|
||||
msgid "Config"
|
||||
msgstr "配置"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:169
|
||||
msgid "Show Config Editor"
|
||||
msgstr "显示配置编辑器"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:170
|
||||
msgid "Show Input Editor"
|
||||
msgstr "显示输入编辑器"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:172
|
||||
msgid "Edit mpv.conf"
|
||||
msgstr "编辑 mpv.conf"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:173
|
||||
msgid "Edit input.conf"
|
||||
msgstr "编辑 input.conf"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:175
|
||||
msgid "Open Config Folder"
|
||||
msgstr "打开配置文件夹"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:178
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:180
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
|
||||
msgid "Setup"
|
||||
msgstr "设置"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||
msgid "Register video file associations"
|
||||
msgstr "注册视频文件关联"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||
msgid "Register audio file associations"
|
||||
msgstr "注册音频文件关联"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:178
|
||||
msgid "Register image file associations"
|
||||
msgstr "注册图像文件关联"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
|
||||
msgid "Unregister file associations"
|
||||
msgstr "注销文件关联"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||
msgid "Add mpv.net to Path environment variable"
|
||||
msgstr "将 mpv.net 添加到环境变量"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
|
||||
msgid "Remove mpv.net from Path environment variable"
|
||||
msgstr "将 mpv.net 从环境变量中移除"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:184
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:185
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:186
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:187
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:188
|
||||
msgid "Tools"
|
||||
msgstr "工具"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:184
|
||||
msgid "Set/clear A-B loop points"
|
||||
msgstr "设置/清除 A-B 循环点"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:185
|
||||
msgid "Toggle infinite file looping"
|
||||
msgstr "切换 无限文件循环"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:186
|
||||
msgid "Shuffle Playlist"
|
||||
msgstr "随机播放列表"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:187
|
||||
msgid "Toggle Hardware Decoding"
|
||||
msgstr "切换 硬件解码"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:188
|
||||
msgid "Exit Watch Later"
|
||||
msgstr "退出(稍后观看)"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:190
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:477
|
||||
msgid "Custom"
|
||||
msgstr "自定义"
|
||||
|
||||
#: 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
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:195
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:196
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:197
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:198
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:199
|
||||
msgid "Help"
|
||||
msgstr "帮助"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:170
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:192
|
||||
msgid "Website mpv"
|
||||
msgstr "mpv 网址"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:171
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:193
|
||||
msgid "Website mpv.net"
|
||||
msgstr "mpv.net 网址"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:173
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:195
|
||||
msgid "Manual mpv"
|
||||
msgstr "mpv 手册"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:174
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:196
|
||||
msgid "Manual mpv.net"
|
||||
msgstr "mpv.net 手册"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:198
|
||||
msgid "awesome-mpv"
|
||||
msgstr "awesome-mpv"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:199
|
||||
msgid "About mpv.net"
|
||||
msgstr "关于 mpv.net"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:180
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:202
|
||||
msgid "Show Menu"
|
||||
msgstr "显示菜单"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:186
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:208
|
||||
msgid "Forward"
|
||||
msgstr "前进"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:187
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:209
|
||||
msgid "Backward"
|
||||
msgstr "后退"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:188
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:190
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:210
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:212
|
||||
msgid "Volume Up"
|
||||
msgstr "增加 音量"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:189
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:191
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:211
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:213
|
||||
msgid "Volume Down"
|
||||
msgstr "降低 音量"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:198
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:220
|
||||
msgid "Ignore left mouse butten"
|
||||
msgstr "忽略左键"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:201
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:203
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:209
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:223
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:225
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:231
|
||||
msgid "Seek Forward"
|
||||
msgstr "向前跳转"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:202
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:204
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:210
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:224
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:226
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:232
|
||||
msgid "Seek Backward"
|
||||
msgstr "向后跳转"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:205
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:227
|
||||
msgid "Undo previous (or marked) seek"
|
||||
msgstr "撤销之前(或标记的)跳转"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:206
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:228
|
||||
msgid "Mark position for revert-seek"
|
||||
msgstr "标记回退查找的位置"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:207
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:229
|
||||
msgid "Seek to previous subtitle"
|
||||
msgstr "跳至上一条字幕"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:208
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:230
|
||||
msgid "Seek to next subtitle"
|
||||
msgstr "跳至下一条字幕"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:211
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:212
|
||||
msgid "Quit encoding"
|
||||
msgstr "退出编码"
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:235
|
||||
msgid "Subtitles"
|
||||
msgstr "字幕"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:164
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:184
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:236
|
||||
msgid "Secondary Subtitles"
|
||||
msgstr "第二字幕"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:192
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:214
|
||||
msgid "Files/URLs were added to the playlist"
|
||||
msgstr "已添加 文件/URL 到播放列表"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:177
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:207
|
||||
msgid "The clipboard does not contain a valid URL or file."
|
||||
msgstr "剪贴板中未包含有效的 URL 或文件。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:228
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:262
|
||||
msgid "File Explorer icons will refresh after process restart."
|
||||
msgstr "文件资源管理器图标将在进程重新启动后刷新"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:231
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:265
|
||||
msgid "File associations were successfully removed."
|
||||
msgstr "文件关联已成功删除"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:233
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:267
|
||||
msgid "File associations were successfully created."
|
||||
msgstr "文件关联已成功创建"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:236
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:270
|
||||
msgid "Error creating file associations."
|
||||
msgstr "创建文件关联时出错"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:333
|
||||
msgid "mpv.net is already in Path."
|
||||
msgstr "mpv.net 已存在于环境变量"
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:387
|
||||
msgid "mpv.net is already in the Path environment variable."
|
||||
msgstr "mpv.net 已存在于环境变量。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:341
|
||||
msgid "mpv.net successfully was added to Path."
|
||||
msgstr "成功添加 mpv.net 到环境变量"
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:395
|
||||
msgid "mpv.net was successfully added to the Path environment variable."
|
||||
msgstr "成功添加 mpv.net 至环境变量。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:404
|
||||
msgid "mpv.net was not found in the Path environment variable."
|
||||
msgstr "环境变量中不存在 mpv.net。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:413
|
||||
msgid "mpv.net was successfully removed from the Path environment variable."
|
||||
msgstr "成功从环境变量中移除 mpv.net 。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:418
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:423
|
||||
msgid "This feature was removed, but there are user scripts:"
|
||||
msgstr "该功能已被移除,但有用户脚本:"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:427
|
||||
msgid "This feature was removed."
|
||||
msgstr "该功能已被移除。"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\Properties\Resources.Designer.cs:79
|
||||
msgid "editor_conf"
|
||||
@@ -813,7 +981,15 @@ msgstr "editor_conf"
|
||||
msgid "theme"
|
||||
msgstr "主题"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:1396
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:388
|
||||
msgid "Clear List"
|
||||
msgstr "清空列表"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:448
|
||||
msgid "Show Profiles"
|
||||
msgstr "显示配置文件"
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:1432
|
||||
msgid "Shutdown thread failed to complete within 10 seconds."
|
||||
msgstr "线程关闭未能在 10 秒内完成"
|
||||
|
||||
|
||||
626
lang/source.pot
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-12-26 10:28+0100\n"
|
||||
"POT-Creation-Date: 2025-10-06 00:24+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@@ -61,13 +61,13 @@ msgid "Add files/URLs to playlist from clipboard"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:22
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:380
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:372
|
||||
msgid "Recent Files"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:23
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:213
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:201
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:233
|
||||
msgid "Exit"
|
||||
msgstr ""
|
||||
|
||||
@@ -77,15 +77,15 @@ msgid "Playback"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:25
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:183
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:184
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:203
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:204
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:205
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:206
|
||||
msgid "Play/Pause"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:26
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:185
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:207
|
||||
msgid "Stop"
|
||||
msgstr ""
|
||||
|
||||
@@ -116,16 +116,16 @@ msgid "Navigate"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:28
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:192
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:194
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:196
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:214
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:216
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:218
|
||||
msgid "Previous File"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:29
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:193
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:195
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:197
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:215
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:217
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:219
|
||||
msgid "Next File"
|
||||
msgstr ""
|
||||
|
||||
@@ -178,12 +178,12 @@ msgid "Jump 5 min backward"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:50
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:402
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:393
|
||||
msgid "Title"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:51
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:359
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:351
|
||||
msgid "Chapter"
|
||||
msgstr ""
|
||||
|
||||
@@ -220,12 +220,12 @@ msgid "Move Right"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:59
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:96
|
||||
#: 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:97
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:98
|
||||
msgid "Move Down"
|
||||
msgstr ""
|
||||
|
||||
@@ -238,7 +238,7 @@ msgid "Increase Height"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:65
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:117
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:118
|
||||
msgid "Reset"
|
||||
msgstr ""
|
||||
|
||||
@@ -318,25 +318,30 @@ msgstr ""
|
||||
#: 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\InputHelp.cs:90
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:453
|
||||
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:87
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:94
|
||||
#: 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:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:88
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:93
|
||||
#: 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:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:90
|
||||
#: 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
|
||||
@@ -349,86 +354,90 @@ msgstr ""
|
||||
#: 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:91
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:92
|
||||
msgid "Toggle Visibility"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:99
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:100
|
||||
msgid "Decrease Font Size"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:100
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:101
|
||||
msgid "Increase Font Size"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:102
|
||||
#: 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:103
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
|
||||
msgid "More"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:102
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:103
|
||||
msgid "Toggle overriding SSA/ASS styles with normal styles"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:104
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:297
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:105
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:289
|
||||
msgid "Track"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:106
|
||||
#: 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:106
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:141
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:107
|
||||
msgctxt "Volume"
|
||||
msgid "Up"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:107
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:108
|
||||
msgctxt "Volume"
|
||||
msgid "Down"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:109
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:110
|
||||
msgid "Mute"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:111
|
||||
#: 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:111
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:112
|
||||
msgid "-10%"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:112
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:113
|
||||
msgid "+10%"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:114
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:115
|
||||
msgid "Half"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:115
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:116
|
||||
msgid "Double"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:119
|
||||
#: 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
|
||||
@@ -439,15 +448,33 @@ msgstr ""
|
||||
#: 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:137
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:141
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
|
||||
msgid "View"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:119
|
||||
msgid "Show Playlist"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:120
|
||||
msgid "Show Profiles"
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:234
|
||||
msgid "Playlist"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:121
|
||||
@@ -459,126 +486,133 @@ msgid "Toggle OSC Visibility"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:123
|
||||
msgid "Show Media Info On-Screen"
|
||||
msgid "Media Info On-Screen"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:124
|
||||
msgid "Show Media Info Message Box"
|
||||
msgid "Media Info Message Box"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:125
|
||||
msgid "Show Progress"
|
||||
msgid "Progress"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:126
|
||||
msgid "Show Console"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
|
||||
msgid "Show Audio Devices"
|
||||
#: 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:137
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:248
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:249
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:250
|
||||
msgid "On-Screen Menu"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
|
||||
msgid "Show Commands"
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:246
|
||||
msgid "Bindings"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
|
||||
msgid "Show Bindings"
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:247
|
||||
msgid "Properties"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:240
|
||||
msgid "Chapters"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:239
|
||||
msgid "Tracks"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:237
|
||||
msgid "Audio Tracks"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
|
||||
msgid "Subtitle Tracks"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
|
||||
msgid "Secondary Subtitle"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:135
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:238
|
||||
msgid "Video Tracks"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:241
|
||||
msgid "Editions"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:137
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:242
|
||||
msgid "Subtitle Lines"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:243
|
||||
msgid "Audio Devices"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:244
|
||||
msgid "Watch History"
|
||||
msgstr ""
|
||||
|
||||
#: 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:245
|
||||
msgid "Watch Later"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
|
||||
msgid "Window"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:199
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:200
|
||||
msgid "Fullscreen"
|
||||
msgstr ""
|
||||
|
||||
#: 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:137
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
msgid "Zoom"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
|
||||
msgid "Enlarge"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
|
||||
msgid "Shrink"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:135
|
||||
msgid "50 %"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
|
||||
msgid "100 %"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:137
|
||||
msgid "200 %"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
|
||||
msgid "300 %"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:141
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
msgid "Move"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
|
||||
msgid "Left"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
|
||||
msgid "Right"
|
||||
msgid "Console"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
|
||||
msgid "Center"
|
||||
msgid "Commands"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
|
||||
msgid "Toggle Border"
|
||||
msgid "Active Bindings In Text Editor"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
|
||||
msgid "Toggle On Top"
|
||||
msgid "Active Bindings On-Screen"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
|
||||
msgid "Keys"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:435
|
||||
msgid "Profile"
|
||||
msgid "Protocols"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
|
||||
msgid "Decoders"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:150
|
||||
msgid "Demuxers"
|
||||
msgstr ""
|
||||
|
||||
#: 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
|
||||
@@ -589,90 +623,101 @@ msgstr ""
|
||||
#: 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 "Settings"
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
|
||||
msgid "Window"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
|
||||
msgid "Show Config Editor"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:150
|
||||
msgid "Show Input Editor"
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:151
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:221
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:222
|
||||
msgid "Fullscreen"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||
msgid "Edit mpv.conf"
|
||||
#: 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
|
||||
msgid "Zoom"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
|
||||
msgid "Enlarge"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:153
|
||||
msgid "Edit input.conf"
|
||||
msgid "Shrink"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:155
|
||||
msgid "Open Config Folder"
|
||||
msgid "50 %"
|
||||
msgstr ""
|
||||
|
||||
#: 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 "Setup"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:156
|
||||
msgid "Register video file associations"
|
||||
msgid "100 %"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:157
|
||||
msgid "Register audio file associations"
|
||||
msgid "200 %"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:158
|
||||
msgid "Register image file associations"
|
||||
msgid "300 %"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:159
|
||||
msgid "Unregister file associations"
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
|
||||
msgid "Move"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:159
|
||||
msgctxt "Move"
|
||||
msgid "Left"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
|
||||
msgid "Add mpv.net to Path environment variable"
|
||||
msgctxt "Move"
|
||||
msgid "Right"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
|
||||
msgctxt "Move"
|
||||
msgid "Up"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:166
|
||||
msgid "Tools"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
|
||||
msgid "Set/clear A-B loop points"
|
||||
msgctxt "Move"
|
||||
msgid "Down"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
|
||||
msgid "Toggle infinite file looping"
|
||||
msgctxt "Move"
|
||||
msgid "Center"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
|
||||
msgid "Shuffle Playlist"
|
||||
msgid "Toggle Border"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
|
||||
msgid "Toggle Hardware Decoding"
|
||||
msgid "Toggle On Top"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:166
|
||||
msgid "Exit Watch Later"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:168
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:457
|
||||
msgid "Custom"
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:167
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:426
|
||||
msgid "Profile"
|
||||
msgstr ""
|
||||
|
||||
#: 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
|
||||
@@ -681,123 +726,246 @@ msgstr ""
|
||||
#: 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 "Help"
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:178
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:180
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
|
||||
msgid "Config"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:169
|
||||
msgid "Show Config Editor"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:170
|
||||
msgid "Website mpv"
|
||||
msgid "Show Input Editor"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:171
|
||||
msgid "Website mpv.net"
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:172
|
||||
msgid "Edit mpv.conf"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:173
|
||||
msgid "Manual mpv"
|
||||
msgid "Edit input.conf"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:174
|
||||
msgid "Manual mpv.net"
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:175
|
||||
msgid "Open Config Folder"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||
msgid "awesome-mpv"
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:178
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:180
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
|
||||
msgid "Setup"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
|
||||
msgid "Register video file associations"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
|
||||
msgid "About mpv.net"
|
||||
msgid "Register audio file associations"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:180
|
||||
msgid "Show Menu"
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:178
|
||||
msgid "Register image file associations"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
|
||||
msgid "Unregister file associations"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
|
||||
msgid "Add mpv.net to Path environment variable"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
|
||||
msgid "Remove mpv.net from Path environment variable"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:184
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:185
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:186
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:187
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:188
|
||||
msgid "Tools"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:184
|
||||
msgid "Set/clear A-B loop points"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:185
|
||||
msgid "Toggle infinite file looping"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:186
|
||||
msgid "Forward"
|
||||
msgid "Shuffle Playlist"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:187
|
||||
msgid "Backward"
|
||||
msgid "Toggle Hardware Decoding"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:188
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:190
|
||||
msgid "Volume Up"
|
||||
msgid "Exit Watch Later"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:189
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:191
|
||||
msgid "Volume Down"
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:190
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:477
|
||||
msgid "Custom"
|
||||
msgstr ""
|
||||
|
||||
#: 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
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:195
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:196
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:197
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:198
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:199
|
||||
msgid "Help"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:192
|
||||
msgid "Website mpv"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:193
|
||||
msgid "Website mpv.net"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:195
|
||||
msgid "Manual mpv"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:196
|
||||
msgid "Manual mpv.net"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:198
|
||||
msgid "Ignore left mouse butten"
|
||||
msgid "awesome-mpv"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:201
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:203
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:209
|
||||
msgid "Seek Forward"
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:199
|
||||
msgid "About mpv.net"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:202
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:204
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:210
|
||||
msgid "Seek Backward"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:205
|
||||
msgid "Undo previous (or marked) seek"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:206
|
||||
msgid "Mark position for revert-seek"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:207
|
||||
msgid "Seek to previous subtitle"
|
||||
msgid "Show Menu"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:208
|
||||
msgid "Seek to next subtitle"
|
||||
msgid "Forward"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:209
|
||||
msgid "Backward"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:210
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:212
|
||||
msgid "Volume Up"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:211
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:212
|
||||
msgid "Quit encoding"
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:213
|
||||
msgid "Volume Down"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:164
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:184
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:220
|
||||
msgid "Ignore left mouse butten"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:223
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:225
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:231
|
||||
msgid "Seek Forward"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:224
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:226
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:232
|
||||
msgid "Seek Backward"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:227
|
||||
msgid "Undo previous (or marked) seek"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:228
|
||||
msgid "Mark position for revert-seek"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:229
|
||||
msgid "Seek to previous subtitle"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:230
|
||||
msgid "Seek to next subtitle"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:235
|
||||
msgid "Subtitles"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:236
|
||||
msgid "Secondary Subtitles"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:192
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:214
|
||||
msgid "Files/URLs were added to the playlist"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:177
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:207
|
||||
msgid "The clipboard does not contain a valid URL or file."
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:228
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:262
|
||||
msgid "File Explorer icons will refresh after process restart."
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:231
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:265
|
||||
msgid "File associations were successfully removed."
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:233
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:267
|
||||
msgid "File associations were successfully created."
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:236
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:270
|
||||
msgid "Error creating file associations."
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:333
|
||||
msgid "mpv.net is already in Path."
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:387
|
||||
msgid "mpv.net is already in the Path environment variable."
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:341
|
||||
msgid "mpv.net successfully was added to Path."
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:395
|
||||
msgid "mpv.net was successfully added to the Path environment variable."
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:404
|
||||
msgid "mpv.net was not found in the Path environment variable."
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:413
|
||||
msgid "mpv.net was successfully removed from the Path environment variable."
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:418
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:423
|
||||
msgid "This feature was removed, but there are user scripts:"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:427
|
||||
msgid "This feature was removed."
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\Properties\Resources.Designer.cs:79
|
||||
@@ -808,7 +976,15 @@ msgstr ""
|
||||
msgid "theme"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:1396
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:388
|
||||
msgid "Clear List"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:448
|
||||
msgid "Show Profiles"
|
||||
msgstr ""
|
||||
|
||||
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:1432
|
||||
msgid "Shutdown thread failed to complete within 10 seconds."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ Get-ChildItem $PSScriptRoot/.. -Recurse -File -Filter '*.cs' |
|
||||
Out-File $PSScriptRoot/cs-files.txt
|
||||
|
||||
# Create .pot file
|
||||
xgettext --force-po --from-code=UTF-8 '--language=c#' -o $PSScriptRoot/source.pot --files-from=$PSScriptRoot/cs-files.txt --keyword=_
|
||||
xgettext -k_ -k_n:1,2 -k_p:1c,2 -k_pn:1c,2,3 --force-po --from-code=UTF-8 '--language=c#' -o $PSScriptRoot/source.pot --files-from=$PSScriptRoot/cs-files.txt --keyword=_
|
||||
if ($LastExitCode) { throw $LastExitCode }
|
||||
|
||||
# Backup .po files
|
||||
|
||||
@@ -5,3 +5,6 @@ csharp_style_implicit_object_creation_when_type_is_apparent = true
|
||||
|
||||
# IDE0090: Use 'new(...)'
|
||||
dotnet_diagnostic.IDE0090.severity = silent
|
||||
|
||||
# WFO1000: A property should determine its property content serialization with the DesignerSerializationVisibilityAttribute, DefaultValueAttribute or the ShouldSerializeProperty method
|
||||
dotnet_diagnostic.WFO1000.severity = silent
|
||||
6
src/Directory.Build.props
Normal file
@@ -0,0 +1,6 @@
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
<Product>mpv.net</Product>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
10
src/Directory.Packages.props
Normal file
@@ -0,0 +1,10 @@
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageVersion Include="CommunityToolkit.Mvvm" Version="8.4.0" />
|
||||
<PackageVersion Include="NGettext" Version="0.6.7" />
|
||||
<PackageVersion Include="Microsoft.Xaml.Behaviors.Wpf" Version="1.1.135" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -1,5 +1,5 @@
|
||||
|
||||
using MpvNet.ExtensionMethod;
|
||||
using MpvNet.Extensions;
|
||||
|
||||
namespace MpvNet.Windows;
|
||||
|
||||
@@ -101,8 +101,8 @@ public class ConfParser
|
||||
}
|
||||
else if (line.Contains('='))
|
||||
{
|
||||
string name = line[..line.IndexOf("=")].Trim();
|
||||
string value = line[(line.IndexOf("=") + 1)..].Trim();
|
||||
string name = line[..line.IndexOf('=')].Trim();
|
||||
string value = line[(line.IndexOf('=') + 1)..].Trim();
|
||||
|
||||
currentGroup?.Items.Add(new StringPair(name, value));
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ public static class FileAssociation
|
||||
string exeFilename = Path.GetFileName(exePath);
|
||||
string exeFilenameNoExt = Path.GetFileNameWithoutExtension(exePath);
|
||||
|
||||
string[] protocols = { "ytdl", "rtsp", "srt", "srtp" };
|
||||
string[] protocols = ["ytdl", "rtsp", "srt", "srtp"];
|
||||
|
||||
if (perceivedType != "unreg")
|
||||
{
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
|
||||
using System.Text;
|
||||
using System.Text.Json;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Globalization;
|
||||
using System.Windows.Forms;
|
||||
using System.Windows.Interop;
|
||||
using System.Windows;
|
||||
|
||||
using MpvNet.ExtensionMethod;
|
||||
using MpvNet.Extensions;
|
||||
using MpvNet.Windows.WinForms;
|
||||
using MpvNet.Windows.WPF.Views;
|
||||
using MpvNet.Windows.WPF;
|
||||
using MpvNet.Windows.WPF.MsgBox;
|
||||
using MpvNet.Help;
|
||||
using System.Text.Json;
|
||||
using MpvNet.Windows.Help;
|
||||
using MpvNet.Help;
|
||||
|
||||
namespace MpvNet;
|
||||
|
||||
@@ -30,44 +30,53 @@ public class GuiCommand
|
||||
|
||||
public Dictionary<string, Action<IList<string>>> Commands => _commands ??= new()
|
||||
{
|
||||
["show-about"] = args => ShowDialog(typeof(AboutWindow)),
|
||||
["show-conf-editor"] = args => ShowDialog(typeof(ConfWindow)),
|
||||
["show-input-editor"] = args => ShowDialog(typeof(InputWindow)),
|
||||
["show-audio-devices"] = args => Msg.ShowInfo(Player.GetPropertyOsdString("audio-device-list")),
|
||||
["show-profiles"] = args => Msg.ShowInfo(Player.GetProfiles()),
|
||||
["load-sub"] = LoadSubtitle,
|
||||
["open-files"] = OpenFiles,
|
||||
["open-optical-media"] = Open_DVD_Or_BD_Folder,
|
||||
["load-audio"] = LoadAudio,
|
||||
["open-clipboard"] = OpenFromClipboard,
|
||||
["reg-file-assoc"] = RegisterFileAssociations,
|
||||
["scale-window"] = args => ScaleWindow?.Invoke(float.Parse(args[0], CultureInfo.InvariantCulture)),
|
||||
["show-media-info"] = ShowMediaInfo,
|
||||
["move-window"] = args => MoveWindow?.Invoke(args[0]),
|
||||
["window-scale"] = args => WindowScaleNet?.Invoke(float.Parse(args[0], CultureInfo.InvariantCulture)),
|
||||
["show-menu"] = args => ShowMenu?.Invoke(),
|
||||
["show-bindings"] = args => ShowBindings(),
|
||||
["show-playlist"] = args => ShowPlaylist(),
|
||||
["add-to-path"] = args => AddToPath(),
|
||||
["edit-conf-file"] = EditCongFile,
|
||||
["load-audio"] = LoadAudio,
|
||||
["load-sub"] = LoadSubtitle,
|
||||
["move-window"] = args => MoveWindow?.Invoke(args[0]),
|
||||
["open-clipboard"] = OpenFromClipboard,
|
||||
["open-files"] = OpenFiles,
|
||||
["open-optical-media"] = Open_DVD_Or_BD_Folder,
|
||||
["reg-file-assoc"] = RegisterFileAssociations,
|
||||
["remove-from-path"] = args => RemoveFromPath(),
|
||||
["scale-window"] = args => ScaleWindow?.Invoke(float.Parse(args[0], CultureInfo.InvariantCulture)),
|
||||
["show-about"] = args => ShowDialog(typeof(AboutWindow)),
|
||||
["show-bindings"] = args => ShowBindings(),
|
||||
["show-commands"] = args => ShowCommands(),
|
||||
["show-conf-editor"] = args => ShowDialog(typeof(ConfWindow)),
|
||||
["show-decoders"] = args => ShowDecoders(),
|
||||
["show-demuxers"] = args => ShowDemuxers(),
|
||||
["show-info"] = args => ShowMediaInfo(new[] { "osd" }),
|
||||
["show-input-editor"] = args => ShowDialog(typeof(InputWindow)),
|
||||
["show-keys"] = args => ShowKeys(),
|
||||
["show-media-info"] = ShowMediaInfo,
|
||||
["show-menu"] = args => ShowMenu?.Invoke(),
|
||||
["show-profiles"] = args => Msg.ShowInfo(Player.GetProfiles()),
|
||||
["show-properties"] = args => Player.Command("script-binding select/show-properties"),
|
||||
["show-protocols"] = args => ShowProtocols(),
|
||||
["window-scale"] = args => WindowScaleNet?.Invoke(float.Parse(args[0], CultureInfo.InvariantCulture)),
|
||||
|
||||
|
||||
// deprecated
|
||||
["show-info"] = args => ShowMediaInfo(new[] { "osd" }), // deprecated
|
||||
["show-recent"] = args => ShowRemoved(), // deprecated
|
||||
["quick-bookmark"] = args => QuickBookmark(), // deprecated
|
||||
["show-history"] = args => ShowHistory(), // deprecated
|
||||
["show-command-palette"] = args => ShowCommandPalette(), // deprecated
|
||||
["show-playlist"] = args => Player.Command("script-binding select/select-playlist"), // deprecated
|
||||
["show-command-palette"] = args => Player.Command("script-binding select/select-binding"), // deprecated
|
||||
["show-audio-tracks"] = args => Player.Command("script-binding select/select-aid"), // deprecated
|
||||
["show-subtitle-tracks"] = args => Player.Command("script-binding select/select-sid"), // deprecated
|
||||
["show-audio-devices"] = args => Player.Command("script-binding select/select-audio-device"), // deprecated
|
||||
};
|
||||
|
||||
public void ShowDialog(Type winType)
|
||||
void ShowDialog(Type winType)
|
||||
{
|
||||
Window? win = Activator.CreateInstance(winType) as Window;
|
||||
new WindowInteropHelper(win).Owner = MainForm.Instance!.Handle;
|
||||
win?.ShowDialog();
|
||||
}
|
||||
|
||||
public void LoadSubtitle(IList<string> args)
|
||||
void LoadSubtitle(IList<string> args)
|
||||
{
|
||||
using var dialog = new OpenFileDialog();
|
||||
string path = Player.GetPropertyString("path");
|
||||
@@ -82,7 +91,7 @@ public class GuiCommand
|
||||
Player.CommandV("sub-add", filename);
|
||||
}
|
||||
|
||||
public void OpenFiles(IList<string> args)
|
||||
void OpenFiles(IList<string> args)
|
||||
{
|
||||
bool append = false;
|
||||
|
||||
@@ -96,7 +105,7 @@ public class GuiCommand
|
||||
Player.LoadFiles(dialog.FileNames, true, append);
|
||||
}
|
||||
|
||||
public void Open_DVD_Or_BD_Folder(IList<string> args)
|
||||
void Open_DVD_Or_BD_Folder(IList<string> args)
|
||||
{
|
||||
var dialog = new FolderBrowserDialog();
|
||||
|
||||
@@ -104,15 +113,23 @@ public class GuiCommand
|
||||
Player.LoadDiskFolder(dialog.SelectedPath);
|
||||
}
|
||||
|
||||
public void EditCongFile(IList<string> args)
|
||||
void EditCongFile(IList<string> args)
|
||||
{
|
||||
string file = Player.ConfigFolder + args[0];
|
||||
|
||||
if (!File.Exists(file))
|
||||
{
|
||||
string msg = $"{args[0]} does not exist. Would you like to create it?";
|
||||
|
||||
if (Msg.ShowQuestion(msg) == MessageBoxResult.OK)
|
||||
File.WriteAllText(file, "");
|
||||
}
|
||||
|
||||
if (File.Exists(file))
|
||||
ProcessHelp.ShellExecute(WinApiHelp.GetAppPathForExtension("txt"), "\"" + file + "\"");
|
||||
}
|
||||
|
||||
public static void ShowTextWithEditor(string name, string text)
|
||||
void ShowTextWithEditor(string name, string text)
|
||||
{
|
||||
string file = Path.Combine(Path.GetTempPath(), name + ".txt");
|
||||
App.TempFiles.Add(file);
|
||||
@@ -120,7 +137,7 @@ public class GuiCommand
|
||||
ProcessHelp.ShellExecute(WinApiHelp.GetAppPathForExtension("txt"), "\"" + file + "\"");
|
||||
}
|
||||
|
||||
public static void ShowCommands()
|
||||
void ShowCommands()
|
||||
{
|
||||
string json = Core.GetPropertyString("command-list");
|
||||
var enumerator = JsonDocument.Parse(json).RootElement.EnumerateArray();
|
||||
@@ -145,13 +162,24 @@ public class GuiCommand
|
||||
}
|
||||
|
||||
string header = BR +
|
||||
"https://mpv.io/manual/master/#list-of-input-commands" + BR2 +
|
||||
"https://github.com/stax76/mpv-scripts#command_palette" + BR;
|
||||
"https://mpv.io/manual/master/#list-of-input-commands" + BR;
|
||||
|
||||
ShowTextWithEditor("Input Commands", header + sb.ToString());
|
||||
}
|
||||
|
||||
public void OpenFromClipboard(IList<string> args)
|
||||
void ShowKeys() =>
|
||||
ShowTextWithEditor("Keys", Core.GetPropertyString("input-key-list").Replace(",", BR));
|
||||
|
||||
void ShowProtocols() =>
|
||||
ShowTextWithEditor("Protocols", Core.GetPropertyString("protocol-list").Replace(",", BR));
|
||||
|
||||
void ShowDecoders() =>
|
||||
ShowTextWithEditor("Decoders", Core.GetPropertyOsdString("decoder-list").Replace(",", BR));
|
||||
|
||||
void ShowDemuxers() =>
|
||||
ShowTextWithEditor("Demuxers", Core.GetPropertyOsdString("demuxer-lavf-list").Replace(",", BR));
|
||||
|
||||
void OpenFromClipboard(IList<string> args)
|
||||
{
|
||||
bool append = args.Count == 1 && args[0] == "append";
|
||||
|
||||
@@ -166,11 +194,13 @@ public class GuiCommand
|
||||
else
|
||||
{
|
||||
string clipboard = System.Windows.Forms.Clipboard.GetText();
|
||||
List<string> files = new List<string>();
|
||||
List<string> files = [];
|
||||
|
||||
foreach (string i in clipboard.Split(BR.ToCharArray(), StringSplitOptions.RemoveEmptyEntries))
|
||||
{
|
||||
if (i.Contains("://") || File.Exists(i))
|
||||
files.Add(i);
|
||||
}
|
||||
|
||||
if (files.Count == 0)
|
||||
{
|
||||
@@ -185,7 +215,7 @@ public class GuiCommand
|
||||
}
|
||||
}
|
||||
|
||||
public void LoadAudio(IList<string> args)
|
||||
void LoadAudio(IList<string> args)
|
||||
{
|
||||
using var dialog = new OpenFileDialog();
|
||||
string path = Player.GetPropertyString("path");
|
||||
@@ -195,21 +225,25 @@ public class GuiCommand
|
||||
|
||||
dialog.Multiselect = true;
|
||||
|
||||
if (dialog.ShowDialog() == DialogResult.OK)
|
||||
foreach (string i in dialog.FileNames)
|
||||
Player.CommandV("audio-add", i);
|
||||
if (dialog.ShowDialog() != DialogResult.OK)
|
||||
return;
|
||||
|
||||
foreach (string i in dialog.FileNames)
|
||||
{
|
||||
Player.CommandV("audio-add", i);
|
||||
}
|
||||
}
|
||||
|
||||
public void RegisterFileAssociations(IList<string> args)
|
||||
void RegisterFileAssociations(IList<string> args)
|
||||
{
|
||||
string perceivedType = args[0];
|
||||
string[] extensions = Array.Empty<string>();
|
||||
|
||||
switch (perceivedType)
|
||||
{
|
||||
case "video": extensions = FileTypes.Video; break;
|
||||
case "audio": extensions = FileTypes.Audio; break;
|
||||
case "image": extensions = FileTypes.Image; break;
|
||||
case "video": extensions = FileTypes.GetVideoExts(); break;
|
||||
case "audio": extensions = FileTypes.GetAudioExts(); break;
|
||||
case "image": extensions = FileTypes.GetImgExts(); break;
|
||||
}
|
||||
|
||||
try
|
||||
@@ -238,7 +272,21 @@ public class GuiCommand
|
||||
catch { }
|
||||
}
|
||||
|
||||
public void ShowMediaInfo(IList<string> args)
|
||||
class Obj
|
||||
{
|
||||
public string title { get; set; } = "";
|
||||
public int selected_index { get; set; } = 0;
|
||||
public Item[] items { get; set; } = [];
|
||||
}
|
||||
|
||||
class Item
|
||||
{
|
||||
public string[] value { get; set; } = [];
|
||||
public string title { get; set; } = "";
|
||||
public string hint { get; set; } = "";
|
||||
}
|
||||
|
||||
void ShowMediaInfo(IList<string> args)
|
||||
{
|
||||
if (Player.PlaylistPos == -1)
|
||||
return;
|
||||
@@ -255,20 +303,20 @@ public class GuiCommand
|
||||
|
||||
if (File.Exists(path) && osd)
|
||||
{
|
||||
if (FileTypes.Audio.Contains(path.Ext()))
|
||||
if (FileTypes.IsAudio(path.Ext))
|
||||
{
|
||||
text = Player.GetPropertyOsdString("filtered-metadata");
|
||||
Player.CommandV("show-text", text, "5000");
|
||||
return;
|
||||
}
|
||||
else if (FileTypes.Image.Contains(path.Ext()))
|
||||
else if (FileTypes.IsImage(path.Ext))
|
||||
{
|
||||
fileSize = new FileInfo(path).Length;
|
||||
|
||||
text = "Width: " + Player.GetPropertyInt("width") + "\n" +
|
||||
"Height: " + Player.GetPropertyInt("height") + "\n" +
|
||||
"Size: " + Convert.ToInt32(fileSize / 1024.0) + " KB\n" +
|
||||
"Type: " + path.Ext().ToUpper();
|
||||
"Type: " + path.Ext.ToUpper();
|
||||
|
||||
Player.CommandV("show-text", text, "5000");
|
||||
return;
|
||||
@@ -284,7 +332,7 @@ public class GuiCommand
|
||||
int width = Player.GetPropertyInt("video-params/w");
|
||||
int height = Player.GetPropertyInt("video-params/h");
|
||||
TimeSpan len = TimeSpan.FromSeconds(Player.GetPropertyDouble("duration"));
|
||||
text = path.FileName() + "\n";
|
||||
text = path.FileName + "\n";
|
||||
text += FormatTime(len.TotalMinutes) + ":" + FormatTime(len.Seconds) + "\n";
|
||||
if (fileSize > 0)
|
||||
text += Convert.ToInt32(fileSize / 1024.0 / 1024.0) + " MB\n";
|
||||
@@ -295,15 +343,21 @@ public class GuiCommand
|
||||
}
|
||||
|
||||
if (App.MediaInfo && !osd && File.Exists(path) && !path.Contains(@"\\.\pipe\"))
|
||||
using (MediaInfo mediaInfo = new MediaInfo(path))
|
||||
text = Regex.Replace(mediaInfo.GetSummary(full, raw), "Unique ID.+", "");
|
||||
{
|
||||
using MediaInfo mediaInfo = new MediaInfo(path);
|
||||
text = Regex.Replace(mediaInfo.GetSummary(full, raw), "Unique ID.+", "");
|
||||
}
|
||||
else
|
||||
{
|
||||
Player.UpdateExternalTracks();
|
||||
text = "N: " + Player.GetPropertyString("filename") + BR;
|
||||
lock (Player.MediaTracksLock)
|
||||
{
|
||||
foreach (MediaTrack track in Player.MediaTracks)
|
||||
{
|
||||
text += track.Text + BR;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
text = text.TrimEx();
|
||||
@@ -320,17 +374,17 @@ public class GuiCommand
|
||||
}
|
||||
}
|
||||
|
||||
public static string FormatTime(double value) => ((int)value).ToString("00");
|
||||
string FormatTime(double value) => ((int)value).ToString("00");
|
||||
|
||||
public void ShowBindings() => ShowTextWithEditor("Bindings", Player.UsedInputConfContent);
|
||||
void ShowBindings() => ShowTextWithEditor("Bindings", Player.UsedInputConfContent);
|
||||
|
||||
public void AddToPath()
|
||||
void AddToPath()
|
||||
{
|
||||
string path = Environment.GetEnvironmentVariable("Path", EnvironmentVariableTarget.User)!;
|
||||
|
||||
if (path.ToLower().Contains(Folder.Startup.TrimEnd(Path.DirectorySeparatorChar).ToLower()))
|
||||
if (path.Contains(Folder.Startup.TrimEnd(Path.DirectorySeparatorChar), StringComparison.CurrentCultureIgnoreCase))
|
||||
{
|
||||
Msg.ShowWarning(_("mpv.net is already in Path."));
|
||||
Msg.ShowWarning(_("mpv.net is already in the Path environment variable."));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -338,63 +392,37 @@ public class GuiCommand
|
||||
Folder.Startup.TrimEnd(Path.DirectorySeparatorChar) + ";" + path,
|
||||
EnvironmentVariableTarget.User);
|
||||
|
||||
Msg.ShowInfo(_("mpv.net was successfully added to Path."));
|
||||
Msg.ShowInfo(_("mpv.net was successfully added to the Path environment variable."));
|
||||
}
|
||||
|
||||
public void ShowPlaylist()
|
||||
void RemoveFromPath()
|
||||
{
|
||||
var count = Player.GetPropertyInt("playlist-count");
|
||||
string path = Environment.GetEnvironmentVariable("Path", EnvironmentVariableTarget.User)!;
|
||||
|
||||
if (count < 1)
|
||||
return;
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
for (int i = 0; i < count; i++)
|
||||
if (!path.Contains(Folder.Startup.TrimEnd(Path.DirectorySeparatorChar)))
|
||||
{
|
||||
string name = Player.GetPropertyString($"playlist/{i}/title");
|
||||
|
||||
if (string.IsNullOrEmpty(name))
|
||||
name = Player.GetPropertyString($"playlist/{i}/filename").FileName();
|
||||
|
||||
sb.AppendLine(name);
|
||||
Msg.ShowWarning(_("mpv.net was not found in the Path environment variable."));
|
||||
return;
|
||||
}
|
||||
|
||||
string header = BR + "For a playlist menu the following user scripts exist:" + BR2 +
|
||||
"https://github.com/stax76/mpv-scripts#command_palette" + BR +
|
||||
"https://github.com/stax76/mpv-scripts#search_menu" + BR +
|
||||
"https://github.com/tomasklaen/uosc" + BR +
|
||||
"https://github.com/jonniek/mpv-playlistmanager" + BR2;
|
||||
path = path.Replace(Folder.Startup.TrimEnd(Path.DirectorySeparatorChar), "");
|
||||
path = path.Replace(";;", ";").Trim(';');
|
||||
|
||||
Msg.ShowInfo(header + sb.ToString().TrimEnd());
|
||||
Environment.SetEnvironmentVariable("Path", path, EnvironmentVariableTarget.User);
|
||||
|
||||
Msg.ShowInfo(_("mpv.net was successfully removed from the Path environment variable."));
|
||||
}
|
||||
|
||||
// deprecated
|
||||
public void QuickBookmark() =>
|
||||
Msg.ShowInfo("This feature was moved to a user script,\nwhich can be found here:\n\n" +
|
||||
void QuickBookmark() =>
|
||||
Msg.ShowInfo(_("This feature was removed, but there are user scripts:") + BR2 +
|
||||
"https://github.com/stax76/mpv-scripts/blob/main/misc.lua");
|
||||
|
||||
// deprecated
|
||||
public void ShowHistory() =>
|
||||
Msg.ShowInfo("This feature was moved to a user script,\nwhich can be found here:\n\n" +
|
||||
void ShowHistory() =>
|
||||
Msg.ShowInfo(_("This feature was removed, but there are user scripts:") + BR2 +
|
||||
"https://github.com/stax76/mpv-scripts/blob/main/history.lua");
|
||||
|
||||
// deprecated
|
||||
public void ShowCommandPalette() =>
|
||||
Msg.ShowInfo(
|
||||
"This feature was removed but is still available in the form of user scripts:" + BR2 +
|
||||
"https://github.com/stax76/mpv-scripts#command_palette" + BR +
|
||||
"https://github.com/stax76/mpv-scripts#search_menu" + BR +
|
||||
"https://github.com/tomasklaen/uosc");
|
||||
void ShowRemoved() => Msg.ShowInfo(_("This feature was removed."));
|
||||
}
|
||||
|
||||
|
||||
|
||||
//public void ShowCommandPalette()
|
||||
//{
|
||||
// MainForm.Instance?.BeginInvoke(() => {
|
||||
// CommandPalette.Instance.SetItems(CommandPalette.GetItems());
|
||||
// MainForm.Instance.ShowCommandPalette();
|
||||
// CommandPalette.Instance.SelectFirst();
|
||||
// });
|
||||
//}
|
||||
|
||||
@@ -27,7 +27,7 @@ public static class WinApiHelp
|
||||
}
|
||||
}
|
||||
|
||||
public static void AdjustWindowRect(IntPtr hwnd, ref RECT rc, int dpi)
|
||||
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
|
||||
@@ -35,13 +35,13 @@ public static class WinApiHelp
|
||||
if (Environment.OSVersion.Version >= WindowsTen1607)
|
||||
AdjustWindowRectExForDpi(ref rc, style, false, styleEx, (uint)dpi);
|
||||
else
|
||||
Native.WinApi.AdjustWindowRect(ref rc, style, false);
|
||||
AdjustWindowRect(ref rc, style, false);
|
||||
}
|
||||
|
||||
public static void AddWindowBorders(IntPtr hwnd, ref RECT rc, int dpi, bool changeTop)
|
||||
{
|
||||
RECT win = rc;
|
||||
AdjustWindowRect(hwnd, ref rc, dpi);
|
||||
AdjustWindowRectangle(hwnd, ref rc, dpi);
|
||||
|
||||
if (changeTop)
|
||||
{
|
||||
@@ -64,7 +64,7 @@ public static class WinApiHelp
|
||||
public static int GetTitleBarHeight(IntPtr hwnd, int dpi)
|
||||
{
|
||||
RECT rect = new RECT();
|
||||
AdjustWindowRect(hwnd, ref rect, dpi);
|
||||
AdjustWindowRectangle(hwnd, ref rect, dpi);
|
||||
return -rect.Top;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,49 +1,47 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<TargetFramework>net6.0-windows</TargetFramework>
|
||||
<RootNamespace>MpvNet.Windows</RootNamespace>
|
||||
<PropertyGroup>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<TargetFramework>net10.0-windows7.0</TargetFramework>
|
||||
<RootNamespace>MpvNet.Windows</RootNamespace>
|
||||
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
|
||||
<PublishSingleFile>true</PublishSingleFile>
|
||||
<AssemblyName>mpvnet</AssemblyName>
|
||||
<UseWPF>true</UseWPF>
|
||||
<UseWindowsForms>true</UseWindowsForms>
|
||||
<ApplicationIcon>mpv-icon.ico</ApplicationIcon>
|
||||
<Product>mpv.net</Product>
|
||||
<FileVersion>7.0.0.5</FileVersion>
|
||||
<AssemblyVersion>7.0.0.5</AssemblyVersion>
|
||||
<InformationalVersion>7.0.0.5</InformationalVersion>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
<AssemblyName>mpvnet</AssemblyName>
|
||||
<UseWPF>true</UseWPF>
|
||||
<UseWindowsForms>true</UseWindowsForms>
|
||||
<ApplicationIcon>mpv-icon.ico</ApplicationIcon>
|
||||
<FileVersion>7.1.2.0</FileVersion>
|
||||
<AssemblyVersion>7.1.2.0</AssemblyVersion>
|
||||
<InformationalVersion>7.1.2.0</InformationalVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Remove="Misc\**" />
|
||||
<EmbeddedResource Remove="Misc\**" />
|
||||
<None Remove="Misc\**" />
|
||||
<Page Remove="Misc\**" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Remove="Misc\**" />
|
||||
<EmbeddedResource Remove="Misc\**" />
|
||||
<None Remove="Misc\**" />
|
||||
<Page Remove="Misc\**" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Content Include="mpv-icon.ico" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="mpv-icon.ico" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\MpvNet\MpvNet.csproj" />
|
||||
<ProjectReference Include="..\NGettext.Wpf\NGettext.Wpf.csproj" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\MpvNet\MpvNet.csproj" />
|
||||
<ProjectReference Include="..\NGettext.Wpf\NGettext.Wpf.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Page Update="WPF\Views\AboutWindow.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<XamlRuntime>Wpf</XamlRuntime>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Page Update="WPF\Views\AboutWindow.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<XamlRuntime>Wpf</XamlRuntime>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.2.2" />
|
||||
<PackageReference Include="Microsoft.Xaml.Behaviors.Wpf" Version="1.1.77" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="CommunityToolkit.Mvvm" />
|
||||
<PackageReference Include="Microsoft.Xaml.Behaviors.Wpf" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
@@ -101,9 +101,9 @@ static class Program
|
||||
else if (App.CommandLine.Contains("--o="))
|
||||
{
|
||||
App.AutoLoadFolder = false;
|
||||
Player.Init(IntPtr.Zero);
|
||||
Player.ProcessCommandLineArgsPost();
|
||||
Player.ProcessCommandLineFiles();
|
||||
Player.Init(IntPtr.Zero, true);
|
||||
CommandLine.ProcessCommandLineArgsPostInit();
|
||||
CommandLine.ProcessCommandLineFiles();
|
||||
Player.SetPropertyString("idle", "no");
|
||||
Player.EventLoop();
|
||||
Player.Destroy();
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
|
||||
name = process-instance
|
||||
file = mpvnet
|
||||
default = single
|
||||
directory = General
|
||||
help = Defines if more then one mpv.net process is allowed.\nMulti can alternatively be enabled by pressing the SHIFT key. (mpv.net option)
|
||||
default = single
|
||||
option = multi Create a new process everytime the shell starts mpv.net
|
||||
option = single Force a single process everytime the shell starts mpv.net
|
||||
option = queue Force a single process and add files to playlist
|
||||
@@ -15,29 +15,17 @@ help = <int> Amount of recent files to be remembered. Default: 15 (mpv.net optio
|
||||
|
||||
name = media-info
|
||||
file = mpvnet
|
||||
default = yes
|
||||
directory = General
|
||||
help = Usage of the media info library instead of mpv to retrieve media information. (mpv.net option)
|
||||
default = yes
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = video-file-extensions
|
||||
file = mpvnet
|
||||
name = image-exts
|
||||
file = mpv
|
||||
directory = General
|
||||
width = 500
|
||||
help = Video file extensions used to create file associations and used by the auto-load-folder feature. (mpv.net option)
|
||||
|
||||
name = audio-file-extensions
|
||||
file = mpvnet
|
||||
directory = General
|
||||
width = 500
|
||||
help = Audio file extensions used to create file associations and used by the auto-load-folder feature. (mpv.net option)
|
||||
|
||||
name = image-file-extensions
|
||||
file = mpvnet
|
||||
directory = General
|
||||
width = 500
|
||||
help = Image file extensions used to create file associations and used by the auto-load-folder feature. (mpv.net option)
|
||||
help = Image file extentions to try to match when using --cover-art-auto, --autocreate-playlist or --directory-filter-types. By mpv.net used to create file associations and used by the auto-load-folder feature. Default: avif,bmp,gif,j2k,jp2,jpeg,jpg,jxl,png,svg,tga,tif,tiff,webp
|
||||
|
||||
name = menu-syntax
|
||||
file = mpvnet
|
||||
@@ -46,10 +34,10 @@ help = Used menu syntax for defining the context menu in input.conf.\nmpv.net by
|
||||
|
||||
name = video-sync
|
||||
file = mpv
|
||||
default = audio
|
||||
directory = General
|
||||
help = How the player synchronizes audio and video.\n\nFor more information visit:
|
||||
url = https://mpv.io/manual/master/#options-video-sync
|
||||
default = audio
|
||||
option = audio
|
||||
option = display-resample
|
||||
option = display-resample-vdrop
|
||||
@@ -61,28 +49,29 @@ option = desync
|
||||
|
||||
name = debug-mode
|
||||
file = mpvnet
|
||||
default = no
|
||||
directory = General
|
||||
help = Enable this only when a developer asks for it. (mpv.net option)
|
||||
default = no
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = vo
|
||||
file = mpv
|
||||
default = gpu
|
||||
directory = Video
|
||||
help = Video output drivers to be used.\n\nFor more information visit:
|
||||
url = https://mpv.io/manual/master/#video-output-drivers-vo
|
||||
default = info
|
||||
option = info Choose the best mode automatically.
|
||||
option = gpu General purpose, customizable, GPU-accelerated video output driver. It supports extended scaling methods, dithering, color management, custom shaders, HDR, and more.
|
||||
option = gpu-next Experimental video renderer based on libplacebo. This supports almost the same set of features as --vo=gpu.
|
||||
option = direct3d Video output driver that uses the Direct3D interface.
|
||||
|
||||
name = hwdec
|
||||
file = mpv
|
||||
default = no
|
||||
directory = Video
|
||||
url = https://mpv.io/manual/master/#options-hwdec
|
||||
help = Specify the hardware video decoding API that should be used if possible. Whether hardware decoding is actually done depends on the video codec. If hardware decoding is not possible, mpv will fall back on software decoding. Hardware decoding is disabled by default to maintain reliability. However, modern hardware should supports hardware video decoding, reducing CPU usage and power consumption.\n\nFor more information visit:
|
||||
help = Specify the hardware video decoding API that should be used if possible. Whether hardware decoding is actually done depends on the video codec. If hardware decoding is not possible, mpv will fall back on software decoding. Hardware decoding is disabled by default to maintain reliability. However, modern hardware should support hardware video decoding, reducing CPU usage and power consumption.\n\nFor more information visit:
|
||||
default = no
|
||||
option = no always use software decoding
|
||||
option = auto enable best hw decoder
|
||||
option = yes exactly the same as auto
|
||||
@@ -99,18 +88,18 @@ option = nvdec-copy copies video back to system RAM
|
||||
|
||||
name = gpu-api
|
||||
file = mpv
|
||||
default = auto
|
||||
directory = Video/Render Options
|
||||
help = Controls which type of graphics APIs will be accepted. On Windows this defaults to d3d11 and should not be changed without a good reason.
|
||||
option = auto Use any available API
|
||||
help = Controls which type of graphics APIs will be accepted.
|
||||
default = auto
|
||||
option = auto Use any available API. Note that the default GPU API used for this value is subject to change, and must not be relied upon. If a certain GPU API needs to be used, it must be explicitly specified
|
||||
option = d3d11 Allow only gpu-context=d3d11
|
||||
option = opengl Allow only OpenGL (requires OpenGL 2.1+ or GLES 2.0+)
|
||||
option = vulkan Allow only Vulkan
|
||||
|
||||
name = gpu-context
|
||||
file = mpv
|
||||
default = auto
|
||||
directory = Video/Render Options
|
||||
default = auto
|
||||
option = auto auto-select
|
||||
option = d3d11 Win32, with native Direct3D 11 rendering.
|
||||
option = angle Direct3D11 through the OpenGL ES translation layer ANGLE. This supports almost everything the win backend does (if the ANGLE build is new enough).
|
||||
@@ -120,10 +109,10 @@ option = winvk VK_KHR_win32_surface
|
||||
|
||||
name = scale
|
||||
file = mpv
|
||||
default = lanczos
|
||||
directory = Video/Render Options/Scaling
|
||||
help = The GPU renderer filter function to use when upscaling video. There are some more filters, but most are not as useful. For a complete list, pass help as value, e.g.: mpv --scale=help
|
||||
url = https://mpv.io/manual/master/#options-scale
|
||||
default = lanczos
|
||||
option = bilinear
|
||||
option = spline36
|
||||
option = lanczos
|
||||
@@ -134,10 +123,10 @@ option = oversample
|
||||
|
||||
name = cscale
|
||||
file = mpv
|
||||
default = bilinear
|
||||
directory = Video/Render Options/Scaling
|
||||
help = As scale, but for interpolating chroma information. If the image is not subsampled, this option is ignored entirely.
|
||||
url = https://mpv.io/manual/master/#options-cscale
|
||||
default = bilinear
|
||||
option = bilinear
|
||||
option = spline36
|
||||
option = lanczos
|
||||
@@ -148,10 +137,10 @@ option = oversample
|
||||
|
||||
name = dscale
|
||||
file = mpv
|
||||
default = lanczos
|
||||
directory = Video/Render Options/Scaling
|
||||
help = Like scale, but apply these filters on downscaling instead. \nIf no option is selected, it will keep the same with the upscaler.
|
||||
url = https://mpv.io/manual/master/#options-dscale
|
||||
default = lanczos
|
||||
option = bilinear
|
||||
option = spline36
|
||||
option = lanczos
|
||||
@@ -162,25 +151,25 @@ option = oversample
|
||||
|
||||
name = correct-downscaling
|
||||
file = mpv
|
||||
default = no
|
||||
directory = Video/Render Options/Scaling
|
||||
help = When using convolution based filters, extend the filter size when downscaling. Increases quality, but reduces performance while downscaling.\n\nThis will perform slightly sub-optimally for anamorphic video (but still better than without it) since it will extend the size to match only the milder of the scale factors between the axes.
|
||||
default = no
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = sigmoid-upscaling
|
||||
file = mpv
|
||||
default = no
|
||||
directory = Video/Render Options/Scaling
|
||||
help = When upscaling, use a sigmoidal color transform to avoid emphasizing ringing artifacts. This also implies linear-scaling.
|
||||
default = no
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = dither-depth
|
||||
file = mpv
|
||||
default = no
|
||||
directory = Video/Render Options
|
||||
help = Set dither target depth to N. Note that the depth of the connected video display device cannot be detected. Often, LCD panels will do dithering on their own, which conflicts with this option and leads to ugly output.
|
||||
default = no
|
||||
option = no Disable any dithering done by mpv.
|
||||
option = auto Automatic selection. If output bit depth cannot be detected, 8 bits per component are assumed.
|
||||
option = 8 Dither to 8 bit output.
|
||||
@@ -188,34 +177,34 @@ option = 10 Dither to 10 bit output.
|
||||
|
||||
name = deband
|
||||
file = mpv
|
||||
default = no
|
||||
directory = Video/Render Options
|
||||
help = Enable the debanding algorithm. This greatly reduces the amount of visible banding, blocking and other quantization artifacts, at the expense of very slightly blurring some of the finest details. In practice, it's virtually always an improvement - the only reason to disable it would be for performance.
|
||||
default = no
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = hdr-compute-peak
|
||||
file = mpv
|
||||
default = auto
|
||||
directory = Video/Render Options
|
||||
url = https://mpv.io/manual/master/#options-hdr-compute-peak
|
||||
default = auto
|
||||
option = auto
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = allow-delayed-peak-detect
|
||||
file = mpv
|
||||
default = yes
|
||||
directory = Video/Render Options
|
||||
url = https://mpv.io/manual/master/#options-allow-delayed-peak-detect
|
||||
default = yes
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = d3d11va-zero-copy
|
||||
file = mpv
|
||||
default = no
|
||||
directory = Video/Render Options
|
||||
url = https://mpv.io/manual/master/#options-d3d11va-zero-copy
|
||||
default = no
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
@@ -232,9 +221,9 @@ help = Passes extra raw option to the libplacebo rendering backend (used by --vo
|
||||
name = preset
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo
|
||||
default = default
|
||||
help = Override all libplacebo options by the values from the given preset.
|
||||
url = https://libplacebo.org/options/#presetdefaultfasthigh_quality
|
||||
default = default
|
||||
option = default Default settings, tuned to provide a balance of performance and quality.
|
||||
option = fast Disable all advanced rendering, equivalent to passing no to every option.
|
||||
option = high_quality Reset all everything to high quality presets (where available).
|
||||
@@ -242,10 +231,10 @@ option = high_quality Reset all everything to high quality presets (where avail
|
||||
name = upscaler
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Scaling
|
||||
default = lanczos
|
||||
help = Sets the filter used for upscaling.
|
||||
url = https://libplacebo.org/options/#upscalerfilter
|
||||
option-name-width = 135
|
||||
default = lanczos
|
||||
option = none No filter, only use basic GPU texture sampling.
|
||||
option = nearest Nearest-neighbour (box) sampling (very fast).
|
||||
option = bilinear Bilinear sampling (very fast).
|
||||
@@ -261,8 +250,8 @@ option = ewa_lanczos4sharpest Very sharp version of ewa_lanczos, with anti-ring
|
||||
name = downscaler
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Scaling
|
||||
default = hermite
|
||||
help = Sets the filter used for downscaling. The most relevant options, roughly ordered from fastest to slowest.
|
||||
default = hermite
|
||||
option = none Use the same filter as specified for upscaler
|
||||
option = box Box averaging (very fast)
|
||||
option = hermite Hermite-weighted averaging (fast)
|
||||
@@ -276,8 +265,8 @@ option = lanczos Lanczos reconstruction
|
||||
name = plane_upscaler
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Scaling
|
||||
default = none
|
||||
help = Override the filter used for upscaling planes, e.g. chroma/alpha. If set to none, use the same setting as upscaler, respectively.
|
||||
default = none
|
||||
option = none Use the same filter as specified for upscaler
|
||||
option = box Box averaging (very fast)
|
||||
option = hermite Hermite-weighted averaging (fast)
|
||||
@@ -291,8 +280,8 @@ option = lanczos Lanczos reconstruction
|
||||
name = plane_downscaler
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Scaling
|
||||
default = none
|
||||
help = Override the filter used for downscaling planes, e.g. chroma/alpha. If set to none, use the same setting as downscaler, respectively.
|
||||
default = none
|
||||
option = none Use the same filter as specified for upscaler
|
||||
option = box Box averaging (very fast)
|
||||
option = hermite Hermite-weighted averaging (fast)
|
||||
@@ -306,8 +295,8 @@ option = lanczos Lanczos reconstruction
|
||||
name = frame_mixer
|
||||
file = libplacebo
|
||||
directory = Video/libplacebo/Scaling
|
||||
default = oversample
|
||||
help = Sets the filter used for frame mixing (temporal interpolation). Roughly ordered from fastest to slowest.
|
||||
default = oversample
|
||||
option = none Disable frame mixing, show nearest frame to target PTS
|
||||
option = oversample Oversampling, only mix "edge" frames while preserving FPS
|
||||
option = hermite Hermite-weighted frame mixing
|
||||
@@ -739,40 +728,39 @@ help = Store screenshots in this directory. This path is joined with the filenam
|
||||
|
||||
name = screenshot-format
|
||||
file = mpv
|
||||
default = jpg
|
||||
directory = Video/Screenshot
|
||||
help = Set the image file type used for saving screenshots.
|
||||
default = jpg
|
||||
option = jpg
|
||||
option = png
|
||||
|
||||
name = screenshot-tag-colorspace
|
||||
file = mpv
|
||||
default = yes
|
||||
directory = Video/Screenshot
|
||||
help = Tag screenshots with the appropriate colorspace. Note that not all formats are supported.
|
||||
default = yes
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = screenshot-high-bit-depth
|
||||
file = mpv
|
||||
default = yes
|
||||
directory = Video/Screenshot
|
||||
help = If possible, write screenshots with a bit depth similar to the source video. This is interesting in particular for PNG, as this sometimes triggers writing 16 bit PNGs with huge file sizes. This will also include an unused alpha channel in the resulting files if 16 bit is used.
|
||||
default = yes
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = screenshot-jpeg-source-chroma
|
||||
file = mpv
|
||||
default = yes
|
||||
directory = Video/Screenshot
|
||||
help = Write JPEG files with the same chroma subsampling as the video. If disabled, the libjpeg default is used.
|
||||
default = yes
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = screenshot-template
|
||||
file = mpv
|
||||
directory = Video/Screenshot
|
||||
type = string
|
||||
help = Specify the filename template used to save screenshots. The template specifies the filename without file extension, and can contain format specifiers, which will be substituted when taking a screenshot. By default, the template is mpv-shot%n, which results in filenames like mpv-shot0012.png for example.\n\nFind the full documentation here:
|
||||
url = https://mpv.io/manual/master/#options-screenshot-template
|
||||
|
||||
@@ -791,6 +779,12 @@ file = mpv
|
||||
directory = Video/Screenshot
|
||||
help = <0-5> Set the filter applied prior to PNG compression. 0 is none, 1 is 'sub', 2 is 'up', 3 is 'average', 4 is 'Paeth', and 5 is 'mixed'. This affects the level of compression that can be achieved. For most images, 'mixed' achieves the best compression ratio, hence it is the default.
|
||||
|
||||
name = video-exts
|
||||
file = mpv
|
||||
directory = Video
|
||||
width = 500
|
||||
help = Video file extentions to try to match when using --autocreate-playlist or --directory-filter-types. By mpv.net used to create file associations and used by the auto-load-folder feature. Default: 3g2,3gp,avi,flv,m2ts,m4v,mj2,mkv,mov,mp4,mpeg,mpg,ogv,rmvb,ts,webm,wmv,y4m
|
||||
|
||||
name = volume
|
||||
file = mpv
|
||||
directory = Audio
|
||||
@@ -798,23 +792,22 @@ help = Set the startup volume. 0 means silence, 100 means no volume reduction or
|
||||
|
||||
name = remember-volume
|
||||
file = mpvnet
|
||||
default = yes
|
||||
directory = Audio
|
||||
help = Save volume and mute on exit and restore it on start. (mpv.net option)
|
||||
default = yes
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = alang
|
||||
file = mpv
|
||||
directory = Audio
|
||||
type = string
|
||||
help = Specify a priority list of audio languages to use. Different container formats employ different language codes. DVDs use ISO 639-1 two-letter language codes, Matroska, MPEG-TS and NUT use ISO 639-2 three-letter language codes, while OGM uses a free-form identifier. See also aid.
|
||||
|
||||
name = audio-file-auto
|
||||
file = mpv
|
||||
default = no
|
||||
directory = Audio
|
||||
help = Load additional audio files matching the video filename. The parameter specifies how external audio files are matched.
|
||||
default = no
|
||||
option = no Don't automatically load external audio files.
|
||||
option = exact Load the media filename with audio file extension.
|
||||
option = fuzzy Load all audio files containing media filename.
|
||||
@@ -823,22 +816,34 @@ option = all Load all audio files in the current and audio-file-paths directo
|
||||
name = audio-device
|
||||
file = mpv
|
||||
directory = Audio
|
||||
type = string
|
||||
width = 400
|
||||
url = https://mpv.io/manual/master/#options-audio-device
|
||||
help = <name> Use the given audio device. This consists of the audio output name, e.g. alsa, followed by /, followed by the audio output specific device name. The default value for this option is auto, which tries every audio output in preference order with the default device. To list audio devices in mpv.net use the context menu:\nView > More > Show Audio Devices.
|
||||
help = <name> Use the given audio device. This consists of the audio output name, e.g. alsa, followed by /, followed by the audio output specific device name. The default value for this option is auto, which tries every audio output in preference order with the default device.\n\nTo list available audio devices in mpv.net, use the context menu:\n\nView > More > Show Audio Devices.\n\nTo change the audio device in mpv.net, also use the context menu:\n\nAudio > Audio Device
|
||||
|
||||
name = remember-audio-device
|
||||
file = mpvnet
|
||||
directory = Audio
|
||||
help = Save and restore the audio device chosen in the context menu. Default: yes
|
||||
default = yes
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = audio-exts
|
||||
file = mpv
|
||||
directory = Audio
|
||||
width = 500
|
||||
help = Audio file extentions to try to match when using --audio-file-auto, --autocreate-playlist or --directory-filter-types. By mpv.net used to create file associations and used by the auto-load-folder feature. Default: aac,ac3,aiff,ape,au,dts,eac3,flac,m4a,mka,mp3,oga,ogg,ogm,opus,thd,wav,wav,wma,wv
|
||||
|
||||
name = slang
|
||||
file = mpv
|
||||
directory = Subtitle
|
||||
type = string
|
||||
help = Specify a priority list of subtitle languages to use. Different container formats employ different language codes. DVDs use ISO 639-1 two letter language codes, Matroska uses ISO 639-2 three letter language codes while OGM uses a free-form identifier. See also sid.
|
||||
|
||||
name = sub-auto
|
||||
file = mpv
|
||||
default = exact
|
||||
directory = Subtitle
|
||||
help = Load additional subtitle files matching the video filename. The parameter specifies how external subtitle files are matched. exact is enabled by default.
|
||||
default = exact
|
||||
option = no Don't automatically load external subtitle files.
|
||||
option = exact Load the media filename with subtitle file extension.
|
||||
option = fuzzy Load all subs containing media filename.
|
||||
@@ -847,7 +852,6 @@ option = all Load all subs in the current and sub-file-paths directories.
|
||||
name = sub-font
|
||||
file = mpv
|
||||
directory = Subtitle
|
||||
type = string
|
||||
help = Specify font to use for subtitles that do not themselves specify a particular font. The default is sans-serif.
|
||||
|
||||
name = sub-font-size
|
||||
@@ -882,25 +886,25 @@ help = Set the window title. This is used for the video window, and if possible,
|
||||
|
||||
name = fullscreen
|
||||
file = mpv
|
||||
default = no
|
||||
directory = Window
|
||||
help = Start the player in fullscreen mode.
|
||||
default = no
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = border
|
||||
file = mpv
|
||||
default = yes
|
||||
directory = Window
|
||||
help = Show window with decoration (titlebar, border).
|
||||
default = yes
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = title-bar
|
||||
file = mpv
|
||||
default = yes
|
||||
directory = Window
|
||||
help = Set this to no in order to hide the window title bar.
|
||||
default = yes
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
@@ -911,9 +915,9 @@ help = <0-32> In multi-monitor configurations (i.e. a single desktop that spans
|
||||
|
||||
name = taskbar-progress
|
||||
file = mpv
|
||||
default = yes
|
||||
directory = Window
|
||||
help = Show progress in taskbar.
|
||||
default = yes
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
@@ -921,7 +925,6 @@ name = osd-playing-msg
|
||||
file = mpv
|
||||
width = 300
|
||||
directory = Window
|
||||
type = string
|
||||
help = Show a message on OSD when playback starts. The string is expanded for properties, e.g. osd-playing-msg='file: ${filename}' will show the message file: followed by a space and the currently played filename. For more information visit:
|
||||
url = https://mpv.io/manual/master/#property-expansion
|
||||
|
||||
@@ -937,9 +940,9 @@ help = Set the duration of the OSD messages in ms. Default: 1000
|
||||
|
||||
name = osd-scale-by-window
|
||||
file = mpv
|
||||
default = yes
|
||||
directory = Window
|
||||
help = Whether to scale the OSD with the window size. If this is disabled, osd-font-size and other OSD options that use scaled pixels are always in actual pixels. The effect is that changing the window size won't change the OSD font size.
|
||||
default = yes
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
@@ -969,15 +972,15 @@ directory = Window
|
||||
help = <int> Initial window height in percent for audio files. Default: 70
|
||||
|
||||
name = geometry
|
||||
file = mpvnet
|
||||
file = mpv
|
||||
directory = Window
|
||||
help = <x:y> Initial window location in percent. Default: 50:50 (centered)\n\nx=0 docks the window to the left side.\nx=100 docks the window to the right side.\ny=0 docks the window to the top side.\ny=100 docks the window to the bottom side.
|
||||
help = <x:y> Initial window location in percent. Default: 50:50 (centered)\n\nRequires Windows 11, on Windows 10 it works slightly incorrect due to invisible borders.\n\nx=0 docks the window to the left side.\nx=100 docks the window to the right side.\n\ny=0 docks the window to the top side.\ny=100 docks the window to the bottom side.
|
||||
|
||||
name = start-size
|
||||
file = mpvnet
|
||||
default = height-session
|
||||
directory = Window
|
||||
help = Setting to remember the window size. (mpv.net option)
|
||||
default = height-session
|
||||
option = width-session Window width is remembered in the current session
|
||||
option = width-always Window width is always remembered
|
||||
option = height-session Window height is remembered in the current session
|
||||
@@ -988,9 +991,9 @@ option = always Window size is always remembered
|
||||
|
||||
name = keepaspect-window
|
||||
file = mpv
|
||||
default = yes
|
||||
directory = Window
|
||||
help = keepaspect-window will lock the window size to the video aspect. Default: yes
|
||||
default = yes
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
@@ -1006,49 +1009,49 @@ help = Same as minimum-aspect-ratio but used for audio files.
|
||||
|
||||
name = remember-window-position
|
||||
file = mpvnet
|
||||
default = no
|
||||
directory = Window
|
||||
help = Save the window position on exit. (mpv.net option)
|
||||
default = no
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = snap-window
|
||||
file = mpv
|
||||
default = no
|
||||
directory = Window
|
||||
help = Snap the player window to screen edges.
|
||||
default = no
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = window-maximized
|
||||
file = mpv
|
||||
default = no
|
||||
directory = Window
|
||||
help = Start with a maximized window.
|
||||
default = no
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = keep-open
|
||||
file = mpv
|
||||
default = no
|
||||
directory = Playback
|
||||
default = no
|
||||
option = yes If the current file ends, go to the next file, keep the last file open.
|
||||
option = no If the current file ends, go to the next file. If idle is set to no, the player exits after the last file.
|
||||
option = always Playback will never automatically advance to the next file.
|
||||
|
||||
name = keep-open-pause
|
||||
file = mpv
|
||||
default = yes
|
||||
directory = Playback
|
||||
help = If set to no, instead of pausing when keep-open is active, just stop at end of file and continue playing forward when you seek backwards until end where it stops again.
|
||||
default = yes
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = idle
|
||||
file = mpv
|
||||
default = yes
|
||||
directory = Playback
|
||||
help = If set to no and keep-open is also set to no, the player exits after the last file ends.
|
||||
default = yes
|
||||
option = yes
|
||||
option = no
|
||||
option = once
|
||||
@@ -1060,9 +1063,9 @@ help = <N|inf|no> Loop a single file N times. inf means forever, no means normal
|
||||
|
||||
name = save-position-on-quit
|
||||
file = mpv
|
||||
default = no
|
||||
directory = Playback
|
||||
help = Always save the current playback position on quit. When this file is played again later, the player will seek to the old playback position on start. This does not happen if playback of a file is stopped in any other way than quitting. For example, going to the next file in the playlist will not save the position, and start playback at beginning the next time the file is played.\n\nThis behavior is disabled by default, but is always available when quitting the player with Shift+Q.
|
||||
default = no
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
@@ -1074,9 +1077,9 @@ url = https://mpv.io/manual/master/#options-watch-later-options
|
||||
|
||||
name = hr-seek
|
||||
file = mpv
|
||||
default = absolute
|
||||
directory = Playback
|
||||
help = Select when to use precise seeks that are not limited to keyframes. Such seeks require decoding video from the previous keyframe up to the target position and so can take some time depending on decoding performance. For some video formats, precise seeks are disabled. This option selects the default choice to use for seeks; it is possible to explicitly override that default in the definition of key bindings and in input commands.
|
||||
default = absolute
|
||||
option = yes Use precise seeks whenever possible.
|
||||
option = no Never use precise seeks.
|
||||
option = absolute Use precise seeks if the seek is to an absolute position in the file, such as a chapter seek, but not for relative seeks like the default behavior of arrow keys.
|
||||
@@ -1084,9 +1087,9 @@ option = always Same as yes (for compatibility).
|
||||
|
||||
name = track-auto-selection
|
||||
file = mpv
|
||||
default = yes
|
||||
directory = Playback
|
||||
help = Enable the default track auto-selection. Enabling this will make the player select streams according to aid, alang, and others. If it is disabled, no tracks are selected. In addition, the player will not exit if no tracks are selected, and wait instead (this wait mode is similar to pausing, but the pause option is not set).\n\nThis is useful with lavfi-complex: you can start playback in this mode, and then set select tracks at runtime by setting the filter graph. Note that if lavfi-complex is set before playback is started, the referenced tracks are always selected.
|
||||
default = yes
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
@@ -1095,18 +1098,27 @@ file = mpv
|
||||
directory = Playback
|
||||
help = <N|inf|force|no> Loops playback N times. A value of 1 plays it one time (default), 2 two times, etc. inf means forever. no is the same as 1 and disables looping. If several files are specified on command line, the entire playlist is looped. The force mode is like inf, but does not skip playlist entries which have been marked as failing. This means the player might waste CPU time trying to loop a file that doesn't exist. But it might be useful for playing webradios under very bad network conditions.
|
||||
|
||||
name = autocreate-playlist
|
||||
file = mpv
|
||||
directory = Playback
|
||||
help = When opening a local file, act as if the parent directory is opened and create a playlist automatically.\n\nno: Load a single file (mpv default).\n\nFilter: Create a playlist from the parent directory with files matching --directory-filter-types. (mpv.net default)\n\nsame: Create a playlist from the parent directory with files matching the same category as the currently loaded file. One of the *-exts is selected based on the input file and only files with matching extensions are added to the playlist. If the input file itself is not matched to any extension list, the playlist is not autogenerated.
|
||||
default = filter
|
||||
option = no
|
||||
option = filter
|
||||
option = same
|
||||
|
||||
name = auto-load-folder
|
||||
file = mpvnet
|
||||
default = yes
|
||||
directory = Playback
|
||||
help = For single files automatically load the entire directory into the playlist. (mpv.net option)
|
||||
help = For single files automatically load the entire directory into the playlist. (deprecated mpv.net option, autocreate-playlist can be used instead)
|
||||
default = yes
|
||||
option = yes
|
||||
option = no
|
||||
|
||||
name = reset-on-next-file
|
||||
file = mpv
|
||||
directory = Program Behavior
|
||||
help = Normally, mpv will try to keep all settings when playing the next file on the playlist, even if they were changed by the user during playback. This can be changed with this option. It accepts a list of options, and mpv will reset the value of these options on playback start to the initial value.
|
||||
help = Normally, mpv will try to keep all options when playing the next file on the playlist, even if they were changed by the user during playback. This can be changed with this option. It accepts a list of options, and mpv will reset the value of these options on playback start to the initial value.
|
||||
width = 400
|
||||
|
||||
name = input-ar-delay
|
||||
@@ -1127,19 +1139,26 @@ url = https://mpv.io/manual/master/#options-input-ipc-server
|
||||
|
||||
name = language
|
||||
file = mpvnet
|
||||
default = system
|
||||
directory = Appearance
|
||||
help = User interface display language.\nmpv.net must be restarted after a change.
|
||||
default = system
|
||||
option = system
|
||||
option = english
|
||||
option = bulgarian
|
||||
option = chinese-china
|
||||
option = english
|
||||
option = french
|
||||
option = german
|
||||
option = japanese
|
||||
option = korean
|
||||
option = polish
|
||||
option = russian
|
||||
option = turkish
|
||||
|
||||
name = dark-mode
|
||||
file = mpvnet
|
||||
default = always
|
||||
directory = Appearance
|
||||
help = Changes between a light and dark theme.\nmpv.net must be restarted after a change.\nmpv.net specific option.
|
||||
default = always
|
||||
option = always
|
||||
option = system Available on Windows 10 or higher
|
||||
option = never
|
||||
@@ -1158,10 +1177,10 @@ help = Color theme used in light mode.\nmpv.net must be restarted after a change
|
||||
|
||||
name = cache
|
||||
file = mpv
|
||||
default = auto
|
||||
directory = Cache
|
||||
help = Decide whether to use network cache settings.
|
||||
url = https://mpv.io/manual/master/#options-cache
|
||||
default = auto
|
||||
option = yes
|
||||
option = no
|
||||
option = auto
|
||||
|
||||
@@ -36,7 +36,7 @@ public class OptionSettingOption
|
||||
|
||||
public string? Name { get; set; }
|
||||
public string? Help { get; set; }
|
||||
public int OptionWidth { get => OptionSetting!.OptionNameWidth; }
|
||||
public int Width { get => OptionSetting!.OptionNameWidth; }
|
||||
|
||||
public OptionSetting? OptionSetting { get; set; }
|
||||
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
|
||||
using MpvNet.Windows.WPF.Controls;
|
||||
|
||||
namespace MpvNet.Windows.UI;
|
||||
|
||||
public class CommandPalette
|
||||
{
|
||||
public static CommandPaletteControl Instance { get; } = new CommandPaletteControl();
|
||||
|
||||
public static IEnumerable<CommandPaletteItem> GetItems()
|
||||
{
|
||||
return InputHelp.GetBindingsFromContent(App.InputConf.GetContent())
|
||||
.Where(i => i.Command != "")
|
||||
.Select(i => new CommandPaletteItem()
|
||||
{
|
||||
Text = i.Comment,
|
||||
SecondaryText = i.Input,
|
||||
Action = () => Core.Command(i.Command),
|
||||
Binding = i
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
|
||||
namespace MpvNet.Windows.UI;
|
||||
|
||||
public class CommandPaletteItem
|
||||
{
|
||||
public CommandPaletteItem() { }
|
||||
|
||||
public CommandPaletteItem(string text, Action action)
|
||||
{
|
||||
Text = text;
|
||||
Action = action;
|
||||
}
|
||||
|
||||
public CommandPaletteItem(string text, string secondaryText, Action action)
|
||||
{
|
||||
Text = text;
|
||||
Action = action;
|
||||
SecondaryText = secondaryText;
|
||||
}
|
||||
|
||||
public string Text { get; set; } = "";
|
||||
public string SecondaryText { get; set; } = "";
|
||||
public Action? Action { get; set; }
|
||||
public Binding? Binding { get; set; }
|
||||
}
|
||||
@@ -2,7 +2,7 @@
|
||||
using System.ComponentModel;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
using MpvNet.ExtensionMethod;
|
||||
using MpvNet.Extensions;
|
||||
|
||||
namespace MpvNet.Windows.UI;
|
||||
|
||||
|
||||
@@ -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,150 +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)
|
||||
{
|
||||
//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);
|
||||
}
|
||||
}
|
||||
@@ -15,7 +15,7 @@
|
||||
<Border>
|
||||
<TextBlock
|
||||
Text="{Binding Text}"
|
||||
Width="{Binding OptionWidth}"
|
||||
Width="{Binding Width}"
|
||||
VerticalAlignment="Center"
|
||||
TextWrapping="Wrap"
|
||||
/>
|
||||
|
||||
@@ -10,9 +10,16 @@ public class WpfTranslator : ITranslator
|
||||
string _localizerLangauge = "";
|
||||
|
||||
static Language[] Languages { get; } = new Language[] {
|
||||
new("english", "en", "en"),
|
||||
new("bulgarian", "bg", "bg"),
|
||||
new("chinese-china", "zh-CN", "zh"), // Chinese (Simplified)
|
||||
new("english", "en", "en"),
|
||||
new("french", "fr", "fr"),
|
||||
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)
|
||||
@@ -21,6 +28,12 @@ public class WpfTranslator : ITranslator
|
||||
return Translation._(msgId);
|
||||
}
|
||||
|
||||
public string GetParticularString(string context, string text)
|
||||
{
|
||||
InitNGettextWpf();
|
||||
return Translation.GetParticularString(context, text);
|
||||
}
|
||||
|
||||
void InitNGettextWpf()
|
||||
{
|
||||
if (Translation.Localizer == null || _localizerLangauge != App.Language)
|
||||
|
||||
2
src/MpvNet.Windows/WinForms/MainForm.Designer.cs
generated
@@ -38,7 +38,7 @@ partial class MainForm
|
||||
// CursorTimer
|
||||
//
|
||||
CursorTimer.Enabled = true;
|
||||
CursorTimer.Interval = 1000;
|
||||
CursorTimer.Interval = 500;
|
||||
CursorTimer.Tick += CursorTimer_Tick;
|
||||
//
|
||||
// ProgressTimer
|
||||
|
||||
@@ -5,16 +5,14 @@ using System.Runtime.InteropServices;
|
||||
using System.Threading;
|
||||
using System.Windows.Forms;
|
||||
using System.Windows.Threading;
|
||||
using System.Windows.Forms.Integration;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
using MpvNet.Windows.WPF;
|
||||
using MpvNet.Windows.UI;
|
||||
using MpvNet.Help;
|
||||
using MpvNet.ExtensionMethod;
|
||||
using MpvNet.Extensions;
|
||||
using MpvNet.MVVM;
|
||||
using MpvNet.Windows.WPF.MsgBox;
|
||||
using MpvNet.Windows.Help;
|
||||
|
||||
using WpfControls = System.Windows.Controls;
|
||||
using CommunityToolkit.Mvvm.Messaging;
|
||||
@@ -28,7 +26,6 @@ public partial class MainForm : Form
|
||||
{
|
||||
public SnapManager SnapManager = new SnapManager();
|
||||
public IntPtr MpvWindowHandle { get; set; }
|
||||
public ElementHost? CommandPaletteHost { get; set; }
|
||||
public bool WasShown { get; set; }
|
||||
public static MainForm? Instance { get; set; }
|
||||
WpfControls.ContextMenu ContextMenu { get; } = new WpfControls.ContextMenu();
|
||||
@@ -41,10 +38,12 @@ public partial class MainForm : Form
|
||||
int _lastCursorChanged;
|
||||
int _lastCycleFullscreen;
|
||||
int _taskbarButtonCreatedMessage;
|
||||
int _cursorAutohide = 1000;
|
||||
|
||||
bool _contextMenuIsReady;
|
||||
bool _wasMaximized;
|
||||
bool _maxSizeSet;
|
||||
bool _isCursorVisible = true;
|
||||
|
||||
public MainForm()
|
||||
{
|
||||
@@ -69,7 +68,30 @@ public partial class MainForm : Form
|
||||
GuiCommand.Current.WindowScaleNet += GuiCommand_WindowScaleNet;
|
||||
GuiCommand.Current.ShowMenu += GuiCommand_ShowMenu;
|
||||
|
||||
Init();
|
||||
Player.Init(Handle, true);
|
||||
|
||||
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");
|
||||
|
||||
@@ -146,34 +168,6 @@ public partial class MainForm : Form
|
||||
SetTitle();
|
||||
}
|
||||
|
||||
void Init()
|
||||
{
|
||||
Player.Init(Handle);
|
||||
|
||||
// bool methods not working correctly
|
||||
Player.ObserveProperty("window-maximized", PropChangeWindowMaximized);
|
||||
Player.ObserveProperty("window-minimized", PropChangeWindowMinimized);
|
||||
|
||||
Player.ObservePropertyBool("border", PropChangeBorder);
|
||||
Player.ObservePropertyBool("fullscreen", PropChangeFullscreen);
|
||||
Player.ObservePropertyBool("keepaspect-window", value => Player.KeepaspectWindow = value);
|
||||
Player.ObservePropertyBool("ontop", PropChangeOnTop);
|
||||
Player.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);
|
||||
|
||||
Player.ProcessCommandLineArgsPost();
|
||||
Player.ProcessCommandLineFiles();
|
||||
}
|
||||
|
||||
void PropChangeWindowScale(double scale)
|
||||
{
|
||||
if (!WasShown)
|
||||
@@ -286,8 +280,6 @@ public partial class MainForm : Form
|
||||
pos.Y > ClientSize.Height * 0.78;
|
||||
}
|
||||
|
||||
bool IsCommandPaletteVissible() => CommandPaletteHost != null && CommandPaletteHost.Visible;
|
||||
|
||||
void UpdateMenu()
|
||||
{
|
||||
Player.UpdateExternalTracks();
|
||||
@@ -389,12 +381,11 @@ public partial class MainForm : Form
|
||||
var menuItem = MenuHelp.Add(recentMenuItem.Items, file.Title.ShortPath(100));
|
||||
|
||||
if (menuItem != null)
|
||||
menuItem.Click += (sender, args) =>
|
||||
Player.LoadFiles(new[] { file.Path }, true, false);
|
||||
menuItem.Click += (sender, args) => Player.LoadFiles(new[] { file.Path }, true, false);
|
||||
}
|
||||
|
||||
recentMenuItem.Items.Add(new WpfControls.Separator());
|
||||
var clearMenuItem = new WpfControls.MenuItem() { Header = "Clear List" };
|
||||
var clearMenuItem = new WpfControls.MenuItem() { Header = _("Clear List") };
|
||||
clearMenuItem.Click += (sender, args) => App.Settings.RecentFiles.Clear();
|
||||
recentMenuItem.Items.Add(clearMenuItem);
|
||||
}
|
||||
@@ -452,34 +443,60 @@ public partial class MainForm : Form
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
profilesMenuItem.Items.Add(new WpfControls.Separator());
|
||||
var showProfilesMenuItem = new WpfControls.MenuItem() { Header = _("Show Profiles") };
|
||||
showProfilesMenuItem.Click += (sender, args) => Player.Command("script-message-to mpvnet show-profiles");
|
||||
profilesMenuItem.Items.Add(showProfilesMenuItem);
|
||||
}
|
||||
|
||||
var audioDevicesMenuItem = FindMenuItem(_("Audio Device"), "Audio Device");
|
||||
|
||||
if (audioDevicesMenuItem != null)
|
||||
{
|
||||
audioDevicesMenuItem.Items.Clear();
|
||||
|
||||
foreach (var pair in Player.AudioDevices)
|
||||
{
|
||||
var menuItem = MenuHelp.Add(audioDevicesMenuItem.Items, pair.Value);
|
||||
|
||||
if (menuItem != null)
|
||||
{
|
||||
menuItem.IsChecked = pair.Name == Player.GetPropertyString("audio-device");
|
||||
|
||||
menuItem.Click += (sender, args) =>
|
||||
{
|
||||
Player.SetPropertyString("audio-device", pair.Name);
|
||||
Player.CommandV("show-text", pair.Value);
|
||||
App.Settings.AudioDevice = pair.Name;
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var customMenuItem = FindMenuItem(_("Custom"), "Custom");
|
||||
|
||||
if (customMenuItem != null)
|
||||
if (customMenuItem != null && !customMenuItem.HasItems)
|
||||
{
|
||||
if (!customMenuItem.HasItems)
|
||||
var customBindings = _confBindings!.Where(it => it.IsCustomMenu);
|
||||
|
||||
if (customBindings.Any())
|
||||
{
|
||||
var customBindings = _confBindings!.Where(it => it.IsCustomMenu);
|
||||
|
||||
if (customBindings.Any())
|
||||
foreach (Binding binding in customBindings)
|
||||
{
|
||||
foreach (Binding binding in customBindings)
|
||||
{
|
||||
var menuItem = MenuHelp.Add(customMenuItem.Items, binding.Comment);
|
||||
var menuItem = MenuHelp.Add(customMenuItem.Items, binding.Comment);
|
||||
|
||||
if (menuItem != null)
|
||||
{
|
||||
menuItem.Click += (sender, args) => Player.Command(binding.Command);
|
||||
menuItem.InputGestureText = binding.Input;
|
||||
}
|
||||
if (menuItem != null)
|
||||
{
|
||||
menuItem.Click += (sender, args) => Player.Command(binding.Command);
|
||||
menuItem.InputGestureText = binding.Input;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (ContextMenu.Items.Contains(customMenuItem))
|
||||
ContextMenu.Items.Remove(customMenuItem);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (ContextMenu.Items.Contains(customMenuItem))
|
||||
ContextMenu.Items.Remove(customMenuItem);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -539,12 +556,12 @@ public partial class MainForm : Form
|
||||
if (App.AutofitImage > 1)
|
||||
App.AutofitImage = 1;
|
||||
|
||||
bool isAudio = FileTypes.IsAudio(Player.Path.Ext());
|
||||
bool isAudio = FileTypes.IsAudio(Player.Path.Ext);
|
||||
|
||||
if (isAudio)
|
||||
autoFitHeight = Convert.ToInt32(workingArea.Height * App.AutofitAudio);
|
||||
|
||||
if (FileTypes.IsImage(Player.Path.Ext()))
|
||||
if (FileTypes.IsImage(Player.Path.Ext))
|
||||
autoFitHeight = Convert.ToInt32(workingArea.Height * App.AutofitImage);
|
||||
|
||||
if (Player.VideoSize.Height == 0 || Player.VideoSize.Width == 0)
|
||||
@@ -662,14 +679,17 @@ public partial class MainForm : Form
|
||||
|
||||
Point middlePos = new Point(Left + Width / 2, Top + Height / 2);
|
||||
var rect = new RECT(new Rectangle(screen.Bounds.X, screen.Bounds.Y, width, height));
|
||||
|
||||
|
||||
AddWindowBorders(Handle, ref rect, GetDpi(Handle), !Player.TitleBar);
|
||||
|
||||
width = rect.Width;
|
||||
height = rect.Height;
|
||||
|
||||
int left = middlePos.X - width / 2;
|
||||
int top = middlePos.Y - height / 2;
|
||||
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);
|
||||
|
||||
@@ -686,18 +706,20 @@ public partial class MainForm : Form
|
||||
int minTop = screens.Select(val => GetWorkingArea(Handle, val.WorkingArea).Y).Min();
|
||||
int maxBottom = screens.Select(val => GetWorkingArea(Handle, val.WorkingArea).Bottom).Max();
|
||||
|
||||
if (load && CommandLine.Contains("geometry"))
|
||||
if (load)
|
||||
{
|
||||
string geometryString = CommandLine.GetValue("geometry");
|
||||
string geometryString = Player.GetPropertyString("geometry");
|
||||
|
||||
var geometry = ParseGeometry(geometryString, GetWorkingArea(
|
||||
Handle, Screen.FromHandle(Handle).WorkingArea), width, height);
|
||||
if (!string.IsNullOrEmpty(geometryString))
|
||||
{
|
||||
var pos = ParseGeometry(geometryString, width, height);
|
||||
|
||||
if (geometry.x != int.MaxValue)
|
||||
left = geometry.x;
|
||||
if (pos.X != int.MaxValue)
|
||||
left = pos.X;
|
||||
|
||||
if (geometry.y != int.MaxValue)
|
||||
top = geometry.y;
|
||||
if (pos.Y != int.MaxValue)
|
||||
top = pos.Y;
|
||||
}
|
||||
}
|
||||
|
||||
if (left < minLeft)
|
||||
@@ -716,15 +738,17 @@ public partial class MainForm : Form
|
||||
SetWindowPos(Handle, IntPtr.Zero, left, top, width, height, SWP_NOACTIVATE);
|
||||
}
|
||||
|
||||
(int x, int y) ParseGeometry(string input, Rectangle workingArea, int width, int height)
|
||||
Point ParseGeometry(string input, int width, int height)
|
||||
{
|
||||
int x = int.MaxValue;
|
||||
int y = int.MaxValue;
|
||||
|
||||
Match match = Regex.Match(input, @"^(\d+)%?:(\d+)%?$");
|
||||
Match match = Regex.Match(input, @"^\+(\d+)%?\+(\d+)%?$");
|
||||
|
||||
if (match.Success)
|
||||
{
|
||||
Rectangle workingArea = GetWorkingArea(Handle, Screen.FromHandle(Handle).WorkingArea);
|
||||
|
||||
x = int.Parse(match.Groups[1].Value);
|
||||
y = int.Parse(match.Groups[2].Value);
|
||||
|
||||
@@ -732,7 +756,7 @@ public partial class MainForm : Form
|
||||
y = workingArea.Top + Convert.ToInt32((workingArea.Height - height) / 100.0 * y);
|
||||
}
|
||||
|
||||
return (x, y);
|
||||
return new Point(x, y);
|
||||
}
|
||||
|
||||
public void CycleFullscreen(bool enabled)
|
||||
@@ -765,7 +789,7 @@ public partial class MainForm : Form
|
||||
else
|
||||
{
|
||||
WindowState = FormWindowState.Normal;
|
||||
|
||||
|
||||
if (!Player.WasInitialSizeSet)
|
||||
SetFormPosAndSize();
|
||||
}
|
||||
@@ -827,7 +851,7 @@ public partial class MainForm : Form
|
||||
|
||||
if (!binding.IsMenu)
|
||||
continue;
|
||||
|
||||
|
||||
var menuItem = MenuHelp.Add(ContextMenu.Items, tempBinding.Comment);
|
||||
|
||||
if (menuItem != null)
|
||||
@@ -883,7 +907,7 @@ public partial class MainForm : Form
|
||||
path = path + "|" + title;
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(path) && path != @"bd://" && path != @"dvd://")
|
||||
if (!string.IsNullOrEmpty(path) && path != "-" && path != @"bd://" && path != @"dvd://")
|
||||
{
|
||||
if (App.Settings.RecentFiles.Contains(path))
|
||||
App.Settings.RecentFiles.Remove(path);
|
||||
@@ -1024,11 +1048,12 @@ public partial class MainForm : Form
|
||||
break;
|
||||
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);
|
||||
return;
|
||||
}
|
||||
@@ -1082,7 +1107,8 @@ public partial class MainForm : Form
|
||||
{
|
||||
var nccalcsize_params = Marshal.PtrToStructure<NCCALCSIZE_PARAMS>(m.LParam);
|
||||
RECT[] rects = nccalcsize_params.rgrc;
|
||||
rects[0].Top = rects[0].Top - GetTitleBarHeight(Handle, GetDpi(Handle));
|
||||
int h = GetTitleBarHeight(Handle, GetDpi(Handle));
|
||||
rects[0].Top = rects[0].Top - h;
|
||||
Marshal.StructureToPtr(nccalcsize_params, m.LParam, false);
|
||||
}
|
||||
break;
|
||||
@@ -1228,11 +1254,9 @@ public partial class MainForm : Form
|
||||
_lastCursorPosition = MousePosition;
|
||||
_lastCursorChanged = Environment.TickCount;
|
||||
}
|
||||
else if ((Environment.TickCount - _lastCursorChanged > 1500 ||
|
||||
Environment.TickCount - _lastCursorChanged > 5000) &&
|
||||
else if ((Environment.TickCount - _lastCursorChanged > _cursorAutohide) &&
|
||||
ClientRectangle.Contains(PointToClient(MousePosition)) &&
|
||||
ActiveForm == this && !ContextMenu.IsVisible && !IsMouseInOsc() &&
|
||||
!IsCommandPaletteVissible())
|
||||
ActiveForm == this && !ContextMenu.IsVisible && !IsMouseInOsc())
|
||||
|
||||
HideCursor();
|
||||
}
|
||||
@@ -1289,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) {
|
||||
Player.Border = enabled;
|
||||
|
||||
@@ -1401,11 +1437,7 @@ public partial class MainForm : Form
|
||||
protected override void OnMouseDown(MouseEventArgs e)
|
||||
{
|
||||
base.OnMouseDown(e);
|
||||
|
||||
_mouseDownLocation = PointToScreen(e.Location);
|
||||
|
||||
if (Width - e.Location.X < 10 && e.Location.Y < 10)
|
||||
Player.CommandV("quit");
|
||||
}
|
||||
|
||||
protected override void OnMouseMove(MouseEventArgs e)
|
||||
@@ -1459,20 +1491,18 @@ public partial class MainForm : Form
|
||||
base.OnKeyDown(e);
|
||||
}
|
||||
|
||||
static bool _isCursorVisible = true;
|
||||
|
||||
static void ShowCursor()
|
||||
void ShowCursor()
|
||||
{
|
||||
if (!_isCursorVisible)
|
||||
if (!_isCursorVisible && _cursorAutohide != -1)
|
||||
{
|
||||
Cursor.Show();
|
||||
_isCursorVisible = true;
|
||||
}
|
||||
}
|
||||
|
||||
static void HideCursor()
|
||||
void HideCursor()
|
||||
{
|
||||
if (_isCursorVisible)
|
||||
if (_isCursorVisible && _cursorAutohide != 0)
|
||||
{
|
||||
Cursor.Hide();
|
||||
_isCursorVisible = false;
|
||||
@@ -1496,103 +1526,4 @@ public partial class MainForm : Form
|
||||
|
||||
[DllImport("DwmApi")]
|
||||
static extern int DwmSetWindowAttribute(IntPtr hwnd, int attr, int[] attrValue, int attrSize);
|
||||
|
||||
//protected override void OnLayout(LayoutEventArgs args)
|
||||
//{
|
||||
// base.OnLayout(args);
|
||||
// AdjustCommandPaletteLeftAndWidth();
|
||||
//}
|
||||
|
||||
//class ElementHostEx : ElementHost
|
||||
//{
|
||||
// protected override void OnHandleCreated(EventArgs e)
|
||||
// {
|
||||
// base.OnHandleCreated(e);
|
||||
// const int LWA_ColorKey = 1;
|
||||
|
||||
// if (Environment.OSVersion.Version > new Version(10, 0))
|
||||
// SetLayeredWindowAttributes(Handle, 0x111111, 255, LWA_ColorKey);
|
||||
// }
|
||||
|
||||
// protected override CreateParams CreateParams
|
||||
// {
|
||||
// get
|
||||
// {
|
||||
// CreateParams cp = base.CreateParams;
|
||||
|
||||
// if (Environment.OSVersion.Version > new Version(10, 0))
|
||||
// cp.ExStyle |= 0x00080000; // WS_EX_LAYERED
|
||||
|
||||
// cp.ExStyle |= 0x00000008; // WS_EX_TOPMOST
|
||||
|
||||
// cp.Style |= 0x04000000; //WS_CLIPSIBLINGS
|
||||
// cp.Style |= 0x02000000; //WS_CLIPCHILDREN
|
||||
|
||||
// return cp;
|
||||
// }
|
||||
// }
|
||||
|
||||
// protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
|
||||
// {
|
||||
// try
|
||||
// {
|
||||
// return base.ProcessCmdKey(ref msg, keyData);
|
||||
// }
|
||||
// catch (Exception)
|
||||
// {
|
||||
// return true;
|
||||
// }
|
||||
// }
|
||||
|
||||
// [DllImport("user32.dll")]
|
||||
// public static extern bool SetLayeredWindowAttributes(IntPtr hWnd, int crKey, byte alpha, int dwFlags);
|
||||
//}
|
||||
|
||||
//public void ShowCommandPalette()
|
||||
//{
|
||||
// if (CommandPaletteHost == null)
|
||||
// {
|
||||
// CommandPaletteHost = new ElementHostEx();
|
||||
// CommandPaletteHost.Dock = DockStyle.Fill;
|
||||
// CommandPaletteHost.BackColor = Color.FromArgb(0x111111);
|
||||
|
||||
// AdjustCommandPaletteLeftAndWidth();
|
||||
// CommandPaletteHost.Child = CommandPalette.Instance;
|
||||
// CommandPalette.Instance.AdjustHeight();
|
||||
// Controls.Add(CommandPaletteHost);
|
||||
// CommandPaletteHost.BringToFront();
|
||||
// }
|
||||
//}
|
||||
|
||||
public void HideCommandPalette()
|
||||
{
|
||||
if (CommandPaletteHost != null)
|
||||
{
|
||||
CommandPaletteHost.Visible = false;
|
||||
|
||||
CommandPalette.Instance.Items.Clear();
|
||||
CommandPalette.Instance.SearchControl.SearchTextBox.Text = "";
|
||||
CommandPalette.Instance.UpdateLayout();
|
||||
|
||||
ActiveControl = null;
|
||||
Controls.Remove(CommandPaletteHost);
|
||||
|
||||
CommandPaletteHost.Child = null;
|
||||
CommandPaletteHost.Dispose();
|
||||
CommandPaletteHost = null;
|
||||
}
|
||||
}
|
||||
|
||||
//void AdjustCommandPaletteLeftAndWidth()
|
||||
//{
|
||||
// if (CommandPaletteHost == null)
|
||||
// return;
|
||||
|
||||
// CommandPaletteHost.Width = FontHeight * 26;
|
||||
|
||||
// if (CommandPaletteHost.Width > ClientSize.Width)
|
||||
// CommandPaletteHost.Width = ClientSize.Width;
|
||||
|
||||
// CommandPaletteHost.Left = (ClientSize.Width - CommandPaletteHost.Size.Width) / 2;
|
||||
//}
|
||||
}
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="Microsoft.PowerShell.5.ReferenceAssemblies" version="1.1.0" targetFramework="net472" />
|
||||
</packages>
|
||||
@@ -13,6 +13,7 @@ EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{2F97C77E-32E3-46FA-8D7C-3940FD9AA384}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
.editorconfig = .editorconfig
|
||||
Directory.Build.props = Directory.Build.props
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NGettext.Wpf", "NGettext.Wpf\NGettext.Wpf.csproj", "{0B7958FD-2138-482A-A21B-481AE7A0F851}"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
|
||||
using CommunityToolkit.Mvvm.Messaging;
|
||||
|
||||
using MpvNet.ExtensionMethod;
|
||||
using MpvNet.Extensions;
|
||||
using MpvNet.Help;
|
||||
using MpvNet.MVVM;
|
||||
|
||||
@@ -21,12 +21,13 @@ public class AppClass
|
||||
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 Exit { get; set; }
|
||||
public bool IsTerminalAttached { get; } = Environment.GetEnvironmentVariable("_started_from_console") == "yes";
|
||||
public bool MediaInfo { get; set; } = true;
|
||||
public bool Queue { get; set; }
|
||||
public bool RememberAudioDevice { get; set; } = true;
|
||||
public bool RememberVolume { get; set; } = true;
|
||||
public bool RememberWindowPosition { get; set; }
|
||||
|
||||
@@ -76,20 +77,14 @@ public class AppClass
|
||||
Player.Initialized += Player_Initialized;
|
||||
}
|
||||
|
||||
public static string About => "Copyright (C) 2000-2023 mpv.net/mpv/mplayer\n" +
|
||||
$"{AppInfo.Product} {AppInfo.Version}" + GetLastWriteTime(Environment.ProcessPath!) + "\n" +
|
||||
public static string About => "Copyright (C) 2000-2024 mpv.net/mpv/mplayer\n" +
|
||||
$"{AppInfo.Product} v{AppInfo.Version}" + GetLastWriteTime(Environment.ProcessPath!) + "\n" +
|
||||
$"{Player.GetPropertyString("mpv-version")}" + GetLastWriteTime(Folder.Startup + "libmpv-2.dll") + "\n" +
|
||||
$"ffmpeg {Player.GetPropertyString("ffmpeg-version")}\n" + "GPL v2 License";
|
||||
$"ffmpeg {Player.GetPropertyString("ffmpeg-version")}\n" +
|
||||
$"MediaInfo v{FileVersionInfo.GetVersionInfo(Folder.Startup + "MediaInfo.dll").FileVersion}" +
|
||||
$"{GetLastWriteTime(Folder.Startup + "MediaInfo.dll")}" + "\n" + "GPL v2 License";
|
||||
|
||||
static string GetLastWriteTime(string path)
|
||||
{
|
||||
if (IsStoreVersion)
|
||||
return "";
|
||||
|
||||
return $" ({File.GetLastWriteTime(path).ToShortDateString()})";
|
||||
}
|
||||
|
||||
static bool IsStoreVersion => Folder.Startup.Contains("FrankSkare.mpvnet");
|
||||
static string GetLastWriteTime(string path) => $" ({File.GetLastWriteTime(path).ToShortDateString()})";
|
||||
|
||||
void Player_Initialized()
|
||||
{
|
||||
@@ -98,6 +93,9 @@ public class AppClass
|
||||
Player.SetPropertyInt("volume", Settings.Volume);
|
||||
Player.SetPropertyString("mute", Settings.Mute);
|
||||
}
|
||||
|
||||
if (RememberAudioDevice && Settings.AudioDevice != "")
|
||||
Player.SetPropertyString("audio-device", Settings.AudioDevice);
|
||||
}
|
||||
|
||||
void Player_Shutdown()
|
||||
@@ -133,14 +131,12 @@ public class AppClass
|
||||
{
|
||||
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 "autofit-audio": AutofitAudio = value.Trim('%').ToInt(70) / 100f; return true;
|
||||
case "autofit-image": AutofitImage = value.Trim('%').ToInt(80) / 100f; return true;
|
||||
case "dark-mode": DarkMode = value; return true;
|
||||
case "dark-theme": DarkTheme = value.Trim('\'', '"'); 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 "light-theme": LightTheme = value.Trim('\'', '"'); return true;
|
||||
case "media-info": MediaInfo = value == "yes"; return true;
|
||||
@@ -150,10 +146,10 @@ public class AppClass
|
||||
case "process-instance": ProcessInstance = value; return true;
|
||||
case "queue": Queue = value == "yes"; return true;
|
||||
case "recent-count": RecentCount = value.ToInt(15); return true;
|
||||
case "remember-audio-device": RememberAudioDevice = value == "yes"; return true;
|
||||
case "remember-volume": RememberVolume = value == "yes"; return true;
|
||||
case "remember-window-position": RememberWindowPosition = value == "yes"; return true;
|
||||
case "start-size": StartSize = value; return true;
|
||||
case "video-file-extensions": FileTypes.Video = value.Split(" ,;".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); return true;
|
||||
|
||||
default:
|
||||
if (writeError)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
|
||||
using MpvNet.ExtensionMethod;
|
||||
using MpvNet.Extensions;
|
||||
|
||||
namespace MpvNet;
|
||||
|
||||
@@ -19,7 +19,7 @@ public class Chapter
|
||||
_timeDisplay = TimeSpan.FromSeconds(Time).ToString();
|
||||
|
||||
if (_timeDisplay.ContainsEx("."))
|
||||
_timeDisplay = _timeDisplay[.._timeDisplay.LastIndexOf(".")];
|
||||
_timeDisplay = _timeDisplay[.._timeDisplay.LastIndexOf('.')];
|
||||
}
|
||||
|
||||
return _timeDisplay;
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
|
||||
using System.Globalization;
|
||||
using System.Text;
|
||||
using System.Text.Json;
|
||||
using MpvNet.Help;
|
||||
|
||||
namespace MpvNet;
|
||||
@@ -26,13 +24,13 @@ public class Command
|
||||
|
||||
// deprecated
|
||||
["playlist-add"] = args => PlaylistAdd(Convert.ToInt32(args[0])), // deprecated
|
||||
["show-progress"] = args => ShowProgress(), // deprecated
|
||||
["show-progress"] = args => Player.Command("show-progress"), // deprecated
|
||||
["playlist-random"] = args => PlaylistRandom(), // deprecated
|
||||
};
|
||||
|
||||
public string FormatTime(double value) => ((int)value).ToString("00");
|
||||
static 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");
|
||||
|
||||
@@ -44,7 +42,7 @@ public class Command
|
||||
{
|
||||
if (i.Contains("://") || File.Exists(i))
|
||||
{
|
||||
Player.LoadFiles(new[] { i }, true, false);
|
||||
Player.LoadFiles([i], true, false);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -66,7 +64,7 @@ public class Command
|
||||
"}${osd-ass-cc/1}" + text + "\" " + duration);
|
||||
}
|
||||
|
||||
public static void CycleAudio()
|
||||
void CycleAudio()
|
||||
{
|
||||
Player.UpdateExternalTracks();
|
||||
|
||||
@@ -94,7 +92,7 @@ public class Command
|
||||
}
|
||||
}
|
||||
|
||||
public static void CycleSubtitles()
|
||||
void CycleSubtitles()
|
||||
{
|
||||
Player.UpdateExternalTracks();
|
||||
|
||||
@@ -126,7 +124,7 @@ public class Command
|
||||
}
|
||||
|
||||
// deprecated
|
||||
public static void PlaylistAdd(int value)
|
||||
void PlaylistAdd(int value)
|
||||
{
|
||||
int pos = Player.PlaylistPos;
|
||||
int count = Player.GetPropertyInt("playlist-count");
|
||||
@@ -145,13 +143,13 @@ public class Command
|
||||
Player.SetPropertyInt("playlist-pos", pos);
|
||||
}
|
||||
|
||||
public static void PlaylistFirst()
|
||||
void PlaylistFirst()
|
||||
{
|
||||
if (Player.PlaylistPos != 0)
|
||||
Player.SetPropertyInt("playlist-pos", 0);
|
||||
}
|
||||
|
||||
public static void PlaylistLast()
|
||||
void PlaylistLast()
|
||||
{
|
||||
int count = Player.GetPropertyInt("playlist-count");
|
||||
|
||||
@@ -160,14 +158,14 @@ public class Command
|
||||
}
|
||||
|
||||
// deprecated
|
||||
public static void PlaylistRandom()
|
||||
void PlaylistRandom()
|
||||
{
|
||||
int count = Player.GetPropertyInt("playlist-count");
|
||||
Player.SetPropertyInt("playlist-pos", new Random().Next(count));
|
||||
}
|
||||
|
||||
// deprecated
|
||||
public void ShowProgress()
|
||||
void ShowProgress()
|
||||
{
|
||||
TimeSpan position = TimeSpan.FromSeconds(Player.GetPropertyDouble("time-pos"));
|
||||
TimeSpan duration = TimeSpan.FromSeconds(Player.GetPropertyDouble("duration"));
|
||||
|
||||
@@ -5,6 +5,11 @@ public class CommandLine
|
||||
{
|
||||
static List<StringPair>? _arguments;
|
||||
|
||||
static string[] _preInitProperties { get; } = {
|
||||
"input-terminal", "terminal", "input-file", "config", "o", "config-dir", "input-conf",
|
||||
"load-scripts", "scripts", "script-opts", "player-operation-mode", "idle", "log-file",
|
||||
"msg-color", "dump-stats", "msg-level", "really-quiet" };
|
||||
|
||||
public static List<StringPair> Arguments
|
||||
{
|
||||
get
|
||||
@@ -12,7 +17,7 @@ public class CommandLine
|
||||
if (_arguments != null)
|
||||
return _arguments;
|
||||
|
||||
_arguments = new();
|
||||
_arguments = [];
|
||||
|
||||
foreach (string i in Environment.GetCommandLineArgs().Skip(1))
|
||||
{
|
||||
@@ -32,7 +37,7 @@ public class CommandLine
|
||||
arg += "=yes";
|
||||
}
|
||||
|
||||
string left = arg[2..arg.IndexOf("=")];
|
||||
string left = arg[2..arg.IndexOf('=')];
|
||||
string right = arg[(left.Length + 3)..];
|
||||
|
||||
if (string.IsNullOrEmpty(left))
|
||||
@@ -41,6 +46,7 @@ public class CommandLine
|
||||
switch (left)
|
||||
{
|
||||
case "script": left = "scripts"; break;
|
||||
case "script-opt": left = "script-opts"; break;
|
||||
case "audio-file": left = "audio-files"; break;
|
||||
case "sub-file": left = "sub-files"; break;
|
||||
case "external-file": left = "external-files"; break;
|
||||
@@ -53,11 +59,89 @@ public class CommandLine
|
||||
}
|
||||
}
|
||||
|
||||
public static void ProcessCommandLineArgsPreInit()
|
||||
{
|
||||
foreach (var pair in Arguments)
|
||||
{
|
||||
if (pair.Name.EndsWith("-add") ||
|
||||
pair.Name.EndsWith("-set") ||
|
||||
pair.Name.EndsWith("-pre") ||
|
||||
pair.Name.EndsWith("-clr") ||
|
||||
pair.Name.EndsWith("-append") ||
|
||||
pair.Name.EndsWith("-remove") ||
|
||||
pair.Name.EndsWith("-toggle"))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
Player.ProcessProperty(pair.Name, pair.Value);
|
||||
|
||||
if (!App.ProcessProperty(pair.Name, pair.Value))
|
||||
Player.SetPropertyString(pair.Name, pair.Value);
|
||||
}
|
||||
}
|
||||
|
||||
public static void ProcessCommandLineArgsPostInit()
|
||||
{
|
||||
foreach (var pair in Arguments)
|
||||
{
|
||||
if (_preInitProperties.Contains(pair.Name))
|
||||
continue;
|
||||
|
||||
if (pair.Name.EndsWith("-add"))
|
||||
Player.CommandV("change-list", pair.Name[..^4], "add", pair.Value);
|
||||
else if (pair.Name.EndsWith("-set"))
|
||||
Player.CommandV("change-list", pair.Name[..^4], "set", pair.Value);
|
||||
else if (pair.Name.EndsWith("-append"))
|
||||
Player.CommandV("change-list", pair.Name[..^7], "append", pair.Value);
|
||||
else if (pair.Name.EndsWith("-pre"))
|
||||
Player.CommandV("change-list", pair.Name[..^4], "pre", pair.Value);
|
||||
else if (pair.Name.EndsWith("-clr"))
|
||||
Player.CommandV("change-list", pair.Name[..^4], "clr", "");
|
||||
else if (pair.Name.EndsWith("-remove"))
|
||||
Player.CommandV("change-list", pair.Name[..^7], "remove", pair.Value);
|
||||
else if (pair.Name.EndsWith("-toggle"))
|
||||
Player.CommandV("change-list", pair.Name[..^7], "toggle", pair.Value);
|
||||
else
|
||||
{
|
||||
Player.ProcessProperty(pair.Name, pair.Value);
|
||||
|
||||
if (!App.ProcessProperty(pair.Name, pair.Value))
|
||||
Player.SetPropertyString(pair.Name, pair.Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void ProcessCommandLineFiles()
|
||||
{
|
||||
List<string> files = [];
|
||||
|
||||
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], !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;
|
||||
}
|
||||
@@ -65,8 +149,10 @@ public class CommandLine
|
||||
public static string GetValue(string name)
|
||||
{
|
||||
foreach (StringPair pair in Arguments)
|
||||
{
|
||||
if (pair.Name == name)
|
||||
return pair.Value;
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
|
||||
using System.Reflection;
|
||||
|
||||
using MpvNet.ExtensionMethod;
|
||||
using MpvNet.Extensions;
|
||||
|
||||
namespace MpvNet;
|
||||
|
||||
@@ -9,7 +9,7 @@ public class ExtensionLoader
|
||||
{
|
||||
public event Action<Exception>? UnhandledException;
|
||||
|
||||
readonly List<object?> _refs = new();
|
||||
readonly List<object?> _refs = [];
|
||||
|
||||
void LoadDll(string path)
|
||||
{
|
||||
@@ -31,8 +31,12 @@ public class ExtensionLoader
|
||||
public void LoadFolder(string path)
|
||||
{
|
||||
if (Directory.Exists(path))
|
||||
{
|
||||
foreach (string dir in Directory.GetDirectories(path))
|
||||
LoadDll(dir.AddSep() + Path.GetFileName(dir) + ".dll");
|
||||
{
|
||||
LoadDll(dir.Separator + Path.GetFileName(dir) + ".dll");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
|
||||
namespace MpvNet.ExtensionMethod;
|
||||
|
||||
public static class ObjectExtension
|
||||
{
|
||||
public static string ToStringEx(this object instance) => instance?.ToString() ?? "";
|
||||
}
|
||||
10
src/MpvNet/ExtensionMethod/ObjectExtensions.cs
Normal file
@@ -0,0 +1,10 @@
|
||||
|
||||
namespace MpvNet.Extensions;
|
||||
|
||||
public static class ObjectExtensions
|
||||
{
|
||||
extension(object instance)
|
||||
{
|
||||
public string ToStringEx() => instance?.ToString() ?? "";
|
||||
}
|
||||
}
|
||||
@@ -1,67 +0,0 @@
|
||||
|
||||
namespace MpvNet.ExtensionMethod;
|
||||
|
||||
public static class PathStringExtension
|
||||
{
|
||||
public static string Ext(this string filepath) => filepath.Ext(false);
|
||||
|
||||
public static string Ext(this string filepath, bool includeDot)
|
||||
{
|
||||
if (string.IsNullOrEmpty(filepath))
|
||||
return "";
|
||||
|
||||
char[] chars = filepath.ToCharArray();
|
||||
|
||||
for (int x = filepath.Length - 1; x >= 0; x--)
|
||||
{
|
||||
if (chars[x] == Path.DirectorySeparatorChar)
|
||||
return "";
|
||||
|
||||
if (chars[x] == '.')
|
||||
return filepath.Substring(x + (includeDot ? 0 : 1)).ToLowerInvariant();
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
public static string FileName(this string instance)
|
||||
{
|
||||
if (string.IsNullOrEmpty(instance))
|
||||
return "";
|
||||
|
||||
int index = instance.LastIndexOf('\\');
|
||||
|
||||
if (index > -1)
|
||||
return instance.Substring(index + 1);
|
||||
|
||||
index = instance.LastIndexOf('/');
|
||||
|
||||
if (index > -1)
|
||||
return instance.Substring(index + 1);
|
||||
|
||||
return instance;
|
||||
}
|
||||
|
||||
public static string ShortPath(this string instance, int maxLength)
|
||||
{
|
||||
if (string.IsNullOrEmpty(instance))
|
||||
return "";
|
||||
|
||||
if (instance.Length > maxLength && instance.Substring(1, 2) == ":\\")
|
||||
instance = instance[..3] + "...\\" + instance.FileName();
|
||||
|
||||
return instance;
|
||||
}
|
||||
|
||||
// Ensure trailing directory separator char
|
||||
public static string AddSep(this string instance)
|
||||
{
|
||||
if (string.IsNullOrEmpty(instance))
|
||||
return "";
|
||||
|
||||
if (!instance.EndsWith(Path.DirectorySeparatorChar.ToString()))
|
||||
instance = instance + Path.DirectorySeparatorChar;
|
||||
|
||||
return instance;
|
||||
}
|
||||
}
|
||||
77
src/MpvNet/ExtensionMethod/PathStringExtensions.cs
Normal file
@@ -0,0 +1,77 @@
|
||||
|
||||
namespace MpvNet.Extensions;
|
||||
|
||||
public static class PathStringExtensions
|
||||
{
|
||||
extension(string filepath)
|
||||
{
|
||||
public string Ext => GetExt(filepath, false);
|
||||
|
||||
static string GetExt(string path, bool includeDot)
|
||||
{
|
||||
if (string.IsNullOrEmpty(path))
|
||||
return "";
|
||||
|
||||
char[] chars = path.ToCharArray();
|
||||
|
||||
for (int x = path.Length - 1; x >= 0; x--)
|
||||
{
|
||||
if (chars[x] == '/')
|
||||
return "";
|
||||
if (chars[x] == '\\')
|
||||
return "";
|
||||
if (chars[x] == '.')
|
||||
return path[(x + (includeDot ? 0 : 1))..].ToLowerInvariant();
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
public string FileName
|
||||
{
|
||||
get
|
||||
{
|
||||
if (string.IsNullOrEmpty(filepath))
|
||||
return "";
|
||||
|
||||
int index = filepath.LastIndexOf('\\');
|
||||
|
||||
if (index > -1)
|
||||
return filepath[(index + 1)..];
|
||||
|
||||
index = filepath.LastIndexOf('/');
|
||||
|
||||
if (index > -1)
|
||||
return filepath[(index + 1)..];
|
||||
|
||||
return filepath;
|
||||
}
|
||||
}
|
||||
|
||||
public string ShortPath(int maxLength)
|
||||
{
|
||||
if (string.IsNullOrEmpty(filepath))
|
||||
return "";
|
||||
|
||||
if (filepath.Length > maxLength && filepath.Substring(1, 2) == ":\\")
|
||||
filepath = $"{filepath[..3]}...\\{filepath.FileName}";
|
||||
|
||||
return filepath;
|
||||
}
|
||||
|
||||
// Ensure trailing directory separator char
|
||||
public string Separator
|
||||
{
|
||||
get
|
||||
{
|
||||
if (string.IsNullOrEmpty(filepath))
|
||||
return "";
|
||||
|
||||
if (!filepath.EndsWith(Path.DirectorySeparatorChar.ToString()))
|
||||
filepath = filepath + Path.DirectorySeparatorChar;
|
||||
|
||||
return filepath;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,15 +1,15 @@
|
||||
|
||||
using System.Globalization;
|
||||
|
||||
namespace MpvNet.ExtensionMethod;
|
||||
namespace MpvNet.Extensions;
|
||||
|
||||
public static class StringExtension
|
||||
public static class StringExtensions
|
||||
{
|
||||
public static string ToUpperEx(this string instance) => (instance != null) ? instance.ToUpperInvariant() : "";
|
||||
public static string ToUpperEx(this string instance) => instance?.ToUpperInvariant() ?? "";
|
||||
|
||||
public static string ToLowerEx(this string instance) => (instance != null) ? instance.ToLowerInvariant() : "";
|
||||
public static string ToLowerEx(this string instance) => instance?.ToLowerInvariant() ?? "";
|
||||
|
||||
public static string TrimEx(this string? instance) => (instance == null) ? "" : instance.Trim();
|
||||
public static string TrimEx(this string? instance) => instance?.Trim() ?? "";
|
||||
|
||||
public static int ToInt(this string instance, int defaultValue = 0)
|
||||
{
|
||||
@@ -1,20 +1,53 @@
|
||||
|
||||
using MpvNet.ExtensionMethod;
|
||||
using MpvNet.Extensions;
|
||||
|
||||
namespace MpvNet;
|
||||
|
||||
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 IsAudio(string extension) => Audio.Contains(extension);
|
||||
public static bool IsVideo(string[] exts, string ext) => exts?.Contains(ext) ?? false;
|
||||
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) =>
|
||||
Video.Contains(extension) || Audio.Contains(extension) || Image.Contains(extension);
|
||||
public static bool IsVideo(string ext) => GetVideoExts().Contains(ext);
|
||||
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"];
|
||||
|
||||
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"];
|
||||
|
||||
return exts.Split(" ,;".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
|
||||
}
|
||||
|
||||
public static string[] GetImgExts()
|
||||
{
|
||||
string exts = Player.GetPropertyString("image-exts");
|
||||
|
||||
if (string.IsNullOrEmpty(exts))
|
||||
return ["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));
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
|
||||
using MpvNet.ExtensionMethod;
|
||||
using MpvNet.Extensions;
|
||||
|
||||
namespace MpvNet;
|
||||
|
||||
public class Folder
|
||||
{
|
||||
public static string Startup { get; } = Path.GetDirectoryName(Environment.ProcessPath)!.AddSep();
|
||||
public static string AppData { get; } = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData).AddSep();
|
||||
public static string Startup { get; } = Path.GetDirectoryName(Environment.ProcessPath)!.Separator;
|
||||
public static string AppData { get; } = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData).Separator;
|
||||
}
|
||||
|
||||
@@ -10,4 +10,5 @@ public static class Global
|
||||
public static readonly AppClass App = new AppClass();
|
||||
|
||||
public static string _(string value) => Translator.Current!.Gettext(value);
|
||||
public static string _p(string context, string value) => Translator.Current!.GetParticularString(context, value);
|
||||
}
|
||||
|
||||
@@ -8,9 +8,7 @@ public static class StringHelp
|
||||
{
|
||||
public static string GetMD5Hash(string txt)
|
||||
{
|
||||
using MD5 md5 = MD5.Create();
|
||||
byte[] inputBuffer = Encoding.UTF8.GetBytes(txt);
|
||||
byte[] hashBuffer = md5.ComputeHash(inputBuffer);
|
||||
return BitConverter.ToString(md5.ComputeHash(inputBuffer)).Replace("-", "");
|
||||
return Convert.ToHexString(MD5.HashData(inputBuffer));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
|
||||
using MpvNet.ExtensionMethod;
|
||||
using MpvNet.Help;
|
||||
|
||||
namespace MpvNet;
|
||||
@@ -15,8 +14,11 @@ public class InputConf
|
||||
public string Path {
|
||||
get => _path ?? "";
|
||||
set {
|
||||
_path = value;
|
||||
Content = File.Exists(_path) ? FileHelp.ReadTextFile(_path) : "";
|
||||
if (_path != value)
|
||||
{
|
||||
_path = value;
|
||||
Content = File.Exists(_path) ? FileHelp.ReadTextFile(_path) : "";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,17 +34,25 @@ public class InputConf
|
||||
var defaultBindings = InputHelp.GetDefaults();
|
||||
|
||||
foreach (Binding defaultBinding in defaultBindings)
|
||||
{
|
||||
foreach (Binding confBinding in confbindings)
|
||||
{
|
||||
if (defaultBinding.Input == confBinding.Input &&
|
||||
defaultBinding.Command != confBinding.Command)
|
||||
{
|
||||
defaultBinding.Input = "";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach (Binding defaultBinding in defaultBindings)
|
||||
{
|
||||
foreach (Binding confBinding in confbindings)
|
||||
{
|
||||
if (defaultBinding.Command == confBinding.Command)
|
||||
defaultBinding.Input = confBinding.Input;
|
||||
}
|
||||
}
|
||||
|
||||
return (defaultBindings, confbindings);
|
||||
}
|
||||
@@ -50,7 +60,29 @@ public class InputConf
|
||||
public string GetContent()
|
||||
{
|
||||
if (HasMenu)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (App.Settings.MenuUpdateVersion != 1)
|
||||
{
|
||||
string updatedContent = UpdateContent(Content);
|
||||
|
||||
if (updatedContent != Content)
|
||||
{
|
||||
File.Copy(Path, Path + ".backup", true);
|
||||
File.WriteAllText(Path, Content = updatedContent);
|
||||
}
|
||||
|
||||
App.Settings.MenuUpdateVersion = 1;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Terminal.WriteError("Failed to update menu." + BR + ex.Message);
|
||||
}
|
||||
|
||||
return Content;
|
||||
}
|
||||
else
|
||||
{
|
||||
var defaults = InputHelp.GetDefaults();
|
||||
@@ -58,19 +90,30 @@ public class InputConf
|
||||
var conf = InputHelp.Parse(Content);
|
||||
|
||||
foreach (Binding defaultBinding in defaults)
|
||||
{
|
||||
foreach (Binding confBinding in conf)
|
||||
{
|
||||
if (defaultBinding.Command == confBinding.Command &&
|
||||
defaultBinding.Comment == confBinding.Comment)
|
||||
{
|
||||
defaultBinding.Input = confBinding.Input;
|
||||
removed.Add(confBinding);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach (Binding binding in removed)
|
||||
{
|
||||
conf.Remove(binding);
|
||||
}
|
||||
|
||||
defaults.AddRange(conf);
|
||||
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,215 +7,251 @@ public static class InputHelp
|
||||
{
|
||||
public static List<Binding> GetDefaults()
|
||||
{
|
||||
List<Binding> bindings = new List<Binding>()
|
||||
{
|
||||
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"), _("Add files/URLs to playlist from clipboard"), "script-message-to mpvnet open-clipboard append", "Ctrl+Shift+v"),
|
||||
new (_("File"), "-"),
|
||||
new (_("File"), _("Recent Files")),
|
||||
new (_("File"), _("Exit"), "quit", "Esc"),
|
||||
List<Binding> b = [];
|
||||
|
||||
new (_("Playback"), _("Play/Pause"), "script-message-to mpvnet play-pause", "Space"),
|
||||
new (_("Playback"), _("Stop"), "stop", "Ctrl+s"),
|
||||
Add(b, new (_("File"), _("Open Files..."), "script-message-to mpvnet open-files", "o"));
|
||||
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"));
|
||||
Add(b, new (_("File"), _("Add external subtitle files..."), "script-message-to mpvnet load-sub"));
|
||||
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"),
|
||||
new (_("Navigate"), _("Next File"), "playlist-next", "F12"),
|
||||
new (_("Navigate"), "-"),
|
||||
new (_("Navigate"), _("First File"), "script-message-to mpvnet playlist-first", "Home"),
|
||||
new (_("Navigate"), _("Last File"), "script-message-to mpvnet playlist-last", "End"),
|
||||
Add(b, new (_("Playback"), _("Play/Pause"), "script-message-to mpvnet play-pause", "Space"));
|
||||
Add(b, new (_("Playback"), _("Stop"), "stop", "Ctrl+s"));
|
||||
|
||||
new (_("Navigate"), "-"),
|
||||
new (_("Navigate"), _("Next Chapter"), "add chapter 1", "PGUP"),
|
||||
new (_("Navigate"), _("Previous Chapter"), "add chapter -1", "PGDWN"),
|
||||
new (_("Navigate"), "-"),
|
||||
new (_("Navigate"), _("Jump To Next Frame"), "frame-step", "."),
|
||||
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")),
|
||||
Add(b, new (_("Navigate"), _("Previous File"), "playlist-prev", "F11"));
|
||||
Add(b, new (_("Navigate"), _("Next File"), "playlist-next", "F12"));
|
||||
Add(b, new (_("Navigate"), "-"));
|
||||
Add(b, new (_("Navigate"), _("First File"), "script-message-to mpvnet playlist-first", "Home"));
|
||||
Add(b, new (_("Navigate"), _("Last File"), "script-message-to mpvnet playlist-last", "End"));
|
||||
|
||||
new (_("Pan & Scan"), _("Decrease Size"), "add video-zoom -0.1", "Ctrl+-"),
|
||||
new (_("Pan & Scan"), _("Increase Size"), "add video-zoom 0.1", "Ctrl++"),
|
||||
new (_("Pan & Scan"), "-"),
|
||||
new (_("Pan & Scan"), _("Move Left"), "add video-pan-x -0.01", "Ctrl+KP4"),
|
||||
new (_("Pan & Scan"), _("Move Right"), "add video-pan-x 0.01", "Ctrl+KP6"),
|
||||
new (_("Pan & Scan"), "-"),
|
||||
new (_("Pan & Scan"), _("Move Up"), "add video-pan-y -0.01", "Ctrl+KP8"),
|
||||
new (_("Pan & Scan"), _("Move Down"), "add video-pan-y 0.01", "Ctrl+KP2"),
|
||||
new (_("Pan & Scan"), "-"),
|
||||
new (_("Pan & Scan"), _("Decrease Height"), "add panscan -0.1", "w"),
|
||||
new (_("Pan & Scan"), _("Increase Height"), "add panscan 0.1", "W"),
|
||||
new (_("Pan & Scan"), "-"),
|
||||
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"), _("Next Chapter"), "add chapter 1", "PGUP"));
|
||||
Add(b, new (_("Navigate"), _("Previous Chapter"), "add chapter -1", "PGDWN"));
|
||||
Add(b, new (_("Navigate"), "-"));
|
||||
Add(b, new (_("Navigate"), _("Jump To Next Frame"), "frame-step", "."));
|
||||
Add(b, new (_("Navigate"), _("Jump To Previous Frame"), "frame-back-step", ","));
|
||||
Add(b, new (_("Navigate"), "-"));
|
||||
Add(b, new (_("Navigate"), _("Jump 5 sec forward"), "seek 5", "Right"));
|
||||
Add(b, new (_("Navigate"), _("Jump 5 sec backward"), "seek -5", "Left"));
|
||||
Add(b, new (_("Navigate"), "-"));
|
||||
Add(b, new (_("Navigate"), _("Jump 30 sec forward"), "seek 30", "Up"));
|
||||
Add(b, new (_("Navigate"), _("Jump 30 sec backward"), "seek -30", "Down"));
|
||||
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"),
|
||||
new (_("Video"), _("Increase Contrast"), "add contrast 1", "Ctrl+2"),
|
||||
new (_("Video"), "-"),
|
||||
new (_("Video"), _("Decrease Brightness"), "add brightness -1", "Ctrl+3"),
|
||||
new (_("Video"), _("Increase Brightness"), "add brightness 1", "Ctrl+4"),
|
||||
new (_("Video"), "-"),
|
||||
new (_("Video"), _("Decrease Gamma"), "add gamma -1", "Ctrl+5"),
|
||||
new (_("Video"), _("Increase Gamma"), "add gamma 1", "Ctrl+6"),
|
||||
new (_("Video"), "-"),
|
||||
new (_("Video"), _("Decrease Saturation"), "add saturation -1", "Ctrl+7"),
|
||||
new (_("Video"), _("Increase Saturation"), "add saturation 1", "Ctrl+8"),
|
||||
new (_("Video"), "-"),
|
||||
new (_("Video"), _("Take Screenshot"), "async screenshot", "s"),
|
||||
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"),
|
||||
Add(b, new (_("Pan & Scan"), _("Decrease Size"), "add video-zoom -0.1", "Ctrl+-"));
|
||||
Add(b, new (_("Pan & Scan"), _("Increase Size"), "add video-zoom 0.1", "Ctrl++"));
|
||||
Add(b, new (_("Pan & Scan"), "-"));
|
||||
Add(b, new (_("Pan & Scan"), _("Move Left"), "add video-pan-x -0.01", "Ctrl+KP4"));
|
||||
Add(b, new (_("Pan & Scan"), _("Move Right"), "add video-pan-x 0.01", "Ctrl+KP6"));
|
||||
Add(b, new (_("Pan & Scan"), "-"));
|
||||
Add(b, new (_("Pan & Scan"), _("Move Up"), "add video-pan-y -0.01", "Ctrl+KP8"));
|
||||
Add(b, new (_("Pan & Scan"), _("Move Down"), "add video-pan-y 0.01", "Ctrl+KP2"));
|
||||
Add(b, new (_("Pan & Scan"), "-"));
|
||||
Add(b, new (_("Pan & Scan"), _("Decrease Height"), "add panscan -0.1", "w"));
|
||||
Add(b, new (_("Pan & Scan"), _("Increase Height"), "add panscan 0.1", "W"));
|
||||
Add(b, new (_("Pan & Scan"), "-"));
|
||||
Add(b, new (_("Pan & Scan"), _("Reset"), "set video-zoom 0; set video-pan-x 0; set video-pan-y 0", "Ctrl+BS"));
|
||||
|
||||
new (_("Audio"), _("Next Track"), "script-message-to mpvnet cycle-audio", "KP7"),
|
||||
new (_("Audio"), "-"),
|
||||
new (_("Audio"), _("Delay +0.1"), "add audio-delay 0.1", "Ctrl+d"),
|
||||
new (_("Audio"), _("Delay -0.1"), "add audio-delay -0.1", "Ctrl+D"),
|
||||
Add(b, new (_("Video"), _("Decrease Contrast"), "add contrast -1", "Ctrl+1"));
|
||||
Add(b, new (_("Video"), _("Increase Contrast"), "add contrast 1", "Ctrl+2"));
|
||||
Add(b, new (_("Video"), "-"));
|
||||
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"));
|
||||
|
||||
new (_("Subtitle"), _("Next Track"), "script-message-to mpvnet cycle-subtitles", "KP8"),
|
||||
new (_("Subtitle"), _("Toggle Visibility"), "cycle sub-visibility", "v"),
|
||||
new (_("Subtitle"), "-"),
|
||||
new (_("Subtitle"), _("Delay -0.1"), "add sub-delay -0.1", "z"),
|
||||
new (_("Subtitle"), _("Delay +0.1"), "add sub-delay 0.1", "Z"),
|
||||
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"),
|
||||
Add(b, new (_("Audio"), _("Audio Device")));
|
||||
Add(b, new (_("Audio"), _("Next Track"), "script-message-to mpvnet cycle-audio", "KP7"));
|
||||
Add(b, new (_("Audio"), "-"));
|
||||
Add(b, new (_("Audio"), _("Delay +0.1"), "add audio-delay 0.1", "Ctrl+d"));
|
||||
Add(b, new (_("Audio"), _("Delay -0.1"), "add audio-delay -0.1", "Ctrl+D"));
|
||||
|
||||
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", "+"),
|
||||
new (_("Volume"), _("Down"), "add volume -2", "-"),
|
||||
new (_("Volume"), "-"),
|
||||
new (_("Volume"), _("Mute"), "cycle mute", "m"),
|
||||
Add(b, new ("", _("Track")));
|
||||
|
||||
new (_("Speed"), _("-10%"), "multiply speed 1/1.1", "["),
|
||||
new (_("Speed"), _("+10%"), "multiply speed 1.1", "]"),
|
||||
new (_("Speed"), "-"),
|
||||
new (_("Speed"), _("Half"), "multiply speed 0.5", "{"),
|
||||
new (_("Speed"), _("Double"), "multiply speed 2.0", "}"),
|
||||
new (_("Speed"), "-"),
|
||||
new (_("Speed"), _("Reset"), "set speed 1", "BS"),
|
||||
Add(b, new (_("Volume"), _p("Volume", "Up"), "add volume 2", "+"));
|
||||
Add(b, new (_("Volume"), _p("Volume", "Down"), "add volume -2", "-"));
|
||||
Add(b, new (_("Volume"), "-"));
|
||||
Add(b, new (_("Volume"), _("Mute"), "cycle mute", "m"));
|
||||
|
||||
new (_("View"), _("Show Playlist"), "script-message-to mpvnet show-playlist", "F8"),
|
||||
new (_("View"), _("Show Profiles"), "script-message-to mpvnet show-profiles", "Ctrl+P"),
|
||||
new (_("View"), _("Toggle Statistics"), "script-binding stats/display-stats-toggle", "t"),
|
||||
new (_("View"), _("Toggle OSC Visibility"), "script-binding osc/visibility", "Del"),
|
||||
new (_("View"), _("Show Media Info On-Screen"), "script-message-to mpvnet show-media-info osd", "i"),
|
||||
new (_("View"), _("Show Media Info Message Box"), "script-message-to mpvnet show-media-info msgbox", "Ctrl+m"),
|
||||
new (_("View"), _("Show Progress"), "show-progress", "p"),
|
||||
new (_("View") + " > " + _("More"), _("Show Console"), "script-binding console/enable", "`"),
|
||||
new (_("View") + " > " + _("More"), _("Show Audio Devices"), "script-message-to mpvnet show-audio-devices"),
|
||||
new (_("View") + " > " + _("More"), _("Show Commands"), "script-message-to mpvnet show-commands", "F2"),
|
||||
new (_("View") + " > " + _("More"), _("Show Bindings"), "script-message-to mpvnet show-bindings"),
|
||||
Add(b, new (_("Speed"), _("-10%"), "multiply speed 1/1.1", "["));
|
||||
Add(b, new (_("Speed"), _("+10%"), "multiply speed 1.1", "]"));
|
||||
Add(b, new (_("Speed"), "-"));
|
||||
Add(b, new (_("Speed"), _("Half"), "multiply speed 0.5", "{"));
|
||||
Add(b, new (_("Speed"), _("Double"), "multiply speed 2.0", "}"));
|
||||
Add(b, new (_("Speed"), "-"));
|
||||
Add(b, new (_("Speed"), _("Reset"), "set speed 1", "BS"));
|
||||
|
||||
new (_("Window"), _("Fullscreen"), "cycle fullscreen", "Enter"),
|
||||
new (_("Window") + " > " + _("Zoom"), _("Enlarge"), "script-message-to mpvnet scale-window 1.2", "Alt++"),
|
||||
new (_("Window") + " > " + _("Zoom"), _("Shrink"), "script-message-to mpvnet scale-window 0.8", "Alt+-"),
|
||||
new (_("Window") + " > " + _("Zoom"), "-"),
|
||||
new (_("Window") + " > " + _("Zoom"), _("50 %"), "script-message-to mpvnet window-scale 0.5", "Alt+0"),
|
||||
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"),
|
||||
Add(b, new (_("View"), _("Playlist"), "script-binding select/select-playlist", "F8"));
|
||||
Add(b, new (_("View"), _("Toggle Statistics"), "script-binding stats/display-stats-toggle", "t"));
|
||||
Add(b, new (_("View"), _("Toggle OSC Visibility"), "script-binding osc/visibility", "Del"));
|
||||
Add(b, new (_("View"), _("Media Info On-Screen"), "script-message-to mpvnet show-media-info osd", "i"));
|
||||
Add(b, new (_("View"), _("Media Info Message Box"), "script-message-to mpvnet show-media-info msgbox", "Ctrl+m"));
|
||||
Add(b, new (_("View"), _("Progress"), "show-progress", "p"));
|
||||
Add(b, new (_("View") + " > " + _("On-Screen Menu"), _("On-Screen Menu"), "script-binding select/menu", "F1"));
|
||||
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", "F2"));
|
||||
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", "Alt+a"));
|
||||
Add(b, new (_("View") + " > " + _("On-Screen Menu"), _("Subtitle Tracks"), "script-binding select/select-sid", "Alt+s"));
|
||||
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"), _("Editions"), "script-binding select/select-edition", "Alt+e"));
|
||||
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"));
|
||||
Add(b, new (_("View") + " > " + _("On-Screen Menu"), _("Watch History"), "script-binding select/select-watch-history", "Alt+h"));
|
||||
Add(b, new (_("View") + " > " + _("On-Screen Menu"), _("Watch Later"), "script-binding select/select-watch-later"));
|
||||
Add(b, new (_("View"), "-"));
|
||||
Add(b, new (_("View") + " > " + _("More"), _("Console"), "script-binding console/enable", "`"));
|
||||
Add(b, new (_("View") + " > " + _("More"), _("Commands"), "script-message-to mpvnet show-commands", "F4"));
|
||||
Add(b, new (_("View") + " > " + _("More"), _("Active Bindings In Text Editor"), "script-message-to mpvnet show-bindings"));
|
||||
Add(b, new (_("View") + " > " + _("More"), _("Active Bindings On-Screen"), "script-binding stats/display-page-4-toggle", "?"));
|
||||
Add(b, new (_("View") + " > " + _("More"), _("Keys"), "script-message-to mpvnet show-keys", "Alt+k"));
|
||||
Add(b, new (_("View") + " > " + _("More"), _("Protocols"), "script-message-to mpvnet show-protocols", "Alt+p"));
|
||||
Add(b, new (_("View") + " > " + _("More"), _("Decoders"), "script-message-to mpvnet show-decoders"));
|
||||
Add(b, new (_("View") + " > " + _("More"), _("Demuxers"), "script-message-to mpvnet show-demuxers"));
|
||||
|
||||
new ("", _("Profile")),
|
||||
|
||||
new (_("Settings"), _("Show Config Editor"), "script-message-to mpvnet show-conf-editor", "Ctrl+,"),
|
||||
new (_("Settings"), _("Show Input Editor"), "script-message-to mpvnet show-input-editor", "Ctrl+i"),
|
||||
new (_("Settings"), "-"),
|
||||
new (_("Settings"), _("Edit mpv.conf"), "script-message-to mpvnet edit-conf-file mpv.conf", "c"),
|
||||
new (_("Settings"), _("Edit input.conf"), "script-message-to mpvnet edit-conf-file input.conf", "k"),
|
||||
new (_("Settings"), "-"),
|
||||
new (_("Settings"), _("Open Config Folder"), "script-message-to mpvnet open-conf-folder", "Ctrl+f"),
|
||||
new (_("Settings") + " > " + _("Setup"), _("Register video file associations"), "script-message-to mpvnet reg-file-assoc video"),
|
||||
new (_("Settings") + " > " + _("Setup"), _("Register audio file associations"), "script-message-to mpvnet reg-file-assoc audio"),
|
||||
new (_("Settings") + " > " + _("Setup"), _("Register image file associations"), "script-message-to mpvnet reg-file-assoc image"),
|
||||
new (_("Settings") + " > " + _("Setup"), _("Unregister file associations"), "script-message-to mpvnet reg-file-assoc unreg"),
|
||||
new (_("Settings") + " > " + _("Setup"), _("Add mpv.net to Path environment variable"), "script-message-to mpvnet add-to-path"),
|
||||
|
||||
new (_("Tools"), _("Set/clear A-B loop points"), "ab-loop", "l"),
|
||||
new (_("Tools"), _("Toggle infinite file looping"), "cycle-values loop-file inf no", "L"),
|
||||
new (_("Tools"), _("Shuffle Playlist"), "playlist-shuffle"),
|
||||
new (_("Tools"), _("Toggle Hardware Decoding"), "cycle-values hwdec auto no", "Ctrl+h"),
|
||||
new (_("Tools"), _("Exit Watch Later"), "quit-watch-later", "Q"),
|
||||
|
||||
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"),
|
||||
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"),
|
||||
Add(b, new ("", _("Profile")));
|
||||
|
||||
new ("", "", "quit", "q", _("Exit")),
|
||||
new ("", "", "script-message-to mpvnet show-menu", "MBTN_Right", _("Show Menu")),
|
||||
new ("", "", "script-message-to mpvnet play-pause", "Play", _("Play/Pause")),
|
||||
new ("", "", "script-message-to mpvnet play-pause", "Pause", _("Play/Pause")),
|
||||
new ("", "", "script-message-to mpvnet play-pause", "PlayPause", _("Play/Pause")),
|
||||
new ("", "", "script-message-to mpvnet play-pause", "MBTN_Mid", _("Play/Pause")),
|
||||
new ("", "", "stop", "Stop", _("Stop")),
|
||||
new ("", "", "seek 60", "Forward", _("Forward")),
|
||||
new ("", "", "seek -60", "Rewind", _("Backward")),
|
||||
new ("", "", "add volume 2", "Wheel_Up", _("Volume Up")),
|
||||
new ("", "", "add volume -2", "Wheel_Down", _("Volume Down")),
|
||||
new ("", "", "add volume 2", "Wheel_Right", _("Volume Up")),
|
||||
new ("", "", "add volume -2", "Wheel_Left", _("Volume Down")),
|
||||
new ("", "", "playlist-prev", "Prev", _("Previous File")),
|
||||
new ("", "", "playlist-next", "Next", _("Next File")),
|
||||
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 ("", "", "quit", "Power", _("Exit")),
|
||||
Add(b, new (_("Config"), _("Show Config Editor"), "script-message-to mpvnet show-conf-editor", "Ctrl+,"));
|
||||
Add(b, new (_("Config"), _("Show Input Editor"), "script-message-to mpvnet show-input-editor", "Ctrl+i"));
|
||||
Add(b, new (_("Config"), "-"));
|
||||
Add(b, new (_("Config"), _("Edit mpv.conf"), "script-message-to mpvnet edit-conf-file mpv.conf", "c"));
|
||||
Add(b, new (_("Config"), _("Edit input.conf"), "script-message-to mpvnet edit-conf-file input.conf", "k"));
|
||||
Add(b, new (_("Config"), "-"));
|
||||
Add(b, new (_("Config"), _("Open Config Folder"), "script-message-to mpvnet open-conf-folder", "Ctrl+f"));
|
||||
Add(b, new (_("Config") + " > " + _("Setup"), _("Register video file associations"), "script-message-to mpvnet reg-file-assoc video"));
|
||||
Add(b, new (_("Config") + " > " + _("Setup"), _("Register audio file associations"), "script-message-to mpvnet reg-file-assoc audio"));
|
||||
Add(b, new (_("Config") + " > " + _("Setup"), _("Register image file associations"), "script-message-to mpvnet reg-file-assoc image"));
|
||||
Add(b, new (_("Config") + " > " + _("Setup"), _("Unregister file associations"), "script-message-to mpvnet reg-file-assoc unreg"));
|
||||
Add(b, new (_("Config") + " > " + _("Setup"), "-"));
|
||||
Add(b, new (_("Config") + " > " + _("Setup"), _("Add mpv.net to Path environment variable"), "script-message-to mpvnet add-to-path"));
|
||||
Add(b, new (_("Config") + " > " + _("Setup"), _("Remove mpv.net from Path environment variable"), "script-message-to mpvnet remove-from-path"));
|
||||
|
||||
//new (_("Command Palette"), _("Commands"), "script-message-to mpvnet show-command-palette", "F1"),
|
||||
};
|
||||
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"));
|
||||
|
||||
return bindings;
|
||||
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 button")));
|
||||
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")));
|
||||
Add(b, new ("", "", "script-binding select/select-playlist", "g-p", _("Playlist")));
|
||||
Add(b, new ("", "", "script-binding select/select-sid", "g-s", _("Subtitles")));
|
||||
Add(b, new ("", "", "script-binding select/select-secondary-sid", "g-S", _("Secondary Subtitles")));
|
||||
Add(b, new ("", "", "script-binding select/select-aid", "g-a", _("Audio Tracks")));
|
||||
Add(b, new ("", "", "script-binding select/select-vid", "g-v", _("Video Tracks")));
|
||||
Add(b, new ("", "", "script-binding select/select-track", "g-t", _("Tracks")));
|
||||
Add(b, new ("", "", "script-binding select/select-chapter", "g-c", _("Chapters")));
|
||||
Add(b, new ("", "", "script-binding select/select-edition", "g-e", _("Editions")));
|
||||
Add(b, new ("", "", "script-binding select/select-subtitle-line", "g-l", _("Subtitle Lines")));
|
||||
Add(b, new ("", "", "script-binding select/select-audio-device", "g-d", _("Audio Devices")));
|
||||
Add(b, new ("", "", "script-binding select/select-watch-history", "g-h", _("Watch History")));
|
||||
Add(b, new ("", "", "script-binding select/select-watch-later", "g-w", _("Watch Later")));
|
||||
Add(b, new ("", "", "script-binding select/select-binding", "g-b", _("Bindings")));
|
||||
Add(b, new ("", "", "script-binding select/show-properties", "g-r", _("Properties")));
|
||||
Add(b, new ("", "", "script-binding select/menu", "g-m", _("On-Screen Menu")));
|
||||
Add(b, new ("", "", "script-binding select/menu", "MENU", _("On-Screen Menu")));
|
||||
Add(b, new ("", "", "script-binding select/menu", "Ctrl+p", _("On-Screen Menu")));
|
||||
|
||||
return b;
|
||||
|
||||
static void Add(List<Binding> bindings, Binding b) => bindings.Add(b);
|
||||
}
|
||||
|
||||
public static string ConvertToString(List<Binding> bindings)
|
||||
@@ -327,7 +363,7 @@ public static class InputHelp
|
||||
if (binding.Input.Contains("alt+"))
|
||||
binding.Input = binding.Input.Replace("alt+", "Alt+");
|
||||
|
||||
line = line[(line.IndexOf(" ") + 1)..];
|
||||
line = line[(line.IndexOf(' ') + 1)..];
|
||||
|
||||
if (line.Contains(App.MenuSyntax))
|
||||
{
|
||||
@@ -343,8 +379,8 @@ public static class InputHelp
|
||||
}
|
||||
else if (line.Contains('#'))
|
||||
{
|
||||
binding.Comment = line[(line.IndexOf("#") + 1)..].Trim();
|
||||
line = line[..line.IndexOf("#")];
|
||||
binding.Comment = line[(line.IndexOf('#') + 1)..].Trim();
|
||||
line = line[..line.IndexOf('#')];
|
||||
}
|
||||
|
||||
binding.Command = line.Trim();
|
||||
@@ -408,57 +444,9 @@ public static class InputHelp
|
||||
return defaults;
|
||||
}
|
||||
|
||||
// only used by dead command palette
|
||||
public static List<Binding> GetBindingsFromContent(string content)
|
||||
{
|
||||
var bindings = new List<Binding>();
|
||||
|
||||
if (!string.IsNullOrEmpty(content))
|
||||
{
|
||||
foreach (string line in content.Split('\r', '\n'))
|
||||
{
|
||||
string value = line.Trim();
|
||||
|
||||
if (value.StartsWith("#"))
|
||||
continue;
|
||||
|
||||
if (!value.Contains(' '))
|
||||
continue;
|
||||
|
||||
Binding binding = new Binding();
|
||||
binding.Input = value[..value.IndexOf(" ")];
|
||||
|
||||
if (binding.Input == "_")
|
||||
binding.Input = "";
|
||||
|
||||
value = value[(value.IndexOf(" ") + 1)..];
|
||||
|
||||
if (value.Contains(App.MenuSyntax))
|
||||
{
|
||||
binding.Comment = value[(value.IndexOf(App.MenuSyntax) + App.MenuSyntax.Length)..].Trim();
|
||||
value = value[..value.IndexOf(App.MenuSyntax)];
|
||||
|
||||
if (binding.Comment.Contains(';'))
|
||||
binding.Comment = binding.Comment[(binding.Comment.IndexOf(";") + 1)..].Trim();
|
||||
}
|
||||
|
||||
binding.Command = value.Trim();
|
||||
|
||||
if (binding.Command == "")
|
||||
continue;
|
||||
|
||||
if (binding.Command.ToLower() == "ignore")
|
||||
binding.Command = "";
|
||||
|
||||
bindings.Add(binding);
|
||||
}
|
||||
}
|
||||
return bindings;
|
||||
}
|
||||
|
||||
public static Dictionary<string, Binding> GetActiveBindings(List<Binding> bindings)
|
||||
{
|
||||
Dictionary<string, Binding> ret = new();
|
||||
Dictionary<string, Binding> ret = [];
|
||||
|
||||
foreach (Binding binding in bindings)
|
||||
{
|
||||
@@ -483,7 +471,7 @@ public static class InputHelp
|
||||
|
||||
Binding binding = it.Value;
|
||||
|
||||
if (!keys.Contains(binding.Input) && (charCount + binding.Input.Length) < 20 && keys.Count < 2)
|
||||
if (!keys.Contains(binding.Input) && (charCount + binding.Input.Length) < 30)
|
||||
{
|
||||
keys.Add(binding.Input);
|
||||
charCount += binding.Input.Length;
|
||||
|
||||
@@ -1,13 +1,4 @@
|
||||
|
||||
using CommunityToolkit.Mvvm.Messaging.Messages;
|
||||
|
||||
namespace MpvNet.MVVM;
|
||||
|
||||
public class MainWindowIsLoadedMessage { }
|
||||
|
||||
//public class ScaleWindowMessage : ValueChangedMessage<float>
|
||||
//{
|
||||
// public ScaleWindowMessage(float value) : base(value)
|
||||
// {
|
||||
// }
|
||||
//}
|
||||
|
||||
@@ -21,11 +21,11 @@ public class MpvClient
|
||||
public event Action? Seek; // seek MPV_EVENT_SEEK
|
||||
public event Action? PlaybackRestart; // playback-restart MPV_EVENT_PLAYBACK_RESTART
|
||||
|
||||
public Dictionary<string, List<Action>> PropChangeActions { get; set; } = new Dictionary<string, List<Action>>();
|
||||
public Dictionary<string, List<Action<int>>> IntPropChangeActions { get; set; } = new Dictionary<string, List<Action<int>>>();
|
||||
public Dictionary<string, List<Action<bool>>> BoolPropChangeActions { get; set; } = new Dictionary<string, List<Action<bool>>>();
|
||||
public Dictionary<string, List<Action<double>>> DoublePropChangeActions { get; set; } = new Dictionary<string, List<Action<double>>>();
|
||||
public Dictionary<string, List<Action<string>>> StringPropChangeActions { get; set; } = new Dictionary<string, List<Action<string>>>();
|
||||
public Dictionary<string, List<Action>> PropChangeActions { get; set; } = [];
|
||||
public Dictionary<string, List<Action<int>>> IntPropChangeActions { get; set; } = [];
|
||||
public Dictionary<string, List<Action<bool>>> BoolPropChangeActions { get; set; } = [];
|
||||
public Dictionary<string, List<Action<double>>> DoublePropChangeActions { get; set; } = [];
|
||||
public Dictionary<string, List<Action<string>>> StringPropChangeActions { get; set; } = [];
|
||||
|
||||
public nint Handle { get; set; }
|
||||
|
||||
@@ -132,46 +132,72 @@ public class MpvClient
|
||||
else if (data.format == mpv_format.MPV_FORMAT_STRING)
|
||||
{
|
||||
lock (StringPropChangeActions)
|
||||
{
|
||||
foreach (var pair in StringPropChangeActions)
|
||||
{
|
||||
if (pair.Key == data.name)
|
||||
{
|
||||
string value = ConvertFromUtf8(Marshal.PtrToStructure<IntPtr>(data.data));
|
||||
|
||||
foreach (var action in pair.Value)
|
||||
{
|
||||
action.Invoke(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (data.format == mpv_format.MPV_FORMAT_INT64)
|
||||
{
|
||||
lock (IntPropChangeActions)
|
||||
{
|
||||
foreach (var pair in IntPropChangeActions)
|
||||
{
|
||||
if (pair.Key == data.name)
|
||||
{
|
||||
int value = Marshal.PtrToStructure<int>(data.data);
|
||||
|
||||
foreach (var action in pair.Value)
|
||||
{
|
||||
action.Invoke(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (data.format == mpv_format.MPV_FORMAT_NONE)
|
||||
{
|
||||
lock (PropChangeActions)
|
||||
{
|
||||
foreach (var pair in PropChangeActions)
|
||||
{
|
||||
if (pair.Key == data.name)
|
||||
{
|
||||
foreach (var action in pair.Value)
|
||||
{
|
||||
action.Invoke();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (data.format == mpv_format.MPV_FORMAT_DOUBLE)
|
||||
{
|
||||
lock (DoublePropChangeActions)
|
||||
{
|
||||
foreach (var pair in DoublePropChangeActions)
|
||||
{
|
||||
if (pair.Key == data.name)
|
||||
{
|
||||
double value = Marshal.PtrToStructure<double>(data.data);
|
||||
|
||||
foreach (var action in pair.Value)
|
||||
{
|
||||
action.Invoke(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -247,7 +273,9 @@ public class MpvClient
|
||||
mpv_error err = mpv_command_ret(Handle, rootPtr, resultNodePtr);
|
||||
|
||||
foreach (IntPtr ptr in pointers)
|
||||
{
|
||||
Marshal.FreeHGlobal(ptr);
|
||||
}
|
||||
|
||||
Marshal.FreeHGlobal(rootPtr);
|
||||
|
||||
@@ -346,6 +374,9 @@ public class MpvClient
|
||||
|
||||
public string GetPropertyString(string name)
|
||||
{
|
||||
if (Handle == IntPtr.Zero)
|
||||
return "";
|
||||
|
||||
mpv_error err = mpv_get_property(Handle, GetUtf8Bytes(name),
|
||||
mpv_format.MPV_FORMAT_STRING, out IntPtr lpBuffer);
|
||||
|
||||
@@ -364,6 +395,12 @@ public class MpvClient
|
||||
|
||||
public void SetPropertyString(string name, string value)
|
||||
{
|
||||
if (Handle == IntPtr.Zero)
|
||||
{
|
||||
Terminal.WriteError($"error setting property: {name} = {value}");
|
||||
return;
|
||||
}
|
||||
|
||||
byte[] bytes = GetUtf8Bytes(value);
|
||||
mpv_error err = mpv_set_property(Handle, GetUtf8Bytes(name), mpv_format.MPV_FORMAT_STRING, ref bytes);
|
||||
|
||||
@@ -400,7 +437,7 @@ public class MpvClient
|
||||
if (err < 0)
|
||||
HandleError(err, "error observing property: " + name);
|
||||
else
|
||||
IntPropChangeActions[name] = new List<Action<int>>();
|
||||
IntPropChangeActions[name] = [];
|
||||
}
|
||||
|
||||
if (IntPropChangeActions.ContainsKey(name))
|
||||
@@ -419,7 +456,7 @@ public class MpvClient
|
||||
if (err < 0)
|
||||
HandleError(err, "error observing property: " + name);
|
||||
else
|
||||
DoublePropChangeActions[name] = new List<Action<double>>();
|
||||
DoublePropChangeActions[name] = [];
|
||||
}
|
||||
|
||||
if (DoublePropChangeActions.ContainsKey(name))
|
||||
@@ -438,7 +475,7 @@ public class MpvClient
|
||||
if (err < 0)
|
||||
HandleError(err, "error observing property: " + name);
|
||||
else
|
||||
BoolPropChangeActions[name] = new List<Action<bool>>();
|
||||
BoolPropChangeActions[name] = [];
|
||||
}
|
||||
|
||||
if (BoolPropChangeActions.ContainsKey(name))
|
||||
@@ -457,7 +494,7 @@ public class MpvClient
|
||||
if (err < 0)
|
||||
HandleError(err, "error observing property: " + name);
|
||||
else
|
||||
StringPropChangeActions[name] = new List<Action<string>>();
|
||||
StringPropChangeActions[name] = [];
|
||||
}
|
||||
|
||||
if (StringPropChangeActions.ContainsKey(name))
|
||||
@@ -476,7 +513,7 @@ public class MpvClient
|
||||
if (err < 0)
|
||||
HandleError(err, "error observing property: " + name);
|
||||
else
|
||||
PropChangeActions[name] = new List<Action>();
|
||||
PropChangeActions[name] = [];
|
||||
}
|
||||
|
||||
if (PropChangeActions.ContainsKey(name))
|
||||
|
||||
@@ -1,29 +1,25 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net10.0</TargetFramework>
|
||||
<AssemblyName>libmpvnet</AssemblyName>
|
||||
<Product>mpv.net</Product>
|
||||
<Nullable>enable</Nullable>
|
||||
<RootNamespace>MpvNet</RootNamespace>
|
||||
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
|
||||
</PropertyGroup>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Include="..\..\docs\changelog.md" Link="Docs\changelog.md" />
|
||||
<None Include="..\..\docs\manual.md" Link="Docs\manual.md" />
|
||||
<None Include="..\..\README.md" Link="Docs\README.md" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\..\docs\changelog.md" Link="Docs\changelog.md" />
|
||||
<None Include="..\..\docs\manual.md" Link="Docs\manual.md" />
|
||||
<None Include="..\..\README.md" Link="Docs\README.md" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="Extension\" />
|
||||
<Folder Include="Input\" />
|
||||
<Folder Include="Docs\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="Docs\" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.2.2" />
|
||||
<PackageReference Include="NGettext" Version="0.6.7" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="CommunityToolkit.Mvvm" />
|
||||
<PackageReference Include="NGettext" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
@@ -8,7 +8,7 @@ using System.Text.Json;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading;
|
||||
|
||||
using MpvNet.ExtensionMethod;
|
||||
using MpvNet.Extensions;
|
||||
using MpvNet.Help;
|
||||
using MpvNet.Native;
|
||||
|
||||
@@ -59,22 +59,26 @@ public class MainPlayer : MpvClient
|
||||
public TimeSpan Duration;
|
||||
public List<MpvClient> Clients { get; } = new List<MpvClient>();
|
||||
|
||||
List<StringPair>? _audioDevices;
|
||||
|
||||
public event Action? Initialized;
|
||||
public event Action? Pause;
|
||||
public event Action<int>? PlaylistPosChanged;
|
||||
public event Action<Size>? VideoSizeChanged;
|
||||
|
||||
public void Init(IntPtr formHandle, bool processCommandLineArguments = true)
|
||||
public void Init(IntPtr formHandle, bool processCommandLine)
|
||||
{
|
||||
App.ApplyShowMenuFix();
|
||||
|
||||
MainHandle = mpv_create();
|
||||
Handle = MainHandle;
|
||||
|
||||
var events = Enum.GetValues(typeof(mpv_event_id)).Cast<mpv_event_id>();
|
||||
var events = Enum.GetValues<mpv_event_id>().Cast<mpv_event_id>();
|
||||
|
||||
foreach (mpv_event_id i in events)
|
||||
{
|
||||
mpv_request_event(MainHandle, i, 0);
|
||||
}
|
||||
|
||||
mpv_request_log_messages(MainHandle, "no");
|
||||
|
||||
@@ -91,17 +95,23 @@ public class MainPlayer : MpvClient
|
||||
}
|
||||
|
||||
if (formHandle != IntPtr.Zero)
|
||||
{
|
||||
SetPropertyString("force-window", "yes");
|
||||
SetPropertyLong("wid", formHandle.ToInt64());
|
||||
}
|
||||
|
||||
SetPropertyInt("osd-duration", 2000);
|
||||
|
||||
SetPropertyBool("input-default-bindings", true);
|
||||
SetPropertyBool("input-builtin-bindings", false);
|
||||
SetPropertyBool("input-media-keys", true);
|
||||
|
||||
SetPropertyString("autocreate-playlist", "filter");
|
||||
SetPropertyString("media-controls", "yes");
|
||||
SetPropertyString("idle", "yes");
|
||||
SetPropertyString("screenshot-directory", "~~desktop/");
|
||||
SetPropertyString("osd-playing-msg", "${media-title}");
|
||||
SetPropertyString("osc", "yes");
|
||||
SetPropertyString("force-window", "yes");
|
||||
SetPropertyString("config-dir", ConfigFolder);
|
||||
SetPropertyString("config", "yes");
|
||||
|
||||
@@ -110,14 +120,14 @@ public class MainPlayer : MpvClient
|
||||
if (!string.IsNullOrEmpty(UsedInputConfContent))
|
||||
SetPropertyString("input-conf", @"memory://" + UsedInputConfContent);
|
||||
|
||||
if (processCommandLineArguments)
|
||||
ProcessCommandLineArgs();
|
||||
if (processCommandLine)
|
||||
CommandLine.ProcessCommandLineArgsPreInit();
|
||||
|
||||
if (CommandLine.Contains("config-dir"))
|
||||
{
|
||||
string configDir = CommandLine.GetValue("config-dir");
|
||||
string fullPath = System.IO.Path.GetFullPath(configDir);
|
||||
App.InputConf.Path = fullPath.AddSep() + "input.conf";
|
||||
App.InputConf.Path = fullPath.Separator + "input.conf";
|
||||
string content = App.InputConf.GetContent();
|
||||
|
||||
if (!string.IsNullOrEmpty(content))
|
||||
@@ -186,7 +196,9 @@ public class MainPlayer : MpvClient
|
||||
mpv_destroy(Handle);
|
||||
|
||||
foreach (var client in Clients)
|
||||
{
|
||||
mpv_destroy(client.Handle);
|
||||
}
|
||||
}
|
||||
|
||||
public void ProcessProperty(string? name, string? value)
|
||||
@@ -238,7 +250,7 @@ public class MainPlayer : MpvClient
|
||||
string? mpvnet_home = Environment.GetEnvironmentVariable("MPVNET_HOME");
|
||||
|
||||
if (Directory.Exists(mpvnet_home))
|
||||
return _configFolder = mpvnet_home.AddSep();
|
||||
return _configFolder = mpvnet_home.Separator;
|
||||
|
||||
_configFolder = Folder.Startup + "portable_config";
|
||||
|
||||
@@ -246,28 +258,17 @@ public class MainPlayer : MpvClient
|
||||
_configFolder = Folder.AppData + "mpv.net";
|
||||
|
||||
if (!Directory.Exists(_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) {}
|
||||
Directory.CreateDirectory(_configFolder);
|
||||
|
||||
if (!Directory.Exists(_configFolder))
|
||||
Directory.CreateDirectory(_configFolder);
|
||||
}
|
||||
|
||||
_configFolder = _configFolder.AddSep();
|
||||
_configFolder = _configFolder.Separator;
|
||||
}
|
||||
|
||||
return _configFolder;
|
||||
}
|
||||
}
|
||||
|
||||
private readonly Regex ConfRegex = new Regex("^[\\w-]+$", RegexOptions.Compiled);
|
||||
|
||||
Dictionary<string, string>? _Conf;
|
||||
|
||||
public Dictionary<string, string> Conf {
|
||||
@@ -278,7 +279,7 @@ public class MainPlayer : MpvClient
|
||||
|
||||
App.ApplyInputDefaultBindingsFix();
|
||||
|
||||
_Conf = new Dictionary<string, string>();
|
||||
_Conf = [];
|
||||
|
||||
if (File.Exists(ConfPath))
|
||||
{
|
||||
@@ -286,12 +287,12 @@ public class MainPlayer : MpvClient
|
||||
{
|
||||
string line = it.TrimStart(' ', '-').TrimEnd();
|
||||
|
||||
if (line.StartsWith("#"))
|
||||
if (line.StartsWith('#'))
|
||||
continue;
|
||||
|
||||
if (!line.Contains('='))
|
||||
{
|
||||
if (Regex.Match(line, "^[\\w-]+$").Success)
|
||||
if (ConfRegex.Match(line).Success)
|
||||
line += "=yes";
|
||||
else
|
||||
continue;
|
||||
@@ -310,7 +311,9 @@ public class MainPlayer : MpvClient
|
||||
}
|
||||
|
||||
foreach (var i in _Conf)
|
||||
{
|
||||
ProcessProperty(i.Key, i.Value);
|
||||
}
|
||||
|
||||
return _Conf;
|
||||
}
|
||||
@@ -336,7 +339,9 @@ public class MainPlayer : MpvClient
|
||||
public void MainEventLoop()
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
mpv_wait_event(MainHandle, -1);
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnShutdown()
|
||||
@@ -387,9 +392,6 @@ public class MainPlayer : MpvClient
|
||||
if (App.StartSize == "video")
|
||||
WasInitialSizeSet = false;
|
||||
|
||||
if (!FileTypes.Video.Contains(Path.Ext()) || FileTypes.Audio.Contains(Path.Ext()))
|
||||
UpdateVideoSize("width", "height");
|
||||
|
||||
TaskHelp.Run(UpdateTracks);
|
||||
|
||||
base.OnFileLoaded();
|
||||
@@ -415,67 +417,6 @@ public class MainPlayer : MpvClient
|
||||
|
||||
public void SetBluRayTitle(int id) => LoadFiles(new[] { @"bd://" + id }, false, false);
|
||||
|
||||
public void ProcessCommandLineArgs()
|
||||
{
|
||||
foreach (var pair in CommandLine.Arguments)
|
||||
{
|
||||
if (pair.Name.EndsWith("-add") ||
|
||||
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;
|
||||
|
||||
ProcessProperty(pair.Name, pair.Value);
|
||||
|
||||
if (!App.ProcessProperty(pair.Name, pair.Value))
|
||||
SetPropertyString(pair.Name, pair.Value);
|
||||
}
|
||||
}
|
||||
|
||||
public void ProcessCommandLineArgsPost()
|
||||
{
|
||||
foreach (var pair in CommandLine.Arguments)
|
||||
{
|
||||
if (pair.Name.EndsWith("-add"))
|
||||
CommandV("change-list", pair.Name[..^4], "add", pair.Value);
|
||||
else if (pair.Name.EndsWith("-set"))
|
||||
CommandV("change-list", pair.Name[..^4], "set", pair.Value);
|
||||
else if (pair.Name.EndsWith("-append"))
|
||||
CommandV("change-list", pair.Name[..^7], "append", pair.Value);
|
||||
else if (pair.Name.EndsWith("-pre"))
|
||||
CommandV("change-list", pair.Name[..^4], "pre", pair.Value);
|
||||
else if (pair.Name.EndsWith("-clr"))
|
||||
CommandV("change-list", pair.Name[..^4], "clr", "");
|
||||
else if (pair.Name.EndsWith("-remove"))
|
||||
CommandV("change-list", pair.Name[..^7], "remove", pair.Value);
|
||||
else if (pair.Name.EndsWith("-toggle"))
|
||||
CommandV("change-list", pair.Name[..^7], "toggle", pair.Value);
|
||||
}
|
||||
}
|
||||
|
||||
public void ProcessCommandLineFiles()
|
||||
{
|
||||
List<string> files = new List<string>();
|
||||
|
||||
foreach (string arg in Environment.GetCommandLineArgs().Skip(1))
|
||||
if (!arg.StartsWith("--") && (arg == "-" || arg.Contains("://") ||
|
||||
arg.Contains(":\\") || arg.StartsWith("\\\\") || File.Exists(arg)))
|
||||
|
||||
files.Add(arg);
|
||||
|
||||
LoadFiles(files.ToArray(), !App.Queue, App.Queue);
|
||||
|
||||
if (App.CommandLine.Contains("--shuffle"))
|
||||
{
|
||||
Command("playlist-shuffle");
|
||||
SetPropertyInt("playlist-pos", 0);
|
||||
}
|
||||
}
|
||||
|
||||
public DateTime LastLoad;
|
||||
|
||||
public void LoadFiles(string[]? files, bool loadFolder, bool append)
|
||||
@@ -500,7 +441,7 @@ public class MainPlayer : MpvClient
|
||||
|
||||
file = ConvertFilePath(file);
|
||||
|
||||
string ext = file.Ext();
|
||||
string ext = file.Ext;
|
||||
|
||||
if (OperatingSystem.IsWindows())
|
||||
{
|
||||
@@ -512,17 +453,9 @@ public class MainPlayer : MpvClient
|
||||
}
|
||||
|
||||
if (ext == "iso")
|
||||
LoadBluRayISO(file);
|
||||
LoadISO(file);
|
||||
else if(FileTypes.Subtitle.Contains(ext))
|
||||
CommandV("sub-add", file);
|
||||
else if (!FileTypes.IsMedia(ext) && !file.Contains("://") && Directory.Exists(file) &&
|
||||
File.Exists(System.IO.Path.Combine(file, "BDMV\\index.bdmv")))
|
||||
{
|
||||
Command("stop");
|
||||
Thread.Sleep(500);
|
||||
SetPropertyString("bluray-device", file);
|
||||
CommandV("loadfile", @"bd://");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (i == 0 && !append)
|
||||
@@ -547,12 +480,24 @@ public class MainPlayer : MpvClient
|
||||
return path;
|
||||
}
|
||||
|
||||
public void LoadBluRayISO(string path)
|
||||
public void LoadISO(string path)
|
||||
{
|
||||
Command("stop");
|
||||
Thread.Sleep(500);
|
||||
SetPropertyString("bluray-device", path);
|
||||
LoadFiles(new[] { @"bd://" }, false, false);
|
||||
using var mi = new MediaInfo(path);
|
||||
|
||||
if (mi.GetGeneral("Format") == "ISO 9660 / DVD Video")
|
||||
{
|
||||
Command("stop");
|
||||
Thread.Sleep(500);
|
||||
SetPropertyString("dvd-device", path);
|
||||
LoadFiles([@"dvd://"], false, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
Command("stop");
|
||||
Thread.Sleep(500);
|
||||
SetPropertyString("bluray-device", path);
|
||||
LoadFiles([@"bd://"], false, false);
|
||||
}
|
||||
}
|
||||
|
||||
public void LoadDiskFolder(string path)
|
||||
@@ -563,12 +508,12 @@ public class MainPlayer : MpvClient
|
||||
if (Directory.Exists(path + "\\BDMV"))
|
||||
{
|
||||
SetPropertyString("bluray-device", path);
|
||||
LoadFiles(new[] { @"bd://" }, false, false);
|
||||
LoadFiles([@"bd://"], false, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
SetPropertyString("dvd-device", path);
|
||||
LoadFiles(new[] { @"dvd://" }, false, false);
|
||||
LoadFiles([@"dvd://"], false, false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -597,7 +542,7 @@ public class MainPlayer : MpvClient
|
||||
dir = System.IO.Path.GetDirectoryName(path)!;
|
||||
|
||||
List<string> files = FileTypes.GetMediaFiles(Directory.GetFiles(dir)).ToList();
|
||||
|
||||
|
||||
if (OperatingSystem.IsWindows())
|
||||
files.Sort(new StringLogicalComparer());
|
||||
|
||||
@@ -666,8 +611,10 @@ public class MainPlayer : MpvClient
|
||||
static string GetNativeLanguage(string name)
|
||||
{
|
||||
foreach (CultureInfo ci in CultureInfo.GetCultures(CultureTypes.NeutralCultures))
|
||||
{
|
||||
if (ci.EnglishName == name)
|
||||
return ci.NativeName;
|
||||
}
|
||||
|
||||
return name;
|
||||
}
|
||||
@@ -689,6 +636,26 @@ public class MainPlayer : MpvClient
|
||||
}
|
||||
}
|
||||
|
||||
public List<StringPair> AudioDevices {
|
||||
get {
|
||||
if (_audioDevices != null)
|
||||
return _audioDevices;
|
||||
|
||||
_audioDevices = [];
|
||||
string json = GetPropertyString("audio-device-list");
|
||||
var enumerator = JsonDocument.Parse(json).RootElement.EnumerateArray();
|
||||
|
||||
foreach (var element in enumerator)
|
||||
{
|
||||
string name = element.GetProperty("name").GetString()!;
|
||||
string description = element.GetProperty("description").GetString()!;
|
||||
_audioDevices.Add(new StringPair(name, description));
|
||||
}
|
||||
|
||||
return _audioDevices;
|
||||
}
|
||||
}
|
||||
|
||||
public List<Chapter> GetChapters() {
|
||||
List<Chapter> chapters = new List<Chapter>();
|
||||
int count = GetPropertyInt("chapter-list/count");
|
||||
@@ -725,6 +692,8 @@ public class MainPlayer : MpvClient
|
||||
}
|
||||
}
|
||||
|
||||
private readonly Regex TitleRegex = new Regex(@"^[\._\-]", RegexOptions.Compiled);
|
||||
|
||||
public List<MediaTrack> GetTracks(bool includeInternal = true, bool includeExternal = true)
|
||||
{
|
||||
List<MediaTrack> tracks = new List<MediaTrack>();
|
||||
@@ -742,7 +711,7 @@ public class MainPlayer : MpvClient
|
||||
string filename = GetPropertyString($"filename/no-ext");
|
||||
string title = GetPropertyString($"track-list/{i}/title").Replace(filename, "");
|
||||
|
||||
title = Regex.Replace(title, @"^[\._\-]", "");
|
||||
title = TitleRegex.Replace(title, "");
|
||||
|
||||
if (type == "video")
|
||||
{
|
||||
@@ -1088,7 +1057,7 @@ public class MainPlayer : MpvClient
|
||||
if (_profileNames != null)
|
||||
return _profileNames;
|
||||
|
||||
string[] ignore = { "builtin-pseudo-gui", "encoding", "libmpv", "pseudo-gui", "default" };
|
||||
string[] ignore = ["builtin-pseudo-gui", "encoding", "libmpv", "pseudo-gui", "default"];
|
||||
string json = GetPropertyString("profile-list");
|
||||
return _profileNames = JsonDocument.Parse(json).RootElement.EnumerateArray()
|
||||
.Select(it => it.GetProperty("name").GetString())
|
||||
|
||||
@@ -11,11 +11,13 @@ public class AppSettings
|
||||
{
|
||||
public bool InputDefaultBindingsFixApplied;
|
||||
public bool ShowMenuFixApplied;
|
||||
public int MenuUpdateVersion;
|
||||
public int Volume = 70;
|
||||
public List<string> RecentFiles = new List<string>();
|
||||
public Point WindowLocation;
|
||||
public Point WindowPosition;
|
||||
public Size WindowSize;
|
||||
public string AudioDevice = "";
|
||||
public string ConfigEditorSearch = "Video:";
|
||||
public string Mute = "no";
|
||||
public string StartupFolder = "";
|
||||
|
||||
@@ -9,4 +9,5 @@ public class Translator
|
||||
public interface ITranslator
|
||||
{
|
||||
public string Gettext(string msgId);
|
||||
public string GetParticularString(string context, string text);
|
||||
}
|
||||
|
||||
@@ -1,16 +1,15 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net6.0-windows</TargetFramework>
|
||||
<UseWPF>true</UseWPF>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net10.0-windows7.0</TargetFramework>
|
||||
<UseWPF>true</UseWPF>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Xaml.Behaviors.Wpf" Version="1.1.77" />
|
||||
<PackageReference Include="NGettext" Version="0.6.7" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Xaml.Behaviors.Wpf" />
|
||||
<PackageReference Include="NGettext" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
@@ -12,7 +12,7 @@ AppPublisher=Frank Skare (stax76)
|
||||
ArchitecturesInstallIn64BitMode=x64
|
||||
Compression=lzma2
|
||||
DefaultDirName={autopf}\{#MyAppName}
|
||||
OutputBaseFilename=mpv.net-v{#MyAppVersion}-setup
|
||||
OutputBaseFilename=mpv.net-v{#MyAppVersion}-setup-x64
|
||||
OutputDir=E:\Desktop
|
||||
DefaultGroupName={#MyAppName}
|
||||
SetupIconFile=..\..\MpvNet.Windows\mpv-icon.ico
|
||||
@@ -25,4 +25,4 @@ Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
|
||||
|
||||
[Files]
|
||||
Source: "{#MyAppSourceDir}\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "{#MyAppSourceDir}\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs;
|
||||
Source: "{#MyAppSourceDir}\*"; DestDir: "{app}"; Excludes: "win-x64,win-arm64"; Flags: ignoreversion recursesubdirs createallsubdirs;
|
||||
|
||||
119
src/Tools/release-mpv.net.ps1
Normal file
@@ -0,0 +1,119 @@
|
||||
|
||||
<#
|
||||
|
||||
Script that builds mpv.net and releases it on GitHub.
|
||||
Please note that debug builds are built and released,
|
||||
for release builds, scripts need to be rewritten.
|
||||
|
||||
Needs 2 positional CLI arguments:
|
||||
1. Directory where the mpv.net source code is located (mpv.net\src)
|
||||
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, the env var GH_TOKEN must be defined.
|
||||
|
||||
Notes:
|
||||
Before you run the script you need to update the versions found in the file:
|
||||
\mpv.net\src\MpvNet.Windows\MpvNet.Windows.csproj
|
||||
#>
|
||||
|
||||
# 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 10.0](https://dotnet.microsoft.com/en-us/download/dotnet/10.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 }
|
||||
103
src/Tools/update-mpv.ps1
Normal file
@@ -0,0 +1,103 @@
|
||||
|
||||
<#
|
||||
|
||||
Updates mpv (x64) and libmpv (x64 , ARM64).
|
||||
|
||||
Files are downloaded from:
|
||||
https://github.com/shinchiro/mpv-winbuild-cmake/releases
|
||||
|
||||
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/shinchiro/mpv-winbuild-cmake/releases/latest"
|
||||
$archiveFile = Get-Item (Download $apiURL "mpv-x86_64-[0-9]{8}-git-[0-9a-z]+\.7z")
|
||||
$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/shinchiro/mpv-winbuild-cmake/releases/latest"
|
||||
$archiveFile = Get-Item (Download $apiURL "mpv-dev-x86_64-[0-9]{8}-git-[0-9a-z]+\.7z")
|
||||
$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/shinchiro/mpv-winbuild-cmake/releases/latest"
|
||||
$archiveFile = Get-Item (Download $apiURL "mpv-dev-aarch64-[0-9]{8}-git-[0-9a-z]+\.7z")
|
||||
$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')
|
||||
}
|
||||