草庐IT

c# - 本地化 VirtualKey.Control (WinRT)

coder 2024-06-12 原文

我想本地化 VirtualKey for Control。 目前有这样的代码:

using Windows.System;
var message = "Press " + VirtualKey.Control.ToString() + " + D for deletion!";

是否有一个 API 可以用来实现以下功能?

  • 按 Control + D 进行删除! (在英文系统上)
  • 按 Steuerung + D 删除! (在德国系统上)

最佳答案

由于VirtualKey是一个枚举,不能直接翻译枚举中的成员,但可以作为资源文件的key,构建本地化系统:

我关注了this在 Windows 8.1 应用程序上构建简单本地化系统的教程;这些是我遵循的步骤(总结)

  1. 创建一个名为“Strings”的文件夹
  2. 在该文件夹内,为您要支持的默认语言创建一个文件夹并相应地命名它(查看可能代码的完整列表 here)
  3. 在该文件夹中创建 Resources.resw 文件
  4. 添加你想添加的字符串 - 如果你想支持VirtualKey.xxx.ToString()的使用,我强烈建议你使用与枚举相同的标识符;例如:如果您想翻译控制字符,请将新资源称为“Control” -(这就是我所做的):
  5. 复制并粘贴该文件夹的次数等于您要支持的语言数量(我做了两次):
  6. 根据您要翻译的目标语言编辑 Resource.resx 文件。
  7. 在代码中,引用每个翻译后的字符串

    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 语言的结果:

为了测试其他语言,我遵循了教程,即使我不喜欢它:

  1. 打开控制面板并转到“时钟、语言和区域”>“语言”
  2. 请注意,应用程序运行时显示的语言是列出的最上面的语言,在我的系统上是意大利语。
  3. 要使用其他语言测试该应用,请在列表中选择该语言,然后点击上移直到它位于顶部。然后运行该应用。

注意:如果您的计算机上没有这三种语言,请单击“添加语言”并将它们添加到列表中来添加缺少的语言。

在我的例子中,我将意大利语列为第一个,将英语(英国)列为第二个,但如果我交换它们:

再次运行应用程序,这是结果

如果我添加 de-DE:

使用这些资源文件: zh-CN:

还有它-IT:

和去DE:

请注意,我将英语控制键称为“Control”,将意大利语称为“Ctrl”;它完美地工作

希望对您有所帮助。

如果您有更多问题,请尽管提问!

卢克斯贾米

编辑:这是一个解决方案,尽管我承认这不是一个好的解决方案(无论如何,这是我能想到的最好的)。无论如何,如上所述here对于 WinForm 应用程序,没有必要这样做,因为如果您使用键的默认名称(即枚举中的名称,就像您现在所做的那样),每个人都会理解您。

EDIT2:然而,这个解决方案为您的应用程序的 future “完全”本地化设置了一切。这样,在开发过程开始时就完成了一半的工作。

关于c# - 本地化 VirtualKey.Control (WinRT),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40427586/

有关c# - 本地化 VirtualKey.Control (WinRT)的更多相关文章

  1. ruby - 使用 C 扩展开发 ruby​​gem 时,如何使用 Rspec 在本地进行测试? - 2

    我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当

  2. ruby - 是否可以覆盖 gemfile 进行本地开发? - 2

    我们的git存储库中目前有一个Gemfile。但是,有一个gem我只在我的环境中本地使用(我的团队不使用它)。为了使用它,我必须将它添加到我们的Gemfile中,但每次我checkout到我们的master/dev主分支时,由于与跟踪的gemfile冲突,我必须删除它。我想要的是类似Gemfile.local的东西,它将继承从Gemfile导入的gems,但也允许在那里导入新的gems以供使用只有我的机器。此文件将在.gitignore中被忽略。这可能吗? 最佳答案 设置BUNDLE_GEMFILE环境变量:BUNDLE_GEMFI

  3. c# - 如何在 ruby​​ 中调用 C# dll? - 2

    如何在ruby​​中调用C#dll? 最佳答案 我能想到几种可能性:为您的DLL编写(或找人编写)一个COM包装器,如果它还没有,则使用Ruby的WIN32OLE库来调用它;看看RubyCLR,其中一位作者是JohnLam,他继续在Microsoft从事IronRuby方面的工作。(估计不会再维护了,可能不支持.Net2.0以上的版本);正如其他地方已经提到的,看看使用IronRuby,如果这是您的技术选择。有一个主题是here.请注意,最后一篇文章实际上来自JohnLam(看起来像是2009年3月),他似乎很自在地断言RubyCL

  4. C# 到 Ruby sha1 base64 编码 - 2

    我正在尝试在Ruby中复制Convert.ToBase64String()行为。这是我的C#代码:varsha1=newSHA1CryptoServiceProvider();varpasswordBytes=Encoding.UTF8.GetBytes("password");varpasswordHash=sha1.ComputeHash(passwordBytes);returnConvert.ToBase64String(passwordHash);//returns"W6ph5Mm5Pz8GgiULbPgzG37mj9g="当我在Ruby中尝试同样的事情时,我得到了相同sha

  5. ruby - Sinatra set cache_control to static files in public folder编译错误 - 2

    我不知道为什么,但是当我设置这个设置时它无法编译设置:static_cache_control,[:public,:max_age=>300]这是我得到的syntaxerror,unexpectedtASSOC,expecting']'(SyntaxError)set:static_cache_control,[:public,:max_age=>300]^我只想将“过期”header设置为css、javaascript和图像文件。谢谢。 最佳答案 我猜您使用的是Ruby1.8.7。Sinatra文档中显示的语法似乎是在Ruby1.

  6. 基于C#实现简易绘图工具【100010177】 - 2

    C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.

  7. ruby - 在 Rails 项目中测试本地版本的 gem - 2

    我的Rails站点使用了一个确实不是很好的gem。每次我需要做一些新的事情时,我最终不得不花费与向实际Rails项目添加代码一样多的时间来为gem添加功能。但我不介意,我将我的Gemfile设置为指向我的gem的GitHub分支(我尝试提交PR,但维护者似乎已经下台)。问题是我真的没有找到一种合理的方法来测试我添加到gem的新东西。在railsc中测试它会特别好,但我能想到的唯一方法是a)更改~/.rvm/gems/.../foo。rb,这看起来不对或者b)升级版本,推送到Github,然后运行​​bundleup,这除了耗时之外显然是一场灾难,因为我不确定我所做的promise是否正

  8. ruby - 如何捕获所有 HTTP 流量(本地代理) - 2

    我希望访问我机器上的所有HTTP流量(我的Windows机器-不是服务器)。据我了解,拥有一个本地代理是所有流量路线的必经之路。我一直在谷歌搜索但未能找到任何资源(关于Ruby)来帮助我。非常感谢任何提示或链接。 最佳答案 WEBrick中有一个HTTP代理(Rubystdlib的一部分)和here's一个实现示例。如果你喜欢生活在边缘,还有em-proxy伊利亚·格里戈里克。这postIlya暗示它似乎确实需要一些调整来解决您的问题。 关于ruby-如何捕获所有HTTP流量(本地代理)

  9. ruby-on-rails - Rails 3,在RAILS_ROOT上方显示来自本地文件系统的jpg图片 - 2

    我正在尝试找出一种方法来显示来自不在RAILS_ROOT下(在RedHat或Ubuntu环境中)的已安装文件系统的图像。我不想使用符号链接(symboliclink),因为这个应用程序实际上是通过Tomcat部署的,而当我关闭Tomcat时,Tomcat会尝试跟随符号链接(symboliclink)并删除挂载中的所有图像。由于这些文件的数量和大小,将图像放在public/images下也不是一种选择。我查看了send_file,但它只会显示一张图片。我需要在一个格式良好的页面中显示6个请求的图像。由于膨胀,我宁愿不使用Base64编码,但我不知道如何将图像数据与呈现的页面一起传递下去。

  10. Ruby 服务器在本地主机(teambox)之外非常慢 - 2

    我刚刚在我的Ubuntu9.10服务器上安装了TeamBox。我使用提供的服务器脚本在端口3000上启动并运行它。它的运行速度非常慢,从另一台计算机连接时每个HTTP请求最多需要30秒。我使用链接从shell加载TeamBox,一点也不花时间。然后我设置了一个SSH隧道,它再次运行得非常快。我通过此服务器上的apache以及SAMBA等运行了大约30个虚拟主机,没有任何问题。我该如何解决这个问题? 最佳答案 我的redmine(ruby,webrick)太慢了。现在我解决了这个问题:apt-getinstallmongrelruby

随机推荐