coolwolf / 07/02/2023

Aspx için kod tabanlı MessageBox fonksiyonu

public class WebMsgBox
    {
        protected static Hashtable HandlerPages = new Hashtable();
        private WebMsgBox()
        {
        }
        public static void Show(string message)
        {
            if (!(HandlerPages.Contains(HttpContext.Current.Handler)))
            {
                var currentPage = (Page)HttpContext.Current.Handler;
                if (currentPage != null)
                {
                    var messageQueue = new Queue();
                    messageQueue.Enqueue(message);
                    HandlerPages.Add(HttpContext.Current.Handler, messageQueue);
                    currentPage.Unload += new EventHandler(CurrentPageUnload);
                }
            }
            else
            {
                var queue = ((Queue)(HandlerPages[HttpContext.Current.Handler]));
                queue.Enqueue(message);
            }
        }
        private static void CurrentPageUnload(object sender, EventArgs e)
        {
            var queue = ((Queue)(HandlerPages[HttpContext.Current.Handler]));
            if (queue != null)
            {
                var builder = new StringBuilder();
                int iMsgCount = queue.Count;
                builder.Append("<script language='javascript'>");
                string sMsg;
                while ((iMsgCount > 0))
                {
                    iMsgCount -= 1;
                    sMsg = Convert.ToString(queue.Dequeue());
                    sMsg = sMsg.Replace("\"", "'");
                    builder.Append("alert( \"" + sMsg + "\" );");
                }
                builder.Append("</script>");
                HandlerPages.Remove(HttpContext.Current.Handler);
                HttpContext.Current.Response.Write(builder.ToString());
            }
        }
    }

Kullanmak için, herhangi bir C# kod sayfasında (xxx.aspx.cs) alttakine benzer bir kod yazmanız yeterli. İlk açılacak Aspx formunda mesaj görüntülenecektir.

WebMsgBox.Show("Web Forms MessageBox denemesi");

coolwolf / 27/09/2018

MVC’de Controller açıklamaları eklemek ve bu açıklamaları listelemek

Controller adının üzerine Description attribute ekliyoruz:

[Description("Benim Çok Çalışan Kontrollerim")]
public class MyController : Controller
{
}

ardından uygulamamızdaki tüm controller’leri ve içlerindeki metodları listelemek için aşağıdaki fonksiyonu kullanabiliriz:
 

Assembly assembly = Assembly.GetExecutingAssembly();
IEnumerable types = assembly.GetTypes().Where(type => typeof(Controller).IsAssignableFrom(type)).OrderBy(x => x.Name);
List _controllers = new List();
List _methods = new List();
foreach (Type cls in types)
{
	AttributeCollection attributes =TypeDescriptor.GetProperties(this)[cls.Name].Attributes;
	DescriptionAttribute myAttribute = (DescriptionAttribute)attributes[typeof(DescriptionAttribute)];
	_controllers.Add(new SelectListItem() { Text= myAttribute.Description, Value= cls.Name.Replace("Controller", "") });
	IEnumerable memberInfo = cls.GetMethods(BindingFlags.Instance | BindingFlags.DeclaredOnly | BindingFlags.Public).Where(m => !m.GetCustomAttributes(typeof(System.Runtime.CompilerServices.CompilerGeneratedAttribute), true).Any()).OrderBy(x => x.Name);
	foreach (MemberInfo method in memberInfo)
	{
		if (method.ReflectedType.IsPublic && !method.IsDefined(typeof(NonActionAttribute)))
		{
			_methods.Add(new SelectListItem() { Text=method.Name.ToString() });
		}
	}
}

coolwolf / 22/03/2018

MVC @Html.DropDownList SelectedValue does not work

I am new to mvc. When i create @Html.DropDownList, i see sometimes i can set SelectedValue but sometimes i can not.
I tried many solutions like creating “<select” manually, passing generic List<>, passing List<SelectListItem>, passing SelectList etc.
But no success. Razor View does no select the item which i want.
After days of searching, i found a blog entry which solve my problem.
My controller side was like that:

public ActionResult Liste(int? MyValue)
{
	if (MyValue== null || MyValue == 0) MyValue = 1;
	List<SelectListItem> _sl = Enum.GetValues(typeof(MyEnum)).Cast<MyEnum>().Select(v => new SelectListItem{Text = v.ToString(),Value = ((int)v).ToString()}).ToList();
	foreach(SelectListItem _itm in _sl)
	{
		if (_itm.Value == MyValue.Value.ToString()) _itm.Selected = true;
	}
	ViewBag.ProductType= _sl;
	ViewBag.SelValue= MyValue;
	return View();
}

and my Razor View was like that:

@Html.DropDownList("ProductType", (List<SelectListItem>)ViewBag.ProductType, new { @class = "form-control" })

normally there is no problem. Problem occurs only when i try to set selected item. This completely works.
So what is the problem then?
The problem is: The name of dropdown and viewbag constant is same. 
When i change my controller to this:

public ActionResult Liste(int? MyValue)
{
	if (MyValue== null || MyValue == 0) MyValue = 1;
	List<SelectListItem> _sl = Enum.GetValues(typeof(MyEnum)).Cast<MyEnum>().Select(v => new SelectListItem{Text = v.ToString(),Value = ((int)v).ToString()}).ToList();
	foreach(SelectListItem _itm in _sl)
	{
		if (_itm.Value == MyValue.Value.ToString()) _itm.Selected = true;
	}
	ViewBag.MyProdList= _sl;
	ViewBag.SelValue= MyValue;
	return View();
}

and View to this:

@Html.DropDownList("ProductType", (List<SelectListItem>)ViewBag.MyProdList, new { @class = "form-control" })

everything works.
I wonder, why did i not understand this before.
If anyone face same problem, i hope he/she find this blog entry and not spent lot of time as i spent.

coolwolf / 07/12/2014

Silverlight MD5 Fonksiyonu


public static string Md5(string duzMetin)
{
string _sonuc = "";
System.Text.UnicodeEncoding _ucEnc=new System.Text.UnicodeEncoding();
byte[] _kByte;
System.Security.Cryptography.HashAlgorithm _hAlg;
byte[] _sByte;
if (String.IsNullOrEmpty(duzMetin)) _kByte = _ucEnc.GetBytes("");
else _kByte = _ucEnc.GetBytes(duzMetin);
_hAlg = new System.Security.Cryptography.SHA256Managed();
_sByte = _hAlg.ComputeHash(_kByte);
_sonuc = Convert.ToBase64String(_sByte);
return _sonuc;
}

coolwolf / 07/11/2013

C# OpenFileDialog

 
C# dilinde, sürücüde bulunan dosyalardan birini seçmek için kullanılan openfiledialog komutuna küçük bir örnek :
Title özelliği, dosya seçme penceresinin başlığını belirler.
Filter özelliği gösterilecek dosya türlerini belirler.

OpenFileDialog ofd = new OpenFileDialog();
ofd.Title = "Please select the LOG File";
ofd.Filter = "Log Files (*.log)|*.log";
ofd.ShowDialog();
txtLogFile.Text = ofd.FileName;

coolwolf / 24/04/2013

DXScheduler Türkçe Tecüme

DXScheduler kullananlar için Türkçe tercüme sınıfı.
 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DevExpress.XtraScheduler.Localization;
using DevExpress.XtraLayout.Localization;
using DevExpress.XtraEditors.Controls;
using DevExpress.XtraBars.Localization;
namespace BenimProgramim
{
//    Product / Class Name / Enumerator / Namespace
//XtraBars / BarLocalizer / BarString / DevExpress.XtraBars.Localization
//XtraEditors / Localizer / StringId / DevExpress.XtraEditors.Controls
//XtraGrid / GridLocalizer / GridStringId / DevExpress.XtraGrid.Localization
//XtraNavBar / NavBarLocalizer / NavBarStringId / DevExpress.XtraNavBar
//XtraPivotGrid / PivotGridLocalizer / PivotGridStringId / DevExpress.XtraPivotGridLocalization
//XtraPrinting / PreviewLocalizer / PreviewStringId / DevExpress.XtraPrintingLocalization
//XtraReports / ReportLocalizer / ReportStringId / DevExpress.XtraReportsLocalization
//XtraScheduler / SchedulerLocalizer / SchedulerStringId / DevExpress.XtraScheduler.Localization
//XtraTreeList / TreeListLocalizer / TreeListStringId / DevExpress.XtraTreeList.Localization
//XtraVerticalGrid / VGridLocalizer / VGridStringId / DevExpress.XtraVerticalGrid.Localization
//XtraWizard / WizardLocalizer / WizardStringId / DevExpress.XtraWizard.Localization
    public class TurkceSchedulerLocalizer : SchedulerLocalizer
    {
        public override string Language { get { return "Turkish"; } }
        public override string GetLocalizedString(SchedulerStringId id)
        {
            switch (id)
            {
                case SchedulerStringId.Abbr_Day: return "Gün";
                case SchedulerStringId.Abbr_Days: return "Gün";
                case SchedulerStringId.Abbr_DaysShort: return "Gün";
                case SchedulerStringId.Abbr_Hour: return "Saat";
                case SchedulerStringId.Abbr_Hours: return "Saat";
                case SchedulerStringId.Abbr_HoursShort: return "Saat";
                case SchedulerStringId.Abbr_Minutes: return "Dakika";
                case SchedulerStringId.Abbr_MinutesShort1: return "Dak";
                case SchedulerStringId.Abbr_MinutesShort2: return "Dk";
                case SchedulerStringId.Abbr_Month: return "Ay";
                case SchedulerStringId.Abbr_Months: return "Ay";
                case SchedulerStringId.Abbr_Week: return "Hafta";
                case SchedulerStringId.Abbr_Weeks: return "Hafta";
                case SchedulerStringId.Abbr_WeeksShort: return "Hf";
                case SchedulerStringId.Abbr_Year: return "Yıl";
                case SchedulerStringId.Abbr_Years: return "Yıl";
                case SchedulerStringId.Appointment_EndContinueText: return "Son / Devam";
                case SchedulerStringId.Appointment_StartContinueText: return "Başla / Devam";
                case SchedulerStringId.AppointmentLabel_Anniversary: return "Yıldönümü";
                case SchedulerStringId.AppointmentLabel_Birthday: return "Doğum günü";
                case SchedulerStringId.AppointmentLabel_Business: return "İş";
                case SchedulerStringId.AppointmentLabel_Important: return "Önemli";
                case SchedulerStringId.AppointmentLabel_MustAttend: return "İlgilenmek gerekir";
                case SchedulerStringId.AppointmentLabel_NeedsPreparation: return "Hazırlık gerekir";
                case SchedulerStringId.AppointmentLabel_None: return "Yok";
                case SchedulerStringId.AppointmentLabel_Personal: return "Kişisel";
                case SchedulerStringId.AppointmentLabel_PhoneCall: return "Telefon görüşmesi";
                case SchedulerStringId.AppointmentLabel_TravelRequired: return "Seyahat gerektirir";
                case SchedulerStringId.AppointmentLabel_Vacation: return "Tatil";
                case SchedulerStringId.Caption_10Minutes: return "10 dakika";
                case SchedulerStringId.Caption_15Minutes: return "15 dakika";
                case SchedulerStringId.Caption_20Minutes: return "20 dakika";
                case SchedulerStringId.Caption_30Minutes: return "30 dakika";
                case SchedulerStringId.Caption_5Minutes: return "5 dakika";
                case SchedulerStringId.Caption_60Minutes: return "60 dakika";
                case SchedulerStringId.Caption_6Minutes: return "6 dakika";
                case SchedulerStringId.Caption_AllDay: return "Tam gün";
                case SchedulerStringId.Caption_AllResources: return "Kaynaklar";
                case SchedulerStringId.Caption_Appointment: return "Not";
                case SchedulerStringId.Caption_AppointmentDependencyTypeFinishToFinish: return "Bitirmek için Finish yazın";
                case SchedulerStringId.Caption_AppointmentDependencyTypeFinishToStart: return "Başlatmak için Finish yazın";
                case SchedulerStringId.Caption_AppointmentDependencyTypeStartToFinish: return "Bitirmek için Start yazın";
                case SchedulerStringId.Caption_AppointmentDependencyTypeStartToStart: return "Başlatmak için Start yazın";
                case SchedulerStringId.Caption_Busy: return "Dolu";
                case SchedulerStringId.Caption_CalendarDetailsPrintStyle: return "Detay yazdırma stili";
                case SchedulerStringId.Caption_CheckMappings: return "Eşleşmeleri kontrol et";
                case SchedulerStringId.Caption_ColorConverterBlackAndWhite: return "Siyah beyaz";
                case SchedulerStringId.Caption_ColorConverterFullColor: return "Renkli";
                case SchedulerStringId.Caption_ColorConverterGrayScale: return "Grinin tonları";
                case SchedulerStringId.Caption_DailyPrintStyle: return "Günlük yazdırma stili";
                case SchedulerStringId.Caption_DayViewDescription: return "Gün görünümü";
                case SchedulerStringId.Caption_DecreaseVisibleResourcesCount: return "Görünür kaynak sayısını azalt";
                case SchedulerStringId.Caption_EmptyResource: return "Boş kaynak";
                case SchedulerStringId.Caption_Event: return "Yeni Olay";
                case SchedulerStringId.Caption_FirstVisibleResources: return "İlk görünecek kaynak";
                case SchedulerStringId.Caption_Free: return "Boş";
                case SchedulerStringId.Caption_GanttViewDescription: return "Gantt görünümü";
                case SchedulerStringId.Caption_GroupByDate: return "Tarihe göre grupla";
                case SchedulerStringId.Caption_GroupByDateDescription: return "Tarihe göre grupla";
                case SchedulerStringId.Caption_GroupByNone: return "Gruplandırma yok";
                case SchedulerStringId.Caption_GroupByNoneDescription: return "Gruplandırmayı iptal eder";
                case SchedulerStringId.Caption_GroupByResourceDescription: return "Kaynaklara göre gruplandırmanızı sağlar";
                case SchedulerStringId.Caption_GroupByResources: return "Kaynaklara göre grupla";
                case SchedulerStringId.Caption_IncreaseVisibleResourcesCount: return "Görünen kaynak sayısını arttır";
                case SchedulerStringId.Caption_LastVisibleResources: return "Son görünen kaynaklar";
                case SchedulerStringId.Caption_MappingsValidation: return "Eşleşme doğrulaması";
                case SchedulerStringId.Caption_MappingsWizard: return "Eşleşme sihirbazı";
                case SchedulerStringId.Caption_MemoPrintStyle: return "Uzun metin yazdırma stili";
                case SchedulerStringId.Caption_ModifyAppointmentDependencyMappingsTransactionDescription: return "Bağlantı eşleştirme işlemleri";
                case SchedulerStringId.Caption_ModifyAppointmentDependencyStorageTransactionDescription: return "Bağlantı veritabanı işlemleri";
                case SchedulerStringId.Caption_ModifyAppointmentMappingsTransactionDescription: return "Eşleştirme işlemleri";
                case SchedulerStringId.Caption_ModifyAppointmentStorageTransactionDescription: return "Veritabanı işlemleri";
                case SchedulerStringId.Caption_ModifyResourceMappingsTransactionDescription: return "Eşleştirme işlemleri";
                case SchedulerStringId.Caption_ModifyResourceStorageTransactionDescription: return "Veritabanı işlemleri";
                case SchedulerStringId.Caption_MonthlyPrintStyle: return "Aylık yazdırma stili";
                case SchedulerStringId.Caption_MonthViewDescription: return "Aylık görünüm";
                case SchedulerStringId.Caption_NAppointmentsAreSelected: return "{0} not seçildi";
                case SchedulerStringId.Caption_NextAppointment: return "Sonraki not";
                case SchedulerStringId.Caption_NextVisibleResources: return "Sonraki görünür kaynak";
                case SchedulerStringId.Caption_NextVisibleResourcesPage: return "Sonraki görünür kaynak sayfası";
                case SchedulerStringId.Caption_NoneRecurrence: return "Tekrar yok";
                case SchedulerStringId.Caption_NoneReminder: return "Hatırlatma yok";
                case SchedulerStringId.Caption_OnScreenResources: return "Ekrandaki kaynaklar";
                case SchedulerStringId.Caption_OutOfOffice: return "Ofis dışında";
                case SchedulerStringId.Caption_PleaseSeeAbove: return "Lütfen yukarı bakın";
                case SchedulerStringId.Caption_PrevAppointment: return "Önceki not";
                case SchedulerStringId.Caption_PrevVisibleResources: return "Önceki görünür kaynaklar";
                case SchedulerStringId.Caption_PrevVisibleResourcesPage: return "Önceki görünür kaynaklar sayfası";
                case SchedulerStringId.Caption_ReadOnly: return "Sadece okunur";
                case SchedulerStringId.Caption_Recurrence: return "Tekrar";
                case SchedulerStringId.Caption_RecurrenceEndTime: return "Bitiş";
                case SchedulerStringId.Caption_RecurrenceLocation: return "Yer";
                case SchedulerStringId.Caption_RecurrencePattern: return "Örnek";
                case SchedulerStringId.Caption_RecurrenceShowTimeAs: return "Saati şöyle göster";
                case SchedulerStringId.Caption_RecurrenceStartTime: return "Başlangıç";
                case SchedulerStringId.Caption_RecurrenceSubject: return "Konu";
                case SchedulerStringId.Caption_Reminder: return "Hatırlatma";
                case SchedulerStringId.Caption_Reminders: return "Hatırlatma";
                case SchedulerStringId.Caption_ResourceAll: return "Tüm kaynaklar";
                case SchedulerStringId.Caption_ResourceNone: return "Kaynak yok";
                case SchedulerStringId.Caption_SetupAppointmentDependencyStorage: return "Not bağlantı veritabanını ayarla";
                case SchedulerStringId.Caption_SetupAppointmentMappings: return "Not eşleşmesini ayarla";
                case SchedulerStringId.Caption_SetupAppointmentStorage: return "Not veritabanını ayarla";
                case SchedulerStringId.Caption_SetupDependencyMappings: return "Bağlantı eşleşmelerini ayarla";
                case SchedulerStringId.Caption_SetupResourceMappings: return "Kaynak eşleşmelerini ayarla";
                case SchedulerStringId.Caption_SetupResourceStorage: return "Kaynak veritabanını ayarla";
                case SchedulerStringId.Caption_ShadingApplyToAllDayArea: return "Gölgelendirmeyi tüm güne uygula";
                case SchedulerStringId.Caption_ShadingApplyToAppointments: return "Gölgelendirmeyi notlara uygula";
                case SchedulerStringId.Caption_ShadingApplyToAppointmentStatuses: return "Gölgelendirmeyi not durumlarına uygula";
                case SchedulerStringId.Caption_ShadingApplyToCells: return "Gölgelendirmeyi hücrelere uygula";
                case SchedulerStringId.Caption_ShadingApplyToHeaders: return "Gölgelendirmeyi başlıklara uygula";
                case SchedulerStringId.Caption_ShadingApplyToTimeRulers: return "Gölgelendirmeyi zaman cetveline uygula";
                case SchedulerStringId.Caption_SplitAppointment: return "Notu ayır";
                case SchedulerStringId.Caption_StartTime: return "Başlama zamanı";
                case SchedulerStringId.Caption_Tentative: return "Geçici";
                case SchedulerStringId.Caption_TimelineViewDescription: return "Zaman cetveli şeklinde göster";
                case SchedulerStringId.Caption_TrifoldPrintStyle: return "Trifold yazdırma stili";
                case SchedulerStringId.Caption_UntitledAppointment: return "Başlıksız not";
                case SchedulerStringId.Caption_VisibleResources: return "Görünür kaynaklar";
                case SchedulerStringId.Caption_WeekDaysEveryDay: return "Her gün";
                case SchedulerStringId.Caption_WeekDaysWeekendDays: return "Hafta sonu";
                case SchedulerStringId.Caption_WeekDaysWorkDays: return "İş günleri";
                case SchedulerStringId.Caption_WeeklyPrintStyle: return "Haftalık yazdırma stili";
                case SchedulerStringId.Caption_WeekOfMonthFirst: return "Ay'ın ilk haftası";
                case SchedulerStringId.Caption_WeekOfMonthFourth: return "Ay'ın dördüncü haftası";
                case SchedulerStringId.Caption_WeekOfMonthLast: return "Ay'ın son haftası";
                case SchedulerStringId.Caption_WeekOfMonthSecond: return "Ay'ın ikinci haftası";
                case SchedulerStringId.Caption_WeekOfMonthThird: return "Ay'ın üçüncü haftası";
                case SchedulerStringId.Caption_WeekViewDescription: return "Haftalık görünümde gösterir";
                case SchedulerStringId.Caption_WorkWeekViewDescription: return "Çalışma haftası görünümü şeklinde gösterir";
                case SchedulerStringId.DefaultToolTipStringFormat_SplitAppointment: return "Notu böl";
                case SchedulerStringId.DescCmd_CellsAutoHeight: return "Otomatik hücre yüksekliği";
                case SchedulerStringId.DescCmd_ChangeAppointmentReminderUI: return "Not hatırlatma arayüzünü değiştir";
                case SchedulerStringId.DescCmd_ChangeSnapToCellsUI: return "Hücrelere yaklaştır görünümünü değiştir";
                case SchedulerStringId.DescCmd_ChangeTimelineScaleWidth: return "Zaman cetveli genişliğini değiştir";
                case SchedulerStringId.DescCmd_CompressWeekend: return "Haftasonunu sıkıştır";
                case SchedulerStringId.DescCmd_CreateAppointmentDependency: return "Not bağlantısı ekle";
                case SchedulerStringId.DescCmd_DeleteAppointment: return "Not'u sil";
                case SchedulerStringId.DescCmd_DeleteAppointmentDependency: return "Not bağlantısını sil";
                case SchedulerStringId.DescCmd_DeleteOccurrence: return "Tekrarlamayı sil";
                case SchedulerStringId.DescCmd_DeleteSeries: return "Serileri Sil";
                case SchedulerStringId.DescCmd_EditAppointmentDependency: return "Not bağlantısını düzenle";
                case SchedulerStringId.DescCmd_GotoToday: return "Bugüne Git";
                case SchedulerStringId.DescCmd_LabelAs: return "Etiket olarak";
                case SchedulerStringId.DescCmd_NavigateBackward: return "Geri";
                case SchedulerStringId.DescCmd_NavigateForward: return "İleri";
                case SchedulerStringId.DescCmd_NewAppointment: return "Not Oluştur";
                case SchedulerStringId.DescCmd_NewRecurringAppointment: return "Tekrarlı Not Oluştur";
                case SchedulerStringId.DescCmd_OpenAppointment: return "Notu Aç";
                case SchedulerStringId.DescCmd_OpenOccurrence: return "Oluşma zamanını aç";
                case SchedulerStringId.DescCmd_OpenSchedule: return "Zamanlamayı aç";
                case SchedulerStringId.DescCmd_OpenSeries: return "Serileri Aç";
                case SchedulerStringId.DescCmd_Print: return "Yazdır";
                case SchedulerStringId.DescCmd_PrintPageSutup: return "Sayfa Yapılandır";
                case SchedulerStringId.DescCmd_PrintPreview: return "Yazdırma Önizleme";
                case SchedulerStringId.DescCmd_SaveSchedule: return "Zamanlamayı kaydet";
                case SchedulerStringId.DescCmd_ShowTimeAs: return "Saat görünüm şekli";
                case SchedulerStringId.DescCmd_ShowWorkTimeOnly: return "Sadece çalışma saatlerini göster";
                case SchedulerStringId.DescCmd_SplitAppointment: return "Not'u böl";
                case SchedulerStringId.DescCmd_TimeScalesMenu: return "Zaman skalası menüsü";
                case SchedulerStringId.DescCmd_ToggleRecurrence: return "Tekrarları topla";
                case SchedulerStringId.DescCmd_ViewZoomIn: return "Yaklaş";
                case SchedulerStringId.DescCmd_ViewZoomOut: return "Uzaklaş";
                case SchedulerStringId.DisplayName_Appointment: return "Not";
                case SchedulerStringId.Format_CopyNOf: return "{1} kopyadan {0}";
                case SchedulerStringId.Format_CopyOf: return "kopyası";
                case SchedulerStringId.Format_TimeBeforeStart: return "Başlamadan önceki süre";
                case SchedulerStringId.MemoPrintDateFormat: return "Tarih formatı";
                case SchedulerStringId.MenuCmd_10Minutes: return "10 dakika";
                case SchedulerStringId.MenuCmd_15Minutes: return "15 dakika";
                case SchedulerStringId.MenuCmd_20Minutes: return "20 dakika";
                case SchedulerStringId.MenuCmd_30Minutes: return "30 dakika";
                case SchedulerStringId.MenuCmd_5Minutes: return "5 dakika";
                case SchedulerStringId.MenuCmd_60Minutes: return "60 dakika";
                case SchedulerStringId.MenuCmd_6Minutes: return "6 dakika";
                case SchedulerStringId.MenuCmd_AppointmentCancel: return "İptal";
                case SchedulerStringId.MenuCmd_AppointmentCopy: return "Kopyala";
                case SchedulerStringId.MenuCmd_AppointmentLabelAnniversary: return "yıl dönümü";
                case SchedulerStringId.MenuCmd_AppointmentLabelBirthday: return "Doğum Günü";
                case SchedulerStringId.MenuCmd_AppointmentLabelBusiness: return "İş";
                case SchedulerStringId.MenuCmd_AppointmentLabelImportant: return "Önemli";
                case SchedulerStringId.MenuCmd_AppointmentLabelMustAttend: return "İlgi Gerektirir";
                case SchedulerStringId.MenuCmd_AppointmentLabelNeedsPreparation: return "Hazırlık Gerektirir";
                case SchedulerStringId.MenuCmd_AppointmentLabelNone: return "Yok";
                case SchedulerStringId.MenuCmd_AppointmentLabelPersonal: return "Kişisel";
                case SchedulerStringId.MenuCmd_AppointmentLabelPhoneCall: return "Telefonla Ara";
                case SchedulerStringId.MenuCmd_AppointmentLabelTravelRequired: return "Yolculuk Gerektirir";
                case SchedulerStringId.MenuCmd_AppointmentLabelVacation: return "Tatil";
                case SchedulerStringId.MenuCmd_AppointmentMove: return "Taşı";
                case SchedulerStringId.MenuCmd_Busy: return "Meşgul";
                case SchedulerStringId.MenuCmd_CellsAutoHeight: return "Otomotik yükseklik";
                case SchedulerStringId.MenuCmd_ChangeAppointmentReminderUI: return "Hatırlatma arayüzünü değiştir";
                case SchedulerStringId.MenuCmd_ChangeSnapToCellsUI: return "Hücreye sığdır";
                case SchedulerStringId.MenuCmd_ChangeTimelineScaleWidth: return "Zaman çizgisi ölçeği";
                case SchedulerStringId.MenuCmd_CompressWeekend: return "Haftasonunu sıkıştır";
                case SchedulerStringId.MenuCmd_CreateAppointmentDependency: return "Not'a bağlantı ekle";
                case SchedulerStringId.MenuCmd_CustomizeCurrentView: return "Geçerli görünümü özelleştir";
                case SchedulerStringId.MenuCmd_CustomizeTimeRuler: return "Zaman cetvelini özelleştir";
                case SchedulerStringId.MenuCmd_DeleteAppointment: return "Not'u sil";
                case SchedulerStringId.MenuCmd_DeleteAppointmentDependency: return "Not'un bağlantısını sil";
                case SchedulerStringId.MenuCmd_DeleteOccurrence: return "Tekrarlamayı sil";
                case SchedulerStringId.MenuCmd_DeleteSeries: return "Serileri sil";
                case SchedulerStringId.MenuCmd_EditAppointmentDependency: return "Not bağlantısını düzenle";
                case SchedulerStringId.MenuCmd_EditSeries: return "Serileri Düzenle";
                case SchedulerStringId.MenuCmd_Free: return "Boş";
                case SchedulerStringId.MenuCmd_GotoDate: return "Tarihe git";
                case SchedulerStringId.MenuCmd_GotoThisDay: return "Şu güne git";
                case SchedulerStringId.MenuCmd_GotoToday: return "Bugüne git";
                case SchedulerStringId.MenuCmd_LabelAs: return "Etiket olarak";
                case SchedulerStringId.MenuCmd_NavigateBackward: return "Geri";
                case SchedulerStringId.MenuCmd_NavigateForward: return "İleri";
                case SchedulerStringId.MenuCmd_NewAllDayEvent: return "Yeni tam gün olayı";
                case SchedulerStringId.MenuCmd_NewAppointment: return "Not Oluştur";
                case SchedulerStringId.MenuCmd_NewRecurringAppointment: return "Tekrarlanan Not Oluştur";
                case SchedulerStringId.MenuCmd_NewRecurringEvent: return "Tekrarlanan Olay Oluştur";
                case SchedulerStringId.MenuCmd_OpenAppointment: return "Notu Aç";
                case SchedulerStringId.MenuCmd_OpenOccurrence: return "Tekrarını Aç";
                case SchedulerStringId.MenuCmd_OpenSchedule: return "Zamanlamaı Aç";
                case SchedulerStringId.MenuCmd_OpenSeries: return "Serileri Aç";
                case SchedulerStringId.MenuCmd_OtherSettings: return "Diğer Seçenekler";
                case SchedulerStringId.MenuCmd_OutOfOffice: return "Ofis Dışında";
                case SchedulerStringId.MenuCmd_Print: return "Yazdır";
                case SchedulerStringId.MenuCmd_PrintAppointment: return "Notu Yazdır";
                case SchedulerStringId.MenuCmd_PrintPageSetup: return "Sayfa Yapısı";
                case SchedulerStringId.MenuCmd_PrintPreview: return "sayfa Önizleme";
                case SchedulerStringId.MenuCmd_RestoreOccurrence: return "Tekrarlamayı geri al";
                case SchedulerStringId.MenuCmd_SaveSchedule: return "Zamanlamayı kaydet";
                case SchedulerStringId.MenuCmd_ShowTimeAs: return "Saati şöyle göster";
                case SchedulerStringId.MenuCmd_ShowWorkTimeOnly: return "Sadece hafta içi günleri göster";
                case SchedulerStringId.MenuCmd_SwitchToDayView: return "gün görünümüne geç";
                case SchedulerStringId.MenuCmd_SwitchToGanttView: return "Gantt görünümüne geç";
                case SchedulerStringId.MenuCmd_SwitchToGroupByDate: return "Darih gruplamasına geç";
                case SchedulerStringId.MenuCmd_SwitchToGroupByNone: return "Gruplandırmayı iptal et";
                case SchedulerStringId.MenuCmd_SwitchToGroupByResource: return "Kaynak gruplandırmasına geç";
                case SchedulerStringId.MenuCmd_SwitchToMonthView: return "Ay görünümüne geç";
                case SchedulerStringId.MenuCmd_SwitchToTimelineView: return "Zaman çizgisi görünümüne geç";
                case SchedulerStringId.MenuCmd_SwitchToWeekView: return "Hafta görünümüne geç";
                case SchedulerStringId.MenuCmd_SwitchToWorkWeekView: return "Çalışma haftası görünümüne geç";
                case SchedulerStringId.MenuCmd_SwitchViewMenu: return "Görünüm değiştir";
                case SchedulerStringId.MenuCmd_Tentative: return "Geçici";
                case SchedulerStringId.MenuCmd_TimeScaleCaptionsMenu: return "Menü Başlığı";
                case SchedulerStringId.MenuCmd_TimeScaleDay: return "Gün";
                case SchedulerStringId.MenuCmd_TimeScaleHour: return "Saat";
                case SchedulerStringId.MenuCmd_TimeScaleMonth: return "Ay";
                case SchedulerStringId.MenuCmd_TimeScaleQuarter: return "3 aylık";
                case SchedulerStringId.MenuCmd_TimeScalesMenu: return "Menü";
                case SchedulerStringId.MenuCmd_TimeScaleWeek: return "Hafta";
                case SchedulerStringId.MenuCmd_TimeScaleYear: return "Yıl";
                case SchedulerStringId.MenuCmd_ToggleRecurrence: return "Tekrarları topla";
                case SchedulerStringId.MenuCmd_ViewZoomIn: return "Yakınlaş";
                case SchedulerStringId.MenuCmd_ViewZoomOut: return "Uzaklaş";
                case SchedulerStringId.Msg_ApplyToAllStyles: return "Tüm stillere uygula";
                case SchedulerStringId.Msg_CantFitIntoPage: return "Sayfa içine sığdırılamadı";
                case SchedulerStringId.Msg_Conflict: return "Çakışma";
                case SchedulerStringId.Msg_DuplicateCustomFieldMappings: return "Özel alan eşleştirmelerinde çakışma";
                case SchedulerStringId.Msg_DuplicateMappingMember: return "Çakışan eşleşme üyesi";
                case SchedulerStringId.Msg_InconsistentRecurrenceInfoMapping: return "Uyuşmayan Tekrarlama bilgisi eşleşmesi";
                case SchedulerStringId.Msg_IncorrectMappingsQuestion: return "Geçersiz eşleşme sorusu";
                case SchedulerStringId.Msg_InternalError: return "İç hata";
                case SchedulerStringId.Msg_InvalidAppointmentDuration: return "Geçersiz not süresi";
                case SchedulerStringId.Msg_InvalidDayCount: return "Geçersiz gün sayısı";
                case SchedulerStringId.Msg_InvalidDayCountValue: return "Geçersiz gün sayısı değeri";
                case SchedulerStringId.Msg_InvalidDayNumber: return "Geçersiz gün numarası";
                case SchedulerStringId.Msg_InvalidDayNumberValue: return "Geçersiz gün numarası değeri";
                case SchedulerStringId.Msg_InvalidDayOfWeek: return "Geçersiz hafta günü";
                case SchedulerStringId.Msg_InvalidDayOfWeekForDailyRecurrence: return "Günlük tekrar için geçersiz hafta günü.";
                case SchedulerStringId.Msg_InvalidEndDate: return "Geçersiz bitiş tarihi";
                case SchedulerStringId.Msg_InvalidInputFile: return "Geçersiz dosya";
                case SchedulerStringId.Msg_InvalidMonthCount: return "Geçersiz ay sayısı";
                case SchedulerStringId.Msg_InvalidMonthCountValue: return "Geçersiz ay sayısı değeri";
                case SchedulerStringId.Msg_InvalidOccurrencesCount: return "Geçersiz hadise sayısı";
                case SchedulerStringId.Msg_InvalidOccurrencesCountValue: return "Geçersiz hadise sayısı değeri";
                case SchedulerStringId.Msg_InvalidReminderTimeBeforeStart: return "başlamadan önceki hatırlatma süresi geçersiz";
                case SchedulerStringId.Msg_InvalidSize: return "Geçersiz boyut";
                case SchedulerStringId.Msg_InvalidTimeOfDayInterval: return "Saat sıklığı geçersiz";
                case SchedulerStringId.Msg_InvalidWeekCount: return "Geçersiz hafta sayısı";
                case SchedulerStringId.Msg_InvalidWeekCountValue: return "Geçersiz hafta sayısı değeri";
                case SchedulerStringId.Msg_InvalidYearCount: return "Geçersiz yıl sayısı";
                case SchedulerStringId.Msg_InvalidYearCountValue: return "Geçersiz yıl sayısı değeri";
                case SchedulerStringId.Msg_IsNotValid: return "Geçersiz";
                case SchedulerStringId.Msg_LoadCollectionFromXml: return "Koleksiyonu XML'den yükle";
                case SchedulerStringId.Msg_MappingsCheckPassedOk: return "Eşleşme kontrolü tamamlandı";
                case SchedulerStringId.Msg_MemoPrintNoSelectedItems: return "Seçili öğe bulunamadı";
                case SchedulerStringId.Msg_MissingMappingMember: return "Eşleşme alanı bulunamadı";
                case SchedulerStringId.Msg_MissingRequiredMapping: return "Gerekli bir eşleşme bulunamadı";
                case SchedulerStringId.Msg_NoMappingForObject: return "Nesne için eşleşme yok";
                case SchedulerStringId.Msg_OutlookCalendarNotFound: return "Outlook Calendar bulunamadı";
                case SchedulerStringId.Msg_OverflowTimeOfDayInterval: return "Günlük saat sıklığı taşıyor";
                case SchedulerStringId.Msg_PrintStyleNameExists: return "Yazdırma stili adı zaten var";
                case SchedulerStringId.Msg_RecurrenceExceptionsWillBeLost: return "Tekrarlama istisnası kaybolacak";
                case SchedulerStringId.Msg_Warning: return "Dikkat";
                case SchedulerStringId.Msg_WarningAppointmentDeleted: return "Dikkat... Not silindi.";
                case SchedulerStringId.Msg_WarningDayNumber: return "Dikkat... Gün sayısı";
                case SchedulerStringId.Msg_XtraSchedulerNotAssigned: return "XtraScheduler atanmamış";
                case SchedulerStringId.Reporting_NotAssigned_TimeCells: return "Zaman hücresi atanmamış";
                case SchedulerStringId.Reporting_NotAssigned_View: return "Görünüm atanmamış";
                case SchedulerStringId.TextAppointmentSnapToCells_Always: return "Daima";
                case SchedulerStringId.TextAppointmentSnapToCells_Auto: return "Otomatik";
                case SchedulerStringId.TextAppointmentSnapToCells_Disabled: return "Devre dışı";
                case SchedulerStringId.TextAppointmentSnapToCells_Never: return "Asla";
                case SchedulerStringId.TextDailyPatternString_EveryDay: return "Her gün";
                case SchedulerStringId.TextDailyPatternString_EveryDays: return "Tüm günler";
                case SchedulerStringId.TextDailyPatternString_EveryWeekDay: return "Hafta içi her gün";
                case SchedulerStringId.TextDailyPatternString_EveryWeekend: return "Hafta sonu her gün";
                case SchedulerStringId.TextDuration_ForPattern: return "Desen için";
                case SchedulerStringId.TextDuration_FromForDays: return "{0} günlüğüne";
                case SchedulerStringId.TextDuration_FromForDaysHours: return "{0} gün {1} saatliğine";
                case SchedulerStringId.TextDuration_FromForDaysHoursMinutes: return "{0} gün {1} saat {3} dakikalığına";
                case SchedulerStringId.TextDuration_FromForDaysMinutes: return "{0} gün {1} dakikalığına";
                case SchedulerStringId.TextDuration_FromTo: return "a kadar";
                case SchedulerStringId.TextRecurrenceTypeDaily: return "Günlük tekrar tipi";
                case SchedulerStringId.TextWeekly_7Day: return "7 gün";
                case SchedulerStringId.TextWeeklyPatternString_EveryWeek: return "Her hafta";
                case SchedulerStringId.TextWeeklyPatternString_EveryWeeks: return "Tüm haftalar";
                case SchedulerStringId.TimeScaleDisplayName_Day: return "Gün";
                case SchedulerStringId.TimeScaleDisplayName_Hour: return "Saat";
                case SchedulerStringId.TimeScaleDisplayName_Month: return "Ay";
                case SchedulerStringId.TimeScaleDisplayName_Quarter: return "3 aylık";
                case SchedulerStringId.TimeScaleDisplayName_Week: return "Hafta";
                case SchedulerStringId.TimeScaleDisplayName_Year: return "Yıl";
                case SchedulerStringId.ViewDisplayName_Day: return "Gün";
                case SchedulerStringId.ViewDisplayName_Gantt: return "Gantt";
                case SchedulerStringId.ViewDisplayName_Month: return "Ay";
                case SchedulerStringId.ViewDisplayName_Timeline: return "Zaman cetveli";
                case SchedulerStringId.ViewDisplayName_Week: return "Hafta";
                case SchedulerStringId.ViewDisplayName_WorkDays: return "İşgünleri";
                case SchedulerStringId.ViewShortDisplayName_Day: return "Gün";
                case SchedulerStringId.ViewShortDisplayName_Gantt: return "Gantt";
                case SchedulerStringId.ViewShortDisplayName_Month: return "Ay";
                case SchedulerStringId.ViewShortDisplayName_Timeline: return "Zaman cetveli";
                case SchedulerStringId.ViewShortDisplayName_Week: return "Hafta";
                case SchedulerStringId.ViewShortDisplayName_WorkDays: return "İşgünleri";
                default: return "!!! yerelliştirmir.";
            }
        }
    }
    public class TurkceLayoutLocalizer : LayoutLocalizer
    {
        public override string Language { get { return "Turkish"; } }
        public override string GetLocalizedString(LayoutStringId id)
        {
            string ret = "";
            switch (id)
            {
                case LayoutStringId.DefaultItemText: return "Öğe";
                case LayoutStringId.DefaultActionText: return "Eylem";
                case LayoutStringId.DefaultEmptyText: return "";
                case LayoutStringId.LayoutItemDescription: return "";
                case LayoutStringId.LayoutGroupDescription: return "";
                case LayoutStringId.TabbedGroupDescription: return "";
                case LayoutStringId.LayoutControlDescription: return "Öğe açıklaması";
                case LayoutStringId.CustomizationFormTitle: return "Özelleştirme formu";
                case LayoutStringId.HiddenItemsPageTitle: return "Görünmez";
                case LayoutStringId.HiddenItemsNodeText: return "Görünmez";
                case LayoutStringId.TreeViewPageTitle: return "Ağaç görünümü";
                case LayoutStringId.RenameSelected: return "Seçileni yeniden adlandır";
                case LayoutStringId.HideItemMenutext: return "Gizli öğe";
                case LayoutStringId.LockItemSizeMenuText: return "Öğe ölçülerini kilitle";
                case LayoutStringId.UnLockItemSizeMenuText: return "Öğe ölçülerinin kilidini aç";
                case LayoutStringId.GroupItemsMenuText: return "Öğeleri grupla";
                case LayoutStringId.UnGroupItemsMenuText: return "Öğelerin grubunu çöz";
                case LayoutStringId.CreateTabbedGroupMenuText: return "Sekmeli grup oluştur";
                case LayoutStringId.AddTabMenuText: return "Sekme ekle";
                case LayoutStringId.UnGroupTabbedGroupMenuText: return "Sekme grubunu aç";
                case LayoutStringId.TreeViewRootNodeName: return "İlk";
                case LayoutStringId.ShowCustomizationFormMenuText: return "Ayarları göster";
                case LayoutStringId.HideCustomizationFormMenuText: return "Ayarları gizle";
                case LayoutStringId.EmptySpaceItemDefaultText: return "Boşluk";
                case LayoutStringId.SplitterItemDefaultText: return "Ayraç";
                case LayoutStringId.SimpleLabelItemDefaultText: return "Metin";
                case LayoutStringId.SimpleSeparatorItemDefaultText: return "Basit Ayraç";
                case LayoutStringId.ControlGroupDefaultText: return "Grup";
                case LayoutStringId.EmptyRootGroupText: return "Boş";
                case LayoutStringId.EmptyTabbedGroupText: return "Boş";
                case LayoutStringId.ResetLayoutMenuText: return "Görünümü Sıfırla";
                case LayoutStringId.RenameMenuText: return "Ad Değiştir";
                case LayoutStringId.TextPositionMenuText: return "Konum";
                case LayoutStringId.TextPositionLeftMenuText: return "Sol konum";
                case LayoutStringId.TextPositionRightMenuText: return "Sağ konum";
                case LayoutStringId.TextPositionTopMenuText: return "Üst Konum";
                case LayoutStringId.TextPositionBottomMenuText: return "Alt konum";
                case LayoutStringId.ShowTextMenuItem: return "Metni Göster";
                case LayoutStringId.HideTextMenuItem: return "Metni Gizle";
                case LayoutStringId.LockSizeMenuItem: return "Boyutu kilitle";
                case LayoutStringId.LockWidthMenuItem: return "Genişliği kilitle";
                case LayoutStringId.LockHeightMenuItem: return "Yüksekliği kilitle";
                case LayoutStringId.LockMenuGroup: return "Grubu kilitle";
                case LayoutStringId.ResetConstraintsToDefaultsMenuItem: return "sıfırla";
                case LayoutStringId.FreeSizingMenuItem: return "Serbest Boyutlandırma";
                case LayoutStringId.CreateEmptySpaceItem: return "Boşluk öğesi oluştur";
                case LayoutStringId.UndoHintCaption: return "Geri Al";
                case LayoutStringId.RedoHintCaption: return "İleir Al";
                case LayoutStringId.LoadHintCaption: return "Yükle";
                case LayoutStringId.SaveHintCaption: return "Kaydet";
                case LayoutStringId.UndoButtonHintText: return "Son işlemi iptal edip bir önceki haline getir";
                case LayoutStringId.RedoButtonHintText: return "Bir sonraki işlemi tamamla";
                case LayoutStringId.SaveButtonHintText: return "Kaydet";
                case LayoutStringId.LoadButtonHintText: return "Yükle";
                default:
                    ret = "!!! tercüme yok.";
                    break;
            }
            return ret;
        }
    }
    public class TurkceEditorsLocalizer : Localizer
    {
        public override string Language { get { return "Turkish"; } }
        public override string GetLocalizedString(StringId id)
        {
            switch (id)
            {
                case StringId.CaptionError: return "Hata";
                case StringId.InvalidValueText: return "Geçersiz değer";
                case StringId.CheckChecked: return "Seçili";
                case StringId.CheckUnchecked: return "Seçilmemiş";
                case StringId.CheckIndeterminate: return "Orta";
                case StringId.DateEditToday: return "bugün";
                case StringId.DateEditClear: return "Temizle";
                case StringId.OK: return "Tamam";
                case StringId.Cancel: return "İptal";
                case StringId.NavigatorFirstButtonHint: return "İlk";
                case StringId.NavigatorPreviousButtonHint: return "Önceki";
                case StringId.NavigatorPreviousPageButtonHint: return "Önceki Sayfa";
                case StringId.NavigatorNextButtonHint: return "Sonraki";
                case StringId.NavigatorNextPageButtonHint: return "Sonraki Sayfa";
                case StringId.NavigatorLastButtonHint: return "En Son";
                case StringId.NavigatorAppendButtonHint: return "Ekle";
                case StringId.NavigatorRemoveButtonHint: return "Sil";
                case StringId.NavigatorEditButtonHint: return "Değiştir";
                case StringId.NavigatorEndEditButtonHint: return "Düzenlemeyi Tamamla";
                case StringId.NavigatorCancelEditButtonHint: return "Düzenlemekten Vazgeç";
                case StringId.NavigatorTextStringFormat: return "{1} kayıttan {0}. sı";
                case StringId.PictureEditMenuCut: return "Kes";
                case StringId.PictureEditMenuCopy: return "Kopyala";
                case StringId.PictureEditMenuPaste: return "Yapıştır";
                case StringId.PictureEditMenuDelete: return "Sil";
                case StringId.PictureEditMenuLoad: return "Yükle";
                case StringId.PictureEditMenuSave: return "Kaydet";
                case StringId.PictureEditOpenFileFilter: return "Bitmap Dosyaları (*.bmp)|*.bmp|Graphics Interchange Format (*.gif)|*.gif|JPEG\r\nFile Interchange Format (*.jpg;*.jpeg)|*.jpg;*.jpeg|Icon Files (*.ico)|*.ico|All\r\nResim Dosyaları |*.bmp;*.gif;*.jpg;*.jpeg;*.ico;*.png;*.tif|Tüm Dosyalar |*.*";
                case StringId.PictureEditSaveFileFilter: return "Bitmap Dosyaları (*.bmp)|*.bmp|Graphics Interchange Format (*.gif)|*.gif|JPEG\r\nFile Interchange Format (*.jpg)|*.jpg";
                case StringId.PictureEditOpenFileTitle: return "Aç";
                case StringId.PictureEditSaveFileTitle: return "Farklı Kaydet";
                case StringId.PictureEditOpenFileError: return "Geçersiz resim biçimi";
                case StringId.PictureEditOpenFileErrorCaption: return "Açma hatası";
                case StringId.PictureEditCopyImageError: return "Resim kopyalanamıyor";
                case StringId.LookUpEditValueIsNull: return "NULL Değer";
                case StringId.LookUpColumnDefaultName: return "İsim";
                case StringId.MaskBoxValidateError: return "Girdiğiniz değer tam değil. Düzeltmek ister misiniz ?\r\n\r\n"+
                    "Evet - geri dön ve değeri düzelt.\r\nHayır - değeri olduğu gibi bırak.\r\nİptal - önceki değere geri dön.\r\n";
                case StringId.UnknownPictureFormat: return "Bilinmeyen resim biçimi";
                case StringId.DataEmpty: return "Bilgi boş";
                case StringId.ImagePopupEmpty: return "(Boş)";
                case StringId.ImagePopupPicture: return "(Resim)";
                case StringId.ColorTabCustom: return "Özel";
                case StringId.ColorTabWeb: return "Web";
                case StringId.ColorTabSystem: return "Sistem";
                case StringId.CalcButtonMC: return "MC";
                case StringId.CalcButtonMR: return "MR";
                case StringId.CalcButtonMS: return "MS";
                case StringId.CalcButtonMx: return "M+";
                case StringId.CalcButtonSqrt: return "sqrt";
                case StringId.CalcButtonBack: return "Geri";
                case StringId.CalcButtonCE: return "CE";
                case StringId.CalcButtonC: return "C";
                case StringId.CalcError: return "Hesaplama hatası";
                case StringId.TabHeaderButtonPrev: return "Önceki";
                case StringId.TabHeaderButtonNext: return "Sonraki";
                case StringId.TabHeaderButtonClose: return "Kapat";
                case StringId.XtraMessageBoxOkButtonText: return "Tamam";
                case StringId.XtraMessageBoxCancelButtonText: return "İptal";
                case StringId.XtraMessageBoxYesButtonText: return "Evet";
                case StringId.XtraMessageBoxNoButtonText: return "Hayır";
                case StringId.XtraMessageBoxAbortButtonText: return "Vazgeç";
                case StringId.XtraMessageBoxRetryButtonText: return "Tekrar Dene";
                case StringId.XtraMessageBoxIgnoreButtonText: return "Gözardı Et";
                case StringId.TextEditMenuUndo: return "Geri Al";
                case StringId.TextEditMenuCut: return "Kes";
                case StringId.TextEditMenuCopy: return "Kopyala";
                case StringId.TextEditMenuPaste: return "Yapıştır";
                case StringId.TextEditMenuDelete: return "Sil";
                case StringId.TextEditMenuSelectAll: return "Tümünü Seç";
                case StringId.FilterShowAll: return "(Tümünü Göster)";
                case StringId.FilterGroupAnd: return "Ve";
                case StringId.FilterGroupNotAnd: return "Ve Değil";
                case StringId.FilterGroupNotOr: return "Veya Değil";
                case StringId.FilterGroupOr: return "Veya";
                case StringId.FilterClauseAnyOf: return "Şunlardan biri";
                case StringId.FilterClauseBeginsWith: return "Şöyle başlayan";
                case StringId.FilterClauseBetween: return "Şu aralıkta";
                case StringId.FilterClauseBetweenAnd: return "ve";
                case StringId.FilterClauseContains: return "İçerir";
                case StringId.FilterClauseEndsWith: return "Şöyle bitsin";
                case StringId.FilterClauseEquals: return "Eşittir";
                case StringId.FilterClauseGreater: return "Şundan büyük";
                case StringId.FilterClauseGreaterOrEqual: return "Şuna eşit veya büyük";
                case StringId.FilterClauseIsNotNull: return "Boş olmayan";
                case StringId.FilterClauseIsNull: return "Boş";
                case StringId.FilterClauseLess: return "Şundan küçük";
                case StringId.FilterClauseLessOrEqual: return "Şuna eşit veya küçük";
                case StringId.FilterClauseLike: return "Şunu içersin";
                case StringId.FilterClauseNoneOf: return "Bunlardan biri olmasın";
                case StringId.FilterClauseNotBetween: return "Şu aralıkta olmasın";
                case StringId.FilterClauseDoesNotContain: return "Şunu içermesin";
                case StringId.FilterClauseDoesNotEqual: return "Eşit değil";
                case StringId.FilterClauseNotLike: return "Şunu içermesin";
                case StringId.FilterEmptyEnter: return "değer girin";
                case StringId.FilterEmptyValue: return "boş";
                case StringId.FilterMenuConditionAdd: return "Koşul ekle";
                case StringId.FilterMenuGroupAdd: return "Grup ekle";
                case StringId.FilterMenuClearAll: return "Hepsini Temizle";
                case StringId.FilterMenuRowRemove: return "Satırı Sil";
                case StringId.FilterToolTipNodeAdd: return "Bu gruba yeni bir koşul ekler.";
                case StringId.FilterToolTipNodeRemove: return "Bu koşulu sil.";
                case StringId.FilterToolTipNodeAction: return "Eylem.";
                case StringId.FilterToolTipValueType: return "Değer / başka bir field değeri ile karşılaştır";
                case StringId.FilterToolTipElementAdd: return "listeye yeni bir öğe ekler";
                case StringId.FilterToolTipKeysAdd: return "(Klavyedeki Insert yada Add tuşlarını kullanınız)";
                case StringId.FilterToolTipKeysRemove: return "Klavyedeki Delete yada Subtract tuşlarını kullanınız";
                case StringId.FilterCriteriaToStringFunctionCustom: return "Özel";
                case StringId.Apply: return "Uygula";
                case StringId.PreviewPanelText: return "Önizleme";
                case StringId.TransparentBackColorNotSupported: return "Bu kontrol transparan arka rengini desteklemiyor";
                case StringId.FilterOutlookDateText: return "Filtresiz|Tarih belirleyin:|Bu yıl|Sonraki yıllar|" +
                    "Bu ay|Gelecek hafta|Hafta sonu|Yarın|Bugün|Dün|Hafta başı|Geçen hafta|Geçen ay|Geçen yıl|Geçen yıldan beri";
                case StringId.FilterCriteriaToStringFunctionIsOutlookIntervalYesterday: return "Dün";
                case StringId.FilterCriteriaToStringFunctionIsOutlookIntervalTomorrow: return "Yarın";
                case StringId.FilterCriteriaToStringFunctionIsOutlookIntervalToday: return "Bugün";
                case StringId.FilterCriteriaToStringFunctionIsOutlookIntervalPriorThisYear: return "Geçen yıllar";
                case StringId.FilterCriteriaToStringFunctionIsOutlookIntervalNextWeek: return "Gelecek hafta";
                case StringId.FilterCriteriaToStringFunctionIsOutlookIntervalLaterThisYear: return "Bu yıl";
                case StringId.FilterCriteriaToStringFunctionIsOutlookIntervalLaterThisWeek: return "Bu hafta";
                case StringId.FilterCriteriaToStringFunctionIsOutlookIntervalLaterThisMonth: return "Bu ay";
                case StringId.FilterCriteriaToStringFunctionIsOutlookIntervalLastWeek: return "Geçen hafta";
                case StringId.FilterCriteriaToStringFunctionIsOutlookIntervalEarlierThisYear: return "Nu yıldan önce";
                case StringId.FilterCriteriaToStringFunctionIsOutlookIntervalEarlierThisWeek: return "Bu haftadan önce";
                case StringId.FilterCriteriaToStringFunctionIsOutlookIntervalEarlierThisMonth: return "Bu aydan önce";
                case StringId.FilterCriteriaToStringFunctionIsOutlookIntervalBeyondThisYear: return "Önümüzdeki yıllar";
                default: return "!!! yerelleştirilmemiş";
            }
        }
    }
    public class TurkceBarLocalizer : BarLocalizer
    {
        public override string Language { get { return "Turkish"; } }
        public override string GetLocalizedString(BarString id)
        {
            switch (id)
            {
                case BarString.AddOrRemove: return "Ekle yada Kaldır";
                case BarString.BarAllItems: return "Tüm öğeler";
                case BarString.BarUnassignedItems: return "Atanmamış öğeler";
                case BarString.CancelButton: return "İptal";
                case BarString.CloseButton: return "Kapat";
                default: return "!!! yerelleştirme yok";
            }
        }
    }
}

coolwolf / 16/03/2013

Obfuscators (code encryptors) for .net

obfuscate
Because of dotfuscator coming with visual studio gives very entry level !protection, i had to use another obfuscator.
A few months ago i had maked a little google search. then i found Eazfuscator. It was enough for a singe developer like me. But in time Eazfuscator become commercial and i had to stop encrypting my software publications. It was not a big problem because most of my software has local install source.
But last week i had to distribute a software on my web site. For some reasons i can not share its source code. So the solution is to obfuscate (encrypt) the code. So i started again to found a replacement for eazfuscator.
Here i will share my experiments.
1. Eazfuscator  ($399):
Ofcourse my first try was eazfuscator. Because it is very easy to use it. You just install it. Then drag solution into eazfuscator’s green area. That’s all. Whenever you build and publish your project it will be obfuscated. You do not have to do additional steps.
It is not very expensive. $399 is acceptible price. I decide to use it in trial period (30 days) and then buy it. But when i install and use the eazfuscator, it show me “builded applciation will not work after 7 days”. I can not buy it in 7 days. In this step i continue my research for alternative obfuscator.
2. Orange Heap (free):
I heard it before. Download and installation was easy. After that it show me a screen. You choose the source and destionaton folder. As i understand after that the applciation obfuscate the executables and puts in the output folder. In comparison to eazfuscator it is not easy for me. I am using clickonce to publish my applications. So i rght click on my solutions in visual studio and choose publish. This is the way i publish my applicastions. When using eazfuscator i do not have to do additional steps. With orange heap i have to create executables first. Then use another installer than clickonce and also another than visual studio installer project. You can use install project in visual studio. But you have to configure the installer project. Ofcours i make a search on the google. May be another one think this is not easy and made a tutorial how to use orange heap with visual studio. But no success. I read the help file in pdf format (it is included with installation). There are good samples. But there is no information about how to integrate with visual studio. At he end i decide to do not use orange heap. When i use another installer orange heap will be my choice.
3. NToolbox Yano (free):
No visual studio integration.
4. The Enigma Protector ($149):
No visual studio integration.
5. Phoenix Protector (free) :
No Visual Studio integration.
6. ILProtector (free) :
From these address add the following code to your post build event. Do not forgot: it will protect only RELEASE builds. Debug builds will not be protected.
On 32 bit windows :

if /I "$(ConfigurationName)" == "Release" "c:\Program Files\VgrSoft\ILProtector\ILProtector.exe" "$(TargetPath)" -nologo

On 64 Windows :

if /I "$(ConfigurationName)" == "Release" "c:\Program Files (x86)\VgrSoft\ILProtector\ILProtector.exe" "$(TargetPath)" -nologo

I have another obfuscators to try. I will share my expreiences here. If you have anything to add to this post, please be free. Just specify in the comment, i will ad your suggestion to this post.
Decompilers (reflectors) i used to try opening obfuscated source code :
ILsPy
JustDecompile
Red Gate reflector (trial)
.

coolwolf / 24/10/2012

TFS 2012 Project Creation Error

If you receive the following erro when trying to create a project on Team foundation Server 2012 :

Error
TF30170: The plugin Microsoft.ProjectCreationWizard.Build failed during task BuildTask from group Build.
Explanation
Plugin error text: “TF203013: The path C:\Windows\SERVIC~2\LOCALS~1\AppData\Local\Temp\tmpBF13.tmp is in the DOS (8.3) short path format and is not supported. Enter a full path to the item and try again.”
User Action
Contact your Team Foundation Server administrator.

 
First create a new user with administrator privileges. Then  open Team Foundation Administration Console and change the account. It will solve your problem.

coolwolf / 08/06/2012

sqlite türkçe harf sıralaması, sqlite turkish collation

Kullandığım projelerde ACCESS yerine SQLite kullanmayı uzun zamandır düşünüyordum. Fakat SQLite altında sorgu yaptığımda harfleri Türkçe sıralayamıyordu.
Bu sorunu çözmek için önce SQLite ve ICU bileşenlerini kendim derlemeyi denedim. Fakat C bilgim olmadığı için bu konuda başarılı olamadım.
Ardından yılmadım ve denemelerime devam ettim.
En sonunda bu adresteki kodu kullanarak sorunumu çözebildim.
Namespace’imizin içinde bir yere şu satırları ekliyoruz:

[SQLiteFunction(FuncType = FunctionType.Collation, Name = "UTF8CI")]
    public class SQLiteCaseInsensitiveCollation : SQLiteFunction
    {
        private static readonly System.Globalization.CultureInfo _cultureInfo = System.Globalization.CultureInfo.CreateSpecificCulture("tr-TR");
        public override int Compare(string x, string y)
        {
            return string.Compare(x, y, _cultureInfo, System.Globalization.CompareOptions.IgnoreCase);
        }
    }

Şimdi bu fonksiyonu kullanabilmemiz için Program.cs dosyamızdaki Main() fonksiyonunun içine şu satırı ekliyoruz:

System.Data.SQLite.SQLiteFunction.RegisterFunction(typeof(SQLiteCaseInsensitiveCollation));

Eğer tabloları herhangi bir SQLite Yönetim programıyla oluşturduysanız Türkçe sıralama yine çalışmayacaktır.
İsterseniz buradaki derme çatma programı kullanarak da SQLite veritabanınızı yönetebilirsiniz.
Tabloları kendimiz program içinde oluşturmalıyız. SQL konusunda iyi değilseniz SQLite yönetim programlarını herhangi biriyle oluşturduğunuz tabloyu EXPORT ederek SQL kodlarını elde edebilirsiniz.
Burada sıralama yapacağınız (ORDER BY) FIELD’ların oluşturma koduna COLLATE UTF8CI kelimelerini ekliyoruz:

CREATE TABLE `tablom` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
`adi` TEXT NULL COLLATE UTF8CI,
`soyadi` TEXT)

Bundan sonra yapacağınız insert ve select sorgularında sıralama Türkçe oalcaktır.
Eğer

No such collation: UTF8CI

şeklinde hata alırsanız select sorgusunun sonuna COLLATE BINARY kelimelerini ekleyin :

select * from tablom order by adi COLLATE BINARY

İyi kodlamalar.