Как заменить символы русской расскладки аналогичными символами английской расскладки и наоборот?
Нужно заменить ghbdtn => привет и наоборот. Вроде бы уже есть куча таких вопросов. Некоторые рекомендуют использовать кодировку. Пытался и особо ничего не получилось. Очень не хотелось бы просто хардкодить, но пока что вижу только этот вариант. Пишу на c#
Ответы (1 шт):
Автор решения: rotabor
→ Ссылка
Это может быть сделано следующим образом:
using System;
static class Program {
static char[] ru, en;
static char Ru2En(char ch) { return en[Array.IndexOf(ru, ch)]; }
static void Main() {
ru = "йцу".ToCharArray();
en = "qwe".ToCharArray();
char ch;
while ((ch = Console.ReadKey().KeyChar) != 27) Console.WriteLine(Ru2En(ch));
}
}
Нужно всю раскладку захардкодить в ru и en, и учесть регистр.
Если представить себе более широкую задачу, а именно сделать приложение для транслитерации по всем установленным в ОС раскладкам, тогда нужно было бы извлекать из настроек ОС данные об установленных раскладках и на основе этой информации делать преобразование.