mirror of
https://github.com/BeyondDimension/SteamTools.git
synced 2026-10-27 21:43:14 +08:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3781465d70 | ||
|
|
b8a5906184 | ||
|
|
763bbae5a9 | ||
|
|
57a592d472 | ||
|
|
0c39c7eafd | ||
|
|
af7635f972 | ||
|
|
3a6468ad9f | ||
|
|
60b03fe6a8 | ||
|
|
8ed21f5f26 | ||
|
|
fa8c599477 |
@@ -33,9 +33,9 @@ emit_plist() {
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>net.steampp.app</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>2.4.10</string>
|
||||
<string>2.4.11</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>2.4.10.0</string>
|
||||
<string>2.4.11.0</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>10.14</string>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
|
||||
Submodule references/Titanium-Web-Proxy updated: 5b8a891c6c...ba55326ce6
+44
-32
@@ -1,41 +1,53 @@
|
||||
# 前言
|
||||
|
||||
Steam++项目创建于2018年5月8日,不过并不是耗时三年才做出来,之前一直由于软软(软件原作者)的工作原因,并没有多少空闲时间,直到去年中旬软软辞职了,才开始猛肝。
|
||||
|
||||
去年年底发布了Steam++的第一个版本,受到了其乐广大用户的喜爱,并有了高达数百位网友的赞助支持。在此动力下,一直一个人更新维护到今年2月份。之后又找来几位朋友一起全职合作开发,并创立了我们自己的公司来进行运营这一产品。
|
||||
|
||||
在每人每天近16小时的高强度爆肝下,我们使用了最新的技术、最新的框架,将Steam++原先的代码全部重写,重新制作了UI。于是乎,Steam++2.0崭新出炉了。
|
||||
|
||||
Steam++目前处于一个完全开源的状态,所以对于软件报毒可以不用担心安全问题。我们也制作了自己的产品[官网](https://www.steampp.net),大家可以去官网下载到我们的工具。
|
||||
Steam++是完全开源的,请不要在非官方渠道下载软件,对于软件报毒情况确实是误报问题。我们也制作了自己的产品[官网](https://www.steampp.net),大家可以去官网或者开源仓库地址下载。
|
||||
|
||||
# Steam++工具箱
|
||||
|
||||
## 更新内容
|
||||
## 2.4.10更新内容
|
||||
|
||||
### 2.3.0
|
||||
```
|
||||
1. 改进 端口被占用检测进程名
|
||||
2. 修复 部分 Toast 没有正确显示
|
||||
3. 新增 账号注销功能
|
||||
4. 改进 hosts 文件写入无权操作时显示的错误文本
|
||||
5. 新增 快速登录后可绑定手机号
|
||||
6. 新增 解绑快速登录账号
|
||||
7. 新增 隐藏库存游戏
|
||||
8. 新增 游戏功能-无边框窗口化
|
||||
9. 新增 关于-更新日志
|
||||
10. 新增 令牌加密设置,现在新增令牌默认将不启用本机加密
|
||||
11. 修复 非正常退出程序时导致残留进程且无法启动程序
|
||||
12. 改进 不再写入 C:\Users\用户名\AppData\Local 目录
|
||||
13. 修复 文本框中某些符号可能无法正确输入
|
||||
14. 改进 令牌排序上移下移
|
||||
15. 新增 令牌导入导出
|
||||
16. 新增 游戏时长挂机功能
|
||||
17. 新增 Microsoft 账号快速登录与绑定
|
||||
18. 新增 社区加速 hCaptcha 验证码 / EPIC 验证码 / artstation / v2ex
|
||||
19. 修复 社区加速 discord 更新下载
|
||||
### 新增内容
|
||||
1. Linux/macOS 版本中的 CLR 升级至 .NET 6 Preview 7
|
||||
2. Desktop 现已适配 WinUI 3 / Windows 11 / Fluent Design System 样式风格新UI
|
||||
3. 新增 Android 上从图库选择二维码图片导入令牌
|
||||
4. 新增 Android 上文件导入选择二维码图片导入令牌
|
||||
5. 新增 Desktop 上现可刷新头像
|
||||
6. 新增 UI设置-主题色设置
|
||||
7. 新增 UI设置-自定义背景图片设置
|
||||
|
||||
```
|
||||
### 修复问题
|
||||
1. 修复 Desktop 上账号切换功能
|
||||
2. 改进 Desktop 上受保护的成就不在支持勾选
|
||||
3. 修复 Linux 上因字体引发的启动时闪退
|
||||
4. 修复 Android 上扫码导入功能
|
||||
5. 修复 Android 上 Toast 不能正常显示
|
||||
6. 改进 Android 上的令牌导入方式
|
||||
7. 修复 Android 上导入带密码的令牌时不显示密码输入框
|
||||
8. 修复 导入带密码的令牌时密码输入文本框窗口不能正确取消
|
||||
9. 修复 Desktop 上使用火狐浏览器无法进行快速登录
|
||||
10. 修复 Android 8.0 以下启动时闪退
|
||||
11. 修复 Desktop 上部分用户库存游戏已安装游戏无法读取
|
||||
12. 尝试修复 Windows 上托盘菜单有时无法打开窗口
|
||||
13. 改进 Android 上确认交易页面上的显示隐藏逻辑
|
||||
|
||||
### 已知问题
|
||||
- Desktop
|
||||
- macOS
|
||||
- 尚未公证,这会影响 macOS Catalina(版本 10.15)以上
|
||||
- 某些窗口顶部会有两个标题栏
|
||||
- 自动更新不可用
|
||||
- Linux
|
||||
- 托盘不生效,这将影响程序不能正常退出
|
||||
- 窗口弹出位置不正确
|
||||
- 自动更新不可用
|
||||
- Shared
|
||||
- 主题切换需重启软件后生效,且跟随系统暂不可用
|
||||
- Mobile
|
||||
- Android
|
||||
- 本地令牌倒计时存在误差不够精确,可能导致令牌值不一致
|
||||
- 确认交易列表刷新后数据显示不正确
|
||||
- 自动更新暂不可用
|
||||
|
||||
***
|
||||
|
||||
## 工具介绍
|
||||
|
||||
@@ -96,7 +108,7 @@ Steam++目前处于一个完全开源的状态,所以对于软件报毒可以
|
||||
### 6. 更新计划(画饼时间到)
|
||||
我们预计会在6月份将推出本地挂卡、挂时长功能。并且同步推出iOS、安卓端App,用户可以利用手机查看多个账号的令牌,一键确认上架,并且支持手机挂卡。
|
||||
|
||||
#### 并且,以上功能全部免费!
|
||||
#### 并且,以上功能全部免费。
|
||||
|
||||
------
|
||||
|
||||
|
||||
+19
-28
@@ -1,24 +1,14 @@
|
||||
### 新增内容
|
||||
1. Linux/macOS 版本中的 CLR 升级至 .NET 6 Preview 7
|
||||
2. Desktop 现已适配 WinUI 3 / Windows 11 / Fluent Design System 样式风格
|
||||
3. 新增 Android 上从图库选择二维码图片导入令牌
|
||||
4. 新增 Android 上文件导入选择二维码图片导入令牌
|
||||
5. 新增 Desktop 上现可刷新头像
|
||||
1. 部分新增文本的其他语言翻译
|
||||
|
||||
### 修复问题
|
||||
1. 修复 Desktop 上账号切换功能
|
||||
2. 改进 Desktop 上受保护的成就不在支持勾选
|
||||
3. 修复 Linux 上因字体引发的启动时闪退
|
||||
4. 修复 Android 上扫码导入功能
|
||||
5. 修复 Android 上 Toast 不能正常显示
|
||||
6. 改进 Android 上的令牌导入方式
|
||||
7. 修复 Android 上导入带密码的令牌时不显示密码输入框
|
||||
8. 修复 导入带密码的令牌时密码输入文本框窗口不能正确取消
|
||||
9. 修复 Desktop 上使用火狐浏览器无法进行快速登录
|
||||
10. 修复 Android 8.0 以下启动时闪退
|
||||
11. 修复 Desktop 上部分用户库存游戏已安装游戏无法读取
|
||||
12. 尝试修复 Windows 上托盘菜单有时无法打开窗口
|
||||
13. 改进 Android 上确认交易页面上的显示隐藏逻辑
|
||||
1. 修复 Desktop 上因登录或注册后头像引发的无限闪退
|
||||
2. 修复 Windows 上托盘菜单有时无法打开窗口
|
||||
3. 改进 Desktop 上库存游戏右键菜单隐藏游戏项位置
|
||||
4. 移除 Desktop 上菜单栏用户手机号显示
|
||||
5. 修复 Desktop 上库存游戏中磁盘占用 UI 错位
|
||||
6. 修复 Desktop 上快速登录等待中 UI 错位
|
||||
7. 修复一些杂项问题,增强程序稳定性
|
||||
|
||||
### 已知问题
|
||||
- Desktop
|
||||
@@ -29,7 +19,7 @@
|
||||
- Linux
|
||||
- 托盘不生效,这将影响程序不能正常退出
|
||||
- 窗口弹出位置不正确
|
||||
- 某些窗口顶部会有两个标题栏
|
||||
- 窗口顶部会有两个标题栏
|
||||
- 自动更新不可用
|
||||
- Shared
|
||||
- 主题切换需重启软件后生效,且跟随系统暂不可用
|
||||
@@ -74,18 +64,19 @@
|
||||
|
||||
| File | Checksum (SHA256) |
|
||||
| ---- | ---- |
|
||||
| Steam++_win_x64_v2.4.10.7z | 767FEC42DA14A632E92D517E96487F74184F55D6AFB7D95E57747E6AB3F4AC37 |
|
||||
| Steam++_win_x64_v2.4.10.exe | D598A9807F6325D2E07C1FF7CE4ADFC1605501E5115FC94014FEAF88FBCBEA1B |
|
||||
| Steam++_win_x64_v2.4.11.7z | SHA256 |
|
||||
| Steam++_win_x64_v2.4.11.exe | SHA256 |
|
||||
| | |
|
||||
| Steam++_linux_x64_v2.4.10.7z | 691ABC49640E244BF18240A5AE692DADB44E10129262793E3F19BA0D16F43FBE |
|
||||
| Steam++_linux_arm64_v2.4.10.7z | 71A0A924661091859529471D715E8F79B914BDDB79A3AEA397FE49382E54DEB2 |
|
||||
| Steam++_linux_arm_v2.4.10.7z | 4038B1A73EDA7FB27A759BB814C3A74A3C52F1BDBE777341727B26F0E123507F |
|
||||
| Steam++_linux_x64_v2.4.11.7z | SHA256 |
|
||||
| Steam++_linux_arm64_v2.4.11.7z | SHA256 |
|
||||
| Steam++_linux_arm_v2.4.11.7z | SHA256 |
|
||||
| | |
|
||||
| Steam++_macos_x64_v2.4.10.app.zip | 660D729FDCEE55C36E27FFD9A65B930BB87BFCF7BA3EEA89FA25586FF4A1952B |
|
||||
| Steam++_macos_x64_v2.4.10.7z | 7B5CC77F45596FE83157E72A2F2EA4B125B0A9A350B106DDE893E1BC49B3EF79 |
|
||||
| Steam++_macos_x64_v2.4.11.dmg | SHA256 |
|
||||
| Steam++_macos_x64_v2.4.11.app.zip | SHA256 |
|
||||
| Steam++_macos_x64_v2.4.11.7z | SHA256 |
|
||||
| | |
|
||||
| Steam++_android_arm64_v8a_v2.4.10.apk | 432046DF7C9BBA5CCBD8AC476CE31C9A8022C3F46508F8A32E7D42081A29DDA3 |
|
||||
| Steam++_android_armeabi_v7a_v2.4.10.apk | 25584531B040E2B50EB0855D1E3242978E37EF554019241E6C4FDB25E7B8533D |
|
||||
| Steam++_android_arm64_v8a_v2.4.11.apk | SHA256 |
|
||||
| Steam++_android_armeabi_v7a_v2.4.11.apk | SHA256 |
|
||||
|
||||
<!-- ***
|
||||
|
||||
|
||||
@@ -256,13 +256,14 @@ namespace System
|
||||
|
||||
static FileStream OpenReadCore(string filePath) => new(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite | FileShare.Delete);
|
||||
|
||||
[Obsolete("use TryOpenRead")]
|
||||
[return: NotNullIfNotNull("filePath")]
|
||||
public static FileStream? OpenRead(string? filePath)
|
||||
{
|
||||
if (filePath == null) return null;
|
||||
var fileStream = OpenReadCore(filePath);
|
||||
return fileStream;
|
||||
//var fileStream = OpenReadCore(filePath);
|
||||
TryOpenRead(filePath, out var stream, out var ex);
|
||||
if (ex != null)
|
||||
Log.Error(nameof(OpenRead), ex, "OpenRead Error");
|
||||
return stream;
|
||||
}
|
||||
|
||||
#if !NET35
|
||||
|
||||
@@ -12,7 +12,7 @@ namespace System.Properties
|
||||
/// <item> macOS:\packaging\build-osx-app.sh <CFBundleVersion> <CFBundleShortVersionString> </item>
|
||||
/// </list>
|
||||
/// </summary>
|
||||
public const string Version = "2.4.10";
|
||||
public const string Version = "2.4.11";
|
||||
|
||||
//public const string InfoVersion = Version + "-beta";
|
||||
}
|
||||
|
||||
@@ -324,6 +324,8 @@ namespace System.Application.UI
|
||||
#endif
|
||||
MainWindow;
|
||||
|
||||
IWindowService.Instance.MainWindow.Initialize();
|
||||
|
||||
desktop.Startup += Desktop_Startup;
|
||||
desktop.Exit += ApplicationLifetime_Exit;
|
||||
desktop.ShutdownMode =
|
||||
|
||||
@@ -12,10 +12,9 @@ namespace System.Application.Converters
|
||||
if (value == null)
|
||||
return null;
|
||||
int width = 0;
|
||||
if (parameter is string para)
|
||||
if (parameter is int w)
|
||||
{
|
||||
if (int.TryParse(para, out int w))
|
||||
width = w;
|
||||
width = w;
|
||||
}
|
||||
|
||||
if (value is string rawUri)
|
||||
|
||||
@@ -45,8 +45,10 @@ namespace System.Application.Converters
|
||||
}
|
||||
}
|
||||
|
||||
protected static Bitmap GetBitmap(ImageClipStream ics, int width = 0)
|
||||
protected static Bitmap? GetBitmap(ImageClipStream ics, int width = 0)
|
||||
{
|
||||
if (ics.Stream == null)
|
||||
return null;
|
||||
TryReset(ics.Stream);
|
||||
using var ms = new MemoryStream();
|
||||
ics.Stream.CopyTo(ms);
|
||||
@@ -90,7 +92,10 @@ namespace System.Application.Converters
|
||||
|
||||
protected static Bitmap GetDecodeBitmap(string s, int width)
|
||||
{
|
||||
return GetDecodeBitmap(IOPath.OpenRead(s), width);
|
||||
if (IOPath.TryOpenRead(s, out var stream, out var ex))
|
||||
return GetDecodeBitmap(stream, width);
|
||||
else
|
||||
return null;
|
||||
}
|
||||
|
||||
protected static Stream OpenAssets(Uri uri)
|
||||
|
||||
@@ -253,11 +253,11 @@
|
||||
Foreground="{DynamicResource HighlightForegroundBrushKey}"
|
||||
FontSize="14"
|
||||
VerticalAlignment="Center"/>
|
||||
<TextBlock Text="{ReflectionBinding Path=PhoneNumber,Mode=OneWay,Source={x:Static service:UserService.Current}}"
|
||||
<!--<TextBlock Text="{ReflectionBinding Path=PhoneNumber,Mode=OneWay,Source={x:Static service:UserService.Current}}"
|
||||
IsVisible="{ReflectionBinding Path=User.HasPhoneNumber,Mode=OneWay,Source={x:Static service:UserService.Current}}"
|
||||
Foreground="{DynamicResource InactiveForegroundBrushKey}"
|
||||
FontSize="12"
|
||||
VerticalAlignment="Center"/>
|
||||
VerticalAlignment="Center"/>-->
|
||||
</StackPanel>
|
||||
|
||||
</DockPanel>
|
||||
|
||||
@@ -70,8 +70,8 @@
|
||||
Header="筛选"
|
||||
ExpandDirection="Down"
|
||||
Margin="20 0 20 10">-->
|
||||
<Border DockPanel.Dock="Top"
|
||||
Margin="{StaticResource ScrollMargin}"
|
||||
<Border DockPanel.Dock="Top"
|
||||
Margin="{StaticResource ScrollMargin}"
|
||||
Padding="10"
|
||||
Classes="paper"
|
||||
Background="{DynamicResource ThemeBrushKey}">
|
||||
@@ -189,7 +189,7 @@
|
||||
ToolTip.Tip="{ReflectionBinding Path=Res.GameList_IdleGamesManger,Mode=OneWay,Source={x:Static resx:R.Current}}">
|
||||
<PathIcon Data="{StaticResource TopSpeedDrawing}" />
|
||||
</Button>
|
||||
|
||||
|
||||
<Menu Classes="BindMenu">
|
||||
<MenuItem Items="{Binding MenuItems}"
|
||||
Classes="BindItem"
|
||||
@@ -287,14 +287,6 @@
|
||||
<PathIcon Data="{StaticResource TrophyDrawing}" Width="16"></PathIcon>
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
<MenuItem
|
||||
Header="{ReflectionBinding Path=Res.GameList_HideTheGame,Mode=OneWay,Source={x:Static resx:R.Current}}"
|
||||
Command="{ReflectionBinding #u.DataContext.AddHideAppList}"
|
||||
CommandParameter="{Binding}" >
|
||||
<MenuItem.Icon>
|
||||
<PathIcon Data="{StaticResource EyeHideDrawing}" Width="14"></PathIcon>
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
<MenuItem
|
||||
Header="{ReflectionBinding Path=Res.GameList_AddAfkGameList,Mode=OneWay,Source={x:Static resx:R.Current}}"
|
||||
Command="{ReflectionBinding #u.DataContext.AddAFKAppList}"
|
||||
@@ -303,11 +295,6 @@
|
||||
<PathIcon Data="{StaticResource TopSpeedDrawing}" Width="14"></PathIcon>
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
|
||||
<!--<MenuItem
|
||||
Header="{ReflectionBinding Path=Res.GameList_SetCustomImage,Mode=OneWay,Source={x:Static resx:R.Current}}"
|
||||
Command="{ReflectionBinding #u.DataContext.DeleteUserButton_Click}"
|
||||
CommandParameter="{Binding}" />-->
|
||||
<MenuItem
|
||||
Header="{ReflectionBinding Path=Res.GameList_OpenFolder,Mode=OneWay,Source={x:Static resx:R.Current}}"
|
||||
Command="{ReflectionBinding #u.DataContext.OpenFolder}"
|
||||
@@ -317,6 +304,10 @@
|
||||
<PathIcon Data="{StaticResource FolderOpenDrawing}" Width="14"></PathIcon>
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
<!--<MenuItem
|
||||
Header="{ReflectionBinding Path=Res.GameList_SetCustomImage,Mode=OneWay,Source={x:Static resx:R.Current}}"
|
||||
Command="{ReflectionBinding #u.DataContext.DeleteUserButton_Click}"
|
||||
CommandParameter="{Binding}" />-->
|
||||
<MenuItem Header="-"></MenuItem>
|
||||
<MenuItem
|
||||
Header="{ReflectionBinding Path=Res.GameList_OpenStoreUrl,Mode=OneWay,Source={x:Static resx:R.Current}}"
|
||||
@@ -342,6 +333,16 @@
|
||||
<PathIcon Data="{StaticResource GlobeSearchDrawing}" Width="14"></PathIcon>
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
|
||||
<MenuItem Header="-"/>
|
||||
<MenuItem
|
||||
Header="{ReflectionBinding Path=Res.GameList_HideTheGame,Mode=OneWay,Source={x:Static resx:R.Current}}"
|
||||
Command="{ReflectionBinding #u.DataContext.AddHideAppList}"
|
||||
CommandParameter="{Binding}" >
|
||||
<MenuItem.Icon>
|
||||
<PathIcon Data="{StaticResource EyeHideDrawing}" Width="14"></PathIcon>
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
</MenuFlyout>
|
||||
</FlyoutBase.AttachedFlyout>
|
||||
<Panel x:Name="app" Width="{ReflectionBinding $parent.Width}">
|
||||
@@ -375,8 +376,7 @@
|
||||
Background="#3D4450"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Bottom">
|
||||
<WrapPanel Margin="10 3"
|
||||
Orientation="Horizontal"
|
||||
<DockPanel Margin="10 3"
|
||||
HorizontalAlignment="Center">
|
||||
<TextBlock Text="{Binding InstalledDrive}"
|
||||
Foreground="#FFFFFFFF"
|
||||
@@ -384,12 +384,12 @@
|
||||
VerticalAlignment="Center"
|
||||
Margin="0 0 5 0"
|
||||
FontSize="11"/>
|
||||
<TextBlock Text="{Binding SizeOnDisk,Converter={StaticResource SizeConverter}}"
|
||||
<controls:ScrollingTextBlock Text="{Binding SizeOnDisk,Converter={StaticResource SizeConverter}}"
|
||||
Foreground="#FFFFFFFF"
|
||||
TextWrapping="Wrap"
|
||||
VerticalAlignment="Center"
|
||||
FontSize="11"/>
|
||||
</WrapPanel>
|
||||
</DockPanel>
|
||||
</Border>
|
||||
</Panel>
|
||||
</Border>
|
||||
|
||||
+2
-2
@@ -204,7 +204,7 @@
|
||||
Height="100">
|
||||
</controls:ProgressRing>
|
||||
|
||||
<WrapPanel HorizontalAlignment="Center" Margin="0 0 0 40">
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Margin="0 0 0 40">
|
||||
<Button Classes="plain"
|
||||
Margin="0 0 25 0"
|
||||
HorizontalContentAlignment="Center"
|
||||
@@ -217,7 +217,7 @@
|
||||
Content="{ReflectionBinding Path=Res.Retry,Mode=OneWay,Source={x:Static resx:R.Current}}"
|
||||
Command="{Binding ChooseChannel}"
|
||||
CommandParameter="{Binding CurrentSelectChannel}"/>
|
||||
</WrapPanel>
|
||||
</StackPanel>
|
||||
<WrapPanel HorizontalAlignment="Center" Margin="20 0 0 20">
|
||||
<Button Classes="plain"
|
||||
Margin="0 0 25 0"
|
||||
|
||||
+2
-2
@@ -29,7 +29,7 @@
|
||||
<MenuItem Width="50" Command="{ReflectionBinding About_Click}"
|
||||
ToolTip.Tip="{ReflectionBinding Path=Res.Helper,Mode=OneWay,Source={x:Static resx:R.Current}}">
|
||||
<MenuItem.Header>
|
||||
<ui:SymbolIcon Symbol="Help" FontSize="16"/>
|
||||
<ui:SymbolIcon Symbol="Help" FontSize="18"/>
|
||||
</MenuItem.Header>
|
||||
</MenuItem>
|
||||
<MenuItem Width="50" Command="{ReflectionBinding Refresh_Click}"
|
||||
@@ -47,7 +47,7 @@
|
||||
</Menu>
|
||||
|
||||
<TextBlock IsVisible="{CompiledBinding IsAuthorizedListEmpty}"
|
||||
Text="{ReflectionBinding Path=Res.GameList_AddHideAppEmpty,Mode=OneWay,Source={x:Static resx:R.Current}}"
|
||||
Text="{ReflectionBinding Path=Res.SteamAccountPage_ShareEmpt,Mode=OneWay,Source={x:Static resx:R.Current}}"
|
||||
TextWrapping="WrapWithOverflow"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Center"/>
|
||||
|
||||
@@ -86,6 +86,9 @@
|
||||
<TextBlock FontSize="12"
|
||||
TextWrapping="Wrap"
|
||||
Text="{ReflectionBinding Path=Res.UploadYourAvatarDesc,Mode=OneWay,Source={x:Static resx:R.Current}}"/>
|
||||
<TextBlock FontSize="12"
|
||||
TextWrapping="Wrap"
|
||||
Text="{ReflectionBinding Path=Res.UnderConstruction,Mode=OneWay,Source={x:Static resx:R.Current}}"/>
|
||||
</StackPanel>
|
||||
</DockPanel>
|
||||
<Grid>
|
||||
@@ -221,7 +224,7 @@
|
||||
Height="100">
|
||||
</controls:ProgressRing>
|
||||
|
||||
<WrapPanel HorizontalAlignment="Center" Margin="0 0 0 40">
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Margin="0 0 0 40">
|
||||
<Button Classes="plain"
|
||||
Margin="0 0 25 0"
|
||||
HorizontalContentAlignment="Center"
|
||||
@@ -233,7 +236,7 @@
|
||||
Content="{ReflectionBinding Path=Res.Retry,Mode=OneWay,Source={x:Static resx:R.Current}}"
|
||||
Command="{Binding OnBindFastLoginClick}"
|
||||
CommandParameter="{Binding CurrentSelectChannel}"/>
|
||||
</WrapPanel>
|
||||
</StackPanel>
|
||||
<WrapPanel HorizontalAlignment="Center" Margin="20 0 0 20">
|
||||
<Button Classes="plain"
|
||||
Margin="0 0 25 0"
|
||||
|
||||
+31
-1
@@ -49,9 +49,39 @@ namespace System.Application.Services.Implementation
|
||||
}
|
||||
|
||||
public string GetLastSteamLoginUserName() => string.Empty;
|
||||
|
||||
public string? GetRegistryVdfPath()
|
||||
{
|
||||
var value = string.Format(
|
||||
"{0}home{0}{1}{0}.steam{0}registry.vdf",
|
||||
Path.DirectorySeparatorChar,
|
||||
Environment.UserName);
|
||||
return value;
|
||||
}
|
||||
public void SetCurrentUser(string userName)
|
||||
{
|
||||
try
|
||||
{
|
||||
var registryVdfPath = GetRegistryVdfPath();
|
||||
if (!string.IsNullOrWhiteSpace(registryVdfPath) && File.Exists(registryVdfPath))
|
||||
{
|
||||
dynamic v = VdfHelper.Read(registryVdfPath);
|
||||
var autoLoginUser = v.Value.HKCU.Software.Valve.Steam.AutoLoginUser;
|
||||
if (autoLoginUser != null)
|
||||
{
|
||||
var oldStr = $"\t\t\t\t\t\"AutoLoginUser\"\t\t\"{autoLoginUser}\"\n";
|
||||
var newStr = $"\t\t\t\t\t\"AutoLoginUser\"\t\t\"{userName}\"\n";
|
||||
VdfHelper.UpdateValueByReplaceNoPattern(registryVdfPath, oldStr, newStr);
|
||||
}
|
||||
else
|
||||
{
|
||||
Log.Error("SetCurrentUser", "UpdateAuthorizedAutoLoginUser Fail(0). AutoLoginUser IsNull");
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Log.Error("SetCurrentUser", e, "UpdateAuthorizedAutoLoginUser Fail(0).");
|
||||
}
|
||||
}
|
||||
|
||||
static string GetMachineSecretKey()
|
||||
|
||||
@@ -214,10 +214,38 @@ namespace System.Application.Services.Implementation
|
||||
}
|
||||
|
||||
public string GetLastSteamLoginUserName() => string.Empty;
|
||||
|
||||
public string? GetRegistryVdfPath() {
|
||||
var value = string.Format(
|
||||
"{0}Users{0}{1}{0}Library{0}Application Support{0}Steam{0}registry.vdf",
|
||||
Path.DirectorySeparatorChar,
|
||||
Environment.UserName);
|
||||
return value;
|
||||
}
|
||||
public void SetCurrentUser(string userName)
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
var registryVdfPath = GetRegistryVdfPath();
|
||||
if (!string.IsNullOrWhiteSpace(registryVdfPath) && File.Exists(registryVdfPath))
|
||||
{
|
||||
dynamic v = VdfHelper.Read(registryVdfPath);
|
||||
var autoLoginUser = v.Value.HKCU.Software.Valve.Steam.AutoLoginUser;
|
||||
if (autoLoginUser != null)
|
||||
{
|
||||
var oldStr = $"\t\t\t\t\t\"AutoLoginUser\"\t\t\"{autoLoginUser}\"\n";
|
||||
var newStr = $"\t\t\t\t\t\"AutoLoginUser\"\t\t\"{userName}\"\n";
|
||||
VdfHelper.UpdateValueByReplaceNoPattern(registryVdfPath, oldStr, newStr);
|
||||
}
|
||||
else
|
||||
{
|
||||
Log.Error("SetCurrentUser","UpdateAuthorizedAutoLoginUser Fail(0). AutoLoginUser IsNull");
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Log.Error("SetCurrentUser", e, "UpdateAuthorizedAutoLoginUser Fail(0).");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -20,7 +20,7 @@ namespace System.Application.Services.Implementation
|
||||
{
|
||||
const string TAG = "WindowsDesktopPlatformS";
|
||||
const string SteamRegistryPath = @"SOFTWARE\Valve\Steam";
|
||||
|
||||
public string? GetRegistryVdfPath() { return null; }
|
||||
public string GetCommandLineArgs(Process process)
|
||||
{
|
||||
try
|
||||
|
||||
@@ -305,13 +305,16 @@ namespace System.Application.UI
|
||||
/// <see cref="IntPtr.Zero"/>.</param>
|
||||
public void ShowBalloonTip(string title, string message, NIIF flags, IntPtr balloonIconHandle)
|
||||
{
|
||||
iconData.szInfo = message ?? string.Empty;
|
||||
iconData.szInfoTitle = title ?? string.Empty;
|
||||
iconData.uFlags = NIF.INFO | NIF.ICON;
|
||||
//iconData.CustomBalloonIconHandle = balloonIconHandle;
|
||||
iconData.dwInfoFlags = flags;
|
||||
if (iconData != null)
|
||||
{
|
||||
iconData.szInfo = message ?? string.Empty;
|
||||
iconData.szInfoTitle = title ?? string.Empty;
|
||||
iconData.uFlags |= NIF.INFO;
|
||||
//iconData.CustomBalloonIconHandle = balloonIconHandle;
|
||||
iconData.dwInfoFlags = flags;
|
||||
|
||||
var result = UnmanagedMethods.Shell_NotifyIcon(UnmanagedMethods.NIM.MODIFY, iconData);
|
||||
var result = UnmanagedMethods.Shell_NotifyIcon(UnmanagedMethods.NIM.MODIFY, iconData);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -319,9 +322,12 @@ namespace System.Application.UI
|
||||
/// </summary>
|
||||
public void HideBalloonTip()
|
||||
{
|
||||
// reset balloon by just setting the info to an empty string
|
||||
iconData.szInfo = iconData.szInfoTitle = string.Empty;
|
||||
UnmanagedMethods.Shell_NotifyIcon(UnmanagedMethods.NIM.MODIFY, iconData);
|
||||
if (iconData != null)
|
||||
{
|
||||
// reset balloon by just setting the info to an empty string
|
||||
iconData.szInfo = iconData.szInfoTitle = string.Empty;
|
||||
UnmanagedMethods.Shell_NotifyIcon(UnmanagedMethods.NIM.MODIFY, iconData);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -329,10 +335,10 @@ namespace System.Application.UI
|
||||
/// </summary>
|
||||
public void WndProc(uint msg, IntPtr wParam, IntPtr lParam)
|
||||
{
|
||||
//Log.Debug(TAG, "WndProc: MSG={0}, wParam={1}, lParam={2}",
|
||||
// ((UnmanagedMethods.CustomWindowsMessage)msg).ToString(),
|
||||
// ((UnmanagedMethods.WindowsMessage)wParam.ToInt32()).ToString(),
|
||||
// ((UnmanagedMethods.WindowsMessage)lParam.ToInt32()).ToString());
|
||||
System.Diagnostics.Debug.WriteLine(string.Format("WndProc: MSG={0}, wParam={1}, lParam={2}",
|
||||
((UnmanagedMethods.CustomWindowsMessage)msg).ToString(),
|
||||
((UnmanagedMethods.WindowsMessage)wParam.ToInt32()).ToString(),
|
||||
((UnmanagedMethods.WindowsMessage)lParam.ToInt32()).ToString()));
|
||||
|
||||
// We only care about tray icon messages
|
||||
if (msg != (uint)UnmanagedMethods.CustomWindowsMessage.WM_TRAYMOUSE)
|
||||
|
||||
@@ -5,12 +5,12 @@ namespace System.Application.Models
|
||||
{
|
||||
public class ImageClipStream : IDisposable
|
||||
{
|
||||
public ImageClipStream(Stream stream)
|
||||
public ImageClipStream(Stream? stream)
|
||||
{
|
||||
Stream = stream;
|
||||
}
|
||||
|
||||
public Stream Stream { get; set; }
|
||||
public Stream? Stream { get; set; }
|
||||
|
||||
public float Top { get; set; }
|
||||
|
||||
|
||||
@@ -167,6 +167,7 @@ namespace System.Application.Services
|
||||
|
||||
/// <inheritdoc cref="ISteamService.SteamProgramPath"/>
|
||||
string? GetSteamProgramPath();
|
||||
string? GetRegistryVdfPath();
|
||||
|
||||
/// <inheritdoc cref="ISteamService.GetLastLoginUserName"/>
|
||||
string GetLastSteamLoginUserName();
|
||||
|
||||
@@ -90,8 +90,7 @@ namespace System.Application.Services
|
||||
|
||||
bool UpdateAppListJson(List<SteamApp> apps, string filePath);
|
||||
|
||||
bool UpdateAppListJson(string appsJsonStr, string filePath);
|
||||
bool UpdateRegistryVdfPath(string name);
|
||||
bool UpdateAppListJson(string appsJsonStr, string filePath);
|
||||
void DeleteLocalUserData(SteamUser user, bool IsDeleteUserData = false);
|
||||
|
||||
void UpdateLocalUserData(SteamUser user);
|
||||
|
||||
@@ -37,13 +37,13 @@ namespace System.Application.Services.Implementation
|
||||
/// </summary>
|
||||
readonly string? UserVdfPath;
|
||||
readonly string? ConfigVdfPath;
|
||||
readonly string? RegistryVdfPath;
|
||||
readonly string? AppInfoPath;
|
||||
readonly string? LibrarycacheDirPath;
|
||||
const string UserDataDirectory = "userdata";
|
||||
readonly IDesktopPlatformService platformService;
|
||||
readonly string? mSteamDirPath;
|
||||
readonly string? mSteamProgramPath;
|
||||
readonly string? mRegistryVdfPath;
|
||||
readonly string[] steamProcess = new[] { "steam", "steam_osx", "steamservice", "steamwebhelper" };
|
||||
readonly Lazy<IHttpService> _http = new(() => DI.Get<IHttpService>());
|
||||
IHttpService Http => _http.Value;
|
||||
@@ -56,7 +56,7 @@ namespace System.Application.Services.Implementation
|
||||
UserVdfPath = SteamDirPath == null ? null : Path.Combine(SteamDirPath, "config", "loginusers.vdf");
|
||||
AppInfoPath = SteamDirPath == null ? null : Path.Combine(SteamDirPath, "appcache", "appinfo.vdf");
|
||||
LibrarycacheDirPath = SteamDirPath == null ? null : Path.Combine(SteamDirPath, "appcache", "librarycache");
|
||||
RegistryVdfPath = SteamDirPath == null ? null : Path.Combine(SteamDirPath, "registry.vdf");
|
||||
mRegistryVdfPath = platformService.GetRegistryVdfPath();// SteamDirPath == null ? null : Path.Combine(SteamDirPath, "registry.vdf");
|
||||
//RegistryVdfPath = SteamDirPath == null ? null : Path.Combine(SteamDirPath, "registry.vdf");
|
||||
ConfigVdfPath = SteamDirPath == null ? null : Path.Combine(SteamDirPath, "config", "config.vdf");
|
||||
|
||||
@@ -67,6 +67,7 @@ namespace System.Application.Services.Implementation
|
||||
}
|
||||
|
||||
public string? SteamDirPath => mSteamDirPath;
|
||||
public string? RegistryVdfPath => mRegistryVdfPath;
|
||||
|
||||
public string? SteamProgramPath => mSteamProgramPath;
|
||||
|
||||
@@ -131,7 +132,7 @@ namespace System.Application.Services.Implementation
|
||||
{
|
||||
if (!string.IsNullOrEmpty(SteamProgramPath))
|
||||
{
|
||||
DI.Get<IDesktopPlatformService>().OpenProcess(SteamProgramPath, arguments, true);
|
||||
platformService.OpenProcess(SteamProgramPath, arguments, true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -190,34 +191,7 @@ namespace System.Application.Services.Implementation
|
||||
}
|
||||
return users;
|
||||
}
|
||||
public bool UpdateRegistryVdfPath(string name)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(RegistryVdfPath) && File.Exists(RegistryVdfPath))
|
||||
{
|
||||
dynamic v = VdfHelper.Read(RegistryVdfPath);
|
||||
var autoLoginUser = v.Value.HKCU.Software.Valve.Steam.AutoLoginUser;
|
||||
if (autoLoginUser != null)
|
||||
{
|
||||
var oldStr = $"\t\t\t\t\t\"AutoLoginUser\"\t\t\"{autoLoginUser}\"\n";
|
||||
var newStr = $"\t\t\t\t\t\"AutoLoginUser\"\t\t\"{name}\"\n";
|
||||
VdfHelper.UpdateValueByReplaceNoPattern(RegistryVdfPath, oldStr, newStr);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Log.Error(TAG, e, "UpdateAuthorizedDeviceList Fail(0).");
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool UpdateAuthorizedDeviceList(IEnumerable<AuthorizedDevice> model)
|
||||
{
|
||||
var authorizeds = new List<AuthorizedDevice>();
|
||||
@@ -433,7 +407,12 @@ namespace System.Application.Services.Implementation
|
||||
{
|
||||
if (string.IsNullOrEmpty(AppInfoPath) && !File.Exists(AppInfoPath))
|
||||
return apps;
|
||||
using (BinaryReader binaryReader = new(IOPath.OpenRead(AppInfoPath)))
|
||||
using var stream = IOPath.OpenRead(AppInfoPath);
|
||||
if (stream == null)
|
||||
{
|
||||
return apps;
|
||||
}
|
||||
using (BinaryReader binaryReader = new(stream))
|
||||
{
|
||||
uint num = binaryReader.ReadUInt32();
|
||||
if (num != MagicNumber)
|
||||
|
||||
@@ -218,12 +218,30 @@ namespace System.Application.Services
|
||||
#if !__MOBILE__
|
||||
CurrentSteamUser = await ISteamworksWebApiService.Instance.GetUserInfo(User.SteamAccountId.Value);
|
||||
CurrentSteamUser.AvatarStream = IHttpService.Instance.GetImageAsync(CurrentSteamUser.AvatarFull, ImageChannelType.SteamAvatars);
|
||||
AvaterPath = CircleImageStream.Convert(await CurrentSteamUser.AvatarStream) ?? DefaultAvaterPath;
|
||||
var ava = CircleImageStream.Convert(await CurrentSteamUser.AvatarStream);
|
||||
AvaterPath = ava ?? DefaultAvaterPath;
|
||||
return;
|
||||
#else
|
||||
AvaterPath = DefaultAvaterPath;
|
||||
#endif
|
||||
}
|
||||
else if (User?.AvatarUrl.Any_Nullable() ?? false)
|
||||
{
|
||||
var order = new[] {
|
||||
FastLoginChannel.QQ,
|
||||
FastLoginChannel.Microsoft,
|
||||
FastLoginChannel.Apple,
|
||||
FastLoginChannel.Steam,
|
||||
};
|
||||
foreach (var item in order)
|
||||
{
|
||||
if (User.AvatarUrl!.ContainsKey(item))
|
||||
{
|
||||
AvaterPath = User.AvatarUrl[item];
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
AvaterPath = DefaultAvaterPath;
|
||||
|
||||
@@ -3574,6 +3574,15 @@ namespace System.Application.UI.Resx {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似 家庭共享库为空。 的本地化字符串。
|
||||
/// </summary>
|
||||
public static string SteamAccountPage_ShareEmpt {
|
||||
get {
|
||||
return ResourceManager.GetString("SteamAccountPage_ShareEmpt", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似 软件 的本地化字符串。
|
||||
/// </summary>
|
||||
|
||||
@@ -1985,4 +1985,76 @@
|
||||
<value>retry</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="RefreshAvatar" xml:space="preserve">
|
||||
<value>Refresh the avatar</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="AsyncSteamAvatar" xml:space="preserve">
|
||||
<value>Synchronize steam avatars</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="AsyncSteamAvatarDesc" xml:space="preserve">
|
||||
<value>After binding a Steam account, you can manually sync and refresh your Steam account profile picture.</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Settings_ThemeAccent" xml:space="preserve">
|
||||
<value>Theme color</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Settings_UI_Custom" xml:space="preserve">
|
||||
<value>Customization</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Settings_UI_EnableFilletUI" xml:space="preserve">
|
||||
<value>Enable the fillet interface</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="User_UnLogin" xml:space="preserve">
|
||||
<value>Not signed in</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="ScanQRCode" xml:space="preserve">
|
||||
<value>Scan QR codes</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="SelectAll" xml:space="preserve">
|
||||
<value>All selected</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Helper" xml:space="preserve">
|
||||
<value>Help</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Settings_UI_CustomBackgroundImage" xml:space="preserve">
|
||||
<value>Customize the background picture</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Reset" xml:space="preserve">
|
||||
<value>reset</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Settings_UI_SelectImage" xml:space="preserve">
|
||||
<value>Select the picture</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Login_ManualLogin" xml:space="preserve">
|
||||
<value>Sign in manually</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="LoginInputManualLoginToken" xml:space="preserve">
|
||||
<value>Please paste the contents of the web page copy.</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Login_ManualLoginEmpt" xml:space="preserve">
|
||||
<value>The input cannot be empty.</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Login_WebSocketOnMessage" xml:space="preserve">
|
||||
<value>Data decryption failed, make sure the data was retried correctly.</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="SteamAccountPage_ShareEmpt" xml:space="preserve">
|
||||
<value>The home share library is empty.</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -1986,4 +1986,76 @@
|
||||
<value>reintentar</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="RefreshAvatar" xml:space="preserve">
|
||||
<value>Actualizar el avatar</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="AsyncSteamAvatar" xml:space="preserve">
|
||||
<value>Sincronizar avatares de vapor</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="AsyncSteamAvatarDesc" xml:space="preserve">
|
||||
<value>Después de enlazar una cuenta de Steam, puedes sincronizar y actualizar manualmente la imagen de perfil de tu cuenta de Steam.</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Settings_ThemeAccent" xml:space="preserve">
|
||||
<value>Color del tema</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Settings_UI_Custom" xml:space="preserve">
|
||||
<value>Personalización</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Settings_UI_EnableFilletUI" xml:space="preserve">
|
||||
<value>Habilitar la interfaz de filete</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="User_UnLogin" xml:space="preserve">
|
||||
<value>No ha iniciado sesión</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="ScanQRCode" xml:space="preserve">
|
||||
<value>Escanear códigos QR</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="SelectAll" xml:space="preserve">
|
||||
<value>Todos los seleccionados</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Helper" xml:space="preserve">
|
||||
<value>Ayuda</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Settings_UI_CustomBackgroundImage" xml:space="preserve">
|
||||
<value>Personalizar la imagen de fondo</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Reset" xml:space="preserve">
|
||||
<value>restablecimiento</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Settings_UI_SelectImage" xml:space="preserve">
|
||||
<value>Seleccione la imagen</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Login_ManualLogin" xml:space="preserve">
|
||||
<value>Iniciar sesión manualmente</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="LoginInputManualLoginToken" xml:space="preserve">
|
||||
<value>Por favor, pegue el contenido de la copia de la página web.</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Login_ManualLoginEmpt" xml:space="preserve">
|
||||
<value>La entrada no puede estar vacía.</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Login_WebSocketOnMessage" xml:space="preserve">
|
||||
<value>Error de descifrado de datos, asegúrese de que los datos se reintentó correctamente.</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="SteamAccountPage_ShareEmpt" xml:space="preserve">
|
||||
<value>La biblioteca de recursos compartidos principal está vacía.</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -1986,4 +1986,76 @@ Sicuro di voler continuare?</value>
|
||||
<value>ripetere</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="RefreshAvatar" xml:space="preserve">
|
||||
<value>Aggiorna l'avatar</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="AsyncSteamAvatar" xml:space="preserve">
|
||||
<value>Sincronizzare avatar di vapore</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="AsyncSteamAvatarDesc" xml:space="preserve">
|
||||
<value>Dopo aver rilegato un account Steam, puoi sincronizzare e aggiornare manualmente l'immagine del profilo del tuo account Steam.</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Settings_ThemeAccent" xml:space="preserve">
|
||||
<value>Colore tema</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Settings_UI_Custom" xml:space="preserve">
|
||||
<value>Personalizzazione</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Settings_UI_EnableFilletUI" xml:space="preserve">
|
||||
<value>Abilitare l'interfaccia del raccordo</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="User_UnLogin" xml:space="preserve">
|
||||
<value>Non è stato effettuato l'accesso</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="ScanQRCode" xml:space="preserve">
|
||||
<value>Scansiona codici QR</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="SelectAll" xml:space="preserve">
|
||||
<value>Tutti i selezionati</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Helper" xml:space="preserve">
|
||||
<value>Guida</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Settings_UI_CustomBackgroundImage" xml:space="preserve">
|
||||
<value>Personalizzare l'immagine di sfondo</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Reset" xml:space="preserve">
|
||||
<value>resettare</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Settings_UI_SelectImage" xml:space="preserve">
|
||||
<value>Selezionare l'immagine</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Login_ManualLogin" xml:space="preserve">
|
||||
<value>Accedere manualmente</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="LoginInputManualLoginToken" xml:space="preserve">
|
||||
<value>Incollare il contenuto della copia della pagina Web.</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Login_ManualLoginEmpt" xml:space="preserve">
|
||||
<value>L'input non può essere vuoto.</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Login_WebSocketOnMessage" xml:space="preserve">
|
||||
<value>Decrittografia dei dati non riuscita, assicurarsi che i dati siano stati ritentati correttamente.</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="SteamAccountPage_ShareEmpt" xml:space="preserve">
|
||||
<value>La libreria di condivisione domestica è vuota.</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -1981,4 +1981,76 @@
|
||||
<value>再試行します</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="RefreshAvatar" xml:space="preserve">
|
||||
<value>アバターを更新します</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="AsyncSteamAvatar" xml:space="preserve">
|
||||
<value>Steam アバターを同期します</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="AsyncSteamAvatarDesc" xml:space="preserve">
|
||||
<value>Steam アカウントをバインドすると、Steam アカウントアバターを使用して手動で同期的に更新できます。</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Settings_ThemeAccent" xml:space="preserve">
|
||||
<value>テーマの色</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Settings_UI_Custom" xml:space="preserve">
|
||||
<value>カスタマイズ</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Settings_UI_EnableFilletUI" xml:space="preserve">
|
||||
<value>フィレット インターフェイスを有効にします</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="User_UnLogin" xml:space="preserve">
|
||||
<value>ログインしていません</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="ScanQRCode" xml:space="preserve">
|
||||
<value>QRコードをスキャンします</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="SelectAll" xml:space="preserve">
|
||||
<value>完全選択</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Helper" xml:space="preserve">
|
||||
<value>助け</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Settings_UI_CustomBackgroundImage" xml:space="preserve">
|
||||
<value>背景画像をカスタマイズします</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Reset" xml:space="preserve">
|
||||
<value>リセットします</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Settings_UI_SelectImage" xml:space="preserve">
|
||||
<value>画像を選択します</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Login_ManualLogin" xml:space="preserve">
|
||||
<value>手動でサインインします</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="LoginInputManualLoginToken" xml:space="preserve">
|
||||
<value>Web ページによってコピーされたコンテンツを貼り付けてください。</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Login_ManualLoginEmpt" xml:space="preserve">
|
||||
<value>入力内容を空にすることはできません。</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Login_WebSocketOnMessage" xml:space="preserve">
|
||||
<value>データの復号化に失敗しました。</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="SteamAccountPage_ShareEmpt" xml:space="preserve">
|
||||
<value>ホーム共有ライブラリが空です。</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -1981,4 +1981,76 @@
|
||||
<value>다시 시도하십시오</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="RefreshAvatar" xml:space="preserve">
|
||||
<value>아바타를 새로 고칩니다</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="AsyncSteamAvatar" xml:space="preserve">
|
||||
<value>Steam 아바타를 동기화합니다</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="AsyncSteamAvatarDesc" xml:space="preserve">
|
||||
<value>Steam 계정을 바인딩한 후 Steam 계정 아바타를 사용하여 수동으로 동기화할 수 있습니다.</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Settings_ThemeAccent" xml:space="preserve">
|
||||
<value>테마 색상입니다</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Settings_UI_Custom" xml:space="preserve">
|
||||
<value>사용자 지정</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Settings_UI_EnableFilletUI" xml:space="preserve">
|
||||
<value>모깎기 인터페이스를 활성화합니다</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="User_UnLogin" xml:space="preserve">
|
||||
<value>로그인하지 않았습니다</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="ScanQRCode" xml:space="preserve">
|
||||
<value>QR 코드를 스캔합니다</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="SelectAll" xml:space="preserve">
|
||||
<value>모두 선택</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Helper" xml:space="preserve">
|
||||
<value>도움말</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Settings_UI_CustomBackgroundImage" xml:space="preserve">
|
||||
<value>배경 이미지를 사용자 지정합니다</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Reset" xml:space="preserve">
|
||||
<value>재설정합니다</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Settings_UI_SelectImage" xml:space="preserve">
|
||||
<value>그림을 선택합니다</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Login_ManualLogin" xml:space="preserve">
|
||||
<value>수동으로 로그인합니다</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="LoginInputManualLoginToken" xml:space="preserve">
|
||||
<value>웹 페이지에서 복사한 내용을 붙여넣으십시오.</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Login_ManualLoginEmpt" xml:space="preserve">
|
||||
<value>입력한 내용은 비어 있을 수 없습니다.</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Login_WebSocketOnMessage" xml:space="preserve">
|
||||
<value>데이터 암호 해독에 실패했습니다.</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="SteamAccountPage_ShareEmpt" xml:space="preserve">
|
||||
<value>홈 공유 라이브러리가 비어 있습니다.</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -1589,4 +1589,7 @@
|
||||
<data name="Login_WebSocketOnMessage" xml:space="preserve">
|
||||
<value>数据解密失败,请确定数据正确重试。</value>
|
||||
</data>
|
||||
<data name="SteamAccountPage_ShareEmpt" xml:space="preserve">
|
||||
<value>家庭共享库为空。</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -1981,4 +1981,76 @@
|
||||
<value>Повторите попытку</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="RefreshAvatar" xml:space="preserve">
|
||||
<value>Обновите аватар</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="AsyncSteamAvatar" xml:space="preserve">
|
||||
<value>Синхронизируйте аватары Steam</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="AsyncSteamAvatarDesc" xml:space="preserve">
|
||||
<value>После привязки учетной записи Steam можно вручную одновременно обновить аватар учетной записи Steam.</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Settings_ThemeAccent" xml:space="preserve">
|
||||
<value>Цвет темы</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Settings_UI_Custom" xml:space="preserve">
|
||||
<value>Настройка</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Settings_UI_EnableFilletUI" xml:space="preserve">
|
||||
<value>Включите закругленный интерфейс</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="User_UnLogin" xml:space="preserve">
|
||||
<value>Не вошел в систему</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="ScanQRCode" xml:space="preserve">
|
||||
<value>Сканирование QR-кода</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="SelectAll" xml:space="preserve">
|
||||
<value>Полный выбор</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Helper" xml:space="preserve">
|
||||
<value>Помощь</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Settings_UI_CustomBackgroundImage" xml:space="preserve">
|
||||
<value>Настройка фонового изображения</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Reset" xml:space="preserve">
|
||||
<value>Сброс</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Settings_UI_SelectImage" xml:space="preserve">
|
||||
<value>Выберите изображение</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Login_ManualLogin" xml:space="preserve">
|
||||
<value>Войдите в систему вручную</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="LoginInputManualLoginToken" xml:space="preserve">
|
||||
<value>Вставьте содержимое, скопированное на веб-странице.</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Login_ManualLoginEmpt" xml:space="preserve">
|
||||
<value>Введенное содержимое не может быть пустым.</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Login_WebSocketOnMessage" xml:space="preserve">
|
||||
<value>Не удалось расшифровать данные, убедитесь, что данные были правильно повторен.</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="SteamAccountPage_ShareEmpt" xml:space="preserve">
|
||||
<value>Библиотека семейного доступа пуста.</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -1981,4 +1981,76 @@
|
||||
<value>重試</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="RefreshAvatar" xml:space="preserve">
|
||||
<value>刷新頭像</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="AsyncSteamAvatar" xml:space="preserve">
|
||||
<value>同步 Steam 頭像</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="AsyncSteamAvatarDesc" xml:space="preserve">
|
||||
<value>綁定 Steam 帳號後可手動同步刷新使用 Steam 帳號頭像。</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Settings_ThemeAccent" xml:space="preserve">
|
||||
<value>主題色</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Settings_UI_Custom" xml:space="preserve">
|
||||
<value>自訂</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Settings_UI_EnableFilletUI" xml:space="preserve">
|
||||
<value>啟用圓角介面</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="User_UnLogin" xml:space="preserve">
|
||||
<value>未登錄</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="ScanQRCode" xml:space="preserve">
|
||||
<value>掃描二維碼</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="SelectAll" xml:space="preserve">
|
||||
<value>全選</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Helper" xml:space="preserve">
|
||||
<value>説明</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Settings_UI_CustomBackgroundImage" xml:space="preserve">
|
||||
<value>自訂背景圖片</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Reset" xml:space="preserve">
|
||||
<value>重置</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Settings_UI_SelectImage" xml:space="preserve">
|
||||
<value>選擇圖片</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Login_ManualLogin" xml:space="preserve">
|
||||
<value>手動登錄</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="LoginInputManualLoginToken" xml:space="preserve">
|
||||
<value>請貼貼網頁複製的內容。</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Login_ManualLoginEmpt" xml:space="preserve">
|
||||
<value>輸入的內容不能為空。</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="Login_WebSocketOnMessage" xml:space="preserve">
|
||||
<value>數據解密失敗,請確定數據正確重試。</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="SteamAccountPage_ShareEmpt" xml:space="preserve">
|
||||
<value>家庭共用庫為空。</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -82,6 +82,10 @@ namespace System.Application.UI.ViewModels
|
||||
public bool IsVisible =>
|
||||
IShowWindowService.Instance.IsVisibleWindow(this);
|
||||
|
||||
public virtual void Initialize()
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 关闭当前viewmodel绑定的窗口
|
||||
/// </summary>
|
||||
|
||||
@@ -58,7 +58,8 @@ namespace System.Application.UI.ViewModels
|
||||
|
||||
void OnBindSuccessed() { }
|
||||
}
|
||||
public static async Task ManualLoginAsync(this IViewModel vm)
|
||||
|
||||
public static async Task ManualLoginAsync(this IViewModel vm)
|
||||
{
|
||||
await MainThread2.InvokeOnMainThreadAsync(async () =>
|
||||
{
|
||||
@@ -70,11 +71,16 @@ namespace System.Application.UI.ViewModels
|
||||
await TextBoxWindowViewModel.ShowDialogAsync(modelvm);
|
||||
if (string.IsNullOrWhiteSpace(modelvm.Value))
|
||||
{
|
||||
Toast.Show(AppResources.Login_ManualLoginEmpt);
|
||||
if (modelvm.Value != null)
|
||||
{
|
||||
Toast.Show(AppResources.Login_ManualLoginEmpt);
|
||||
}
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
await OnMessage(vm, modelvm.Value, null);
|
||||
}
|
||||
});
|
||||
}
|
||||
/// <summary>
|
||||
@@ -87,10 +93,12 @@ namespace System.Application.UI.ViewModels
|
||||
{
|
||||
if (vm.TempAes == null) return;
|
||||
var byteArray = msg.Base64UrlDecodeToByteArray();
|
||||
try {
|
||||
byteArray = vm.TempAes.Decrypt(byteArray);
|
||||
try
|
||||
{
|
||||
byteArray = vm.TempAes.Decrypt(byteArray);
|
||||
}
|
||||
catch {
|
||||
catch
|
||||
{
|
||||
if (socket == null)
|
||||
Toast.Show(AppResources.Login_WebSocketOnMessage);
|
||||
return;
|
||||
|
||||
@@ -112,7 +112,7 @@ namespace System.Application.UI.ViewModels
|
||||
|
||||
_SelectedItem = TabItems.First();
|
||||
|
||||
Task.Run(Initialize).ForgetAndDispose();
|
||||
//Task.Run(Initialize).ForgetAndDispose();
|
||||
|
||||
//this.WhenAnyValue(x => x.SelectedItem)
|
||||
// .Subscribe(x =>
|
||||
@@ -121,21 +121,24 @@ namespace System.Application.UI.ViewModels
|
||||
// });
|
||||
}
|
||||
|
||||
public void Initialize()
|
||||
public override async void Initialize()
|
||||
{
|
||||
Threading.Thread.CurrentThread.IsBackground = true;
|
||||
ProxyService.Current.Initialize();
|
||||
SteamConnectService.Current.Initialize();
|
||||
|
||||
if (!IsInitialized)
|
||||
await Task.Run(() =>
|
||||
{
|
||||
Parallel.ForEach(TabItems, item =>
|
||||
Threading.Thread.CurrentThread.IsBackground = true;
|
||||
ProxyService.Current.Initialize();
|
||||
SteamConnectService.Current.Initialize();
|
||||
|
||||
if (!IsInitialized)
|
||||
{
|
||||
item.Initialize();
|
||||
//Task.Run(item.Initialize).ForgetAndDispose();
|
||||
});
|
||||
IsInitialized = true;
|
||||
}
|
||||
Parallel.ForEach(TabItems, item =>
|
||||
{
|
||||
item.Initialize();
|
||||
//Task.Run(item.Initialize).ForgetAndDispose();
|
||||
});
|
||||
IsInitialized = true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
void AddTabItem<TabItemVM>() where TabItemVM : TabItemViewModel, new()
|
||||
|
||||
@@ -144,10 +144,7 @@ namespace System.Application.UI.ViewModels
|
||||
//if (IsFirstActivation)
|
||||
if (IsAuthenticatorsEmptyButHasSourceAuths)
|
||||
{
|
||||
await Task.Run(async () =>
|
||||
{
|
||||
await AuthService.Current.InitializeAsync(auths);
|
||||
});
|
||||
await AuthService.Current.InitializeAsync(auths);
|
||||
}
|
||||
#if __MOBILE__
|
||||
else
|
||||
@@ -158,12 +155,12 @@ namespace System.Application.UI.ViewModels
|
||||
base.Activation();
|
||||
}
|
||||
|
||||
#if !__MOBILE__
|
||||
public async void Refreshing()
|
||||
{
|
||||
await AuthService.Current.InitializeAsync();
|
||||
}
|
||||
#endif
|
||||
//#if !__MOBILE__
|
||||
// public async void Refreshing()
|
||||
// {
|
||||
// await AuthService.Current.InitializeAsync();
|
||||
// }
|
||||
//#endif
|
||||
|
||||
void AddAuthMenu_Click()
|
||||
{
|
||||
|
||||
@@ -171,11 +171,7 @@ namespace System.Application.UI.ViewModels
|
||||
private void ReStartSteamByUser(SteamUser user)
|
||||
{
|
||||
steamService.SetCurrentUser(user.AccountName ?? string.Empty);
|
||||
if (OperatingSystem2.IsMacOS && user.AccountName != null)
|
||||
if (!steamService.UpdateRegistryVdfPath(user.AccountName))
|
||||
Toast.Show(AppResources.Script_Update
|
||||
);
|
||||
steamService.TryKillSteamProcess();
|
||||
steamService.TryKillSteamProcess();
|
||||
steamService.StartSteam(SteamSettings.SteamStratParameter.Value);
|
||||
}
|
||||
|
||||
|
||||
@@ -483,8 +483,12 @@ namespace System.Application.Services.Implementation
|
||||
|
||||
proxyServer.AddEndPoint(transparentProxyEndPoint);
|
||||
|
||||
if (PortInUse(80) == false)
|
||||
proxyServer.AddEndPoint(new TransparentProxyEndPoint(ProxyIp, 80, false));
|
||||
try
|
||||
{
|
||||
if (PortInUse(80) == false)
|
||||
proxyServer.AddEndPoint(new TransparentProxyEndPoint(ProxyIp, 80, false));
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
proxyServer.ExceptionFunc = ((Exception exception) =>
|
||||
|
||||
@@ -204,6 +204,8 @@ namespace System.Application.Services.Implementation
|
||||
if (localCacheFilePathExists) // 存在缓存文件
|
||||
{
|
||||
using var fileStream = IOPath.OpenRead(localCacheFilePath);
|
||||
if (fileStream == null)
|
||||
return null;
|
||||
if (FileFormat.IsImage(fileStream, out var format))
|
||||
{
|
||||
if (http_helper.SupportedImageFormats.Contains(format)) // 读取缓存并且格式符合要求
|
||||
|
||||
@@ -217,4 +217,20 @@
|
||||
<value>The port number must be of the UInt16 type, contact your webmaster.</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="CopyButton" xml:space="preserve">
|
||||
<value>Point to this copy</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="CopyNoSupport" xml:space="preserve">
|
||||
<value>This browser does not support click copy to the clipboard</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="CopySuccess" xml:space="preserve">
|
||||
<value>Successfully copied to the clipboard</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="ManualCopyTip" xml:space="preserve">
|
||||
<value>There was an error with the connection program, please manually copy the following to the program click manually to log in.</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -217,4 +217,20 @@
|
||||
<value>El número de puerto debe ser del tipo UInt16, póngase en contacto con su webmaster.</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="CopyButton" xml:space="preserve">
|
||||
<value>Apuntar a esta copia</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="CopyNoSupport" xml:space="preserve">
|
||||
<value>Este explorador no admite hacer clic en copiar en el portapapeles</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="CopySuccess" xml:space="preserve">
|
||||
<value>Copiado correctamente en el portapapeles</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="ManualCopyTip" xml:space="preserve">
|
||||
<value>Se ha producido un error con el programa de conexión, copie manualmente lo siguiente en el programa, haga clic manualmente para iniciar sesión.</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -217,4 +217,20 @@
|
||||
<value>Il numero di porta deve essere del tipo UInt16, contattare il webmaster.</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="CopyButton" xml:space="preserve">
|
||||
<value>Puntare a questa copia</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="CopyNoSupport" xml:space="preserve">
|
||||
<value>Questo browser non supporta la copia dei clic negli Appunti</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="CopySuccess" xml:space="preserve">
|
||||
<value>Copiato correttamente negli Appunti</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="ManualCopyTip" xml:space="preserve">
|
||||
<value>Si è verificato un errore con il programma di connessione, copiare manualmente quanto segue nel programma, fare clic manualmente per accedere.</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -217,4 +217,20 @@
|
||||
<value>ポート番号は UInt16 タイプである必要があります。</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="CopyButton" xml:space="preserve">
|
||||
<value>このレプリケーションをポイントします</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="CopyNoSupport" xml:space="preserve">
|
||||
<value>ブラウザはタップコピークリップボードをサポートしていません</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="CopySuccess" xml:space="preserve">
|
||||
<value>クリップボードに正常にコピーされました</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="ManualCopyTip" xml:space="preserve">
|
||||
<value>接続プログラムにエラーがありますので、手動でログインしてクリックしてプログラムに以下を手動でコピーしてください。</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -217,4 +217,20 @@
|
||||
<value>포트 번호는 UInt16 유형이어야 하며 웹마스터에게 문의하십시오.</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="CopyButton" xml:space="preserve">
|
||||
<value>복사를 클릭합니다</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="CopyNoSupport" xml:space="preserve">
|
||||
<value>브라우저는 클립보드에 복사를 클릭하는 것을 지원하지 않습니다</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="CopySuccess" xml:space="preserve">
|
||||
<value>클립보드에 성공적으로 복사되었습니다</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="ManualCopyTip" xml:space="preserve">
|
||||
<value>연결 프로그램에 오류가 있는 경우 수동 로그인을 클릭하여 프로그램에 다음을 수동으로 복사합니다.</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -217,4 +217,20 @@
|
||||
<value>Номер порта должен быть UInt16, обратитесь к администратору сайта.</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="CopyButton" xml:space="preserve">
|
||||
<value>Нажмите Здесь для репликации</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="CopyNoSupport" xml:space="preserve">
|
||||
<value>Браузер не поддерживает копирование щелчков в буфер обмена</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="CopySuccess" xml:space="preserve">
|
||||
<value>Успешно скопировано в буфер обмена</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="ManualCopyTip" xml:space="preserve">
|
||||
<value>Что-то пошло не так с соединителем, пожалуйста, скопируйте следующее вручную в программу, нажав кнопку Вручную войти в систему.</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -217,4 +217,20 @@
|
||||
<value>埠號必須為 UInt16 類型,請聯繫網站管理員。</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="CopyButton" xml:space="preserve">
|
||||
<value>點此複製</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="CopyNoSupport" xml:space="preserve">
|
||||
<value>該瀏覽器不支援點擊複製到剪貼板</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="CopySuccess" xml:space="preserve">
|
||||
<value>成功複製到剪貼板</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
<data name="ManualCopyTip" xml:space="preserve">
|
||||
<value>連接程式出錯,請手動複製以下內容到程式點擊手動登錄。</value>
|
||||
<comment>Comment=;Author=MicrosoftTranslator</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
Reference in New Issue
Block a user