Time komutundaki(saat ve tarihi türkçeleştirmek)

Aytac

Developer
Yönetici
Developer
Katılım
4 Şub 2020
Mesajlar
373
Tepkime puanı
17
Puanları
18
Konum
ircland
Web sitesi
www.ircalem.net
Merhaba arkadaşlar,

UnrealIRCd sunucularda /time komutunu uyguladığınız zaman karşınıza aşağıdaki gibi bir çıktı gelmektedir.

Önce Tarih, sonra saat şeklinde,
Bu yazımda, /time komutunda gelen veriyi tamamen türkçe'ye çevireceğiz. Pek gerekli bir şey mi bence değil, ama Unreal programınızı türkçe'ye çevirmek istediğinizde gerekli olabilir. Ben de olduğu gibi. ;P

Klasör: -> Unreal3.2/src/
Dosya: -> (s_misc.c)

BULUN,
Kod:
static char *months[] = {
    "January", "February", "March", "April",
    "May", "June", "July", "August",
    "September", "October", "November", "December"
};

static char *weekdays[] = {
    "Sunday", "Monday", "Tuesday", "Wednesday",
    "Thursday", "Friday", "Saturday"
};

DEGISTIRIN,
Kod:
static char *months[] = {
"Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"
};

static char *weekdays[] = {
    "Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi"
};
-

BULUN,
Kod:
char *date(time_t clock)
{
    static char buf[80], plus;
    struct tm *lt, *gm;
    struct tm gmbuf;
    int  minswest;

    if (!clock)
        time(&clock);
    gm = gmtime(&clock);
    bcopy((char *)gm, (char *)&gmbuf, sizeof(gmbuf));
    gm = &gmbuf;
    lt = localtime(&clock);
#ifndef _WIN32
    if (lt->tm_yday == gm->tm_yday)
        minswest = (gm->tm_hour - lt->tm_hour) * 60 +
            (gm->tm_min - lt->tm_min);
    else if (lt->tm_yday > gm->tm_yday)
        minswest = (gm->tm_hour - (lt->tm_hour + 24)) * 60;
    else
        minswest = ((gm->tm_hour + 24) - lt->tm_hour) * 60;
#else
    minswest = (_timezone / 60);
#endif
    plus = (minswest > 0) ? '-' : '+';
    if (minswest < 0)
        minswest = -minswest;
    (void)ircsprintf(buf, "%s %s %d %d -- %02d:%02d %c%02d:%02d",
        weekdays[lt->tm_wday], months[lt->tm_mon], lt->tm_mday,
        1900 + lt->tm_year,
        lt->tm_hour, lt->tm_min, plus, minswest / 60, minswest % 60);

    return buf;
}

DEGISTIRIN,
Kod:
char *date(time_t clock)
{
    static char buf[80], plus;
    struct tm *lt, *gm;
    struct tm gmbuf;
    int  minswest;

    if (!clock)
        time(&clock);
    gm = gmtime(&clock);
    bcopy((char *)gm, (char *)&gmbuf, sizeof(gmbuf));
    gm = &gmbuf;
    lt = localtime(&clock);
#ifndef _WIN32
    if (lt->tm_yday == gm->tm_yday)
        minswest = (gm->tm_hour - lt->tm_hour) * 60 +
            (gm->tm_min - lt->tm_min);
    else if (lt->tm_yday > gm->tm_yday)
        minswest = (gm->tm_hour - (lt->tm_hour + 24)) * 60;
    else
        minswest = ((gm->tm_hour + 24) - lt->tm_hour) * 60;
#else
    minswest = (_timezone / 60);
#endif
    plus = (minswest > 0) ? '-' : '+';
    if (minswest < 0)
        minswest = -minswest;
    (void)ircsprintf(buf, "%d %s %d %s ¤ %02d:%02d", lt->tm_mday, months[lt->tm_mon], 1900 + lt->tm_year, weekdays[lt->tm_wday],
        lt->tm_hour, lt->tm_min, plus, minswest / 60, minswest % 60);

    return buf;
}


UnrealIRCd
'in ana dizininde make ve ./unreal restart komutlarını uygulayın. Artık sunucunuz üzerinde /time komutu uygulandığında, kişilere program tarafından gösterilecek çıktı aşağıdaki gibi olacaktır.
 
Üst