Ali Can Gönüllü tarafından 2019-10-06 16:24:12 tarihinde yazıldı. Tahmini okunma süresi 7 dakika, 35 saniye.
Çalışmalarım için bağış yapmak isterseniz Patreon hesabımdan bağışta bulunabilirsiniz.
Blog adresinde yazılanlar sadece eğitim amacıyla deneysel olarak hazırlanmıştır. Konu içerisinde geçen yöntemleri kendi oluşturduğunuz test ortamında denemenizi tavsiye ederiz.
Herhangi bir tarih, yer ve/veya mekanda oluşacak zararlardan alicangonullu.org, alicangonullu.org yöneticisi ve/veya konu yazarı mesul değildir.
Merhabalar
Bu yazımda sizlere kodlamış olduğum Türkçe Klavye desteğini anlatacağım
Not : Cosmos Kütüphanesi için geçerlidir.
Projede bir Lang.cs dosyası açıp aşağıdakileri yazın
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Cosmos.HAL;
using Cosmos.System;
// Coded By Ali Can GÖNÜLLÜ
// alicangonullu.org | alicangonullu@yahoo.com
// Pull Request : https://github.com/CosmosOS/Cosmos/pull/1224
// Thanks Support by Berke Kırbaş
namespace AliOS.Sistem.Lang
{
public class TR_StandardQ : ScanMapBase
{
public TR_StandardQ()
{
}
protected override void InitKeys()
{
_keys = new List<KeyMapping>(100);
#region Keys
/* Scan Norm Shift Ctrl Alt Num Caps ShCaps ShNum ConsoleKeyEx */
_keys.Add(new KeyMapping(0x00, ConsoleKeyEx.NoName));
/* F1-F12 */
_keys.Add(new KeyMapping(0x01, ConsoleKeyEx.Escape));
_keys.Add(new KeyMapping(0x3B, ConsoleKeyEx.F1));
_keys.Add(new KeyMapping(0x3C, ConsoleKeyEx.F2));
_keys.Add(new KeyMapping(0x3D, ConsoleKeyEx.F3));
_keys.Add(new KeyMapping(0x3E, ConsoleKeyEx.F4));
_keys.Add(new KeyMapping(0x3F, ConsoleKeyEx.F5));
_keys.Add(new KeyMapping(0x40, ConsoleKeyEx.F6));
_keys.Add(new KeyMapping(0x41, ConsoleKeyEx.F7));
_keys.Add(new KeyMapping(0x42, ConsoleKeyEx.F8));
_keys.Add(new KeyMapping(0x43, ConsoleKeyEx.F9));
_keys.Add(new KeyMapping(0x44, ConsoleKeyEx.F10));
_keys.Add(new KeyMapping(0x57, ConsoleKeyEx.F11));
_keys.Add(new KeyMapping(0x58, ConsoleKeyEx.F12));
/* 1 -> 9 */
_keys.Add(new KeyMapping(0x29, '"', 'é', '"', '"', 'é', '"', ConsoleKeyEx.NoName));
_keys.Add(new KeyMapping(0x02, '1', '!', '1', '1', '!', '1', ConsoleKeyEx.D1));
_keys.Add(new KeyMapping(0x03, '2', '@', '2', '2', '@', '2', ConsoleKeyEx.D2));
_keys.Add(new KeyMapping(0x04, '3', '#', '3', '3', '#', '3', ConsoleKeyEx.D3));
_keys.Add(new KeyMapping(0x05, '4', '$', '4', '4', '$', '4', ConsoleKeyEx.D4));
_keys.Add(new KeyMapping(0x06, '5', '%', '5', '5', '%', '5', ConsoleKeyEx.D5));
_keys.Add(new KeyMapping(0x07, '6', '&', '6', '6', '&', '6', ConsoleKeyEx.D6));
_keys.Add(new KeyMapping(0x08, '7', '/', '7', '7', '/', '7', ConsoleKeyEx.D7));
_keys.Add(new KeyMapping(0x09, '8', '(', '8', '8', '(', '8', ConsoleKeyEx.D8));
_keys.Add(new KeyMapping(0x0A, '9', ')', '9', '9', ')', '9', ConsoleKeyEx.D9));
_keys.Add(new KeyMapping(0x0B, '0', '=', '0', '0', '=', '0', ConsoleKeyEx.D0)); //Hata
/* -, =, Bksp, Tab */
_keys.Add(new KeyMapping(0x0C, '*', '?', '*', '*', '?', '*', ConsoleKeyEx.NoName));
_keys.Add(new KeyMapping(0x0D, '-', '_', '-', '-', '_', '-', ConsoleKeyEx.Minus));
_keys.Add(new KeyMapping(0x0E, ConsoleKeyEx.Backspace));
_keys.Add(new KeyMapping(0x0F, ConsoleKeyEx.Tab));
/* QWERTYUIOP[] */
_keys.Add(new KeyMapping(0x10, 'q', 'Q', 'q', 'Q', 'q', 'Q', ConsoleKeyEx.Q));
_keys.Add(new KeyMapping(0x11, 'w', 'W', 'w', 'W', 'w', 'W', ConsoleKeyEx.W));
_keys.Add(new KeyMapping(0x12, 'e', 'E', 'e', 'E', 'e', 'E', ConsoleKeyEx.E));
_keys.Add(new KeyMapping(0x13, 'r', 'R', 'r', 'R', 'r', 'R', ConsoleKeyEx.R));
_keys.Add(new KeyMapping(0x14, 't', 'T', 't', 'T', 't', 'T', ConsoleKeyEx.T));
_keys.Add(new KeyMapping(0x15, 'y', 'Y', 'y', 'Y', 'y', 'Y', ConsoleKeyEx.Y));
_keys.Add(new KeyMapping(0x16, 'u', 'U', 'u', 'U', 'u', 'U', ConsoleKeyEx.U));
_keys.Add(new KeyMapping(0x17, 'i', 'I', 'i', 'I', 'i', 'I', ConsoleKeyEx.I));
_keys.Add(new KeyMapping(0x18, 'o', 'O', 'o', 'O', 'o', 'O', ConsoleKeyEx.O));
_keys.Add(new KeyMapping(0x19, 'p', 'P', 'p', 'P', 'p', 'P', ConsoleKeyEx.P));
_keys.Add(new KeyMapping(0x1A, 'ğ', 'Ğ', 'ğ', 'Ğ', 'ğ', 'Ğ', ConsoleKeyEx.LBracket));
_keys.Add(new KeyMapping(0x1B, 'ü', 'Ü', 'ü', 'Ü', 'ü', 'Ü', ConsoleKeyEx.RBracket));
/* ASDFGHJKL;'` */
_keys.Add(new KeyMapping(0x1E, 'a', 'A', 'a', 'A', 'a', 'A', ConsoleKeyEx.A));
_keys.Add(new KeyMapping(0x1F, 's', 'S', 's', 'S', 's', 'S', ConsoleKeyEx.S));
_keys.Add(new KeyMapping(0x20, 'd', 'D', 'd', 'D', 'd', 'D', ConsoleKeyEx.D));
_keys.Add(new KeyMapping(0x21, 'f', 'F', 'f', 'F', 'f', 'F', ConsoleKeyEx.F));
_keys.Add(new KeyMapping(0x22, 'g', 'G', 'g', 'G', 'g', 'G', ConsoleKeyEx.G));
_keys.Add(new KeyMapping(0x23, 'h', 'H', 'h', 'H', 'h', 'H', ConsoleKeyEx.H));
_keys.Add(new KeyMapping(0x24, 'j', 'J', 'j', 'J', 'j', 'J', ConsoleKeyEx.J));
_keys.Add(new KeyMapping(0x25, 'k', 'K', 'k', 'K', 'k', 'K', ConsoleKeyEx.K));
_keys.Add(new KeyMapping(0x26, 'l', 'L', 'l', 'L', 'l', 'L', ConsoleKeyEx.L));
_keys.Add(new KeyMapping(0x27, 'ş', 'Ş', 'ş', 'Ş', 'ş', 'Ş', ConsoleKeyEx.NoName));
_keys.Add(new KeyMapping(0x28, 'i', 'İ', 'i', 'İ', 'i', 'İ', ConsoleKeyEx.NoName));
_keys.Add(new KeyMapping(0x2B, ',', ';', ',', ',', ';', ';', ConsoleKeyEx.Comma));
/* Left Shift*/
_keys.Add(new KeyMapping(0x2A, ConsoleKeyEx.LShift));
_keys.Add(new KeyMapping(0x56, '<', '>', '<', '<', '>', '>', ConsoleKeyEx.NoName));
/* \ZXCVBNM,./ */
_keys.Add(new KeyMapping(0x2C, 'z', 'Z', 'z', 'Z', 'z', 'Z', ConsoleKeyEx.Z));
_keys.Add(new KeyMapping(0x2D, 'x', 'X', 'x', 'X', 'x', 'X', ConsoleKeyEx.X));
_keys.Add(new KeyMapping(0x2E, 'c', 'C', 'c', 'C', 'c', 'C', ConsoleKeyEx.C));
_keys.Add(new KeyMapping(0x2F, 'v', 'V', 'v', 'V', 'v', 'V', ConsoleKeyEx.V));
_keys.Add(new KeyMapping(0x30, 'b', 'B', 'b', 'B', 'b', 'B', ConsoleKeyEx.B));
_keys.Add(new KeyMapping(0x31, 'n', 'N', 'n', 'N', 'n', 'N', ConsoleKeyEx.N));
_keys.Add(new KeyMapping(0x32, 'm', 'M', 'm', 'M', 'm', 'M', ConsoleKeyEx.M));
_keys.Add(new KeyMapping(0x33, 'ö', 'Ö', 'ö', 'Ö', 'ö', 'Ö', ConsoleKeyEx.NoName));
_keys.Add(new KeyMapping(0x34, 'ç', 'Ç', 'ç', 'ç', 'Ç', 'ç', ConsoleKeyEx.NoName));
_keys.Add(new KeyMapping(0x35, '.', ':', '.', '.', ':', '.', ConsoleKeyEx.NoName)); // also numpad divide
/* Right Shift */
_keys.Add(new KeyMapping(0x1C, ConsoleKeyEx.Enter));
_keys.Add(new KeyMapping(0x36, ConsoleKeyEx.RShift));
_keys.Add(new KeyMapping(0x1D, ConsoleKeyEx.LCtrl));
/* Print Screen */
_keys.Add(new KeyMapping(0x37, '*', '*', '*', '*', '*', '*', ConsoleKeyEx.NumMultiply));
// also numpad multiply
/* Alt */
_keys.Add(new KeyMapping(0x38, ConsoleKeyEx.LAlt));
/* Space */
_keys.Add(new KeyMapping(0x39, ' ', ConsoleKeyEx.Spacebar));
/* Caps */
_keys.Add(new KeyMapping(0x3A, ConsoleKeyEx.CapsLock));
/* Num Lock, Scrl Lock */
_keys.Add(new KeyMapping(0x45, ConsoleKeyEx.NumLock));
_keys.Add(new KeyMapping(0x46, ConsoleKeyEx.ScrollLock));
/* HOME, Up, Pgup, -kpad, left, center, right, +keypad, end, down, pgdn, ins, del */
_keys.Add(new KeyMapping(0x47, '\0', '\0', '7', '\0', '\0', '\0', ConsoleKeyEx.Home, ConsoleKeyEx.Num7));
_keys.Add(new KeyMapping(0x48, '\0', '\0', '8', '\0', '\0', '\0', ConsoleKeyEx.UpArrow, ConsoleKeyEx.Num8));
_keys.Add(new KeyMapping(0x49, '\0', '\0', '9', '\0', '\0', '\0', ConsoleKeyEx.PageUp, ConsoleKeyEx.Num9));
_keys.Add(new KeyMapping(0x4A, '-', '-', '-', '-', '-', '-', ConsoleKeyEx.NumMinus));
_keys.Add(new KeyMapping(0x4B, '\0', '\0', '4', '\0', '\0', '\0', ConsoleKeyEx.LeftArrow, ConsoleKeyEx.Num4));
_keys.Add(new KeyMapping(0x4C, '\0', '\0', '5', '\0', '\0', '\0', ConsoleKeyEx.Num5));
_keys.Add(new KeyMapping(0x4D, '\0', '\0', '6', '\0', '\0', '\0', ConsoleKeyEx.RightArrow, ConsoleKeyEx.Num6));
_keys.Add(new KeyMapping(0x4E, '+', '+', '+', '+', '+', '+', ConsoleKeyEx.NumPlus));
_keys.Add(new KeyMapping(0x4F, '\0', '\0', '1', '\0', '\0', '\0', ConsoleKeyEx.End, ConsoleKeyEx.Num1));
_keys.Add(new KeyMapping(0x50, '\0', '\0', '2', '\0', '\0', '\0', ConsoleKeyEx.DownArrow, ConsoleKeyEx.Num2));
_keys.Add(new KeyMapping(0x51, '\0', '\0', '3', '\0', '\0', '\0', ConsoleKeyEx.PageDown, ConsoleKeyEx.Num3));
_keys.Add(new KeyMapping(0x52, '\0', '\0', '0', '\0', '\0', '\0', ConsoleKeyEx.Insert, ConsoleKeyEx.Num0));
_keys.Add(new KeyMapping(0x53, '\0', '\0', '.', '\0', '\0', '\0', ConsoleKeyEx.Delete,
ConsoleKeyEx.NumPeriod));
_keys.Add(new KeyMapping(0x5b, ConsoleKeyEx.LWin));
_keys.Add(new KeyMapping(0x5c, ConsoleKeyEx.RWin));
#endregion
}
}
}
Sonrasında Kernel.cs'te BeforeRun() kısmına şunu ekleyin
Sys.KeyboardManager.SetKeyLayout(new AliOS.Sistem.Lang.TR_StandardQ());
Bu kadar. Sonrasında Türkçe olarak kullanmaya başlayın.
NOT : Ğ, Ü, ı, İ, Ö ve Ç çalışmamakta. Bu sorunu Cosmos Kütüphanesi yetkilileri giderecektir.
Pull Request : https://github.com/CosmosOS/Cosmos/pull/1224
Issue : https://github.com/CosmosOS/Cosmos/issues/1225