支持触控输入 (#900)

* chore: 删除不需要的 const 说明符

* chore: 优化 Updater 分组

* feat: 添加 TouchHelper 项目

* feat: TouchHelper 需要 UIAccess 权限

* feat: 缩放配置页面改名为缩放模式页面

* feat: 添加自签名证书

* chore: 发布时为 TouchHelper 签名

* feat: 实现 TouchHelper 的功能

* feat: 高级选项移到主页

* feat: 实现安装证书

* perf: 安装证书前检查是否已经安装

* feat: 在单独的文件中记录 TouchHelper 的版本号

* feat: 实现 UI 功能 (1/2)

* feat: 实现 UI 功能 (2/2)

* fix: 修复有时更改触控支持选项时崩溃的问题

* feat: 给触控选项添加说明

* feat: 设置证书友好名称

* feat: 记录 MagSetInputTransform 调用结果

* docs: 添加触控支持说明

* docs: 添加英语文档

* docs: 更新编译文档

* refactor: 使用 ChangeWindowMessageFilterEx 替换 ChangeWindowMessageFilter

* UI: 优化触控支持 UI

* feat: 缩放前自动修复触控支持

* docs: 更新触控支持文档

* feat: 管理员身份下不展示提示

* feat: 了解更多按钮指向文档

* feat: 尝试解决黑边问题

* feat: 解决黑边的触控

* chore: 优化注释

* fix: 优化错误处理

* refactor
This commit is contained in:
Xu 2024-05-09 22:32:50 +08:00 committed by GitHub
commit 3ce10c2b74
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
107 changed files with 3275 additions and 1892 deletions

View file

@ -30,7 +30,7 @@ jobs:
key: Conan-${{ hashFiles('src/**/conanfile.txt') }}-${{ matrix.platform }}
- name: Build
run: python publish.py ${{ matrix.platform }}
run: python publish.py ${{ matrix.platform }} unpackaged certs\Magpie.pfx "${{ secrets.MAGPIE_PFX_PASSWORD }}"
- name: Save hash
id: hash

View file

@ -5,6 +5,7 @@ VisualStudioVersion = 17.1.32228.430
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Magpie", "src\Magpie\Magpie.vcxproj", "{1801171B-65B6-400F-92FF-73EAF499CFB3}"
ProjectSection(ProjectDependencies) = postProject
{05B51BB8-08CB-4907-884F-8E2AD6BF6052} = {05B51BB8-08CB-4907-884F-8E2AD6BF6052}
{1239537C-E5B8-427A-9E7F-EA443D1F3529} = {1239537C-E5B8-427A-9E7F-EA443D1F3529}
{456CCAE4-2C51-4CF2-8D3A-1EFCE8C41A2D} = {456CCAE4-2C51-4CF2-8D3A-1EFCE8C41A2D}
{62503530-B84B-4CC2-80B6-3F89618172B7} = {62503530-B84B-4CC2-80B6-3F89618172B7}
@ -47,6 +48,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Natvis", "Natvis", "{9808D3
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Updater", "src\Updater\Updater.vcxproj", "{E82B7A20-0557-4DC1-B418-87977D7450A4}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TouchHelper", "src\TouchHelper\TouchHelper.vcxproj", "{05B51BB8-08CB-4907-884F-8E2AD6BF6052}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|ARM64 = Debug|ARM64
@ -103,6 +106,14 @@ Global
{E82B7A20-0557-4DC1-B418-87977D7450A4}.Release|ARM64.Build.0 = Release|ARM64
{E82B7A20-0557-4DC1-B418-87977D7450A4}.Release|x64.ActiveCfg = Release|x64
{E82B7A20-0557-4DC1-B418-87977D7450A4}.Release|x64.Build.0 = Release|x64
{05B51BB8-08CB-4907-884F-8E2AD6BF6052}.Debug|ARM64.ActiveCfg = Debug|ARM64
{05B51BB8-08CB-4907-884F-8E2AD6BF6052}.Debug|ARM64.Build.0 = Debug|ARM64
{05B51BB8-08CB-4907-884F-8E2AD6BF6052}.Debug|x64.ActiveCfg = Debug|x64
{05B51BB8-08CB-4907-884F-8E2AD6BF6052}.Debug|x64.Build.0 = Debug|x64
{05B51BB8-08CB-4907-884F-8E2AD6BF6052}.Release|ARM64.ActiveCfg = Release|ARM64
{05B51BB8-08CB-4907-884F-8E2AD6BF6052}.Release|ARM64.Build.0 = Release|ARM64
{05B51BB8-08CB-4907-884F-8E2AD6BF6052}.Release|x64.ActiveCfg = Release|x64
{05B51BB8-08CB-4907-884F-8E2AD6BF6052}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

1
certs/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
!*.pfx

BIN
certs/Magpie.pfx Normal file

Binary file not shown.

View file

@ -0,0 +1,13 @@
Due to OS security restrictions, Magpie requires UIAccess privileges to support touch input. Obtaining this privilege necessitates meeting two conditions:
1. The application must possess a digital signature, and this signature must be verified by a certificate associated with a trusted root certificate authority store on the local machine.
2. TThe application must reside in a "secure location", such as the Program Files or System32 folders.
When enabling touch support, Magpie performs the following actions:
1. Adds a self-signed certificate to the trusted root certificate authority store.
2. Copies the TouchHelper.exe to `System32\Magpie`. During scaling, Magpie runs this program to enable touch support.
Both of these actions constitute significant changes to the OS, thus requiring administrator privileges. If touch support is no longer needed, this option should be disabled. Magpie will then revert these changes, leaving no traces in the OS.
Touch support may fail for various reasons, such as when TouchHelper.exe requires an update. In such cases, Magpie will request administrator privileges before scaling to resolve the issue.

View file

@ -20,7 +20,7 @@ In order to compile Magpie, you need to first install:
conan --version
```
### Compile
### Compiling
1. Clone the repo
@ -29,3 +29,17 @@ In order to compile Magpie, you need to first install:
```
2. Open the Magpie.sln in the root directory and build the solution.
### Enabling Touch Support
To enable touch input support, TouchHelper.exe needs to be signed. While signing is automatically done in the CI pipeline, you can also manually sign it. Follow these steps:
1. Create a self-signed certificate and export it as a pfx file.
2. Replace the `CERT_FINGERPRINT` constant in `src/Magpie/TouchHelper.cpp` with the SHA-1 hash (i.e., fingerprint) of your certificate.
3. Run the following command in the root directory of the repository:
```bash
python publish.py x64 unpackaged <pfx path> <pfx password>
```
This will compile Magpie and sign TouchHelper.exe. The compiled files will be located in `publish\x64`.

View file

@ -2,7 +2,7 @@ Magpie provides mechanisms for interaction with other programs. Through these me
[MagpieWatcher](https://github.com/Blinue/MagpieWatcher) demonstrates how to use these mechanisms.
## How to Receive Notifications When Scaling State Changes
## How to Receive Notifications When Scaling State Changes
You should listen for the MagpieScalingChanged message.
@ -13,15 +13,16 @@ UINT WM_MAGPIE_SCALINGCHANGED = RegisterWindowMessage(L"MagpieScalingChanged");
### Parameters
`wParam` is the event ID. For different events, `lParam` has different meanings. Currently, two events are supported:
* 0: Scaling has ended. `lParam` is not used.
* 1: Scaling has started. `lParam` is the handle of the scaling window.
* 0: Scaling has ended. `lParam` is not used.
* 1: Scaling has started. `lParam` is the handle of the scaling window.
### Notes
If your process has a higher integrity level than Magpie, you won't receive messages broadcasted by Magpie due to User Interface Privilege Isolation (UIPI). In such cases, call ChangeWindowMessageFilter to allow receiving the MagpieScalingChanged message.
If your process has a higher integrity level than Magpie, you won't receive messages broadcasted by Magpie due to User Interface Privilege Isolation (UIPI). In such cases, call [ChangeWindowMessageFilterEx](https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-changewindowmessagefilterex) to allow receiving the MagpieScalingChanged message.
```c++
ChangeWindowMessageFilter(WM_MAGPIE_SCALINGCHANGED, MSGFLT_ADD);
ChangeWindowMessageFilterEx(hYourWindow, WM_MAGPIE_SCALINGCHANGED, MSGFLT_ADD, nullptr);
```
## How to Get the Handle of the Scaling Window
@ -58,6 +59,7 @@ if (message == WM_MAGPIE_SCALINGCHANGED) {
## How to Obtain Scaling Information
Scaling information is stored in the [window properties](https://learn.microsoft.com/en-us/windows/win32/winmsg/about-window-properties) of the scaling window. Currently available properties include:
* `Magpie.SrcHWND`: Handle of the source window
* `Magpie.SrcLeft``Magpie.SrcTop``Magpie.SrcRight``Magpie.SrcBottom`: Source region of scaling
* `Magpie.DestLeft``Magpie.DestTop``Magpie.DestRight``Magpie.DestBottom`: Destination region of scaling
@ -83,5 +85,5 @@ destRect.bottom = (LONG)(INT_PTR)GetProp(hwndScaling, L"Magpie.DestBottom");
Magpie stops scaling when the foreground window changes, with some system windows being exceptions. By setting the `Magpie.ToolWindow` property, you can include your window and all its owned windows in the exceptions list.
```c++
SetProp(hWnd, L"Magpie.ToolWindow", (HANDLE)TRUE);
SetProp(hYourWindow, L"Magpie.ToolWindow", (HANDLE)TRUE);
```

View file

@ -1,8 +1,8 @@
Magpie 提供了和其他程序交互的机制。通过它们,你的应用可以和 Magpie 配合使用。
[MagpieWatcher](https://github.com/Blinue/MagpieWatcher) 演示了如何使用这些机制。
[MagpieWatcher](https://github.com/Blinue/MagpieWatcher) 演示了如何使用这些机制。
## 如何在缩放状态改变时得到通知
## 如何在缩放状态改变时得到通知
你应该监听 MagpieScalingChanged 消息。
@ -13,15 +13,16 @@ UINT WM_MAGPIE_SCALINGCHANGED = RegisterWindowMessage(L"MagpieScalingChanged");
### 参数
`wParam` 为事件 ID对于不同的事件 `lParam` 有不同的含义。目前支持两个事件:
* 0: 缩放已结束。不使用 `lParam`
* 1: 缩放已开始。`lParam` 为缩放窗口句柄。
* 0: 缩放已结束。不使用 `lParam`
* 1: 缩放已开始。`lParam` 为缩放窗口句柄。
### 注意事项
如果你的进程完整性级别 (Integration level) 比 Magpie 更高,由于用户界面特权隔离 (UIPI),你将无法收到 Magpie 广播的消息。这种情况下请调用 ChangeWindowMessageFilter 允许接收 MagpieScalingChanged 消息。
如果你的进程完整性级别 (Integration level) 比 Magpie 更高,由于用户界面特权隔离 (UIPI),你将无法收到 Magpie 广播的消息。这种情况下请调用 [ChangeWindowMessageFilterEx](https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-changewindowmessagefilterex) 以允许接收 MagpieScalingChanged 消息。
```c++
ChangeWindowMessageFilter(WM_MAGPIE_SCALINGCHANGED, MSGFLT_ADD);
ChangeWindowMessageFilterEx(hYourWindow, WM_MAGPIE_SCALINGCHANGED, MSGFLT_ADD, nullptr);
```
## 如何获取缩放窗口句柄
@ -58,6 +59,7 @@ if (message == WM_MAGPIE_SCALINGCHANGED) {
## 如何获取缩放信息
缩放窗口的[窗口属性](https://learn.microsoft.com/en-us/windows/win32/winmsg/about-window-properties)中存储着缩放信息。目前支持以下属性:
* `Magpie.SrcHWND`: 源窗口句柄
* `Magpie.SrcLeft``Magpie.SrcTop``Magpie.SrcRight``Magpie.SrcBottom`: 被缩放区域的边界
* `Magpie.DestLeft``Magpie.DestTop``Magpie.DestRight``Magpie.DestBottom`: 缩放后区域矩形边界
@ -83,5 +85,5 @@ destRect.bottom = (LONG)(INT_PTR)GetProp(hwndScaling, L"Magpie.DestBottom");
前台窗口改变时 Magpie 会停止缩放,只对某些系统窗口例外。你可以通过设置属性 `Magpie.ToolWindow` 将自己的窗口添加入例外,这对由该窗口拥有 (owned) 的窗口也有效。
```c++
SetProp(hWnd, L"Magpie.ToolWindow", (HANDLE)TRUE);
SetProp(hYourWindow, L"Magpie.ToolWindow", (HANDLE)TRUE);
```

View file

@ -0,0 +1,13 @@
由于操作系统的安全限制Magpie 需要 UIAccess 权限来支持触控输入。获得此权限需要满足两个条件:
1. 应用程序必须有一个数字签名,且该签名能够通过与本地计算机上受信任的根证书颁发机构存储相关联的证书来验证。
2. 应用程序必须位于“安全位置”,例如 Program Files、System32 等文件夹中。
启用触控支持时Magpie 将进行以下操作:
1. 向受信任的根证书颁发机构存储添加自签名证书。
2. 将 TouchHelper.exe 文件复制到 `System32\Magpie` 文件夹。在缩放时Magpie 会运行此程序以实现触控支持。
这两项操作都对操作系统构成重大更改因此需要管理员权限。如果不再需要触控支持应关闭此选项Magpie 会撤销这些更改,不在操作系统中留下痕迹。
触控支持可能会因为某些原因失效(比如 TouchHelper.exe 需要更新时如果发生这种情况Magpie 会在缩放前请求管理员权限来修复它。

View file

@ -29,3 +29,17 @@
```
2. 打开根目录的 Magpie.sln 然后生成解决方案。
## 启用触控支持
为了支持触控输入TouchHelper.exe 应签名。签名是在 CI 中自动进行的,但你也可以手动签名,请执行以下步骤:
1. 创建自签名证书,将其导出为 pfx。
2. 将 `src/Magpie/TouchHelper.cpp` 中的 `CERT_FINGERPRINT` 常量替换为你的证书的 SHA-1 哈希值(也即该证书的指纹)。
3. 在存储库根目录下执行以下命令:
```bash
python publish.py x64 unpackaged <pfx 路径> <pfx 密码>
```
这将编译 Magpie 并为 TouchHelper.exe 签名。编译出的程序位于 `publish\x64`

View file

@ -19,7 +19,7 @@ except:
pass
platform = "x64"
if len(sys.argv) == 2:
if len(sys.argv) >= 2:
platform = sys.argv[1]
if not platform in ["x64", "ARM64"]:
raise Exception("非法参数")
@ -60,7 +60,7 @@ if not os.access(msbuildPath, os.X_OK):
os.chdir(os.path.dirname(__file__))
p = subprocess.run("git rev-parse --short HEAD", capture_output=True)
commit_id = str(p.stdout, encoding="utf-8")[0:-1]
commitId = str(p.stdout, encoding="utf-8")[0:-1]
if majorVersion != None:
version_props = f";MajorVersion={majorVersion};MinorVersion={minorVersion};PatchVersion={patchVersion};VersionTag={tag}"
@ -98,7 +98,7 @@ else:
version_props = ""
p = subprocess.run(
f'"{msbuildPath}" -restore -p:RestorePackagesConfig=true;Configuration=Release;Platform={platform};OutDir={os.getcwd()}\\publish\\{platform}\\;CommitId={commit_id}{version_props} Magpie.sln'
f'"{msbuildPath}" -restore -p:RestorePackagesConfig=true;Configuration=Release;Platform={platform};OutDir={os.getcwd()}\\publish\\{platform}\\;CommitId={commitId}{version_props} Magpie.sln'
)
if p.returncode != 0:
raise Exception("编译失败")
@ -211,3 +211,18 @@ os.remove("resources.pri.xml")
os.remove("priconfig.xml")
print("已修剪 resources.pri", flush=True)
#####################################################################
#
# 为 TouchHelper 签名
#
#####################################################################
if len(sys.argv) >= 5:
# sys.argv[2] 保留为打包选项
pfxPath = os.path.join("..\..", sys.argv[3])
pfxPassword = sys.argv[4]
p = subprocess.run(f'"{windowsSdkDir}\\x64\\signtool.exe" sign /fd SHA256 /a /f "{pfxPath}" /p "{pfxPassword}" TouchHelper.exe')
if p.returncode != 0:
raise Exception("makepri 失败")

View file

@ -54,17 +54,14 @@
x:Load="{x:Bind ViewModel.IsAnyUpdateStatus, Mode=OneWay}">
<muxc:InfoBar x:Uid="About_Version_CheckForUpdatesFailed"
IsOpen="{x:Bind ViewModel.IsErrorWhileChecking, Mode=TwoWay}"
Severity="Error"
Visibility="{x:Bind ViewModel.IsErrorWhileChecking, Mode=OneWay}" />
Severity="Error" />
<muxc:InfoBar x:Uid="About_Version_UpdateToDate"
IsOpen="{x:Bind ViewModel.IsNoUpdate, Mode=TwoWay}"
Severity="Success"
Visibility="{x:Bind ViewModel.IsNoUpdate, Mode=OneWay}" />
Severity="Success" />
<muxc:InfoBar Title="{x:Bind ViewModel.UpdateCardTitle, Mode=OneWay}"
IsClosable="{x:Bind ViewModel.IsUpdateCardClosable, Mode=OneWay}"
IsOpen="{x:Bind ViewModel.IsUpdateCardOpen, Mode=TwoWay}"
Severity="Informational"
Visibility="{x:Bind ViewModel.IsUpdateCardOpen, Mode=OneWay}">
Severity="Informational">
<local:SimpleStackPanel>
<Grid Margin="0,0,25,16"
ColumnSpacing="12"

View file

@ -25,7 +25,7 @@ namespace Magpie.App {
#include "EffectParametersViewModel.idl"
#include "ScalingModeEffectItem.idl"
#include "ScalingModeItem.idl"
#include "ScalingConfigurationViewModel.idl"
#include "ScalingModesViewModel.idl"
#include "ProfileViewModel.idl"
#include "SettingsViewModel.idl"
#include "CandidateWindowItem.idl"
@ -34,7 +34,7 @@ namespace Magpie.App {
#include "RootPage.idl"
#include "AboutPage.idl"
#include "HomePage.idl"
#include "ScalingConfigurationPage.idl"
#include "ScalingModesPage.idl"
#include "ProfilePage.idl"
#include "SettingsPage.idl"

View file

@ -52,28 +52,6 @@
Color="#FFFFFF" />
<SolidColorBrush x:Key="DeleteButtonForegroundPressedBrush"
Color="#B3FFFFFF" />
<ResourceDictionary.ThemeDictionaries>
<ResourceDictionary x:Key="Dark">
<StaticResource x:Key="CardBackgroundBrush"
ResourceKey="CardBackgroundFillColorDefaultBrush" />
<StaticResource x:Key="CardBorderBrush"
ResourceKey="CardStrokeColorDefaultBrush" />
<StaticResource x:Key="CardPrimaryForegroundBrush"
ResourceKey="TextFillColorPrimaryBrush" />
<Thickness x:Key="CardBorderThickness">1</Thickness>
</ResourceDictionary>
<ResourceDictionary x:Key="Light">
<StaticResource x:Key="CardBackgroundBrush"
ResourceKey="CardBackgroundFillColorDefaultBrush" />
<StaticResource x:Key="CardBorderBrush"
ResourceKey="CardStrokeColorDefaultBrush" />
<StaticResource x:Key="CardPrimaryForegroundBrush"
ResourceKey="TextFillColorPrimaryBrush" />
<Thickness x:Key="CardBorderThickness">1</Thickness>
</ResourceDictionary>
</ResourceDictionary.ThemeDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>

View file

@ -25,8 +25,8 @@
namespace winrt::Magpie::App {
static constexpr const DWORD USERNAME_DOMAIN_LEN = DNLEN + UNLEN + 2; // Domain Name + '\' + User Name + '\0'
static constexpr const DWORD USERNAME_LEN = UNLEN + 1; // User Name + '\0'
static constexpr DWORD USERNAME_DOMAIN_LEN = DNLEN + UNLEN + 2; // Domain Name + '\' + User Name + '\0'
static constexpr DWORD USERNAME_LEN = UNLEN + 1; // User Name + '\0'
static std::wstring GetTaskName(std::wstring_view userName) noexcept {

View file

@ -0,0 +1,18 @@
<!-- 显示信息的 InfoBar 背景改为蓝色 -->
<!-- 来自 https://github.com/microsoft/PowerToys/blob/3fe78fed65f4a5dc1d309911b8acbe729a0b9f52/src/settings-ui/Settings.UI/SettingsXAML/Themes/Colors.xaml -->
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ResourceDictionary.ThemeDictionaries>
<ResourceDictionary x:Key="Dark">
<SolidColorBrush x:Key="InfoBarInformationalSeverityBackgroundBrush"
Color="#FF34424d" />
<Color x:Key="InfoBarInformationalSeverityIconBackground">#FF5fb2f2</Color>
</ResourceDictionary>
<ResourceDictionary x:Key="Light">
<SolidColorBrush x:Key="InfoBarInformationalSeverityBackgroundBrush"
Color="#FFd3e7f7" />
<Color x:Key="InfoBarInformationalSeverityIconBackground">#FF0063b1</Color>
</ResourceDictionary>
</ResourceDictionary.ThemeDictionaries>
</ResourceDictionary>

View file

@ -59,7 +59,7 @@ struct ScalingModeFloatParameter : ScalingModeFloatParameterT<ScalingModeFloatPa
}
hstring ValueText() const noexcept {
return ScalingConfigurationPage::NumberFormatter().FormatDouble(_value);
return ScalingModesPage::NumberFormatter().FormatDouble(_value);
}
hstring Label() const noexcept {

View file

@ -8,7 +8,7 @@ struct EffectParameterDesc;
namespace winrt::Magpie::App {
struct EffectInfoFlags {
static constexpr const uint32_t CanScale = 1;
static constexpr uint32_t CanScale = 1;
};
struct EffectInfo {

View file

@ -4,6 +4,7 @@
#include "HomePage.g.cpp"
#endif
#include "XamlUtils.h"
#include "ComboBoxHelper.h"
namespace winrt::Magpie::App::implementation {
@ -12,4 +13,8 @@ void HomePage::TimerSlider_Loaded(IInspectable const& sender, RoutedEventArgs co
XamlUtils::UpdateThemeOfTooltips(sender.as<Controls::Slider>(), ActualTheme());
}
void HomePage::ComboBox_DropDownOpened(IInspectable const& sender, IInspectable const&) const {
ComboBoxHelper::DropDownOpened(*this, sender);
}
}

View file

@ -10,6 +10,8 @@ struct HomePage : HomePageT<HomePage> {
return _viewModel;
}
void ComboBox_DropDownOpened(IInspectable const& sender, IInspectable const&) const;
private:
Magpie::App::HomeViewModel _viewModel;
};

View file

@ -59,7 +59,7 @@
</local:SettingsCard>
</local:SettingsGroup>
<local:SettingsGroup x:Uid="Home_Activation">
<local:SettingsExpander x:Uid="Home_Timer">
<local:SettingsExpander x:Uid="Home_Activation_Timer">
<local:SettingsExpander.HeaderIcon>
<FontIcon Glyph="&#xE916;" />
</local:SettingsExpander.HeaderIcon>
@ -86,7 +86,7 @@
</local:SimpleStackPanel>
</local:SettingsExpander.Content>
<local:SettingsExpander.Items>
<local:SettingsCard x:Uid="Home_Timer_Delay">
<local:SettingsCard x:Uid="Home_Activation_Timer_Delay">
<Slider Loaded="TimerSlider_Loaded"
Maximum="5"
Minimum="1"
@ -96,7 +96,7 @@
</local:SettingsExpander.Items>
</local:SettingsExpander>
<Grid>
<local:SettingsCard x:Uid="Home_AutoRestore"
<local:SettingsCard x:Uid="Home_Activation_AutoRestore"
Visibility="{x:Bind ViewModel.IsWndToRestore, Mode=OneWay, Converter={StaticResource NegativeVisibilityConverter}}">
<local:SettingsCard.HeaderIcon>
<FontIcon Glyph="&#xE944;" />
@ -104,7 +104,7 @@
<ToggleSwitch x:Uid="ToggleSwitch"
IsOn="{x:Bind ViewModel.IsAutoRestore, Mode=TwoWay}" />
</local:SettingsCard>
<local:SettingsExpander x:Uid="Home_AutoRestore"
<local:SettingsExpander x:Uid="Home_Activation_AutoRestore"
IsExpanded="{x:Bind ViewModel.IsWndToRestore, Mode=OneWay}"
Visibility="{x:Bind ViewModel.IsWndToRestore, Mode=OneWay}">
<local:SettingsExpander.HeaderIcon>
@ -118,16 +118,108 @@
<local:SettingsCard Header="{x:Bind ViewModel.RestoreWndDesc, Mode=OneWay}">
<local:SimpleStackPanel Orientation="Horizontal"
Spacing="8">
<Button x:Uid="Home_AutoRestore_Activate"
<Button x:Uid="Home_Activation_AutoRestore_Activate"
Click="{x:Bind ViewModel.ActivateRestore}"
Style="{StaticResource AccentButtonStyle}" />
<Button x:Uid="Home_AutoRestore_Clear"
<Button x:Uid="Home_Activation_AutoRestore_Clear"
Click="{x:Bind ViewModel.ClearRestore}" />
</local:SimpleStackPanel>
</local:SettingsCard>
</local:SettingsExpander.Items>
</local:SettingsExpander>
</Grid>
<local:SettingsCard x:Uid="Home_Activation_AllowScalingMaximized">
<ToggleSwitch x:Uid="ToggleSwitch"
IsOn="{x:Bind ViewModel.IsAllowScalingMaximized, Mode=TwoWay}" />
</local:SettingsCard>
</local:SettingsGroup>
<local:SettingsGroup x:Uid="Home_TouchSupport">
<local:SettingsCard x:Uid="Home_TouchSupport_EnableTouchSupport">
<local:SettingsCard.HeaderIcon>
<FontIcon Glyph="&#xEBFC;" />
</local:SettingsCard.HeaderIcon>
<local:SettingsCard.Description>
<local:SimpleStackPanel Orientation="Vertical">
<TextBlock x:Uid="Home_TouchSupport_EnableTouchSupport_Description" />
<HyperlinkButton x:Uid="Home_TouchSupport_EnableTouchSupport_LearnMore"
NavigateUri="{x:Bind ViewModel.TouchSupportLearnMoreUrl, Mode=OneTime}" />
</local:SimpleStackPanel>
</local:SettingsCard.Description>
<ToggleSwitch x:Uid="ToggleSwitch"
IsOn="{x:Bind ViewModel.IsTouchSupportEnabled, Mode=TwoWay}" />
</local:SettingsCard>
<muxc:InfoBar x:Uid="Home_TouchSupport_InfoBar"
IsClosable="False"
IsOpen="{x:Bind ViewModel.IsShowTouchSupportInfoBar, Mode=OneWay}"
Severity="Informational">
<muxc:InfoBar.Resources>
<ResourceDictionary Source="ms-appx:///Magpie.App/BlueInfoBar.xaml" />
</muxc:InfoBar.Resources>
</muxc:InfoBar>
</local:SettingsGroup>
<local:SettingsGroup x:Uid="Home_Advanced">
<local:SettingsCard x:Uid="Home_Advanced_InlineParams">
<local:SettingsCard.HeaderIcon>
<FontIcon Glyph="&#xE9E9;" />
</local:SettingsCard.HeaderIcon>
<ToggleSwitch x:Uid="ToggleSwitch"
IsOn="{x:Bind ViewModel.IsInlineParams, Mode=TwoWay}" />
</local:SettingsCard>
<local:SettingsCard x:Uid="Home_Advanced_SimulateExclusiveFullscreen">
<local:SettingsCard.HeaderIcon>
<FontIcon Glyph="&#xec46;" />
</local:SettingsCard.HeaderIcon>
<ToggleSwitch x:Uid="ToggleSwitch"
IsOn="{x:Bind ViewModel.IsSimulateExclusiveFullscreen, Mode=TwoWay}" />
</local:SettingsCard>
<local:SettingsExpander x:Name="DeveloperModeExpander"
x:Uid="Home_Advanced_DeveloperOptions"
x:Load="{x:Bind ViewModel.IsDeveloperMode, Mode=OneWay}"
IsExpanded="True">
<local:SettingsExpander.HeaderIcon>
<FontIcon Glyph="&#xEC7A;" />
</local:SettingsExpander.HeaderIcon>
<local:SettingsExpander.Content>
<ToggleSwitch x:Uid="ToggleSwitch"
IsOn="{x:Bind ViewModel.IsDeveloperMode, Mode=TwoWay}" />
</local:SettingsExpander.Content>
<local:SettingsExpander.Items>
<local:SettingsCard ContentAlignment="Left">
<CheckBox x:Uid="Home_Advanced_DeveloperOptions_DebugMode"
IsChecked="{x:Bind ViewModel.IsDebugMode, Mode=TwoWay}" />
</local:SettingsCard>
<local:SettingsCard ContentAlignment="Left">
<CheckBox x:Uid="Home_Advanced_DeveloperOptions_DisableEffectCache"
IsChecked="{x:Bind ViewModel.IsEffectCacheDisabled, Mode=TwoWay}" />
</local:SettingsCard>
<local:SettingsCard ContentAlignment="Left">
<CheckBox x:Uid="Home_Advanced_DeveloperOptions_DisableFontCache"
IsChecked="{x:Bind ViewModel.IsFontCacheDisabled, Mode=TwoWay}" />
</local:SettingsCard>
<local:SettingsCard ContentAlignment="Left">
<CheckBox x:Uid="Home_Advanced_DeveloperOptions_SaveEffectSources"
IsChecked="{x:Bind ViewModel.IsSaveEffectSources, Mode=TwoWay}" />
</local:SettingsCard>
<local:SettingsCard ContentAlignment="Left">
<CheckBox x:Uid="Home_Advanced_DeveloperOptions_WarningsAreErrors"
IsChecked="{x:Bind ViewModel.IsWarningsAreErrors, Mode=TwoWay}" />
</local:SettingsCard>
<local:SettingsCard x:Uid="Home_Advanced_DeveloperOptions_DuplicateFrameDetection"
IsWrapEnabled="True">
<ComboBox DropDownOpened="ComboBox_DropDownOpened"
SelectedIndex="{x:Bind ViewModel.DuplicateFrameDetectionMode, Mode=TwoWay}">
<ComboBoxItem x:Uid="Home_Advanced_DeveloperOptions_DuplicateFrameDetection_Always" />
<ComboBoxItem x:Uid="Home_Advanced_DeveloperOptions_DuplicateFrameDetection_Dynamic" />
<ComboBoxItem x:Uid="Home_Advanced_DeveloperOptions_DuplicateFrameDetection_Never" />
</ComboBox>
</local:SettingsCard>
<local:SettingsCard ContentAlignment="Left"
IsEnabled="{x:Bind ViewModel.IsDynamicDection, Mode=OneWay}">
<CheckBox x:Uid="Home_Advanced_DeveloperOptions_EnableStatisticsForDynamicDetection"
IsChecked="{x:Bind ViewModel.IsStatisticsForDynamicDetectionEnabled, Mode=TwoWay}" />
</local:SettingsCard>
</local:SettingsExpander.Items>
</local:SettingsExpander>
</local:SettingsGroup>
</local:SimpleStackPanel>
</local:PageFrame>

View file

@ -9,6 +9,8 @@
#include "StrUtils.h"
#include "UpdateService.h"
#include "CommonSharedConstants.h"
#include "TouchHelper.h"
#include "LocalizationService.h"
namespace winrt::Magpie::App::implementation {
@ -55,9 +57,9 @@ hstring HomeViewModel::TimerButtonText() const noexcept {
ResourceLoader resourceLoader =
ResourceLoader::GetForCurrentView(CommonSharedConstants::APP_RESOURCE_MAP_ID);
if (ScalingService.IsTimerOn()) {
return resourceLoader.GetString(L"Home_Timer_Cancel");
return resourceLoader.GetString(L"Home_Activation_Timer_Cancel");
} else {
hstring fmtStr = resourceLoader.GetString(L"Home_Timer_ButtonText");
hstring fmtStr = resourceLoader.GetString(L"Home_Activation_Timer_ButtonText");
return hstring(fmt::format(
fmt::runtime(std::wstring_view(fmtStr)),
AppSettings::Get().CountdownSeconds()
@ -129,9 +131,9 @@ hstring HomeViewModel::RestoreWndDesc() const noexcept {
ResourceLoader resourceLoader =
ResourceLoader::GetForCurrentView(CommonSharedConstants::APP_RESOURCE_MAP_ID);
hstring curWindow = resourceLoader.GetString(L"Home_AutoRestore_CurWindow");
hstring curWindow = resourceLoader.GetString(L"Home_Activation_AutoRestore_CurWindow");
if (title.empty()) {
hstring emptyTitle = resourceLoader.GetString(L"Home_AutoRestore_EmptyTitle");
hstring emptyTitle = resourceLoader.GetString(L"Home_Activation_AutoRestore_EmptyTitle");
return hstring(StrUtils::Concat(curWindow, L"<", emptyTitle, L">"));
} else {
return curWindow + title;
@ -185,6 +187,223 @@ void HomeViewModel::RemindMeLater() {
ShowUpdateCard(false);
}
bool HomeViewModel::IsTouchSupportEnabled() const noexcept {
// 不检查版本号是否匹配
return TouchHelper::IsTouchSupportEnabled();
}
fire_and_forget HomeViewModel::IsTouchSupportEnabled(bool value) {
if (IsTouchSupportEnabled() == value) {
co_return;
}
auto weakThis = get_weak();
CoreDispatcher dispatcher = CoreWindow::GetForCurrentThread().Dispatcher();
// UAC 可能导致 XAML Islands 崩溃,因此不能在主线程上执行 ShellExecute
// 见 https://github.com/microsoft/microsoft-ui-xaml/issues/4952
co_await resume_background();
TouchHelper::IsTouchSupportEnabled(value);
co_await dispatcher;
if (weakThis.get()) {
RaisePropertyChanged(L"IsTouchSupportEnabled");
RaisePropertyChanged(L"IsShowTouchSupportInfoBar");
}
}
Uri HomeViewModel::TouchSupportLearnMoreUrl() const noexcept {
if (LocalizationService::Get().Language() == L"zh-hans"sv) {
return Uri(L"https://github.com/Blinue/Magpie/blob/38e44d855f43f913b6d894112f09205f75ca07fa/docs/%E5%85%B3%E4%BA%8E%E8%A7%A6%E6%8E%A7%E6%94%AF%E6%8C%81.md");
} else {
return Uri(L"https://github.com/Blinue/Magpie/blob/38e44d855f43f913b6d894112f09205f75ca07fa/docs/About%20touch%20support.md");
}
}
bool HomeViewModel::IsShowTouchSupportInfoBar() const noexcept {
return !Win32Utils::IsProcessElevated() && IsTouchSupportEnabled();
}
bool HomeViewModel::IsAllowScalingMaximized() const noexcept {
return AppSettings::Get().IsAllowScalingMaximized();
}
void HomeViewModel::IsAllowScalingMaximized(bool value) {
AppSettings::Get().IsAllowScalingMaximized(value);
if (value) {
ScalingService::Get().CheckForeground();
}
}
bool HomeViewModel::IsInlineParams() const noexcept {
return AppSettings::Get().IsInlineParams();
}
void HomeViewModel::IsInlineParams(bool value) {
AppSettings& settings = AppSettings::Get();
if (settings.IsInlineParams() == value) {
return;
}
settings.IsInlineParams(value);
RaisePropertyChanged(L"IsInlineParams");
}
bool HomeViewModel::IsSimulateExclusiveFullscreen() const noexcept {
return AppSettings::Get().IsSimulateExclusiveFullscreen();
}
void HomeViewModel::IsSimulateExclusiveFullscreen(bool value) {
AppSettings& settings = AppSettings::Get();
if (settings.IsSimulateExclusiveFullscreen() == value) {
return;
}
settings.IsSimulateExclusiveFullscreen(value);
RaisePropertyChanged(L"IsSimulateExclusiveFullscreen");
}
bool HomeViewModel::IsDeveloperMode() const noexcept {
return AppSettings::Get().IsDeveloperMode();
}
void HomeViewModel::IsDeveloperMode(bool value) {
AppSettings& settings = AppSettings::Get();
if (settings.IsDeveloperMode() == value) {
return;
}
settings.IsDeveloperMode(value);
RaisePropertyChanged(L"IsDeveloperMode");
}
bool HomeViewModel::IsDebugMode() const noexcept {
return AppSettings::Get().IsDebugMode();
}
void HomeViewModel::IsDebugMode(bool value) {
AppSettings& settings = AppSettings::Get();
if (settings.IsDebugMode() == value) {
return;
}
settings.IsDebugMode(value);
RaisePropertyChanged(L"IsDebugMode");
}
bool HomeViewModel::IsEffectCacheDisabled() const noexcept {
return AppSettings::Get().IsEffectCacheDisabled();
}
void HomeViewModel::IsEffectCacheDisabled(bool value) {
AppSettings& settings = AppSettings::Get();
if (settings.IsEffectCacheDisabled() == value) {
return;
}
settings.IsEffectCacheDisabled(value);
RaisePropertyChanged(L"IsEffectCacheDisabled");
}
bool HomeViewModel::IsFontCacheDisabled() const noexcept {
return AppSettings::Get().IsFontCacheDisabled();
}
void HomeViewModel::IsFontCacheDisabled(bool value) {
AppSettings& settings = AppSettings::Get();
if (settings.IsFontCacheDisabled() == value) {
return;
}
settings.IsFontCacheDisabled(value);
RaisePropertyChanged(L"IsFontCacheDisabled");
}
bool HomeViewModel::IsSaveEffectSources() const noexcept {
return AppSettings::Get().IsSaveEffectSources();
}
void HomeViewModel::IsSaveEffectSources(bool value) {
AppSettings& settings = AppSettings::Get();
if (settings.IsSaveEffectSources() == value) {
return;
}
settings.IsSaveEffectSources(value);
RaisePropertyChanged(L"IsSaveEffectSources");
}
bool HomeViewModel::IsWarningsAreErrors() const noexcept {
return AppSettings::Get().IsWarningsAreErrors();
}
void HomeViewModel::IsWarningsAreErrors(bool value) {
AppSettings& settings = AppSettings::Get();
if (settings.IsWarningsAreErrors() == value) {
return;
}
settings.IsWarningsAreErrors(value);
RaisePropertyChanged(L"IsWarningsAreErrors");
}
int HomeViewModel::DuplicateFrameDetectionMode() const noexcept {
return (int)AppSettings::Get().DuplicateFrameDetectionMode();
}
void HomeViewModel::DuplicateFrameDetectionMode(int value) {
if (value < 0) {
return;
}
const auto mode = (::Magpie::Core::DuplicateFrameDetectionMode)value;
AppSettings& settings = AppSettings::Get();
if (settings.DuplicateFrameDetectionMode() == mode) {
return;
}
settings.DuplicateFrameDetectionMode(mode);
RaisePropertyChanged(L"DuplicateFrameDetectionMode");
RaisePropertyChanged(L"IsDynamicDection");
if (mode != ::Magpie::Core::DuplicateFrameDetectionMode::Dynamic) {
settings.IsStatisticsForDynamicDetectionEnabled(false);
RaisePropertyChanged(L"IsStatisticsForDynamicDetectionEnabled");
}
}
bool HomeViewModel::IsDynamicDection() const noexcept {
return AppSettings::Get().DuplicateFrameDetectionMode() == ::Magpie::Core::DuplicateFrameDetectionMode::Dynamic;
}
bool HomeViewModel::IsStatisticsForDynamicDetectionEnabled() const noexcept {
return AppSettings::Get().IsStatisticsForDynamicDetectionEnabled();
}
void HomeViewModel::IsStatisticsForDynamicDetectionEnabled(bool value) {
AppSettings& settings = AppSettings::Get();
if (settings.IsStatisticsForDynamicDetectionEnabled() == value) {
return;
}
settings.IsStatisticsForDynamicDetectionEnabled(value);
RaisePropertyChanged(L"IsStatisticsForDynamicDetectionEnabled");
}
void HomeViewModel::_ScalingService_IsTimerOnChanged(bool value) {
if (!value) {
RaisePropertyChanged(L"TimerProgressRingValue");

View file

@ -49,6 +49,48 @@ struct HomeViewModel : HomeViewModelT<HomeViewModel>, wil::notify_property_chang
void ReleaseNotes();
void RemindMeLater();
bool IsTouchSupportEnabled() const noexcept;
fire_and_forget IsTouchSupportEnabled(bool value);
Uri TouchSupportLearnMoreUrl() const noexcept;
bool IsShowTouchSupportInfoBar() const noexcept;
bool IsAllowScalingMaximized() const noexcept;
void IsAllowScalingMaximized(bool value);
bool IsInlineParams() const noexcept;
void IsInlineParams(bool value);
bool IsSimulateExclusiveFullscreen() const noexcept;
void IsSimulateExclusiveFullscreen(bool value);
bool IsDeveloperMode() const noexcept;
void IsDeveloperMode(bool value);
bool IsDebugMode() const noexcept;
void IsDebugMode(bool value);
bool IsEffectCacheDisabled() const noexcept;
void IsEffectCacheDisabled(bool value);
bool IsFontCacheDisabled() const noexcept;
void IsFontCacheDisabled(bool value);
bool IsSaveEffectSources() const noexcept;
void IsSaveEffectSources(bool value);
bool IsWarningsAreErrors() const noexcept;
void IsWarningsAreErrors(bool value);
int DuplicateFrameDetectionMode() const noexcept;
void DuplicateFrameDetectionMode(int value);
bool IsDynamicDection() const noexcept;
bool IsStatisticsForDynamicDetectionEnabled() const noexcept;
void IsStatisticsForDynamicDetectionEnabled(bool value);
private:
void _ScalingService_IsTimerOnChanged(bool value);

View file

@ -1,6 +1,13 @@
namespace Magpie.App {
runtimeclass HomeViewModel : Windows.UI.Xaml.Data.INotifyPropertyChanged {
HomeViewModel();
Boolean ShowUpdateCard;
String UpdateCardTitle{ get; };
Boolean IsAutoCheckForUpdates;
void DownloadAndInstall();
void ReleaseNotes();
void RemindMeLater();
Boolean IsTimerOn { get; };
Double TimerProgressRingValue { get; };
@ -18,11 +25,22 @@ namespace Magpie.App {
void ActivateRestore();
void ClearRestore();
Boolean ShowUpdateCard;
String UpdateCardTitle { get; };
Boolean IsAutoCheckForUpdates;
void DownloadAndInstall();
void ReleaseNotes();
void RemindMeLater();
Boolean IsTouchSupportEnabled;
Windows.Foundation.Uri TouchSupportLearnMoreUrl { get; };
Boolean IsShowTouchSupportInfoBar { get; };
Boolean IsAllowScalingMaximized;
Boolean IsInlineParams;
Boolean IsSimulateExclusiveFullscreen;
Boolean IsDeveloperMode;
Boolean IsDebugMode;
Boolean IsEffectCacheDisabled;
Boolean IsFontCacheDisabled;
Boolean IsSaveEffectSources;
Boolean IsWarningsAreErrors;
Int32 DuplicateFrameDetectionMode;
Boolean IsDynamicDection{ get; };
Boolean IsStatisticsForDynamicDetectionEnabled;
}
}

View file

@ -148,8 +148,8 @@
<SubType>Code</SubType>
</ClInclude>
<ClInclude Include="ScalingModesService.h" />
<ClInclude Include="ScalingConfigurationViewModel.h">
<DependentUpon>ScalingConfigurationViewModel.idl</DependentUpon>
<ClInclude Include="ScalingModesViewModel.h">
<DependentUpon>ScalingModesViewModel.idl</DependentUpon>
<SubType>Code</SubType>
</ClInclude>
<ClInclude Include="ScalingMode.h" />
@ -171,8 +171,8 @@
<DependentUpon>PageFrame.xaml</DependentUpon>
<SubType>Code</SubType>
</ClInclude>
<ClInclude Include="ScalingConfigurationPage.h">
<DependentUpon>ScalingConfigurationPage.xaml</DependentUpon>
<ClInclude Include="ScalingModesPage.h">
<DependentUpon>ScalingModesPage.xaml</DependentUpon>
<SubType>Code</SubType>
</ClInclude>
<ClInclude Include="ProfileService.h" />
@ -224,6 +224,7 @@
<DependentUpon>TitleBarControl.xaml</DependentUpon>
<SubType>Code</SubType>
</ClInclude>
<ClInclude Include="TouchHelper.h" />
<ClInclude Include="UpdateService.h" />
<ClInclude Include="WrapPanel.h">
<DependentUpon>WrapPanel.idl</DependentUpon>
@ -317,8 +318,8 @@
<SubType>Code</SubType>
</ClCompile>
<ClCompile Include="ScalingModesService.cpp" />
<ClCompile Include="ScalingConfigurationViewModel.cpp">
<DependentUpon>ScalingConfigurationViewModel.idl</DependentUpon>
<ClCompile Include="ScalingModesViewModel.cpp">
<DependentUpon>ScalingModesViewModel.idl</DependentUpon>
<SubType>Code</SubType>
</ClCompile>
<ClCompile Include="ProfilePage.cpp">
@ -338,8 +339,8 @@
<DependentUpon>PageFrame.xaml</DependentUpon>
<SubType>Code</SubType>
</ClCompile>
<ClCompile Include="ScalingConfigurationPage.cpp">
<DependentUpon>ScalingConfigurationPage.xaml</DependentUpon>
<ClCompile Include="ScalingModesPage.cpp">
<DependentUpon>ScalingModesPage.xaml</DependentUpon>
<SubType>Code</SubType>
</ClCompile>
<ClCompile Include="ProfileService.cpp" />
@ -394,6 +395,7 @@
<DependentUpon>TitleBarControl.xaml</DependentUpon>
<SubType>Code</SubType>
</ClCompile>
<ClCompile Include="TouchHelper.cpp" />
<ClCompile Include="UpdateService.cpp" />
<ClCompile Include="WrapPanel.cpp">
<DependentUpon>WrapPanel.idl</DependentUpon>
@ -443,7 +445,7 @@
<None Include="ScalingModeItem.idl">
<SubType>Designer</SubType>
</None>
<None Include="ScalingConfigurationViewModel.idl">
<None Include="ScalingModesViewModel.idl">
<SubType>Designer</SubType>
</None>
<None Include="TextBlockHelper.idl">
@ -455,8 +457,8 @@
<None Include="SettingsViewModel.idl">
<SubType>Designer</SubType>
</None>
<None Include="ScalingConfigurationPage.idl">
<DependentUpon>ScalingConfigurationPage.xaml</DependentUpon>
<None Include="ScalingModesPage.idl">
<DependentUpon>ScalingModesPage.xaml</DependentUpon>
<SubType>Code</SubType>
</None>
<None Include="ShortcutDialog.idl">
@ -529,6 +531,9 @@
<Page Include="AboutPage.xaml">
<SubType>Designer</SubType>
</Page>
<Page Include="BlueInfoBar.xaml">
<SubType>Designer</SubType>
</Page>
<Page Include="CaptionButtonsControl.xaml">
<SubType>Designer</SubType>
</Page>
@ -548,7 +553,7 @@
<Page Include="PageFrame.xaml">
<SubType>Designer</SubType>
</Page>
<Page Include="ScalingConfigurationPage.xaml">
<Page Include="ScalingModesPage.xaml">
<SubType>Designer</SubType>
</Page>
<Page Include="SettingsCard.Resource.xaml">
@ -692,8 +697,8 @@ File.Delete("priconfig.xml");
<ImportGroup Label="ExtensionTargets">
<Import Project="..\..\packages\Microsoft.UI.Xaml.2.8.6\build\native\Microsoft.UI.Xaml.targets" Condition="Exists('..\..\packages\Microsoft.UI.Xaml.2.8.6\build\native\Microsoft.UI.Xaml.targets')" />
<Import Project="..\..\packages\Microsoft.Windows.ImplementationLibrary.1.0.240122.1\build\native\Microsoft.Windows.ImplementationLibrary.targets" Condition="Exists('..\..\packages\Microsoft.Windows.ImplementationLibrary.1.0.240122.1\build\native\Microsoft.Windows.ImplementationLibrary.targets')" />
<Import Project="..\..\packages\Microsoft.Web.WebView2.1.0.2420.47\build\native\Microsoft.Web.WebView2.targets" Condition="Exists('..\..\packages\Microsoft.Web.WebView2.1.0.2420.47\build\native\Microsoft.Web.WebView2.targets')" />
<Import Project="..\..\packages\Microsoft.Windows.CppWinRT.2.0.240405.15\build\native\Microsoft.Windows.CppWinRT.targets" Condition="Exists('..\..\packages\Microsoft.Windows.CppWinRT.2.0.240405.15\build\native\Microsoft.Windows.CppWinRT.targets')" />
<Import Project="..\..\packages\Microsoft.Web.WebView2.1.0.2478.35\build\native\Microsoft.Web.WebView2.targets" Condition="Exists('..\..\packages\Microsoft.Web.WebView2.1.0.2478.35\build\native\Microsoft.Web.WebView2.targets')" />
</ImportGroup>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
@ -702,8 +707,8 @@ File.Delete("priconfig.xml");
<Error Condition="!Exists('..\..\packages\Microsoft.UI.Xaml.2.8.6\build\native\Microsoft.UI.Xaml.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.UI.Xaml.2.8.6\build\native\Microsoft.UI.Xaml.props'))" />
<Error Condition="!Exists('..\..\packages\Microsoft.UI.Xaml.2.8.6\build\native\Microsoft.UI.Xaml.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.UI.Xaml.2.8.6\build\native\Microsoft.UI.Xaml.targets'))" />
<Error Condition="!Exists('..\..\packages\Microsoft.Windows.ImplementationLibrary.1.0.240122.1\build\native\Microsoft.Windows.ImplementationLibrary.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Windows.ImplementationLibrary.1.0.240122.1\build\native\Microsoft.Windows.ImplementationLibrary.targets'))" />
<Error Condition="!Exists('..\..\packages\Microsoft.Web.WebView2.1.0.2420.47\build\native\Microsoft.Web.WebView2.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Web.WebView2.1.0.2420.47\build\native\Microsoft.Web.WebView2.targets'))" />
<Error Condition="!Exists('..\..\packages\Microsoft.Windows.CppWinRT.2.0.240405.15\build\native\Microsoft.Windows.CppWinRT.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Windows.CppWinRT.2.0.240405.15\build\native\Microsoft.Windows.CppWinRT.props'))" />
<Error Condition="!Exists('..\..\packages\Microsoft.Windows.CppWinRT.2.0.240405.15\build\native\Microsoft.Windows.CppWinRT.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Windows.CppWinRT.2.0.240405.15\build\native\Microsoft.Windows.CppWinRT.targets'))" />
<Error Condition="!Exists('..\..\packages\Microsoft.Web.WebView2.1.0.2478.35\build\native\Microsoft.Web.WebView2.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Web.WebView2.1.0.2478.35\build\native\Microsoft.Web.WebView2.targets'))" />
</Target>
</Project>

View file

@ -56,6 +56,9 @@
<Filter>Helpers</Filter>
</ClCompile>
<ClCompile Include="$(GeneratedFilesDir)module.g.cpp" />
<ClCompile Include="TouchHelper.cpp">
<Filter>Helpers</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="pch.h" />
@ -117,6 +120,9 @@
<ClInclude Include="FileDialogHelper.h">
<Filter>Helpers</Filter>
</ClInclude>
<ClInclude Include="TouchHelper.h">
<Filter>Helpers</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<Filter Include="Pages">
@ -131,9 +137,6 @@
<Filter Include="Services">
<UniqueIdentifier>{801d256c-217d-4b4c-a9a9-c40663b4dffe}</UniqueIdentifier>
</Filter>
<Filter Include="Helpers">
<UniqueIdentifier>{36c62660-b63e-423f-a335-8566a408f26b}</UniqueIdentifier>
</Filter>
<Filter Include="Models">
<UniqueIdentifier>{8d78810f-671d-4793-9320-65078af2d7ec}</UniqueIdentifier>
</Filter>
@ -146,6 +149,12 @@
<Filter Include="Triggers">
<UniqueIdentifier>{526230b1-2568-4b66-b57e-4a5dc9a24e10}</UniqueIdentifier>
</Filter>
<Filter Include="Helpers">
<UniqueIdentifier>{36c62660-b63e-423f-a335-8566a408f26b}</UniqueIdentifier>
</Filter>
<Filter Include="Styles">
<UniqueIdentifier>{6d76e40d-2556-40eb-80dc-8a40b0f8ce6c}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
@ -173,9 +182,6 @@
<None Include="NewProfileViewModel.idl">
<Filter>ViewModels</Filter>
</None>
<None Include="ScalingConfigurationViewModel.idl">
<Filter>ViewModels</Filter>
</None>
<None Include="ScalingModeItem.idl">
<Filter>ViewModels</Filter>
</None>
@ -222,7 +228,9 @@
<Filter>Controls</Filter>
</None>
<None Include="Magpie.App.def" />
<None Include="make_resources_pri.py" />
<None Include="ScalingModesViewModel.idl">
<Filter>ViewModels</Filter>
</None>
</ItemGroup>
<ItemGroup>
<Page Include="RootPage.xaml" />
@ -244,9 +252,6 @@
<Page Include="ShortcutControl.xaml">
<Filter>Controls</Filter>
</Page>
<Page Include="ScalingConfigurationPage.xaml">
<Filter>Pages</Filter>
</Page>
<Page Include="ProfilePage.xaml">
<Filter>Pages</Filter>
</Page>
@ -268,6 +273,12 @@
<Page Include="SettingsGroup.Resource.xaml">
<Filter>Controls</Filter>
</Page>
<Page Include="ScalingModesPage.xaml">
<Filter>Pages</Filter>
</Page>
<Page Include="BlueInfoBar.xaml">
<Filter>Styles</Filter>
</Page>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="Magpie.App.rc" />

View file

@ -838,7 +838,7 @@ fire_and_forget ProfileViewModel::_LoadIcon(FrameworkElement const& rootPage) {
co_await resume_background();
static constexpr const UINT ICON_SIZE = 32;
static constexpr UINT ICON_SIZE = 32;
if (isPackaged) {
AppXReader appxReader;
[[maybe_unused]] bool result = appxReader.Initialize(path);

View file

@ -1,6 +1,65 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root">
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
@ -64,28 +123,28 @@
<data name="About_PageFrame.Title" xml:space="preserve">
<value>Über</value>
</data>
<data name="Home_AutoRestore_Activate.Content" xml:space="preserve">
<data name="Home_Activation_AutoRestore_Activate.Content" xml:space="preserve">
<value>Aktivieren</value>
</data>
<data name="Home_AutoRestore_CurWindow" xml:space="preserve">
<data name="Home_Activation_AutoRestore_CurWindow" xml:space="preserve">
<value>Aktuelles Fenster</value>
</data>
<data name="Home_PageFrame.Title" xml:space="preserve">
<value>Startseite</value>
</data>
<data name="Home_AutoRestore_Clear.Content" xml:space="preserve">
<data name="Home_Activation_AutoRestore_Clear.Content" xml:space="preserve">
<value>Säubern</value>
</data>
<data name="Home_Timer.Description" xml:space="preserve">
<data name="Home_Activation_Timer.Description" xml:space="preserve">
<value>Fenster im Vordergrund skalieren, sobald der Timer endet</value>
</data>
<data name="Home_AutoRestore.Description" xml:space="preserve">
<data name="Home_Activation_AutoRestore.Description" xml:space="preserve">
<value>Automatisch skalieren, sobald das Fenster zum Vordergrund zurück kehrt</value>
</data>
<data name="Home_Timer.Header" xml:space="preserve">
<data name="Home_Activation_Timer.Header" xml:space="preserve">
<value>Verzögertes skalieren</value>
</data>
<data name="Home_Timer_Cancel" xml:space="preserve">
<data name="Home_Activation_Timer_Cancel" xml:space="preserve">
<value>Abbrechen</value>
</data>
<data name="ShortcutDialog_Description.Text" xml:space="preserve">
@ -136,25 +195,25 @@
<data name="ToggleSwitch.OnContent" xml:space="preserve">
<value>An</value>
</data>
<data name="Root_ScalingConfiguration.Content" xml:space="preserve">
<data name="Root_ScalingModes.Content" xml:space="preserve">
<value>Skalierungs Konfiguration</value>
</data>
<data name="Settings_General_Theme_Light.Content" xml:space="preserve">
<value>Hell</value>
</data>
<data name="Home_AutoRestore.Header" xml:space="preserve">
<data name="Home_Activation_AutoRestore.Header" xml:space="preserve">
<value>Automatisch wiederherstellen</value>
</data>
<data name="Home_Timer_ButtonText" xml:space="preserve">
<data name="Home_Activation_Timer_ButtonText" xml:space="preserve">
<value>Skaliert nach {}s</value>
</data>
<data name="Home_Timer_Delay.Header" xml:space="preserve">
<data name="Home_Activation_Timer_Delay.Header" xml:space="preserve">
<value>Verzögerung in Sekunden</value>
</data>
<data name="ScalingConfiguration_PageFrame.Title" xml:space="preserve">
<data name="ScalingModes_PageFrame.Title" xml:space="preserve">
<value>Skalierungs Konfiguration</value>
</data>
<data name="Settings_Advanced.Header" xml:space="preserve">
<data name="Home_Advanced.Header" xml:space="preserve">
<value>Erweitert</value>
</data>
<data name="Settings_General.Header" xml:space="preserve">
@ -169,12 +228,9 @@
<data name="Home_Shortcuts_Scale.Header" xml:space="preserve">
<value>Skalierung</value>
</data>
<data name="ScalingConfiguration_General_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_General_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Weitere Optionen</value>
</data>
<data name="ScalingConfiguration_ScalingModes.Header" xml:space="preserve">
<value>Skalierungsmodus</value>
</data>
<data name="Settings_Launch_AlwaysRunAsAdmin.Description" xml:space="preserve">
<value>Du brauchst Administrationsrechte, um diese Einstellung zu nutzen</value>
</data>
@ -322,13 +378,13 @@
<data name="Settings_Launch.Header" xml:space="preserve">
<value>Starten</value>
</data>
<data name="ScalingConfiguration_General_Export.Text" xml:space="preserve">
<data name="ScalingModes_General_Export.Text" xml:space="preserve">
<value>Exportieren</value>
</data>
<data name="ScalingConfiguration_General_Import.Text" xml:space="preserve">
<data name="ScalingModes_General_Import.Text" xml:space="preserve">
<value>Importieren</value>
</data>
<data name="ScalingConfiguration_General_ImportLegacy.Text" xml:space="preserve">
<data name="ScalingModes_General_ImportLegacy.Text" xml:space="preserve">
<value>Importiere ScaleModels.json</value>
</data>
<data name="Home_UpdateCard_ReleaseNotes.Content" xml:space="preserve">
@ -340,97 +396,97 @@
<data name="About_OtherLinks_Repository.Text" xml:space="preserve">
<value>Github repository</value>
</data>
<data name="ScalingConfiguration_Parameters.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Parameters.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Parameter</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Weitere Optionen</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_Delete.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_Delete.Text" xml:space="preserve">
<value>Löschen</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_MoveDown.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_MoveDown.Text" xml:space="preserve">
<value>Runter</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Rename.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Rename.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Umbenennen</value>
</data>
<data name="ScalingConfiguration_ScalingModes_RenameFlyout_OK.Content" xml:space="preserve">
<data name="ScalingModes_RenameFlyout_OK.Content" xml:space="preserve">
<value>OK</value>
</data>
<data name="ScalingConfiguration_ScalingModes_RenameFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_RenameFlyout_Title.Text" xml:space="preserve">
<value>Umbenennen</value>
</data>
<data name="ScalingConfiguration_ScalingModes_AddEffect.Text" xml:space="preserve">
<data name="ScalingModes_AddEffect.Text" xml:space="preserve">
<value>Effekt hinzufügen</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Delete.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Delete.Text" xml:space="preserve">
<value>Löschen</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Description.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Description.Text" xml:space="preserve">
<value>Es wird von den folgenden Profilen verwendet:</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Title.Text" xml:space="preserve">
<value>Sind Sie sicher, dass Sie diesen Skalierungsmodus löschen wollen?</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_MoveUp.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_MoveUp.Text" xml:space="preserve">
<value>Aufwärts bewegen</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DragToReorder.Text" xml:space="preserve">
<data name="ScalingModes_DragToReorder.Text" xml:space="preserve">
<value>Ziehen zum Neuordnen</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingMode.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingMode.Text" xml:space="preserve">
<value>Neuer Skalierungsmodus</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Title.Text" xml:space="preserve">
<value>Neuer Skalierungsmodus</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Scale.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Scale.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Skalierung</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_CopyFrom.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_CopyFrom.Text" xml:space="preserve">
<value>Kopieren von</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_CopyFrom_None" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_CopyFrom_None" xml:space="preserve">
<value>keiner</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Create.Content" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Create.Content" xml:space="preserve">
<value>Erstellen</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Name.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Name.Text" xml:space="preserve">
<value>Name</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_HeightFactor.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_HeightFactor.Text" xml:space="preserve">
<value>Höhe (Skalierungsfaktor)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_HeightPixels.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_HeightPixels.Text" xml:space="preserve">
<value>Höhe (Pixel)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_WidthFactor.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_WidthFactor.Text" xml:space="preserve">
<value>Breite (Skalierungsfaktor)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_WidthPixels.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_WidthPixels.Text" xml:space="preserve">
<value>Breite (Pixel)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type.Text" xml:space="preserve">
<value>Typ</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Absolute" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Absolute" xml:space="preserve">
<value>Absolut</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Absolute_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Absolute_Description" xml:space="preserve">
<value>Einstellen der Größe nach der Skalierung</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Factor" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Factor" xml:space="preserve">
<value>Faktor</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fill" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fill" xml:space="preserve">
<value>Füllen</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fill_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fill_Description" xml:space="preserve">
<value>Füllt den Bildschirm aus, das Bild könnte gestreckt werden</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fit_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fit_Description" xml:space="preserve">
<value>Einstellen des Skalierungsfaktors nach dem proportionalen Ausfüllen des Bildschirms</value>
</data>
<data name="Profile_General.Header" xml:space="preserve">
@ -439,7 +495,7 @@
<data name="Profile_MoreOptions_Rename.Text" xml:space="preserve">
<value>Umbenennen</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fit" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fit" xml:space="preserve">
<value>Anpassen</value>
</data>
<data name="Profile_MoreOptions_Reorder.Text" xml:space="preserve">
@ -454,7 +510,7 @@
<data name="Profile_MoreOptions_ReorderFlyout_Title.Text" xml:space="preserve">
<value>Umsortieren</value>
</data>
<data name="ScalingConfiguration_ParsingFailed.Title" xml:space="preserve">
<data name="ScalingModes_ParsingFailed.Title" xml:space="preserve">
<value>Parsing fehlgeschlagen</value>
</data>
<data name="Profile_General_ScalingMode_None" xml:space="preserve">
@ -556,28 +612,28 @@
<data name="Profile_SourceWindow_DisableWindowResizing.Header" xml:space="preserve">
<value>Fenstergrößenänderung bei Skalierung deaktivieren</value>
</data>
<data name="Settings_Advanced_InlineParams.Description" xml:space="preserve">
<data name="Home_Advanced_InlineParams.Description" xml:space="preserve">
<value>Bringt eine kleine Leistungssteigerung. Allerdings müssen die Effekte jedes Mal neu kompiliert werden, wenn ihre Parameter geändert werden</value>
</data>
<data name="Settings_Advanced_InlineParams.Header" xml:space="preserve">
<data name="Home_Advanced_InlineParams.Header" xml:space="preserve">
<value>Effektparameter inline machen</value>
</data>
<data name="Settings_Advanced_SimulateExclusiveFullscreen.Description" xml:space="preserve">
<data name="Home_Advanced_SimulateExclusiveFullscreen.Description" xml:space="preserve">
<value>Benachrichtigungen und Pop-ups von bestimmten Anwendungen werden blockiert</value>
</data>
<data name="Settings_Advanced_SimulateExclusiveFullscreen.Header" xml:space="preserve">
<data name="Home_Advanced_SimulateExclusiveFullscreen.Header" xml:space="preserve">
<value>Bei Skalierung exklusiven Vollbild simulieren</value>
</data>
<data name="Settings_DeveloperOptions.Description" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions.Description" xml:space="preserve">
<value>Diese Einstellungen sind nur für Entwicklung gedacht</value>
</data>
<data name="Settings_DeveloperOptions.Header" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions.Header" xml:space="preserve">
<value>Entwickleroptionen</value>
</data>
<data name="Settings_DeveloperOptions_DebugMode.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DebugMode.Content" xml:space="preserve">
<value>Debug Modus</value>
</data>
<data name="Settings_DeveloperOptions_DisableEffectCache.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DisableEffectCache.Content" xml:space="preserve">
<value>Effektcache deaktivieren</value>
</data>
<data name="AppSettings_Dialog_Exit" xml:space="preserve">
@ -586,10 +642,10 @@
<data name="Settings_General_RequireRestart_ActionButton.Content" xml:space="preserve">
<value>Magpie Neustarten</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Description_UnknownEffect" xml:space="preserve">
<data name="ScalingModes_Description_UnknownEffect" xml:space="preserve">
<value>Unbekannter Effekt</value>
</data>
<data name="ScalingConfiguration_ScalingModes_HasUnkownEffects.Title" xml:space="preserve">
<data name="ScalingModes_HasUnkownEffects.Title" xml:space="preserve">
<value>Einige Effekte können nicht geparst werden</value>
</data>
<data name="ExportDialog_Title" xml:space="preserve">
@ -625,10 +681,10 @@
<data name="Overlay_Profiler_Timings_Total" xml:space="preserve">
<value>Gesamt</value>
</data>
<data name="Settings_DeveloperOptions_DisableFontCache.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DisableFontCache.Content" xml:space="preserve">
<value>Schrift-Cache deaktivieren</value>
</data>
<data name="Settings_Advanced_AllowScalingMaximized.Header" xml:space="preserve">
<data name="Home_Activation_AllowScalingMaximized.Header" xml:space="preserve">
<value>Skalieren von maximierten oder ausfüllenden Fenstern zulassen</value>
</data>
<data name="FileDialog_JsonFile" xml:space="preserve">
@ -649,13 +705,13 @@
<data name="Home_Shortcuts_Scale.Description" xml:space="preserve">
<value>Skalieren des Vordergrundfensters oder Beenden der Skalierung</value>
</data>
<data name="Home_AutoRestore_EmptyTitle" xml:space="preserve">
<data name="Home_Activation_AutoRestore_EmptyTitle" xml:space="preserve">
<value>Titel ist leer</value>
</data>
<data name="Settings_DeveloperOptions_SaveEffectSources.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_SaveEffectSources.Content" xml:space="preserve">
<value>Quellcode beim Parsen von Effekten speichern</value>
</data>
<data name="Settings_DeveloperOptions_WarningsAreErrors.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_WarningsAreErrors.Content" xml:space="preserve">
<value>Warnungen beim Kompilieren von Effekten als Fehler betrachten</value>
</data>
<data name="AppSettings_ErrorDialog_ConfigLocation" xml:space="preserve">
@ -710,19 +766,19 @@
<data name="About_OtherLinks_License.Text" xml:space="preserve">
<value>Lizenz</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Delete.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Delete.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Löschen</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DragNotSupported.Text" xml:space="preserve">
<data name="ScalingModes_DragNotSupported.Text" xml:space="preserve">
<value>Drag and drop wird bei der Ausführung als Administrator nicht unterstützt</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoveDown.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoveDown.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Runter</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoveUp.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoveUp.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Hoch</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Factor_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Factor_Description" xml:space="preserve">
<value>Einstellen des Skalierungsfaktors relativ zum Eingabebild</value>
</data>
<data name="Root_Defaults.Content" xml:space="preserve">

View file

@ -123,40 +123,40 @@
<data name="Home_Activation.Header" xml:space="preserve">
<value>Activation</value>
</data>
<data name="Home_AutoRestore.Description" xml:space="preserve">
<data name="Home_Activation_AutoRestore.Description" xml:space="preserve">
<value>Scale automatically when the window returns to foreground</value>
</data>
<data name="Home_AutoRestore.Header" xml:space="preserve">
<data name="Home_Activation_AutoRestore.Header" xml:space="preserve">
<value>Auto restore</value>
</data>
<data name="Home_AutoRestore_Activate.Content" xml:space="preserve">
<data name="Home_Activation_AutoRestore_Activate.Content" xml:space="preserve">
<value>Activate</value>
</data>
<data name="Home_AutoRestore_Clear.Content" xml:space="preserve">
<data name="Home_Activation_AutoRestore_Clear.Content" xml:space="preserve">
<value>Clear</value>
</data>
<data name="Home_AutoRestore_CurWindow" xml:space="preserve">
<data name="Home_Activation_AutoRestore_CurWindow" xml:space="preserve">
<value>Current window: </value>
</data>
<data name="Home_AutoRestore_EmptyTitle" xml:space="preserve">
<data name="Home_Activation_AutoRestore_EmptyTitle" xml:space="preserve">
<value>Title is empty</value>
</data>
<data name="Home_PageFrame.Title" xml:space="preserve">
<value>Home</value>
</data>
<data name="Home_Timer.Description" xml:space="preserve">
<data name="Home_Activation_Timer.Description" xml:space="preserve">
<value>Scale the foreground window when timer ends</value>
</data>
<data name="Home_Timer.Header" xml:space="preserve">
<data name="Home_Activation_Timer.Header" xml:space="preserve">
<value>Delayed scaling</value>
</data>
<data name="Home_Timer_ButtonText" xml:space="preserve">
<data name="Home_Activation_Timer_ButtonText" xml:space="preserve">
<value>Scale after {}s</value>
</data>
<data name="Home_Timer_Cancel" xml:space="preserve">
<data name="Home_Activation_Timer_Cancel" xml:space="preserve">
<value>Cancel</value>
</data>
<data name="Home_Timer_Delay.Header" xml:space="preserve">
<data name="Home_Activation_Timer_Delay.Header" xml:space="preserve">
<value>Delay in seconds</value>
</data>
<data name="ShortcutDialog_Cancel" xml:space="preserve">
@ -210,13 +210,13 @@
<data name="Root_Profiles.Content" xml:space="preserve">
<value>Profiles</value>
</data>
<data name="Root_ScalingConfiguration.Content" xml:space="preserve">
<value>Scaling configuration</value>
<data name="Root_ScalingModes.Content" xml:space="preserve">
<value>Scaling modes</value>
</data>
<data name="ScalingConfiguration_PageFrame.Title" xml:space="preserve">
<value>Scaling configuration</value>
<data name="ScalingModes_PageFrame.Title" xml:space="preserve">
<value>Scaling modes</value>
</data>
<data name="Settings_Advanced.Header" xml:space="preserve">
<data name="Home_Advanced.Header" xml:space="preserve">
<value>Advanced</value>
</data>
<data name="Settings_General.Header" xml:space="preserve">
@ -279,21 +279,18 @@
<data name="Settings_Launch.Header" xml:space="preserve">
<value>Launch</value>
</data>
<data name="ScalingConfiguration_General_Export.Text" xml:space="preserve">
<data name="ScalingModes_General_Export.Text" xml:space="preserve">
<value>Export</value>
</data>
<data name="ScalingConfiguration_General_Import.Text" xml:space="preserve">
<data name="ScalingModes_General_Import.Text" xml:space="preserve">
<value>Import</value>
</data>
<data name="ScalingConfiguration_General_ImportLegacy.Text" xml:space="preserve">
<data name="ScalingModes_General_ImportLegacy.Text" xml:space="preserve">
<value>Import ScaleModels.json</value>
</data>
<data name="ScalingConfiguration_General_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_General_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>More options</value>
</data>
<data name="ScalingConfiguration_ScalingModes.Header" xml:space="preserve">
<value>Scaling modes</value>
</data>
<data name="Settings_Launch_AlwaysRunAsAdmin.Description" xml:space="preserve">
<value>You need to run as administrator to use this setting</value>
</data>
@ -330,115 +327,115 @@
<data name="About_OtherLinks_Repository.Text" xml:space="preserve">
<value>Github repository</value>
</data>
<data name="ScalingConfiguration_Parameters.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Parameters.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Parameters</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>More options</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_Delete.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_Delete.Text" xml:space="preserve">
<value>Delete</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_MoveDown.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_MoveDown.Text" xml:space="preserve">
<value>Move down</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_MoveUp.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_MoveUp.Text" xml:space="preserve">
<value>Move up</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Rename.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Rename.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Rename</value>
</data>
<data name="ScalingConfiguration_ScalingModes_RenameFlyout_OK.Content" xml:space="preserve">
<data name="ScalingModes_RenameFlyout_OK.Content" xml:space="preserve">
<value>OK</value>
</data>
<data name="ScalingConfiguration_ScalingModes_RenameFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_RenameFlyout_Title.Text" xml:space="preserve">
<value>Rename</value>
</data>
<data name="ScalingConfiguration_ScalingModes_AddEffect.Text" xml:space="preserve">
<data name="ScalingModes_AddEffect.Text" xml:space="preserve">
<value>Add effect</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Delete.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Delete.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Delete</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Delete.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Delete.Text" xml:space="preserve">
<value>Delete</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Description.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Description.Text" xml:space="preserve">
<value>It is being used by the following profiles:</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Title.Text" xml:space="preserve">
<value>Are you sure you want to delete this scaling mode?</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DragNotSupported.Text" xml:space="preserve">
<data name="ScalingModes_DragNotSupported.Text" xml:space="preserve">
<value>Drag and drop is not supported when running as administrator</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DragToReorder.Text" xml:space="preserve">
<data name="ScalingModes_DragToReorder.Text" xml:space="preserve">
<value>Drag to reorder</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoveDown.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoveDown.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Move down</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoveUp.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoveUp.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Move up</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingMode.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingMode.Text" xml:space="preserve">
<value>New scaling mode</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Title.Text" xml:space="preserve">
<value>New scaling mode</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Scale.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Scale.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Scale</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_CopyFrom.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_CopyFrom.Text" xml:space="preserve">
<value>Copy from</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_CopyFrom_None" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_CopyFrom_None" xml:space="preserve">
<value>None</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Create.Content" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Create.Content" xml:space="preserve">
<value>Create</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Name.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Name.Text" xml:space="preserve">
<value>Name</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_HeightFactor.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_HeightFactor.Text" xml:space="preserve">
<value>Height (scaling factor)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_HeightPixels.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_HeightPixels.Text" xml:space="preserve">
<value>Height (pixels)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_WidthFactor.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_WidthFactor.Text" xml:space="preserve">
<value>Width (scaling factor)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_WidthPixels.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_WidthPixels.Text" xml:space="preserve">
<value>Width (pixels)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type.Text" xml:space="preserve">
<value>Type</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Absolute" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Absolute" xml:space="preserve">
<value>Absolute</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Absolute_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Absolute_Description" xml:space="preserve">
<value>Set the size after scaling</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Factor" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Factor" xml:space="preserve">
<value>Factor</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Factor_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Factor_Description" xml:space="preserve">
<value>Set the scaling factor relative to the input image</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fill" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fill" xml:space="preserve">
<value>Fill</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fill_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fill_Description" xml:space="preserve">
<value>Fills screen, image may be stretched</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fit" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fit" xml:space="preserve">
<value>Fit</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fit_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fit_Description" xml:space="preserve">
<value>Set the scaling factor after filling the screen with proportional scaling</value>
</data>
<data name="Profile_General.Header" xml:space="preserve">
@ -507,7 +504,7 @@
<data name="Profile_MoreOptions_ReorderFlyout_Title.Text" xml:space="preserve">
<value>Reorder</value>
</data>
<data name="ScalingConfiguration_ParsingFailed.Title" xml:space="preserve">
<data name="ScalingModes_ParsingFailed.Title" xml:space="preserve">
<value>Parsing failed</value>
</data>
<data name="Profile_General_ScalingMode_None" xml:space="preserve">
@ -645,16 +642,16 @@
<data name="Profile_SourceWindow_DisableWindowResizing.Header" xml:space="preserve">
<value>Disable window resizing while scaled</value>
</data>
<data name="Settings_Advanced_InlineParams.Description" xml:space="preserve">
<data name="Home_Advanced_InlineParams.Description" xml:space="preserve">
<value>Gives a small performance boost. However, effects must be recompiled each time their parameters are changed</value>
</data>
<data name="Settings_Advanced_InlineParams.Header" xml:space="preserve">
<data name="Home_Advanced_InlineParams.Header" xml:space="preserve">
<value>Make effect parameters inline</value>
</data>
<data name="Settings_Advanced_SimulateExclusiveFullscreen.Description" xml:space="preserve">
<data name="Home_Advanced_SimulateExclusiveFullscreen.Description" xml:space="preserve">
<value>Notifications and pop-ups from certain applications will be blocked</value>
</data>
<data name="Settings_Advanced_SimulateExclusiveFullscreen.Header" xml:space="preserve">
<data name="Home_Advanced_SimulateExclusiveFullscreen.Header" xml:space="preserve">
<value>Simulate exclusive fullscreen when scaling</value>
</data>
<data name="Settings_Launch_RunAtStartup_MinimizeAtStartup.Description" xml:space="preserve">
@ -669,22 +666,22 @@
<data name="AppSettings_Dialog_Warning" xml:space="preserve">
<value>Warning</value>
</data>
<data name="Settings_DeveloperOptions.Description" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions.Description" xml:space="preserve">
<value>These settings are for development use only</value>
</data>
<data name="Settings_DeveloperOptions.Header" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions.Header" xml:space="preserve">
<value>Developer options</value>
</data>
<data name="Settings_DeveloperOptions_DebugMode.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DebugMode.Content" xml:space="preserve">
<value>Debug mode</value>
</data>
<data name="Settings_DeveloperOptions_DisableEffectCache.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DisableEffectCache.Content" xml:space="preserve">
<value>Disable effect cache</value>
</data>
<data name="Settings_DeveloperOptions_SaveEffectSources.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_SaveEffectSources.Content" xml:space="preserve">
<value>Save source code when parsing effects</value>
</data>
<data name="Settings_DeveloperOptions_WarningsAreErrors.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_WarningsAreErrors.Content" xml:space="preserve">
<value>Treat warnings as errors when compiling effects</value>
</data>
<data name="AppSettings_Dialog_Exit" xml:space="preserve">
@ -715,10 +712,10 @@
<data name="Settings_General_RequireRestart_ActionButton.Content" xml:space="preserve">
<value>Restart Magpie</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Description_UnknownEffect" xml:space="preserve">
<data name="ScalingModes_Description_UnknownEffect" xml:space="preserve">
<value>Unknown effect</value>
</data>
<data name="ScalingConfiguration_ScalingModes_HasUnkownEffects.Title" xml:space="preserve">
<data name="ScalingModes_HasUnkownEffects.Title" xml:space="preserve">
<value>Some effects cannot be parsed</value>
</data>
<data name="ExportDialog_Title" xml:space="preserve">
@ -766,10 +763,10 @@
<data name="Overlay_Profiler_Timings_Total" xml:space="preserve">
<value>Total</value>
</data>
<data name="Settings_DeveloperOptions_DisableFontCache.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DisableFontCache.Content" xml:space="preserve">
<value>Disable font cache</value>
</data>
<data name="Settings_Advanced_AllowScalingMaximized.Header" xml:space="preserve">
<data name="Home_Activation_AllowScalingMaximized.Header" xml:space="preserve">
<value>Allow scaling maximized or fullscreen windows</value>
</data>
<data name="FileDialog_JsonFile" xml:space="preserve">
@ -802,19 +799,19 @@
<data name="About_DeveloperModeEnabled" xml:space="preserve">
<value>Developer mode is enabled.</value>
</data>
<data name="Settings_DeveloperOptions_DuplicateFrameDetection.Header" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DuplicateFrameDetection.Header" xml:space="preserve">
<value>Duplicate frame detection</value>
</data>
<data name="Settings_DeveloperOptions_DuplicateFrameDetection_Always.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DuplicateFrameDetection_Always.Content" xml:space="preserve">
<value>Always</value>
</data>
<data name="Settings_DeveloperOptions_DuplicateFrameDetection_Dynamic.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DuplicateFrameDetection_Dynamic.Content" xml:space="preserve">
<value>Dynamic</value>
</data>
<data name="Settings_DeveloperOptions_DuplicateFrameDetection_Never.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DuplicateFrameDetection_Never.Content" xml:space="preserve">
<value>Never</value>
</data>
<data name="Settings_DeveloperOptions_EnableStatisticsForDynamicDetection.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_EnableStatisticsForDynamicDetection.Content" xml:space="preserve">
<value>Enable statistics for dynamic detection</value>
</data>
<data name="Overlay_Profiler_DynamicDetection" xml:space="preserve">
@ -823,4 +820,19 @@
<data name="Overlay_Profiler_FrameRate" xml:space="preserve">
<value>Frame rate</value>
</data>
<data name="Home_TouchSupport_EnableTouchSupport.Header" xml:space="preserve">
<value>Enable touch support</value>
</data>
<data name="Home_TouchSupport_EnableTouchSupport_Description.Text" xml:space="preserve">
<value>You'll need to provide administrator privileges to change this setting</value>
</data>
<data name="Home_TouchSupport_EnableTouchSupport_LearnMore.Content" xml:space="preserve">
<value>Learn more</value>
</data>
<data name="Home_TouchSupport.Header" xml:space="preserve">
<value>Touch support</value>
</data>
<data name="Home_TouchSupport_InfoBar.Title" xml:space="preserve">
<value>If touch support fails, Magpie may request administrator privileges before scaling to perform repairs.</value>
</data>
</root>

View file

@ -132,34 +132,34 @@
<data name="Home_Activation.Header" xml:space="preserve">
<value>Activación</value>
</data>
<data name="Home_AutoRestore.Header" xml:space="preserve">
<data name="Home_Activation_AutoRestore.Header" xml:space="preserve">
<value>Restauración automática</value>
</data>
<data name="Home_AutoRestore_Activate.Content" xml:space="preserve">
<data name="Home_Activation_AutoRestore_Activate.Content" xml:space="preserve">
<value>Activar</value>
</data>
<data name="Home_AutoRestore_Clear.Content" xml:space="preserve">
<data name="Home_Activation_AutoRestore_Clear.Content" xml:space="preserve">
<value>Limpiar</value>
</data>
<data name="Home_AutoRestore_CurWindow" xml:space="preserve">
<data name="Home_Activation_AutoRestore_CurWindow" xml:space="preserve">
<value>Ventana actual: </value>
</data>
<data name="Home_AutoRestore_EmptyTitle" xml:space="preserve">
<data name="Home_Activation_AutoRestore_EmptyTitle" xml:space="preserve">
<value>El titulo esta vacio</value>
</data>
<data name="Home_Timer.Description" xml:space="preserve">
<data name="Home_Activation_Timer.Description" xml:space="preserve">
<value>Escale la ventana de primer plano cuando finalice el temporizador</value>
</data>
<data name="Home_Timer.Header" xml:space="preserve">
<data name="Home_Activation_Timer.Header" xml:space="preserve">
<value>Escalado retrasado</value>
</data>
<data name="Home_Timer_ButtonText" xml:space="preserve">
<data name="Home_Activation_Timer_ButtonText" xml:space="preserve">
<value>Escalar después de {}s</value>
</data>
<data name="Home_Timer_Cancel" xml:space="preserve">
<data name="Home_Activation_Timer_Cancel" xml:space="preserve">
<value>Cancelar</value>
</data>
<data name="Home_Timer_Delay.Header" xml:space="preserve">
<data name="Home_Activation_Timer_Delay.Header" xml:space="preserve">
<value>Espera en segundos</value>
</data>
<data name="ShortcutDialog_Cancel" xml:space="preserve">
@ -198,10 +198,10 @@
<data name="Root_NewProfileFlyout_Title.Text" xml:space="preserve">
<value>Nuevo perfil</value>
</data>
<data name="Root_ScalingConfiguration.Content" xml:space="preserve">
<data name="Root_ScalingModes.Content" xml:space="preserve">
<value>Configuración de escalado</value>
</data>
<data name="Settings_Advanced.Header" xml:space="preserve">
<data name="Home_Advanced.Header" xml:space="preserve">
<value>Avanzado</value>
</data>
<data name="Settings_General.Header" xml:space="preserve">
@ -255,18 +255,15 @@
<data name="Settings_Launch.Header" xml:space="preserve">
<value>Lanzamiento</value>
</data>
<data name="ScalingConfiguration_General_Export.Text" xml:space="preserve">
<data name="ScalingModes_General_Export.Text" xml:space="preserve">
<value>Exportar</value>
</data>
<data name="ScalingConfiguration_General_ImportLegacy.Text" xml:space="preserve">
<data name="ScalingModes_General_ImportLegacy.Text" xml:space="preserve">
<value>Importar ScaleModels.json</value>
</data>
<data name="ScalingConfiguration_General_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_General_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Mas opciones</value>
</data>
<data name="ScalingConfiguration_ScalingModes.Header" xml:space="preserve">
<value>Modos de escalado</value>
</data>
<data name="Settings_Launch_AlwaysRunAsAdmin.Header" xml:space="preserve">
<value>Ejecutar siempre como administrador</value>
</data>
@ -285,67 +282,67 @@
<data name="About_OtherLinks_License.Text" xml:space="preserve">
<value>Licencia</value>
</data>
<data name="ScalingConfiguration_Parameters.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Parameters.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Parámetros</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_Delete.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_Delete.Text" xml:space="preserve">
<value>Borrar</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_MoveDown.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_MoveDown.Text" xml:space="preserve">
<value>Mover hacia abajo</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_MoveUp.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_MoveUp.Text" xml:space="preserve">
<value>Mover hacia arriba</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Rename.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Rename.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Renombrar</value>
</data>
<data name="ScalingConfiguration_ScalingModes_RenameFlyout_OK.Content" xml:space="preserve">
<data name="ScalingModes_RenameFlyout_OK.Content" xml:space="preserve">
<value>Guardar</value>
</data>
<data name="ScalingConfiguration_ScalingModes_RenameFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_RenameFlyout_Title.Text" xml:space="preserve">
<value>Renombrar</value>
</data>
<data name="ScalingConfiguration_ScalingModes_AddEffect.Text" xml:space="preserve">
<data name="ScalingModes_AddEffect.Text" xml:space="preserve">
<value>Agregar efecto</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Delete.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Delete.Text" xml:space="preserve">
<value>Borrar</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Title.Text" xml:space="preserve">
<value>¿Está seguro de que desea eliminar este modo de escalado?</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DragNotSupported.Text" xml:space="preserve">
<data name="ScalingModes_DragNotSupported.Text" xml:space="preserve">
<value>Arrastrar y soltar no es compatible cuando se ejecuta como administrador</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoveUp.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoveUp.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Mover hacia arriba</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_CopyFrom.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_CopyFrom.Text" xml:space="preserve">
<value>Copiado de</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_CopyFrom_None" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_CopyFrom_None" xml:space="preserve">
<value>Ninguno</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Create.Content" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Create.Content" xml:space="preserve">
<value>Crear</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Name.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Name.Text" xml:space="preserve">
<value>Nombre</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_WidthPixels.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_WidthPixels.Text" xml:space="preserve">
<value>Ancho (píxeles)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type.Text" xml:space="preserve">
<value>Tipo</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Absolute_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Absolute_Description" xml:space="preserve">
<value>Establecer el tamaño después de escalar</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Factor" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Factor" xml:space="preserve">
<value>Factor</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fit" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fit" xml:space="preserve">
<value>Adaptar</value>
</data>
<data name="Profile_General.Header" xml:space="preserve">
@ -396,7 +393,7 @@
<data name="Profile_MoreOptions_ReorderFlyout_Title.Text" xml:space="preserve">
<value>Reordenar</value>
</data>
<data name="ScalingConfiguration_ParsingFailed.Title" xml:space="preserve">
<data name="ScalingModes_ParsingFailed.Title" xml:space="preserve">
<value>Análisis fallido</value>
</data>
<data name="Profile_General_ScalingMode_None" xml:space="preserve">
@ -483,10 +480,10 @@
<data name="Profile_SourceWindow_CustomCropping_Top.Header" xml:space="preserve">
<value>Arriba</value>
</data>
<data name="Settings_Advanced_InlineParams.Header" xml:space="preserve">
<data name="Home_Advanced_InlineParams.Header" xml:space="preserve">
<value>Hacer que los parámetros de efecto estén en línea</value>
</data>
<data name="Settings_Advanced_SimulateExclusiveFullscreen.Header" xml:space="preserve">
<data name="Home_Advanced_SimulateExclusiveFullscreen.Header" xml:space="preserve">
<value>Simule pantalla completa exclusiva al escalar</value>
</data>
<data name="AppSettings_Dialog_Error" xml:space="preserve">
@ -495,13 +492,13 @@
<data name="AppSettings_Dialog_Warning" xml:space="preserve">
<value>Advertencia</value>
</data>
<data name="Settings_DeveloperOptions_DebugMode.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DebugMode.Content" xml:space="preserve">
<value>Modo de depuración</value>
</data>
<data name="Settings_DeveloperOptions_SaveEffectSources.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_SaveEffectSources.Content" xml:space="preserve">
<value>Guarde el código fuente al analizar los efectos</value>
</data>
<data name="Settings_DeveloperOptions_WarningsAreErrors.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_WarningsAreErrors.Content" xml:space="preserve">
<value>Tratar las advertencias como errores al compilar efectos</value>
</data>
<data name="AppSettings_Dialog_Exit" xml:space="preserve">
@ -522,10 +519,10 @@
<data name="Settings_General_RequireRestart_ActionButton.Content" xml:space="preserve">
<value>Reiniciar Magpie</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Description_UnknownEffect" xml:space="preserve">
<data name="ScalingModes_Description_UnknownEffect" xml:space="preserve">
<value>Efecto desconocido</value>
</data>
<data name="ScalingConfiguration_ScalingModes_HasUnkownEffects.Title" xml:space="preserve">
<data name="ScalingModes_HasUnkownEffects.Title" xml:space="preserve">
<value>Algunos efectos no se pueden analizar</value>
</data>
<data name="ExportDialog_Title" xml:space="preserve">
@ -543,7 +540,7 @@
<data name="About_Version_Version" xml:space="preserve">
<value>Versión</value>
</data>
<data name="Home_AutoRestore.Description" xml:space="preserve">
<data name="Home_Activation_AutoRestore.Description" xml:space="preserve">
<value>Escale automáticamente cuando la ventana vuelve al primer plano</value>
</data>
<data name="Home_PageFrame.Title" xml:space="preserve">
@ -558,7 +555,7 @@
<data name="Root_About.Content" xml:space="preserve">
<value>Acerca de</value>
</data>
<data name="ScalingConfiguration_PageFrame.Title" xml:space="preserve">
<data name="ScalingModes_PageFrame.Title" xml:space="preserve">
<value>Configuración de escalado</value>
</data>
<data name="Settings_General_Theme.Header" xml:space="preserve">
@ -570,13 +567,13 @@
<data name="Home_Shortcuts_Overlay_ShortcutControl.Title" xml:space="preserve">
<value>Atajo para la superposición en el juego</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoveDown.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoveDown.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Mover hacia abajo</value>
</data>
<data name="Profile_MoreOptions_RenameFlyout_Title.Text" xml:space="preserve">
<value>Renombrar</value>
</data>
<data name="ScalingConfiguration_General_Import.Text" xml:space="preserve">
<data name="ScalingModes_General_Import.Text" xml:space="preserve">
<value>Importar</value>
</data>
<data name="About_Version_UpdateSettings_AutoCheckForUpdates.Header" xml:space="preserve">
@ -585,10 +582,10 @@
<data name="Settings_Launch_AlwaysRunAsAdmin.Description" xml:space="preserve">
<value>Necesita ejecutar como administrador para usar esta configuración</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Description.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Description.Text" xml:space="preserve">
<value>Está siendo utilizado por los siguientes perfiles:</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Absolute" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Absolute" xml:space="preserve">
<value>Absoluto</value>
</data>
<data name="Home_UpdateCard_ReleaseNotes.Content" xml:space="preserve">
@ -600,52 +597,52 @@
<data name="About_OtherLinks_Repository.Text" xml:space="preserve">
<value>Repositorio Github</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DragToReorder.Text" xml:space="preserve">
<data name="ScalingModes_DragToReorder.Text" xml:space="preserve">
<value>Arrastre para reordenar</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Scale.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Scale.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Escalado</value>
</data>
<data name="About_OtherLinks.Header" xml:space="preserve">
<value>Otros enlaces</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Mas opciones</value>
</data>
<data name="About_OtherLinks_FAQ.Text" xml:space="preserve">
<value>Preguntas más frecuentes</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Delete.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Delete.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Borrar</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingMode.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingMode.Text" xml:space="preserve">
<value>Nuevo modo de escalado</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Title.Text" xml:space="preserve">
<value>Nuevo modo de escalado</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_HeightFactor.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_HeightFactor.Text" xml:space="preserve">
<value>Altura (factor de escala)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_HeightPixels.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_HeightPixels.Text" xml:space="preserve">
<value>Altura (píxeles)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_WidthFactor.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_WidthFactor.Text" xml:space="preserve">
<value>Ancho (factor de escala)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Factor_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Factor_Description" xml:space="preserve">
<value>Establecer el factor de escala relativo a la imagen de entrada</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fill" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fill" xml:space="preserve">
<value>Llenar</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fit_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fit_Description" xml:space="preserve">
<value>Establecer el factor de escala después de llenar la pantalla con escala proporcional</value>
</data>
<data name="Profile_General_CaptureMethod.Header" xml:space="preserve">
<value>Método de captura</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fill_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fill_Description" xml:space="preserve">
<value>Llena la pantalla, la imagen puede estirarse</value>
</data>
<data name="Profile_General_Multimonitor.Header" xml:space="preserve">
@ -708,22 +705,22 @@
<data name="Profile_SourceWindow_DisableWindowResizing.Header" xml:space="preserve">
<value>Deshabilitar el cambio de tamaño de la ventana mientras se escala</value>
</data>
<data name="Settings_Advanced_InlineParams.Description" xml:space="preserve">
<data name="Home_Advanced_InlineParams.Description" xml:space="preserve">
<value>Da un pequeño impulso al rendimiento. Sin embargo, los efectos deben volver a compilarse cada vez que se cambien sus parámetros</value>
</data>
<data name="Settings_Advanced_SimulateExclusiveFullscreen.Description" xml:space="preserve">
<data name="Home_Advanced_SimulateExclusiveFullscreen.Description" xml:space="preserve">
<value>Se bloquearán las notificaciones y ventanas emergentes de ciertas aplicaciones</value>
</data>
<data name="Settings_Launch_RunAtStartup_MinimizeAtStartup.Header" xml:space="preserve">
<value>Minimizar a la bandeja del sistema al inicio</value>
</data>
<data name="Settings_DeveloperOptions.Description" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions.Description" xml:space="preserve">
<value>Esta configuración es solo para uso de desarrollo</value>
</data>
<data name="Settings_DeveloperOptions.Header" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions.Header" xml:space="preserve">
<value>Opciones de desarrollador</value>
</data>
<data name="Settings_DeveloperOptions_DisableEffectCache.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DisableEffectCache.Content" xml:space="preserve">
<value>Desactivar caché de los efectos</value>
</data>
<data name="AppSettings_ErrorDialog_ConfigLocation" xml:space="preserve">
@ -763,7 +760,7 @@
<data name="Overlay_Profiler_Timings_SwitchToPasses" xml:space="preserve">
<value>Cambiar a pases</value>
</data>
<data name="Settings_DeveloperOptions_DisableFontCache.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DisableFontCache.Content" xml:space="preserve">
<value>Desactivar la caché de fuentes</value>
</data>
<data name="Overlay_Profiler_Timings_Total" xml:space="preserve">
@ -775,7 +772,7 @@
<data name="FileDialog_ExeFile" xml:space="preserve">
<value>Archivo ejecutable</value>
</data>
<data name="Settings_Advanced_AllowScalingMaximized.Header" xml:space="preserve">
<data name="Home_Activation_AllowScalingMaximized.Header" xml:space="preserve">
<value>Permitir escalar ventanas maximizadas o de pantalla completa</value>
</data>
<data name="Profile_MoreOptions_ChangeExecutableForLaunching.Text" xml:space="preserve">

View file

@ -117,25 +117,25 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="Home_AutoRestore.Description" xml:space="preserve">
<data name="Home_Activation_AutoRestore.Description" xml:space="preserve">
<value>Remise a l'échelle automatique lors du retour de la fenêtre au premier plan</value>
</data>
<data name="Home_AutoRestore.Header" xml:space="preserve">
<data name="Home_Activation_AutoRestore.Header" xml:space="preserve">
<value>Restaurer automatiquement</value>
</data>
<data name="Home_AutoRestore_Clear.Content" xml:space="preserve">
<data name="Home_Activation_AutoRestore_Clear.Content" xml:space="preserve">
<value>Vider</value>
</data>
<data name="Home_AutoRestore_EmptyTitle" xml:space="preserve">
<data name="Home_Activation_AutoRestore_EmptyTitle" xml:space="preserve">
<value>Titre vide</value>
</data>
<data name="Home_Timer.Description" xml:space="preserve">
<data name="Home_Activation_Timer.Description" xml:space="preserve">
<value>Mettre à l'échelle la fenêtre de premier plan à la fin de la minuterie</value>
</data>
<data name="Home_Timer_ButtonText" xml:space="preserve">
<data name="Home_Activation_Timer_ButtonText" xml:space="preserve">
<value>Mise a l'échelle après {}s</value>
</data>
<data name="Home_Timer_Cancel" xml:space="preserve">
<data name="Home_Activation_Timer_Cancel" xml:space="preserve">
<value>Annuler</value>
</data>
<data name="ShortcutDialog_Cancel" xml:space="preserve">
@ -162,7 +162,7 @@
<data name="Root_NewProfileFlyout_Name.Text" xml:space="preserve">
<value>Nom</value>
</data>
<data name="ScalingConfiguration_PageFrame.Title" xml:space="preserve">
<data name="ScalingModes_PageFrame.Title" xml:space="preserve">
<value>Configuration de mise a l'échelle</value>
</data>
<data name="Settings_General_ShowNotifyIcon.Header" xml:space="preserve">
@ -171,13 +171,13 @@
<data name="Settings_General_Theme.Header" xml:space="preserve">
<value>Thème</value>
</data>
<data name="ScalingConfiguration_General_ImportLegacy.Text" xml:space="preserve">
<data name="ScalingModes_General_ImportLegacy.Text" xml:space="preserve">
<value>Importer ScaleModels.json</value>
</data>
<data name="AppSettings_ErrorDialog_NotValidJson" xml:space="preserve">
<value>Le fichier de configuration n'est pas un fichier JSON valide</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Description_UnknownEffect" xml:space="preserve">
<data name="ScalingModes_Description_UnknownEffect" xml:space="preserve">
<value>Effet inconnu</value>
</data>
<data name="ImportLegacyDialog_Title" xml:space="preserve">
@ -207,22 +207,22 @@
<data name="Overlay_Profiler_Timings_Total" xml:space="preserve">
<value>Total</value>
</data>
<data name="Settings_DeveloperOptions_DisableFontCache.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DisableFontCache.Content" xml:space="preserve">
<value>Désactiver le cache des polices</value>
</data>
<data name="About_PageFrame.Title" xml:space="preserve">
<value>A propos</value>
</data>
<data name="Home_Timer_Delay.Header" xml:space="preserve">
<data name="Home_Activation_Timer_Delay.Header" xml:space="preserve">
<value>Délai en secondes</value>
</data>
<data name="Root_About.Content" xml:space="preserve">
<value>A propos</value>
</data>
<data name="Home_AutoRestore_Activate.Content" xml:space="preserve">
<data name="Home_Activation_AutoRestore_Activate.Content" xml:space="preserve">
<value>Activer</value>
</data>
<data name="Home_Timer.Header" xml:space="preserve">
<data name="Home_Activation_Timer.Header" xml:space="preserve">
<value>Mise à l'échelle retardée</value>
</data>
<data name="ShortcutDialog_Description.Text" xml:space="preserve">
@ -237,7 +237,7 @@
<data name="Root_Profiles.Content" xml:space="preserve">
<value>Profils</value>
</data>
<data name="Home_AutoRestore_CurWindow" xml:space="preserve">
<data name="Home_Activation_AutoRestore_CurWindow" xml:space="preserve">
<value>Fenêtre actuelle: </value>
</data>
<data name="Root_NewProfileFlyout_CopyFrom.Text" xml:space="preserve">
@ -255,10 +255,10 @@
<data name="Root_NewProfileFlyout_Title.Text" xml:space="preserve">
<value>Nouveau profil</value>
</data>
<data name="Root_ScalingConfiguration.Content" xml:space="preserve">
<data name="Root_ScalingModes.Content" xml:space="preserve">
<value>Configuration de mise a l'échelle</value>
</data>
<data name="Settings_Advanced.Header" xml:space="preserve">
<data name="Home_Advanced.Header" xml:space="preserve">
<value>Avancée</value>
</data>
<data name="Settings_General.Header" xml:space="preserve">
@ -306,10 +306,10 @@
<data name="Settings_Launch.Header" xml:space="preserve">
<value>Lancez</value>
</data>
<data name="ScalingConfiguration_General_Import.Text" xml:space="preserve">
<data name="ScalingModes_General_Import.Text" xml:space="preserve">
<value>Importer</value>
</data>
<data name="ScalingConfiguration_General_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_General_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Plus d'options</value>
</data>
<data name="Home_Shortcuts_Overlay_ShortcutControl.Title" xml:space="preserve">
@ -321,7 +321,7 @@
<data name="Home_Shortcuts_Scale_ShortcutControl.Title" xml:space="preserve">
<value>Raccourcis de mise a l'échelle</value>
</data>
<data name="ScalingConfiguration_General_Export.Text" xml:space="preserve">
<data name="ScalingModes_General_Export.Text" xml:space="preserve">
<value>Exporter</value>
</data>
<data name="AppSettings_ErrorDialog_ReadFailed" xml:space="preserve">
@ -333,7 +333,7 @@
<data name="Settings_General_RequireRestart_ActionButton.Content" xml:space="preserve">
<value>Redémarrer Magpie</value>
</data>
<data name="ScalingConfiguration_ScalingModes_HasUnkownEffects.Title" xml:space="preserve">
<data name="ScalingModes_HasUnkownEffects.Title" xml:space="preserve">
<value>Certains effet n'ont pas pu être analysés</value>
</data>
<data name="ImportDialog_Title" xml:space="preserve">
@ -376,10 +376,10 @@
<data name="About_DeveloperModeEnabled" xml:space="preserve">
<value>Mode développeur est activer.</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fit" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fit" xml:space="preserve">
<value>Ajuster</value>
</data>
<data name="Settings_DeveloperOptions.Description" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions.Description" xml:space="preserve">
<value>Ces paramètres sont destinés à être utilisés pour le développement uniquement</value>
</data>
<data name="Settings_Launch_RunAtStartup_MinimizeAtStartup.Description" xml:space="preserve">
@ -400,7 +400,7 @@
<data name="Profile_Launch.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Lancer</value>
</data>
<data name="Settings_Advanced_InlineParams.Description" xml:space="preserve">
<data name="Home_Advanced_InlineParams.Description" xml:space="preserve">
<value>Permet d'améliorer légèrement les performances. Cependant, les effets doivent être recompilés chaque fois que leurs paramètres sont modifiés</value>
</data>
<data name="Profile_General_Multimonitor_Closest.Content" xml:space="preserve">
@ -415,10 +415,10 @@
<data name="Home_UpdateCard_RemindMeLater.Content" xml:space="preserve">
<value>Me le rappeler plus tard</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Factor_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Factor_Description" xml:space="preserve">
<value>Définir le facteur d'échelle par rapport à l'image d'entrée</value>
</data>
<data name="ScalingConfiguration_ScalingModes_RenameFlyout_OK.Content" xml:space="preserve">
<data name="ScalingModes_RenameFlyout_OK.Content" xml:space="preserve">
<value>OK</value>
</data>
<data name="Profile_MoreOptions_DeleteFlyout_Title.Text" xml:space="preserve">
@ -427,7 +427,7 @@
<data name="Home_UpdateCard_ReleaseNotes.Content" xml:space="preserve">
<value>Notes de mise à jour</value>
</data>
<data name="Settings_DeveloperOptions_DisableEffectCache.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DisableEffectCache.Content" xml:space="preserve">
<value>Désactiver le cache d'effet</value>
</data>
<data name="About_Feedback_ReportBug.Header" xml:space="preserve">
@ -436,24 +436,21 @@
<data name="FileDialog_JsonFile" xml:space="preserve">
<value>Fichier JSON</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Plus d'options</value>
</data>
<data name="Profile_General_Multimonitor_Intersected.Content" xml:space="preserve">
<value>Écran coupés par la fenêtre source</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Absolute" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Absolute" xml:space="preserve">
<value>Absolu</value>
</data>
<data name="Profile_MoreOptions_OpenProgramLocation.Text" xml:space="preserve">
<value>Ouvrir l'emplacement du programme</value>
</data>
<data name="ScalingConfiguration_ScalingModes_AddEffect.Text" xml:space="preserve">
<data name="ScalingModes_AddEffect.Text" xml:space="preserve">
<value>Ajouter effet</value>
</data>
<data name="ScalingConfiguration_ScalingModes.Header" xml:space="preserve">
<value>Modes de mise à l'échelle</value>
</data>
<data name="Profile_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Plus d'options</value>
</data>
@ -463,13 +460,13 @@
<data name="Profile_Cursor_DrawCursor_ScalingFactor_NoScaling.Content" xml:space="preserve">
<value>Pas de mise à l'échelle</value>
</data>
<data name="Settings_DeveloperOptions_SaveEffectSources.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_SaveEffectSources.Content" xml:space="preserve">
<value>Sauvegarde du code source lors de l'analyse des effets</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Factor" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Factor" xml:space="preserve">
<value>Facteur</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Create.Content" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Create.Content" xml:space="preserve">
<value>Créer</value>
</data>
<data name="Profile_MoreOptions_Delete.Text" xml:space="preserve">
@ -481,7 +478,7 @@
<data name="Profile_SourceWindow_CaptureTitleBar.Header" xml:space="preserve">
<value>Barre de titre de la capture</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoveUp.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoveUp.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Monter</value>
</data>
<data name="Profile_SourceWindow_DisableWindowResizing.Header" xml:space="preserve">
@ -499,10 +496,10 @@
<data name="Profile_Cursor_DrawCursor_ScalingFactor_Custom.Content" xml:space="preserve">
<value>Personnalisé</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_Delete.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_Delete.Text" xml:space="preserve">
<value>Supprimer</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_CopyFrom_None" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_CopyFrom_None" xml:space="preserve">
<value>Aucun</value>
</data>
<data name="Profile_Cursor.Header" xml:space="preserve">
@ -529,16 +526,16 @@
<data name="Profile_SourceWindow_CustomCropping_Right.Header" xml:space="preserve">
<value>La droite</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fit_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fit_Description" xml:space="preserve">
<value>Définir le facteur d'échelle après avoir rempli l'écran avec une échelle proportionnelle</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_MoveDown.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_MoveDown.Text" xml:space="preserve">
<value>Descendre</value>
</data>
<data name="Profile_MoreOptions_RenameFlyout_OK.Content" xml:space="preserve">
<value>OK</value>
</data>
<data name="Settings_DeveloperOptions_DebugMode.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DebugMode.Content" xml:space="preserve">
<value>Mode debug</value>
</data>
<data name="Profile_General_CaptureMethod_Default" xml:space="preserve">
@ -553,10 +550,10 @@
<data name="About_Version_UpdateCard_DownloadAndInstall.Content" xml:space="preserve">
<value>Télécharger et installer</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DragToReorder.Text" xml:space="preserve">
<data name="ScalingModes_DragToReorder.Text" xml:space="preserve">
<value>Faire glisser pour réorganiser</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_WidthFactor.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_WidthFactor.Text" xml:space="preserve">
<value>Largeur (facteur de mise à l'échelle)</value>
</data>
<data name="Profile_MoreOptions_DeleteFlyout_Delete.Text" xml:space="preserve">
@ -568,19 +565,19 @@
<data name="Home_UpdateCard_DownloadAndInstall.Content" xml:space="preserve">
<value>Télécharger et installer</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Absolute_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Absolute_Description" xml:space="preserve">
<value>Définir la taille après la mise à l'échelle</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type.Text" xml:space="preserve">
<value>Type</value>
</data>
<data name="Profile_SourceWindow_CustomCropping_Pixels.Text" xml:space="preserve">
<value>px</value>
</data>
<data name="Settings_Advanced_SimulateExclusiveFullscreen.Description" xml:space="preserve">
<data name="Home_Advanced_SimulateExclusiveFullscreen.Description" xml:space="preserve">
<value>Les notifications et les fenêtres contextuelles de certaines applications seront bloquées</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Rename.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Rename.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Renommer</value>
</data>
<data name="Profile_SourceWindow_CustomCropping_Left.Header" xml:space="preserve">
@ -589,25 +586,25 @@
<data name="Profile_SourceWindow_CustomCropping.Header" xml:space="preserve">
<value>Recadrage personnalisé</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fill_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fill_Description" xml:space="preserve">
<value>Remplit l'écran, l'image peut être étirée</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_HeightFactor.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_HeightFactor.Text" xml:space="preserve">
<value>Hauteur (facteur de mise à l'échelle)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_RenameFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_RenameFlyout_Title.Text" xml:space="preserve">
<value>Renommer</value>
</data>
<data name="Profile_MoreOptions_Rename.Text" xml:space="preserve">
<value>Renommer</value>
</data>
<data name="Settings_DeveloperOptions.Header" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions.Header" xml:space="preserve">
<value>Options développeur</value>
</data>
<data name="SelectLauncherDialog_Title" xml:space="preserve">
<value>Choisissez le fichier exécutable pour lancer le programme</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Name.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Name.Text" xml:space="preserve">
<value>Nom</value>
</data>
<data name="Home_UpdateCard_Title" xml:space="preserve">
@ -616,7 +613,7 @@
<data name="Profile_MoreOptions_RenameFlyout_Title.Text" xml:space="preserve">
<value>Renommer</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoveDown.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoveDown.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Descendre</value>
</data>
<data name="About_Version_UpdateCard_Title" xml:space="preserve">
@ -628,7 +625,7 @@
<data name="Profile_General_CaptureMethod.Header" xml:space="preserve">
<value>Méthode de capture</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_MoveUp.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_MoveUp.Text" xml:space="preserve">
<value>Monter</value>
</data>
<data name="About_Version_UpdateToDate_DownloadFailed.Text" xml:space="preserve">
@ -637,7 +634,7 @@
<data name="About_Version_CheckingForUpdates.Text" xml:space="preserve">
<value>Recherche de mises à jour</value>
</data>
<data name="Settings_DeveloperOptions_WarningsAreErrors.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_WarningsAreErrors.Content" xml:space="preserve">
<value>Traiter les avertissements comme des erreurs lors de la compilation des effets</value>
</data>
<data name="About_Version_UpdateToDate_Installing.Text" xml:space="preserve">
@ -649,7 +646,7 @@
<data name="About_Feedback_Discussion.Header" xml:space="preserve">
<value>Discussions</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fill" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fill" xml:space="preserve">
<value>Remplir</value>
</data>
<data name="Profile_SourceWindow.Header" xml:space="preserve">
@ -670,13 +667,13 @@
<data name="About_Version_UpdateSettings_AutoCheckForUpdates.Header" xml:space="preserve">
<value>Vérifier automatiquement les mises à jour</value>
</data>
<data name="ScalingConfiguration_ParsingFailed.Title" xml:space="preserve">
<data name="ScalingModes_ParsingFailed.Title" xml:space="preserve">
<value>L'analyse a échoué</value>
</data>
<data name="ScalingConfiguration_Parameters.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Parameters.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Paramètres</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Title.Text" xml:space="preserve">
<value>Nouveau mode de mise à l'échelle</value>
</data>
<data name="About_Version_UpdateToDate.Title" xml:space="preserve">
@ -700,7 +697,7 @@
<data name="Profile_General_Multimonitor.Header" xml:space="preserve">
<value>Écrans préférés</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Delete.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Delete.Text" xml:space="preserve">
<value>Supprimer</value>
</data>
<data name="Profile_Performance.Header" xml:space="preserve">
@ -709,25 +706,25 @@
<data name="Settings_Launch_AlwaysRunAsAdmin.Description" xml:space="preserve">
<value>Vous devez exécuter l'application en mode administrateur pour utiliser ce paramètre</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_CopyFrom.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_CopyFrom.Text" xml:space="preserve">
<value>Copie de</value>
</data>
<data name="Profile_MoreOptions_ReorderFlyout_Title.Text" xml:space="preserve">
<value>Réorganisation</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Title.Text" xml:space="preserve">
<value>Êtes-vous sûr de vouloir supprimer ce mode de mise à l'échelle?</value>
</data>
<data name="Settings_Launch_AlwaysRunAsAdmin.Header" xml:space="preserve">
<value>Toujours exécuter en mode administrateur</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Description.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Description.Text" xml:space="preserve">
<value>Il est utilisé par les profils suivants:</value>
</data>
<data name="Profile_SourceWindow_CustomCropping_Top.Header" xml:space="preserve">
<value>Le haut</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingMode.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingMode.Text" xml:space="preserve">
<value>Nouveau mode de mise à l'échelle</value>
</data>
<data name="Home_Shortcuts_Scale.Description" xml:space="preserve">
@ -745,7 +742,7 @@
<data name="AppSettings_Dialog_Warning" xml:space="preserve">
<value>Avertissement</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DragNotSupported.Text" xml:space="preserve">
<data name="ScalingModes_DragNotSupported.Text" xml:space="preserve">
<value>Le glisser-déposer n'est pas pris en charge lorsque l'utilisateur est un administrateur</value>
</data>
<data name="Profile_SourceWindow_CaptureTitleBar.Description" xml:space="preserve">
@ -754,19 +751,19 @@
<data name="Profile_Advanced_DisableDirectFlip.Header" xml:space="preserve">
<value>Désactiver DirectFlip</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_WidthPixels.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_WidthPixels.Text" xml:space="preserve">
<value>Largeur (pixels)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Delete.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Delete.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Supprimer</value>
</data>
<data name="Profile_MoreOptions_ReorderFlyout_MoveDown.Text" xml:space="preserve">
<value>Descendre</value>
</data>
<data name="Settings_Advanced_AllowScalingMaximized.Header" xml:space="preserve">
<data name="Home_Activation_AllowScalingMaximized.Header" xml:space="preserve">
<value>Permettre la mise à l'échelle des fenêtres maximisées ou en plein écran</value>
</data>
<data name="Settings_Advanced_SimulateExclusiveFullscreen.Header" xml:space="preserve">
<data name="Home_Advanced_SimulateExclusiveFullscreen.Header" xml:space="preserve">
<value>Simuler l'exclusivité du plein écran lors de la mise à l'échelle</value>
</data>
<data name="Profile_Performance_ShowFPS.Header" xml:space="preserve">
@ -775,10 +772,10 @@
<data name="About_Version_UpdateToDate_Downloading.Text" xml:space="preserve">
<value>Téléchargement</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Scale.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Scale.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Mise à l'échelle</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_HeightPixels.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_HeightPixels.Text" xml:space="preserve">
<value>Hauteur (pixels)</value>
</data>
<data name="About_Version_CheckForUpdatesFailed.Title" xml:space="preserve">
@ -793,7 +790,7 @@
<data name="About_Version_UpdateSettings_CheckForPreviewUpdates.Header" xml:space="preserve">
<value>Vérifier les mises à jour prévue</value>
</data>
<data name="Settings_Advanced_InlineParams.Header" xml:space="preserve">
<data name="Home_Advanced_InlineParams.Header" xml:space="preserve">
<value>Rendre les paramètres d'effet en ligne</value>
</data>
</root>

View file

@ -117,10 +117,10 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="Home_AutoRestore_Activate.Content" xml:space="preserve">
<data name="Home_Activation_AutoRestore_Activate.Content" xml:space="preserve">
<value>Aktiválás</value>
</data>
<data name="Settings_Advanced.Header" xml:space="preserve">
<data name="Home_Advanced.Header" xml:space="preserve">
<value>Haladó</value>
</data>
<data name="About_OtherLinks_Repository.Text" xml:space="preserve">
@ -147,13 +147,13 @@
<data name="AppSettings_Dialog_Exit" xml:space="preserve">
<value>Kilépés</value>
</data>
<data name="Home_AutoRestore.Header" xml:space="preserve">
<data name="Home_Activation_AutoRestore.Header" xml:space="preserve">
<value>Automatikus visszaállítás</value>
</data>
<data name="Home_UpdateCard_ReleaseNotes.Content" xml:space="preserve">
<value>Kiadási megjegyzések</value>
</data>
<data name="Home_Timer_ButtonText" xml:space="preserve">
<data name="Home_Activation_Timer_ButtonText" xml:space="preserve">
<value>Skálázás {}mp után</value>
</data>
<data name="About_Feedback_ReportBug.Header" xml:space="preserve">
@ -181,7 +181,7 @@
<data name="Profile_Cursor_DrawCursor_ScalingFactor_Custom.Content" xml:space="preserve">
<value>Egyéni</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_Delete.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_Delete.Text" xml:space="preserve">
<value>Törlés</value>
</data>
<data name="Root_Home.Content" xml:space="preserve">
@ -190,10 +190,10 @@
<data name="About_Feedback_RequestFeature.Header" xml:space="preserve">
<value>Funkció kérése</value>
</data>
<data name="Home_AutoRestore_CurWindow" xml:space="preserve">
<data name="Home_Activation_AutoRestore_CurWindow" xml:space="preserve">
<value>Jelenlegi ablak: </value>
</data>
<data name="Home_AutoRestore_EmptyTitle" xml:space="preserve">
<data name="Home_Activation_AutoRestore_EmptyTitle" xml:space="preserve">
<value>A cím üres</value>
</data>
<data name="Profile_General_ScalingMode_None" xml:space="preserve">
@ -220,10 +220,10 @@
<data name="Settings_General_Language.Header" xml:space="preserve">
<value>Nyelv</value>
</data>
<data name="ScalingConfiguration_General_Import.Text" xml:space="preserve">
<data name="ScalingModes_General_Import.Text" xml:space="preserve">
<value>Importálás</value>
</data>
<data name="Home_AutoRestore.Description" xml:space="preserve">
<data name="Home_Activation_AutoRestore.Description" xml:space="preserve">
<value>Automatikus méretezés, amikor az ablak visszatér az előtérbe</value>
</data>
<data name="Root_Defaults.Content" xml:space="preserve">
@ -232,13 +232,13 @@
<data name="About_Version_Version" xml:space="preserve">
<value>Verzió</value>
</data>
<data name="Home_Timer.Header" xml:space="preserve">
<data name="Home_Activation_Timer.Header" xml:space="preserve">
<value>Késleltetett méretezés</value>
</data>
<data name="About_PageFrame.Title" xml:space="preserve">
<value>Rólunk</value>
</data>
<data name="Home_Timer_Delay.Header" xml:space="preserve">
<data name="Home_Activation_Timer_Delay.Header" xml:space="preserve">
<value>Késleltetés másodpercben</value>
</data>
<data name="ShortcutDialog_Save" xml:space="preserve">
@ -250,7 +250,7 @@
<data name="Settings_General_Theme_Light.Content" xml:space="preserve">
<value>Világos</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Name.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Name.Text" xml:space="preserve">
<value>Név</value>
</data>
<data name="Profile_MoreOptions_RenameFlyout_Title.Text" xml:space="preserve">
@ -268,7 +268,7 @@
<data name="About_Version_UpdateToDate_DownloadFailed.Text" xml:space="preserve">
<value>Letöltés meghiúsult</value>
</data>
<data name="Home_Timer_Cancel" xml:space="preserve">
<data name="Home_Activation_Timer_Cancel" xml:space="preserve">
<value>Mégsem</value>
</data>
<data name="About_OtherLinks_ContributionGuidelines.Text" xml:space="preserve">
@ -286,10 +286,10 @@
<data name="About_OtherLinks_License.Text" xml:space="preserve">
<value>Licenc</value>
</data>
<data name="Home_AutoRestore_Clear.Content" xml:space="preserve">
<data name="Home_Activation_AutoRestore_Clear.Content" xml:space="preserve">
<value>Ürítés</value>
</data>
<data name="Home_Timer.Description" xml:space="preserve">
<data name="Home_Activation_Timer.Description" xml:space="preserve">
<value>Az előtérben lévő ablak méretezése az időzítő lejártakor</value>
</data>
<data name="Root_NewProfile.Content" xml:space="preserve">
@ -298,7 +298,7 @@
<data name="About_Feedback_Discussion.Header" xml:space="preserve">
<value>Beszélgetések</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fill" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fill" xml:space="preserve">
<value>Kitöltés</value>
</data>
<data name="Root_NewProfileFlyout_Name.Text" xml:space="preserve">

View file

@ -162,13 +162,13 @@
<data name="Root_Profiles.Content" xml:space="preserve">
<value>Profil</value>
</data>
<data name="Root_ScalingConfiguration.Content" xml:space="preserve">
<data name="Root_ScalingModes.Content" xml:space="preserve">
<value>Konfigurasi penskalaan</value>
</data>
<data name="ScalingConfiguration_PageFrame.Title" xml:space="preserve">
<data name="ScalingModes_PageFrame.Title" xml:space="preserve">
<value>Konfigurasi penskalaan</value>
</data>
<data name="Settings_Advanced.Header" xml:space="preserve">
<data name="Home_Advanced.Header" xml:space="preserve">
<value>Lebih lanjut</value>
</data>
<data name="Settings_General.Header" xml:space="preserve">
@ -231,21 +231,18 @@
<data name="Settings_Launch.Header" xml:space="preserve">
<value>Jalankan</value>
</data>
<data name="ScalingConfiguration_General_Export.Text" xml:space="preserve">
<data name="ScalingModes_General_Export.Text" xml:space="preserve">
<value>Ekspor</value>
</data>
<data name="ScalingConfiguration_General_Import.Text" xml:space="preserve">
<data name="ScalingModes_General_Import.Text" xml:space="preserve">
<value>Impor</value>
</data>
<data name="ScalingConfiguration_General_ImportLegacy.Text" xml:space="preserve">
<data name="ScalingModes_General_ImportLegacy.Text" xml:space="preserve">
<value>Impor ScaleModels.json</value>
</data>
<data name="ScalingConfiguration_General_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_General_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Opsi lainnya</value>
</data>
<data name="ScalingConfiguration_ScalingModes.Header" xml:space="preserve">
<value>Mode penskalaan</value>
</data>
<data name="Settings_Launch_AlwaysRunAsAdmin.Header" xml:space="preserve">
<value>Selalu jalan sebagai administrator</value>
</data>
@ -255,16 +252,16 @@
<data name="Home_Activation.Header" xml:space="preserve">
<value>Aktivasi</value>
</data>
<data name="Home_AutoRestore_Clear.Content" xml:space="preserve">
<data name="Home_Activation_AutoRestore_Clear.Content" xml:space="preserve">
<value>Hapus</value>
</data>
<data name="Home_AutoRestore_EmptyTitle" xml:space="preserve">
<data name="Home_Activation_AutoRestore_EmptyTitle" xml:space="preserve">
<value>Judul kosong</value>
</data>
<data name="Home_PageFrame.Title" xml:space="preserve">
<value>Beranda</value>
</data>
<data name="Home_Timer_Delay.Header" xml:space="preserve">
<data name="Home_Activation_Timer_Delay.Header" xml:space="preserve">
<value>Tunda dalam detik</value>
</data>
<data name="ShortcutDialog_Cancel" xml:space="preserve">
@ -300,94 +297,94 @@
<data name="About_OtherLinks_Repository.Text" xml:space="preserve">
<value>Repositori Github</value>
</data>
<data name="ScalingConfiguration_Parameters.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Parameters.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Parameter</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Opsi lainnya</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_Delete.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_Delete.Text" xml:space="preserve">
<value>Hapus</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_MoveDown.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_MoveDown.Text" xml:space="preserve">
<value>Pindah ke bawah</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_MoveUp.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_MoveUp.Text" xml:space="preserve">
<value>Pindah ke atas</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Rename.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Rename.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Ganti nama</value>
</data>
<data name="ScalingConfiguration_ScalingModes_RenameFlyout_OK.Content" xml:space="preserve">
<data name="ScalingModes_RenameFlyout_OK.Content" xml:space="preserve">
<value>Oke</value>
</data>
<data name="ScalingConfiguration_ScalingModes_RenameFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_RenameFlyout_Title.Text" xml:space="preserve">
<value>Ganti nama</value>
</data>
<data name="ScalingConfiguration_ScalingModes_AddEffect.Text" xml:space="preserve">
<data name="ScalingModes_AddEffect.Text" xml:space="preserve">
<value>Tambah efek</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Delete.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Delete.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Hapus</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Delete.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Delete.Text" xml:space="preserve">
<value>Hapus</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Description.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Description.Text" xml:space="preserve">
<value>Sedang digunakan oleh profil:</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Title.Text" xml:space="preserve">
<value>Apakah kamu yakin ingin menghapus mode penskalaan ini?</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DragNotSupported.Text" xml:space="preserve">
<data name="ScalingModes_DragNotSupported.Text" xml:space="preserve">
<value>Drag and drop tidak didukung saat jalan sebagai administrator</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DragToReorder.Text" xml:space="preserve">
<data name="ScalingModes_DragToReorder.Text" xml:space="preserve">
<value>Drag untuk menyusun ulang</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoveDown.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoveDown.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Pindah ke bawah</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoveUp.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoveUp.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Pindah ke atas</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingMode.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingMode.Text" xml:space="preserve">
<value>Mode penskalaan baru</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Title.Text" xml:space="preserve">
<value>Mode penskalaan baru</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Scale.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Scale.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Skala</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_HeightPixels.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_HeightPixels.Text" xml:space="preserve">
<value>Tinggi (piksel)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_WidthFactor.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_WidthFactor.Text" xml:space="preserve">
<value>Lebar (faktor skala)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_WidthPixels.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_WidthPixels.Text" xml:space="preserve">
<value>Lebar (piksel)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type.Text" xml:space="preserve">
<value>Tipe</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Absolute" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Absolute" xml:space="preserve">
<value>Absolut</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Factor" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Factor" xml:space="preserve">
<value>Faktor</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fill" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fill" xml:space="preserve">
<value>Isi</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fill_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fill_Description" xml:space="preserve">
<value>Isi layar, gambar mungkin meregang</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fit" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fit" xml:space="preserve">
<value>Pas</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fit_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fit_Description" xml:space="preserve">
<value>Atur faktor penskalaan setelah mengisi layar dengan penskalaan proporsional</value>
</data>
<data name="Profile_General.Header" xml:space="preserve">
@ -414,10 +411,10 @@
<data name="Profile_Launch.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Jalankan</value>
</data>
<data name="Home_AutoRestore_CurWindow" xml:space="preserve">
<data name="Home_Activation_AutoRestore_CurWindow" xml:space="preserve">
<value>Window sekarang:</value>
</data>
<data name="Home_Timer_Cancel" xml:space="preserve">
<data name="Home_Activation_Timer_Cancel" xml:space="preserve">
<value>Batal</value>
</data>
<data name="ShortcutDialog_InUse" xml:space="preserve">
@ -426,25 +423,25 @@
<data name="ShortcutDialog_Tip.Text" xml:space="preserve">
<value>Hanya pintasan yang berawal dengan tombol Windows, Ctrl, Alt, atau Shift yang berlaku.</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_HeightFactor.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_HeightFactor.Text" xml:space="preserve">
<value>Tinggi (faktor skala)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_CopyFrom_None" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_CopyFrom_None" xml:space="preserve">
<value>Tidak ada</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Name.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Name.Text" xml:space="preserve">
<value>Nama</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Create.Content" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Create.Content" xml:space="preserve">
<value>Buat</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_CopyFrom.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_CopyFrom.Text" xml:space="preserve">
<value>Salin dari</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Factor_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Factor_Description" xml:space="preserve">
<value>Atur faktor penskalaan relatif terhadap gambar input</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Absolute_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Absolute_Description" xml:space="preserve">
<value>Atur ukuran setelah penskalaan</value>
</data>
<data name="Profile_General_Multimonitor_All.Content" xml:space="preserve">
@ -453,22 +450,22 @@
<data name="Profile_General_Multimonitor_Closest.Content" xml:space="preserve">
<value>Monitor yang paling dekat dengan window sumber</value>
</data>
<data name="Home_AutoRestore.Description" xml:space="preserve">
<data name="Home_Activation_AutoRestore.Description" xml:space="preserve">
<value>Skalakan otomatis ketika jendela kembali ke latar depan</value>
</data>
<data name="Home_AutoRestore.Header" xml:space="preserve">
<data name="Home_Activation_AutoRestore.Header" xml:space="preserve">
<value>Restore otomatis</value>
</data>
<data name="Home_AutoRestore_Activate.Content" xml:space="preserve">
<data name="Home_Activation_AutoRestore_Activate.Content" xml:space="preserve">
<value>Aktivasi</value>
</data>
<data name="Home_Timer.Description" xml:space="preserve">
<data name="Home_Activation_Timer.Description" xml:space="preserve">
<value>Skalakan window latar depan saat timer berakhir</value>
</data>
<data name="Home_Timer.Header" xml:space="preserve">
<data name="Home_Activation_Timer.Header" xml:space="preserve">
<value>Tunda penskalaan</value>
</data>
<data name="Home_Timer_ButtonText" xml:space="preserve">
<data name="Home_Activation_Timer_ButtonText" xml:space="preserve">
<value>Skalakan setelah {} detik</value>
</data>
<data name="Profile_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
@ -507,7 +504,7 @@
<data name="Profile_MoreOptions_ReorderFlyout_Title.Text" xml:space="preserve">
<value>Susun ulang</value>
</data>
<data name="ScalingConfiguration_ParsingFailed.Title" xml:space="preserve">
<data name="ScalingModes_ParsingFailed.Title" xml:space="preserve">
<value>Gagal parsing</value>
</data>
<data name="Profile_General_ScalingMode_None" xml:space="preserve">
@ -645,22 +642,22 @@
<data name="Profile_SourceWindow_DisableWindowResizing.Header" xml:space="preserve">
<value>Nonaktifkan pengubahan ukuran window saat diskalakan</value>
</data>
<data name="Settings_Advanced_InlineParams.Description" xml:space="preserve">
<data name="Home_Advanced_InlineParams.Description" xml:space="preserve">
<value>Memberikan sedikit peningkatan performa. Namun, efek harus dikompilasi ulang setiap kali parameternya diubah</value>
</data>
<data name="Settings_Advanced_InlineParams.Header" xml:space="preserve">
<data name="Home_Advanced_InlineParams.Header" xml:space="preserve">
<value>Membuat parameter efek sejajar</value>
</data>
<data name="Settings_Advanced_SimulateExclusiveFullscreen.Description" xml:space="preserve">
<data name="Home_Advanced_SimulateExclusiveFullscreen.Description" xml:space="preserve">
<value>Pemberitahuan dan pop-up dari aplikasi tertentu akan diblokir</value>
</data>
<data name="Settings_Advanced_SimulateExclusiveFullscreen.Header" xml:space="preserve">
<data name="Home_Advanced_SimulateExclusiveFullscreen.Header" xml:space="preserve">
<value>Mensimulasikan layar penuh eksklusif saat melakukan penskalaan</value>
</data>
<data name="Settings_Launch_RunAtStartup_MinimizeAtStartup.Description" xml:space="preserve">
<value>Anda harus mengaktifkan "Tampilkan aplikasi pada system tray" untuk menggunakan pengaturan ini</value>
</data>
<data name="Settings_DeveloperOptions.Description" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions.Description" xml:space="preserve">
<value>Pengaturan ini hanya untuk penggunaan pengembangan</value>
</data>
<data name="Settings_Launch_RunAtStartup_MinimizeAtStartup.Header" xml:space="preserve">
@ -669,19 +666,19 @@
<data name="AppSettings_Dialog_Exit" xml:space="preserve">
<value>Keluar</value>
</data>
<data name="Settings_DeveloperOptions_DisableEffectCache.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DisableEffectCache.Content" xml:space="preserve">
<value>Nonaktifkan cache efek</value>
</data>
<data name="Settings_DeveloperOptions_SaveEffectSources.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_SaveEffectSources.Content" xml:space="preserve">
<value>Simpan kode sumber ketika efek parsing</value>
</data>
<data name="Settings_DeveloperOptions_DebugMode.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DebugMode.Content" xml:space="preserve">
<value>Mode debug</value>
</data>
<data name="Settings_DeveloperOptions.Header" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions.Header" xml:space="preserve">
<value>Pilihan pengembang</value>
</data>
<data name="Settings_DeveloperOptions_WarningsAreErrors.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_WarningsAreErrors.Content" xml:space="preserve">
<value>Perlakukan peringatan sebagai eror saat menyusun efek</value>
</data>
<data name="AppSettings_Dialog_Error" xml:space="preserve">

View file

@ -123,7 +123,7 @@
<data name="Home_PageFrame.Title" xml:space="preserve">
<value>Home</value>
</data>
<data name="Home_Timer_Cancel" xml:space="preserve">
<data name="Home_Activation_Timer_Cancel" xml:space="preserve">
<value>Annulla</value>
</data>
<data name="ShortcutDialog_InUse" xml:space="preserve">
@ -132,31 +132,31 @@
<data name="Home_Activation.Header" xml:space="preserve">
<value>Attivazione</value>
</data>
<data name="Home_AutoRestore.Header" xml:space="preserve">
<data name="Home_Activation_AutoRestore.Header" xml:space="preserve">
<value>Ripristino automatico</value>
</data>
<data name="Home_AutoRestore_Activate.Content" xml:space="preserve">
<data name="Home_Activation_AutoRestore_Activate.Content" xml:space="preserve">
<value>Attiva</value>
</data>
<data name="Home_AutoRestore_Clear.Content" xml:space="preserve">
<data name="Home_Activation_AutoRestore_Clear.Content" xml:space="preserve">
<value>Pulisci</value>
</data>
<data name="Home_AutoRestore_CurWindow" xml:space="preserve">
<data name="Home_Activation_AutoRestore_CurWindow" xml:space="preserve">
<value>Finestra corrente:</value>
</data>
<data name="Home_AutoRestore_EmptyTitle" xml:space="preserve">
<data name="Home_Activation_AutoRestore_EmptyTitle" xml:space="preserve">
<value>Il titolo è vuoto</value>
</data>
<data name="Home_Timer.Description" xml:space="preserve">
<data name="Home_Activation_Timer.Description" xml:space="preserve">
<value>Ridimensiona la finestra in primo piano allo scadere del timer</value>
</data>
<data name="Home_Timer.Header" xml:space="preserve">
<data name="Home_Activation_Timer.Header" xml:space="preserve">
<value>Ridimensionamento ritardato</value>
</data>
<data name="Home_Timer_ButtonText" xml:space="preserve">
<data name="Home_Activation_Timer_ButtonText" xml:space="preserve">
<value>Ridimensiona dopo {}s</value>
</data>
<data name="Home_Timer_Delay.Header" xml:space="preserve">
<data name="Home_Activation_Timer_Delay.Header" xml:space="preserve">
<value>Ritardo in secondi</value>
</data>
<data name="ShortcutDialog_Cancel" xml:space="preserve">
@ -195,10 +195,10 @@
<data name="Root_Profiles.Content" xml:space="preserve">
<value>Profili</value>
</data>
<data name="Root_ScalingConfiguration.Content" xml:space="preserve">
<data name="Root_ScalingModes.Content" xml:space="preserve">
<value>Configurazione del ridimensionamento</value>
</data>
<data name="Settings_Advanced.Header" xml:space="preserve">
<data name="Home_Advanced.Header" xml:space="preserve">
<value>Avanzate</value>
</data>
<data name="Settings_General_Language_System" xml:space="preserve">
@ -222,21 +222,18 @@
<data name="Settings_Launch.Header" xml:space="preserve">
<value>Avvia</value>
</data>
<data name="ScalingConfiguration_General_Export.Text" xml:space="preserve">
<data name="ScalingModes_General_Export.Text" xml:space="preserve">
<value>Esporta</value>
</data>
<data name="ScalingConfiguration_General_Import.Text" xml:space="preserve">
<data name="ScalingModes_General_Import.Text" xml:space="preserve">
<value>Importa</value>
</data>
<data name="ScalingConfiguration_General_ImportLegacy.Text" xml:space="preserve">
<data name="ScalingModes_General_ImportLegacy.Text" xml:space="preserve">
<value>Importa ScaleModels.json</value>
</data>
<data name="ScalingConfiguration_General_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_General_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Altre opzioni</value>
</data>
<data name="ScalingConfiguration_ScalingModes.Header" xml:space="preserve">
<value>Modalità di ridimensionamento</value>
</data>
<data name="Settings_Launch_AlwaysRunAsAdmin.Description" xml:space="preserve">
<value>Devi eseguire l'app come amministratore per usare questa impostazione</value>
</data>
@ -264,91 +261,91 @@
<data name="About_OtherLinks_ContributionGuidelines.Text" xml:space="preserve">
<value>Linee guida per contribuire</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_Delete.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_Delete.Text" xml:space="preserve">
<value>Cancella</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_MoveDown.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_MoveDown.Text" xml:space="preserve">
<value>Sposta in basso</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_MoveUp.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_MoveUp.Text" xml:space="preserve">
<value>Sposta in alto</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Delete.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Delete.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Cancella</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Delete.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Delete.Text" xml:space="preserve">
<value>Cancella</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Description.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Description.Text" xml:space="preserve">
<value>Viene utilizzato dai seguenti profili:</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Title.Text" xml:space="preserve">
<value>Sei sicuro di voler eliminare questa modalità di ridimensionamento?</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DragNotSupported.Text" xml:space="preserve">
<data name="ScalingModes_DragNotSupported.Text" xml:space="preserve">
<value>Il trascinamento non è supportato quando si usa l'app come amministratore</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DragToReorder.Text" xml:space="preserve">
<data name="ScalingModes_DragToReorder.Text" xml:space="preserve">
<value>Trascina per riordinare</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoveDown.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoveDown.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Sposta in basso</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoveUp.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoveUp.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Sposta in alto</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingMode.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingMode.Text" xml:space="preserve">
<value>Nuova modalità di ridimensionamento</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Scale.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Scale.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Ridimensiona</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_CopyFrom.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_CopyFrom.Text" xml:space="preserve">
<value>Copia da</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_CopyFrom_None" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_CopyFrom_None" xml:space="preserve">
<value>Nessuno</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Create.Content" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Create.Content" xml:space="preserve">
<value>Crea</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Name.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Name.Text" xml:space="preserve">
<value>Nome</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_HeightFactor.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_HeightFactor.Text" xml:space="preserve">
<value>Altezza (fattore di scala)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_HeightPixels.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_HeightPixels.Text" xml:space="preserve">
<value>Altezza (pixel)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_WidthFactor.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_WidthFactor.Text" xml:space="preserve">
<value>Larghezza (fattore di scala)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_WidthPixels.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_WidthPixels.Text" xml:space="preserve">
<value>Larghezza (pixel)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type.Text" xml:space="preserve">
<value>Tipo</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Absolute" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Absolute" xml:space="preserve">
<value>Assoluto</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Absolute_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Absolute_Description" xml:space="preserve">
<value>Imposta la dimensione dopo il ridimensionamento</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Factor" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Factor" xml:space="preserve">
<value>Fattore</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Factor_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Factor_Description" xml:space="preserve">
<value>Impostare il fattore di scala relativo all'immagine in entrata</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fill" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fill" xml:space="preserve">
<value>Riempi</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fill_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fill_Description" xml:space="preserve">
<value>Riempi lo schermo, l'immagine potrebbe essere allungata</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fit" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fit" xml:space="preserve">
<value>Adatta</value>
</data>
<data name="Profile_General.Header" xml:space="preserve">
@ -357,7 +354,7 @@
<data name="Profile_General_3DGameMode.Header" xml:space="preserve">
<value>Modalità gioco 3D</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fit_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fit_Description" xml:space="preserve">
<value>Imposta il fattore di ridimensionamento dopo aver riempito lo schermo con il ridimensionamento proporzionale</value>
</data>
<data name="Profile_General_Multimonitor.Header" xml:space="preserve">
@ -480,7 +477,7 @@
<data name="Profile_SourceWindow_CustomCropping_Top.Header" xml:space="preserve">
<value>Parte superiore</value>
</data>
<data name="Settings_Advanced_SimulateExclusiveFullscreen.Description" xml:space="preserve">
<data name="Home_Advanced_SimulateExclusiveFullscreen.Description" xml:space="preserve">
<value>Le notifiche e i popup di determinate applicazioni verranno bloccati</value>
</data>
<data name="Settings_Launch_RunAtStartup_MinimizeAtStartup.Description" xml:space="preserve">
@ -489,22 +486,22 @@
<data name="Settings_Launch_RunAtStartup_MinimizeAtStartup.Header" xml:space="preserve">
<value>Riduci a icona nella barra delle notifiche all'avvio</value>
</data>
<data name="Settings_Advanced_InlineParams.Header" xml:space="preserve">
<data name="Home_Advanced_InlineParams.Header" xml:space="preserve">
<value>Mette i parametri dell'effetto in linea</value>
</data>
<data name="Settings_Advanced_SimulateExclusiveFullscreen.Header" xml:space="preserve">
<data name="Home_Advanced_SimulateExclusiveFullscreen.Header" xml:space="preserve">
<value>Simula lo schermo intero esclusivo durante il ridimensionamento</value>
</data>
<data name="Profile_SourceWindow_DisableWindowResizing.Header" xml:space="preserve">
<value>Disabilita il ridimensionamento della finestra durante il ridimensionamento</value>
</data>
<data name="Settings_DeveloperOptions.Description" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions.Description" xml:space="preserve">
<value>Queste impostazioni sono solo per gli sviluppatori</value>
</data>
<data name="Settings_DeveloperOptions_DisableEffectCache.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DisableEffectCache.Content" xml:space="preserve">
<value>Disabilita la cache degli effetti</value>
</data>
<data name="Settings_DeveloperOptions_SaveEffectSources.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_SaveEffectSources.Content" xml:space="preserve">
<value>Salva il codice sorgente durante l'analisi degli effetti</value>
</data>
<data name="AppSettings_Dialog_Exit" xml:space="preserve">
@ -529,10 +526,10 @@
<data name="NotifyIcon_MainWindow" xml:space="preserve">
<value>Finestra principale</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Description_UnknownEffect" xml:space="preserve">
<data name="ScalingModes_Description_UnknownEffect" xml:space="preserve">
<value>Effetto sconosciuto</value>
</data>
<data name="ScalingConfiguration_ScalingModes_HasUnkownEffects.Title" xml:space="preserve">
<data name="ScalingModes_HasUnkownEffects.Title" xml:space="preserve">
<value>Alcuni effetti non possono essere analizzati</value>
</data>
<data name="ImportLegacyDialog_Title" xml:space="preserve">
@ -568,7 +565,7 @@
<data name="Overlay_Profiler_Timings_Total" xml:space="preserve">
<value>Totale</value>
</data>
<data name="Settings_DeveloperOptions_DisableFontCache.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DisableFontCache.Content" xml:space="preserve">
<value>Disabilita la cache dei caratteri</value>
</data>
<data name="Overlay_Profiler_Timings_SwitchToPasses" xml:space="preserve">
@ -595,7 +592,7 @@
<data name="About_PageFrame.Title" xml:space="preserve">
<value>Riguardo a</value>
</data>
<data name="Home_AutoRestore.Description" xml:space="preserve">
<data name="Home_Activation_AutoRestore.Description" xml:space="preserve">
<value>Ridimensiona automaticamente quando la finestra torna in primo piano</value>
</data>
<data name="Settings_General.Header" xml:space="preserve">
@ -607,7 +604,7 @@
<data name="Root_NewProfileFlyout_Name.Text" xml:space="preserve">
<value>Nome</value>
</data>
<data name="ScalingConfiguration_PageFrame.Title" xml:space="preserve">
<data name="ScalingModes_PageFrame.Title" xml:space="preserve">
<value>Configurazione del ridimensionamento</value>
</data>
<data name="Settings_General_Language.Header" xml:space="preserve">
@ -655,25 +652,25 @@
<data name="About_OtherLinks_Repository.Text" xml:space="preserve">
<value>Repository Github</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Altre opzioni</value>
</data>
<data name="ScalingConfiguration_Parameters.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Parameters.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Parametri</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Title.Text" xml:space="preserve">
<value>Nuova modalità di ridimensionamento</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Rename.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Rename.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Rinomina</value>
</data>
<data name="ScalingConfiguration_ScalingModes_RenameFlyout_OK.Content" xml:space="preserve">
<data name="ScalingModes_RenameFlyout_OK.Content" xml:space="preserve">
<value>OK</value>
</data>
<data name="ScalingConfiguration_ScalingModes_RenameFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_RenameFlyout_Title.Text" xml:space="preserve">
<value>Rinomina</value>
</data>
<data name="ScalingConfiguration_ScalingModes_AddEffect.Text" xml:space="preserve">
<data name="ScalingModes_AddEffect.Text" xml:space="preserve">
<value>Aggiungi effetto</value>
</data>
<data name="Profile_Performance.Header" xml:space="preserve">
@ -730,7 +727,7 @@
<data name="Profile_MoreOptions_ReorderFlyout_Title.Text" xml:space="preserve">
<value>Riordina</value>
</data>
<data name="ScalingConfiguration_ParsingFailed.Title" xml:space="preserve">
<data name="ScalingModes_ParsingFailed.Title" xml:space="preserve">
<value>Analisi non riuscita</value>
</data>
<data name="About_Version_UpdateCard_DownloadAndInstall.Content" xml:space="preserve">
@ -751,7 +748,7 @@
<data name="About_Version_UpdateCard_ReleaseNotes.Content" xml:space="preserve">
<value>Note di rilascio</value>
</data>
<data name="Settings_Advanced_InlineParams.Description" xml:space="preserve">
<data name="Home_Advanced_InlineParams.Description" xml:space="preserve">
<value>Dà un piccolo aumento delle prestazioni. Tuttavia, gli effetti devono essere ricompilati ogni volta che i loro parametri vengono modificati</value>
</data>
<data name="AppSettings_Dialog_Error" xml:space="preserve">
@ -760,13 +757,13 @@
<data name="AppSettings_Dialog_Warning" xml:space="preserve">
<value>Attenzione</value>
</data>
<data name="Settings_DeveloperOptions.Header" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions.Header" xml:space="preserve">
<value>Impostazioni sviluppatore</value>
</data>
<data name="Settings_DeveloperOptions_DebugMode.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DebugMode.Content" xml:space="preserve">
<value>Modalità di debug</value>
</data>
<data name="Settings_DeveloperOptions_WarningsAreErrors.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_WarningsAreErrors.Content" xml:space="preserve">
<value>Considera gli avvisi come errori durante la compilazione degli effetti</value>
</data>
<data name="Settings_General_RequireRestart_ActionButton.Content" xml:space="preserve">
@ -784,7 +781,7 @@
<data name="Overlay_FPS_Opacity" xml:space="preserve">
<value>Opacità</value>
</data>
<data name="Settings_Advanced_AllowScalingMaximized.Header" xml:space="preserve">
<data name="Home_Activation_AllowScalingMaximized.Header" xml:space="preserve">
<value>Consenti il ridimensionamento di finestre ingrandite o a schermo intero</value>
</data>
<data name="FileDialog_JsonFile" xml:space="preserve">

View file

@ -59,7 +59,7 @@
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root">
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
@ -117,31 +117,31 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="Home_AutoRestore_CurWindow" xml:space="preserve">
<data name="Home_Activation_AutoRestore_CurWindow" xml:space="preserve">
<value>現在のウィンドウ</value>
</data>
<data name="Home_Activation.Header" xml:space="preserve">
<value>アクティベーション</value>
</data>
<data name="Home_AutoRestore_Activate.Content" xml:space="preserve">
<data name="Home_Activation_AutoRestore_Activate.Content" xml:space="preserve">
<value>アクティベート</value>
</data>
<data name="Home_AutoRestore_Clear.Content" xml:space="preserve">
<data name="Home_Activation_AutoRestore_Clear.Content" xml:space="preserve">
<value>クリア</value>
</data>
<data name="Home_AutoRestore_EmptyTitle" xml:space="preserve">
<data name="Home_Activation_AutoRestore_EmptyTitle" xml:space="preserve">
<value>タイトルがありません</value>
</data>
<data name="Home_PageFrame.Title" xml:space="preserve">
<value>ホーム</value>
</data>
<data name="Home_Timer.Header" xml:space="preserve">
<data name="Home_Activation_Timer.Header" xml:space="preserve">
<value>タイマー</value>
</data>
<data name="Home_Timer_ButtonText" xml:space="preserve">
<data name="Home_Activation_Timer_ButtonText" xml:space="preserve">
<value>{}秒後にスケーリング</value>
</data>
<data name="Home_Timer_Delay.Header" xml:space="preserve">
<data name="Home_Activation_Timer_Delay.Header" xml:space="preserve">
<value>カウントダウンタイム</value>
</data>
<data name="ShortcutDialog_Cancel" xml:space="preserve">
@ -150,7 +150,7 @@
<data name="About_PageFrame.Title" xml:space="preserve">
<value>Magpieについて</value>
</data>
<data name="Home_Timer_Cancel" xml:space="preserve">
<data name="Home_Activation_Timer_Cancel" xml:space="preserve">
<value>キャンセル</value>
</data>
<data name="Root_Defaults.Content" xml:space="preserve">
@ -177,10 +177,10 @@
<data name="Root_NewProfileFlyout_Name.Text" xml:space="preserve">
<value>名前</value>
</data>
<data name="Root_ScalingConfiguration.Content" xml:space="preserve">
<data name="Root_ScalingModes.Content" xml:space="preserve">
<value>スケーリング設定</value>
</data>
<data name="Settings_Advanced.Header" xml:space="preserve">
<data name="Home_Advanced.Header" xml:space="preserve">
<value>高度な設定</value>
</data>
<data name="Settings_General.Header" xml:space="preserve">
@ -225,7 +225,7 @@
<data name="Root_NewProfileFlyout_CopyFrom.Text" xml:space="preserve">
<value>からコピー</value>
</data>
<data name="ScalingConfiguration_PageFrame.Title" xml:space="preserve">
<data name="ScalingModes_PageFrame.Title" xml:space="preserve">
<value>スケーリング設定</value>
</data>
<data name="Profile_Advanced_DisableDirectFlip.Header" xml:space="preserve">
@ -234,13 +234,13 @@
<data name="Profile_Cursor_DrawCursor.Header" xml:space="preserve">
<value>カーソルを描く</value>
</data>
<data name="Home_AutoRestore.Header" xml:space="preserve">
<data name="Home_Activation_AutoRestore.Header" xml:space="preserve">
<value>スケーリングウィンドウの復元</value>
</data>
<data name="Home_Timer.Description" xml:space="preserve">
<data name="Home_Activation_Timer.Description" xml:space="preserve">
<value>タイマー終了後、最前面ウィンドウをスケーリングする</value>
</data>
<data name="Home_AutoRestore.Description" xml:space="preserve">
<data name="Home_Activation_AutoRestore.Description" xml:space="preserve">
<value>ウィンドウが最前面に戻ると、自動的にスケーリングされます</value>
</data>
<data name="ShortcutDialog_Description.Text" xml:space="preserve">
@ -288,21 +288,18 @@
<data name="Settings_Launch.Header" xml:space="preserve">
<value>起動</value>
</data>
<data name="ScalingConfiguration_General_Export.Text" xml:space="preserve">
<data name="ScalingModes_General_Export.Text" xml:space="preserve">
<value>エクスポート</value>
</data>
<data name="ScalingConfiguration_General_Import.Text" xml:space="preserve">
<data name="ScalingModes_General_Import.Text" xml:space="preserve">
<value>インポート</value>
</data>
<data name="ScalingConfiguration_General_ImportLegacy.Text" xml:space="preserve">
<data name="ScalingModes_General_ImportLegacy.Text" xml:space="preserve">
<value>古いバージョンのScaleModels.jsonをインポートする</value>
</data>
<data name="ScalingConfiguration_General_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_General_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>その他のオプション</value>
</data>
<data name="ScalingConfiguration_ScalingModes.Header" xml:space="preserve">
<value>スケーリングモード</value>
</data>
<data name="Home_UpdateCard_AutoCheckForUpdates.Content" xml:space="preserve">
<value>定期的に更新を確認する</value>
</data>
@ -330,70 +327,70 @@
<data name="About_OtherLinks_Repository.Text" xml:space="preserve">
<value>Githubリポジトリ</value>
</data>
<data name="ScalingConfiguration_Parameters.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Parameters.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>パラメータ</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_MoveDown.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_MoveDown.Text" xml:space="preserve">
<value>下へ移動</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_MoveUp.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_MoveUp.Text" xml:space="preserve">
<value>上へ移動</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Rename.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Rename.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>リネーム</value>
</data>
<data name="ScalingConfiguration_ScalingModes_RenameFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_RenameFlyout_Title.Text" xml:space="preserve">
<value>リネーム</value>
</data>
<data name="ScalingConfiguration_ScalingModes_AddEffect.Text" xml:space="preserve">
<data name="ScalingModes_AddEffect.Text" xml:space="preserve">
<value>効果を追加</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Delete.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Delete.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>削除</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Delete.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Delete.Text" xml:space="preserve">
<value>削除</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Title.Text" xml:space="preserve">
<value>このスケーリング モードを削除してもよろしいですか?</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingMode.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingMode.Text" xml:space="preserve">
<value>新しいスケーリングモード</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Title.Text" xml:space="preserve">
<value>新しいスケーリングモード</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Scale.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Scale.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>スケーリング</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_CopyFrom_None" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_CopyFrom_None" xml:space="preserve">
<value>なし</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Create.Content" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Create.Content" xml:space="preserve">
<value>作成</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_HeightFactor.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_HeightFactor.Text" xml:space="preserve">
<value>高さ(倍率)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_HeightPixels.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_HeightPixels.Text" xml:space="preserve">
<value>高さ(ピクセル)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_WidthPixels.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_WidthPixels.Text" xml:space="preserve">
<value>幅 (ピクセル)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type.Text" xml:space="preserve">
<value>タイプ</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Absolute_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Absolute_Description" xml:space="preserve">
<value>スケーリング後のサイズを指定する</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Factor" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Factor" xml:space="preserve">
<value>倍率指定</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fill" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fill" xml:space="preserve">
<value>画面いっぱいに最適化</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fit" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fit" xml:space="preserve">
<value>最適化</value>
</data>
<data name="Profile_General_CaptureMethod.Header" xml:space="preserve">
@ -432,7 +429,7 @@
<data name="Profile_MoreOptions_ReorderFlyout_Title.Text" xml:space="preserve">
<value>並べ替え</value>
</data>
<data name="ScalingConfiguration_ParsingFailed.Title" xml:space="preserve">
<data name="ScalingModes_ParsingFailed.Title" xml:space="preserve">
<value>解析に失敗しました</value>
</data>
<data name="Profile_General_ScalingMode_None" xml:space="preserve">
@ -507,16 +504,16 @@
<data name="Profile_SourceWindow_CustomCropping_Right.Header" xml:space="preserve">
<value>右</value>
</data>
<data name="Settings_Advanced_InlineParams.Header" xml:space="preserve">
<data name="Home_Advanced_InlineParams.Header" xml:space="preserve">
<value>内部効果パラメーター</value>
</data>
<data name="Settings_Advanced_SimulateExclusiveFullscreen.Header" xml:space="preserve">
<data name="Home_Advanced_SimulateExclusiveFullscreen.Header" xml:space="preserve">
<value>スケーリング時に排他的な全画面表示をシミュレーションする</value>
</data>
<data name="Profile_SourceWindow_DisableWindowResizing.Header" xml:space="preserve">
<value>スケーリング時のウィンドウサイズ変更を無効にする</value>
</data>
<data name="Settings_Advanced_SimulateExclusiveFullscreen.Description" xml:space="preserve">
<data name="Home_Advanced_SimulateExclusiveFullscreen.Description" xml:space="preserve">
<value>特定アプリからの通知とポップアップをブロックできます</value>
</data>
<data name="Settings_Launch_RunAtStartup_MinimizeAtStartup.Header" xml:space="preserve">
@ -528,13 +525,13 @@
<data name="AppSettings_Dialog_Warning" xml:space="preserve">
<value>警告</value>
</data>
<data name="Settings_DeveloperOptions_WarningsAreErrors.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_WarningsAreErrors.Content" xml:space="preserve">
<value>エフェクトのコンパイル時に警告をエラーとして扱う</value>
</data>
<data name="Settings_DeveloperOptions_SaveEffectSources.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_SaveEffectSources.Content" xml:space="preserve">
<value>エフェクトの解析時にソースコードを保存する</value>
</data>
<data name="Settings_DeveloperOptions_DisableEffectCache.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DisableEffectCache.Content" xml:space="preserve">
<value>エフェクトキャッシュを無効にする</value>
</data>
<data name="AppSettings_Dialog_Exit" xml:space="preserve">
@ -586,7 +583,7 @@
<data name="Profile_SourceWindow_CustomCropping_Top.Header" xml:space="preserve">
<value>上</value>
</data>
<data name="Settings_Advanced_InlineParams.Description" xml:space="preserve">
<data name="Home_Advanced_InlineParams.Description" xml:space="preserve">
<value>わずかなパフォーマンス向上をもたらしますが、パラメーター変更する度に、再コンパイルする必要あり</value>
</data>
<data name="Settings_General_ShowNotifyIcon.Description" xml:space="preserve">
@ -607,49 +604,49 @@
<data name="About_OtherLinks_ContributionGuidelines.Text" xml:space="preserve">
<value>貢献ガイドライン</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Description.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Description.Text" xml:space="preserve">
<value>以下のプロファイルは、このスケーリングモードを使用しています:</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>その他のオプション</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_Delete.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_Delete.Text" xml:space="preserve">
<value>削除</value>
</data>
<data name="ScalingConfiguration_ScalingModes_RenameFlyout_OK.Content" xml:space="preserve">
<data name="ScalingModes_RenameFlyout_OK.Content" xml:space="preserve">
<value>確定</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DragNotSupported.Text" xml:space="preserve">
<data name="ScalingModes_DragNotSupported.Text" xml:space="preserve">
<value>管理者として実行しているとき、ドラッグ&ドロップはサポートされていません</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DragToReorder.Text" xml:space="preserve">
<data name="ScalingModes_DragToReorder.Text" xml:space="preserve">
<value>ドラッグして並べ替え</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoveDown.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoveDown.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>下へ移動</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoveUp.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoveUp.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>上へ移動</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_CopyFrom.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_CopyFrom.Text" xml:space="preserve">
<value>からコピー</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Name.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Name.Text" xml:space="preserve">
<value>名前</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Absolute" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Absolute" xml:space="preserve">
<value>絶対値</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Factor_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Factor_Description" xml:space="preserve">
<value>入力画像に対するスケーリング倍率の指定</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_WidthFactor.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_WidthFactor.Text" xml:space="preserve">
<value>幅(倍率)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fit_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fit_Description" xml:space="preserve">
<value>指定された縦横比でスケーリングされた際の倍率</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fill_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fill_Description" xml:space="preserve">
<value>モニタいっぱいに表示されます、縦横比は無視</value>
</data>
<data name="Profile_General.Header" xml:space="preserve">
@ -700,22 +697,22 @@
<data name="Profile_SourceWindow_CaptureTitleBar.Description" xml:space="preserve">
<value>Graphics CaptureおよびDesktop Duplicationでのみ使用可</value>
</data>
<data name="Settings_DeveloperOptions.Description" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions.Description" xml:space="preserve">
<value>これらの設定は、開発用としてのみ使用できます</value>
</data>
<data name="Settings_DeveloperOptions.Header" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions.Header" xml:space="preserve">
<value>開発者向けオプション</value>
</data>
<data name="Settings_DeveloperOptions_DebugMode.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DebugMode.Content" xml:space="preserve">
<value>デバッグモード</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Description_UnknownEffect" xml:space="preserve">
<data name="ScalingModes_Description_UnknownEffect" xml:space="preserve">
<value>未知の効果</value>
</data>
<data name="NotifyIcon_MainWindow" xml:space="preserve">
<value>メインウィンドウ</value>
</data>
<data name="ScalingConfiguration_ScalingModes_HasUnkownEffects.Title" xml:space="preserve">
<data name="ScalingModes_HasUnkownEffects.Title" xml:space="preserve">
<value>一部のエフェクトを解析できません</value>
</data>
<data name="ShortcutDialog_InvalidShortcut" xml:space="preserve">
@ -766,10 +763,10 @@
<data name="Overlay_Profiler" xml:space="preserve">
<value>パフォーマンス解析</value>
</data>
<data name="Settings_DeveloperOptions_DisableFontCache.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DisableFontCache.Content" xml:space="preserve">
<value>フォントキャッシュの無効化</value>
</data>
<data name="Settings_Advanced_AllowScalingMaximized.Header" xml:space="preserve">
<data name="Home_Activation_AllowScalingMaximized.Header" xml:space="preserve">
<value>最大化またはフルスクリーン画面のスケーリングを許可</value>
</data>
<data name="FileDialog_JsonFile" xml:space="preserve">
@ -799,10 +796,10 @@
<data name="Profile_Performance_FrameRateLimiter_MaxFrameRate.Header" xml:space="preserve">
<value>最大フレームレート</value>
</data>
<data name="Settings_DeveloperOptions_DuplicateFrameDetection_Always.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DuplicateFrameDetection_Always.Content" xml:space="preserve">
<value>常に検出</value>
</data>
<data name="Settings_DeveloperOptions_DuplicateFrameDetection_Dynamic.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DuplicateFrameDetection_Dynamic.Content" xml:space="preserve">
<value>動的な検出</value>
</data>
<data name="Overlay_Profiler_DynamicDetection" xml:space="preserve">
@ -814,13 +811,13 @@
<data name="Profile_Performance_FrameRateLimiter.Header" xml:space="preserve">
<value>フレームレート制限</value>
</data>
<data name="Settings_DeveloperOptions_DuplicateFrameDetection.Header" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DuplicateFrameDetection.Header" xml:space="preserve">
<value>重複フレーム検出</value>
</data>
<data name="Settings_DeveloperOptions_DuplicateFrameDetection_Never.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DuplicateFrameDetection_Never.Content" xml:space="preserve">
<value>不検出</value>
</data>
<data name="Settings_DeveloperOptions_EnableStatisticsForDynamicDetection.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_EnableStatisticsForDynamicDetection.Content" xml:space="preserve">
<value>動的な検出統計を有効にする</value>
</data>
</root>

View file

@ -156,16 +156,16 @@
<data name="Profile_MoreOptions_RenameFlyout_Title.Text" xml:space="preserve">
<value>이름 바꾸기</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_MoveDown.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_MoveDown.Text" xml:space="preserve">
<value>아래로 이동</value>
</data>
<data name="About_OtherLinks_FAQ.Text" xml:space="preserve">
<value>FAQ</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Absolute" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Absolute" xml:space="preserve">
<value>절대값</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Delete.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Delete.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>삭제</value>
</data>
<data name="Settings_Launch_AlwaysRunAsAdmin.Description" xml:space="preserve">
@ -180,40 +180,40 @@
<data name="Home_Activation.Header" xml:space="preserve">
<value>활성화</value>
</data>
<data name="Home_AutoRestore.Description" xml:space="preserve">
<data name="Home_Activation_AutoRestore.Description" xml:space="preserve">
<value>창이 포그라운드로 돌아올 때 자동으로 스케일</value>
</data>
<data name="Home_AutoRestore.Header" xml:space="preserve">
<data name="Home_Activation_AutoRestore.Header" xml:space="preserve">
<value>자동 복원</value>
</data>
<data name="Home_AutoRestore_Activate.Content" xml:space="preserve">
<data name="Home_Activation_AutoRestore_Activate.Content" xml:space="preserve">
<value>활성화</value>
</data>
<data name="Home_AutoRestore_Clear.Content" xml:space="preserve">
<data name="Home_Activation_AutoRestore_Clear.Content" xml:space="preserve">
<value>지우기</value>
</data>
<data name="Home_AutoRestore_CurWindow" xml:space="preserve">
<data name="Home_Activation_AutoRestore_CurWindow" xml:space="preserve">
<value>현재 창: </value>
</data>
<data name="Home_AutoRestore_EmptyTitle" xml:space="preserve">
<data name="Home_Activation_AutoRestore_EmptyTitle" xml:space="preserve">
<value>제목이 비어 있음</value>
</data>
<data name="Home_PageFrame.Title" xml:space="preserve">
<value>홈</value>
</data>
<data name="Home_Timer.Description" xml:space="preserve">
<data name="Home_Activation_Timer.Description" xml:space="preserve">
<value>타이머가 끝날 때 포그라운드 창을 스케일</value>
</data>
<data name="Home_Timer.Header" xml:space="preserve">
<data name="Home_Activation_Timer.Header" xml:space="preserve">
<value>타이머</value>
</data>
<data name="Home_Timer_ButtonText" xml:space="preserve">
<data name="Home_Activation_Timer_ButtonText" xml:space="preserve">
<value>{}초 후 스케일</value>
</data>
<data name="Home_Timer_Cancel" xml:space="preserve">
<data name="Home_Activation_Timer_Cancel" xml:space="preserve">
<value>취소</value>
</data>
<data name="Home_Timer_Delay.Header" xml:space="preserve">
<data name="Home_Activation_Timer_Delay.Header" xml:space="preserve">
<value>카운트다운(초)</value>
</data>
<data name="ShortcutDialog_Cancel" xml:space="preserve">
@ -243,13 +243,13 @@
<data name="Root_Profiles.Content" xml:space="preserve">
<value>프로파일</value>
</data>
<data name="Root_ScalingConfiguration.Content" xml:space="preserve">
<data name="Root_ScalingModes.Content" xml:space="preserve">
<value>스케일링 구성</value>
</data>
<data name="ScalingConfiguration_PageFrame.Title" xml:space="preserve">
<data name="ScalingModes_PageFrame.Title" xml:space="preserve">
<value>스케일링 구성</value>
</data>
<data name="Settings_Advanced.Header" xml:space="preserve">
<data name="Home_Advanced.Header" xml:space="preserve">
<value>고급</value>
</data>
<data name="Settings_General.Header" xml:space="preserve">
@ -300,13 +300,13 @@
<data name="Settings_Launch.Header" xml:space="preserve">
<value>실행</value>
</data>
<data name="ScalingConfiguration_General_Export.Text" xml:space="preserve">
<data name="ScalingModes_General_Export.Text" xml:space="preserve">
<value>내보내기</value>
</data>
<data name="ScalingConfiguration_General_Import.Text" xml:space="preserve">
<data name="ScalingModes_General_Import.Text" xml:space="preserve">
<value>가져오기</value>
</data>
<data name="ScalingConfiguration_General_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_General_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>더 많은 옵션</value>
</data>
<data name="Home_UpdateCard_ReleaseNotes.Content" xml:space="preserve">
@ -318,34 +318,34 @@
<data name="About_OtherLinks_License.Text" xml:space="preserve">
<value>라이선스</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Delete.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Delete.Text" xml:space="preserve">
<value>삭제</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Description.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Description.Text" xml:space="preserve">
<value>다음 프로파일에서 사용되고 있습니다:</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Title.Text" xml:space="preserve">
<value>이 스케일링 모드를 삭제할까요?</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoveDown.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoveDown.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>아래로 이동</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DragToReorder.Text" xml:space="preserve">
<data name="ScalingModes_DragToReorder.Text" xml:space="preserve">
<value>끌어서 순서 바꾸기</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_HeightPixels.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_HeightPixels.Text" xml:space="preserve">
<value>높이(픽셀)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_WidthFactor.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_WidthFactor.Text" xml:space="preserve">
<value>너비(스케일링 인수)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type.Text" xml:space="preserve">
<value>유형</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fit" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fit" xml:space="preserve">
<value>맞추기</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fit_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fit_Description" xml:space="preserve">
<value>비례 스케일링으로 화면을 채운 후에 스케일링 인수를 설정합니다</value>
</data>
<data name="Profile_General.Header" xml:space="preserve">
@ -372,7 +372,7 @@
<data name="Profile_MoreOptions_ReorderFlyout_Title.Text" xml:space="preserve">
<value>순서 바꾸기</value>
</data>
<data name="ScalingConfiguration_ParsingFailed.Title" xml:space="preserve">
<data name="ScalingModes_ParsingFailed.Title" xml:space="preserve">
<value>구문분석 실패</value>
</data>
<data name="Profile_General_ScalingMode_None" xml:space="preserve">
@ -447,16 +447,16 @@
<data name="Profile_SourceWindow_DisableWindowResizing.Header" xml:space="preserve">
<value>스케일 된 동안 창 크기 조절 사용 안 함</value>
</data>
<data name="Settings_Advanced_InlineParams.Description" xml:space="preserve">
<data name="Home_Advanced_InlineParams.Description" xml:space="preserve">
<value>약간의 성능 증가를 가져옵니다. 하지만 매개변수가 변경될 때마다 효과를 재컴파일해야 합니다</value>
</data>
<data name="Settings_Advanced_InlineParams.Header" xml:space="preserve">
<data name="Home_Advanced_InlineParams.Header" xml:space="preserve">
<value>효과 매개변수를 인라인으로 만듦</value>
</data>
<data name="Settings_Advanced_SimulateExclusiveFullscreen.Description" xml:space="preserve">
<data name="Home_Advanced_SimulateExclusiveFullscreen.Description" xml:space="preserve">
<value>특정 응용 프로그램에서의 알림 및 팝업이 차단됩니다</value>
</data>
<data name="Settings_Advanced_SimulateExclusiveFullscreen.Header" xml:space="preserve">
<data name="Home_Advanced_SimulateExclusiveFullscreen.Header" xml:space="preserve">
<value>스케일링 할 때 단독 전체 화면 시뮬레이션</value>
</data>
<data name="Settings_Launch_RunAtStartup_MinimizeAtStartup.Description" xml:space="preserve">
@ -498,7 +498,7 @@
<data name="Overlay_Profiler_Timings_Total" xml:space="preserve">
<value>합계</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Rename.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Rename.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>이름 바꾸기</value>
</data>
<data name="Profile_General_CaptureMethod.Header" xml:space="preserve">
@ -510,7 +510,7 @@
<data name="Home_UpdateCard_DownloadAndInstall.Content" xml:space="preserve">
<value>다운로드 및 설치</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Create.Content" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Create.Content" xml:space="preserve">
<value>만들기</value>
</data>
<data name="ShortcutDialog_Description.Text" xml:space="preserve">
@ -531,7 +531,7 @@
<data name="Root_NewProfileFlyout_ComboBox.PlaceholderText" xml:space="preserve">
<value>창 선택</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingMode.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingMode.Text" xml:space="preserve">
<value>새 스케일링 모드</value>
</data>
<data name="Root_NewProfileFlyout_CopyFrom.Text" xml:space="preserve">
@ -540,13 +540,13 @@
<data name="Settings_General_PortableMode.Header" xml:space="preserve">
<value>포터블 모드</value>
</data>
<data name="ScalingConfiguration_Parameters.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Parameters.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>매개변수</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_MoveUp.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_MoveUp.Text" xml:space="preserve">
<value>위로 이동</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_CopyFrom.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_CopyFrom.Text" xml:space="preserve">
<value>다음에서 복사</value>
</data>
<data name="Settings_Launch_RunAtStartup.Header" xml:space="preserve">
@ -567,28 +567,25 @@
<data name="Profile_Advanced.Header" xml:space="preserve">
<value>고급</value>
</data>
<data name="ScalingConfiguration_General_ImportLegacy.Text" xml:space="preserve">
<data name="ScalingModes_General_ImportLegacy.Text" xml:space="preserve">
<value>ScaleModels.json 가져오기</value>
</data>
<data name="ScalingConfiguration_ScalingModes.Header" xml:space="preserve">
<value>스케일링 모드</value>
</data>
<data name="About_OtherLinks_Repository.Text" xml:space="preserve">
<value>깃허브 저장소</value>
</data>
<data name="Settings_Launch_AlwaysRunAsAdmin.Header" xml:space="preserve">
<value>항상 관리자 권한으로 실행</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Scale.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Scale.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>스케일</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_CopyFrom_None" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_CopyFrom_None" xml:space="preserve">
<value>없음</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_HeightFactor.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_HeightFactor.Text" xml:space="preserve">
<value>높이(스케일링 인수)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DragNotSupported.Text" xml:space="preserve">
<data name="ScalingModes_DragNotSupported.Text" xml:space="preserve">
<value>관리자 권한으로 실행 중일 때는 드래그 앤 드롭이 지원되지 않습니다</value>
</data>
<data name="AppSettings_ErrorDialog_ConfigLocation" xml:space="preserve">
@ -598,52 +595,52 @@
<data name="About_OtherLinks.Header" xml:space="preserve">
<value>기타 링크</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>더 많은 옵션</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_Delete.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_Delete.Text" xml:space="preserve">
<value>삭제</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Factor_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Factor_Description" xml:space="preserve">
<value>입력 이미지를 기준으로 스케일링 인수를 설정합니다</value>
</data>
<data name="ScalingConfiguration_ScalingModes_RenameFlyout_OK.Content" xml:space="preserve">
<data name="ScalingModes_RenameFlyout_OK.Content" xml:space="preserve">
<value>확인</value>
</data>
<data name="ScalingConfiguration_ScalingModes_RenameFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_RenameFlyout_Title.Text" xml:space="preserve">
<value>이름 바꾸기</value>
</data>
<data name="Profile_MoreOptions_Reorder.Text" xml:space="preserve">
<value>순서 바꾸기</value>
</data>
<data name="ScalingConfiguration_ScalingModes_AddEffect.Text" xml:space="preserve">
<data name="ScalingModes_AddEffect.Text" xml:space="preserve">
<value>효과 추가</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Factor" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Factor" xml:space="preserve">
<value>인수</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Absolute_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Absolute_Description" xml:space="preserve">
<value>스케일링 한 후에 크기를 설정합니다</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fill_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fill_Description" xml:space="preserve">
<value>화면을 채웁니다. 이미지가 늘어날 수 있습니다</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoveUp.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoveUp.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>위로 이동</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Title.Text" xml:space="preserve">
<value>새 스케일링 모드</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fill" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fill" xml:space="preserve">
<value>채우기</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Name.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Name.Text" xml:space="preserve">
<value>이름</value>
</data>
<data name="Settings_DeveloperOptions.Header" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions.Header" xml:space="preserve">
<value>개발자 옵션</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_WidthPixels.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_WidthPixels.Text" xml:space="preserve">
<value>너비(픽셀)</value>
</data>
<data name="About_Version_UpdateSettings_AutoCheckForUpdates.Header" xml:space="preserve">
@ -703,7 +700,7 @@
<data name="Profile_SourceWindow_CustomCropping_Left.Header" xml:space="preserve">
<value>왼쪽</value>
</data>
<data name="Settings_DeveloperOptions.Description" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions.Description" xml:space="preserve">
<value>이 설정은 개발 전용입니다</value>
</data>
<data name="Settings_Launch_RunAtStartup_MinimizeAtStartup.Header" xml:space="preserve">
@ -712,16 +709,16 @@
<data name="AppSettings_Dialog_Error" xml:space="preserve">
<value>오류</value>
</data>
<data name="Settings_DeveloperOptions_DebugMode.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DebugMode.Content" xml:space="preserve">
<value>디버그 모드</value>
</data>
<data name="Settings_DeveloperOptions_DisableEffectCache.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DisableEffectCache.Content" xml:space="preserve">
<value>효과 캐시 사용 안 함</value>
</data>
<data name="Settings_DeveloperOptions_SaveEffectSources.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_SaveEffectSources.Content" xml:space="preserve">
<value>효과를 구분분석 할 때 소스 코드 저장</value>
</data>
<data name="Settings_DeveloperOptions_WarningsAreErrors.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_WarningsAreErrors.Content" xml:space="preserve">
<value>효과를 컴파일 할 때 경고를 오류로 취급</value>
</data>
<data name="AppSettings_ErrorDialog_ReadFailed" xml:space="preserve">
@ -739,10 +736,10 @@
<data name="Settings_General_RequireRestart_ActionButton.Content" xml:space="preserve">
<value>Magpie 다시 시작</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Description_UnknownEffect" xml:space="preserve">
<data name="ScalingModes_Description_UnknownEffect" xml:space="preserve">
<value>알 수 없는 효과</value>
</data>
<data name="ScalingConfiguration_ScalingModes_HasUnkownEffects.Title" xml:space="preserve">
<data name="ScalingModes_HasUnkownEffects.Title" xml:space="preserve">
<value>일부 효과를 구문분석 할 수 없습니다</value>
</data>
<data name="ExportDialog_Title" xml:space="preserve">
@ -766,10 +763,10 @@
<data name="Overlay_FPS_Unlock" xml:space="preserve">
<value>잠금 해제</value>
</data>
<data name="Settings_DeveloperOptions_DisableFontCache.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DisableFontCache.Content" xml:space="preserve">
<value>폰트 캐시 비활성화</value>
</data>
<data name="Settings_Advanced_AllowScalingMaximized.Header" xml:space="preserve">
<data name="Home_Activation_AllowScalingMaximized.Header" xml:space="preserve">
<value>최대화 또는 전체 화면 창을 스케일링 하도록 허용</value>
</data>
<data name="FileDialog_JsonFile" xml:space="preserve">

View file

@ -120,22 +120,22 @@
<data name="Home_Activation.Header" xml:space="preserve">
<value>Ativação</value>
</data>
<data name="Home_AutoRestore.Header" xml:space="preserve">
<data name="Home_Activation_AutoRestore.Header" xml:space="preserve">
<value>Restaurar automaticamente</value>
</data>
<data name="Home_AutoRestore_Activate.Content" xml:space="preserve">
<data name="Home_Activation_AutoRestore_Activate.Content" xml:space="preserve">
<value>Ativar</value>
</data>
<data name="Home_AutoRestore_Clear.Content" xml:space="preserve">
<data name="Home_Activation_AutoRestore_Clear.Content" xml:space="preserve">
<value>Limpar</value>
</data>
<data name="Home_AutoRestore_CurWindow" xml:space="preserve">
<data name="Home_Activation_AutoRestore_CurWindow" xml:space="preserve">
<value>Janela atual: </value>
</data>
<data name="Home_Timer.Header" xml:space="preserve">
<data name="Home_Activation_Timer.Header" xml:space="preserve">
<value>Redimensionamento com atraso</value>
</data>
<data name="Home_Timer_Delay.Header" xml:space="preserve">
<data name="Home_Activation_Timer_Delay.Header" xml:space="preserve">
<value>Tempo de atraso em segundos</value>
</data>
<data name="ShortcutDialog_Description.Text" xml:space="preserve">
@ -165,13 +165,13 @@
<data name="Root_NewProfileFlyout_NoCandidateWindow.Text" xml:space="preserve">
<value>Abra uma nova janela para criar um perfil</value>
</data>
<data name="Root_ScalingConfiguration.Content" xml:space="preserve">
<data name="Root_ScalingModes.Content" xml:space="preserve">
<value>Configuração de redimensionamento</value>
</data>
<data name="ScalingConfiguration_PageFrame.Title" xml:space="preserve">
<data name="ScalingModes_PageFrame.Title" xml:space="preserve">
<value>Configuração de redimensionamento</value>
</data>
<data name="Settings_Advanced.Header" xml:space="preserve">
<data name="Home_Advanced.Header" xml:space="preserve">
<value>Avançado</value>
</data>
<data name="Settings_General_Language.Header" xml:space="preserve">
@ -210,10 +210,10 @@
<data name="ToggleSwitch.OnContent" xml:space="preserve">
<value>Ativado</value>
</data>
<data name="ScalingConfiguration_General_Export.Text" xml:space="preserve">
<data name="ScalingModes_General_Export.Text" xml:space="preserve">
<value>Exportar</value>
</data>
<data name="ScalingConfiguration_General_Import.Text" xml:space="preserve">
<data name="ScalingModes_General_Import.Text" xml:space="preserve">
<value>Importar</value>
</data>
<data name="Home_UpdateCard_AutoCheckForUpdates.Content" xml:space="preserve">
@ -234,58 +234,58 @@
<data name="About_OtherLinks_Repository.Text" xml:space="preserve">
<value>Repositório no GitHub</value>
</data>
<data name="ScalingConfiguration_Parameters.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Parameters.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Parâmetros</value>
</data>
<data name="ScalingConfiguration_ScalingModes_RenameFlyout_OK.Content" xml:space="preserve">
<data name="ScalingModes_RenameFlyout_OK.Content" xml:space="preserve">
<value>OK</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Delete.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Delete.Text" xml:space="preserve">
<value>Excluir</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Description.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Description.Text" xml:space="preserve">
<value>Está sendo usado pelos seguintes perfis:</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Title.Text" xml:space="preserve">
<value>Tem certeza de que deseja excluir este modo de redimensionamento?</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Title.Text" xml:space="preserve">
<value>Novo modo de redimensionamento</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_CopyFrom.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_CopyFrom.Text" xml:space="preserve">
<value>Copiar de</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_CopyFrom_None" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_CopyFrom_None" xml:space="preserve">
<value>Nenhum</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Create.Content" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Create.Content" xml:space="preserve">
<value>Criar</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Name.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Name.Text" xml:space="preserve">
<value>Nome</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_HeightPixels.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_HeightPixels.Text" xml:space="preserve">
<value>Altura (em pixels)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type.Text" xml:space="preserve">
<value>Tipo</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Factor" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Factor" xml:space="preserve">
<value>Fator</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Factor_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Factor_Description" xml:space="preserve">
<value>Definir o fator de redimensionamento em relação à imagem original</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fill" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fill" xml:space="preserve">
<value>Preenchimento</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fill_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fill_Description" xml:space="preserve">
<value>Preenche a tela, a imagem pode ser esticada</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fit" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fit" xml:space="preserve">
<value>Ajustar</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fit_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fit_Description" xml:space="preserve">
<value>Definir o fator de redimensionamento após preencher a tela com escalonamento proporcional</value>
</data>
<data name="Profile_General_AutoScale.Header" xml:space="preserve">
@ -327,7 +327,7 @@
<data name="Profile_MoreOptions_ReorderFlyout_Title.Text" xml:space="preserve">
<value>Reorganizar</value>
</data>
<data name="ScalingConfiguration_ParsingFailed.Title" xml:space="preserve">
<data name="ScalingModes_ParsingFailed.Title" xml:space="preserve">
<value>A análise falhou</value>
</data>
<data name="Profile_General_ScalingMode_None" xml:space="preserve">
@ -399,22 +399,22 @@
<data name="Home_Shortcuts_Overlay_ShortcutControl.Title" xml:space="preserve">
<value>Atalho da sobreposição em jogo</value>
</data>
<data name="Home_AutoRestore.Description" xml:space="preserve">
<data name="Home_Activation_AutoRestore.Description" xml:space="preserve">
<value>Redimensionar automaticamente quando a janela voltar ao primeiro plano</value>
</data>
<data name="Settings_General_ShowNotifyIcon.Description" xml:space="preserve">
<value>O Magpie continuará em execução em segundo plano após o fechamento da janela principal</value>
</data>
<data name="Home_AutoRestore_EmptyTitle" xml:space="preserve">
<data name="Home_Activation_AutoRestore_EmptyTitle" xml:space="preserve">
<value>O título está vazio</value>
</data>
<data name="Home_Timer_Cancel" xml:space="preserve">
<data name="Home_Activation_Timer_Cancel" xml:space="preserve">
<value>Cancelar</value>
</data>
<data name="Home_Timer.Description" xml:space="preserve">
<data name="Home_Activation_Timer.Description" xml:space="preserve">
<value>Redimensionar a janela em primeiro plano quando o temporizador terminar</value>
</data>
<data name="Home_Timer_ButtonText" xml:space="preserve">
<data name="Home_Activation_Timer_ButtonText" xml:space="preserve">
<value>Redimensionar após {}s</value>
</data>
<data name="ShortcutDialog_Save" xml:space="preserve">
@ -453,15 +453,12 @@
<data name="Settings_Launch.Header" xml:space="preserve">
<value>Inicialização</value>
</data>
<data name="ScalingConfiguration_General_ImportLegacy.Text" xml:space="preserve">
<data name="ScalingModes_General_ImportLegacy.Text" xml:space="preserve">
<value>Importar ScaleModels.json</value>
</data>
<data name="ScalingConfiguration_General_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_General_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Mais opções</value>
</data>
<data name="ScalingConfiguration_ScalingModes.Header" xml:space="preserve">
<value>Modos de redimensionamento</value>
</data>
<data name="Settings_Launch_AlwaysRunAsAdmin.Description" xml:space="preserve">
<value>É necessário executar como administrador para utilizar essa configuração</value>
</data>
@ -480,58 +477,58 @@
<data name="About_OtherLinks_License.Text" xml:space="preserve">
<value>Licença</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Mais opções</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Delete.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Delete.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Excluir</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_Delete.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_Delete.Text" xml:space="preserve">
<value>Excluir</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoveUp.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoveUp.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Mover para cima</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_MoveDown.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_MoveDown.Text" xml:space="preserve">
<value>Mover para baixo</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_MoveUp.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_MoveUp.Text" xml:space="preserve">
<value>Mover para cima</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Rename.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Rename.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Renomear</value>
</data>
<data name="ScalingConfiguration_ScalingModes_RenameFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_RenameFlyout_Title.Text" xml:space="preserve">
<value>Renomear</value>
</data>
<data name="ScalingConfiguration_ScalingModes_AddEffect.Text" xml:space="preserve">
<data name="ScalingModes_AddEffect.Text" xml:space="preserve">
<value>Adicionar efeito</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DragNotSupported.Text" xml:space="preserve">
<data name="ScalingModes_DragNotSupported.Text" xml:space="preserve">
<value>Arrastar e soltar não é suportado ao executar como administrador</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DragToReorder.Text" xml:space="preserve">
<data name="ScalingModes_DragToReorder.Text" xml:space="preserve">
<value>Arraste para reorganizar</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoveDown.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoveDown.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Mover para baixo</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingMode.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingMode.Text" xml:space="preserve">
<value>Novo modo de redimensionamento</value>
</data>
<data name="Profile_General.Header" xml:space="preserve">
<value>Geral</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_HeightFactor.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_HeightFactor.Text" xml:space="preserve">
<value>Altura (fator de redimensionamento)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_WidthPixels.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_WidthPixels.Text" xml:space="preserve">
<value>Largura (em pixels)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_WidthFactor.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_WidthFactor.Text" xml:space="preserve">
<value>Largura (fator de redimensionamento)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Absolute_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Absolute_Description" xml:space="preserve">
<value>Definir o tamanho após o redimensionamento</value>
</data>
<data name="Profile_General_Multimonitor_All.Content" xml:space="preserve">
@ -585,16 +582,16 @@
<data name="Overlay_FPS_Unlock" xml:space="preserve">
<value>Desfixar</value>
</data>
<data name="Settings_DeveloperOptions_DisableFontCache.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DisableFontCache.Content" xml:space="preserve">
<value>Desativar cache de fonte</value>
</data>
<data name="Settings_Advanced_SimulateExclusiveFullscreen.Description" xml:space="preserve">
<data name="Home_Advanced_SimulateExclusiveFullscreen.Description" xml:space="preserve">
<value>Notificações e pop-ups de determinados aplicativos serão bloqueados</value>
</data>
<data name="Settings_Launch_RunAtStartup_MinimizeAtStartup.Header" xml:space="preserve">
<value>Minimizar para a área de notificação na inicialização</value>
</data>
<data name="Settings_Advanced_SimulateExclusiveFullscreen.Header" xml:space="preserve">
<data name="Home_Advanced_SimulateExclusiveFullscreen.Header" xml:space="preserve">
<value>Simular tela cheia exclusiva durante o redimensionamento</value>
</data>
<data name="Settings_Launch_RunAtStartup_MinimizeAtStartup.Description" xml:space="preserve">
@ -606,7 +603,7 @@
<data name="AppSettings_Dialog_Warning" xml:space="preserve">
<value>Aviso</value>
</data>
<data name="ScalingConfiguration_ScalingModes_HasUnkownEffects.Title" xml:space="preserve">
<data name="ScalingModes_HasUnkownEffects.Title" xml:space="preserve">
<value>Não foi possível analisar alguns efeitos</value>
</data>
<data name="Overlay_Profiler_Timings_Total" xml:space="preserve">
@ -615,7 +612,7 @@
<data name="Settings_General_RequireRestart_ActionButton.Content" xml:space="preserve">
<value>Reiniciar Magpie</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Description_UnknownEffect" xml:space="preserve">
<data name="ScalingModes_Description_UnknownEffect" xml:space="preserve">
<value>Efeito desconhecido</value>
</data>
<data name="Overlay_FPS_Opacity" xml:space="preserve">
@ -657,7 +654,7 @@
<data name="Profile_General_CaptureMethod_Default" xml:space="preserve">
<value>Padrão</value>
</data>
<data name="Settings_DeveloperOptions_DisableEffectCache.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DisableEffectCache.Content" xml:space="preserve">
<value>Desativar cache de efeito</value>
</data>
<data name="Profile_SourceWindow_CaptureTitleBar.Header" xml:space="preserve">
@ -666,7 +663,7 @@
<data name="Profile_SourceWindow.Header" xml:space="preserve">
<value>Janela de origem</value>
</data>
<data name="Settings_DeveloperOptions_WarningsAreErrors.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_WarningsAreErrors.Content" xml:space="preserve">
<value>Tratar avisos como erros ao compilar efeitos</value>
</data>
<data name="Profile_SourceWindow_CaptureTitleBar.Description" xml:space="preserve">
@ -699,10 +696,10 @@
<data name="Root_Home.Content" xml:space="preserve">
<value>Home</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Scale.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Scale.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Redimensionamento</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Absolute" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Absolute" xml:space="preserve">
<value>Absoluto</value>
</data>
<data name="Profile_General_3DGameMode.Header" xml:space="preserve">
@ -723,22 +720,22 @@
<data name="Profile_SourceWindow_CustomCropping_Pixels.Text" xml:space="preserve">
<value>px</value>
</data>
<data name="Settings_Advanced_InlineParams.Description" xml:space="preserve">
<data name="Home_Advanced_InlineParams.Description" xml:space="preserve">
<value>Oferece um pequeno ganho no desempenho. No entanto, os efeitos devem ser recompilados sempre que seus parâmetros são alterados</value>
</data>
<data name="Settings_Advanced_InlineParams.Header" xml:space="preserve">
<data name="Home_Advanced_InlineParams.Header" xml:space="preserve">
<value>Incorporar os parâmetros do efeito</value>
</data>
<data name="Settings_DeveloperOptions.Description" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions.Description" xml:space="preserve">
<value>Essas configurações são exclusivas para desenvolvimento</value>
</data>
<data name="Settings_DeveloperOptions.Header" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions.Header" xml:space="preserve">
<value>Opções do desenvolvedor</value>
</data>
<data name="Settings_DeveloperOptions_DebugMode.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DebugMode.Content" xml:space="preserve">
<value>Modo de depuração(debug)</value>
</data>
<data name="Settings_DeveloperOptions_SaveEffectSources.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_SaveEffectSources.Content" xml:space="preserve">
<value>Salvar código-fonte ao interpretar efeitos</value>
</data>
<data name="AppSettings_Dialog_Exit" xml:space="preserve">
@ -769,7 +766,7 @@
<data name="Overlay_Profiler_Timings_SwitchToPasses" xml:space="preserve">
<value>Alternar para passos</value>
</data>
<data name="Settings_Advanced_AllowScalingMaximized.Header" xml:space="preserve">
<data name="Home_Activation_AllowScalingMaximized.Header" xml:space="preserve">
<value>Permitir redimensionamento de janelas maximizadas ou em tela cheia</value>
</data>
<data name="FileDialog_ExeFile" xml:space="preserve">

View file

@ -59,7 +59,7 @@
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root">
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
@ -123,28 +123,28 @@
<data name="Home_Activation.Header" xml:space="preserve">
<value>Активация</value>
</data>
<data name="Home_AutoRestore_Clear.Content" xml:space="preserve">
<data name="Home_Activation_AutoRestore_Clear.Content" xml:space="preserve">
<value>Очистить</value>
</data>
<data name="ScalingConfiguration_Parameters.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Parameters.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Параметры</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Больше настроек</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_Delete.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_Delete.Text" xml:space="preserve">
<value>Удалить</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_MoveDown.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_MoveDown.Text" xml:space="preserve">
<value>Опустить</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_MoveUp.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_MoveUp.Text" xml:space="preserve">
<value>Поднять</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Rename.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Rename.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Переименовать</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fill" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fill" xml:space="preserve">
<value>Заполнение</value>
</data>
<data name="About_Version_UpdateToDate_Installing.Text" xml:space="preserve">
@ -177,37 +177,37 @@
<data name="Settings_General_RequireRestart_ActionButton.Content" xml:space="preserve">
<value>Перезапустить Magpie</value>
</data>
<data name="Home_AutoRestore.Description" xml:space="preserve">
<data name="Home_Activation_AutoRestore.Description" xml:space="preserve">
<value>Автоматическое масштабирование при возвращении окна на передний план</value>
</data>
<data name="Home_AutoRestore.Header" xml:space="preserve">
<data name="Home_Activation_AutoRestore.Header" xml:space="preserve">
<value>Автоматическое восстановление</value>
</data>
<data name="Home_AutoRestore_Activate.Content" xml:space="preserve">
<data name="Home_Activation_AutoRestore_Activate.Content" xml:space="preserve">
<value>Активировать</value>
</data>
<data name="Home_AutoRestore_CurWindow" xml:space="preserve">
<data name="Home_Activation_AutoRestore_CurWindow" xml:space="preserve">
<value>Текущее окно: </value>
</data>
<data name="Home_AutoRestore_EmptyTitle" xml:space="preserve">
<data name="Home_Activation_AutoRestore_EmptyTitle" xml:space="preserve">
<value>Название пустое</value>
</data>
<data name="Home_PageFrame.Title" xml:space="preserve">
<value>Главная</value>
</data>
<data name="Home_Timer.Description" xml:space="preserve">
<data name="Home_Activation_Timer.Description" xml:space="preserve">
<value>Масштабирование переднего окна после задержки</value>
</data>
<data name="Home_Timer.Header" xml:space="preserve">
<data name="Home_Activation_Timer.Header" xml:space="preserve">
<value>Отложенное масштабирование</value>
</data>
<data name="Home_Timer_ButtonText" xml:space="preserve">
<data name="Home_Activation_Timer_ButtonText" xml:space="preserve">
<value>Масштабировать после {}с</value>
</data>
<data name="Home_Timer_Cancel" xml:space="preserve">
<data name="Home_Activation_Timer_Cancel" xml:space="preserve">
<value>Отмена</value>
</data>
<data name="Home_Timer_Delay.Header" xml:space="preserve">
<data name="Home_Activation_Timer_Delay.Header" xml:space="preserve">
<value>Задержка в секундах</value>
</data>
<data name="ShortcutDialog_Cancel" xml:space="preserve">
@ -261,13 +261,13 @@
<data name="Root_Profiles.Content" xml:space="preserve">
<value>Профили</value>
</data>
<data name="Root_ScalingConfiguration.Content" xml:space="preserve">
<data name="Root_ScalingModes.Content" xml:space="preserve">
<value>Настройки масштабирования</value>
</data>
<data name="ScalingConfiguration_PageFrame.Title" xml:space="preserve">
<data name="ScalingModes_PageFrame.Title" xml:space="preserve">
<value>Настройки масштабирования</value>
</data>
<data name="Settings_Advanced.Header" xml:space="preserve">
<data name="Home_Advanced.Header" xml:space="preserve">
<value>Расширенные</value>
</data>
<data name="Settings_General.Header" xml:space="preserve">
@ -324,21 +324,18 @@
<data name="Settings_Launch.Header" xml:space="preserve">
<value>Запуск</value>
</data>
<data name="ScalingConfiguration_General_Export.Text" xml:space="preserve">
<data name="ScalingModes_General_Export.Text" xml:space="preserve">
<value>Экспортировать</value>
</data>
<data name="ScalingConfiguration_General_Import.Text" xml:space="preserve">
<data name="ScalingModes_General_Import.Text" xml:space="preserve">
<value>Импортировать</value>
</data>
<data name="ScalingConfiguration_General_ImportLegacy.Text" xml:space="preserve">
<data name="ScalingModes_General_ImportLegacy.Text" xml:space="preserve">
<value>Импортировать ScaleModels.json</value>
</data>
<data name="ScalingConfiguration_General_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_General_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Больше настроек</value>
</data>
<data name="ScalingConfiguration_ScalingModes.Header" xml:space="preserve">
<value>Режимы масштабирования</value>
</data>
<data name="Settings_Launch_AlwaysRunAsAdmin.Description" xml:space="preserve">
<value>Для использования этой настройки нужно запустить приложение от имени администратора</value>
</data>
@ -375,97 +372,97 @@
<data name="About_OtherLinks_Repository.Text" xml:space="preserve">
<value>Github репозиторий</value>
</data>
<data name="ScalingConfiguration_ScalingModes_RenameFlyout_OK.Content" xml:space="preserve">
<data name="ScalingModes_RenameFlyout_OK.Content" xml:space="preserve">
<value>Отлично</value>
</data>
<data name="ScalingConfiguration_ScalingModes_RenameFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_RenameFlyout_Title.Text" xml:space="preserve">
<value>Переименовать</value>
</data>
<data name="ScalingConfiguration_ScalingModes_AddEffect.Text" xml:space="preserve">
<data name="ScalingModes_AddEffect.Text" xml:space="preserve">
<value>Добавить эффект</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Delete.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Delete.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Удалить</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Delete.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Delete.Text" xml:space="preserve">
<value>Удалить</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Description.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Description.Text" xml:space="preserve">
<value>Его используют следующие профили:</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Title.Text" xml:space="preserve">
<value>Вы уверены, что хотите удалить этот режим масштабирования?</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DragNotSupported.Text" xml:space="preserve">
<data name="ScalingModes_DragNotSupported.Text" xml:space="preserve">
<value>Перетаскивание не поддерживается при работе от имени администратора</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DragToReorder.Text" xml:space="preserve">
<data name="ScalingModes_DragToReorder.Text" xml:space="preserve">
<value>Перетащите, чтобы переупорядочить</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoveDown.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoveDown.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Опустить</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoveUp.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoveUp.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Поднять</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingMode.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingMode.Text" xml:space="preserve">
<value>Новый режим масштабирования</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Title.Text" xml:space="preserve">
<value>Новый режим масштабирования</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Scale.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Scale.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Масштабирование</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_CopyFrom.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_CopyFrom.Text" xml:space="preserve">
<value>Копировать из</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_CopyFrom_None" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_CopyFrom_None" xml:space="preserve">
<value>Ничего</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Create.Content" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Create.Content" xml:space="preserve">
<value>Создать</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Name.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Name.Text" xml:space="preserve">
<value>Название</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_HeightFactor.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_HeightFactor.Text" xml:space="preserve">
<value>Высота (множитель масштабирования)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_HeightPixels.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_HeightPixels.Text" xml:space="preserve">
<value>Высота (пиксели)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_WidthFactor.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_WidthFactor.Text" xml:space="preserve">
<value>Ширина (множитель масштабирования)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fill_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fill_Description" xml:space="preserve">
<value>Заполняет экран, изображение может быть растянуто</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fit" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fit" xml:space="preserve">
<value>Вписывание</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_WidthPixels.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_WidthPixels.Text" xml:space="preserve">
<value>Ширина (пиксели)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type.Text" xml:space="preserve">
<value>Тип</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Absolute" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Absolute" xml:space="preserve">
<value>Абсолютно</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Absolute_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Absolute_Description" xml:space="preserve">
<value>Установить размер после масштабирования</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Factor" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Factor" xml:space="preserve">
<value>Множитель</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Factor_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Factor_Description" xml:space="preserve">
<value>Выставить множитель масштабирования относительно входного изображения</value>
</data>
<data name="Profile_General_Multimonitor_All.Content" xml:space="preserve">
<value>Все мониторы</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fit_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fit_Description" xml:space="preserve">
<value>Выставить множитель масштабирования после заполнения экрана пропорциональным масштабированием</value>
</data>
<data name="Profile_General.Header" xml:space="preserve">
@ -531,7 +528,7 @@
<data name="Profile_MoreOptions_ReorderFlyout_Title.Text" xml:space="preserve">
<value>Переупорядочить</value>
</data>
<data name="ScalingConfiguration_ParsingFailed.Title" xml:space="preserve">
<data name="ScalingModes_ParsingFailed.Title" xml:space="preserve">
<value>Сбой парсинга</value>
</data>
<data name="Profile_General_ScalingMode_None" xml:space="preserve">
@ -654,16 +651,16 @@
<data name="Profile_SourceWindow_DisableWindowResizing.Header" xml:space="preserve">
<value>Выключить изменение размера окна при масштабировании</value>
</data>
<data name="Settings_Advanced_InlineParams.Description" xml:space="preserve">
<data name="Home_Advanced_InlineParams.Description" xml:space="preserve">
<value>Даёт небольшой прирост производительности. Однако эффекты должны быть перекомпилированы при каждом изменении их параметров</value>
</data>
<data name="Settings_Advanced_InlineParams.Header" xml:space="preserve">
<data name="Home_Advanced_InlineParams.Header" xml:space="preserve">
<value>Сделать параметры эффекта встроенными</value>
</data>
<data name="Settings_Advanced_SimulateExclusiveFullscreen.Description" xml:space="preserve">
<data name="Home_Advanced_SimulateExclusiveFullscreen.Description" xml:space="preserve">
<value>Уведомления и всплывающие окна некоторых приложений будут заблокированы</value>
</data>
<data name="Settings_Advanced_SimulateExclusiveFullscreen.Header" xml:space="preserve">
<data name="Home_Advanced_SimulateExclusiveFullscreen.Header" xml:space="preserve">
<value>Симуляция эксклюзивного полного экрана при масштабировании</value>
</data>
<data name="Settings_Launch_RunAtStartup_MinimizeAtStartup.Description" xml:space="preserve">
@ -678,22 +675,22 @@
<data name="AppSettings_Dialog_Warning" xml:space="preserve">
<value>Предупреждение</value>
</data>
<data name="Settings_DeveloperOptions.Description" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions.Description" xml:space="preserve">
<value>Эти настройки предназначены только для разработчиков</value>
</data>
<data name="Settings_DeveloperOptions.Header" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions.Header" xml:space="preserve">
<value>Настройки разработчика</value>
</data>
<data name="Settings_DeveloperOptions_DebugMode.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DebugMode.Content" xml:space="preserve">
<value>Режим отладки</value>
</data>
<data name="Settings_DeveloperOptions_DisableEffectCache.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DisableEffectCache.Content" xml:space="preserve">
<value>Отключить кэш эффектов</value>
</data>
<data name="Settings_DeveloperOptions_SaveEffectSources.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_SaveEffectSources.Content" xml:space="preserve">
<value>Сохранение исходного кода при анализе эффектов</value>
</data>
<data name="Settings_DeveloperOptions_WarningsAreErrors.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_WarningsAreErrors.Content" xml:space="preserve">
<value>Рассматривать предупреждения как ошибки при компиляции эффектов</value>
</data>
<data name="AppSettings_Dialog_Exit" xml:space="preserve">
@ -724,10 +721,10 @@
<data name="ImportLegacyDialog_Title" xml:space="preserve">
<value>Импортировать ScaleModels.json</value>
</data>
<data name="ScalingConfiguration_ScalingModes_HasUnkownEffects.Title" xml:space="preserve">
<data name="ScalingModes_HasUnkownEffects.Title" xml:space="preserve">
<value>Некоторые эффекты нельзя анализировать</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Description_UnknownEffect" xml:space="preserve">
<data name="ScalingModes_Description_UnknownEffect" xml:space="preserve">
<value>Неизвестный эффект</value>
</data>
<data name="About_Version_Version" xml:space="preserve">
@ -766,10 +763,10 @@
<data name="Overlay_Profiler_Timings_SwitchToPasses" xml:space="preserve">
<value>Переключиться на проходы</value>
</data>
<data name="Settings_DeveloperOptions_DisableFontCache.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DisableFontCache.Content" xml:space="preserve">
<value>Выключить кэш шрифтов</value>
</data>
<data name="Settings_Advanced_AllowScalingMaximized.Header" xml:space="preserve">
<data name="Home_Activation_AllowScalingMaximized.Header" xml:space="preserve">
<value>Разрешить масштабирование развёрнутых или полноэкранных окон</value>
</data>
<data name="FileDialog_JsonFile" xml:space="preserve">
@ -796,16 +793,16 @@
<data name="About_DeveloperModeEnabled" xml:space="preserve">
<value>Включен режим разработчика.</value>
</data>
<data name="Settings_DeveloperOptions_DuplicateFrameDetection.Header" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DuplicateFrameDetection.Header" xml:space="preserve">
<value>Обнаружение повторых кадров</value>
</data>
<data name="Settings_DeveloperOptions_DuplicateFrameDetection_Always.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DuplicateFrameDetection_Always.Content" xml:space="preserve">
<value>Всегда</value>
</data>
<data name="Settings_DeveloperOptions_DuplicateFrameDetection_Dynamic.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DuplicateFrameDetection_Dynamic.Content" xml:space="preserve">
<value>Динамически</value>
</data>
<data name="Settings_DeveloperOptions_EnableStatisticsForDynamicDetection.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_EnableStatisticsForDynamicDetection.Content" xml:space="preserve">
<value>Включить статистику для динамического обнаружения</value>
</data>
<data name="Overlay_Profiler_DynamicDetection" xml:space="preserve">
@ -817,7 +814,7 @@
<data name="Profile_Performance_FrameRateLimiter_MaxFrameRate.Header" xml:space="preserve">
<value>Максимальная частота кадров</value>
</data>
<data name="Settings_DeveloperOptions_DuplicateFrameDetection_Never.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DuplicateFrameDetection_Never.Content" xml:space="preserve">
<value>Никогда</value>
</data>
<data name="Overlay_Profiler_FrameRate" xml:space="preserve">

View file

@ -59,7 +59,7 @@
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root">
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
@ -117,10 +117,10 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type.Text" xml:space="preserve">
<value>Tür</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fit_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fit_Description" xml:space="preserve">
<value>Ekranı orantılı ölçek ile doldurduktan sonra ölçek etkenini ayarla</value>
</data>
<data name="Profile_MoreOptions_RenameFlyout_OK.Content" xml:space="preserve">
@ -174,34 +174,34 @@
<data name="Home_Activation.Header" xml:space="preserve">
<value>Aktivasyon</value>
</data>
<data name="Home_AutoRestore.Header" xml:space="preserve">
<data name="Home_Activation_AutoRestore.Header" xml:space="preserve">
<value>Otomatik geri yükle</value>
</data>
<data name="Home_AutoRestore_Activate.Content" xml:space="preserve">
<data name="Home_Activation_AutoRestore_Activate.Content" xml:space="preserve">
<value>Etkinleştir</value>
</data>
<data name="Home_AutoRestore_Clear.Content" xml:space="preserve">
<data name="Home_Activation_AutoRestore_Clear.Content" xml:space="preserve">
<value>Temizle</value>
</data>
<data name="Home_AutoRestore_CurWindow" xml:space="preserve">
<data name="Home_Activation_AutoRestore_CurWindow" xml:space="preserve">
<value>Mevcut pencere: </value>
</data>
<data name="Home_AutoRestore_EmptyTitle" xml:space="preserve">
<data name="Home_Activation_AutoRestore_EmptyTitle" xml:space="preserve">
<value>Boş başlık</value>
</data>
<data name="Home_Timer.Description" xml:space="preserve">
<data name="Home_Activation_Timer.Description" xml:space="preserve">
<value>Zamanlayıcı sona erdiğinde ön plandaki pencereyi ölçeklendir</value>
</data>
<data name="Home_Timer.Header" xml:space="preserve">
<data name="Home_Activation_Timer.Header" xml:space="preserve">
<value>Gecikmeli ölçek</value>
</data>
<data name="Home_Timer_ButtonText" xml:space="preserve">
<data name="Home_Activation_Timer_ButtonText" xml:space="preserve">
<value>{}s sonra ölçekle</value>
</data>
<data name="Home_Timer_Cancel" xml:space="preserve">
<data name="Home_Activation_Timer_Cancel" xml:space="preserve">
<value>İptal</value>
</data>
<data name="Home_Timer_Delay.Header" xml:space="preserve">
<data name="Home_Activation_Timer_Delay.Header" xml:space="preserve">
<value>Gecikme saniyesi</value>
</data>
<data name="ShortcutDialog_Cancel" xml:space="preserve">
@ -246,10 +246,10 @@
<data name="Root_Profiles.Content" xml:space="preserve">
<value>Profiller</value>
</data>
<data name="Root_ScalingConfiguration.Content" xml:space="preserve">
<data name="Root_ScalingModes.Content" xml:space="preserve">
<value>Ölçek yapılandırması</value>
</data>
<data name="Settings_Advanced.Header" xml:space="preserve">
<data name="Home_Advanced.Header" xml:space="preserve">
<value>Gelişmiş</value>
</data>
<data name="Settings_General.Header" xml:space="preserve">
@ -309,21 +309,18 @@
<data name="Settings_Launch.Header" xml:space="preserve">
<value>Başlat</value>
</data>
<data name="ScalingConfiguration_General_Export.Text" xml:space="preserve">
<data name="ScalingModes_General_Export.Text" xml:space="preserve">
<value>Dışarı aktar</value>
</data>
<data name="ScalingConfiguration_General_Import.Text" xml:space="preserve">
<data name="ScalingModes_General_Import.Text" xml:space="preserve">
<value>İçeri aktar</value>
</data>
<data name="ScalingConfiguration_General_ImportLegacy.Text" xml:space="preserve">
<data name="ScalingModes_General_ImportLegacy.Text" xml:space="preserve">
<value>İçeri aktar ScaleModels.json</value>
</data>
<data name="ScalingConfiguration_General_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_General_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Diğer seçenekler</value>
</data>
<data name="ScalingConfiguration_ScalingModes.Header" xml:space="preserve">
<value>Ölçek kipleri</value>
</data>
<data name="Settings_Launch_AlwaysRunAsAdmin.Description" xml:space="preserve">
<value>Bu ayarı kullanmak için yönetici olarak çalıştırmak gerekir</value>
</data>
@ -357,97 +354,97 @@
<data name="About_OtherLinks_Repository.Text" xml:space="preserve">
<value>Github deposu</value>
</data>
<data name="ScalingConfiguration_Parameters.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Parameters.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Parametreler</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Diğer seçenekler</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_Delete.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_Delete.Text" xml:space="preserve">
<value>Sil</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_MoveDown.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_MoveDown.Text" xml:space="preserve">
<value>Aşağı taşı</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_MoveUp.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_MoveUp.Text" xml:space="preserve">
<value>Yukarı taşı</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Rename.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Rename.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Adlandır</value>
</data>
<data name="ScalingConfiguration_ScalingModes_RenameFlyout_OK.Content" xml:space="preserve">
<data name="ScalingModes_RenameFlyout_OK.Content" xml:space="preserve">
<value>Tamam</value>
</data>
<data name="ScalingConfiguration_ScalingModes_RenameFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_RenameFlyout_Title.Text" xml:space="preserve">
<value>Adlandır</value>
</data>
<data name="ScalingConfiguration_ScalingModes_AddEffect.Text" xml:space="preserve">
<data name="ScalingModes_AddEffect.Text" xml:space="preserve">
<value>Efekt ekle</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Delete.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Delete.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Sil</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Delete.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Delete.Text" xml:space="preserve">
<value>Sil</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Description.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Description.Text" xml:space="preserve">
<value>Aşağıdaki profiller tarafından kullanılmaktadır:</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Title.Text" xml:space="preserve">
<value>Bu ölçek kipini silmek istediğinizden emin misiniz?</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DragToReorder.Text" xml:space="preserve">
<data name="ScalingModes_DragToReorder.Text" xml:space="preserve">
<value>Sıralamak için sürükle</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoveDown.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoveDown.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Aşağı taşı</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoveUp.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoveUp.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Yukarı taşı</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Title.Text" xml:space="preserve">
<value>Yeni ölçek kipi</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_CopyFrom.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_CopyFrom.Text" xml:space="preserve">
<value>Şuradan kopyala</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_CopyFrom_None" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_CopyFrom_None" xml:space="preserve">
<value>Yok</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Create.Content" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Create.Content" xml:space="preserve">
<value>Oluştur</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Name.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Name.Text" xml:space="preserve">
<value>İsim</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_HeightFactor.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_HeightFactor.Text" xml:space="preserve">
<value>Yükseklik (ölçek etkeni)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_HeightPixels.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_HeightPixels.Text" xml:space="preserve">
<value>Yükseklik (piksel)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_WidthFactor.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_WidthFactor.Text" xml:space="preserve">
<value>Genişlik (ölçek etkeni)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_WidthPixels.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_WidthPixels.Text" xml:space="preserve">
<value>Genişlik (piksel)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Absolute_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Absolute_Description" xml:space="preserve">
<value>Ölçek sonrası boyutu ayarla</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Factor" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Factor" xml:space="preserve">
<value>Etken</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Factor_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Factor_Description" xml:space="preserve">
<value>Giriş görüntüsüne göre ölçek etkeni ayarla</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fill" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fill" xml:space="preserve">
<value>Doldur</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fill_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fill_Description" xml:space="preserve">
<value>Ekranı doldurur, görüntü uzatılabilir</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fit" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fit" xml:space="preserve">
<value>Sığdır</value>
</data>
<data name="Profile_General.Header" xml:space="preserve">
@ -480,7 +477,7 @@
<data name="Profile_MoreOptions_ReorderFlyout_MoveUp.Text" xml:space="preserve">
<value>Yukarı taşı</value>
</data>
<data name="ScalingConfiguration_ParsingFailed.Title" xml:space="preserve">
<data name="ScalingModes_ParsingFailed.Title" xml:space="preserve">
<value>Ayrıştırma başarısız</value>
</data>
<data name="Profile_General_ScalingMode_None" xml:space="preserve">
@ -489,7 +486,7 @@
<data name="Profile_Performance.Header" xml:space="preserve">
<value>Performans</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Absolute" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Absolute" xml:space="preserve">
<value>Salt</value>
</data>
<data name="Profile_MoreOptions_Reorder.Text" xml:space="preserve">
@ -600,16 +597,16 @@
<data name="Profile_SourceWindow_DisableWindowResizing.Header" xml:space="preserve">
<value>Ölçeklendirme sonrası pencereyi yeniden boyutlandırma</value>
</data>
<data name="Settings_Advanced_InlineParams.Description" xml:space="preserve">
<data name="Home_Advanced_InlineParams.Description" xml:space="preserve">
<value>Küçük bir performans artışı sağlar. Ancak, parametreleri her değiştirildiğinde efektlerin yeniden derlenmesi gerekir</value>
</data>
<data name="Settings_Advanced_InlineParams.Header" xml:space="preserve">
<data name="Home_Advanced_InlineParams.Header" xml:space="preserve">
<value>Efekt parametrelerini satır içi yap</value>
</data>
<data name="Settings_Advanced_SimulateExclusiveFullscreen.Description" xml:space="preserve">
<data name="Home_Advanced_SimulateExclusiveFullscreen.Description" xml:space="preserve">
<value>Belirli uygulamalardan gelen bildirimler ve açılır pencereler engellenir</value>
</data>
<data name="Settings_Advanced_SimulateExclusiveFullscreen.Header" xml:space="preserve">
<data name="Home_Advanced_SimulateExclusiveFullscreen.Header" xml:space="preserve">
<value>Ölçekleme sırasında orjinal tam ekranı taklit edin</value>
</data>
<data name="Settings_Launch_RunAtStartup_MinimizeAtStartup.Description" xml:space="preserve">
@ -624,22 +621,22 @@
<data name="AppSettings_Dialog_Warning" xml:space="preserve">
<value>Uyarı</value>
</data>
<data name="Settings_DeveloperOptions.Description" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions.Description" xml:space="preserve">
<value>Bu ayarlar yalnızca geliştirme amaçlı kullanım içindir</value>
</data>
<data name="Settings_DeveloperOptions.Header" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions.Header" xml:space="preserve">
<value>Geliştirici seçenekleri</value>
</data>
<data name="Settings_DeveloperOptions_DebugMode.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DebugMode.Content" xml:space="preserve">
<value>Hata kipi</value>
</data>
<data name="Settings_DeveloperOptions_DisableEffectCache.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DisableEffectCache.Content" xml:space="preserve">
<value>Efekt önbelleğini devre dışı bırak</value>
</data>
<data name="Settings_DeveloperOptions_SaveEffectSources.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_SaveEffectSources.Content" xml:space="preserve">
<value>Efektleri ayrıştırırken kaynak kodunu kaydet</value>
</data>
<data name="Settings_DeveloperOptions_WarningsAreErrors.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_WarningsAreErrors.Content" xml:space="preserve">
<value>Efektleri derlerken uyarıları hata olarak ele alma</value>
</data>
<data name="AppSettings_Dialog_Exit" xml:space="preserve">
@ -670,10 +667,10 @@
<data name="Settings_General_RequireRestart_ActionButton.Content" xml:space="preserve">
<value>Yeniden başlat</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Description_UnknownEffect" xml:space="preserve">
<data name="ScalingModes_Description_UnknownEffect" xml:space="preserve">
<value>Bilinmeyen efekt</value>
</data>
<data name="ScalingConfiguration_ScalingModes_HasUnkownEffects.Title" xml:space="preserve">
<data name="ScalingModes_HasUnkownEffects.Title" xml:space="preserve">
<value>Bazı efektler ayrıştırılamıyor</value>
</data>
<data name="ExportDialog_Title" xml:space="preserve">
@ -688,7 +685,7 @@
<data name="About_PageFrame.Title" xml:space="preserve">
<value>Hakkında</value>
</data>
<data name="Home_AutoRestore.Description" xml:space="preserve">
<data name="Home_Activation_AutoRestore.Description" xml:space="preserve">
<value>Pencere ön plana döndüğünde otomatik olarak ölçeklendir</value>
</data>
<data name="ShortcutDialog_Description.Text" xml:space="preserve">
@ -697,7 +694,7 @@
<data name="Root_NewProfileFlyout_Create.Content" xml:space="preserve">
<value>Oluştur</value>
</data>
<data name="ScalingConfiguration_PageFrame.Title" xml:space="preserve">
<data name="ScalingModes_PageFrame.Title" xml:space="preserve">
<value>Ölçek yapılandırması</value>
</data>
<data name="Settings_General_ShowNotifyIcon.Description" xml:space="preserve">
@ -712,13 +709,13 @@
<data name="About_OtherLinks_ContributionGuidelines.Text" xml:space="preserve">
<value>Katkı kuralları</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DragNotSupported.Text" xml:space="preserve">
<data name="ScalingModes_DragNotSupported.Text" xml:space="preserve">
<value>Yönetici olarak çalışırken sürükle ve bırak desteklenmez</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Scale.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Scale.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Ölçek</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingMode.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingMode.Text" xml:space="preserve">
<value>Yeni ölçek kipi</value>
</data>
<data name="About_Version_CheckForUpdates.Text" xml:space="preserve">
@ -766,10 +763,10 @@
<data name="Overlay_Profiler_Timings_SwitchToEffects" xml:space="preserve">
<value>Efektleri değiştir</value>
</data>
<data name="Settings_DeveloperOptions_DisableFontCache.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DisableFontCache.Content" xml:space="preserve">
<value>Yazı tipi önbelleği etkisizleştir</value>
</data>
<data name="Settings_Advanced_AllowScalingMaximized.Header" xml:space="preserve">
<data name="Home_Activation_AllowScalingMaximized.Header" xml:space="preserve">
<value>Ekranı kaplayan veya tam ekran pencere ölçeğine izin ver</value>
</data>
<data name="Profile_MoreOptions_ChangeExecutableForLaunching.Text" xml:space="preserve">
@ -802,13 +799,13 @@
<data name="Profile_Performance_FrameRateLimiter_MaxFrameRate.Header" xml:space="preserve">
<value>Maksimum kare hızı</value>
</data>
<data name="Settings_DeveloperOptions_DuplicateFrameDetection_Always.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DuplicateFrameDetection_Always.Content" xml:space="preserve">
<value>Her zaman</value>
</data>
<data name="Settings_DeveloperOptions_DuplicateFrameDetection_Never.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DuplicateFrameDetection_Never.Content" xml:space="preserve">
<value>Asla</value>
</data>
<data name="Settings_DeveloperOptions_EnableStatisticsForDynamicDetection.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_EnableStatisticsForDynamicDetection.Content" xml:space="preserve">
<value>Dinamik algılama için istatistikleri etkinleştir</value>
</data>
<data name="Overlay_Profiler_DynamicDetection" xml:space="preserve">
@ -817,10 +814,10 @@
<data name="Overlay_Profiler_FrameRate" xml:space="preserve">
<value>Kare hızı</value>
</data>
<data name="Settings_DeveloperOptions_DuplicateFrameDetection_Dynamic.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DuplicateFrameDetection_Dynamic.Content" xml:space="preserve">
<value>Dinamik</value>
</data>
<data name="Settings_DeveloperOptions_DuplicateFrameDetection.Header" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DuplicateFrameDetection.Header" xml:space="preserve">
<value>Yinelenen kare algılaması</value>
</data>
</root>

View file

@ -129,28 +129,28 @@
<data name="Home_Activation.Header" xml:space="preserve">
<value>Активація</value>
</data>
<data name="Home_AutoRestore.Header" xml:space="preserve">
<data name="Home_Activation_AutoRestore.Header" xml:space="preserve">
<value>Автоматичне відновлення</value>
</data>
<data name="Home_AutoRestore_Activate.Content" xml:space="preserve">
<data name="Home_Activation_AutoRestore_Activate.Content" xml:space="preserve">
<value>Активувати</value>
</data>
<data name="Home_AutoRestore_Clear.Content" xml:space="preserve">
<data name="Home_Activation_AutoRestore_Clear.Content" xml:space="preserve">
<value>Очистити</value>
</data>
<data name="Home_AutoRestore_CurWindow" xml:space="preserve">
<data name="Home_Activation_AutoRestore_CurWindow" xml:space="preserve">
<value>Поточне вікно: </value>
</data>
<data name="Home_PageFrame.Title" xml:space="preserve">
<value>Головна</value>
</data>
<data name="Home_Timer.Description" xml:space="preserve">
<data name="Home_Activation_Timer.Description" xml:space="preserve">
<value>Масштабування вікна переднього плану після закінчення таймера</value>
</data>
<data name="Home_Timer.Header" xml:space="preserve">
<data name="Home_Activation_Timer.Header" xml:space="preserve">
<value>Відкладене масштабування</value>
</data>
<data name="Home_Timer_Delay.Header" xml:space="preserve">
<data name="Home_Activation_Timer_Delay.Header" xml:space="preserve">
<value>Затримка в секундах</value>
</data>
<data name="ShortcutDialog_Description.Text" xml:space="preserve">
@ -189,13 +189,13 @@
<data name="Root_Profiles.Content" xml:space="preserve">
<value>Профілі</value>
</data>
<data name="Root_ScalingConfiguration.Content" xml:space="preserve">
<data name="Root_ScalingModes.Content" xml:space="preserve">
<value>Конфігурація масштабування</value>
</data>
<data name="ScalingConfiguration_PageFrame.Title" xml:space="preserve">
<data name="ScalingModes_PageFrame.Title" xml:space="preserve">
<value>Конфігурація масштабування</value>
</data>
<data name="Settings_Advanced.Header" xml:space="preserve">
<data name="Home_Advanced.Header" xml:space="preserve">
<value>Розширені</value>
</data>
<data name="Settings_General.Header" xml:space="preserve">
@ -234,18 +234,15 @@
<data name="Settings_Launch.Header" xml:space="preserve">
<value>Запуск</value>
</data>
<data name="ScalingConfiguration_General_Export.Text" xml:space="preserve">
<data name="ScalingModes_General_Export.Text" xml:space="preserve">
<value>Експорт</value>
</data>
<data name="ScalingConfiguration_General_ImportLegacy.Text" xml:space="preserve">
<data name="ScalingModes_General_ImportLegacy.Text" xml:space="preserve">
<value>Імпортувати ScaleModels.json</value>
</data>
<data name="ScalingConfiguration_General_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_General_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Додаткові параметри</value>
</data>
<data name="ScalingConfiguration_ScalingModes.Header" xml:space="preserve">
<value>Режими масштабування</value>
</data>
<data name="Settings_Launch_AlwaysRunAsAdmin.Description" xml:space="preserve">
<value>Щоб скористатися цим параметром, вам потрібно запустити від імені адміністратора</value>
</data>
@ -270,97 +267,97 @@
<data name="About_OtherLinks_ContributionGuidelines.Text" xml:space="preserve">
<value>Рекомендації щодо внеску</value>
</data>
<data name="ScalingConfiguration_Parameters.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Parameters.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Параметри</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Додаткові параметри</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_Delete.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_Delete.Text" xml:space="preserve">
<value>Видалити</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_MoveDown.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_MoveDown.Text" xml:space="preserve">
<value>Перемістити вниз</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_MoveUp.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_MoveUp.Text" xml:space="preserve">
<value>Перемістити вгору</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Rename.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Rename.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Перейменувати</value>
</data>
<data name="ScalingConfiguration_ScalingModes_RenameFlyout_OK.Content" xml:space="preserve">
<data name="ScalingModes_RenameFlyout_OK.Content" xml:space="preserve">
<value>OK</value>
</data>
<data name="ScalingConfiguration_ScalingModes_RenameFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_RenameFlyout_Title.Text" xml:space="preserve">
<value>Перейменувати</value>
</data>
<data name="ScalingConfiguration_ScalingModes_AddEffect.Text" xml:space="preserve">
<data name="ScalingModes_AddEffect.Text" xml:space="preserve">
<value>Додати ефект</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Delete.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Delete.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Видалити</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Delete.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Delete.Text" xml:space="preserve">
<value>Видалити</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Description.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Description.Text" xml:space="preserve">
<value>Його використовують наступні профілі:</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DragNotSupported.Text" xml:space="preserve">
<data name="ScalingModes_DragNotSupported.Text" xml:space="preserve">
<value>Перетягування не підтримується під час роботи від імені адміністратора</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DragToReorder.Text" xml:space="preserve">
<data name="ScalingModes_DragToReorder.Text" xml:space="preserve">
<value>Перетягніть, щоб змінити порядок</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoveUp.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoveUp.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Перемістити вгору</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingMode.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingMode.Text" xml:space="preserve">
<value>Новий режим масштабування</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Scale.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Scale.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Масштаб</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_CopyFrom.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_CopyFrom.Text" xml:space="preserve">
<value>Копіювати з</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_CopyFrom_None" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_CopyFrom_None" xml:space="preserve">
<value>Немає</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Create.Content" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Create.Content" xml:space="preserve">
<value>Створити</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Name.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Name.Text" xml:space="preserve">
<value>Ім'я</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_HeightFactor.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_HeightFactor.Text" xml:space="preserve">
<value>Висота (коефіцієнт масштабування)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_HeightPixels.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_HeightPixels.Text" xml:space="preserve">
<value>Висота (пікселі)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_WidthPixels.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_WidthPixels.Text" xml:space="preserve">
<value>Ширина (пікселі)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type.Text" xml:space="preserve">
<value>Тип</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Absolute" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Absolute" xml:space="preserve">
<value>Абсолютний</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Absolute_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Absolute_Description" xml:space="preserve">
<value>Встановити розмір після масштабування</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Factor" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Factor" xml:space="preserve">
<value>Коефіцієнт</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fill" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fill" xml:space="preserve">
<value>Заповнити</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fill_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fill_Description" xml:space="preserve">
<value>Заповнює екран, зображення може розтягуватися</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fit" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fit" xml:space="preserve">
<value>Підігнати</value>
</data>
<data name="Profile_General.Header" xml:space="preserve">
@ -414,7 +411,7 @@
<data name="Profile_MoreOptions_ReorderFlyout_MoveDown.Text" xml:space="preserve">
<value>Перемістити вниз</value>
</data>
<data name="ScalingConfiguration_ParsingFailed.Title" xml:space="preserve">
<data name="ScalingModes_ParsingFailed.Title" xml:space="preserve">
<value>Помилка синтаксичного аналізу</value>
</data>
<data name="Profile_General_ScalingMode_None" xml:space="preserve">
@ -516,10 +513,10 @@
<data name="Profile_SourceWindow_CustomCropping_Right.Header" xml:space="preserve">
<value>Праворуч</value>
</data>
<data name="Settings_Advanced_InlineParams.Description" xml:space="preserve">
<data name="Home_Advanced_InlineParams.Description" xml:space="preserve">
<value>Дає невеликий приріст продуктивності. Однак ефекти потрібно перекомпілювати щоразу, коли змінюються їхні параметри</value>
</data>
<data name="Settings_Advanced_SimulateExclusiveFullscreen.Description" xml:space="preserve">
<data name="Home_Advanced_SimulateExclusiveFullscreen.Description" xml:space="preserve">
<value>Сповіщення та спливаючі вікна певних застосунків будуть заблоковані</value>
</data>
<data name="Settings_Launch_RunAtStartup_MinimizeAtStartup.Description" xml:space="preserve">
@ -531,16 +528,16 @@
<data name="AppSettings_Dialog_Error" xml:space="preserve">
<value>Помилка</value>
</data>
<data name="Settings_DeveloperOptions.Description" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions.Description" xml:space="preserve">
<value>Ці налаштування призначені лише для використання під час розробки</value>
</data>
<data name="Settings_DeveloperOptions.Header" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions.Header" xml:space="preserve">
<value>Параметри розробника</value>
</data>
<data name="Settings_DeveloperOptions_DisableEffectCache.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DisableEffectCache.Content" xml:space="preserve">
<value>Вимкнути кеш ефектів</value>
</data>
<data name="Settings_DeveloperOptions_WarningsAreErrors.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_WarningsAreErrors.Content" xml:space="preserve">
<value>Розглядайте попередження як помилки під час компіляції ефектів</value>
</data>
<data name="AppSettings_Dialog_Exit" xml:space="preserve">
@ -556,16 +553,16 @@
<data name="NotifyIcon_Exit" xml:space="preserve">
<value>Вихід</value>
</data>
<data name="Home_AutoRestore.Description" xml:space="preserve">
<data name="Home_Activation_AutoRestore.Description" xml:space="preserve">
<value>Автоматичне масштабування, коли вікно повертається на передній план</value>
</data>
<data name="Home_AutoRestore_EmptyTitle" xml:space="preserve">
<data name="Home_Activation_AutoRestore_EmptyTitle" xml:space="preserve">
<value>Назва порожня</value>
</data>
<data name="Home_Timer_ButtonText" xml:space="preserve">
<data name="Home_Activation_Timer_ButtonText" xml:space="preserve">
<value>Масштабування після {}с</value>
</data>
<data name="Home_Timer_Cancel" xml:space="preserve">
<data name="Home_Activation_Timer_Cancel" xml:space="preserve">
<value>Скасувати</value>
</data>
<data name="ShortcutDialog_Cancel" xml:space="preserve">
@ -574,7 +571,7 @@
<data name="ShortcutDialog_InUse" xml:space="preserve">
<value>Вже використовується</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Title.Text" xml:space="preserve">
<value>Ви впевнені, що хочете видалити цей режим масштабування?</value>
</data>
<data name="Root_About.Content" xml:space="preserve">
@ -613,7 +610,7 @@
<data name="About_Feedback_ReportBug.Header" xml:space="preserve">
<value>Повідомити про помилку</value>
</data>
<data name="ScalingConfiguration_General_Import.Text" xml:space="preserve">
<data name="ScalingModes_General_Import.Text" xml:space="preserve">
<value>Імпорт</value>
</data>
<data name="Home_UpdateCard_AutoCheckForUpdates.Content" xml:space="preserve">
@ -628,10 +625,10 @@
<data name="About_OtherLinks_Repository.Text" xml:space="preserve">
<value>Репозиторій Github</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoveDown.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoveDown.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Перемістити вниз</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Title.Text" xml:space="preserve">
<value>Новий режим масштабування</value>
</data>
<data name="About_Version_CheckForUpdates.Text" xml:space="preserve">
@ -640,16 +637,16 @@
<data name="About_Version_CheckForUpdatesFailed.Title" xml:space="preserve">
<value>Не вдалося перевірити наявність оновлень, спробуйте пізніше</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Factor_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Factor_Description" xml:space="preserve">
<value>Встановити коефіцієнт масштабування відносно вхідного зображення</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_WidthFactor.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_WidthFactor.Text" xml:space="preserve">
<value>Ширина (коефіцієнт масштабування)</value>
</data>
<data name="Profile_MoreOptions_DeleteFlyout_Title.Text" xml:space="preserve">
<value>Ви впевнені, що хочете видалити цей профіль?</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fit_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fit_Description" xml:space="preserve">
<value>Встановити коефіцієнт масштабування після заповнення екрана за допомогою пропорційного масштабування</value>
</data>
<data name="Profile_Performance_GraphicsCard.Header" xml:space="preserve">
@ -679,7 +676,7 @@
<data name="Profile_SourceWindow_CaptureTitleBar.Description" xml:space="preserve">
<value>Обмежено захопленням графіки та дублюванням робочого столу</value>
</data>
<data name="Settings_Advanced_InlineParams.Header" xml:space="preserve">
<data name="Home_Advanced_InlineParams.Header" xml:space="preserve">
<value>Зробити параметри ефекту вбудованими</value>
</data>
<data name="Profile_SourceWindow_CustomCropping_Top.Header" xml:space="preserve">
@ -688,13 +685,13 @@
<data name="Profile_SourceWindow_DisableWindowResizing.Header" xml:space="preserve">
<value>Вимкнути зміну розміру вікна під час масштабування</value>
</data>
<data name="Settings_Advanced_SimulateExclusiveFullscreen.Header" xml:space="preserve">
<data name="Home_Advanced_SimulateExclusiveFullscreen.Header" xml:space="preserve">
<value>Імітація ексклюзивного повноекранного режиму при масштабуванні</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Description_UnknownEffect" xml:space="preserve">
<data name="ScalingModes_Description_UnknownEffect" xml:space="preserve">
<value>Невідомий ефект</value>
</data>
<data name="ScalingConfiguration_ScalingModes_HasUnkownEffects.Title" xml:space="preserve">
<data name="ScalingModes_HasUnkownEffects.Title" xml:space="preserve">
<value>Деякі ефекти не можуть бути проаналізовані</value>
</data>
<data name="ExportDialog_Title" xml:space="preserve">
@ -703,10 +700,10 @@
<data name="AppSettings_Dialog_Warning" xml:space="preserve">
<value>Попередження</value>
</data>
<data name="Settings_DeveloperOptions_SaveEffectSources.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_SaveEffectSources.Content" xml:space="preserve">
<value>Збереження вихідного коду під час синтаксичного аналізу ефектів</value>
</data>
<data name="Settings_DeveloperOptions_DebugMode.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DebugMode.Content" xml:space="preserve">
<value>Режим налагодження</value>
</data>
<data name="NotifyIcon_MainWindow" xml:space="preserve">
@ -766,10 +763,10 @@
<data name="Overlay_Profiler_Timings_SwitchToEffects" xml:space="preserve">
<value>Переключитися на ефекти</value>
</data>
<data name="Settings_DeveloperOptions_DisableFontCache.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DisableFontCache.Content" xml:space="preserve">
<value>Вимкнути кеш шрифтів</value>
</data>
<data name="Settings_Advanced_AllowScalingMaximized.Header" xml:space="preserve">
<data name="Home_Activation_AllowScalingMaximized.Header" xml:space="preserve">
<value>Дозволити масштабування розгорнутих або повноекранних вікон</value>
</data>
<data name="Profile_MoreOptions_ChangeExecutableForLaunching.Text" xml:space="preserve">

View file

@ -229,22 +229,22 @@
<data name="Home_Activation.Header" xml:space="preserve">
<value>Kích hoạt</value>
</data>
<data name="Home_AutoRestore.Description" xml:space="preserve">
<data name="Home_Activation_AutoRestore.Description" xml:space="preserve">
<value>Tự động scale cửa sổ trên cùng</value>
</data>
<data name="Home_AutoRestore.Header" xml:space="preserve">
<data name="Home_Activation_AutoRestore.Header" xml:space="preserve">
<value>Tự động scale</value>
</data>
<data name="Home_AutoRestore_Activate.Content" xml:space="preserve">
<data name="Home_Activation_AutoRestore_Activate.Content" xml:space="preserve">
<value>Kích hoạt</value>
</data>
<data name="Home_AutoRestore_Clear.Content" xml:space="preserve">
<data name="Home_Activation_AutoRestore_Clear.Content" xml:space="preserve">
<value>Xóa</value>
</data>
<data name="Home_AutoRestore_CurWindow" xml:space="preserve">
<data name="Home_Activation_AutoRestore_CurWindow" xml:space="preserve">
<value>Cửa sổ hiện tại: </value>
</data>
<data name="Home_AutoRestore_EmptyTitle" xml:space="preserve">
<data name="Home_Activation_AutoRestore_EmptyTitle" xml:space="preserve">
<value>Tiêu đề trống</value>
</data>
<data name="Home_PageFrame.Title" xml:space="preserve">
@ -265,19 +265,19 @@
<data name="Home_Shortcuts_Scale_ShortcutControl.Title" xml:space="preserve">
<value>Phím tắt Scale</value>
</data>
<data name="Home_Timer.Description" xml:space="preserve">
<data name="Home_Activation_Timer.Description" xml:space="preserve">
<value>Scale cửa sổ trên cùng khi hết thời gian</value>
</data>
<data name="Home_Timer.Header" xml:space="preserve">
<data name="Home_Activation_Timer.Header" xml:space="preserve">
<value>Thời gian chờ Scale</value>
</data>
<data name="Home_Timer_ButtonText" xml:space="preserve">
<data name="Home_Activation_Timer_ButtonText" xml:space="preserve">
<value>Scale sau {} giây</value>
</data>
<data name="Home_Timer_Cancel" xml:space="preserve">
<data name="Home_Activation_Timer_Cancel" xml:space="preserve">
<value>Hủy</value>
</data>
<data name="Home_Timer_Delay.Header" xml:space="preserve">
<data name="Home_Activation_Timer_Delay.Header" xml:space="preserve">
<value>Thời gian bằng giây</value>
</data>
<data name="Home_UpdateCard_AutoCheckForUpdates.Content" xml:space="preserve">
@ -334,7 +334,7 @@
<data name="Root_Profiles.Content" xml:space="preserve">
<value>Cấu hình</value>
</data>
<data name="Root_ScalingConfiguration.Content" xml:space="preserve">
<data name="Root_ScalingModes.Content" xml:space="preserve">
<value>Cài đặt Scaling</value>
</data>
<data name="Overlay_FPS_Lock" xml:space="preserve">
@ -517,184 +517,181 @@
<data name="Profile_SourceWindow_DisableWindowResizing.Header" xml:space="preserve">
<value>Vô hiệu hóa thay đổi cỡ cửa sổ</value>
</data>
<data name="ScalingConfiguration_General_Export.Text" xml:space="preserve">
<data name="ScalingModes_General_Export.Text" xml:space="preserve">
<value>Xuất</value>
</data>
<data name="ScalingConfiguration_General_Import.Text" xml:space="preserve">
<data name="ScalingModes_General_Import.Text" xml:space="preserve">
<value>Nhập</value>
</data>
<data name="ScalingConfiguration_General_ImportLegacy.Text" xml:space="preserve">
<data name="ScalingModes_General_ImportLegacy.Text" xml:space="preserve">
<value>Nhập file ScaleModels.json</value>
</data>
<data name="ScalingConfiguration_General_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_General_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Tùy chọn</value>
</data>
<data name="ScalingConfiguration_PageFrame.Title" xml:space="preserve">
<data name="ScalingModes_PageFrame.Title" xml:space="preserve">
<value>Cài đặt Scaling</value>
</data>
<data name="ScalingConfiguration_Parameters.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Parameters.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Thông số</value>
</data>
<data name="ScalingConfiguration_ParsingFailed.Title" xml:space="preserve">
<data name="ScalingModes_ParsingFailed.Title" xml:space="preserve">
<value>Phân giải thất bại</value>
</data>
<data name="ScalingConfiguration_ScalingModes.Header" xml:space="preserve">
<value>Các chế độ scale</value>
</data>
<data name="ScalingConfiguration_ScalingModes_AddEffect.Text" xml:space="preserve">
<data name="ScalingModes_AddEffect.Text" xml:space="preserve">
<value>Thêm hiệu ứng</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Delete.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Delete.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Xóa</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Delete.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Delete.Text" xml:space="preserve">
<value>Xóa</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Description.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Description.Text" xml:space="preserve">
<value>Hiệu ứng này đang được sử dụng bởi:</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Title.Text" xml:space="preserve">
<value>Bạn có chắc chắn muốn xóa hiệu ứng này?</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Description_UnknownEffect" xml:space="preserve">
<data name="ScalingModes_Description_UnknownEffect" xml:space="preserve">
<value>Hiệu ứng không xác định</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DragNotSupported.Text" xml:space="preserve">
<data name="ScalingModes_DragNotSupported.Text" xml:space="preserve">
<value>Không thể kéo thả khi đang chạy dưới quyền quản trị</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DragToReorder.Text" xml:space="preserve">
<data name="ScalingModes_DragToReorder.Text" xml:space="preserve">
<value>Kéo thả để thay đổi thứ tự</value>
</data>
<data name="ScalingConfiguration_ScalingModes_HasUnkownEffects.Title" xml:space="preserve">
<data name="ScalingModes_HasUnkownEffects.Title" xml:space="preserve">
<value>Một số hiệu ứng không thể được phân giải</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Tùy chọn</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_Delete.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_Delete.Text" xml:space="preserve">
<value>Xóa</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_MoveDown.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_MoveDown.Text" xml:space="preserve">
<value>Xuống</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_MoveUp.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_MoveUp.Text" xml:space="preserve">
<value>Lên</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoveDown.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoveDown.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Xuống</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoveUp.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoveUp.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Lên</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingMode.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingMode.Text" xml:space="preserve">
<value>Chế độ scale mới</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_CopyFrom.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_CopyFrom.Text" xml:space="preserve">
<value>Chép từ</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_CopyFrom_None" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_CopyFrom_None" xml:space="preserve">
<value>Không</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Create.Content" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Create.Content" xml:space="preserve">
<value>Tạo</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Name.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Name.Text" xml:space="preserve">
<value>Tên</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Title.Text" xml:space="preserve">
<value>Chế độ scale mới</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Rename.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Rename.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Đổi tên</value>
</data>
<data name="ScalingConfiguration_ScalingModes_RenameFlyout_OK.Content" xml:space="preserve">
<data name="ScalingModes_RenameFlyout_OK.Content" xml:space="preserve">
<value>OK</value>
</data>
<data name="ScalingConfiguration_ScalingModes_RenameFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_RenameFlyout_Title.Text" xml:space="preserve">
<value>Đổi tên</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Scale.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Scale.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Scale</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_HeightFactor.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_HeightFactor.Text" xml:space="preserve">
<value>Chiều cao (theo tỷ lệ scale)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_HeightPixels.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_HeightPixels.Text" xml:space="preserve">
<value>Chiều cao (theo pixel)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type.Text" xml:space="preserve">
<value>Loại</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Absolute" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Absolute" xml:space="preserve">
<value>Tuyệt đối</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Absolute_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Absolute_Description" xml:space="preserve">
<value>Đặt kích cỡ sau scale</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Factor" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Factor" xml:space="preserve">
<value>Tỷ lệ scale</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Factor_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Factor_Description" xml:space="preserve">
<value>Đặt tỷ lệ tương đối với hình ảnh gốc</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fill" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fill" xml:space="preserve">
<value>Vừa màn hình</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fill_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fill_Description" xml:space="preserve">
<value>Hiển thị đầy màn hình, hình ảnh có thể bị méo</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fit" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fit" xml:space="preserve">
<value>Giữ tỷ lệ</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fit_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fit_Description" xml:space="preserve">
<value>Giữ tỷ lệ hình ảnh sau khi làm đầy màn hình</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_WidthFactor.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_WidthFactor.Text" xml:space="preserve">
<value>Chiều rông (theo tỷ lệ)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_WidthPixels.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_WidthPixels.Text" xml:space="preserve">
<value>Chiều rộng (theo pixel)</value>
</data>
<data name="SelectLauncherDialog_Title" xml:space="preserve">
<value>Chọn file chạy của chương trình</value>
</data>
<data name="Settings_Advanced.Header" xml:space="preserve">
<data name="Home_Advanced.Header" xml:space="preserve">
<value>Nâng cao</value>
</data>
<data name="Settings_Advanced_AllowScalingMaximized.Header" xml:space="preserve">
<data name="Home_Activation_AllowScalingMaximized.Header" xml:space="preserve">
<value>Cho phép scale cửa sổ toàn màn hình</value>
</data>
<data name="Settings_Advanced_InlineParams.Description" xml:space="preserve">
<data name="Home_Advanced_InlineParams.Description" xml:space="preserve">
<value>Cải thiện hiệu năng. Tuy nhiên các hiệu ứng phải được biên dịch lại khi các thông số của chúng đươc chỉnh</value>
</data>
<data name="Settings_Advanced_InlineParams.Header" xml:space="preserve">
<data name="Home_Advanced_InlineParams.Header" xml:space="preserve">
<value>Đặt thông số hiệu ứng trực tiếp</value>
</data>
<data name="Settings_Advanced_SimulateExclusiveFullscreen.Description" xml:space="preserve">
<data name="Home_Advanced_SimulateExclusiveFullscreen.Description" xml:space="preserve">
<value>Các thông báo và pop-up từ một số ứng dụng sẽ bị chặn</value>
</data>
<data name="Settings_Advanced_SimulateExclusiveFullscreen.Header" xml:space="preserve">
<data name="Home_Advanced_SimulateExclusiveFullscreen.Header" xml:space="preserve">
<value>Giả lập chế độ toàn màn hình độc lập</value>
</data>
<data name="Settings_DeveloperOptions.Description" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions.Description" xml:space="preserve">
<value>Những cài đặt này chỉ dành cho mục đích phát triển</value>
</data>
<data name="Settings_DeveloperOptions.Header" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions.Header" xml:space="preserve">
<value>Cài đặt nhà phát triển</value>
</data>
<data name="Settings_DeveloperOptions_DebugMode.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DebugMode.Content" xml:space="preserve">
<value>Chế độ gỡ lỗi</value>
</data>
<data name="Settings_DeveloperOptions_DisableEffectCache.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DisableEffectCache.Content" xml:space="preserve">
<value>Tắt cache hiệu ứng</value>
</data>
<data name="Settings_DeveloperOptions_DisableFontCache.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DisableFontCache.Content" xml:space="preserve">
<value>Tắt cache phông chữ</value>
</data>
<data name="Settings_DeveloperOptions_SaveEffectSources.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_SaveEffectSources.Content" xml:space="preserve">
<value>Lưu mã nguồn khi đọc hiệu ứng</value>
</data>
<data name="Settings_DeveloperOptions_WarningsAreErrors.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_WarningsAreErrors.Content" xml:space="preserve">
<value>Đặt cảnh bảo như lỗi khi đọc hiệu ứng</value>
</data>
<data name="Settings_General.Header" xml:space="preserve">

View file

@ -123,40 +123,40 @@
<data name="Home_Activation.Header" xml:space="preserve">
<value>激活</value>
</data>
<data name="Home_AutoRestore.Description" xml:space="preserve">
<data name="Home_Activation_AutoRestore.Description" xml:space="preserve">
<value>当该窗口回到前台时将自动缩放</value>
</data>
<data name="Home_AutoRestore.Header" xml:space="preserve">
<data name="Home_Activation_AutoRestore.Header" xml:space="preserve">
<value>记忆缩放窗口</value>
</data>
<data name="Home_AutoRestore_Activate.Content" xml:space="preserve">
<data name="Home_Activation_AutoRestore_Activate.Content" xml:space="preserve">
<value>激活</value>
</data>
<data name="Home_AutoRestore_Clear.Content" xml:space="preserve">
<data name="Home_Activation_AutoRestore_Clear.Content" xml:space="preserve">
<value>清除</value>
</data>
<data name="Home_AutoRestore_CurWindow" xml:space="preserve">
<data name="Home_Activation_AutoRestore_CurWindow" xml:space="preserve">
<value>当前窗口:</value>
</data>
<data name="Home_AutoRestore_EmptyTitle" xml:space="preserve">
<data name="Home_Activation_AutoRestore_EmptyTitle" xml:space="preserve">
<value>标题为空</value>
</data>
<data name="Home_PageFrame.Title" xml:space="preserve">
<value>主页</value>
</data>
<data name="Home_Timer.Description" xml:space="preserve">
<data name="Home_Activation_Timer.Description" xml:space="preserve">
<value>计时结束后缩放前台窗口</value>
</data>
<data name="Home_Timer.Header" xml:space="preserve">
<data name="Home_Activation_Timer.Header" xml:space="preserve">
<value>定时器</value>
</data>
<data name="Home_Timer_ButtonText" xml:space="preserve">
<data name="Home_Activation_Timer_ButtonText" xml:space="preserve">
<value>{} 秒后缩放</value>
</data>
<data name="Home_Timer_Cancel" xml:space="preserve">
<data name="Home_Activation_Timer_Cancel" xml:space="preserve">
<value>取消</value>
</data>
<data name="Home_Timer_Delay.Header" xml:space="preserve">
<data name="Home_Activation_Timer_Delay.Header" xml:space="preserve">
<value>倒计时时长</value>
</data>
<data name="ShortcutDialog_Cancel" xml:space="preserve">
@ -210,13 +210,13 @@
<data name="Root_Profiles.Content" xml:space="preserve">
<value>配置文件</value>
</data>
<data name="Root_ScalingConfiguration.Content" xml:space="preserve">
<value>缩放配置</value>
<data name="Root_ScalingModes.Content" xml:space="preserve">
<value>缩放模式</value>
</data>
<data name="ScalingConfiguration_PageFrame.Title" xml:space="preserve">
<value>缩放配置</value>
<data name="ScalingModes_PageFrame.Title" xml:space="preserve">
<value>缩放模式</value>
</data>
<data name="Settings_Advanced.Header" xml:space="preserve">
<data name="Home_Advanced.Header" xml:space="preserve">
<value>高级</value>
</data>
<data name="Settings_General.Header" xml:space="preserve">
@ -279,21 +279,18 @@
<data name="Settings_Launch.Header" xml:space="preserve">
<value>启动</value>
</data>
<data name="ScalingConfiguration_General_Export.Text" xml:space="preserve">
<data name="ScalingModes_General_Export.Text" xml:space="preserve">
<value>导出</value>
</data>
<data name="ScalingConfiguration_General_Import.Text" xml:space="preserve">
<data name="ScalingModes_General_Import.Text" xml:space="preserve">
<value>导入</value>
</data>
<data name="ScalingConfiguration_General_ImportLegacy.Text" xml:space="preserve">
<data name="ScalingModes_General_ImportLegacy.Text" xml:space="preserve">
<value>导入旧版程序的 ScaleModels.json</value>
</data>
<data name="ScalingConfiguration_General_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_General_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>更多选项</value>
</data>
<data name="ScalingConfiguration_ScalingModes.Header" xml:space="preserve">
<value>缩放模式</value>
</data>
<data name="Settings_Launch_AlwaysRunAsAdmin.Description" xml:space="preserve">
<value>以管理员身份运行时才能使用此选项</value>
</data>
@ -330,115 +327,115 @@
<data name="About_OtherLinks_Repository.Text" xml:space="preserve">
<value>Github 仓库</value>
</data>
<data name="ScalingConfiguration_Parameters.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Parameters.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>参数</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>更多选项</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_Delete.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_Delete.Text" xml:space="preserve">
<value>删除</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_MoveDown.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_MoveDown.Text" xml:space="preserve">
<value>下移</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_MoveUp.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_MoveUp.Text" xml:space="preserve">
<value>上移</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Rename.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Rename.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>重命名</value>
</data>
<data name="ScalingConfiguration_ScalingModes_RenameFlyout_OK.Content" xml:space="preserve">
<data name="ScalingModes_RenameFlyout_OK.Content" xml:space="preserve">
<value>确定</value>
</data>
<data name="ScalingConfiguration_ScalingModes_RenameFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_RenameFlyout_Title.Text" xml:space="preserve">
<value>重命名</value>
</data>
<data name="ScalingConfiguration_ScalingModes_AddEffect.Text" xml:space="preserve">
<data name="ScalingModes_AddEffect.Text" xml:space="preserve">
<value>添加效果</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Delete.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Delete.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>删除</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Delete.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Delete.Text" xml:space="preserve">
<value>删除</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Description.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Description.Text" xml:space="preserve">
<value>以下配置文件正在使用这个缩放模式:</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Title.Text" xml:space="preserve">
<value>确定删除这个缩放模式?</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DragNotSupported.Text" xml:space="preserve">
<data name="ScalingModes_DragNotSupported.Text" xml:space="preserve">
<value>管理员身份下不支持拖拽排序</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DragToReorder.Text" xml:space="preserve">
<data name="ScalingModes_DragToReorder.Text" xml:space="preserve">
<value>拖拽以重新排序</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoveDown.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoveDown.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>下移</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoveUp.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoveUp.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>上移</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingMode.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingMode.Text" xml:space="preserve">
<value>新建缩放模式</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Title.Text" xml:space="preserve">
<value>新建缩放模式</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Scale.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Scale.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>缩放</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_CopyFrom.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_CopyFrom.Text" xml:space="preserve">
<value>复制自</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_CopyFrom_None" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_CopyFrom_None" xml:space="preserve">
<value>无</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Create.Content" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Create.Content" xml:space="preserve">
<value>确定</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Name.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Name.Text" xml:space="preserve">
<value>名称</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_HeightFactor.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_HeightFactor.Text" xml:space="preserve">
<value>高(缩放倍数)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_HeightPixels.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_HeightPixels.Text" xml:space="preserve">
<value>高(像素)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_WidthFactor.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_WidthFactor.Text" xml:space="preserve">
<value>宽(缩放倍数)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_WidthPixels.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_WidthPixels.Text" xml:space="preserve">
<value>宽(像素)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type.Text" xml:space="preserve">
<value>类型</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Absolute" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Absolute" xml:space="preserve">
<value>绝对</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Absolute_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Absolute_Description" xml:space="preserve">
<value>指定缩放后的尺寸</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Factor" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Factor" xml:space="preserve">
<value>倍数</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Factor_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Factor_Description" xml:space="preserve">
<value>指定相对于输入图像的缩放倍数</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fill" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fill" xml:space="preserve">
<value>填充</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fill_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fill_Description" xml:space="preserve">
<value>充满屏幕,画面可能被拉伸</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fit" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fit" xml:space="preserve">
<value>适应</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fit_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fit_Description" xml:space="preserve">
<value>指定等比缩放到充满屏幕后的缩放倍数</value>
</data>
<data name="Profile_General.Header" xml:space="preserve">
@ -507,7 +504,7 @@
<data name="Profile_MoreOptions_ReorderFlyout_Title.Text" xml:space="preserve">
<value>重新排序</value>
</data>
<data name="ScalingConfiguration_ParsingFailed.Title" xml:space="preserve">
<data name="ScalingModes_ParsingFailed.Title" xml:space="preserve">
<value>解析失败</value>
</data>
<data name="Profile_General_ScalingMode_None" xml:space="preserve">
@ -645,16 +642,16 @@
<data name="Profile_SourceWindow_DisableWindowResizing.Header" xml:space="preserve">
<value>缩放时禁用窗口大小调整</value>
</data>
<data name="Settings_Advanced_InlineParams.Description" xml:space="preserve">
<data name="Home_Advanced_InlineParams.Description" xml:space="preserve">
<value>稍微提高性能,但每次修改效果的参数都需重新编译该效果</value>
</data>
<data name="Settings_Advanced_InlineParams.Header" xml:space="preserve">
<data name="Home_Advanced_InlineParams.Header" xml:space="preserve">
<value>内联效果参数</value>
</data>
<data name="Settings_Advanced_SimulateExclusiveFullscreen.Description" xml:space="preserve">
<data name="Home_Advanced_SimulateExclusiveFullscreen.Description" xml:space="preserve">
<value>可以阻止某些应用的通知和弹窗</value>
</data>
<data name="Settings_Advanced_SimulateExclusiveFullscreen.Header" xml:space="preserve">
<data name="Home_Advanced_SimulateExclusiveFullscreen.Header" xml:space="preserve">
<value>缩放时模拟独占全屏</value>
</data>
<data name="Settings_Launch_RunAtStartup_MinimizeAtStartup.Description" xml:space="preserve">
@ -669,22 +666,22 @@
<data name="AppSettings_Dialog_Warning" xml:space="preserve">
<value>警告</value>
</data>
<data name="Settings_DeveloperOptions.Description" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions.Description" xml:space="preserve">
<value>这些设置仅供开发使用</value>
</data>
<data name="Settings_DeveloperOptions.Header" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions.Header" xml:space="preserve">
<value>开发者选项</value>
</data>
<data name="Settings_DeveloperOptions_DebugMode.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DebugMode.Content" xml:space="preserve">
<value>调试模式</value>
</data>
<data name="Settings_DeveloperOptions_DisableEffectCache.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DisableEffectCache.Content" xml:space="preserve">
<value>禁用效果缓存</value>
</data>
<data name="Settings_DeveloperOptions_SaveEffectSources.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_SaveEffectSources.Content" xml:space="preserve">
<value>解析效果时保存源代码</value>
</data>
<data name="Settings_DeveloperOptions_WarningsAreErrors.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_WarningsAreErrors.Content" xml:space="preserve">
<value>编译效果时将警告视为错误</value>
</data>
<data name="AppSettings_Dialog_Exit" xml:space="preserve">
@ -715,10 +712,10 @@
<data name="Settings_General_RequireRestart_ActionButton.Content" xml:space="preserve">
<value>重新启动 Magpie</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Description_UnknownEffect" xml:space="preserve">
<data name="ScalingModes_Description_UnknownEffect" xml:space="preserve">
<value>未知效果</value>
</data>
<data name="ScalingConfiguration_ScalingModes_HasUnkownEffects.Title" xml:space="preserve">
<data name="ScalingModes_HasUnkownEffects.Title" xml:space="preserve">
<value>部分效果未能正确解析</value>
</data>
<data name="ExportDialog_Title" xml:space="preserve">
@ -766,10 +763,10 @@
<data name="Overlay_FPS_Unlock" xml:space="preserve">
<value>解锁</value>
</data>
<data name="Settings_DeveloperOptions_DisableFontCache.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DisableFontCache.Content" xml:space="preserve">
<value>禁用字体缓存</value>
</data>
<data name="Settings_Advanced_AllowScalingMaximized.Header" xml:space="preserve">
<data name="Home_Activation_AllowScalingMaximized.Header" xml:space="preserve">
<value>允许缩放最大化或全屏的窗口</value>
</data>
<data name="FileDialog_JsonFile" xml:space="preserve">
@ -802,19 +799,19 @@
<data name="About_DeveloperModeEnabled" xml:space="preserve">
<value>开发者模式已启用。</value>
</data>
<data name="Settings_DeveloperOptions_DuplicateFrameDetection.Header" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DuplicateFrameDetection.Header" xml:space="preserve">
<value>检测重复帧</value>
</data>
<data name="Settings_DeveloperOptions_DuplicateFrameDetection_Always.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DuplicateFrameDetection_Always.Content" xml:space="preserve">
<value>总是检测</value>
</data>
<data name="Settings_DeveloperOptions_DuplicateFrameDetection_Dynamic.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DuplicateFrameDetection_Dynamic.Content" xml:space="preserve">
<value>动态检测</value>
</data>
<data name="Settings_DeveloperOptions_DuplicateFrameDetection_Never.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DuplicateFrameDetection_Never.Content" xml:space="preserve">
<value>从不检测</value>
</data>
<data name="Settings_DeveloperOptions_EnableStatisticsForDynamicDetection.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_EnableStatisticsForDynamicDetection.Content" xml:space="preserve">
<value>启用动态检测统计</value>
</data>
<data name="Overlay_Profiler_DynamicDetection" xml:space="preserve">
@ -823,4 +820,19 @@
<data name="Overlay_Profiler_FrameRate" xml:space="preserve">
<value>帧率</value>
</data>
<data name="Home_TouchSupport_EnableTouchSupport.Header" xml:space="preserve">
<value>启用触控支持</value>
</data>
<data name="Home_TouchSupport_EnableTouchSupport_Description.Text" xml:space="preserve">
<value>需提供管理员权限才能更改此选项</value>
</data>
<data name="Home_TouchSupport_EnableTouchSupport_LearnMore.Content" xml:space="preserve">
<value>了解更多</value>
</data>
<data name="Home_TouchSupport.Header" xml:space="preserve">
<value>触控支持</value>
</data>
<data name="Home_TouchSupport_InfoBar.Title" xml:space="preserve">
<value>如果触控支持失效Magpie 可能会在缩放前请求管理员权限以执行修复。</value>
</data>
</root>

View file

@ -123,40 +123,40 @@
<data name="Home_Activation.Header" xml:space="preserve">
<value>啟用</value>
</data>
<data name="Home_AutoRestore.Description" xml:space="preserve">
<data name="Home_Activation_AutoRestore.Description" xml:space="preserve">
<value>當該視窗回到前景時將自動縮放</value>
</data>
<data name="Home_AutoRestore.Header" xml:space="preserve">
<data name="Home_Activation_AutoRestore.Header" xml:space="preserve">
<value>記住縮放視窗</value>
</data>
<data name="Home_AutoRestore_Activate.Content" xml:space="preserve">
<data name="Home_Activation_AutoRestore_Activate.Content" xml:space="preserve">
<value>啟用</value>
</data>
<data name="Home_AutoRestore_Clear.Content" xml:space="preserve">
<data name="Home_Activation_AutoRestore_Clear.Content" xml:space="preserve">
<value>清除</value>
</data>
<data name="Home_AutoRestore_CurWindow" xml:space="preserve">
<data name="Home_Activation_AutoRestore_CurWindow" xml:space="preserve">
<value>當前視窗:</value>
</data>
<data name="Home_AutoRestore_EmptyTitle" xml:space="preserve">
<data name="Home_Activation_AutoRestore_EmptyTitle" xml:space="preserve">
<value>標題為空</value>
</data>
<data name="Home_PageFrame.Title" xml:space="preserve">
<value>首頁</value>
</data>
<data name="Home_Timer.Header" xml:space="preserve">
<data name="Home_Activation_Timer.Header" xml:space="preserve">
<value>計時器</value>
</data>
<data name="Home_Timer_ButtonText" xml:space="preserve">
<data name="Home_Activation_Timer_ButtonText" xml:space="preserve">
<value>{} 秒後縮放</value>
</data>
<data name="Home_Timer.Description" xml:space="preserve">
<data name="Home_Activation_Timer.Description" xml:space="preserve">
<value>當計時結束後再縮放前景視窗</value>
</data>
<data name="Home_Timer_Cancel" xml:space="preserve">
<data name="Home_Activation_Timer_Cancel" xml:space="preserve">
<value>取消</value>
</data>
<data name="Home_Timer_Delay.Header" xml:space="preserve">
<data name="Home_Activation_Timer_Delay.Header" xml:space="preserve">
<value>倒數計時延遲</value>
</data>
<data name="ShortcutDialog_Cancel" xml:space="preserve">
@ -201,13 +201,13 @@
<data name="Root_NewProfileFlyout_Title.Text" xml:space="preserve">
<value>新增設定檔</value>
</data>
<data name="Root_ScalingConfiguration.Content" xml:space="preserve">
<data name="Root_ScalingModes.Content" xml:space="preserve">
<value>縮放設定</value>
</data>
<data name="ScalingConfiguration_PageFrame.Title" xml:space="preserve">
<data name="ScalingModes_PageFrame.Title" xml:space="preserve">
<value>縮放設定</value>
</data>
<data name="Settings_Advanced.Header" xml:space="preserve">
<data name="Home_Advanced.Header" xml:space="preserve">
<value>進階設定</value>
</data>
<data name="Settings_General_Language.Header" xml:space="preserve">
@ -264,13 +264,13 @@
<data name="Settings_Launch.Header" xml:space="preserve">
<value>啟動</value>
</data>
<data name="ScalingConfiguration_General_Export.Text" xml:space="preserve">
<data name="ScalingModes_General_Export.Text" xml:space="preserve">
<value>匯出</value>
</data>
<data name="ScalingConfiguration_General_Import.Text" xml:space="preserve">
<data name="ScalingModes_General_Import.Text" xml:space="preserve">
<value>匯入</value>
</data>
<data name="ScalingConfiguration_General_ImportLegacy.Text" xml:space="preserve">
<data name="ScalingModes_General_ImportLegacy.Text" xml:space="preserve">
<value>匯入舊版程式的 ScaleModels.json</value>
</data>
<data name="NotifyIcon_Exit" xml:space="preserve">
@ -291,12 +291,9 @@
<data name="ToggleSwitch.OnContent" xml:space="preserve">
<value>已啟用</value>
</data>
<data name="ScalingConfiguration_General_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_General_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>更多設定</value>
</data>
<data name="ScalingConfiguration_ScalingModes.Header" xml:space="preserve">
<value>縮放模式</value>
</data>
<data name="Settings_Launch_AlwaysRunAsAdmin.Description" xml:space="preserve">
<value>以管理員身份執行時才能使用此選項</value>
</data>
@ -327,100 +324,100 @@
<data name="About_OtherLinks_Repository.Text" xml:space="preserve">
<value>Github 倉庫</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>更多設定</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_Delete.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_Delete.Text" xml:space="preserve">
<value>刪除</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_MoveDown.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_MoveDown.Text" xml:space="preserve">
<value>下移</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_MoveUp.Text" xml:space="preserve">
<data name="ScalingModes_MoreOptionsFlyout_MoveUp.Text" xml:space="preserve">
<value>上移</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Rename.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Rename.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>重新命名</value>
</data>
<data name="ScalingConfiguration_ScalingModes_RenameFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_RenameFlyout_Title.Text" xml:space="preserve">
<value>重新命名</value>
</data>
<data name="ScalingConfiguration_ScalingModes_AddEffect.Text" xml:space="preserve">
<data name="ScalingModes_AddEffect.Text" xml:space="preserve">
<value>新增效果</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Delete.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Delete.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>刪除</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Delete.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Delete.Text" xml:space="preserve">
<value>刪除</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Title.Text" xml:space="preserve">
<value>確定刪除這個縮放模式?</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DragToReorder.Text" xml:space="preserve">
<data name="ScalingModes_DragToReorder.Text" xml:space="preserve">
<value>拖曳以重新排列</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoveDown.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoveDown.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>下移</value>
</data>
<data name="ScalingConfiguration_ScalingModes_MoveUp.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_MoveUp.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>上移</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Scale.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Scale.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>縮放</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingMode.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingMode.Text" xml:space="preserve">
<value>新增縮放模式</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_CopyFrom.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_CopyFrom.Text" xml:space="preserve">
<value>複製自</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_CopyFrom_None" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_CopyFrom_None" xml:space="preserve">
<value>無</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Create.Content" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Create.Content" xml:space="preserve">
<value>新增</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Name.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Name.Text" xml:space="preserve">
<value>名稱</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_HeightFactor.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_HeightFactor.Text" xml:space="preserve">
<value>高(縮放倍數)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_HeightPixels.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_HeightPixels.Text" xml:space="preserve">
<value>高(像素)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_WidthFactor.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_WidthFactor.Text" xml:space="preserve">
<value>寬(縮放倍數)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_WidthPixels.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_WidthPixels.Text" xml:space="preserve">
<value>寬(像素)</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type.Text" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type.Text" xml:space="preserve">
<value>類型</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Absolute" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Absolute" xml:space="preserve">
<value>絕對</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Absolute_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Absolute_Description" xml:space="preserve">
<value>指定縮放後的尺寸</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Factor" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Factor" xml:space="preserve">
<value>倍數</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Factor_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Factor_Description" xml:space="preserve">
<value>指定相對於影像的縮放倍數</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fill" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fill" xml:space="preserve">
<value>填滿</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fill_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fill_Description" xml:space="preserve">
<value>填滿螢幕,畫面可能被拉伸</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fit" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fit" xml:space="preserve">
<value>適應</value>
</data>
<data name="ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fit_Description" xml:space="preserve">
<data name="ScalingModes_ScaleFlyout_Type_Fit_Description" xml:space="preserve">
<value>指定等比縮放到填滿螢幕後的縮放倍數</value>
</data>
<data name="Profile_General.Header" xml:space="preserve">
@ -456,7 +453,7 @@
<data name="Profile_MoreOptions_ReorderFlyout_Title.Text" xml:space="preserve">
<value>重新排列</value>
</data>
<data name="ScalingConfiguration_ParsingFailed.Title" xml:space="preserve">
<data name="ScalingModes_ParsingFailed.Title" xml:space="preserve">
<value>剖析失敗</value>
</data>
<data name="Profile_Performance.Header" xml:space="preserve">
@ -570,10 +567,10 @@
<data name="Profile_SourceWindow_DisableWindowResizing.Header" xml:space="preserve">
<value>縮放時停用視窗大小調整</value>
</data>
<data name="Settings_Advanced_InlineParams.Description" xml:space="preserve">
<data name="Home_Advanced_InlineParams.Description" xml:space="preserve">
<value>稍微提高效能,但每次修改效果的參數都需重新編譯該效果</value>
</data>
<data name="Settings_Advanced_InlineParams.Header" xml:space="preserve">
<data name="Home_Advanced_InlineParams.Header" xml:space="preserve">
<value>內聯效果參數</value>
</data>
<data name="Settings_Launch_RunAtStartup_MinimizeAtStartup.Description" xml:space="preserve">
@ -582,28 +579,28 @@
<data name="Settings_Launch_RunAtStartup_MinimizeAtStartup.Header" xml:space="preserve">
<value>啟動時最小化到工具列圖示</value>
</data>
<data name="Settings_Advanced_SimulateExclusiveFullscreen.Header" xml:space="preserve">
<data name="Home_Advanced_SimulateExclusiveFullscreen.Header" xml:space="preserve">
<value>縮放時模擬獨占全螢幕</value>
</data>
<data name="AppSettings_Dialog_Error" xml:space="preserve">
<value>錯誤</value>
</data>
<data name="Settings_DeveloperOptions.Description" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions.Description" xml:space="preserve">
<value>這些設置僅供開發使用</value>
</data>
<data name="Settings_DeveloperOptions.Header" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions.Header" xml:space="preserve">
<value>開發者選項</value>
</data>
<data name="Settings_DeveloperOptions_DebugMode.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DebugMode.Content" xml:space="preserve">
<value>除錯模式</value>
</data>
<data name="Settings_DeveloperOptions_DisableEffectCache.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DisableEffectCache.Content" xml:space="preserve">
<value>停用效果快取</value>
</data>
<data name="Settings_DeveloperOptions_SaveEffectSources.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_SaveEffectSources.Content" xml:space="preserve">
<value>剖析效果時保存原始碼</value>
</data>
<data name="Settings_DeveloperOptions_WarningsAreErrors.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_WarningsAreErrors.Content" xml:space="preserve">
<value>編譯效果時將警告視為錯誤</value>
</data>
<data name="AppSettings_Dialog_Exit" xml:space="preserve">
@ -631,10 +628,10 @@
<data name="Settings_General_RequireRestart_ActionButton.Content" xml:space="preserve">
<value>重新啟動 Magpie</value>
</data>
<data name="ScalingConfiguration_ScalingModes_Description_UnknownEffect" xml:space="preserve">
<data name="ScalingModes_Description_UnknownEffect" xml:space="preserve">
<value>未知的效果</value>
</data>
<data name="ScalingConfiguration_ScalingModes_HasUnkownEffects.Title" xml:space="preserve">
<data name="ScalingModes_HasUnkownEffects.Title" xml:space="preserve">
<value>部分效果未能正確剖析</value>
</data>
<data name="ExportDialog_Title" xml:space="preserve">
@ -652,19 +649,19 @@
<data name="About_OtherLinks_ContributionGuidelines.Text" xml:space="preserve">
<value>貢獻指南</value>
</data>
<data name="ScalingConfiguration_Parameters.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<data name="ScalingModes_Parameters.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>參數</value>
</data>
<data name="ScalingConfiguration_ScalingModes_RenameFlyout_OK.Content" xml:space="preserve">
<data name="ScalingModes_RenameFlyout_OK.Content" xml:space="preserve">
<value>確定</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DeleteFlyout_Description.Text" xml:space="preserve">
<data name="ScalingModes_DeleteFlyout_Description.Text" xml:space="preserve">
<value>以下設定檔正在使用這個縮放模式:</value>
</data>
<data name="ScalingConfiguration_ScalingModes_DragNotSupported.Text" xml:space="preserve">
<data name="ScalingModes_DragNotSupported.Text" xml:space="preserve">
<value>管理員身份下不支援拖曳排列</value>
</data>
<data name="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Title.Text" xml:space="preserve">
<data name="ScalingModes_NewScalingModeFlyout_Title.Text" xml:space="preserve">
<value>新增縮放模式</value>
</data>
<data name="Profile_MoreOptions.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
@ -727,7 +724,7 @@
<data name="Profile_SourceWindow.Header" xml:space="preserve">
<value>來源視窗</value>
</data>
<data name="Settings_Advanced_SimulateExclusiveFullscreen.Description" xml:space="preserve">
<data name="Home_Advanced_SimulateExclusiveFullscreen.Description" xml:space="preserve">
<value>可以阻止某些應用程式的通知和跳出視窗</value>
</data>
<data name="About_Version_Version" xml:space="preserve">
@ -748,7 +745,7 @@
<data name="Overlay_FPS_Lock" xml:space="preserve">
<value>鎖定</value>
</data>
<data name="Settings_DeveloperOptions_DisableFontCache.Content" xml:space="preserve">
<data name="Home_Advanced_DeveloperOptions_DisableFontCache.Content" xml:space="preserve">
<value>停用字型快取</value>
</data>
<data name="Overlay_FPS_Unlock" xml:space="preserve">
@ -787,7 +784,7 @@
<data name="Home_Shortcuts_Scale.Description" xml:space="preserve">
<value>縮放前景視窗或停止縮放</value>
</data>
<data name="Settings_Advanced_AllowScalingMaximized.Header" xml:space="preserve">
<data name="Home_Activation_AllowScalingMaximized.Header" xml:space="preserve">
<value>允許縮放已最大化或全螢幕的視窗</value>
</data>
</root>

View file

@ -29,7 +29,7 @@ using namespace Windows::UI::Xaml::Media::Imaging;
namespace winrt::Magpie::App::implementation {
static constexpr const uint32_t FIRST_PROFILE_ITEM_IDX = 4;
static constexpr uint32_t FIRST_PROFILE_ITEM_IDX = 4;
RootPage::RootPage() {
_themeChangedRevoker = AppSettings::Get().ThemeChanged(auto_revoke, [this](Theme) { _UpdateTheme(); });
@ -119,8 +119,8 @@ void RootPage::NavigationView_SelectionChanged(
Interop::TypeName typeName;
if (tagStr == L"Home") {
typeName = xaml_typename<HomePage>();
} else if (tagStr == L"ScalingConfiguration") {
typeName = xaml_typename<ScalingConfigurationPage>();
} else if (tagStr == L"ScalingModes") {
typeName = xaml_typename<ScalingModesPage>();
} else if (tagStr == L"About") {
typeName = xaml_typename<AboutPage>();
} else {

View file

@ -40,8 +40,8 @@
<FontIcon Glyph="&#xE80F;" />
</muxc:NavigationViewItem.Icon>
</muxc:NavigationViewItem>
<muxc:NavigationViewItem x:Uid="Root_ScalingConfiguration"
Tag="ScalingConfiguration">
<muxc:NavigationViewItem x:Uid="Root_ScalingModes"
Tag="ScalingModes">
<muxc:NavigationViewItem.Icon>
<FontIcon Glyph="&#xE740;" />
</muxc:NavigationViewItem.Icon>

View file

@ -32,7 +32,7 @@ ScalingModeEffectItem::ScalingModeEffectItem(uint32_t scalingModeIdx, uint32_t e
ResourceLoader resourceLoader =
ResourceLoader::GetForCurrentView(CommonSharedConstants::APP_RESOURCE_MAP_ID);
_name = StrUtils::Concat(
resourceLoader.GetString(L"ScalingConfiguration_ScalingModes_Description_UnknownEffect"),
resourceLoader.GetString(L"ScalingModes_Description_UnknownEffect"),
L" (",
data.name,
L")"
@ -71,20 +71,20 @@ IVector<IInspectable> ScalingModeEffectItem::ScalingTypes() noexcept {
return single_threaded_vector(std::vector<IInspectable>{
Magpie::App::ScalingType(
resourceLoader.GetString(L"ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Factor"),
resourceLoader.GetString(L"ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Factor_Description")
resourceLoader.GetString(L"ScalingModes_ScaleFlyout_Type_Factor"),
resourceLoader.GetString(L"ScalingModes_ScaleFlyout_Type_Factor_Description")
),
Magpie::App::ScalingType(
resourceLoader.GetString(L"ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fit"),
resourceLoader.GetString(L"ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fit_Description")
resourceLoader.GetString(L"ScalingModes_ScaleFlyout_Type_Fit"),
resourceLoader.GetString(L"ScalingModes_ScaleFlyout_Type_Fit_Description")
),
Magpie::App::ScalingType(
resourceLoader.GetString(L"ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Absolute"),
resourceLoader.GetString(L"ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Absolute_Description")
resourceLoader.GetString(L"ScalingModes_ScaleFlyout_Type_Absolute"),
resourceLoader.GetString(L"ScalingModes_ScaleFlyout_Type_Absolute_Description")
),
Magpie::App::ScalingType(
resourceLoader.GetString(L"ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fill"),
resourceLoader.GetString(L"ScalingConfiguration_ScalingModes_ScaleFlyout_Type_Fill_Description")
resourceLoader.GetString(L"ScalingModes_ScaleFlyout_Type_Fill"),
resourceLoader.GetString(L"ScalingModes_ScaleFlyout_Type_Fill_Description")
),
});
}

View file

@ -234,7 +234,7 @@ hstring ScalingModeItem::Description() const noexcept {
ResourceLoader resourceLoader =
ResourceLoader::GetForCurrentView(CommonSharedConstants::APP_RESOURCE_MAP_ID);
result += L'(';
result += resourceLoader.GetString(L"ScalingConfiguration_ScalingModes_Description_UnknownEffect");
result += resourceLoader.GetString(L"ScalingModes_Description_UnknownEffect");
result += L')';
}
}

View file

@ -1,7 +1,7 @@
#include "pch.h"
#include "ScalingConfigurationPage.h"
#if __has_include("ScalingConfigurationPage.g.cpp")
#include "ScalingConfigurationPage.g.cpp"
#include "ScalingModesPage.h"
#if __has_include("ScalingModesPage.g.cpp")
#include "ScalingModesPage.g.cpp"
#endif
#if __has_include("ScalingType.g.cpp")
#include "ScalingType.g.cpp"
@ -18,11 +18,11 @@ using namespace Windows::UI::Xaml::Input;
namespace winrt::Magpie::App::implementation {
ScalingConfigurationPage::ScalingConfigurationPage() {
ScalingModesPage::ScalingModesPage() {
_BuildEffectMenu();
}
INumberFormatter2 ScalingConfigurationPage::NumberFormatter() noexcept {
INumberFormatter2 ScalingModesPage::NumberFormatter() noexcept {
static DecimalFormatter numberFormatter = []() {
DecimalFormatter result;
IncrementNumberRounder rounder;
@ -36,25 +36,25 @@ INumberFormatter2 ScalingConfigurationPage::NumberFormatter() noexcept {
return numberFormatter;
}
void ScalingConfigurationPage::ComboBox_DropDownOpened(IInspectable const& sender, IInspectable const&) {
void ScalingModesPage::ComboBox_DropDownOpened(IInspectable const& sender, IInspectable const&) {
ComboBoxHelper::DropDownOpened(*this, sender);
}
void ScalingConfigurationPage::EffectSettingsCard_Loaded(IInspectable const& sender, RoutedEventArgs const&) {
void ScalingModesPage::EffectSettingsCard_Loaded(IInspectable const& sender, RoutedEventArgs const&) {
XamlUtils::UpdateThemeOfTooltips(sender.as<DependencyObject>(), ActualTheme());
}
void ScalingConfigurationPage::AddEffectButton_Click(IInspectable const& sender, RoutedEventArgs const&) {
void ScalingModesPage::AddEffectButton_Click(IInspectable const& sender, RoutedEventArgs const&) {
Button btn = sender.as<Button>();
_curScalingMode = btn.Tag().as<ScalingModeItem>();
_addEffectMenuFlyout.ShowAt(btn);
}
void ScalingConfigurationPage::NewScalingModeFlyout_Opening(IInspectable const&, IInspectable const&) {
void ScalingModesPage::NewScalingModeFlyout_Opening(IInspectable const&, IInspectable const&) {
_viewModel.PrepareForAdd();
}
void ScalingConfigurationPage::NewScalingModeNameTextBox_KeyDown(IInspectable const&, KeyRoutedEventArgs const& args) {
void ScalingModesPage::NewScalingModeNameTextBox_KeyDown(IInspectable const&, KeyRoutedEventArgs const& args) {
if (args.Key() == VirtualKey::Enter) {
if (_viewModel.IsAddButtonEnabled()) {
NewScalingModeConfirmButton_Click(nullptr, nullptr);
@ -62,16 +62,16 @@ void ScalingConfigurationPage::NewScalingModeNameTextBox_KeyDown(IInspectable co
}
}
void ScalingConfigurationPage::NewScalingModeConfirmButton_Click(IInspectable const&, RoutedEventArgs const&) {
void ScalingModesPage::NewScalingModeConfirmButton_Click(IInspectable const&, RoutedEventArgs const&) {
NewScalingModeFlyout().Hide();
_viewModel.AddScalingMode();
}
void ScalingConfigurationPage::ScalingModeMoreOptionsButton_Click(IInspectable const& sender, RoutedEventArgs const&) {
void ScalingModesPage::ScalingModeMoreOptionsButton_Click(IInspectable const& sender, RoutedEventArgs const&) {
_moreOptionsButton = sender;
}
void ScalingConfigurationPage::RemoveScalingModeMenuItem_Click(IInspectable const& sender, RoutedEventArgs const&) {
void ScalingModesPage::RemoveScalingModeMenuItem_Click(IInspectable const& sender, RoutedEventArgs const&) {
MenuFlyoutItem menuItem = sender.as<MenuFlyoutItem>();
ScalingModeItem scalingModeItem = menuItem.Tag().as<ScalingModeItem>();
if (scalingModeItem.IsInUse()) {
@ -83,7 +83,7 @@ void ScalingConfigurationPage::RemoveScalingModeMenuItem_Click(IInspectable cons
}
}
void ScalingConfigurationPage::_BuildEffectMenu() noexcept {
void ScalingModesPage::_BuildEffectMenu() noexcept {
std::vector<MenuFlyoutItemBase> rootItems;
phmap::flat_hash_map<std::wstring_view, MenuFlyoutSubItem> folders;
@ -93,7 +93,7 @@ void ScalingConfigurationPage::_BuildEffectMenu() noexcept {
MenuFlyoutItem item;
item.Tag(box_value(effect.name));
item.Click({ this, &ScalingConfigurationPage::_AddEffectMenuFlyoutItem_Click });
item.Click({ this, &ScalingModesPage::_AddEffectMenuFlyoutItem_Click });
size_t delimPos = name.find_last_of(L'\\');
if (delimPos == std::wstring::npos) {
@ -161,7 +161,7 @@ void ScalingConfigurationPage::_BuildEffectMenu() noexcept {
}
}
void ScalingConfigurationPage::_AddEffectMenuFlyoutItem_Click(IInspectable const& sender, RoutedEventArgs const&) {
void ScalingModesPage::_AddEffectMenuFlyoutItem_Click(IInspectable const& sender, RoutedEventArgs const&) {
hstring effectName = unbox_value<hstring>(sender.as<MenuFlyoutItem>().Tag());
_curScalingMode.AddEffect(effectName);
}

View file

@ -1,5 +1,5 @@
#pragma once
#include "ScalingConfigurationPage.g.h"
#include "ScalingModesPage.g.h"
#include "ScalingType.g.h"
namespace winrt::Magpie::App::implementation {
@ -20,10 +20,10 @@ private:
hstring _desc;
};
struct ScalingConfigurationPage : ScalingConfigurationPageT<ScalingConfigurationPage> {
ScalingConfigurationPage();
struct ScalingModesPage : ScalingModesPageT<ScalingModesPage> {
ScalingModesPage();
Magpie::App::ScalingConfigurationViewModel ViewModel() const noexcept {
Magpie::App::ScalingModesViewModel ViewModel() const noexcept {
return _viewModel;
}
@ -52,7 +52,7 @@ private:
IInspectable _moreOptionsButton{ nullptr };
Controls::MenuFlyout _addEffectMenuFlyout;
Magpie::App::ScalingConfigurationViewModel _viewModel;
Magpie::App::ScalingModesViewModel _viewModel;
Magpie::App::ScalingModeItem _curScalingMode{ nullptr };
};
@ -63,7 +63,7 @@ namespace winrt::Magpie::App::factory_implementation {
struct ScalingType : ScalingTypeT<ScalingType, implementation::ScalingType> {
};
struct ScalingConfigurationPage : ScalingConfigurationPageT<ScalingConfigurationPage, implementation::ScalingConfigurationPage> {
struct ScalingModesPage : ScalingModesPageT<ScalingModesPage, implementation::ScalingModesPage> {
};
}

View file

@ -6,10 +6,10 @@ namespace Magpie.App {
String Desc { get; };
}
runtimeclass ScalingConfigurationPage : Windows.UI.Xaml.Controls.Page {
ScalingConfigurationPage();
runtimeclass ScalingModesPage : Windows.UI.Xaml.Controls.Page {
ScalingModesPage();
ScalingConfigurationViewModel ViewModel { get; };
ScalingModesViewModel ViewModel { get; };
static Windows.Globalization.NumberFormatting.INumberFormatter2 NumberFormatter { get; };

View file

@ -1,4 +1,4 @@
<Page x:Class="Magpie.App.ScalingConfigurationPage"
<Page x:Class="Magpie.App.ScalingModesPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
@ -65,28 +65,28 @@
</local:SimpleStackPanel>
</DataTemplate>
</Page.Resources>
<local:PageFrame x:Uid="ScalingConfiguration_PageFrame">
<local:PageFrame x:Uid="ScalingModes_PageFrame">
<local:PageFrame.HeaderAction>
<Button x:Uid="ScalingConfiguration_General_MoreOptions">
<Button x:Uid="ScalingModes_General_MoreOptions">
<Button.Content>
<FontIcon Glyph="&#xE712;" />
</Button.Content>
<Button.Flyout>
<MenuFlyout Placement="Bottom"
ShouldConstrainToRootBounds="False">
<MenuFlyoutItem x:Uid="ScalingConfiguration_General_Export"
<MenuFlyoutItem x:Uid="ScalingModes_General_Export"
Click="{x:Bind ViewModel.Export}">
<MenuFlyoutItem.Icon>
<FontIcon Glyph="&#xEDE1;" />
</MenuFlyoutItem.Icon>
</MenuFlyoutItem>
<MenuFlyoutItem x:Uid="ScalingConfiguration_General_Import"
<MenuFlyoutItem x:Uid="ScalingModes_General_Import"
Click="{x:Bind ViewModel.Import}">
<MenuFlyoutItem.Icon>
<FontIcon Glyph="&#xE8B5;" />
</MenuFlyoutItem.Icon>
</MenuFlyoutItem>
<MenuFlyoutItem x:Uid="ScalingConfiguration_General_ImportLegacy"
<MenuFlyoutItem x:Uid="ScalingModes_General_ImportLegacy"
Click="{x:Bind ViewModel.ImportLegacy}">
<MenuFlyoutItem.Icon>
<FontIcon Glyph="&#xE8B5;" />
@ -101,13 +101,13 @@
HorizontalAlignment="Stretch"
ChildrenTransitions="{StaticResource SettingsCardsAnimations}"
Spacing="{StaticResource SettingsGroupSpacing}">
<Border>
<muxc:InfoBar x:Uid="ScalingConfiguration_ParsingFailed"
IsOpen="{x:Bind ViewModel.ShowErrorMessage, Mode=TwoWay}"
Severity="Error"
Visibility="{x:Bind ViewModel.ShowErrorMessage, Mode=OneWay}" />
</Border>
<local:SettingsGroup x:Uid="ScalingConfiguration_ScalingModes">
<muxc:InfoBar x:Uid="ScalingModes_ParsingFailed"
IsOpen="{x:Bind ViewModel.ShowErrorMessage, Mode=TwoWay}"
Severity="Error" />
<local:SimpleStackPanel HorizontalAlignment="Stretch"
ChildrenTransitions="{StaticResource SettingsCardsAnimations}"
Orientation="Vertical"
Spacing="{StaticResource SettingsCardSpacing}">
<!-- Padding 是为了缓解一个动画 bug -->
<ListView Padding="0,0,0,45"
ItemsSource="{x:Bind ViewModel.ScalingModes, Mode=OneTime}"
@ -144,21 +144,21 @@
<Setter Property="FontSize" Value="15" />
</Style>
</local:SimpleStackPanel.Resources>
<Button x:Uid="ScalingConfiguration_ScalingModes_Rename">
<Button x:Uid="ScalingModes_Rename">
<Button.Content>
<FontIcon Glyph="&#xE8AC;" />
</Button.Content>
<Button.Flyout>
<Flyout Opening="{x:Bind RenameFlyout_Opening}">
<local:SimpleStackPanel>
<TextBlock x:Uid="ScalingConfiguration_ScalingModes_RenameFlyout_Title" />
<TextBlock x:Uid="ScalingModes_RenameFlyout_Title" />
<TextBox Width="280"
Height="32"
Margin="0,8,0,20"
KeyDown="{x:Bind RenameTextBox_KeyDown}"
SelectionStart="{x:Bind RenameTextBoxSelectionStart, Mode=OneWay}"
Text="{x:Bind RenameText, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
<Button x:Uid="ScalingConfiguration_ScalingModes_RenameFlyout_OK"
<Button x:Uid="ScalingModes_RenameFlyout_OK"
MinWidth="80"
HorizontalAlignment="Right"
Click="{x:Bind RenameButton_Click}"
@ -168,21 +168,21 @@
</Flyout>
</Button.Flyout>
</Button>
<Button x:Uid="ScalingConfiguration_ScalingModes_MoreOptions"
<Button x:Uid="ScalingModes_MoreOptions"
Click="ScalingModeMoreOptionsButton_Click">
<Button.Content>
<FontIcon Glyph="&#xE712;" />
</Button.Content>
<Button.Flyout>
<MenuFlyout>
<MenuFlyoutItem x:Uid="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_MoveUp"
<MenuFlyoutItem x:Uid="ScalingModes_MoreOptionsFlyout_MoveUp"
Click="{x:Bind MoveUp}"
IsEnabled="{x:Bind CanMoveUp, Mode=OneWay}">
<MenuFlyoutItem.Icon>
<FontIcon Glyph="&#xE74A;" />
</MenuFlyoutItem.Icon>
</MenuFlyoutItem>
<MenuFlyoutItem x:Uid="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_MoveDown"
<MenuFlyoutItem x:Uid="ScalingModes_MoreOptionsFlyout_MoveDown"
Click="{x:Bind MoveDown}"
IsEnabled="{x:Bind CanMoveDown, Mode=OneWay}">
<MenuFlyoutItem.Icon>
@ -190,7 +190,7 @@
</MenuFlyoutItem.Icon>
</MenuFlyoutItem>
<MenuFlyoutSeparator />
<MenuFlyoutItem x:Uid="ScalingConfiguration_ScalingModes_MoreOptionsFlyout_Delete"
<MenuFlyoutItem x:Uid="ScalingModes_MoreOptionsFlyout_Delete"
Click="RemoveScalingModeMenuItem_Click"
Tag="{x:Bind}">
<MenuFlyoutItem.Icon>
@ -199,13 +199,13 @@
<FlyoutBase.AttachedFlyout>
<Flyout>
<local:SimpleStackPanel MaxWidth="280">
<TextBlock x:Uid="ScalingConfiguration_ScalingModes_DeleteFlyout_Title"
<TextBlock x:Uid="ScalingModes_DeleteFlyout_Title"
Margin="0,0,0,15"
FontWeight="SemiBold"
TextWrapping="WrapWholeWords" />
<local:SimpleStackPanel Margin="0,0,0,10"
Spacing="8">
<TextBlock x:Uid="ScalingConfiguration_ScalingModes_DeleteFlyout_Description" />
<TextBlock x:Uid="ScalingModes_DeleteFlyout_Description" />
<ListView ItemsSource="{x:Bind LinkedProfiles, Mode=OneTime}"
SelectionMode="None">
<ListView.ItemsPanel>
@ -256,7 +256,7 @@
<FontIcon VerticalAlignment="Center"
FontSize="{StaticResource StandardIconSize}"
Glyph="&#xE74D;" />
<TextBlock x:Uid="ScalingConfiguration_ScalingModes_DeleteFlyout_Delete"
<TextBlock x:Uid="ScalingModes_DeleteFlyout_Delete"
VerticalAlignment="Center" />
</local:SimpleStackPanel>
</Button.Content>
@ -312,7 +312,7 @@
<Setter Property="FontSize" Value="15" />
</Style>
</local:SimpleStackPanel.Resources>
<Button x:Uid="ScalingConfiguration_ScalingModes_Scale"
<Button x:Uid="ScalingModes_Scale"
Margin="0,0,4,0"
Visibility="{x:Bind CanScale}">
<Button.Content>
@ -331,7 +331,7 @@
</Style>
</local:SimpleStackPanel.Resources>
<local:SimpleStackPanel Spacing="8">
<TextBlock x:Uid="ScalingConfiguration_ScalingModes_ScaleFlyout_Type" />
<TextBlock x:Uid="ScalingModes_ScaleFlyout_Type" />
<!-- 硬编码会导致崩溃! -->
<!-- https://github.com/microsoft/microsoft-ui-xaml/issues/3612 -->
<ComboBox HorizontalAlignment="Stretch"
@ -371,13 +371,13 @@
</Style>
</local:SimpleStackPanel.Resources>
<local:SimpleStackPanel Spacing="8">
<TextBlock x:Uid="ScalingConfiguration_ScalingModes_ScaleFlyout_WidthFactor" />
<muxc:NumberBox NumberFormatter="{x:Bind local:ScalingConfigurationPage.NumberFormatter, Mode=OneTime}"
<TextBlock x:Uid="ScalingModes_ScaleFlyout_WidthFactor" />
<muxc:NumberBox NumberFormatter="{x:Bind local:ScalingModesPage.NumberFormatter, Mode=OneTime}"
Value="{x:Bind ScalingFactorX, Mode=TwoWay}" />
</local:SimpleStackPanel>
<local:SimpleStackPanel Spacing="8">
<TextBlock x:Uid="ScalingConfiguration_ScalingModes_ScaleFlyout_HeightFactor" />
<muxc:NumberBox NumberFormatter="{x:Bind local:ScalingConfigurationPage.NumberFormatter, Mode=OneTime}"
<TextBlock x:Uid="ScalingModes_ScaleFlyout_HeightFactor" />
<muxc:NumberBox NumberFormatter="{x:Bind local:ScalingModesPage.NumberFormatter, Mode=OneTime}"
Value="{x:Bind ScalingFactorY, Mode=TwoWay}" />
</local:SimpleStackPanel>
</local:SimpleStackPanel>
@ -393,13 +393,13 @@
</Style>
</local:SimpleStackPanel.Resources>
<local:SimpleStackPanel Spacing="8">
<TextBlock x:Uid="ScalingConfiguration_ScalingModes_ScaleFlyout_WidthPixels" />
<muxc:NumberBox NumberFormatter="{x:Bind local:ScalingConfigurationPage.NumberFormatter, Mode=OneTime}"
<TextBlock x:Uid="ScalingModes_ScaleFlyout_WidthPixels" />
<muxc:NumberBox NumberFormatter="{x:Bind local:ScalingModesPage.NumberFormatter, Mode=OneTime}"
Value="{x:Bind ScalingPixelsX, Mode=TwoWay}" />
</local:SimpleStackPanel>
<local:SimpleStackPanel Spacing="8">
<TextBlock x:Uid="ScalingConfiguration_ScalingModes_ScaleFlyout_HeightPixels" />
<muxc:NumberBox NumberFormatter="{x:Bind local:ScalingConfigurationPage.NumberFormatter, Mode=OneTime}"
<TextBlock x:Uid="ScalingModes_ScaleFlyout_HeightPixels" />
<muxc:NumberBox NumberFormatter="{x:Bind local:ScalingModesPage.NumberFormatter, Mode=OneTime}"
Value="{x:Bind ScalingPixelsY, Mode=TwoWay}" />
</local:SimpleStackPanel>
</local:SimpleStackPanel>
@ -407,7 +407,7 @@
</Flyout>
</Button.Flyout>
</Button>
<Button x:Uid="ScalingConfiguration_Parameters"
<Button x:Uid="ScalingModes_Parameters"
Margin="0,0,4,0"
Visibility="{x:Bind HasParameters}">
<Button.Content>
@ -427,7 +427,7 @@
</Flyout>
</Button.Flyout>
</Button>
<Button x:Uid="ScalingConfiguration_ScalingModes_Delete"
<Button x:Uid="ScalingModes_Delete"
Click="{x:Bind Remove}">
<Button.Content>
<FontIcon Glyph="&#xE74D;" />
@ -436,7 +436,7 @@
<local:SimpleStackPanel Orientation="Horizontal"
Visibility="{x:Bind CanMove, Mode=OneWay}">
<AppBarSeparator Margin="4,0,0,0" />
<Button x:Uid="ScalingConfiguration_ScalingModes_MoveUp"
<Button x:Uid="ScalingModes_MoveUp"
Margin="4,0,0,0"
Click="{x:Bind MoveUp}"
IsEnabled="{x:Bind CanMoveUp, Mode=OneWay}">
@ -444,7 +444,7 @@
<FontIcon Glyph="&#xE74A;" />
</Button.Content>
</Button>
<Button x:Uid="ScalingConfiguration_ScalingModes_MoveDown"
<Button x:Uid="ScalingModes_MoveDown"
Margin="4,0,0,0"
Click="{x:Bind MoveDown}"
IsEnabled="{x:Bind CanMoveDown, Mode=OneWay}">
@ -460,7 +460,7 @@
</ListView>
</local:SettingsExpander.Items>
<local:SettingsExpander.ItemsHeader>
<muxc:InfoBar x:Uid="ScalingConfiguration_ScalingModes_HasUnkownEffects"
<muxc:InfoBar x:Uid="ScalingModes_HasUnkownEffects"
MinHeight="0"
Margin="0,0,0,-4"
BorderThickness="0,0,0,0"
@ -473,9 +473,9 @@
<local:SettingsCard Style="{StaticResource DefaultSettingsExpanderItemStyle}">
<local:SettingsCard.Description>
<local:SimpleStackPanel Margin="-40,0,0,-20">
<TextBlock x:Uid="ScalingConfiguration_ScalingModes_DragToReorder"
<TextBlock x:Uid="ScalingModes_DragToReorder"
Visibility="{x:Bind CanReorderEffects, Mode=OneWay}" />
<TextBlock x:Uid="ScalingConfiguration_ScalingModes_DragNotSupported"
<TextBlock x:Uid="ScalingModes_DragNotSupported"
Visibility="{x:Bind IsShowMoveButtons, Mode=OneWay}" />
</local:SimpleStackPanel>
</local:SettingsCard.Description>
@ -512,7 +512,7 @@
Spacing="8">
<FontIcon FontSize="{StaticResource StandardIconSize}"
Glyph="&#xE710;" />
<TextBlock x:Uid="ScalingConfiguration_ScalingModes_AddEffect"
<TextBlock x:Uid="ScalingModes_AddEffect"
Margin="0,-1,0,0" />
</local:SimpleStackPanel>
</Button>
@ -522,14 +522,15 @@
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
<Border Margin="0,-50,0,0">
<local:SimpleStackPanel Margin="0,-42,0,0">
<Button HorizontalAlignment="Right"
Style="{StaticResource AccentButtonStyle}">
<Button.Flyout>
<Flyout x:Name="NewScalingModeFlyout"
Opening="NewScalingModeFlyout_Opening">
Opening="NewScalingModeFlyout_Opening"
Placement="Left">
<local:SimpleStackPanel>
<TextBlock x:Uid="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Title"
<TextBlock x:Uid="ScalingModes_NewScalingModeFlyout_Title"
Margin="0,5,0,20"
FontSize="18"
FontWeight="SemiBold" />
@ -537,18 +538,18 @@
HorizontalAlignment="Stretch"
Spacing="15">
<local:SimpleStackPanel Spacing="8">
<TextBlock x:Uid="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Name" />
<TextBlock x:Uid="ScalingModes_NewScalingModeFlyout_Name" />
<TextBox HorizontalAlignment="Stretch"
KeyDown="NewScalingModeNameTextBox_KeyDown"
Text="{x:Bind ViewModel.NewScalingModeName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</local:SimpleStackPanel>
<local:SimpleStackPanel Spacing="8">
<TextBlock x:Uid="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_CopyFrom" />
<TextBlock x:Uid="ScalingModes_NewScalingModeFlyout_CopyFrom" />
<ComboBox HorizontalAlignment="Stretch"
ItemsSource="{x:Bind ViewModel.NewScalingModeCopyFromList, Mode=OneWay}"
SelectedIndex="{x:Bind ViewModel.NewScalingModeCopyFrom, Mode=TwoWay}" />
</local:SimpleStackPanel>
<Button x:Uid="ScalingConfiguration_ScalingModes_NewScalingModeFlyout_Create"
<Button x:Uid="ScalingModes_NewScalingModeFlyout_Create"
MinWidth="100"
Margin="0,15,0,0"
HorizontalAlignment="Right"
@ -564,12 +565,12 @@
Spacing="8">
<FontIcon FontSize="{StaticResource StandardIconSize}"
Glyph="&#xE710;" />
<TextBlock x:Uid="ScalingConfiguration_ScalingModes_NewScalingMode" />
<TextBlock x:Uid="ScalingModes_NewScalingMode" />
</local:SimpleStackPanel>
</Button.Content>
</Button>
</Border>
</local:SettingsGroup>
</local:SimpleStackPanel>
</local:SimpleStackPanel>
</local:SimpleStackPanel>
</local:PageFrame>
</Page>

View file

@ -1,7 +1,7 @@
#include "pch.h"
#include "ScalingConfigurationViewModel.h"
#if __has_include("ScalingConfigurationViewModel.g.cpp")
#include "ScalingConfigurationViewModel.g.cpp"
#include "ScalingModesViewModel.h"
#if __has_include("ScalingModesViewModel.g.cpp")
#include "ScalingModesViewModel.g.cpp"
#endif
#include "EffectsService.h"
#include "AppSettings.h"
@ -17,15 +17,15 @@ using namespace ::Magpie::Core;
namespace winrt::Magpie::App::implementation {
ScalingConfigurationViewModel::ScalingConfigurationViewModel() {
ScalingModesViewModel::ScalingModesViewModel() {
_AddScalingModes();
_scalingModeAddedRevoker = ScalingModesService::Get().ScalingModeAdded(
auto_revoke, { this, &ScalingConfigurationViewModel::_ScalingModesService_Added });
auto_revoke, { this, &ScalingModesViewModel::_ScalingModesService_Added });
_scalingModeMovedRevoker = ScalingModesService::Get().ScalingModeMoved(
auto_revoke, { this, &ScalingConfigurationViewModel::_ScalingModesService_Moved });
auto_revoke, { this, &ScalingModesViewModel::_ScalingModesService_Moved });
_scalingModeRemovedRevoker = ScalingModesService::Get().ScalingModeRemoved(
auto_revoke, { this, &ScalingConfigurationViewModel::_ScalingModesService_Removed });
auto_revoke, { this, &ScalingModesViewModel::_ScalingModesService_Removed });
}
static std::optional<std::wstring> OpenFileDialogForJson(IFileDialog* fileDialog) noexcept {
@ -40,7 +40,7 @@ static std::optional<std::wstring> OpenFileDialogForJson(IFileDialog* fileDialog
return FileDialogHelper::OpenFileDialog(fileDialog, FOS_STRICTFILETYPES);
}
void ScalingConfigurationViewModel::Export() const noexcept {
void ScalingModesViewModel::Export() const noexcept {
com_ptr<IFileSaveDialog> fileDialog = try_create_instance<IFileSaveDialog>(CLSID_FileSaveDialog);
if (!fileDialog) {
Logger::Get().Error("创建 FileSaveDialog 失败");
@ -111,20 +111,20 @@ static bool ImportImpl(bool legacy) noexcept {
return ScalingModesService::Get().Import(((const rapidjson::Document&)doc).GetObj(), false);
}
void ScalingConfigurationViewModel::_Import(bool legacy) {
void ScalingModesViewModel::_Import(bool legacy) {
ShowErrorMessage(false);
if (!ImportImpl(legacy)) {
ShowErrorMessage(true);
}
}
void ScalingConfigurationViewModel::PrepareForAdd() {
void ScalingModesViewModel::PrepareForAdd() {
std::vector<IInspectable> copyFromList;
ResourceLoader resourceLoader =
ResourceLoader::GetForCurrentView(CommonSharedConstants::APP_RESOURCE_MAP_ID);
copyFromList.push_back(box_value(resourceLoader.GetString(
L"ScalingConfiguration_ScalingModes_NewScalingModeFlyout_CopyFrom_None")));
L"ScalingModes_NewScalingModeFlyout_CopyFrom_None")));
for (const auto& scalingMode : AppSettings::Get().ScalingModes()) {
copyFromList.push_back(box_value(scalingMode.name));
@ -139,17 +139,17 @@ void ScalingConfigurationViewModel::PrepareForAdd() {
RaisePropertyChanged(L"NewScalingModeCopyFrom");
}
void ScalingConfigurationViewModel::NewScalingModeName(const hstring& value) noexcept {
void ScalingModesViewModel::NewScalingModeName(const hstring& value) noexcept {
_newScalingModeName = value;
RaisePropertyChanged(L"NewScalingModeName");
RaisePropertyChanged(L"IsAddButtonEnabled");
}
void ScalingConfigurationViewModel::AddScalingMode() {
void ScalingModesViewModel::AddScalingMode() {
ScalingModesService::Get().AddScalingMode(_newScalingModeName, _newScalingModeCopyFrom - 1);
}
fire_and_forget ScalingConfigurationViewModel::_AddScalingModes(bool isInitialExpanded) {
fire_and_forget ScalingModesViewModel::_AddScalingModes(bool isInitialExpanded) {
if (_addingScalingModes) {
co_return;
}
@ -200,11 +200,11 @@ fire_and_forget ScalingConfigurationViewModel::_AddScalingModes(bool isInitialEx
_addingScalingModes = false;
}
void ScalingConfigurationViewModel::_ScalingModesService_Added(EffectAddedWay way) {
void ScalingModesViewModel::_ScalingModesService_Added(EffectAddedWay way) {
_AddScalingModes(way == EffectAddedWay::Add);
}
void ScalingConfigurationViewModel::_ScalingModesService_Moved(uint32_t index, bool isMoveUp) {
void ScalingModesViewModel::_ScalingModesService_Moved(uint32_t index, bool isMoveUp) {
const uint32_t targetIndex = isMoveUp ? index - 1 : index + 1;
ScalingModeItem targetItem = _scalingModes.GetAt(targetIndex).as<ScalingModeItem>();
@ -212,7 +212,7 @@ void ScalingConfigurationViewModel::_ScalingModesService_Moved(uint32_t index, b
_scalingModes.InsertAt(index, targetItem);
}
void ScalingConfigurationViewModel::_ScalingModesService_Removed(uint32_t index) {
void ScalingModesViewModel::_ScalingModesService_Removed(uint32_t index) {
_scalingModes.RemoveAt(index);
}

View file

@ -1,13 +1,13 @@
#pragma once
#include "ScalingConfigurationViewModel.g.h"
#include "ScalingModesViewModel.g.h"
#include "WinRTUtils.h"
#include "ScalingModesService.h"
namespace winrt::Magpie::App::implementation {
struct ScalingConfigurationViewModel : ScalingConfigurationViewModelT<ScalingConfigurationViewModel>,
wil::notify_property_changed_base<ScalingConfigurationViewModel> {
ScalingConfigurationViewModel();
struct ScalingModesViewModel : ScalingModesViewModelT<ScalingModesViewModel>,
wil::notify_property_changed_base<ScalingModesViewModel> {
ScalingModesViewModel();
void Export() const noexcept;
@ -88,7 +88,7 @@ private:
namespace winrt::Magpie::App::factory_implementation {
struct ScalingConfigurationViewModel : ScalingConfigurationViewModelT<ScalingConfigurationViewModel, implementation::ScalingConfigurationViewModel> {
struct ScalingModesViewModel : ScalingModesViewModelT<ScalingModesViewModel, implementation::ScalingModesViewModel> {
};
}

View file

@ -1,6 +1,6 @@
namespace Magpie.App {
runtimeclass ScalingConfigurationViewModel : Windows.UI.Xaml.Data.INotifyPropertyChanged {
ScalingConfigurationViewModel();
runtimeclass ScalingModesViewModel : Windows.UI.Xaml.Data.INotifyPropertyChanged {
ScalingModesViewModel();
void Export();
void Import();

View file

@ -9,6 +9,7 @@
#include "Logger.h"
#include "EffectsService.h"
#include <Magpie.Core.h>
#include "TouchHelper.h"
using namespace ::Magpie::Core;
using namespace winrt;
@ -239,6 +240,13 @@ bool ScalingService::_StartScale(HWND hWnd, const Profile& profile) {
}
}
}
// 尝试启用触控支持
bool isTouchSupportEnabled;
if (!TouchHelper::TryLaunchTouchHelper(isTouchSupportEnabled)) {
Logger::Get().Error("TryLaunchTouchHelper 失败");
return false;
}
options.graphicsCard = profile.graphicsCard;
options.captureMethod = profile.captureMethod;
@ -249,6 +257,8 @@ bool ScalingService::_StartScale(HWND hWnd, const Profile& profile) {
options.cursorInterpolationMode = profile.cursorInterpolationMode;
options.flags = profile.scalingFlags;
options.IsTouchSupportEnabled(isTouchSupportEnabled);
if (profile.isCroppingEnabled) {
options.cropping = profile.cropping;
}

View file

@ -19,7 +19,7 @@ void SettingsPage::InitializeComponent() {
SettingsPageFrame().Title(versionStr);
}
void SettingsPage::ComboBox_DropDownOpened(IInspectable const& sender, IInspectable const&) {
void SettingsPage::ComboBox_DropDownOpened(IInspectable const& sender, IInspectable const&) const {
ComboBoxHelper::DropDownOpened(*this, sender);
}

View file

@ -10,7 +10,7 @@ struct SettingsPage : SettingsPageT<SettingsPage> {
return _viewModel;
}
void ComboBox_DropDownOpened(IInspectable const& sender, IInspectable const&);
void ComboBox_DropDownOpened(IInspectable const& sender, IInspectable const&) const;
private:
Magpie::App::SettingsViewModel _viewModel;

View file

@ -21,19 +21,16 @@
ItemsSource="{x:Bind ViewModel.Languages, Mode=OneTime}"
SelectedIndex="{x:Bind ViewModel.Language, Mode=TwoWay}" />
</local:SettingsCard>
<Border>
<muxc:InfoBar x:Uid="Settings_General_RequireRestart"
IsClosable="False"
IsOpen="True"
Severity="Warning"
Visibility="{x:Bind ViewModel.RequireRestart, Mode=OneWay}">
<muxc:InfoBar.ActionButton>
<Button x:Uid="Settings_General_RequireRestart_ActionButton"
HorizontalAlignment="Right"
Click="{x:Bind ViewModel.Restart}" />
</muxc:InfoBar.ActionButton>
</muxc:InfoBar>
</Border>
<muxc:InfoBar x:Uid="Settings_General_RequireRestart"
IsClosable="False"
IsOpen="{x:Bind ViewModel.RequireRestart, Mode=OneWay}"
Severity="Warning">
<muxc:InfoBar.ActionButton>
<Button x:Uid="Settings_General_RequireRestart_ActionButton"
HorizontalAlignment="Right"
Click="{x:Bind ViewModel.Restart}" />
</muxc:InfoBar.ActionButton>
</muxc:InfoBar>
<local:SettingsCard x:Uid="Settings_General_Theme"
IsWrapEnabled="True">
<local:SettingsCard.HeaderIcon>
@ -92,77 +89,6 @@
IsOn="{x:Bind ViewModel.IsAlwaysRunAsAdmin, Mode=TwoWay}" />
</local:SettingsCard>
</local:SettingsGroup>
<local:SettingsGroup x:Uid="Settings_Advanced">
<local:SettingsCard x:Uid="Settings_Advanced_AllowScalingMaximized">
<local:SettingsCard.HeaderIcon>
<FontIcon Glyph="&#xE740;" />
</local:SettingsCard.HeaderIcon>
<ToggleSwitch x:Uid="ToggleSwitch"
IsOn="{x:Bind ViewModel.IsAllowScalingMaximized, Mode=TwoWay}" />
</local:SettingsCard>
<local:SettingsCard x:Uid="Settings_Advanced_SimulateExclusiveFullscreen">
<local:SettingsCard.HeaderIcon>
<FontIcon Glyph="&#xec46;" />
</local:SettingsCard.HeaderIcon>
<ToggleSwitch x:Uid="ToggleSwitch"
IsOn="{x:Bind ViewModel.IsSimulateExclusiveFullscreen, Mode=TwoWay}" />
</local:SettingsCard>
<local:SettingsCard x:Uid="Settings_Advanced_InlineParams">
<local:SettingsCard.HeaderIcon>
<FontIcon Glyph="&#xE9E9;" />
</local:SettingsCard.HeaderIcon>
<ToggleSwitch x:Uid="ToggleSwitch"
IsOn="{x:Bind ViewModel.IsInlineParams, Mode=TwoWay}" />
</local:SettingsCard>
<local:SettingsExpander x:Name="DeveloperModeExpander"
x:Uid="Settings_DeveloperOptions"
x:Load="{x:Bind ViewModel.IsDeveloperMode, Mode=OneWay}"
IsExpanded="True">
<local:SettingsExpander.HeaderIcon>
<FontIcon Glyph="&#xEC7A;" />
</local:SettingsExpander.HeaderIcon>
<local:SettingsExpander.Content>
<ToggleSwitch x:Uid="ToggleSwitch"
IsOn="{x:Bind ViewModel.IsDeveloperMode, Mode=TwoWay}" />
</local:SettingsExpander.Content>
<local:SettingsExpander.Items>
<local:SettingsCard ContentAlignment="Left">
<CheckBox x:Uid="Settings_DeveloperOptions_DebugMode"
IsChecked="{x:Bind ViewModel.IsDebugMode, Mode=TwoWay}" />
</local:SettingsCard>
<local:SettingsCard ContentAlignment="Left">
<CheckBox x:Uid="Settings_DeveloperOptions_DisableEffectCache"
IsChecked="{x:Bind ViewModel.IsEffectCacheDisabled, Mode=TwoWay}" />
</local:SettingsCard>
<local:SettingsCard ContentAlignment="Left">
<CheckBox x:Uid="Settings_DeveloperOptions_DisableFontCache"
IsChecked="{x:Bind ViewModel.IsFontCacheDisabled, Mode=TwoWay}" />
</local:SettingsCard>
<local:SettingsCard ContentAlignment="Left">
<CheckBox x:Uid="Settings_DeveloperOptions_SaveEffectSources"
IsChecked="{x:Bind ViewModel.IsSaveEffectSources, Mode=TwoWay}" />
</local:SettingsCard>
<local:SettingsCard ContentAlignment="Left">
<CheckBox x:Uid="Settings_DeveloperOptions_WarningsAreErrors"
IsChecked="{x:Bind ViewModel.IsWarningsAreErrors, Mode=TwoWay}" />
</local:SettingsCard>
<local:SettingsCard x:Uid="Settings_DeveloperOptions_DuplicateFrameDetection"
IsWrapEnabled="True">
<ComboBox DropDownOpened="ComboBox_DropDownOpened"
SelectedIndex="{x:Bind ViewModel.DuplicateFrameDetectionMode, Mode=TwoWay}">
<ComboBoxItem x:Uid="Settings_DeveloperOptions_DuplicateFrameDetection_Always" />
<ComboBoxItem x:Uid="Settings_DeveloperOptions_DuplicateFrameDetection_Dynamic" />
<ComboBoxItem x:Uid="Settings_DeveloperOptions_DuplicateFrameDetection_Never" />
</ComboBox>
</local:SettingsCard>
<local:SettingsCard ContentAlignment="Left"
IsEnabled="{x:Bind ViewModel.IsDynamicDection, Mode=OneWay}">
<CheckBox x:Uid="Settings_DeveloperOptions_EnableStatisticsForDynamicDetection"
IsChecked="{x:Bind ViewModel.IsStatisticsForDynamicDetectionEnabled, Mode=TwoWay}" />
</local:SettingsCard>
</local:SettingsExpander.Items>
</local:SettingsExpander>
</local:SettingsGroup>
</local:SimpleStackPanel>
</local:PageFrame>
</Page>

View file

@ -171,184 +171,6 @@ void SettingsViewModel::IsAlwaysRunAsAdmin(bool value) {
AppSettings::Get().IsAlwaysRunAsAdmin(value);
}
bool SettingsViewModel::IsAllowScalingMaximized() const noexcept {
return AppSettings::Get().IsAllowScalingMaximized();
}
void SettingsViewModel::IsAllowScalingMaximized(bool value) {
AppSettings::Get().IsAllowScalingMaximized(value);
if (value) {
ScalingService::Get().CheckForeground();
}
}
bool SettingsViewModel::IsSimulateExclusiveFullscreen() const noexcept {
return AppSettings::Get().IsSimulateExclusiveFullscreen();
}
void SettingsViewModel::IsSimulateExclusiveFullscreen(bool value) {
AppSettings& settings = AppSettings::Get();
if (settings.IsSimulateExclusiveFullscreen() == value) {
return;
}
settings.IsSimulateExclusiveFullscreen(value);
RaisePropertyChanged(L"IsSimulateExclusiveFullscreen");
}
bool SettingsViewModel::IsInlineParams() const noexcept {
return AppSettings::Get().IsInlineParams();
}
void SettingsViewModel::IsInlineParams(bool value) {
AppSettings& settings = AppSettings::Get();
if (settings.IsInlineParams() == value) {
return;
}
settings.IsInlineParams(value);
RaisePropertyChanged(L"IsInlineParams");
}
bool SettingsViewModel::IsDeveloperMode() const noexcept {
return AppSettings::Get().IsDeveloperMode();
}
void SettingsViewModel::IsDeveloperMode(bool value) {
AppSettings& settings = AppSettings::Get();
if (settings.IsDeveloperMode() == value) {
return;
}
settings.IsDeveloperMode(value);
RaisePropertyChanged(L"IsDeveloperMode");
}
bool SettingsViewModel::IsDebugMode() const noexcept {
return AppSettings::Get().IsDebugMode();
}
void SettingsViewModel::IsDebugMode(bool value) {
AppSettings& settings = AppSettings::Get();
if (settings.IsDebugMode() == value) {
return;
}
settings.IsDebugMode(value);
RaisePropertyChanged(L"IsDebugMode");
}
bool SettingsViewModel::IsEffectCacheDisabled() const noexcept {
return AppSettings::Get().IsEffectCacheDisabled();
}
void SettingsViewModel::IsEffectCacheDisabled(bool value) {
AppSettings& settings = AppSettings::Get();
if (settings.IsEffectCacheDisabled() == value) {
return;
}
settings.IsEffectCacheDisabled(value);
RaisePropertyChanged(L"IsEffectCacheDisabled");
}
bool SettingsViewModel::IsFontCacheDisabled() const noexcept {
return AppSettings::Get().IsFontCacheDisabled();
}
void SettingsViewModel::IsFontCacheDisabled(bool value) {
AppSettings& settings = AppSettings::Get();
if (settings.IsFontCacheDisabled() == value) {
return;
}
settings.IsFontCacheDisabled(value);
RaisePropertyChanged(L"IsFontCacheDisabled");
}
bool SettingsViewModel::IsSaveEffectSources() const noexcept {
return AppSettings::Get().IsSaveEffectSources();
}
void SettingsViewModel::IsSaveEffectSources(bool value) {
AppSettings& settings = AppSettings::Get();
if (settings.IsSaveEffectSources() == value) {
return;
}
settings.IsSaveEffectSources(value);
RaisePropertyChanged(L"IsSaveEffectSources");
}
bool SettingsViewModel::IsWarningsAreErrors() const noexcept {
return AppSettings::Get().IsWarningsAreErrors();
}
void SettingsViewModel::IsWarningsAreErrors(bool value) {
AppSettings& settings = AppSettings::Get();
if (settings.IsWarningsAreErrors() == value) {
return;
}
settings.IsWarningsAreErrors(value);
RaisePropertyChanged(L"IsWarningsAreErrors");
}
int SettingsViewModel::DuplicateFrameDetectionMode() const noexcept {
return (int)AppSettings::Get().DuplicateFrameDetectionMode();
}
void SettingsViewModel::DuplicateFrameDetectionMode(int value) {
if (value < 0) {
return;
}
const auto mode = (::Magpie::Core::DuplicateFrameDetectionMode)value;
AppSettings& settings = AppSettings::Get();
if (settings.DuplicateFrameDetectionMode() == mode) {
return;
}
settings.DuplicateFrameDetectionMode(mode);
RaisePropertyChanged(L"DuplicateFrameDetectionMode");
RaisePropertyChanged(L"IsDynamicDection");
if (mode != ::Magpie::Core::DuplicateFrameDetectionMode::Dynamic) {
settings.IsStatisticsForDynamicDetectionEnabled(false);
RaisePropertyChanged(L"IsStatisticsForDynamicDetectionEnabled");
}
}
bool SettingsViewModel::IsDynamicDection() const noexcept {
return AppSettings::Get().DuplicateFrameDetectionMode() == ::Magpie::Core::DuplicateFrameDetectionMode::Dynamic;
}
bool SettingsViewModel::IsStatisticsForDynamicDetectionEnabled() const noexcept {
return AppSettings::Get().IsStatisticsForDynamicDetectionEnabled();
}
void SettingsViewModel::IsStatisticsForDynamicDetectionEnabled(bool value) {
AppSettings& settings = AppSettings::Get();
if (settings.IsStatisticsForDynamicDetectionEnabled() == value) {
return;
}
settings.IsStatisticsForDynamicDetectionEnabled(value);
RaisePropertyChanged(L"IsStatisticsForDynamicDetectionEnabled");
}
void SettingsViewModel::_UpdateStartupOptions() {
std::wstring arguments;
_isRunAtStartup = AutoStartHelper::IsAutoStartEnabled(arguments);

View file

@ -45,41 +45,6 @@ struct SettingsViewModel : SettingsViewModelT<SettingsViewModel>,
bool IsAlwaysRunAsAdmin() const noexcept;
void IsAlwaysRunAsAdmin(bool value);
bool IsAllowScalingMaximized() const noexcept;
void IsAllowScalingMaximized(bool value);
bool IsSimulateExclusiveFullscreen() const noexcept;
void IsSimulateExclusiveFullscreen(bool value);
bool IsInlineParams() const noexcept;
void IsInlineParams(bool value);
bool IsDeveloperMode() const noexcept;
void IsDeveloperMode(bool value);
bool IsDebugMode() const noexcept;
void IsDebugMode(bool value);
bool IsEffectCacheDisabled() const noexcept;
void IsEffectCacheDisabled(bool value);
bool IsFontCacheDisabled() const noexcept;
void IsFontCacheDisabled(bool value);
bool IsSaveEffectSources() const noexcept;
void IsSaveEffectSources(bool value);
bool IsWarningsAreErrors() const noexcept;
void IsWarningsAreErrors(bool value);
int DuplicateFrameDetectionMode() const noexcept;
void DuplicateFrameDetectionMode(int value);
bool IsDynamicDection() const noexcept;
bool IsStatisticsForDynamicDetectionEnabled() const noexcept;
void IsStatisticsForDynamicDetectionEnabled(bool value);
private:
void _UpdateStartupOptions();

View file

@ -17,19 +17,5 @@ namespace Magpie.App {
Boolean IsProcessElevated { get; };
Boolean IsAlwaysRunAsAdmin;
Boolean IsAllowScalingMaximized;
Boolean IsSimulateExclusiveFullscreen;
Boolean IsInlineParams;
Boolean IsDeveloperMode;
Boolean IsDebugMode;
Boolean IsEffectCacheDisabled;
Boolean IsFontCacheDisabled;
Boolean IsSaveEffectSources;
Boolean IsWarningsAreErrors;
Int32 DuplicateFrameDetectionMode;
Boolean IsDynamicDection { get; };
Boolean IsStatisticsForDynamicDetectionEnabled;
}
}

View file

@ -0,0 +1,117 @@
#include "pch.h"
#include "TouchHelper.h"
#include "Logger.h"
#include "StrUtils.h"
#include "Win32Utils.h"
#include "CommonSharedConstants.h"
namespace winrt::Magpie::App {
static std::wstring GetTouchHelperPath() noexcept {
wil::unique_cotaskmem_string system32Dir;
HRESULT hr = SHGetKnownFolderPath(
FOLDERID_System, KF_FLAG_DEFAULT, NULL, system32Dir.put());
if (FAILED(hr)) {
Logger::Get().ComError("SHGetKnownFolderPath 失败", hr);
return {};
}
return StrUtils::Concat(system32Dir.get(),
L"\\Magpie\\", CommonSharedConstants::TOUCH_HELPER_EXE_NAME);
}
bool TouchHelper::IsTouchSupportEnabled() noexcept {
// 不检查版本号
return Win32Utils::FileExists(GetTouchHelperPath().c_str());
}
void TouchHelper::IsTouchSupportEnabled(bool value) noexcept {
SHELLEXECUTEINFO execInfo{
.cbSize = sizeof(execInfo),
.fMask = SEE_MASK_NOASYNC | SEE_MASK_NOCLOSEPROCESS,
.lpVerb = L"runas",
.lpFile = Win32Utils::GetExePath().c_str(),
.lpParameters = value ? L" -r" : L" -ur"
};
if (ShellExecuteEx(&execInfo)) {
wil::unique_process_handle hProcess(execInfo.hProcess);
if (hProcess) {
wil::handle_wait(hProcess.get());
}
} else if (GetLastError() != ERROR_CANCELLED) {
Logger::Get().Win32Error("ShellExecuteEx 失败");
}
}
static bool CheckAndFixTouchHelper(std::wstring& path) noexcept {
// 检查版本号
path += L".ver";
std::vector<uint8_t> versionData;
const auto checkVersion = [&]() {
if (!Win32Utils::ReadFile(path.c_str(), versionData)) {
Logger::Get().Error("读取版本号失败");
}
return versionData.size() == 4 &&
*(uint32_t*)versionData.data() == CommonSharedConstants::TOUCH_HELPER_VERSION;
};
if (!checkVersion()) {
// 版本号不匹配,尝试修复,这会请求管理员权限
TouchHelper::IsTouchSupportEnabled(true);
if (!checkVersion()) {
Logger::Get().Error("修复触控支持失败");
return false;
}
}
path.erase(path.size() - 4);
return true;
}
bool TouchHelper::TryLaunchTouchHelper(bool& isTouchSupportEnabled) noexcept {
std::wstring path = GetTouchHelperPath();
isTouchSupportEnabled = Win32Utils::FileExists(path.c_str());
if (!isTouchSupportEnabled) {
// 未启用触控支持
return true;
}
wil::unique_mutex_nothrow hSingleInstanceMutex;
bool alreadyExists = false;
if (!hSingleInstanceMutex.try_create(
CommonSharedConstants::TOUCH_HELPER_SINGLE_INSTANCE_MUTEX_NAME,
CREATE_MUTEX_INITIAL_OWNER,
MUTEX_ALL_ACCESS,
nullptr,
&alreadyExists
) || alreadyExists) {
Logger::Get().Info("TouchHelper.exe 正在运行");
return true;
}
hSingleInstanceMutex.ReleaseMutex();
// TouchHelper.exe 未在运行则启动它
// 检查版本是否匹配并尝试修复
if (!CheckAndFixTouchHelper(path)) {
// 修复失败
Logger::Get().Error("CheckAndFixTouchHelper 失败");
return false;
}
if (!Win32Utils::ShellOpen(path.c_str(), nullptr, false)) {
Logger::Get().Error("启动 TouchHelper.exe 失败");
return false;
}
return true;
}
}

View file

@ -0,0 +1,11 @@
#pragma once
namespace winrt::Magpie::App {
struct TouchHelper {
static bool IsTouchSupportEnabled() noexcept;
static void IsTouchSupportEnabled(bool value) noexcept;
static bool TryLaunchTouchHelper(bool& isTouchSupportEnabled) noexcept;
};
}

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.UI.Xaml" version="2.8.6" targetFramework="native" />
<package id="Microsoft.Web.WebView2" version="1.0.2420.47" targetFramework="native" />
<package id="Microsoft.Web.WebView2" version="1.0.2478.35" targetFramework="native" />
<package id="Microsoft.Windows.CppWinRT" version="2.0.240405.15" targetFramework="native" />
<package id="Microsoft.Windows.ImplementationLibrary" version="1.0.240122.1" targetFramework="native" />
</packages>

View file

@ -73,11 +73,11 @@ void serialize(Archive& ar, EffectDesc& o) {
ar& o.name& o.params& o.textures& o.samplers& o.passes& o.flags;
}
static constexpr const uint32_t MAX_CACHE_COUNT = 127;
static constexpr uint32_t MAX_CACHE_COUNT = 127;
// 缓存版本
// 当缓存文件结构有更改时更新它,使旧缓存失效
static constexpr const uint32_t EFFECT_CACHE_VERSION = 13;
static constexpr uint32_t EFFECT_CACHE_VERSION = 13;
static std::wstring GetLinearEffectName(std::wstring_view effectName) {

View file

@ -4,11 +4,11 @@
namespace Magpie::Core {
struct EffectCompilerFlags {
static constexpr const uint32_t NoCache = 1;
static constexpr const uint32_t SaveSources = 1 << 1;
static constexpr const uint32_t WarningsAreErrors = 1 << 2;
static constexpr uint32_t NoCache = 1;
static constexpr uint32_t SaveSources = 1 << 1;
static constexpr uint32_t WarningsAreErrors = 1 << 2;
// 只解析输出尺寸和参数,供用户界面使用
static constexpr const uint32_t NoCompile = 1 << 3;
static constexpr uint32_t NoCompile = 1 << 3;
};
struct EffectCompiler {

View file

@ -80,11 +80,11 @@ struct EffectPassDesc {
struct EffectFlags {
// 输入
static constexpr const uint32_t InlineParams = 1;
static constexpr const uint32_t FP16 = 1 << 1;
static constexpr uint32_t InlineParams = 1;
static constexpr uint32_t FP16 = 1 << 1;
// 输出
// 此效果需要帧数和鼠标位置
static constexpr const uint32_t UseDynamic = 1 << 4;
static constexpr uint32_t UseDynamic = 1 << 4;
};
struct EffectDesc {

View file

@ -13,9 +13,9 @@
namespace Magpie::Core {
static constexpr const uint16_t INITIAL_CHECK_COUNT = 16;
static constexpr const uint16_t INITIAL_SKIP_COUNT = 1;
static constexpr const uint16_t MAX_SKIP_COUNT = 16;
static constexpr uint16_t INITIAL_CHECK_COUNT = 16;
static constexpr uint16_t INITIAL_SKIP_COUNT = 1;
static constexpr uint16_t MAX_SKIP_COUNT = 16;
FrameSourceBase::FrameSourceBase() noexcept :
_nextSkipCount(INITIAL_SKIP_COUNT), _framesLeft(INITIAL_CHECK_COUNT) {}

View file

@ -141,7 +141,7 @@ namespace Magpie::Core {
// 缓存版本
// 当缓存文件结构有更改时更新它,使旧缓存失效
static constexpr const uint32_t FONTS_CACHE_VERSION = 1;
static constexpr uint32_t FONTS_CACHE_VERSION = 1;
static std::wstring GetCacheFileName(const std::wstring_view& language) noexcept {
return StrUtils::Concat(CommonSharedConstants::CACHE_DIR, L"fonts_", language);

View file

@ -53,6 +53,7 @@ void ScalingOptions::Log() const noexcept {
IsDrawCursor: {}
IsDirectFlipDisabled: {}
IsStatisticsForDynamicDetectionEnabled: {}
IsTouchSupportEnabled: {}
cropping: {},{},{},{}
graphicsCard: {}
maxFrameRate: {}
@ -77,6 +78,7 @@ void ScalingOptions::Log() const noexcept {
IsDrawCursor(),
IsDirectFlipDisabled(),
IsStatisticsForDynamicDetectionEnabled(),
IsTouchSupportEnabled(),
cropping.Left, cropping.Top, cropping.Right, cropping.Bottom,
graphicsCard,
maxFrameRate.has_value() ? *maxFrameRate : 0.0f,

View file

@ -29,21 +29,24 @@ struct Cropping {
};
struct ScalingFlags {
static constexpr const uint32_t DisableWindowResizing = 1;
static constexpr const uint32_t BreakpointMode = 1 << 1;
static constexpr const uint32_t DisableEffectCache = 1 << 2;
static constexpr const uint32_t SaveEffectSources = 1 << 3;
static constexpr const uint32_t WarningsAreErrors = 1 << 4;
static constexpr const uint32_t SimulateExclusiveFullscreen = 1 << 5;
static constexpr const uint32_t Is3DGameMode = 1 << 6;
static constexpr const uint32_t ShowFPS = 1 << 7;
static constexpr const uint32_t CaptureTitleBar = 1 << 10;
static constexpr const uint32_t AdjustCursorSpeed = 1 << 11;
static constexpr const uint32_t DrawCursor = 1 << 12;
static constexpr const uint32_t DisableDirectFlip = 1 << 13;
static constexpr const uint32_t DisableFontCache = 1 << 14;
static constexpr const uint32_t AllowScalingMaximized = 1 << 15;
static constexpr const uint32_t EnableStatisticsForDynamicDetection = 1 << 16;
static constexpr uint32_t DisableWindowResizing = 1;
static constexpr uint32_t BreakpointMode = 1 << 1;
static constexpr uint32_t DisableEffectCache = 1 << 2;
static constexpr uint32_t SaveEffectSources = 1 << 3;
static constexpr uint32_t WarningsAreErrors = 1 << 4;
static constexpr uint32_t SimulateExclusiveFullscreen = 1 << 5;
static constexpr uint32_t Is3DGameMode = 1 << 6;
static constexpr uint32_t ShowFPS = 1 << 7;
static constexpr uint32_t CaptureTitleBar = 1 << 10;
static constexpr uint32_t AdjustCursorSpeed = 1 << 11;
static constexpr uint32_t DrawCursor = 1 << 12;
static constexpr uint32_t DisableDirectFlip = 1 << 13;
static constexpr uint32_t DisableFontCache = 1 << 14;
static constexpr uint32_t AllowScalingMaximized = 1 << 15;
static constexpr uint32_t EnableStatisticsForDynamicDetection = 1 << 16;
// Magpie.Core 不负责启动 TouchHelper.exe指定此标志会使 Magpie.Core 创建辅助窗口以拦截
// 黑边上的触控输入
static constexpr uint32_t IsTouchSupportEnabled = 1 << 17;
};
enum class ScalingType {
@ -54,8 +57,8 @@ enum class ScalingType {
};
struct EffectOptionFlags {
static constexpr const uint32_t InlineParams = 1;
static constexpr const uint32_t FP16 = 1 << 1;
static constexpr uint32_t InlineParams = 1;
static constexpr uint32_t FP16 = 1 << 1;
};
struct EffectOption {
@ -93,6 +96,7 @@ struct ScalingOptions {
DEFINE_FLAG_ACCESSOR(IsDrawCursor, ScalingFlags::DrawCursor, flags)
DEFINE_FLAG_ACCESSOR(IsDirectFlipDisabled, ScalingFlags::DisableDirectFlip, flags)
DEFINE_FLAG_ACCESSOR(IsStatisticsForDynamicDetectionEnabled, ScalingFlags::EnableStatisticsForDynamicDetection, flags)
DEFINE_FLAG_ACCESSOR(IsTouchSupportEnabled, ScalingFlags::IsTouchSupportEnabled, flags)
Cropping cropping{};
uint32_t flags = ScalingFlags::AdjustCursorSpeed | ScalingFlags::DrawCursor; // ScalingFlags

View file

@ -14,12 +14,17 @@
namespace Magpie::Core {
static UINT WM_MAGPIE_SCALING_CHANGED;
static UINT WM_MAGPIE_SCALINGCHANGED;
// 用于和 TouchHelper 交互
static UINT WM_MAGPIE_TOUCHHELPER;
static void InitMessage() noexcept {
static Utils::Ignore _ = []() {
WM_MAGPIE_SCALING_CHANGED =
RegisterWindowMessage(CommonSharedConstants::WM_MAGPIE_SCALING_CHANGED);
WM_MAGPIE_SCALINGCHANGED =
RegisterWindowMessage(CommonSharedConstants::WM_MAGPIE_SCALINGCHANGED);
WM_MAGPIE_TOUCHHELPER =
RegisterWindowMessage(CommonSharedConstants::WM_MAGPIE_TOUCHHELPER);
return Utils::Ignore();
}();
}
@ -181,20 +186,18 @@ bool ScalingWindow::Create(
}
}
const HINSTANCE hInstance = wil::GetModuleInstanceHandle();
static Utils::Ignore _ = [](HINSTANCE hInstance) {
static Utils::Ignore _ = []() {
WNDCLASSEXW wcex{
.cbSize = sizeof(wcex),
.lpfnWndProc = _WndProc,
.hInstance = hInstance,
.hInstance = wil::GetModuleInstanceHandle(),
.hCursor = LoadCursor(nullptr, IDC_ARROW),
.lpszClassName = CommonSharedConstants::SCALING_WINDOW_CLASS_NAME
};
RegisterClassEx(&wcex);
return Utils::Ignore();
}(hInstance);
}();
CreateWindowEx(
(_options.IsDebugMode() ? 0 : WS_EX_TOPMOST | WS_EX_TRANSPARENT) | WS_EX_LAYERED | WS_EX_TOOLWINDOW | WS_EX_NOACTIVATE
@ -208,7 +211,7 @@ bool ScalingWindow::Create(
_wndRect.bottom - _wndRect.top,
NULL,
NULL,
hInstance,
wil::GetModuleInstanceHandle(),
this
);
@ -244,11 +247,16 @@ bool ScalingWindow::Create(
if (_options.IsDirectFlipDisabled() && !_options.IsDebugMode()) {
// 在此处创建的 DDF 窗口不会立刻显示
if (!_DisableDirectFlip(hInstance)) {
if (!_DisableDirectFlip()) {
Logger::Get().Error("_DisableDirectFlip 失败");
}
}
if (_options.IsTouchSupportEnabled()) {
_CreateTouchHoleWindows();
}
// 在显示前设置窗口属性,其他程序应在缩放窗口显示后再检索窗口属性
_SetWindowProps();
// 缩放窗口可能有 WS_MAXIMIZE 样式,因此使用 SetWindowsPos 而不是 ShowWindow
@ -290,7 +298,16 @@ bool ScalingWindow::Create(
};
// 广播开始缩放
PostMessage(HWND_BROADCAST, WM_MAGPIE_SCALING_CHANGED, 1, (LPARAM)_hWnd);
PostMessage(HWND_BROADCAST, WM_MAGPIE_SCALINGCHANGED, 1, (LPARAM)_hWnd);
for (const wil::unique_hwnd& hWnd : _hwndTouchHoles) {
if (!hWnd) {
continue;
}
SetWindowPos(hWnd.get(), Handle(), 0, 0, 0, 0,
SWP_NOACTIVATE | SWP_NOCOPYBITS | SWP_NOREDRAW | SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW);
}
return true;
}
@ -311,8 +328,8 @@ void ScalingWindow::Render() noexcept {
if (_renderer->Render()) {
// 为了避免用户看到 DDF 窗口,在渲染第一帧后显示
if (_hwndDDF && !_isDDFWindowShown) {
ShowWindow(_hwndDDF, SW_NORMAL);
SetWindowPos(_hwndDDF, Handle(), 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOREDRAW);
SetWindowPos(_hwndDDF.get(), Handle(), 0, 0, 0, 0,
SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE | SWP_SHOWWINDOW);
_isDDFWindowShown = true;
}
}
@ -397,10 +414,11 @@ LRESULT ScalingWindow::_MessageHandler(UINT msg, WPARAM wParam, LPARAM lParam) n
{
_exclModeMutex.reset();
if (_hwndDDF) {
DestroyWindow(_hwndDDF);
_hwndDDF = NULL;
_isDDFWindowShown = false;
_hwndDDF.reset();
_isDDFWindowShown = false;
for (wil::unique_hwnd& hWnd : _hwndTouchHoles) {
hWnd.reset();
}
_cursorManager.reset();
@ -418,9 +436,24 @@ LRESULT ScalingWindow::_MessageHandler(UINT msg, WPARAM wParam, LPARAM lParam) n
timeEndPeriod(1);
// 广播停止缩放
PostMessage(HWND_BROADCAST, WM_MAGPIE_SCALING_CHANGED, 0, 0);
PostMessage(HWND_BROADCAST, WM_MAGPIE_SCALINGCHANGED, 0, 0);
break;
}
default:
{
if (msg == WM_MAGPIE_TOUCHHELPER) {
if (wParam == 1) {
// 记录 TouchHelper 的结果
if (lParam == 0) {
Logger::Get().Info("触控输入变换设置成功");
} else {
Logger::Get().Error(fmt::format("触控输入变换设置失败\n\tLastErrorCode: {}", lParam));
}
}
return 0;
}
}
}
return base_type::_MessageHandler(msg, wParam, lParam);
}
@ -500,15 +533,24 @@ bool ScalingWindow::_CheckForeground(HWND hwndForeground) const noexcept {
return rectSize.cx < 8 || rectSize.cy < 8;
}
bool ScalingWindow::_DisableDirectFlip(HINSTANCE hInstance) noexcept {
static LRESULT CALLBACK BkgWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) {
if (msg == WM_WINDOWPOSCHANGING) {
// 确保始终在缩放窗口后
((WINDOWPOS*)lParam)->hwndInsertAfter = ScalingWindow::Get().Handle();
}
return DefWindowProc(hWnd, msg, wParam, lParam);
}
bool ScalingWindow::_DisableDirectFlip() noexcept {
// 没有显式关闭 DirectFlip 的方法
// 将全屏窗口设为稍微透明,以灰色全屏窗口为背景
static Utils::Ignore _ = [](HINSTANCE hInstance) {
static Utils::Ignore _ = []() {
WNDCLASSEXW wcex{
.cbSize = sizeof(wcex),
.lpfnWndProc = DefWindowProc,
.hInstance = hInstance,
.lpfnWndProc = BkgWndProc,
.hInstance = wil::GetModuleInstanceHandle(),
.hCursor = LoadCursor(nullptr, IDC_ARROW),
.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH),
.lpszClassName = CommonSharedConstants::DDF_WINDOW_CLASS_NAME
@ -516,9 +558,9 @@ bool ScalingWindow::_DisableDirectFlip(HINSTANCE hInstance) noexcept {
RegisterClassEx(&wcex);
return Utils::Ignore();
}(hInstance);
}();
_hwndDDF = CreateWindowEx(
_hwndDDF.reset(CreateWindowEx(
WS_EX_NOACTIVATE | WS_EX_LAYERED | WS_EX_TRANSPARENT,
CommonSharedConstants::DDF_WINDOW_CLASS_NAME,
NULL,
@ -529,24 +571,24 @@ bool ScalingWindow::_DisableDirectFlip(HINSTANCE hInstance) noexcept {
_wndRect.bottom - _wndRect.top,
NULL,
NULL,
hInstance,
wil::GetModuleInstanceHandle(),
NULL
);
));
if (!_hwndDDF) {
if (!_hwndDDF.get()) {
Logger::Get().Win32Error("创建 DDF 窗口失败");
return false;
}
// 设置窗口不透明
if (!SetLayeredWindowAttributes(_hwndDDF, 0, 255, LWA_ALPHA)) {
if (!SetLayeredWindowAttributes(_hwndDDF.get(), 0, 255, LWA_ALPHA)) {
Logger::Get().Win32Error("SetLayeredWindowAttributes 失败");
}
if (_renderer->FrameSource().IsScreenCapture()) {
if (Win32Utils::GetOSVersion().Is20H1OrNewer()) {
// 使 DDF 窗口无法被捕获到
if (!SetWindowDisplayAffinity(_hwndDDF, WDA_EXCLUDEFROMCAPTURE)) {
if (!SetWindowDisplayAffinity(_hwndDDF.get(), WDA_EXCLUDEFROMCAPTURE)) {
Logger::Get().Win32Error("SetWindowDisplayAffinity 失败");
}
}
@ -572,4 +614,101 @@ void ScalingWindow::_SetWindowProps() const noexcept {
SetProp(_hWnd, L"Magpie.DestBottom", (HANDLE)(INT_PTR)destRect.bottom);
}
// 在源窗口四周创建辅助窗口拦截黑边上的触控点击。
//
// 直接将 srcRect 映射到 destRect 是天真的想法。似乎可以创建一个全屏的背景窗口来屏
// 蔽黑边,该方案的问题是无法解决源窗口和黑边的重叠部分。作为黑边,本应拦截用户点击,
// 但这也拦截了对源窗口的操作;若是不拦截会导致在黑边上可以操作源窗口。
//
// 我们的方案是:将源窗口和其周围映射到整个缩放窗口,并在源窗口四周创建背景窗口拦截
// 对黑边的点击。注意这些背景窗口不能由 TouchHelper.exe 创建,因为它有 UIAccess
// 权限,创建的窗口会遮盖缩放窗口。
void ScalingWindow::_CreateTouchHoleWindows() noexcept {
// 将黑边映射到源窗口
const RECT& srcRect = _renderer->SrcRect();
const RECT& destRect = _renderer->DestRect();
const double scaleX = double(destRect.right - destRect.left) / (srcRect.right - srcRect.left);
const double scaleY = double(destRect.bottom - destRect.top) / (srcRect.bottom - srcRect.top);
RECT srcTouchRect = srcRect;
if (destRect.left > _wndRect.left) {
srcTouchRect.left -= lround((destRect.left - _wndRect.left) / scaleX);
}
if (destRect.top > _wndRect.top) {
srcTouchRect.top -= lround((destRect.top - _wndRect.top) / scaleX);
}
if (destRect.right < _wndRect.right) {
srcTouchRect.right += lround((_wndRect.right - destRect.right) / scaleY);
}
if (destRect.bottom < _wndRect.bottom) {
srcTouchRect.bottom += lround((_wndRect.bottom - destRect.bottom) / scaleY);
}
static Utils::Ignore _ = []() {
WNDCLASSEXW wcex{
.cbSize = sizeof(wcex),
.lpfnWndProc = BkgWndProc,
.hInstance = wil::GetModuleInstanceHandle(),
.lpszClassName = CommonSharedConstants::TOUCH_HELPER_HOLE_WINDOW_CLASS_NAME
};
RegisterClassEx(&wcex);
return Utils::Ignore();
}();
const auto createHoleWindow = [&](uint32_t idx, LONG left, LONG top, LONG right, LONG bottom) noexcept {
_hwndTouchHoles[idx].reset(CreateWindowEx(
WS_EX_NOREDIRECTIONBITMAP | WS_EX_NOACTIVATE,
CommonSharedConstants::TOUCH_HELPER_HOLE_WINDOW_CLASS_NAME,
nullptr,
WS_POPUP,
left,
top,
right - left,
bottom - top,
NULL,
NULL,
wil::GetModuleInstanceHandle(),
0
));
};
// srcTouchRect
// ┌───┬───────────┬───┐
// │ │ 1 │ │
// │ ├───────────┤ │
// │ │ │ │
// │ 0 │ srcRect │ 2 │
// │ │ │ │
// │ ├───────────┤ │
// │ │ 3 │ │
// └───┴───────────┴───┘
if (srcRect.left > srcTouchRect.left) {
createHoleWindow(0, srcTouchRect.left, srcTouchRect.top, srcRect.left, srcTouchRect.bottom);
}
if (srcRect.top > srcTouchRect.top) {
createHoleWindow(1, srcRect.left, srcTouchRect.top, srcRect.right, srcRect.top);
}
if (srcRect.right < srcTouchRect.right) {
createHoleWindow(2, srcRect.right, srcTouchRect.top, srcTouchRect.right, srcTouchRect.bottom);
}
if (srcRect.bottom < srcTouchRect.bottom) {
createHoleWindow(3, srcRect.left, srcRect.bottom, srcRect.right, srcTouchRect.bottom);
}
// 供 TouchHelper.exe 使用
SetProp(_hWnd, L"Magpie.SrcTouchLeft", (HANDLE)(INT_PTR)srcTouchRect.left);
SetProp(_hWnd, L"Magpie.SrcTouchTop", (HANDLE)(INT_PTR)srcTouchRect.top);
SetProp(_hWnd, L"Magpie.SrcTouchRight", (HANDLE)(INT_PTR)srcTouchRect.right);
SetProp(_hWnd, L"Magpie.SrcTouchBottom", (HANDLE)(INT_PTR)srcTouchRect.bottom);
SetProp(_hWnd, L"Magpie.DestTouchLeft", (HANDLE)(INT_PTR)_wndRect.left);
SetProp(_hWnd, L"Magpie.DestTouchTop", (HANDLE)(INT_PTR)_wndRect.top);
SetProp(_hWnd, L"Magpie.DestTouchRight", (HANDLE)(INT_PTR)_wndRect.right);
SetProp(_hWnd, L"Magpie.DestTouchBottom", (HANDLE)(INT_PTR)_wndRect.bottom);
}
}

View file

@ -69,10 +69,12 @@ private:
bool _CheckForeground(HWND hwndForeground) const noexcept;
bool _DisableDirectFlip(HINSTANCE hInstance) noexcept;
bool _DisableDirectFlip() noexcept;
void _SetWindowProps() const noexcept;
void _CreateTouchHoleWindows() noexcept;
winrt::DispatcherQueue _dispatcher{ nullptr };
RECT _wndRect{};
@ -84,9 +86,11 @@ private:
HWND _hwndSrc = NULL;
RECT _srcWndRect{};
HWND _hwndDDF = NULL;
wil::unique_hwnd _hwndDDF;
wil::unique_mutex_nothrow _exclModeMutex;
std::array<wil::unique_hwnd, 4> _hwndTouchHoles{};
bool _isSrcRepositioning = false;
bool _isDDFWindowShown = false;
};

View file

@ -37,6 +37,8 @@
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<AdditionalDependencies>Imagehlp.lib;%(AdditionalDependencies)</AdditionalDependencies>
<DelayLoadDLLs>imagehlp.dll;crypt32.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
@ -45,6 +47,7 @@
<ClInclude Include="resource.h" />
<ClInclude Include="ThemeHelper.h" />
<ClInclude Include="NotifyIconService.h" />
<ClInclude Include="TouchHelper.h" />
<ClInclude Include="XamlApp.h" />
<ClInclude Include="XamlWindow.h" />
</ItemGroup>
@ -62,6 +65,7 @@
<ClCompile Include="main.cpp" />
<ClCompile Include="ThemeHelper.cpp" />
<ClCompile Include="NotifyIconService.cpp" />
<ClCompile Include="TouchHelper.cpp" />
<ClCompile Include="XamlApp.cpp" />
</ItemGroup>
<ItemGroup>
@ -110,8 +114,8 @@
<ImportGroup Label="ExtensionTargets">
<Import Project="..\..\packages\Microsoft.UI.Xaml.2.8.6\build\native\Microsoft.UI.Xaml.targets" Condition="Exists('..\..\packages\Microsoft.UI.Xaml.2.8.6\build\native\Microsoft.UI.Xaml.targets')" />
<Import Project="..\..\packages\Microsoft.Windows.ImplementationLibrary.1.0.240122.1\build\native\Microsoft.Windows.ImplementationLibrary.targets" Condition="Exists('..\..\packages\Microsoft.Windows.ImplementationLibrary.1.0.240122.1\build\native\Microsoft.Windows.ImplementationLibrary.targets')" />
<Import Project="..\..\packages\Microsoft.Web.WebView2.1.0.2420.47\build\native\Microsoft.Web.WebView2.targets" Condition="Exists('..\..\packages\Microsoft.Web.WebView2.1.0.2420.47\build\native\Microsoft.Web.WebView2.targets')" />
<Import Project="..\..\packages\Microsoft.Windows.CppWinRT.2.0.240405.15\build\native\Microsoft.Windows.CppWinRT.targets" Condition="Exists('..\..\packages\Microsoft.Windows.CppWinRT.2.0.240405.15\build\native\Microsoft.Windows.CppWinRT.targets')" />
<Import Project="..\..\packages\Microsoft.Web.WebView2.1.0.2478.35\build\native\Microsoft.Web.WebView2.targets" Condition="Exists('..\..\packages\Microsoft.Web.WebView2.1.0.2478.35\build\native\Microsoft.Web.WebView2.targets')" />
</ImportGroup>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
@ -120,8 +124,8 @@
<Error Condition="!Exists('..\..\packages\Microsoft.UI.Xaml.2.8.6\build\native\Microsoft.UI.Xaml.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.UI.Xaml.2.8.6\build\native\Microsoft.UI.Xaml.props'))" />
<Error Condition="!Exists('..\..\packages\Microsoft.UI.Xaml.2.8.6\build\native\Microsoft.UI.Xaml.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.UI.Xaml.2.8.6\build\native\Microsoft.UI.Xaml.targets'))" />
<Error Condition="!Exists('..\..\packages\Microsoft.Windows.ImplementationLibrary.1.0.240122.1\build\native\Microsoft.Windows.ImplementationLibrary.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Windows.ImplementationLibrary.1.0.240122.1\build\native\Microsoft.Windows.ImplementationLibrary.targets'))" />
<Error Condition="!Exists('..\..\packages\Microsoft.Web.WebView2.1.0.2420.47\build\native\Microsoft.Web.WebView2.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Web.WebView2.1.0.2420.47\build\native\Microsoft.Web.WebView2.targets'))" />
<Error Condition="!Exists('..\..\packages\Microsoft.Windows.CppWinRT.2.0.240405.15\build\native\Microsoft.Windows.CppWinRT.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Windows.CppWinRT.2.0.240405.15\build\native\Microsoft.Windows.CppWinRT.props'))" />
<Error Condition="!Exists('..\..\packages\Microsoft.Windows.CppWinRT.2.0.240405.15\build\native\Microsoft.Windows.CppWinRT.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Windows.CppWinRT.2.0.240405.15\build\native\Microsoft.Windows.CppWinRT.targets'))" />
<Error Condition="!Exists('..\..\packages\Microsoft.Web.WebView2.1.0.2478.35\build\native\Microsoft.Web.WebView2.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Web.WebView2.1.0.2478.35\build\native\Microsoft.Web.WebView2.targets'))" />
</Target>
</Project>

View file

@ -24,6 +24,9 @@
<ClInclude Include="NotifyIconService.h">
<Filter>Services</Filter>
</ClInclude>
<ClInclude Include="TouchHelper.h">
<Filter>Helpers</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
@ -42,6 +45,9 @@
<ClCompile Include="NotifyIconService.cpp">
<Filter>Services</Filter>
</ClCompile>
<ClCompile Include="TouchHelper.cpp">
<Filter>Helpers</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="Magpie.rc">

View file

@ -9,9 +9,11 @@ namespace Magpie {
// 当任务栏被创建时会广播此消息。用于在资源管理器被重新启动时重新创建托盘图标
// https://learn.microsoft.com/en-us/windows/win32/shell/taskbar#taskbar-creation-notification
const UINT NotifyIconService::_WM_TASKBARCREATED = RegisterWindowMessage(L"TaskbarCreated");
static UINT WM_TASKBARCREATED;
void NotifyIconService::Initialize() noexcept {
WM_TASKBARCREATED = RegisterWindowMessage(L"TaskbarCreated");
_nid.cbSize = sizeof(_nid);
_nid.uVersion = 0; // 不使用 NOTIFYICON_VERSION_4
_nid.uCallbackMessage = CommonSharedConstants::WM_NOTIFY_ICON;
@ -151,7 +153,7 @@ LRESULT NotifyIconService::_NotifyIconWndProc(HWND hWnd, UINT message, WPARAM wP
}
default:
{
if (message == _WM_TASKBARCREATED) {
if (message == WM_TASKBARCREATED) {
if (_shouldShow) {
// 重新创建任务栏图标
IsShow(true);

View file

@ -27,7 +27,6 @@ private:
NOTIFYICONDATA _nid{};
bool _isShow = false;
bool _shouldShow = false;
static const UINT _WM_TASKBARCREATED;
};
}

View file

@ -44,7 +44,7 @@ void ThemeHelper::SetWindowTheme(HWND hWnd, bool darkBorder, bool darkMenu) noex
// 使标题栏适应黑暗模式
// build 18985 之前 DWMWA_USE_IMMERSIVE_DARK_MODE 的值不同
// https://github.com/MicrosoftDocs/sdk-api/pull/966/files
constexpr const DWORD DWMWA_USE_IMMERSIVE_DARK_MODE_BEFORE_20H1 = 19;
static constexpr DWORD DWMWA_USE_IMMERSIVE_DARK_MODE_BEFORE_20H1 = 19;
BOOL value = darkBorder;
DwmSetWindowAttribute(
hWnd,

321
src/Magpie/TouchHelper.cpp Normal file
View file

@ -0,0 +1,321 @@
#include "pch.h"
#include "TouchHelper.h"
#include "StrUtils.h"
#include <ImageHlp.h>
#include "Logger.h"
#include "Win32Utils.h"
#include "CommonSharedConstants.h"
namespace Magpie {
// 证书的 SHA1 哈希值,也是“指纹”
static constexpr std::array<uint8_t, 20> CERT_FINGERPRINT{
0xad, 0x5a, 0x50, 0x3d, 0xda, 0xec, 0x08, 0x5b, 0xf4, 0x48,
0xd8, 0x63, 0xcf, 0x90, 0x3a, 0xb4, 0x72, 0x0e, 0x0b, 0x12
};
static std::vector<uint8_t> GetCertificateDataFromPE(const wchar_t* fileName) noexcept {
wil::unique_hfile hFile(CreateFile(
fileName, FILE_READ_DATA, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL));
if (!hFile) {
Logger::Get().Win32Error("CreateFile 失败");
return {};
}
DWORD len = 0;
WIN_CERTIFICATE cert;
if (!ImageGetCertificateData(hFile.get(), 0, &cert, &len) && GetLastError() != ERROR_INSUFFICIENT_BUFFER) {
Logger::Get().Win32Error("ImageGetCertificateData 失败");
return {};
}
std::vector<uint8_t> data(len);
if (!ImageGetCertificateData(hFile.get(), 0, (WIN_CERTIFICATE*)data.data(), &len)) {
Logger::Get().Win32Error("ImageGetCertificateData 失败");
return {};
}
return data;
}
static void CloseCertStore(HCERTSTORE hCertStore) noexcept {
CertCloseStore(hCertStore, 0);
}
using unique_cert_store = wil::unique_any<HCERTSTORE, decltype(&CloseCertStore), CloseCertStore>;
using unique_cert_context =
wil::unique_any<PCCERT_CONTEXT, decltype(&CertFreeCertificateContext), CertFreeCertificateContext>;
static bool InstallCertificateFromPE(const wchar_t* exePath) noexcept {
// 打开本地计算机的根证书存储区
unique_cert_store hRootCertStore(CertOpenStore(CERT_STORE_PROV_SYSTEM, 0, NULL,
CERT_SYSTEM_STORE_LOCAL_MACHINE | CERT_STORE_OPEN_EXISTING_FLAG, L"ROOT"));
if (!hRootCertStore) {
Logger::Get().Win32Error("CertOpenStore 失败");
return false;
}
// 检查证书是否已安装
{
const CRYPT_DATA_BLOB blob{
.cbData = (DWORD)CERT_FINGERPRINT.size(),
.pbData = (BYTE*)CERT_FINGERPRINT.data()
};
unique_cert_context context(CertFindCertificateInStore(
hRootCertStore.get(), PKCS_7_ASN_ENCODING, 0, CERT_FIND_SHA1_HASH, &blob, nullptr));
if (context) {
return true;
}
}
// 从可执行文件中提取证书
std::vector<uint8_t> certData = GetCertificateDataFromPE(exePath);
if (certData.empty()) {
Logger::Get().Error("GetCertificateDataFromPE 失败");
return false;
}
WIN_CERTIFICATE* winCert = (WIN_CERTIFICATE*)certData.data();
if (winCert->wCertificateType != WIN_CERT_TYPE_PKCS_SIGNED_DATA) {
Logger::Get().Error("未知证书");
return false;
}
CRYPT_DATA_BLOB blob{
.cbData = DWORD(certData.size() - offsetof(WIN_CERTIFICATE, bCertificate)),
.pbData = winCert->bCertificate
};
unique_cert_store hMemStore(CertOpenStore(
CERT_STORE_PROV_PKCS7, 0, NULL, CERT_STORE_READONLY_FLAG, &blob));
if (!hMemStore) {
Logger::Get().Win32Error("CertOpenStore 失败");
return false;
}
unique_cert_context context(CertFindCertificateInStore(
hMemStore.get(), PKCS_7_ASN_ENCODING, 0, CERT_FIND_ANY, 0, NULL));
if (!context) {
Logger::Get().Win32Error("CertFindCertificateInStore 失败");
return false;
}
// 验证指纹
{
std::array<uint8_t, 20> fingerprint{};
DWORD fingerprintSize = (DWORD)fingerprint.size();
if (!CertGetCertificateContextProperty(context.get(),
CERT_HASH_PROP_ID, fingerprint.data(), &fingerprintSize)) {
Logger::Get().Win32Error("CertGetCertificateContextProperty 失败");
return false;
}
if (fingerprint != CERT_FINGERPRINT) {
Logger::Get().Error("证书指纹不匹配");
return false;
}
}
// 设置友好名称
{
wchar_t friendlyName[] = L"Magpie Self-Signed Certificate";
blob.cbData = sizeof(friendlyName);
blob.pbData = (BYTE*)friendlyName;
if (!CertSetCertificateContextProperty(context.get(), CERT_FRIENDLY_NAME_PROP_ID, 0, &blob)) {
Logger::Get().Error("CertSetCertificateContextProperty 失败");
}
}
// 安装证书
if (!CertAddCertificateContextToStore(hRootCertStore.get(), context.get(), CERT_STORE_ADD_NEWER, NULL)) {
if (GetLastError() != CRYPT_E_EXISTS) {
Logger::Get().Win32Error("CertAddCertificateContextToStore 失败");
return false;
}
}
return true;
}
// 为了获得 UIAccess 权限需满足两个条件:
// 1. 必须签名,且证书必须由本地计算机的受信任的根证书颁发机构验证
// 2. 必须位于只能由管理员写入的本地文件夹
bool TouchHelper::Register() noexcept {
static constexpr const wchar_t* exePath = CommonSharedConstants::TOUCH_HELPER_EXE_NAME;
if (!Win32Utils::IsProcessElevated()) {
Logger::Get().Error("没有管理员权限");
return false;
}
if (!Win32Utils::FileExists(exePath)) {
Logger::Get().Error("找不到可执行文件");
return false;
}
if (!InstallCertificateFromPE(exePath)) {
Logger::Get().Error("InstallCert 失败");
return false;
}
Logger::Get().Info("安装证书成功");
// 将可执行文件复制到 System32 文件夹中
// 1. 不能选择 Program Files某些环境下该文件夹中的程序无法获得 UIAccess 权限
// 2. System32 比 Windows 更好,因为前者是“安全位置”,见 https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/security-policy-settings/user-account-control-only-elevate-uiaccess-applications-that-are-installed-in-secure-locations
wil::unique_cotaskmem_string system32Dir;
HRESULT hr = SHGetKnownFolderPath(
FOLDERID_System, KF_FLAG_DEFAULT, NULL, system32Dir.put());
if (FAILED(hr)) {
Logger::Get().ComError("SHGetKnownFolderPath 失败", hr);
return false;
}
std::wstring magpieDir = StrUtils::Concat(system32Dir.get(), L"\\Magpie");
hr = wil::CreateDirectoryDeepNoThrow(magpieDir.c_str());
if (FAILED(hr)) {
Logger::Get().ComError("CreateDirectoryDeepNoThrow 失败", hr);
return false;
}
std::wstring targetPath = StrUtils::Concat(magpieDir, L"\\", exePath);
if (!CopyFile(exePath, targetPath.c_str(), FALSE)) {
Logger::Get().Win32Error("CopyFile 失败");
return false;
}
// 记录版本
targetPath += L".ver";
static const uint32_t version = CommonSharedConstants::TOUCH_HELPER_VERSION;
if (!Win32Utils::WriteFile(targetPath.c_str(), &version, sizeof(version))) {
Logger::Get().Error("写入资源文件失败");
return false;
}
Logger::Get().Info("复制可执行文件成功");
return true;
}
static void StopTouchHelper() noexcept {
// 查找 TouchHelper.exe 的隐藏窗口
HWND hwndTouchHelper = NULL;
for (int i = 0; i < 10; ++i) {
hwndTouchHelper = FindWindow(CommonSharedConstants::TOUCH_HELPER_WINDOW_CLASS_NAME, nullptr);
if (hwndTouchHelper) {
break;
}
// 等待 TouchHelper.exe 初始化
Sleep(100);
}
if (!hwndTouchHelper) {
Logger::Get().Info("未找到 TouchHelper 窗口");
return;
}
DWORD processId;
if (!GetWindowThreadProcessId(hwndTouchHelper, &processId)) {
Logger::Get().Win32Error("GetWindowThreadProcessId 失败");
return;
}
wil::unique_process_handle hTouchHelperProcess(OpenProcess(SYNCHRONIZE, FALSE, processId));
if (!hTouchHelperProcess) {
Logger::Get().Win32Error("OpenProcess 失败");
return;
}
const UINT WM_MAGPIE_TOUCHHELPER =
RegisterWindowMessage(CommonSharedConstants::WM_MAGPIE_TOUCHHELPER);
// 通知 TouchHelper 退出
PostMessage(hwndTouchHelper, WM_MAGPIE_TOUCHHELPER, 0, 0);
// 等待退出
if (wil::handle_wait(hTouchHelperProcess.get(), 3000)) {
Logger::Get().Info("TouchHelper 已退出");
} else {
Logger::Get().Error("TouchHelper 未退出");
}
}
static bool DeleteTouchHelperExe(const wchar_t* exePath) noexcept {
if (DeleteFile(exePath)) {
return true;
}
if (GetLastError() != ERROR_ACCESS_DENIED) {
Logger::Get().Win32Error("DeleteFile 失败");
return false;
}
StopTouchHelper();
if (DeleteFile(exePath)) {
return true;
} else {
Logger::Get().Win32Error("DeleteFile 失败");
return false;
}
}
bool TouchHelper::Unregister() noexcept {
if (!Win32Utils::IsProcessElevated()) {
Logger::Get().Error("没有管理员权限");
return false;
}
// 删除 system32\Magpie 文件夹
wil::unique_cotaskmem_string system32Dir;
HRESULT hr = SHGetKnownFolderPath(
FOLDERID_System, KF_FLAG_DEFAULT, NULL, system32Dir.put());
if (FAILED(hr)) {
Logger::Get().ComError("SHGetKnownFolderPath 失败", hr);
return false;
}
// 如果 TouchHelper 正在运行,则使它退出
if (DeleteTouchHelperExe(StrUtils::Concat(system32Dir.get(), L"\\Magpie\\",
CommonSharedConstants::TOUCH_HELPER_EXE_NAME).c_str())) {
Logger::Get().Info("已删除 TouchHelper.exe");
} else {
Logger::Get().Error("删除 TouchHelper.exe 失败");
return false;
}
hr = wil::RemoveDirectoryRecursiveNoThrow(
StrUtils::Concat(system32Dir.get(), L"\\Magpie").c_str());
if (FAILED(hr)) {
Logger::Get().ComError("RemoveDirectoryRecursiveNoThrow 失败", hr);
return false;
}
// 删除证书
// 打开本地计算机的根证书存储区
unique_cert_store hRootCertStore(CertOpenStore(CERT_STORE_PROV_SYSTEM, 0, NULL,
CERT_SYSTEM_STORE_LOCAL_MACHINE | CERT_STORE_OPEN_EXISTING_FLAG, L"ROOT"));
if (!hRootCertStore) {
Logger::Get().Win32Error("CertOpenStore 失败");
return false;
}
const CRYPT_DATA_BLOB blob{
.cbData = (DWORD)CERT_FINGERPRINT.size(),
.pbData = (BYTE*)CERT_FINGERPRINT.data()
};
unique_cert_context context(CertFindCertificateInStore(
hRootCertStore.get(), PKCS_7_ASN_ENCODING, 0, CERT_FIND_SHA1_HASH, &blob, nullptr));
if (context) {
if (!CertDeleteCertificateFromStore(context.get())) {
Logger::Get().Win32Error("CertDeleteCertificateFromStore 失败");
return false;
}
}
return true;
}
}

10
src/Magpie/TouchHelper.h Normal file
View file

@ -0,0 +1,10 @@
#pragma once
namespace Magpie {
struct TouchHelper {
static bool Register() noexcept;
static bool Unregister() noexcept;
};
}

View file

@ -7,11 +7,38 @@
#include "ThemeHelper.h"
#include "NotifyIconService.h"
namespace winrt {
using namespace Magpie::App;
}
namespace Magpie {
static UINT WM_MAGPIE_SHOWME;
static UINT WM_MAGPIE_QUIT;
static void InitMessages() noexcept {
WM_MAGPIE_SHOWME = RegisterWindowMessage(CommonSharedConstants::WM_MAGPIE_SHOWME);
WM_MAGPIE_QUIT = RegisterWindowMessage(CommonSharedConstants::WM_MAGPIE_QUIT);
}
// 我们需要尽可能高的时钟分辨率来提高渲染帧率。
// 通常 Magpie 被 OS 认为是后台进程,下面的调用避免 OS 自动降低时钟分辨率。
// 见 https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-setprocessinformation
static void IncreaseTimerResolution() noexcept {
PROCESS_POWER_THROTTLING_STATE powerThrottling{
.Version = PROCESS_POWER_THROTTLING_CURRENT_VERSION,
.ControlMask = PROCESS_POWER_THROTTLING_EXECUTION_SPEED |
PROCESS_POWER_THROTTLING_IGNORE_TIMER_RESOLUTION,
.StateMask = 0
};
SetProcessInformation(
GetCurrentProcess(),
ProcessPowerThrottling,
&powerThrottling,
sizeof(powerThrottling)
);
}
// 提前加载 twinapi.appcore.dll 和 threadpoolwinrt.dll 以避免退出时崩溃。应在 Windows.UI.Xaml.dll 被加载前调用
// 来自 https://github.com/CommunityToolkit/Microsoft.Toolkit.Win32/blob/6fb2c3e00803ea563af20f6bc9363091b685d81f/Microsoft.Toolkit.Win32.UI.XamlApplication/XamlApplication.cpp#L140
// 参见: https://github.com/microsoft/microsoft-ui-xaml/issues/7260#issuecomment-1231314776
@ -20,24 +47,21 @@ static void FixThreadPoolCrash() noexcept {
LoadLibraryEx(L"threadpoolwinrt.dll", nullptr, LOAD_LIBRARY_SEARCH_SYSTEM32);
}
static void InitMessages() noexcept {
WM_MAGPIE_SHOWME = RegisterWindowMessage(CommonSharedConstants::WM_MAGPIE_SHOWME);
WM_MAGPIE_QUIT = RegisterWindowMessage(CommonSharedConstants::WM_MAGPIE_QUIT);
}
bool XamlApp::Initialize(HINSTANCE hInstance, const wchar_t* arguments) {
_hInst = hInstance;
FixThreadPoolCrash();
_InitializeLogger();
// 提高时钟分辨率
IncreaseTimerResolution();
Logger::Get().Info(fmt::format("程序启动\n\t版本: {}\n\t管理员: {}",
#ifdef MAGPIE_VERSION_TAG
STRING(MAGPIE_VERSION_TAG)
#else
"dev"
#endif
, Win32Utils::IsProcessElevated() ? "" : ""));
// 程序结束时也不应调用 uninit_apartment
// 见 https://kennykerr.ca/2018/03/24/cppwinrt-hosting-the-windows-runtime/
winrt::init_apartment(winrt::apartment_type::single_threaded);
FixThreadPoolCrash();
// 初始化 Magpie.App.dll 中的 Logger
// 单例无法在 exe 和 dll 间共享
winrt::LoggerHelper::Initialize((uint64_t)&Logger::Get());
InitMessages();
@ -48,9 +72,9 @@ bool XamlApp::Initialize(HINSTANCE hInstance, const wchar_t* arguments) {
}
// 初始化 UWP 应用
_uwpApp = winrt::Magpie::App::App();
_uwpApp = winrt::App();
winrt::Magpie::App::StartUpOptions options = _uwpApp.Initialize(0);
winrt::StartUpOptions options = _uwpApp.Initialize(0);
if (options.IsError) {
Logger::Get().Error("初始化失败");
return false;
@ -77,7 +101,7 @@ bool XamlApp::Initialize(HINSTANCE hInstance, const wchar_t* arguments) {
_mainWindow.Destroyed({ this, &XamlApp::_MainWindow_Destoryed });
// 不显示托盘图标时忽略 -t 参数
if (!notifyIconService.IsShow() || !arguments || arguments != L"-t"sv) {
if (!notifyIconService.IsShow() || arguments != L"-t"sv) {
if (!_CreateMainWindow()) {
Quit();
return false;
@ -165,7 +189,6 @@ XamlApp::XamlApp() {}
XamlApp::~XamlApp() {}
bool XamlApp::_CheckSingleInstance() noexcept {
static constexpr const wchar_t* SINGLE_INSTANCE_MUTEX_NAME = L"{4C416227-4A30-4A2F-8F23-8701544DD7D6}";
static constexpr const wchar_t* ELEVATED_MUTEX_NAME = L"{E494C456-F587-4DAF-B68F-366278D31C45}";
if (Win32Utils::IsProcessElevated()) {
@ -189,7 +212,7 @@ bool XamlApp::_CheckSingleInstance() noexcept {
bool alreadyExists = false;
if (!_hSingleInstanceMutex.try_create(
SINGLE_INSTANCE_MUTEX_NAME,
CommonSharedConstants::SINGLE_INSTANCE_MUTEX_NAME,
CREATE_MUTEX_INITIAL_OWNER,
MUTEX_ALL_ACCESS,
nullptr,
@ -217,20 +240,6 @@ bool XamlApp::_CheckSingleInstance() noexcept {
return true;
}
void XamlApp::_InitializeLogger() noexcept {
Logger& logger = Logger::Get();
logger.Initialize(
spdlog::level::info,
CommonSharedConstants::LOG_PATH,
100000,
2
);
// 初始化 dll 中的 Logger
// Logger 的单例无法在 exe 和 dll 间共享
winrt::Magpie::App::LoggerHelper::Initialize((uint64_t)&logger);
}
bool XamlApp::_CreateMainWindow() noexcept {
if (!_mainWindow.Create(_hInst, _mainWindowCenter, _mainWindowSizeInDips, _isMainWndMaximized)) {
return false;
@ -274,11 +283,11 @@ void XamlApp::_MainWindow_Destoryed() {
void XamlApp::_ReleaseMutexes() noexcept {
if (_hSingleInstanceMutex) {
ReleaseMutex(_hSingleInstanceMutex.get());
_hSingleInstanceMutex.ReleaseMutex();
_hSingleInstanceMutex.reset();
}
if (_hElevatedMutex) {
ReleaseMutex(_hElevatedMutex.get());
_hElevatedMutex.ReleaseMutex();
_hElevatedMutex.reset();
}
}

View file

@ -33,8 +33,6 @@ private:
bool _CheckSingleInstance() noexcept;
void _InitializeLogger() noexcept;
bool _CreateMainWindow() noexcept;
void _QuitWithoutMainWindow();

View file

@ -17,6 +17,8 @@
#include "pch.h"
#include "XamlApp.h"
#include "Win32Utils.h"
#include "TouchHelper.h"
#include "CommonSharedConstants.h"
// 将当前目录设为程序所在目录
static void SetWorkingDir() noexcept {
@ -30,21 +32,12 @@ static void SetWorkingDir() noexcept {
FAIL_FAST_IF_WIN32_BOOL_FALSE(SetCurrentDirectory(path.c_str()));
}
static void IncreaseTimerResolution() noexcept {
// 我们需要尽可能高的时钟分辨率来提高渲染帧率。
// 通常 Magpie 被 OS 认为是后台进程,下面的调用避免 OS 自动降低时钟分辨率。
// 见 https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-setprocessinformation
PROCESS_POWER_THROTTLING_STATE powerThrottling{
.Version = PROCESS_POWER_THROTTLING_CURRENT_VERSION,
.ControlMask = PROCESS_POWER_THROTTLING_EXECUTION_SPEED |
PROCESS_POWER_THROTTLING_IGNORE_TIMER_RESOLUTION,
.StateMask = 0
};
SetProcessInformation(
GetCurrentProcess(),
ProcessPowerThrottling,
&powerThrottling,
sizeof(powerThrottling)
static void InitializeLogger(const char* logFilePath) noexcept {
Logger::Get().Initialize(
spdlog::level::info,
logFilePath,
100000,
2
);
}
@ -61,15 +54,42 @@ int APIENTRY wWinMain(
// 堆损坏时终止进程
HeapSetInformation(NULL, HeapEnableTerminationOnCorruption, nullptr, 0);
// 提高时钟分辨率
IncreaseTimerResolution();
// 程序结束时也不应调用 uninit_apartment
// 见 https://kennykerr.ca/2018/03/24/cppwinrt-hosting-the-windows-runtime/
winrt::init_apartment(winrt::apartment_type::single_threaded);
SetWorkingDir();
enum {
Normal,
RegisterTouchHelper,
UnRegisterTouchHelper
} mode = [&]() {
if (lpCmdLine == L"-r"sv) {
return RegisterTouchHelper;
} else if (lpCmdLine == L"-ur"sv) {
return UnRegisterTouchHelper;
} else {
return Normal;
}
}();
InitializeLogger(mode == Normal ?
CommonSharedConstants::LOG_PATH :
CommonSharedConstants::REGISTER_TOUCH_HELPER_LOG_PATH);
Logger::Get().Info(fmt::format("程序启动\n\t版本: {}\n\t管理员: {}",
#ifdef MAGPIE_VERSION_TAG
STRING(MAGPIE_VERSION_TAG),
#else
"dev",
#endif
Win32Utils::IsProcessElevated() ? "" : ""
));
if (mode == RegisterTouchHelper) {
// 使 TouchHelper 获得 UIAccess 权限
return Magpie::TouchHelper::Register() ? 0 : 1;
} else if (mode == UnRegisterTouchHelper) {
return Magpie::TouchHelper::Unregister() ? 0 : 1;
}
auto& app = Magpie::XamlApp::Get();
if (!app.Initialize(hInstance, lpCmdLine)) {
return 0;

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.UI.Xaml" version="2.8.6" targetFramework="native" />
<package id="Microsoft.Web.WebView2" version="1.0.2420.47" targetFramework="native" />
<package id="Microsoft.Web.WebView2" version="1.0.2478.35" targetFramework="native" />
<package id="Microsoft.Windows.CppWinRT" version="2.0.240405.15" targetFramework="native" />
<package id="Microsoft.Windows.ImplementationLibrary" version="1.0.240122.1" targetFramework="native" />
</packages>

View file

@ -23,13 +23,14 @@
#include <span>
// WIL
// string_maker<std::wstring> 需要启用异常
#define WIL_ENABLE_EXCEPTIONS
#include <wil/stl.h>
#undef WIL_ENABLE_EXCEPTIONS
#include <wil/resource.h>
#include <wil/win32_helpers.h>
#include <wil/filesystem.h>
// wil::string_maker<std::wstring> 需要启用异常
// 应最后包含
#define WIL_ENABLE_EXCEPTIONS
#include <wil/stl.h>
#undef WIL_ENABLE_EXCEPTIONS
// C++/WinRT
#include <winrt/Windows.ApplicationModel.Resources.h>

View file

@ -1,17 +1,29 @@
#pragma once
struct CommonSharedConstants {
static constexpr const wchar_t* SINGLE_INSTANCE_MUTEX_NAME = L"{4C416227-4A30-4A2F-8F23-8701544DD7D6}";
static constexpr const wchar_t* TOUCH_HELPER_SINGLE_INSTANCE_MUTEX_NAME = L"{BD7A3F98-F4A9-44B6-9C8A-17B8DE00FEC3}";
static constexpr const wchar_t* MAIN_WINDOW_CLASS_NAME = L"Magpie_Main";
static constexpr const wchar_t* TITLE_BAR_WINDOW_CLASS_NAME = L"Magpie_TitleBar";
static constexpr const wchar_t* NOTIFY_ICON_WINDOW_CLASS_NAME = L"Magpie_NotifyIcon";
static constexpr const wchar_t* HOTKEY_WINDOW_CLASS_NAME = L"Magpie_Hotkey";
static constexpr const wchar_t* SCALING_WINDOW_CLASS_NAME = L"Window_Magpie_967EB565-6F73-4E94-AE53-00CC42592A22";
static constexpr const wchar_t* DDF_WINDOW_CLASS_NAME = L"Window_Magpie_C322D752-C866-4630-91F5-32CB242A8930";
static constexpr const wchar_t* TOUCH_HELPER_WINDOW_CLASS_NAME = L"Magpie_TouchHelper";
static constexpr const wchar_t* TOUCH_HELPER_HOLE_WINDOW_CLASS_NAME = L"Magpie_TouchHelperHole";
static constexpr const COLORREF LIGHT_TINT_COLOR = RGB(243, 243, 243);
static constexpr const COLORREF DARK_TINT_COLOR = RGB(32, 32, 32);
static constexpr const wchar_t* TOUCH_HELPER_EXE_NAME = L"TouchHelper.exe";
// TouchHelper 有重要更改则提高版本号
static constexpr uint32_t TOUCH_HELPER_VERSION = 2;
#ifndef NOGDI
static constexpr COLORREF LIGHT_TINT_COLOR = RGB(243, 243, 243);
static constexpr COLORREF DARK_TINT_COLOR = RGB(32, 32, 32);
#endif
static constexpr const char* LOG_PATH = "logs\\magpie.log";
static constexpr const char* REGISTER_TOUCH_HELPER_LOG_PATH = "logs\\register_touch_helper.log";
static constexpr const wchar_t* CONFIG_DIR = L"config\\";
static constexpr const wchar_t* CONFIG_FILENAME = L"config.json";
static constexpr const wchar_t* SOURCES_DIR = L"sources\\";
@ -24,16 +36,17 @@ struct CommonSharedConstants {
#ifndef IDI_APP
// 来自 Magpie\resource.h
static constexpr const UINT IDI_APP = 101;
static constexpr UINT IDI_APP = 101;
#endif
static constexpr const UINT WM_NOTIFY_ICON = WM_USER;
static constexpr const UINT WM_QUIT_MAGPIE = WM_USER + 1;
static constexpr const UINT WM_RESTART_MAGPIE = WM_USER + 2;
static constexpr UINT WM_NOTIFY_ICON = WM_USER;
static constexpr UINT WM_QUIT_MAGPIE = WM_USER + 1;
static constexpr UINT WM_RESTART_MAGPIE = WM_USER + 2;
static constexpr const wchar_t* WM_MAGPIE_SHOWME = L"WM_MAGPIE_SHOWME";
static constexpr const wchar_t* WM_MAGPIE_QUIT = L"WM_MAGPIE_QUIT";
static constexpr const wchar_t* WM_MAGPIE_SCALING_CHANGED = L"MagpieScalingChanged";
static constexpr const wchar_t* WM_MAGPIE_SCALINGCHANGED = L"MagpieScalingChanged";
static constexpr const wchar_t* WM_MAGPIE_TOUCHHELPER = L"MagpieTouchHelper";
static constexpr const wchar_t* APP_RESOURCE_MAP_ID = L"Magpie.App/Resources";
};

View file

@ -15,7 +15,11 @@ bool Logger::Initialize(
_logger->set_level(logLevel);
_logger->set_pattern("%Y-%m-%d %H:%M:%S.%e|%l|%s:%#|%!|%v");
_logger->flush_on(spdlog::level::warn);
#ifdef _DEBUG
spdlog::flush_every(5s);
#else
spdlog::flush_every(30s);
#endif
} catch (const spdlog::spdlog_ex&) {
return false;
}

View file

@ -151,7 +151,7 @@ bool Win32Utils::GetWindowFrameRect(HWND hWnd, RECT& rect) noexcept {
return true;
}
bool Win32Utils::ReadFile(const wchar_t* fileName, std::vector<BYTE>& result) noexcept {
bool Win32Utils::ReadFile(const wchar_t* fileName, std::vector<uint8_t>& result) noexcept {
Logger::Get().Info(StrUtils::Concat("读取文件: ", StrUtils::UTF16ToUTF8(fileName)));
CREATEFILE2_EXTENDED_PARAMETERS extendedParams{

View file

@ -22,7 +22,7 @@ struct Win32Utils {
static bool GetWindowFrameRect(HWND hWnd, RECT& rect) noexcept;
static bool ReadFile(const wchar_t* fileName, std::vector<BYTE>& result) noexcept;
static bool ReadFile(const wchar_t* fileName, std::vector<uint8_t>& result) noexcept;
static bool ReadTextFile(const wchar_t* fileName, std::string& result) noexcept;

View file

@ -0,0 +1,118 @@
// Microsoft Visual C++ generated resource script.
//
#pragma code_page(65001)
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#ifndef APSTUDIO_INVOKED
#include "targetver.h"
#endif
#define APSTUDIO_HIDDEN_SYMBOLS
#include "windows.h"
#undef APSTUDIO_HIDDEN_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// 非特定语言 resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEU)
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 0,0,0,0
PRODUCTVERSION 0,0,0,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "000004b0"
BEGIN
VALUE "FileVersion", "0.0.0.0"
VALUE "InternalName", "TouchHelper.exe"
VALUE "LegalCopyright", "Copyright (C) 2024 Liu Xu"
VALUE "OriginalFilename", "TouchHelper.exe"
VALUE "ProductName", "TouchHelpers"
VALUE "ProductVersion", "0.0.0.0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x0, 1200
END
END
#endif // 非特定语言 resources
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// 非特定语言 resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
BEGIN
"#ifndef APSTUDIO_INVOKED\r\n"
"#include ""targetver.h""\r\n"
"#endif\r\n"
"#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
"#include ""windows.h""\r\n"
"#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
"\0"
END
3 TEXTINCLUDE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
#endif // 非特定语言 resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

View file

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Globals">
<VCProjectVersion>17.0</VCProjectVersion>
<Keyword>Win32Proj</Keyword>
<ProjectGuid>{05b51bb8-08cb-4907-884f-8e2ad6bf6052}</ProjectGuid>
<RootNamespace>TouchHelper</RootNamespace>
<WindowsTargetPlatformVersion>10.0.22621.0</WindowsTargetPlatformVersion>
<OutDir>$(SolutionDir)\bin\$(Platform)\$(Configuration)\</OutDir>
<!-- 不依赖 Shared 项目 -->
<NoShared>true</NoShared>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<Import Project="..\Common.Pre.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\Common.Post.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<ItemDefinitionGroup>
<ClCompile>
<FloatingPointModel>Fast</FloatingPointModel>
<PreprocessorDefinitions>NOGDI;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<AdditionalDependencies>Magnification.lib;%(AdditionalDependencies)</AdditionalDependencies>
<UACUIAccess>true</UACUIAccess>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="pch.h" />
<ClInclude Include="resource.h" />
<ClInclude Include="targetver.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="main.cpp" />
<ClCompile Include="pch.cpp">
<PrecompiledHeader>Create</PrecompiledHeader>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="TouchHelper.rc" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<Manifest Include="app.manifest" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="..\..\packages\Microsoft.Windows.ImplementationLibrary.1.0.240122.1\build\native\Microsoft.Windows.ImplementationLibrary.targets" Condition="Exists('..\..\packages\Microsoft.Windows.ImplementationLibrary.1.0.240122.1\build\native\Microsoft.Windows.ImplementationLibrary.targets')" />
</ImportGroup>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\..\packages\Microsoft.Windows.ImplementationLibrary.1.0.240122.1\build\native\Microsoft.Windows.ImplementationLibrary.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Windows.ImplementationLibrary.1.0.240122.1\build\native\Microsoft.Windows.ImplementationLibrary.targets'))" />
</Target>
</Project>

View file

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Resources">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="resource.h" />
<ClInclude Include="pch.h" />
<ClInclude Include="targetver.h" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="TouchHelper.rc">
<Filter>Resources</Filter>
</ResourceCompile>
</ItemGroup>
<ItemGroup>
<ClCompile Include="main.cpp" />
<ClCompile Include="pch.cpp" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<Natvis Include="$(MSBuildThisFileDirectory)..\..\natvis\wil.natvis" />
</ItemGroup>
<ItemGroup>
<Manifest Include="app.manifest" />
</ItemGroup>
</Project>

View file

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0">
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
</application>
</compatibility>
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<!-- 表示程序可以感知 DPI 缩放。PerMonitorV2 在 Win10 v1703 中引入 -->
<dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2</dpiAwareness>
<!-- 在 Win10 v2004 和更高版本中启用 Segment Heap这可以有效减少内存占用但会稍微降低性能 -->
<heapType xmlns="http://schemas.microsoft.com/SMI/2020/WindowsSettings">SegmentHeap</heapType>
</windowsSettings>
</application>
<!-- 加载新版本 ComCtl32.dll -->
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*" />
</dependentAssembly>
</dependency>
</assembly>

201
src/TouchHelper/main.cpp Normal file
View file

@ -0,0 +1,201 @@
#include "pch.h"
#include <magnification.h>
#include "../Shared/CommonSharedConstants.h"
static UINT WM_MAGPIE_SCALINGCHANGED;
// 用于与主程序交互。wParam 的值:
// 0: Magpie 通知 TouchHelper 退出
// 1: TouchHelper 向缩放窗口报告结果lParam 为 0 表示成功,否则为错误代码
static UINT WM_MAGPIE_TOUCHHELPER;
static HWND hwndCurScaling = NULL;
static void UpdateInputTransform(HWND hwndScaling) noexcept {
if (hwndCurScaling == hwndScaling) {
return;
}
hwndCurScaling = hwndScaling;
if (hwndScaling == NULL) {
RECT ununsed{};
MagSetInputTransform(FALSE, &ununsed, &ununsed);
return;
}
RECT srcTouchRect{
.left = (LONG)(INT_PTR)GetProp(hwndScaling, L"Magpie.SrcTouchLeft"),
.top = (LONG)(INT_PTR)GetProp(hwndScaling, L"Magpie.SrcTouchTop"),
.right = (LONG)(INT_PTR)GetProp(hwndScaling, L"Magpie.SrcTouchRight"),
.bottom = (LONG)(INT_PTR)GetProp(hwndScaling, L"Magpie.SrcTouchBottom")
};
RECT destTouchRect{
.left = (LONG)(INT_PTR)GetProp(hwndScaling, L"Magpie.DestTouchLeft"),
.top = (LONG)(INT_PTR)GetProp(hwndScaling, L"Magpie.DestTouchTop"),
.right = (LONG)(INT_PTR)GetProp(hwndScaling, L"Magpie.DestTouchRight"),
.bottom = (LONG)(INT_PTR)GetProp(hwndScaling, L"Magpie.DestTouchBottom")
};
DWORD errorCode = 0;
if (!MagSetInputTransform(TRUE, &srcTouchRect, &destTouchRect)) {
errorCode = GetLastError();
}
// 报告结果
PostMessage(hwndScaling, WM_MAGPIE_TOUCHHELPER, 1, errorCode);
}
static LRESULT WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) {
if (msg == WM_MAGPIE_SCALINGCHANGED) {
if (wParam == 0) {
// 缩放结束
UpdateInputTransform(NULL);
} else if (wParam == 1) {
// 缩放开始
UpdateInputTransform((HWND)lParam);
}
return 0;
} else if (msg == WM_MAGPIE_TOUCHHELPER) {
if (wParam == 0) {
// 退出
DestroyWindow(hWnd);
}
return 0;
}
switch (msg) {
case WM_CREATE:
{
WM_MAGPIE_SCALINGCHANGED =
RegisterWindowMessage(CommonSharedConstants::WM_MAGPIE_SCALINGCHANGED);
WM_MAGPIE_TOUCHHELPER =
RegisterWindowMessage(CommonSharedConstants::WM_MAGPIE_TOUCHHELPER);
// 防止消息被 UIPI 过滤
ChangeWindowMessageFilterEx(hWnd, WM_MAGPIE_SCALINGCHANGED, MSGFLT_ADD, nullptr);
ChangeWindowMessageFilterEx(hWnd, WM_MAGPIE_TOUCHHELPER, MSGFLT_ADD, nullptr);
break;
}
case WM_DESTROY:
{
PostQuitMessage(0);
break;
}
default:
break;
}
return DefWindowProc(hWnd, msg, wParam, lParam);
}
static wil::unique_mutex_nothrow CheckSingleInstance() noexcept {
wil::unique_mutex_nothrow hSingleInstanceMutex;
bool alreadyExists = false;
if (!hSingleInstanceMutex.try_create(
CommonSharedConstants::TOUCH_HELPER_SINGLE_INSTANCE_MUTEX_NAME,
CREATE_MUTEX_INITIAL_OWNER,
MUTEX_ALL_ACCESS,
nullptr,
&alreadyExists
) || alreadyExists) {
hSingleInstanceMutex.reset();
}
return hSingleInstanceMutex;
}
// 退出前还原触控输入变换
static void CleanBeforeExit() noexcept {
UpdateInputTransform(NULL);
MagUninitialize();
}
int APIENTRY wWinMain(
_In_ HINSTANCE hInstance,
_In_opt_ HINSTANCE /*hPrevInstance*/,
_In_ LPWSTR /*lpCmdLine*/,
_In_ int /*nCmdShow*/
) {
// 确保单例
wil::unique_mutex_nothrow hSingleInstanceMutex = CheckSingleInstance();
if (!hSingleInstanceMutex) {
MessageBox(NULL, L"已有实例", L"消息", MB_OK);
return 0;
}
auto se = hSingleInstanceMutex.ReleaseMutex_scope_exit();
wil::unique_mutex_nothrow hMagpieMutex;
if (!hMagpieMutex.try_create(CommonSharedConstants::SINGLE_INSTANCE_MUTEX_NAME)) {
return 1;
}
if (wil::handle_wait(hMagpieMutex.get(), 0)) {
// Magpie 未启动
hMagpieMutex.ReleaseMutex();
return 0;
}
if (!MagInitialize()) {
return 1;
}
// 创建一个隐藏窗口用于接收广播消息
{
WNDCLASSEXW wcex{
.cbSize = sizeof(wcex),
.lpfnWndProc = WndProc,
.hInstance = hInstance,
.lpszClassName = CommonSharedConstants::TOUCH_HELPER_WINDOW_CLASS_NAME
};
RegisterClassEx(&wcex);
}
wil::unique_hwnd hWnd(CreateWindow(
CommonSharedConstants::TOUCH_HELPER_WINDOW_CLASS_NAME,
nullptr,
WS_OVERLAPPEDWINDOW | WS_POPUP,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
0
));
if (!hWnd) {
return 1;
}
{
// 检查 Magpie 是否正在缩放,注意如果缩放窗口尚未显示视为没有缩放,
// 此时缩放窗口正在初始化,会在完成后广播 WM_MAGPIE_SCALINGCHANGED 消息
HWND hwndScaling = FindWindow(CommonSharedConstants::SCALING_WINDOW_CLASS_NAME, nullptr);
if (hwndScaling && IsWindowVisible(hwndScaling)) {
UpdateInputTransform(hwndScaling);
}
}
MSG msg;
while (true) {
while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) {
if (msg.message == WM_QUIT) {
CleanBeforeExit();
return (int)msg.wParam;
}
DispatchMessage(&msg);
}
// 等待新消息或 Magpie 退出
if (MsgWaitForMultipleObjectsEx(1, hMagpieMutex.addressof(),
INFINITE, QS_ALLINPUT, MWMO_INPUTAVAILABLE) == WAIT_OBJECT_0) {
// Magpie 已退出
CleanBeforeExit();
hMagpieMutex.ReleaseMutex();
return 0;
}
}
}

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.Windows.ImplementationLibrary" version="1.0.240122.1" targetFramework="native" />
</packages>

3
src/TouchHelper/pch.cpp Normal file
View file

@ -0,0 +1,3 @@
#include "pch.h"
// 当使用预编译的头时,需要使用此源文件,编译才能成功。

25
src/TouchHelper/pch.h Normal file
View file

@ -0,0 +1,25 @@
#pragma once
#include "targetver.h"
// Windows 头文件
#include <windows.h>
// C++ 运行时头文件
#include <cstdlib>
#include <vector>
#include <string>
#include <string_view>
#include <cassert>
#include <span>
#include <optional>
// WIL
#include <wil/resource.h>
#include <wil/win32_helpers.h>
#include <wil/filesystem.h>
// wil::string_maker<std::wstring> 需要启用异常
// 应最后包含
#define WIL_ENABLE_EXCEPTIONS
#include <wil/stl.h>
#undef WIL_ENABLE_EXCEPTIONS

View file

@ -0,0 +1,16 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ 生成的包含文件。
// 供 TouchHelper.rc 使用
//
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NO_MFC 1
#define _APS_NEXT_RESOURCE_VALUE 129
#define _APS_NEXT_COMMAND_VALUE 32771
#define _APS_NEXT_CONTROL_VALUE 1000
#define _APS_NEXT_SYMED_VALUE 110
#endif
#endif

View file

@ -0,0 +1,2 @@
#pragma once
#include <SDKDDKVer.h>

View file

@ -9,7 +9,12 @@
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "winres.h"
#ifndef APSTUDIO_INVOKED
#include "targetver.h"
#endif
#define APSTUDIO_HIDDEN_SYMBOLS
#include "windows.h"
#undef APSTUDIO_HIDDEN_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
@ -17,8 +22,8 @@
/////////////////////////////////////////////////////////////////////////////
// 非特定语言 resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEU)
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
/////////////////////////////////////////////////////////////////////////////
//
@ -30,6 +35,52 @@ LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
IDI_UPDATER ICON "Updater.ico"
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 0,0,0,0
PRODUCTVERSION 0,0,0,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "000004b0"
BEGIN
VALUE "FileVersion", "0.0.0.0"
VALUE "InternalName", "Updater.exe"
VALUE "LegalCopyright", "Copyright (C) 2024 Liu Xu"
VALUE "OriginalFilename", "Updater.exe"
VALUE "ProductName", "Magpie"
VALUE "ProductVersion", "0.0.0.0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x0, 1200
END
END
#endif // 非特定语言 resources
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// 非特定语言 resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
@ -60,43 +111,6 @@ END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 0,0,0,0
PRODUCTVERSION 0,0,0,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "000004b0"
BEGIN
VALUE "FileVersion", "0.0.0.0"
VALUE "InternalName", "Updater.exe"
VALUE "LegalCopyright", "Copyright (C) 2023 Liu Xu"
VALUE "OriginalFilename", "Updater.exe"
VALUE "ProductName", "Magpie"
VALUE "ProductVersion", "0.0.0.0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x0, 1200
END
END
#endif // 非特定语言 resources
/////////////////////////////////////////////////////////////////////////////

Some files were not shown because too many files have changed in this diff Show more