Compare commits

...

82 Commits

Author SHA1 Message Date
stax76
ef45baecbd Japanese translation was updated 2026-02-09 14:11:50 +01:00
stax76
30e75b2100 Merge pull request #759 from tsubasanouta/patch-2
Update ja.po
2026-02-09 14:07:32 +01:00
tsubasanouta
563472b489 Update ja.po 2026-02-07 22:25:46 +09:00
stax76
724a9adab8 Refactoring 2026-01-09 09:14:02 +01:00
stax76
9686c28f6a Support back and forward slashes as path seperator 2026-01-09 07:35:09 +01:00
stax76
03d0aeb879 Convert extension method to extension property 2026-01-09 07:29:19 +01:00
stax76
96afc62165 v7.1.2.0 2026-01-09 06:16:51 +01:00
stax76
fd3ea9afe9 Misc 2026-01-09 06:03:08 +01:00
stax76
853d38a427 PS script documentation 2026-01-09 05:21:30 +01:00
stax76
76a2f64fa6 adjust to mpv v.0.41 2026-01-08 17:14:31 +01:00
stax76
6c0e116918 Update readme 2025-11-26 13:51:47 +01:00
stax76
c1abf90559 Update outdated requirements in manual 2025-11-25 06:07:35 +01:00
stax76
eb085a6534 Changelog and version updated 2025-11-23 21:26:51 +01:00
stax76
78b85d59aa Merge pull request #751 from DogancanYr/patch-5
Revise Turkish translations.
2025-11-23 21:21:16 +01:00
stax76
0f900e01fa Merge pull request #752 from tsubasanouta/patch-1
Update ja.po
2025-11-23 21:20:54 +01:00
tsubasanouta
f754d4d865 Update ja.po 2025-11-24 04:47:20 +09:00
DogancanYr
474c4e888d Revise Turkish translations. 2025-11-23 16:10:49 +03:00
stax76
8f8ca453da Fix #748 2025-11-20 01:51:23 +01:00
stax76
8bd00fd2f1 Changelog update 2025-11-20 01:23:09 +01:00
stax76
61958aba2c v7.1.1.5 Beta 2025-11-20 01:11:02 +01:00
stax76
3fa6f44828 Changelog update 2025-11-20 01:07:16 +01:00
stax76
31be72efb2 Update Changelog 2025-11-20 01:00:27 +01:00
stax76
405c20f056 Merge pull request #749 from DogancanYr/patch-4
Update Turkish translations in tr.po file
2025-11-20 00:56:45 +01:00
stax76
5f0fb4ebc3 Update to .NET 10 LTS 2025-11-20 00:56:03 +01:00
DogancanYr
c6a2b06fdf Update Turkish translations in tr.po file 2025-10-29 19:58:56 +03:00
stax76
8f38eba23e Chinese and Japanese translations update 2025-10-14 02:41:25 +02:00
stax76
79164aae72 The German translation was updated 2025-10-06 00:43:18 +02:00
stax76
e5d3ac0d92 Changed default keys and menu items 2025-10-05 16:53:55 +02:00
stax76
f7c8c16344 v7.1.1.4 Beta 2025-10-05 01:12:04 +02:00
stax76
b1fccbf175 misc 2025-10-04 15:07:56 +02:00
stax76
cc1e4bc9f8 misc 2025-09-12 05:11:55 +02:00
stax76
3812f3031c Improved support for select.lua 2025-05-05 17:42:50 +02:00
stax76
837f97d491 Merge branch 'main' of https://github.com/mpvnet-player/mpv.net 2025-05-05 14:38:20 +02:00
stax76
2dab825af4 Update changelog 2025-05-05 14:37:58 +02:00
stax76
a78c1ba50d Merge pull request #725 from benomine/main
feat: dotnet 9, CPM, etc
2025-05-05 14:30:44 +02:00
stax76
50aea3b5ba Update changelog 2025-05-05 14:28:45 +02:00
stax76
6a971595f7 attempted actions/workflow fix 2025-05-04 05:03:17 +02:00
stax76
a1d944a9a0 translation update 2025-05-04 04:51:40 +02:00
stax76
8b49312bad Turkish translation update 2025-05-04 04:26:25 +02:00
stax76
95b279b0e9 Merge pull request #718 from DogancanYr/patch-3
Update tr.po
2025-05-04 04:10:30 +02:00
Benjamin Nomine
01477d8b25 feat: dotnet 9, CPM, etc 2025-01-11 14:05:54 -05:00
DogancanYr
4e5182eb73 Update tr.po 2024-11-28 19:43:56 +02:00
stax76
8d0b70a5dc manual improvements and fixes 2024-11-06 01:50:07 +01:00
stax76
37a241f136 Use MPV_CONFIG_DIR env var for command palette installer script 2024-11-03 11:30:19 +01:00
stax76
ace7566c2a v7.1.1.3 Beta 2024-10-20 09:15:34 +02:00
stax76
0b646cedb5 New command Video > Stream Quality (Alt+q) 2024-10-14 15:18:11 +02:00
stax76
a0d2fb6a4e command palette support 2024-10-13 14:18:04 +02:00
stax76
59a556794f support for autocreate-playlist, video-exts, audio-exts, image-exts 2024-10-12 21:50:46 +02:00
stax76
cca474a5a5 Merge pull request #710 from emmanuel-ferdman/main
update manual guide reference
2024-10-10 19:25:14 +02:00
Emmanuel Ferdman
ae05b997c7 update manual guide reference
Signed-off-by: Emmanuel Ferdman <emmanuelferdman@gmail.com>
2024-10-10 06:52:50 -07:00
stax76
88a6e18e78 v7.1.1.2 2024-10-10 14:08:21 +02:00
stax76
3de72df806 use autocreate-playlist instead of auto-load-folder 2024-10-10 13:32:19 +02:00
stax76
da176085cd Action fix 2024-10-10 06:27:24 +02:00
stax76
2b0ac7c087 cursor-autohide support #702 2024-10-10 05:44:02 +02:00
stax76
94ecf4a069 try fixing #662 2024-09-05 23:33:13 +02:00
stax76
9355e2f50c Set media-controls=yes 2024-09-05 05:15:00 +02:00
stax76
058ae3d185 auto build fix 2024-08-19 11:37:50 +02:00
stax76
3c1e6395a4 changelog update 2024-08-19 09:59:08 +02:00
stax76
236d10c14a changelog update 2024-08-19 09:56:02 +02:00
stax76
53f350da9a Polish translation fixed 2024-08-19 09:45:56 +02:00
stax76
bb6819f240 translation update 2024-08-19 09:27:18 +02:00
stax76
8f53254dbc Merge branch 'main' of https://github.com/mpvnet-player/mpv.net 2024-08-19 08:58:10 +02:00
stax76
8ed73f6ae0 changelog update 2024-08-19 08:57:54 +02:00
stax76
d59ccd7beb Merge pull request #704 from Ilithy/main
French translation
2024-08-19 08:55:19 +02:00
stax76
aeb11c9be1 changelog update 2024-08-19 08:53:06 +02:00
Ilithy
a1c8e93034 Update fr.po 2024-08-18 12:10:25 +02:00
Ilithy
00a11ea076 Update fr.po 2024-08-18 12:08:43 +02:00
Ilithy
9115f707dc Update fr.po 2024-08-18 12:02:59 +02:00
Ilithy
a2ec8de976 Update fr.po 2024-08-18 11:59:08 +02:00
Ilithy
be7e5aa7d2 Update fr.po 2024-08-18 11:52:03 +02:00
Ilithy
27124c9cdd Update fr.po 2024-08-18 01:57:02 +02:00
Ilithy
44079ed69c first commit for french translation 2024-08-16 01:36:00 +02:00
stax76
07749cb2cc title-bar fix 2024-08-10 11:19:23 +02:00
stax76
9d30acaba6 Japanese translation updated 2024-07-26 00:36:07 +02:00
stax76
f3fdef780d Support relative folders from command line 2024-07-26 00:14:44 +02:00
stax76
1243d1381b Updated changelog 2024-07-25 11:42:01 +02:00
stax76
3602f627e8 manual 2024-07-25 11:06:09 +02:00
stax76
97fab64d32 manual 2024-07-25 11:01:37 +02:00
stax76
e7b7f33b1b translation 2024-07-25 10:53:30 +02:00
stax76
01c2171a62 translation update 2024-07-25 10:34:09 +02:00
stax76
321dc13531 Merge pull request #699 from DogancanYr/patch-2
Update tr.po
2024-07-25 10:13:32 +02:00
DogancanYr
4032e8be7b Update tr.po 2024-07-20 21:21:24 +03:00
52 changed files with 8264 additions and 4863 deletions

View File

@@ -54,7 +54,7 @@ jobs:
- 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://github.com/zhongfly/mpv-winbuild/releases/download/2024-07-14-202ecc1/mpv-dev-x86_64-20240714-git-202ecc1.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
@@ -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/

View File

@@ -137,3 +137,11 @@ Searchable config editor as alternative to edit the conf file manually.
#### Terminal
![](docs/img/Terminal.webp)
Other projects from me
----------------------
A list of my other projects can be found here:
https://stax76.github.io/software-list

View File

@@ -1,4 +1,81 @@
- 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!

File diff suppressed because it is too large Load Diff

View File

@@ -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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1028
lang/po/fr.po Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-04-23 05:45+0200\n"
"POT-Creation-Date: 2025-10-06 00:24+0200\n"
"PO-Revision-Date: 2023-12-08 00:34+0000\n"
"Last-Translator: YT H <dev@theYT.net>, 2024\n"
"Language-Team: Korean (https://app.transifex.com/stax76/teams/179964/ko/)\n"
@@ -29,26 +29,34 @@ msgstr "+10%"
msgid "-10%"
msgstr "-10%"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:141
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:156
msgid "100 %"
msgstr "100 %"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:157
msgid "200 %"
msgstr "200 %"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:158
msgid "300 %"
msgstr "300 %"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:155
msgid "50 %"
msgstr "50 %"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:184
#: 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: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:16
msgid "Add external audio files..."
msgstr "외부 오디오 파일 추가..."
@@ -65,7 +73,7 @@ msgstr "재생 목록에 파일 추가..."
msgid "Add files/URLs to playlist from clipboard"
msgstr "클립보드에서 파일/URL을 재생 목록에 추가"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:166
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
msgid "Add mpv.net to Path environment variable"
msgstr "Path 환경 변수에 mpv.net 추가"
@@ -78,15 +86,30 @@ msgid "Audio"
msgstr "오디오"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:85
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:455
#: 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:194
#: 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:132
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:237
msgid "Audio Tracks"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:209
msgid "Backward"
msgstr "뒤로"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
#: 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:163
msgctxt "Move"
msgid "Center"
msgstr "중앙"
@@ -100,19 +123,56 @@ msgid "Changes will be available on next startup."
msgstr "변경 사항은 다음 실행 시 적용됩니다."
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:51
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:353
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:351
msgid "Chapter"
msgstr "챕터"
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:390
#: 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.Windows\WinForms\MainForm.cs:388
msgid "Clear List"
msgstr "목록 비우기"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
#, fuzzy
msgid "Commands"
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.Windows\WinForms\MainForm.cs:479
#: 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:142
#, fuzzy
msgid "Console"
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:148
#, fuzzy
msgid "Decoders"
msgstr "디코더 표시"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:70
msgid "Decrease Brightness"
msgstr "밝기 감소"
@@ -151,11 +211,16 @@ msgstr "지연 0.1초 증가"
msgid "Delay -0.1"
msgstr "지연 0.1초 감소"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
#, fuzzy
msgid "Demuxers"
msgstr "디멀티플렉서 표시"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:116
msgid "Double"
msgstr "두배"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
msgctxt "Move"
msgid "Down"
msgstr "아래"
@@ -165,29 +230,35 @@ msgctxt "Volume"
msgid "Down"
msgstr "감소"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:158
#: 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:157
#: 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:137
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:241
#, fuzzy
msgid "Editions"
msgstr "input.conf 파일 편집"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
msgid "Enlarge"
msgstr "크게"
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:261
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:270
msgid "Error creating file associations."
msgstr "파일 연결을 만드는 중 오류가 발생했습니다."
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:23
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:186
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:218
#: 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:173
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:188
msgid "Exit Watch Later"
msgstr "다음에 이어 보기 설정하고 종료"
@@ -206,20 +277,20 @@ msgstr "다음에 이어 보기 설정하고 종료"
msgid "File"
msgstr "파일"
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:253
#: 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:258
#: 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:256
#: 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:189
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:209
#: 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을 재생 목록에 추가했습니다"
@@ -227,13 +298,13 @@ msgstr "파일/URL을 재생 목록에 추가했습니다"
msgid "First File"
msgstr "첫 파일"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:193
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:208
msgid "Forward"
msgstr "앞으로"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:206
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:207
#: 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 "전체 화면"
@@ -241,18 +312,18 @@ msgstr "전체 화면"
msgid "Half"
msgstr "절반"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:178
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:180
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:183
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:184
#: 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:205
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:220
msgid "Ignore left mouse butten"
msgstr "왼쪽 마우스 버튼 무시"
@@ -316,45 +387,59 @@ msgstr "다음 프레임으로 이동"
msgid "Jump To Previous Frame"
msgstr "이전 프레임으로 이동"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
#, fuzzy
msgid "Keys"
msgstr "키 표시"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:32
msgid "Last File"
msgstr "마지막 파일"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:159
msgctxt "Move"
msgid "Left"
msgstr "왼쪽"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:180
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:195
msgid "Manual mpv"
msgstr "mpv 설명서"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
#: 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:213
#: 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:103
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:126
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
msgid "More"
msgstr "더 보기"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:124
#, fuzzy
msgid "Media Info Message Box"
msgstr "미디어 정보 메시지 상자 표시"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:123
#, fuzzy
msgid "Media Info On-Screen"
msgstr "On-Screen 미디어 정보 표시"
#: 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: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 "이동"
@@ -411,9 +496,9 @@ msgid "Next Chapter"
msgstr "다음 장"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:29
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:200
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:202
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:204
#: 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 "다음 파일"
@@ -422,7 +507,28 @@ msgstr "다음 파일"
msgid "Next Track"
msgstr "다음 트랙"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
#: 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:175
msgid "Open Config Folder"
msgstr "설정 폴더 열기"
@@ -455,10 +561,10 @@ msgid "Pan & Scan"
msgstr "팬과 스캔"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:25
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:188
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:189
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:190
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:191
#: 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 "재생/일시 정지"
@@ -467,40 +573,61 @@ msgstr "재생/일시 정지"
msgid "Playback"
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:36
msgid "Previous Chapter"
msgstr "이전 장"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:28
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:199
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:201
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:203
#: 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:152
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:428
#: 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:125
#, fuzzy
msgid "Progress"
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:147
#, fuzzy
msgid "Protocols"
msgstr "프로토콜 표시"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:22
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:374
#: 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:162
#: 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:163
#: 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:161
#: 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:167
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
msgid "Remove mpv.net from Path environment variable"
msgstr "Path 환경 변수에서 mpv.net 제거"
@@ -509,7 +636,7 @@ msgstr "Path 환경 변수에서 mpv.net 제거"
msgid "Reset"
msgstr "초기화"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
msgctxt "Move"
msgid "Right"
msgstr "오른쪽"
@@ -518,134 +645,74 @@ msgstr "오른쪽"
msgid "Rotate Video"
msgstr "비디오 회전"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:209
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:211
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:217
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
msgid "Secondary Subtitle"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:236
#, fuzzy
msgid "Secondary Subtitles"
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:208
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:210
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:216
#: 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:215
#: 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:214
#: 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:169
#: 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:154
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:155
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:156
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:157
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:158
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:159
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:166
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:167
msgid "Settings"
msgstr "설정"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:166
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:167
#: 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:127
msgid "Show Audio Devices"
msgstr "오디오 장치 표시"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
msgid "Show Bindings"
msgstr "키 설정 표시"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
msgid "Show Commands"
msgstr "명령어 표시"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:154
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:169
msgid "Show Config Editor"
msgstr "구성 편집기 표시"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:126
msgid "Show Console"
msgstr "콘솔 표시"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
msgid "Show Decoders"
msgstr "디코더 표시"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
msgid "Show Demuxers"
msgstr "디멀티플렉서 표시"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:155
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:170
msgid "Show Input Editor"
msgstr "입력 편집기 표시"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
msgid "Show Keys"
msgstr "키 표시"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:124
msgid "Show Media Info Message Box"
msgstr "미디어 정보 메시지 상자 표시"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:123
msgid "Show Media Info On-Screen"
msgstr "On-Screen 미디어 정보 표시"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:187
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:202
msgid "Show Menu"
msgstr "메뉴 표시"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:120
msgid "Show Playlist"
msgstr "재생목록 보기"
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:450
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:448
msgid "Show Profiles"
msgstr "프로파일 보기"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:125
msgid "Show Progress"
msgstr "진행률 표시"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
msgid "Show Properties"
msgstr "속성 표시"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
msgid "Show Protocols"
msgstr "프로토콜 표시"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:153
msgid "Shrink"
msgstr "작게"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:171
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:186
msgid "Shuffle Playlist"
msgstr "재생 목록 순서 섞기"
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:1419
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:1432
msgid "Shutdown thread failed to complete within 10 seconds."
msgstr "종료 스레드가 10초 이내에 완료되지 않았습니다."
@@ -660,7 +727,7 @@ msgid "Speed"
msgstr "속도"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:26
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:192
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:207
msgid "Stop"
msgstr "정지"
@@ -680,6 +747,20 @@ msgstr "정지"
msgid "Subtitle"
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:133
msgid "Subtitle Tracks"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:235
#, fuzzy
msgid "Subtitles"
msgstr "자막"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:79
msgid "Take Screenshot"
msgstr "스크린샷 찍기"
@@ -688,28 +769,25 @@ msgstr "스크린샷 찍기"
msgid "Take Screenshot without subtitles"
msgstr "자막 없이 스크린샷 찍기"
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:202
#: 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:389
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:396
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:404
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:411
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:416
#: 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:420
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:427
msgid "This feature was removed."
msgstr "이 기능은 삭제되었습니다."
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:50
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:395
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:393
msgid "Title"
msgstr "타이틀"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
msgid "Toggle Border"
msgstr "창 테두리 전환"
@@ -717,7 +795,7 @@ msgstr "창 테두리 전환"
msgid "Toggle Deinterlace"
msgstr "디인터레이스 전환"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:172
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:187
msgid "Toggle Hardware Decoding"
msgstr "하드웨어 디코딩 전환"
@@ -725,7 +803,7 @@ msgstr "하드웨어 디코딩 전환"
msgid "Toggle OSC Visibility"
msgstr "OSC 표시 전환"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:150
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
msgid "Toggle On Top"
msgstr "항상 위에 표시 전환"
@@ -737,7 +815,7 @@ msgstr "통계 전환"
msgid "Toggle Visibility"
msgstr "표시 전환"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:170
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:185
msgid "Toggle infinite file looping"
msgstr "파일 무한 반복 전환"
@@ -745,28 +823,33 @@ msgstr "파일 무한 반복 전환"
msgid "Toggle overriding SSA/ASS styles with normal styles"
msgstr "SSA/ASS 스타일을 일반 스타일로 덮어쓰기 전환"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:169
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:170
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:171
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:172
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:173
#: 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:105
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:291
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:289
msgid "Track"
msgstr "트랙"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:212
#: 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:227
msgid "Undo previous (or marked) seek"
msgstr "이전 (또는 표시된) 탐색을 취소"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
msgid "Unregister file associations"
msgstr "파일 연결 등록 해제"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
msgctxt "Move"
msgid "Up"
msgstr "위"
@@ -796,6 +879,11 @@ msgstr "증가"
msgid "Video"
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:120
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:121
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:122
@@ -811,34 +899,7 @@ 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
msgid "View"
msgstr "보기"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:107
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:108
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:109
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:110
msgid "Volume"
msgstr "볼륨"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:196
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:198
msgid "Volume Down"
msgstr "볼륨 감소"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:195
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:197
msgid "Volume Up"
msgstr "볼륨 증가"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
msgid "Website mpv"
msgstr "mpv 웹사이트"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:178
msgid "Website mpv.net"
msgstr "mpv.net 웹사이트"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs: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
@@ -853,21 +914,74 @@ msgstr "mpv.net 웹사이트"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:150
msgid "View"
msgstr "보기"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:107
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:108
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:109
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:110
msgid "Volume"
msgstr "볼륨"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:211
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:213
msgid "Volume Down"
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: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
#, fuzzy
msgid "Watch Later"
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: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: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: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:183
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:198
msgid "awesome-mpv"
msgstr "awesome-mpv"
@@ -875,22 +989,32 @@ msgstr "awesome-mpv"
msgid "editor_conf"
msgstr "editor_conf"
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:358
#: 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:375
#: 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:366
#: 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:384
#: 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\Properties\Resources.Designer.cs:114
msgid "theme"
msgstr "theme"
#, fuzzy
#~ msgid "Select Menu"
#~ msgstr "메뉴 표시"
#~ msgid "Settings"
#~ msgstr "설정"
#~ msgid "Show Bindings"
#~ msgstr "키 설정 표시"

1022
lang/po/pl.po Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -4,19 +4,24 @@
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
# Translators:
# jambickz, 2024
# Frank Skare, 2024
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-04-23 05:45+0200\n"
"POT-Creation-Date: 2025-10-06 00:24+0200\n"
"PO-Revision-Date: 2023-12-08 00:34+0000\n"
"Last-Translator: jambickz, 2024\n"
"Last-Translator: Frank Skare, 2024\n"
"Language-Team: Russian (https://app.transifex.com/stax76/teams/179964/ru/)\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || "
"(n%100>=11 && n%100<=14)? 2 : 3);\n"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:113
msgid "+10%"
@@ -26,26 +31,34 @@ msgstr "+10%"
msgid "-10%"
msgstr "-10%"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:141
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:156
msgid "100 %"
msgstr "100 %"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:157
msgid "200 %"
msgstr "200 %"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:158
msgid "300 %"
msgstr "300 %"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:155
msgid "50 %"
msgstr "50 %"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:184
#: 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: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:16
msgid "Add external audio files..."
msgstr "Добавить внешние аудиофайлы..."
@@ -62,7 +75,7 @@ msgstr "Добавить файлы в плейлист..."
msgid "Add files/URLs to playlist from clipboard"
msgstr "Добавить файлы/URL в плейлист из буфера обмена"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:166
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
msgid "Add mpv.net to Path environment variable"
msgstr "Добавить mpv.net в переменную среды Path"
@@ -75,15 +88,30 @@ msgid "Audio"
msgstr "Аудио"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:85
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:455
#: 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:194
#: 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:132
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:237
msgid "Audio Tracks"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:209
msgid "Backward"
msgstr "Назад"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
#: 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:163
msgctxt "Move"
msgid "Center"
msgstr "Центр"
@@ -97,19 +125,56 @@ msgid "Changes will be available on next startup."
msgstr "Изменения будут доступны при следующем запуске."
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:51
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:353
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:351
msgid "Chapter"
msgstr "Глава"
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:390
#: 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.Windows\WinForms\MainForm.cs:388
msgid "Clear List"
msgstr "Очистить список"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
#, fuzzy
msgid "Commands"
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.Windows\WinForms\MainForm.cs:479
#: 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:142
#, fuzzy
msgid "Console"
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:148
#, fuzzy
msgid "Decoders"
msgstr "Показать декодеры"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:70
msgid "Decrease Brightness"
msgstr "Уменьшить яркость"
@@ -148,11 +213,16 @@ msgstr "Задержка +0.1"
msgid "Delay -0.1"
msgstr "Задержка -0.1"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
#, fuzzy
msgid "Demuxers"
msgstr "Показать демуксеры"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:116
msgid "Double"
msgstr "Удвоить"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
msgctxt "Move"
msgid "Down"
msgstr "Вниз"
@@ -162,29 +232,35 @@ msgctxt "Volume"
msgid "Down"
msgstr "Уменьшить"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:158
#: 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:157
#: 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:137
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:241
#, fuzzy
msgid "Editions"
msgstr "Изменить input.conf"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:152
msgid "Enlarge"
msgstr "Увеличить"
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:261
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:270
msgid "Error creating file associations."
msgstr "Ошибка создания ассоциаций файлов."
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:23
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:186
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:218
#: 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:173
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:188
msgid "Exit Watch Later"
msgstr "Выход и позже просмотреть"
@@ -203,20 +279,20 @@ msgstr "Выход и позже просмотреть"
msgid "File"
msgstr "Файл"
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:253
#: 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:258
#: 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:256
#: 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:189
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:209
#: 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 добавлены в список воспроизведения"
@@ -224,13 +300,13 @@ msgstr "Файлы/URL добавлены в список воспроизвед
msgid "First File"
msgstr "Первый файл"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:193
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:208
msgid "Forward"
msgstr "Вперед"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:206
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:207
#: 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 "Полноэкранный режим"
@@ -238,21 +314,20 @@ msgstr "Полноэкранный режим"
msgid "Half"
msgstr "Половина"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:178
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:180
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:183
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:184
#: 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:205
#, fuzzy
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:220
msgid "Ignore left mouse butten"
msgstr "Игнорировать левую кнопку мыши"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:71
msgid "Increase Brightness"
@@ -314,45 +389,59 @@ msgstr "Перейти к следующему кадру"
msgid "Jump To Previous Frame"
msgstr "Перейти к предыдущему кадру"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
#, fuzzy
msgid "Keys"
msgstr "Показать клавиши"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:32
msgid "Last File"
msgstr "Последний файл"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:159
msgctxt "Move"
msgid "Left"
msgstr "Влево"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:180
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:195
msgid "Manual mpv"
msgstr "Руководство mpv"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:181
#: 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:213
#: 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:103
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:126
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
msgid "More"
msgstr "Дополнительно"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:124
#, fuzzy
msgid "Media Info Message Box"
msgstr "Показать информацию о медиа в окне сообщения"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:123
#, fuzzy
msgid "Media Info On-Screen"
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: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 "Перемещение"
@@ -409,9 +498,9 @@ msgid "Next Chapter"
msgstr "Следующая глава"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:29
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:200
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:202
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:204
#: 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 "Следующий файл"
@@ -420,14 +509,34 @@ msgstr "Следующий файл"
msgid "Next Track"
msgstr "Следующий трек"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
#: 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:175
msgid "Open Config Folder"
msgstr "Открыть папку конфигурации"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:14
#, fuzzy
msgid "Open DVD/Blu-ray Drive/Folder..."
msgstr "Открыть привод DVD/Blu-ray/Папку..."
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:12
msgid "Open Files..."
@@ -454,10 +563,10 @@ msgid "Pan & Scan"
msgstr "Панорамирование и масштабирование"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:25
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:188
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:189
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:190
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:191
#: 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 "Воспроизведение/Пауза"
@@ -466,41 +575,61 @@ msgstr "Воспроизведение/Пауза"
msgid "Playback"
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:36
msgid "Previous Chapter"
msgstr "Предыдущая глава"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:28
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:199
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:201
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:203
#: 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:152
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:428
#: 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:125
#, fuzzy
msgid "Progress"
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:147
#, fuzzy
msgid "Protocols"
msgstr "Показать протоколы"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:22
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:374
#: 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:162
#: 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:163
#: 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:161
#, fuzzy
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:176
msgid "Register video file associations"
msgstr "Зарегистрировать ассоциации файлов Viuao"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:167
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:182
msgid "Remove mpv.net from Path environment variable"
msgstr "Удалить mpv.net из переменной среды Path"
@@ -509,144 +638,83 @@ msgstr "Удалить mpv.net из переменной среды Path"
msgid "Reset"
msgstr "Сбросить"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
msgctxt "Move"
msgid "Right"
msgstr "Вправо"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:83
#, fuzzy
msgid "Rotate Video"
msgstr "Повернуть Viuao"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:209
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:211
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:217
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
msgid "Secondary Subtitle"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:236
#, fuzzy
msgid "Secondary Subtitles"
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:208
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:210
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:216
#: 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:215
#: 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:214
#: 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:169
#: 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:154
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:155
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:156
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:157
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:158
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:159
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:160
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:166
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:167
msgid "Settings"
msgstr "Настройки"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:166
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:167
#: 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:127
msgid "Show Audio Devices"
msgstr "Показать аудиоустройства"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
msgid "Show Bindings"
msgstr "Показать привязки"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
msgid "Show Commands"
msgstr "Показать команды"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:154
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:169
msgid "Show Config Editor"
msgstr "Показать редактор конфигурации"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:126
msgid "Show Console"
msgstr "Показать консоль"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
msgid "Show Decoders"
msgstr "Показать декодеры"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
msgid "Show Demuxers"
msgstr "Показать демуксеры"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:155
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:170
msgid "Show Input Editor"
msgstr "Показать редактор ввода"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
msgid "Show Keys"
msgstr "Показать клавиши"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:124
msgid "Show Media Info Message Box"
msgstr "Показать информацию о медиа в окне сообщения"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:123
msgid "Show Media Info On-Screen"
msgstr "Показать информацию о медиа на экране"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:187
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:202
msgid "Show Menu"
msgstr "Показать меню"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:120
msgid "Show Playlist"
msgstr "Показать плейлист"
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:450
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:448
msgid "Show Profiles"
msgstr "Показать профили"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:125
msgid "Show Progress"
msgstr "Показать прогресс"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
msgid "Show Properties"
msgstr "Показать свойства"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
msgid "Show Protocols"
msgstr "Показать протоколы"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:153
msgid "Shrink"
msgstr "Уменьшить"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:171
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:186
msgid "Shuffle Playlist"
msgstr "Перемешать плейлист"
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:1419
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:1432
msgid "Shutdown thread failed to complete within 10 seconds."
msgstr "Поток завершения не удалось завершить в течение 10 секунд."
@@ -661,7 +729,7 @@ msgid "Speed"
msgstr "Скорость"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:26
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:192
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:207
msgid "Stop"
msgstr "Остановить"
@@ -681,6 +749,20 @@ msgstr "Остановить"
msgid "Subtitle"
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:133
msgid "Subtitle Tracks"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:235
#, fuzzy
msgid "Subtitles"
msgstr "Субтитры"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:79
msgid "Take Screenshot"
msgstr "Сделать снимок экрана"
@@ -689,47 +771,41 @@ msgstr "Сделать снимок экрана"
msgid "Take Screenshot without subtitles"
msgstr "Сделать снимок экрана без субтитров"
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:202
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:207
msgid "The clipboard does not contain a valid URL or file."
msgstr "Буфер обмена не содержит действительного URL ouar файла."
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:389
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:396
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:404
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:411
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:416
#, fuzzy
#: 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 "Эта функция была удалена."
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:420
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:427
msgid "This feature was removed."
msgstr "Эта функция была удалена."
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:50
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:395
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:393
msgid "Title"
msgstr "Заголовок"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
msgid "Toggle Border"
msgstr "Переключить рамку"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:81
#, fuzzy
msgid "Toggle Deinterlace"
msgstr "Переключить деинтерлейс"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:172
#, fuzzy
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:187
msgid "Toggle Hardware Decoding"
msgstr "Переключить аппаратное ускорение кодирования"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:122
msgid "Toggle OSC Visibility"
msgstr "Переключить видимость OSC"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:150
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
msgid "Toggle On Top"
msgstr "Переключить поверх всех окон"
@@ -741,7 +817,7 @@ msgstr "Переключить статистику"
msgid "Toggle Visibility"
msgstr "Переключить видимость"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:170
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:185
msgid "Toggle infinite file looping"
msgstr "Переключить бесконечное повторение файла"
@@ -749,28 +825,33 @@ msgstr "Переключить бесконечное повторение фа
msgid "Toggle overriding SSA/ASS styles with normal styles"
msgstr "Переключить замещение стилей SSA/ASS обычными стилями"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:169
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:170
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:171
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:172
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:173
#: 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:105
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:291
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:289
msgid "Track"
msgstr "Трек"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:212
#: 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:227
msgid "Undo previous (or marked) seek"
msgstr "Отменить предыдущий (или помеченный) поиск"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:179
msgid "Unregister file associations"
msgstr "Отменить регистрацию ассоциаций файлов"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
msgctxt "Move"
msgid "Up"
msgstr "Вверх"
@@ -800,6 +881,11 @@ msgstr "Увеличить"
msgid "Video"
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:120
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:121
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:122
@@ -815,34 +901,7 @@ 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
msgid "View"
msgstr "Просмотр"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:107
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:108
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:109
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:110
msgid "Volume"
msgstr "Громкость"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:196
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:198
msgid "Volume Down"
msgstr "Уменьшить громкость"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:195
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:197
msgid "Volume Up"
msgstr "Увеличить громкость"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:177
msgid "Website mpv"
msgstr "Веб-сайт mpv"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:178
msgid "Website mpv.net"
msgstr "Веб-сайт mpv.net"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs: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
@@ -857,21 +916,74 @@ msgstr "Веб-сайт mpv.net"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:150
msgid "View"
msgstr "Просмотр"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:107
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:108
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:109
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:110
msgid "Volume"
msgstr "Громкость"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:211
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:213
msgid "Volume Down"
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: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
#, fuzzy
msgid "Watch Later"
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: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: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: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:183
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:198
msgid "awesome-mpv"
msgstr "awesome-mpv"
@@ -879,20 +991,19 @@ msgstr "awesome-mpv"
msgid "editor_conf"
msgstr "editor_conf"
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:358
#: 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:375
#: 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:366
#, fuzzy
#: 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'."
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:384
#: 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'."
@@ -900,5 +1011,12 @@ msgstr "mpv.net успешно удален из переменной среды
msgid "theme"
msgstr "тема"
#~ msgid "Viuao"
#~ msgstr "Viuao"
#, fuzzy
#~ msgid "Select Menu"
#~ msgstr "Показать меню"
#~ msgid "Settings"
#~ msgstr "Настройки"
#~ msgid "Show Bindings"
#~ msgstr "Показать привязки"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-04-23 05:45+0200\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:374
#: 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:186
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:218
#: 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:188
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:189
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:190
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:191
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs: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:192
#: 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:199
#: 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: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:200
#: 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: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:395
#: 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:353
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:351
msgid "Chapter"
msgstr ""
@@ -323,7 +323,7 @@ msgid "Audio"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:85
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:455
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:453
msgid "Audio Device"
msgstr ""
@@ -371,15 +371,14 @@ msgid "Increase Font Size"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:103
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:126
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:127
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:128
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:129
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:130
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:133
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
#: 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 ""
@@ -388,7 +387,7 @@ msgid "Toggle overriding SSA/ASS styles with normal styles"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:105
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:291
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:289
msgid "Track"
msgstr ""
@@ -454,11 +453,28 @@ 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
#: 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
msgid "Show Playlist"
#: 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
@@ -470,157 +486,136 @@ 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
msgid "Show Properties"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:240
msgid "Chapters"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:131
msgid "Show Keys"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:239
msgid "Tracks"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:132
msgid "Show Protocols"
#: 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 "Show Decoders"
msgid "Subtitle Tracks"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:134
msgid "Show Demuxers"
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:140
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:141
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:150
msgid "Window"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:136
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:206
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:207
msgid "Fullscreen"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:137
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:139
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:141
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:142
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
msgid "Zoom"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:137
msgid "Enlarge"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:138
msgid "Shrink"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:244
msgid "Watch History"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:140
msgid "50 %"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:141
msgid "100 %"
#: 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 "200 %"
msgid "Console"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:143
msgid "300 %"
msgid "Commands"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
msgid "Move"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:144
msgctxt "Move"
msgid "Left"
msgid "Active Bindings In Text Editor"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:145
msgctxt "Move"
msgid "Right"
msgid "Active Bindings On-Screen"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:146
msgctxt "Move"
msgid "Up"
msgid "Keys"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:147
msgctxt "Move"
msgid "Down"
msgid "Protocols"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:148
msgctxt "Move"
msgid "Center"
msgid "Decoders"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:149
msgid "Toggle Border"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:150
msgid "Toggle On Top"
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.Windows\WinForms\MainForm.cs:428
msgid "Profile"
msgstr ""
#: 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
@@ -633,63 +628,93 @@ msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:165
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:166
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:167
msgid "Settings"
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
msgid "Show Config Editor"
#: 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 "Show Input Editor"
msgid "50 %"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:156
msgid "100 %"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:157
msgid "Edit mpv.conf"
msgid "200 %"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:158
msgid "Edit input.conf"
msgid "300 %"
msgstr ""
#: 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
msgid "Open Config Folder"
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
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:166
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:167
msgid "Setup"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:161
msgid "Register video file associations"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:162
msgid "Register audio file associations"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:163
msgid "Register image file associations"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:164
msgid "Unregister file associations"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:166
msgid "Add mpv.net to Path environment variable"
msgid "Toggle On Top"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:167
msgid "Remove mpv.net from Path environment variable"
#: 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
@@ -697,173 +722,249 @@ msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:171
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:172
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:173
msgid "Tools"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:169
msgid "Set/clear A-B loop points"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:170
msgid "Toggle infinite file looping"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:171
msgid "Shuffle Playlist"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:172
msgid "Toggle Hardware Decoding"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:173
msgid "Exit Watch Later"
msgstr ""
#: 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.Windows\WinForms\MainForm.cs:479
msgid "Custom"
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
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:183
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:184
msgid "Help"
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 ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:173
msgid "Edit input.conf"
msgstr ""
#: 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 "Website mpv"
msgid "Register audio file associations"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:178
msgid "Website mpv.net"
msgid "Register image file associations"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:180
msgid "Manual mpv"
#: 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 "Manual mpv.net"
msgid "Add mpv.net to Path environment variable"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:183
msgid "awesome-mpv"
#: 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
msgid "About mpv.net"
#: 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 "Shuffle Playlist"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:187
msgid "Show Menu"
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 ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:193
msgid "Forward"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:194
msgid "Backward"
msgid "Website mpv.net"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:195
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:197
msgid "Volume Up"
msgid "Manual mpv"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:196
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:198
msgid "Volume Down"
msgid "Manual mpv.net"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:205
msgid "Ignore left mouse butten"
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:198
msgid "awesome-mpv"
msgstr ""
#: 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
msgid "Show Menu"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:208
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:210
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:216
msgid "Seek Forward"
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:217
#: 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:212
#: 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:213
#: 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:214
#: 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:215
#: D:\Projects\CS\mpv.net\src\MpvNet\InputHelp.cs:230
msgid "Seek to next subtitle"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:189
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:209
#: 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:202
#: 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:253
#: 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:256
#: 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:258
#: 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:261
#: 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:358
#: 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:366
#: 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:375
#: 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:384
#: 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:389
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:396
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:404
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:411
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:416
#: 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:420
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\GuiCommand.cs:427
msgid "This feature was removed."
msgstr ""
@@ -875,15 +976,15 @@ msgstr ""
msgid "theme"
msgstr ""
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:390
#: 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:450
#: 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:1419
#: D:\Projects\CS\mpv.net\src\MpvNet.Windows\WinForms\MainForm.cs:1432
msgid "Shutdown thread failed to complete within 10 seconds."
msgstr ""

View File

@@ -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

View File

@@ -0,0 +1,6 @@
<Project>
<PropertyGroup>
<Product>mpv.net</Product>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>

View 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>

View File

@@ -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));
}

View File

@@ -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")
{

View File

@@ -7,7 +7,7 @@ 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;
@@ -162,8 +162,7 @@ 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());
}
@@ -195,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)
{
@@ -224,9 +225,13 @@ 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);
}
}
void RegisterFileAssociations(IList<string> args)
@@ -236,9 +241,9 @@ public class GuiCommand
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
@@ -267,6 +272,20 @@ public class GuiCommand
catch { }
}
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)
@@ -284,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;
@@ -313,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";
@@ -324,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();
@@ -357,7 +382,7 @@ public class GuiCommand
{
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 the Path environment variable."));
return;

View File

@@ -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;
}

View File

@@ -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.1.1.1</FileVersion>
<AssemblyVersion>7.1.1.1</AssemblyVersion>
<InformationalVersion>7.1.1.1</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>

View File

@@ -21,23 +21,11 @@ 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
@@ -72,7 +60,8 @@ file = mpv
directory = Video
help = Video output drivers to be used.\n\nFor more information visit:
url = https://mpv.io/manual/master/#video-output-drivers-vo
default = gpu
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.
@@ -100,9 +89,9 @@ option = nvdec-copy copies video back to system RAM
name = gpu-api
file = mpv
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.
help = Controls which type of graphics APIs will be accepted.
default = auto
option = auto Use any available API
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
@@ -790,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
@@ -833,6 +828,12 @@ 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
@@ -1097,10 +1098,19 @@ 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
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
@@ -1108,7 +1118,7 @@ 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
@@ -1133,11 +1143,14 @@ 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

View File

@@ -2,7 +2,7 @@
using System.ComponentModel;
using System.Runtime.InteropServices;
using MpvNet.ExtensionMethod;
using MpvNet.Extensions;
namespace MpvNet.Windows.UI;

View File

@@ -10,11 +10,14 @@ 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"),
};

View File

@@ -38,7 +38,7 @@ partial class MainForm
// CursorTimer
//
CursorTimer.Enabled = true;
CursorTimer.Interval = 1000;
CursorTimer.Interval = 500;
CursorTimer.Tick += CursorTimer_Tick;
//
// ProgressTimer

View File

@@ -5,13 +5,12 @@ 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;
@@ -39,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,9 +70,9 @@ public partial class MainForm : Form
Player.Init(Handle, true);
// bool methods not working correctly
Player.ObserveProperty("window-maximized", PropChangeWindowMaximized);
Player.ObserveProperty("window-minimized", PropChangeWindowMinimized);
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);
@@ -555,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)
@@ -684,8 +685,11 @@ public partial class MainForm : Form
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);
@@ -1044,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;
}
@@ -1102,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;
@@ -1248,8 +1254,7 @@ 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())
@@ -1308,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;
@@ -1474,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;

View File

@@ -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>

View File

@@ -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}"

View File

@@ -1,7 +1,7 @@

using CommunityToolkit.Mvvm.Messaging;
using MpvNet.ExtensionMethod;
using MpvNet.Extensions;
using MpvNet.Help;
using MpvNet.MVVM;
@@ -21,7 +21,7 @@ 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";
@@ -131,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;
@@ -152,7 +150,6 @@ public class AppClass
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)

View File

@@ -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;

View File

@@ -28,7 +28,7 @@ public class Command
["playlist-random"] = args => PlaylistRandom(), // deprecated
};
string FormatTime(double value) => ((int)value).ToString("00");
static string FormatTime(double value) => ((int)value).ToString("00");
void PlayPause(IList<string> args)
{
@@ -42,7 +42,7 @@ public class Command
{
if (i.Contains("://") || File.Exists(i))
{
Player.LoadFiles(new[] { i }, true, false);
Player.LoadFiles([i], true, false);
break;
}
}

View File

@@ -6,9 +6,9 @@ public class CommandLine
static List<StringPair>? _arguments;
static string[] _preInitProperties { get; } = {
"input-terminal", "terminal", "input-file", "config", "o",
"config-dir", "input-conf", "load-scripts", "scripts", "player-operation-mode",
"idle", "log-file", "msg-color", "dump-stats", "msg-level", "really-quiet" };
"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
{
@@ -17,7 +17,7 @@ public class CommandLine
if (_arguments != null)
return _arguments;
_arguments = new();
_arguments = [];
foreach (string i in Environment.GetCommandLineArgs().Skip(1))
{
@@ -37,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))
@@ -46,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;
@@ -113,15 +114,19 @@ public class CommandLine
public static void ProcessCommandLineFiles()
{
List<string> files = new List<string>();
List<string> files = [];
foreach (string arg in Environment.GetCommandLineArgs().Skip(1))
{
if (!arg.StartsWith("--") && (arg == "-" || arg.Contains("://") ||
arg.Contains(":\\") || arg.StartsWith("\\\\") || File.Exists(arg)))
arg.Contains(":\\") || arg.StartsWith("\\\\") || arg.StartsWith('.') ||
File.Exists(arg)))
{
files.Add(arg);
}
}
Player.LoadFiles(files.ToArray(), !App.Queue, App.Queue);
Player.LoadFiles([.. files], !App.Queue, App.Queue);
if (App.CommandLine.Contains("--shuffle"))
{
@@ -133,8 +138,10 @@ public class CommandLine
public static bool Contains(string name)
{
foreach (StringPair pair in Arguments)
{
if (pair.Name == name)
return true;
}
return false;
}
@@ -142,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 "";
}

View File

@@ -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");
}
}
}
}

View File

@@ -1,7 +0,0 @@

namespace MpvNet.ExtensionMethod;
public static class ObjectExtension
{
public static string ToStringEx(this object instance) => instance?.ToString() ?? "";
}

View File

@@ -0,0 +1,10 @@

namespace MpvNet.Extensions;
public static class ObjectExtensions
{
extension(object instance)
{
public string ToStringEx() => instance?.ToString() ?? "";
}
}

View File

@@ -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;
}
}

View 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;
}
}
}
}

View File

@@ -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)
{

View File

@@ -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));
}

View File

@@ -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;
}

View File

@@ -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));
}
}

View File

@@ -34,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);
}
@@ -82,16 +90,22 @@ 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);

View File

@@ -7,228 +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"), _("Audio Device")),
new (_("Audio"), _("Next Track"), "script-message-to mpvnet cycle-audio", "KP7"),
new (_("Audio"), "-"),
new (_("Audio"), _("Delay +0.1"), "add audio-delay 0.1", "Ctrl+d"),
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"), _p("Volume", "Up"), "add volume 2", "+"),
new (_("Volume"), _p("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"), _("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"),
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 (_("View") + " > " + _("On Screen Menu"), _("Playlist"), "script-binding select/select-playlist", "F8"),
new (_("View") + " > " + _("On Screen Menu"), _("Bindings"), "script-binding select/select-binding", "F1"),
new (_("View") + " > " + _("On Screen Menu"), _("Properties"), "script-binding select/show-properties", "F3"),
new (_("View") + " > " + _("On Screen Menu"), _("Chapters"), "script-binding select/select-chapter", "Alt+c"),
new (_("View") + " > " + _("On Screen Menu"), _("Tracks"), "script-binding select/select-track", "Alt+t"),
new (_("View") + " > " + _("On Screen Menu"), _("Audio Tracks"), "script-binding select/select-aid"),
new (_("View") + " > " + _("On Screen Menu"), _("Subtitle Tracks"), "script-binding select/select-sid"),
new (_("View") + " > " + _("On Screen Menu"), _("Secondary Subtitle"), "script-binding select/select-secondary-sid", "Alt+F2"),
new (_("View") + " > " + _("On Screen Menu"), _("Video Tracks"), "script-binding select/select-vid", "Alt+v"),
new (_("View") + " > " + _("On Screen Menu"), _("Subtitle Lines"), "script-binding select/select-subtitle-line", "Alt+l"),
new (_("View") + " > " + _("On Screen Menu"), _("Audio Devices"), "script-binding select/select-audio-device", "Alt+d"),
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 (_("View") + " > " + _("More"), _("Show Console"), "script-binding console/enable", "`"),
new (_("View") + " > " + _("More"), _("Show Commands"), "script-message-to mpvnet show-commands", "F2"),
new (_("View") + " > " + _("More"), _("Show Bindings"), "script-message-to mpvnet show-bindings"),
new (_("View") + " > " + _("More"), _("Show Keys"), "script-message-to mpvnet show-keys", "Alt+k"),
new (_("View") + " > " + _("More"), _("Show Protocols"), "script-message-to mpvnet show-protocols", "Alt+p"),
new (_("View") + " > " + _("More"), _("Show Decoders"), "script-message-to mpvnet show-decoders"),
new (_("View") + " > " + _("More"), _("Show Demuxers"), "script-message-to mpvnet show-demuxers"),
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 (_("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"), _p("Move", "Left"), "script-message-to mpvnet move-window left", "Alt+Left"),
new (_("Window") + " > " + _("Move"), _p("Move", "Right"), "script-message-to mpvnet move-window right", "Alt+Right"),
new (_("Window") + " > " + _("Move"), _p("Move", "Up"), "script-message-to mpvnet move-window top", "Alt+Up"),
new (_("Window") + " > " + _("Move"), _p("Move", "Down"), "script-message-to mpvnet move-window bottom", "Alt+Down"),
new (_("Window") + " > " + _("Move"), _p("Move", "Center"), "script-message-to mpvnet move-window center", "Alt+BS"),
new (_("Window"), _("Toggle Border"), "cycle border", "b"),
new (_("Window"), _("Toggle On Top"), "cycle ontop", "Ctrl+t"),
Add(b, new ("", _("Profile")));
new ("", _("Profile")),
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 (_("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"), "-"),
new (_("Settings") + " > " + _("Setup"), _("Add mpv.net to Path environment variable"), "script-message-to mpvnet add-to-path"),
new (_("Settings") + " > " + _("Setup"), _("Remove mpv.net from Path environment variable"), "script-message-to mpvnet remove-from-path"),
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"));
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"),
Add(b, new ("", _("Custom")));
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"));
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 ("", "", "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")));
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", "Power", _("Exit")),
};
return b;
return bindings;
static void Add(List<Binding> bindings, Binding b) => bindings.Add(b);
}
public static string ConvertToString(List<Binding> bindings)
@@ -340,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))
{
@@ -356,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();
@@ -423,7 +446,7 @@ public static class InputHelp
public static Dictionary<string, Binding> GetActiveBindings(List<Binding> bindings)
{
Dictionary<string, Binding> ret = new();
Dictionary<string, Binding> ret = [];
foreach (Binding binding in bindings)
{
@@ -448,7 +471,7 @@ public static class InputHelp
Binding binding = it.Value;
if (!keys.Contains(binding.Input) && (charCount + binding.Input.Length) < 15)
if (!keys.Contains(binding.Input) && (charCount + binding.Input.Length) < 30)
{
keys.Add(binding.Input);
charCount += binding.Input.Length;

View File

@@ -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)
// {
// }
//}

View File

@@ -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))

View File

@@ -1,27 +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="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>

View File

@@ -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;
@@ -73,10 +73,12 @@ public class MainPlayer : MpvClient
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");
@@ -102,7 +104,10 @@ public class MainPlayer : MpvClient
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}");
@@ -122,7 +127,7 @@ public class MainPlayer : MpvClient
{
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))
@@ -191,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)
@@ -243,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";
@@ -251,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 {
@@ -283,7 +279,7 @@ public class MainPlayer : MpvClient
App.ApplyInputDefaultBindingsFix();
_Conf = new Dictionary<string, string>();
_Conf = [];
if (File.Exists(ConfPath))
{
@@ -291,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;
@@ -315,7 +311,9 @@ public class MainPlayer : MpvClient
}
foreach (var i in _Conf)
{
ProcessProperty(i.Key, i.Value);
}
return _Conf;
}
@@ -341,7 +339,9 @@ public class MainPlayer : MpvClient
public void MainEventLoop()
{
while (true)
{
mpv_wait_event(MainHandle, -1);
}
}
protected override void OnShutdown()
@@ -441,7 +441,7 @@ public class MainPlayer : MpvClient
file = ConvertFilePath(file);
string ext = file.Ext();
string ext = file.Ext;
if (OperatingSystem.IsWindows())
{
@@ -456,14 +456,6 @@ public class MainPlayer : MpvClient
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)
@@ -497,14 +489,14 @@ public class MainPlayer : MpvClient
Command("stop");
Thread.Sleep(500);
SetPropertyString("dvd-device", path);
LoadFiles(new[] { @"dvd://" }, false, false);
LoadFiles([@"dvd://"], false, false);
}
else
{
Command("stop");
Thread.Sleep(500);
SetPropertyString("bluray-device", path);
LoadFiles(new[] { @"bd://" }, false, false);
LoadFiles([@"bd://"], false, false);
}
}
@@ -516,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);
}
}
@@ -619,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;
}
@@ -647,7 +641,7 @@ public class MainPlayer : MpvClient
if (_audioDevices != null)
return _audioDevices;
_audioDevices = new();
_audioDevices = [];
string json = GetPropertyString("audio-device-list");
var enumerator = JsonDocument.Parse(json).RootElement.EnumerateArray();
@@ -698,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>();
@@ -715,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")
{
@@ -1061,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())

View File

@@ -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>

View File

@@ -1,17 +1,22 @@
<#
Script that releases mpv.net on GitHub.
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.
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
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
@@ -40,7 +45,7 @@ Test (Join-Path $SourceDir 'MpvNet.sln')
$7zFile = Test 'C:\Program Files\7-Zip\7z.exe'
$InnoSetupCompiler = Test 'C:\Program Files (x86)\Inno Setup 6\ISCC.exe'
$ReleaseNotes = "- [.NET Desktop Runtime 6.0](https://dotnet.microsoft.com/en-us/download/dotnet/6.0)`n- [Changelog](https://github.com/mpvnet-player/mpv.net/blob/main/docs/changelog.md)"
$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

View File

@@ -4,8 +4,7 @@
Updates mpv (x64) and libmpv (x64 , ARM64).
Files are downloaded from:
x64: github.com/zhongfly/mpv-winbuild
ARM64: github.com/Andarwinux/mpv-winbuild
https://github.com/shinchiro/mpv-winbuild-cmake/releases
Requires 7zip being installed at 'C:\Program Files\7-Zip\7z.exe'.
@@ -54,8 +53,8 @@ function Unpack($archieveFile, $outputRootDir) {
# Update mpv x64
if (Test-Path (Join-Path $MpvDirX64 'mpv.exe')) {
$apiURL = "https://api.github.com/repos/zhongfly/mpv-winbuild/releases/latest"
$archiveFile = Get-Item (Download $apiURL "mpv-x86_64-[0-9]{8}")
$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
@@ -68,8 +67,8 @@ if (Test-Path (Join-Path $MpvDirX64 'mpv.exe')) {
# Update libmpv x64
if (Test-Path (Join-Path $LibmpvDirX64 'libmpv-2.dll')) {
$apiURL = "https://api.github.com/repos/zhongfly/mpv-winbuild/releases/latest"
$archiveFile = Get-Item (Download $apiURL "mpv-dev-x86_64-[0-9]{8}")
$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
@@ -81,8 +80,8 @@ if (Test-Path (Join-Path $LibmpvDirX64 'libmpv-2.dll')) {
# Update libmpv ARM64
if (Test-Path (Join-Path $LibmpvDirARM64 'libmpv-2.dll')) {
$apiURL = "https://api.github.com/repos/Andarwinux/mpv-winbuild/releases/latest"
$archiveFile = Get-Item (Download $apiURL "mpv-dev-aarch64-[0-9]{8}")
$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