Как VirtualKey является перечислением, вы не можете перевести члена перечисления непосредственно, но вы можете использовать его в качестве ключа для файлов ресурсов, создание системы локализации:
Я последовал за this учебным пособием, чтобы создать простую систему локализации в приложении Windows 8.1; эти шаги я последовал (суммируется вверх)
- Создайте папку с именем «Строки»
- Внутри папки, создайте папку для языка по умолчанию вы хотите поддержать и назовите его accordigly (см полный список возможных кодов here)
- Создать Resources.resw файл в этой папке
- Добавьте строки, которые вы хотите добавить - Если вы хотите поддержать использование
VirtualKey.xxx.ToString()
, я настоятельно рекомендую вам использовать одни и те же идентификаторы перечисление; например: если вы хотите перевести контрольный символ, вызовите новый ресурс «Control» - (это то, что я сделал):
- Скопируйте и вставьте эту папку за несколько раз, равную количеству языков, которые вы (я сделал это дважды):
- Редактирование файла Resource.resx в соответствии с языком, на который вы переводите.
В коде, обратитесь к каждой переведенной строке с
var loader = new Windows.ApplicationModel.Resources.ResourceLoader();
loader.GetString(VirtualKey.xxx.ToString());
Вот что я сделал на TextBlock в MainPage.xaml:
var loader = new Windows.ApplicationModel.Resources.ResourceLoader();
this.txbCtrl.Text = String.Format("Press {0}-Z to undo", loader.GetString(VirtualKey.Control.ToString()));
И вот результат для конкретного языка -IT:
Чтобы проверить это на других языках, я следил за t utorial, даже если мне не нравится это:
- Откройте панель управления и перейдите Часы, язык и регион> Язык
- Обратите внимание, что язык, который был показан, когда приложение пробежалась является главным язык, указанный в моей системе, итальянский.
- Чтобы протестировать приложение на другом языке, выберите язык в списке и нажмите «Переместить вверх», пока он не окажется наверху. Затем запустите приложение.
NB: Если у вас нет всех трех этих языков на вашем компьютере, добавьте недостающие, нажав Добавить язык и добавив их в список.
В моем случае у меня есть итальянский перечисленные для первого и английский (Великобритания) в качестве второго, но если я поменять их местами:
и снова запустить приложение, это результат
и если я добавить де-DE:
с этими файлами ресурсов: ан-ГБ:
и IT-:
и де-DE:
Обратите внимание, что я назвал ключом английского управления "Control" и итальянские один "Ctrl"; он отлично работает
Надеюсь, это помогло.
Если у вас есть еще вопросы, просто спросите!
LuxGiammi
EDIT: это решение, хотя я признаю, что это не является хорошим (во всяком случае, это лучшее, что я мог придумать). В любом случае, как указано в here для приложений WinForm, нет необходимости делать это, потому что evrybody поймет вас, если вы используете имена defualt для ключей (т. Е. Тот, который перечисляется, как и сейчас).
EDIT2: это решение, однако, устанавливает все для будущей «полной» локализации для вашего приложения. Таким образом, половина усилий прилагается к началу процесса разработки.
Это не имеет никакого смысла для жестких кодов, таких как «нажмите» и «удалить», и надеемся, что он будет локализован. Также не имеет смысла использовать VirtualKey.Control, это всегда клавиша Ctrl в любой точке мира, хотя заголовок может читать по-другому. Попробуйте опубликовать более реалистичный пример, который не просто тривиально можно локализовать, переведя строку * whole *. –