diff --git a/VRCFaceTracking/Strings/en/Resources.resw b/VRCFaceTracking/Strings/en/Resources.resw
index cec5ae0a..d1119459 100644
--- a/VRCFaceTracking/Strings/en/Resources.resw
+++ b/VRCFaceTracking/Strings/en/Resources.resw
@@ -320,4 +320,109 @@
Auto Start when SteamVR is launched
+
+ Heighten the influence your expressions make on calibration temporarily
+
+
+ Calibrate
+
+
+ Calibrate
+
+
+ Toggles whether or not calibration is enabled
+
+
+ Calibration Enabled
+
+
+ Controls how much of an influence your facial expressions have on overall calibration over time
+
+
+ Calibration Influence
+
+
+ Slowly calibrates to your facial expressions over time
+
+
+ Continuous Calibration
+
+
+ Contributions
+
+
+ Credits
+
+
+ Dismiss
+
+
+ Force VRCFT to unload and reinitialize all modules
+
+
+ Force Re-Initialize
+
+
+ Forces sending of all parameters every frame by forcing relevancy
+
+
+ Force Relevancy
+
+
+ Gremlin Mode
+
+
+ Install
+
+
+ Install Module from *.zip
+
+
+ No changes required to run VRChat localhost
+
+
+ IP Address
+
+
+ Please Restart VRCFT
+
+
+ Re-Initialize
+
+
+ This port is used to receive OSC data from VRChat
+
+
+ Receive Port
+
+
+ Reset
+
+
+ Reset all data stored by VRCFT in your AppData folder
+
+
+ Reset VRCFT
+
+
+ Reset all VRChat OSC config data (will be regenerated when avatar is reloaded)
+
+
+ Reset VRChat Configs
+
+
+ ⚠no other program occupying the port
+
+
+ Send Port
+
+
+ Uninstall
+
+
+ Update
+
+
+ Your Rating
+
\ No newline at end of file
diff --git a/VRCFaceTracking/Strings/zh-cn/Resources.resw b/VRCFaceTracking/Strings/zh-cn/Resources.resw
index b5d8c741..c828ec16 100644
--- a/VRCFaceTracking/Strings/zh-cn/Resources.resw
+++ b/VRCFaceTracking/Strings/zh-cn/Resources.resw
@@ -195,7 +195,7 @@
作者
- 模型状态
+ Avatar状态
© 2023 VRCFaceTracking。版权所有。
@@ -239,7 +239,7 @@
m/s 传出
-
+
没有安装模块
@@ -272,7 +272,157 @@
OSC 数据应该发送到哪里?
-
+
+ 当SteamVR启动时自动启动
+
+
+ 自动启动
+
+
+ 一键提高你的表情对表达式的强度
+
+
+ 校准
+
+
+ 提升!
+
+
+ 微调追踪数据
+
+
+ 校准设置
+
+
+ 用于切换是否启用校准
+
+
+ 开启校准
+
+
+ 调整至合适你的强度
+
+
+ 校准影响强度
+
+
+ 随着时间的推移,它会慢慢适应你的面部表情
+
+
+ 连续校准
+
+
+ 次贡献
+
+
+ 是他们让这一切变成可能😘
+
+
+ 贡献者
+
+
+ 忽略
+
+
+ 强制 VRCFT 卸载并重新初始化所有模块
+
+
+ 强制重新初始化
+
+
+ 通过强制相关性,强制每帧发送所有参数
+
+
+ 强制关联
+
+
+ 高危模式
+
+
+ 安装
+
+
+ 从*.zip压缩包安装模块
+
+
+ 在本地运行VRChat无需更改
+
+
+ IP地址
+
+
+ 已检测到本地测试Avatar
+
+
+ OSC并不支持本地测试Avatar,可能会出大问题...
+
+
+ 在这里安装一些模块!
+
+
您似乎没有安装任何模块。
+
+ 打开本地模块位置
+
+
+ OSC地址
+
+
+ 我们注意到您在VRChat中的OSC设置是关闭状态,我们已帮你打开啦。如果此时游戏处于打开状态,您可能需要在菜单中手动启用它。如果没有打开游戏,那么您应该可以正常使用了!
+
+
+ 自定义OSC设置
+
+
+ 请重启VRCFT
+
+
+ 重新初始化
+
+
+ 该端口用于接收VRChat发送的OSC数据
+
+
+ 接收端口
+
+
+ 重置
+
+
+ 重置 VRCFT 在 %AppData% 文件夹中存储的所有文件
+
+
+ 重置 VRCFT 的所有配置
+
+
+ 重置所有 VRChat Avatar 的 OSC 配置文件(重新加载Avatar时将自动生成新的,不删除不会更新)
+
+
+ 删除 VRChat 的OSC配置文件
+
+
+ 这是一堆非常危险的设置,不到万不得已不建议动它...
+
+
+ 高危设置
+
+
+ 请确保没有其他程序占用该端口
+
+
+ 发送端口
+
+
+ 主题设置
+
+
+ 卸载
+
+
+ 更新
+
+
+ 你给予的星星
+
\ No newline at end of file
diff --git a/VRCFaceTracking/Views/ModuleRegistryDetailControl.xaml.cs b/VRCFaceTracking/Views/ModuleRegistryDetailControl.xaml.cs
index 7d377329..d189196c 100644
--- a/VRCFaceTracking/Views/ModuleRegistryDetailControl.xaml.cs
+++ b/VRCFaceTracking/Views/ModuleRegistryDetailControl.xaml.cs
@@ -4,6 +4,7 @@
using VRCFaceTracking.Core.Models;
using VRCFaceTracking.Core.Services;
using VRCFaceTracking.ViewModels;
+using Windows.ApplicationModel.Resources;
namespace VRCFaceTracking.Views;
@@ -19,6 +20,7 @@ public InstallableTrackingModule? ListDetailsMenuItem
private readonly ModuleInstaller _moduleInstaller;
private readonly ILibManager _libManager;
private readonly MainViewModel _mainViewModel;
+ private static readonly ResourceLoader _loader = ResourceLoader.GetForViewIndependentUse("Resources");
public static readonly DependencyProperty ListDetailsMenuItemProperty = DependencyProperty.Register("ListDetailsMenuItem", typeof(TrackingModuleMetadata), typeof(ModuleRegistryDetailControl), new PropertyMetadata(null, OnListDetailsMenuItemPropertyChanged));
@@ -44,16 +46,16 @@ private static async void OnListDetailsMenuItemPropertyChanged(DependencyObject
switch (control.ListDetailsMenuItem!.InstallationState)
{
case InstallState.NotInstalled:
- control.InstallButton.Content = "Install";
+ control.InstallButton.Content = _loader.GetString("install");
break;
case InstallState.Installed:
- control.InstallButton.Content = "Uninstall";
+ control.InstallButton.Content = _loader.GetString("Uninstall");
break;
case InstallState.Outdated:
- control.InstallButton.Content = "Update";
+ control.InstallButton.Content = _loader.GetString("Update");
break;
case InstallState.AwaitingRestart:
- control.InstallButton.Content = "Please Restart VRCFT";
+ control.InstallButton.Content = _loader.GetString("PleaseRestartVRCFT");
control.InstallButton.IsEnabled = false;
break;
}
@@ -64,7 +66,7 @@ private static async void OnListDetailsMenuItemPropertyChanged(DependencyObject
{
control.RatingControl.PlaceholderValue = rating;
control.RatingControl.Value = rating;
- control.RatingControl.Caption = "Your Rating";
+ control.RatingControl.Caption = _loader.GetString("YourRating");
}
else // Otherwise, set the rating control to the average rating.
{
@@ -92,7 +94,7 @@ private async void Install_Click(object sender, RoutedEventArgs e)
await _moduleDataService.IncrementDownloadsAsync(ListDetailsMenuItem!);
ListDetailsMenuItem!.Downloads++;
_libManager.Initialize();
- InstallButton.Content = "Uninstall";
+ InstallButton.Content = _loader.GetString("Uninstall");
InstallButton.IsEnabled = true;
_mainViewModel.NoModulesInstalled = false;
}
@@ -100,7 +102,7 @@ private async void Install_Click(object sender, RoutedEventArgs e)
}
case InstallState.Installed:
{
- InstallButton.Content = "Please Restart VRCFT";
+ InstallButton.Content = _loader.GetString("PleaseRestartVRCFT");
InstallButton.IsEnabled = false;
_libManager.TeardownAllAndResetAsync();
_moduleInstaller.MarkModuleForDeletion(ListDetailsMenuItem!);
@@ -113,7 +115,7 @@ private async void Install_Click(object sender, RoutedEventArgs e)
private async void RatingControl_OnValueChanged(RatingControl sender, object args)
{
- RatingControl.Caption = "Your Rating";
+ RatingControl.Caption = _loader.GetString("YourRating");
await _moduleDataService.SetMyRatingAsync(ListDetailsMenuItem!, (int)RatingControl.Value);
}
diff --git a/VRCFaceTracking/Views/ModuleRegistryPage.xaml b/VRCFaceTracking/Views/ModuleRegistryPage.xaml
index 99600d63..a5c60e60 100644
--- a/VRCFaceTracking/Views/ModuleRegistryPage.xaml
+++ b/VRCFaceTracking/Views/ModuleRegistryPage.xaml
@@ -87,7 +87,7 @@
-
+
diff --git a/VRCFaceTracking/Views/SettingsPage.xaml b/VRCFaceTracking/Views/SettingsPage.xaml
index 6c0edcdb..1f27c238 100644
--- a/VRCFaceTracking/Views/SettingsPage.xaml
+++ b/VRCFaceTracking/Views/SettingsPage.xaml
@@ -37,9 +37,9 @@
-
-
-
+
+
+
@@ -56,7 +56,7 @@
+ x:Uid="Calibration_Enabled">
+ x:Uid="Continuous_Calibration">
-
+ x:Uid="Calibrate">
+
+ x:Uid="Calibration_Influence">
@@ -118,48 +114,44 @@
-
-
+
+ x:Uid="Force_Relevancy"
+ IsEnabled="False">
-
+ x:Uid="Force_Re-Initialize"
+ IsEnabled="False">
+
-
+ x:Uid="Reset_VRCFT"
+ IsEnabled="False">
+
-
+ x:Uid="Reset_VRChat_Configs"
+ IsEnabled="False">
+
+
-
+
-
+
diff --git a/VRCFaceTracking/Views/WarningBlock.xaml b/VRCFaceTracking/Views/WarningBlock.xaml
index d2f6ff48..2c61dc20 100644
--- a/VRCFaceTracking/Views/WarningBlock.xaml
+++ b/VRCFaceTracking/Views/WarningBlock.xaml
@@ -25,7 +25,7 @@
-
+
\ No newline at end of file