本地化 VirtualKey.Control (WinRT)
Localize VirtualKey.Control (WinRT)
我想本地化 VirtualKey for Control。
目前有这样的代码:
using Windows.System;
var message = "Press " + VirtualKey.Control.ToString() + " + D for deletion!";
有没有API可以用来做以下的?
- 按Control + D删除! (在英文系统上)
- 按Steuerung + D删除! (在德国系统上)
由于VirtualKey是一个枚举,你不能直接运行slate一个枚举的成员,但是你可以把它作为资源文件的键,建立一个本地化系统:
我按照 this 教程在 Windows 8.1 应用程序上构建了一个简单的本地化系统;这些是我遵循的步骤(总结)
- 创建一个名为 "Strings"
的文件夹
- 在该文件夹中,为您要支持的默认语言创建一个文件夹并相应地命名(查看可能代码的完整列表 here)
- 在该文件夹中创建一个 Resources.resw 文件
- 添加你要添加的字符串 - 如果你想支持使用
VirtualKey.xxx.ToString()
,我强烈建议你使用枚举的相同标识符;例如:如果您想 t运行 设置控制字符,请调用新资源 "Control" -(我就是这样做的):
- 复制并粘贴该文件夹的次数等于您要支持的语言数(我做了两次):
- 根据您运行选择的语言编辑Resource.resx文件。
在代码中,用
引用每个t运行指定的字符串
var loader = new Windows.ApplicationModel.Resources.ResourceLoader();
loader.GetString(VirtualKey.xxx.ToString());
这就是我在 MainPage.xaml 中对 TextBlock 所做的:
var loader = new Windows.ApplicationModel.Resources.ResourceLoader();
this.txbCtrl.Text = String.Format("Press {0}-Z to undo", loader.GetString(VirtualKey.Control.ToString()));
这就是 it-IT 语言的结果:
为了测试其他语言,我按照教程进行了操作,即使我不喜欢它:
- 打开“控制面板”并转到“时钟、语言和区域”>“语言”
- 请注意,当应用程序为 运行 时显示的语言是列出的最上面的语言,在我的系统上是意大利语。
- 要使用其他语言测试应用程序,select 列表中的语言并单击上移直到它位于顶部。然后 运行 应用程序。
注意:如果您的计算机上没有这三种语言,请单击“添加语言”并将它们添加到列表中来添加缺少的语言。
在我的例子中,我将意大利语列为第一个,将英语(英国)列为第二个,但如果我交换它们:
和运行再次申请,这是结果
如果我添加 de-DE:
使用这些资源文件:
zh-CN:
还有它-IT:
并去DE:
请注意,我将英语控制键命名为 "Control",意大利语控制键命名为 "Ctrl";它完美运行
希望对您有所帮助。
如果您有更多问题,请尽管提问!
LuxGiammi
编辑:这是一个解决方案,尽管我承认这不是一个好的解决方案(无论如何,这是我能想到的最好的)。无论如何,正如 here 对于 WinForm 应用程序所述,没有必要这样做,因为如果您使用键的默认名称(即枚举中的那个,就像您现在正在做的那样),每个人都会理解您).
EDIT2:然而,此解决方案为您的应用程序的未来 "full" 本地化设置了一切。这样在开发过程的开始就完成了一半的努力。
我想本地化 VirtualKey for Control。 目前有这样的代码:
using Windows.System;
var message = "Press " + VirtualKey.Control.ToString() + " + D for deletion!";
有没有API可以用来做以下的?
- 按Control + D删除! (在英文系统上)
- 按Steuerung + D删除! (在德国系统上)
由于VirtualKey是一个枚举,你不能直接运行slate一个枚举的成员,但是你可以把它作为资源文件的键,建立一个本地化系统:
我按照 this 教程在 Windows 8.1 应用程序上构建了一个简单的本地化系统;这些是我遵循的步骤(总结)
- 创建一个名为 "Strings" 的文件夹
- 在该文件夹中,为您要支持的默认语言创建一个文件夹并相应地命名(查看可能代码的完整列表 here)
- 在该文件夹中创建一个 Resources.resw 文件
- 添加你要添加的字符串 - 如果你想支持使用
VirtualKey.xxx.ToString()
,我强烈建议你使用枚举的相同标识符;例如:如果您想 t运行 设置控制字符,请调用新资源 "Control" -(我就是这样做的): - 复制并粘贴该文件夹的次数等于您要支持的语言数(我做了两次):
- 根据您运行选择的语言编辑Resource.resx文件。
在代码中,用
引用每个t运行指定的字符串var loader = new Windows.ApplicationModel.Resources.ResourceLoader(); loader.GetString(VirtualKey.xxx.ToString());
这就是我在 MainPage.xaml 中对 TextBlock 所做的:
var loader = new Windows.ApplicationModel.Resources.ResourceLoader(); this.txbCtrl.Text = String.Format("Press {0}-Z to undo", loader.GetString(VirtualKey.Control.ToString()));
这就是 it-IT 语言的结果:
为了测试其他语言,我按照教程进行了操作,即使我不喜欢它:
- 打开“控制面板”并转到“时钟、语言和区域”>“语言”
- 请注意,当应用程序为 运行 时显示的语言是列出的最上面的语言,在我的系统上是意大利语。
- 要使用其他语言测试应用程序,select 列表中的语言并单击上移直到它位于顶部。然后 运行 应用程序。
注意:如果您的计算机上没有这三种语言,请单击“添加语言”并将它们添加到列表中来添加缺少的语言。
在我的例子中,我将意大利语列为第一个,将英语(英国)列为第二个,但如果我交换它们:
和运行再次申请,这是结果
如果我添加 de-DE:
使用这些资源文件:
zh-CN:
还有它-IT:
并去DE:
请注意,我将英语控制键命名为 "Control",意大利语控制键命名为 "Ctrl";它完美运行
希望对您有所帮助。
如果您有更多问题,请尽管提问!
LuxGiammi
编辑:这是一个解决方案,尽管我承认这不是一个好的解决方案(无论如何,这是我能想到的最好的)。无论如何,正如 here 对于 WinForm 应用程序所述,没有必要这样做,因为如果您使用键的默认名称(即枚举中的那个,就像您现在正在做的那样),每个人都会理解您).
EDIT2:然而,此解决方案为您的应用程序的未来 "full" 本地化设置了一切。这样在开发过程的开始就完成了一半的努力。