mavzermete 1
mavzermete
Psych0SoociaL 1
Psych0SoociaL
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Agora Metin2 1
Agora Metin2
Hikaye Ekle

2 Türlü Çoklu Dil Sistemi

  • Konuyu başlatan Konuyu başlatan XxZeMaHSeRxX-Turkmmo
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 21
  • Görüntüleme Görüntüleme 4K
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!

Merhaba Arkadaşlar,

Yabancı forumda gördüğüm çoklu dil sistemini sizlerle paylaşmak istiyorum.

Not: Sistem'i yayımlıyan kişiye sordum sorunsuz çalıştığını bildirdi. O yüzden paylaşıyorum.



Kod:
#define LENGUAJE_SYSTEM_FIRE

Kod:
// Arat

ACMD(do_ride);

// Altına Ekle

#ifdef LENGUAJE_SYSTEM_FIRE
ACMD(do_idiomaenglish);
ACMD(do_idiomaespanish);
ACMD(do_idiomaportuges);
ACMD(do_idiomarumano);
#endif

// Arat

{ "dragon_soul",                do_dragon_soul,                0,    POS_DEAD,    GM_PLAYER    },

// Altına Ekle

#ifdef LENGUAJE_SYSTEM_FIRE
    { "idioma_ingles",        do_idiomaenglish,                0,    POS_DEAD,    GM_PLAYER        },
    { "idioma_espanol",        do_idiomaespanish,                0,    POS_DEAD,    GM_PLAYER        },
    { "idioma_portuges",    do_idiomaportuges,                0,    POS_DEAD,    GM_PLAYER        },
    { "idioma_rumano",        do_idiomarumano,                0,    POS_DEAD,    GM_PLAYER        },
#endif

Kod:
// Arat

ACMD(do_ride)
   
// Altına Ekle
   
#ifdef LENGUAJE_SYSTEM_FIRE
ACMD(do_idiomaenglish)
{
        char query[1024];
        sprintf(query, "UPDATE account.account SET idioma = 'en' WHERE id = '%d'", ch->GetAID());
        DBManager::instance().DirectQuery(query);
        ch->ChatPacket(CHAT_TYPE_INFO, "your new lenguague is english");
        ch->GetDesc()->DelayedDisconnect(5);
}

ACMD(do_idiomaespanish)
{
        char query[1024];
        sprintf(query, "UPDATE account.account SET idioma = 'es' WHERE id = '%d'", ch->GetAID());
        DBManager::instance().DirectQuery(query);
        ch->ChatPacket(CHAT_TYPE_INFO, "Tu nuevo lenguaje es espanish.");
        ch->GetDesc()->DelayedDisconnect(5);
       
}ACMD(do_idiomaportuges)
{
        char query[1024];
        sprintf(query, "UPDATE account.account SET idioma = 'pt' WHERE id = '%d'", ch->GetAID());
        DBManager::instance().DirectQuery(query);
        ch->ChatPacket(CHAT_TYPE_INFO, "sua nova lingua e Portugal.");
        ch->GetDesc()->DelayedDisconnect(5);
}

ACMD(do_idiomarumano)
{
        char query[1024];
        sprintf(query, "UPDATE account.account SET idioma = 'ro' WHERE id = '%d'", ch->GetAID());
        DBManager::instance().DirectQuery(query);
        ch->ChatPacket(CHAT_TYPE_INFO, "noua limba in limba romana.");
        ch->GetDesc()->DelayedDisconnect(5);
}
#endif

Kod:
#ifdef LENGUAJE_SYSTEM_FIRE
    int pc_get_languaje(lua_State* L)
    {
        LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();
        if(ch)
        {
            char szQuery[QUERY_MAX_LEN];
            snprintf(szQuery,sizeof(szQuery),"SELECT idioma from account.account WHERE id = '%d'", ch->GetAID());
            SQLMsg * pMsg = DBManager::instance().DirectQuery(szQuery);
            MYSQL_ROW row;
            for(int i = 0; (row = mysql_fetch_row(pMsg->Get()->pSQLResult)) != NULL; ++i)
            {
                lua_pushstring(L,row[0]);
            }
        }
        return 1;
    }
#endif

#ifdef LENGUAJE_SYSTEM_FIRE
            { "get_languaje",        pc_get_languaje    },
#endif

Kod:
import ui,dbg,app,net,os

class Dialog1(ui.Window):
    def __init__(self):
        ui.Window.__init__(self)
        self.BuildWindow()

    def __del__(self):
        ui.Window.__del__(self)

    def BuildWindow(self):
        self.Board = ui.BoardWithTitleBar()
        self.Board.SetSize(202, 206)
        self.Board.SetCenterPosition()
        self.Board.AddFlag('movable')
        self.Board.AddFlag('float')
        self.Board.SetTitleName('Cambiar Idioma')
        self.Board.SetCloseEvent(self.Close)
        self.Board.Show()
        self.comp = ui.Component()

        self.img1 = self.comp.ExpandedImage(self.Board , 163, 54, 'firewall/lenguaje_venta/en.tga')
        self.img2 = self.comp.ExpandedImage(self.Board , 163, 85, 'firewall/lenguaje_venta/es.tga')
        self.img3 = self.comp.ExpandedImage(self.Board , 163, 116, 'firewall/lenguaje_venta/pt.tga')
        self.img4 = self.comp.ExpandedImage(self.Board , 163, 148, 'firewall/lenguaje_venta/ro.tga')
        self.base = self.comp.Button(self.Board, 'Ingles', '', 9, 49, self.base_func, 'firewall/lenguaje_venta/boton_base1.tga', 'firewall/lenguaje_venta/boton_base2.tga', 'firewall/lenguaje_venta/boton_base3.tga')
        self.base1 = self.comp.Button(self.Board, 'Espanish', '', 9, 80, self.base1_func, 'firewall/lenguaje_venta/boton_base1.tga', 'firewall/lenguaje_venta/boton_base2.tga', 'firewall/lenguaje_venta/boton_base3.tga')
        self.base2 = self.comp.Button(self.Board, 'Portuges', '', 9, 112, self.base2_func, 'firewall/lenguaje_venta/boton_base1.tga', 'firewall/lenguaje_venta/boton_base2.tga', 'firewall/lenguaje_venta/boton_base3.tga')
        self.base3 = self.comp.Button(self.Board, 'Rumano', '', 9, 142, self.base3_func, 'firewall/lenguaje_venta/boton_base1.tga', 'firewall/lenguaje_venta/boton_base2.tga', 'firewall/lenguaje_venta/boton_base3.tga')
        self.base.SetToolTipText('Convierte tu idioma en ingles')
        self.base1.SetToolTipText('Convierte tu idioma en espanish')
        self.base2.SetToolTipText('Convierte tu idioma en portuges')
        self.base3.SetToolTipText('Convierte tu idioma en rumano')
   
    def base_func(self):
        os.remove('lang/idioma.txt')
        file = open('lang/idioma.txt', 'a')
        file.write("Espain") #Pones el idioma ejemplo español
        file.close()
        net.SendChatPacket("/idioma_ingles")
        net.ExitApplication()
        os.system('start Firewall.exe')
   
    def base1_func(self):
        os.remove('lang/idioma.txt')
        file = open('lang/idioma.txt', 'a')
        file.write("Espain")#Pones el idioma ejemplo ingles
        file.close()
        net.SendChatPacket("/idioma_espanol")
        net.ExitApplication()
        os.system('start Firewall.exe')
   
    def base2_func(self):
        os.remove('lang/idioma.txt')
        file = open('lang/idioma.txt', 'a')
        file.write("Espain")#Pones el idioma ejemplo ingles
        file.close()
        net.SendChatPacket("/idioma_portuges")
        net.ExitApplication()
        os.system('start Firewall.exe')
   
    def base3_func(self):
        os.remove('lang/idioma.txt')
        file = open('lang/idioma.txt', 'a')
        file.write("Espain")#Pones el idioma ejemplo ingles
        file.close()
        net.SendChatPacket("/idioma_rumano")
        net.ExitApplication()
        os.system('start Firewall.exe')
   
   
    def Close(self):
        self.Board.Hide()

Dialog1().Show()

Kod:
# Arat

["locale","error"]
   
# Altına Ekle

if os.path.exists("lang/idioma.txt"):
    pass
else:
    file = open('lang/idioma.txt', 'a')
    file.write("Espain")
    file.close()  

lines = open("lang/idioma.txt").readlines()
firstLine = str(lines[0].replace("\n", ""))
   
if firstLine.split("=")[0] == "Italy":
    LOCALE_FILE_NAME = "%s/locale_game.txt" % app.GetLocalePath()
       
elif firstLine.split("=")[0] == "Espain":
    LOCALE_FILE_NAME = "lang\\es/locale_game.txt"

elif firstLine.split("=")[0] == "Germany":
    LOCALE_FILE_NAME = "lang\\gm/locale_game.txt"

elif firstLine.split("=")[0] == "Poland":
    LOCALE_FILE_NAME = "lang\\pl/locale_game.txt"

elif firstLine.split("=")[0] == "Romany":
    LOCALE_FILE_NAME = "lang\\rm/locale_game.txt"
   
elif firstLine.split("=")[0] == "Turkey":
    LOCALE_FILE_NAME = "lang\\tk/locale_game.txt"
   
# Yazdığım anlatım yanlış olabilir gerçek anlatım şu şekilde,

in localeinfo search and paste all = ["locale","error"]

Kod:
# Arat

EMPIREDESC_C = "%s/empiredesc_c.txt" % (name)

# Ekle

import os
    if os.path.exists("lang/idioma.txt"):
        pass
    else:
        file = open('lang/idioma.txt', 'a')
        file.write("Espain")
        file.close()
   
    lines = open("lang/idioma.txt").readlines()
    firstLine = str(lines[0].replace("\n", ""))
   
    if firstLine.split("=")[0] == "Italy":
        LOCALE_INTERFACE_FILE_NAME = "%s/locale_interface.txt" % (name)
       
    elif firstLine.split("=")[0] == "Espain":
        LOCALE_INTERFACE_FILE_NAME = "lang\\es/locale_interface.txt"

    elif firstLine.split("=")[0] == "Germany":
        LOCALE_INTERFACE_FILE_NAME = "lang\\gm/locale_interface.txt"
   
    elif firstLine.split("=")[0] == "Poland":
        LOCALE_INTERFACE_FILE_NAME = "lang\\pl/locale_interface.txt"
       
    elif firstLine.split("=")[0] == "Romany":
        LOCALE_INTERFACE_FILE_NAME = "lang\\rm/locale_interface.txt"
       
    elif firstLine.split("=")[0] == "Turkey":
        LOCALE_INTERFACE_FILE_NAME = "lang\\tk/locale_interface.txt"
       
    else:
        LOCALE_INTERFACE_FILE_NAME = "%s/locale_interface.txt" % (name)

Kod:
in navicat  ro -- default lenguague the server

( Anlatım yukardaki şekilde tr sini anlıyamadım)

ALTER TABLE account.account ADD idioma varchar(2) NOT NULL DEFAULT 'ro' ;

(yapılacak da yukarıdaki gibi)

Kod:
quest multilenguaje begin
    state start begin
        when 20094.chat.gameforge.es.titulo with pc.get_languaje() ==  'es' begin
            say(gameforge.es.say1)
            say(gameforge.es.say2)
        end
       
        when 20094.chat.gameforge.en.titulo with pc.get_languaje() ==  'en' begin
            say(gameforge.en.say1)
            say(gameforge.en.say2)
        end
        when 20094.chat.gameforge.pt.titulo with pc.get_languaje() ==  'pt' begin
            say(gameforge.pt.say1)
            say(gameforge.pt.say2)
        end
        when 20094.chat.gameforge.ro.titulo with pc.get_languaje() ==  'ro' begin
            say(gameforge.ro.say1)
            say(gameforge.ro.say2)
        end
    end
end

Kod:
gameforge.es = {}
gameforge.es.titulo = "hola prueba en español"
gameforge.es.say1 = "funciona en español chao"
gameforge.es.say2 = "chao me despido"
gameforge.en = {}
gameforge.en.titulo = "hola prueba en ingles"
gameforge.en.say1 = "funciona en ingles chao"
gameforge.en.say2 = "chao me despido"
gameforge.pt = {}
gameforge.pt.titulo = "hola prueba en portuges"
gameforge.pt.say1 = "funciona en portuges chao"
gameforge.pt.say2 = "chao me despido"
gameforge.ro = {}
gameforge.ro.titulo = "hola prueba en rumano"
gameforge.ro.say1 = "funciona en rumano chao"
gameforge.ro.say2 = "chao me despido"

Bunu' da indirin,

İNDİR:
VT:

İNDİR:
VT:

 
Son düzenleme:

En Çok Reaksiyon Alan Mesajlar

teşekkürler ama biraz performans sorunu yaratabilir anlık kullanan sayısı artarsa direk sorgu yapıyor update ile bunu cacheye bağlanmış olsa daha iyi olurdu yapan kolaya kaçmış yabancılardan daha iyisini beklerdim bununla servere saldırı yapılma riski oluşabilir ddos gibi anlık sürüyle paket gönderme tabi onu yapacak insan var mı bu ülkede orası meçhul
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst