الاثنين، 11 مايو 2015

..:: التركيب ::..


أولاً أفتح كلاس Enums.cs , 

تحت أول قوس ضيف ده , 

public enum Languages 
    

        
English
        
Arabic 
    
}  
افتح كلاس Program.cs ,
تحت أول قوس ضيف ده , 
#region Translate 
        
public static void SaveTranslate() 
        { 
            var 
file Environment.CurrentDirectory "Translate.txt"
            if (
File.Exists(file)) 
                
File.Delete(file); 

            
StreamWriter writer = new StreamWriter(File.Create(file), Encoding); 
            
writer.AutoFlush true
            foreach (var 
item in Kernel.Translateed
                
writer.WriteLine(item.Key "@@" item.Value); 
            
writer.Close(); 

        } 
        public static 
void LoadTranslate() 
        { 
            var 
file Environment.CurrentDirectory "Translate.txt"

            if (
File.Exists(file)) 
            { 
                
string[] text File.ReadAllLines(fileEncoding); 

                for (
int x 0text.Lengthx++) 
                { 
                    
string line text[x]; 
                    
string[] split line.Split(new string[] { "@@" }, StringSplitOptions.RemoveEmptyEntries); 

                    if (
split.Length 1
                        continue; 
                    var 
key split[0]; 
                    if (
split.Length 2
                        continue; 
                    var 
value split[1]; 
                    if (!
Kernel.Translateed.ContainsKey(key)) 
                        
Kernel.Translateed.Add(keyvalue); 
                } 
            } 

        } 
        public static 
string Translate(string Textstring To
        { 
            
To To.ToLower(); 
            if (
To == "en"
                return 
Text

            if (
Kernel.Translateed.ContainsKey(Text)) 
                return 
Kernel.Translateed[Text]; 

            try 
            { 
                
// this is the service root uri for the Microsoft Translator service   
                
var serviceRootUri 
                               new 
Uri("https://api.datamarket.azure.com/Bing/MicrosoftTranslator/v1/"); 
                
//https://datamarket.azure.com/dataset/bing/microsofttranslator 
                // this is the Account Key I generated for this app  
                  
var accountKey "1hRpBB5F4MO+SHLN+8ruqylHhROLL1HTsx6Gz4ZNuCA="


                
// the TranslatorContainer gives us access to the Microsoft Translator services  
                
Microsoft.TranslatorContainer tc = new Microsoft.TranslatorContainer(serviceRootUri); 

                
// Give the TranslatorContainer access to your subscription  
                
tc.Credentials = new System.Net.NetworkCredential(accountKeyaccountKey); 

                
// Generate the query  
                
var languagesForTranslationQuery tc.GetLanguagesForTranslation(); 

                
// Call the query to get the results as an Array  
                
var availableLanguages languagesForTranslationQuery.Execute().ToArray(); 

                
// Generate the query  
                
var translationQuery tc.Translate(TextTonull); 

                
// Call the query and get the results as a List  
                
var translationResults translationQuery.Execute().ToList(); 

                
// Verify there was a result  
                
if (translationResults.Count() <= 0
                { 
                    return 
" "
                } 

                
// In case there were multiple results, pick the first one  
                
var translationResult translationResults.First(); 

                if (!
Kernel.Translateed.ContainsKey(Text)) 
                    
Kernel.Translateed.Add(TexttranslationResult.Text); 

                return 
translationResult.Text
            } 
            catch 
            { 
                return 
Text
            } 

        } 

        
#endregion  

قي نفس الكلاس قم ببحث عن , 
case "@save":  

وتحت أول قوس ضيف ,

                            SaveTranslate();  



أفتح كلاس Kernal.cs , 

تحت أول قوس ضيف , 

        public static SafeDictionary<stringstringTranslateed = new SafeDictionary<stringstring>();  

أفتح كلاس Npcs.cs , 

قم ببحث عن , 

public void Text  
وقم بتبديله بهذا , 

        public void Text(string textLanguages lang Languages.English
        { 
            
text Program.Translate(textClient.LanguageToString()); 
            { 
                
//    var clienttotrans = new LanguageServiceClient(); 
                //     var untrans = text; 
                //     text = clienttotrans.Translate("6CE9C85A41571C050C379F60DA173D286384E0F2", untrans, "", "ar");   
                
if (text.Length 100
                { 
                    if (
text.Length 980
                        
text text.Substring(0980); 
                    
int myLength text.Length
                    while (
myLength 0
                    { 
                        
int lastIndex 100
                        if (
myLength 100
                            
lastIndex myLength
                        
string txt text.Substring(0lastIndex); 
                        
text text.Substring(lastIndexmyLength lastIndex); 
                        
myLength -= lastIndex
                        
Replies.Add(new NpcReply(NpcReply.Dialogtxt)); 
                    } 
                } 
                else 
                    
Replies.Add(new NpcReply(NpcReply.Dialogtext)); 
            } 
        }  

وقم ببحث عن , 

public void Option  
وقم بتبديله بهذا , 

        public void Option(string textbyte idLanguages lang Languages.English
        { 
            
text Program.Translate(textClient.LanguageToString()); 
            
//      if (Client.Language == lang) 
            

                
//     var clienttotrans = new LanguageServiceClient(); 
                //     var untrans = text; 
                //     text = clienttotrans.Translate("6CE9C85A41571C050C379F60DA173D286384E0F2", untrans, "", "ar");                  
                
Replies.Add(new NpcReply(NpcReply.Optiontext) { OptionID id }); 
            } 
        }  
قم ببحث عن , 

public void Input  
وقم بتبديله بهذا , 

        public void Input(string textbyte idbyte maxLengthLanguages lang Languages.English
        { 
            
text Program.Translate(textClient.LanguageToString()); 
            
//if (Client.Language == lang) 
            

                
//    var clienttotrans = new LanguageServiceClient(); 
                //    var untrans = text; 
                //    text = clienttotrans.Translate("6CE9C85A41571C050C379F60DA173D286384E0F2", untrans, "", "ar");                  

                
Replies.Add(new NpcReply() 
                { 
                    
DontDisplay true
                    
InputMaxLength maxLength
                    
InteractType NpcReply.Input
                    
OptionID id
                    
Text text 
                
}); 
            } 
        }  

ثم ننشئ كلاس جديد ويستحسن ان يكون في مكان الـ (Program , World , Npcs) ياريت تكونو فهمتم قصدي 


ننشئ كلاس بأسم , 

TranslatorContainer.cs  

ونغير الأكواد الى جواها بالأكواد دي , 


//------------------------------------------------------------------------------ 
// <auto-generated> 
//     This code was generated by a tool. 
//     Runtime Version:4.0.30319.18449 
// 
//     Changes to this file may cause incorrect behavior and will be lost if 
//     the code is regenerated. 
// </auto-generated> 
//------------------------------------------------------------------------------ 

// Notice: Use of the service proxies that accompany this notice is subject to 
//            the terms and conditions of the license agreement located at 
//            http://go.microsoft.com/fwlink/?LinkID=202740 
//            If you do not agree to these terms you may not use this content. 
namespace Microsoft 
    
using System
    
using System.Collections.Generic
    
using System.Data.Services.Client
    
using System.Net
    
using System.IO


    public 
partial class Translation 
    

        private 
String _Text
        public 
String Text 
        

            
get 
            

                return 
this._Text
            } 
            
set 
            

                
this._Text value
            } 
        } 
    } 

    public 
partial class Language 
    

        private 
String _Code
        public 
String Code 
        

            
get 
            

                return 
this._Code
            } 
            
set 
            

                
this._Code value
            } 
        } 
    } 

    public 
partial class DetectedLanguage 
    


        private 
String _Code

        public 
String Code 
        

            
get 
            

                return 
this._Code
            } 
            
set 
            

                
this._Code value
            } 
        } 
    } 

    public 
partial class TranslatorContainer System.Data.Services.Client.DataServiceContext 
    


        public 
TranslatorContainer(Uri serviceRoot) : 
            
base(serviceRoot
        { 
        } 

        
/// <summary> 
        /// </summary> 
        /// <param name="Text">the text to translate Sample Values : hello</param> 
        /// <param name="To">the language code to translate the text into Sample Values : nl</param> 
        /// <param name="From">the language code of the translation text Sample Values : en</param> 
        
public DataServiceQuery<TranslationTranslate(String TextString ToString From
        { 
            if ((
Text == null)) 
            { 
                throw new 
System.ArgumentNullException("Text""Text value cannot be null"); 
            } 
            if ((
To == null)) 
            { 
                throw new 
System.ArgumentNullException("To""To value cannot be null"); 
            } 
            
DataServiceQuery<Translationquery
            
query base.CreateQuery<Translation>("Translate"); 
            if ((
Text != null)) 
            { 
                
query query.AddQueryOption("Text"string.Concat("\'"System.Uri.EscapeDataString(Text), "\'")); 
            } 
            if ((
To != null)) 
            { 
                
query query.AddQueryOption("To"string.Concat("\'"System.Uri.EscapeDataString(To), "\'")); 
            } 
            if ((
From != null)) 
            { 
                
query query.AddQueryOption("From"string.Concat("\'"System.Uri.EscapeDataString(From), "\'")); 
            } 
            return 
query
        } 

        
/// <summary> 
        /// </summary> 
        
public DataServiceQuery<LanguageGetLanguagesForTranslation() 
        { 
            
DataServiceQuery<Languagequery
            
query base.CreateQuery<Language>("GetLanguagesForTranslation"); 
            return 
query
        } 

        
/// <summary> 
        /// </summary> 
        /// <param name="Text">the text whose language is to be identified Sample Values : hello</param> 
        
public DataServiceQuery<DetectedLanguageDetect(String Text
        { 
            if ((
Text == null)) 
            { 
                throw new 
System.ArgumentNullException("Text""Text value cannot be null"); 
            } 
            
DataServiceQuery<DetectedLanguagequery
            
query base.CreateQuery<DetectedLanguage>("Detect"); 
            if ((
Text != null)) 
            { 
                
query query.AddQueryOption("Text"string.Concat("\'"System.Uri.EscapeDataString(Text), "\'")); 
            } 
            return 
query
        } 
    } 
}  

ثم أفتح , 

GameState  
Or
GameClient  

وتحت أي Void , ضيف دول , 

public void GetLanguages(string language
        { 
            switch (
language
            { 
                case 
"En"
                    
Language Languages.English
                    break; 
                case 
"Ar"
                    
Language Languages.Arabic
                    break; 
            }            

        } 
        public 
string LanguageToString() 
        { 
            switch (
Language
            { 
                case 
Languages.English
                   return 
"en";                    
                case 
Languages.Arabic
                    return 
"ar"
            } 
            return 
"en";  

        } 
        public 
Languages Language Languages.English;  

أفتح كلاس Message.cs , 

أبحث عن , 

public Message  
قم بمسحه لحد الكود ده , 


        public uint MessageUID1 0;  


بمعنى متمسحش الكود , 


وتبدل الى مسحته بـ , 

public Message(string _Messageuint _ChatTypeGame.Languages Language Game.Languages.English
        { 
            
this.Mesh 0
            
this.__Message _Message
            
this._To "ALL"
            
this._From "SYSTEM"
            
this.Color Color.Red
            
this.ChatType _ChatType
        } 
        public 
Message(string _MessageColor _Coloruint _ChatTypeGame.Languages Language Game.Languages.English
        { 
            
this.Mesh 0
            
this.__Message _Message
            
this._To "ALL"
            
this._From "SYSTEM"
            
this.Color _Color
            
this.ChatType _ChatType
        } 
        public 
Message(string _Messagestring __ToColor _Coloruint _ChatTypeGame.Languages Language Game.Languages.English
        { 
            
this.Mesh 0
            
this.__Message _Message
            
this._To __To
            
this._From "SYSTEM"
            
this.Color _Color
            
this.ChatType _ChatType
        } 
        public 
Message(string _MessageClient.GameState ClientColor _Coloruint _ChatTypeGame.Languages Language Game.Languages.English
        { 
            
this.Mesh 0
            
this.__Message _Message
            
this._To Client.Entity.Name
            
this.MessageUID1 Client.Entity.UID
            
this._From "SYSTEM"
            
this.Color _Color
            
this.ChatType _ChatType
        } 
        public 
Message(string _Messagestring __Tostring __FromColor _Coloruint _ChatTypeGame.Languages Language Game.Languages.English
        { 
            
this.Mesh 0
            
this.__Message _Message
            
this._To __To
            
this._From __From
            
this.Color _Color
            
this.ChatType _ChatType
        } 
        public 
Message() 
        { 
            
this.Mesh 0
        } 

        public 
Game.Languages Language Game.Languages.English;  



وقم نقل هذه الملفات إلى السورس , 


التحميل #1= http://up.top4top.net/downloadf-top4...513e1-rar.html


التحميل #2 = [IMG]http://up.top4top.net/downloadf-top4top_8f55cc53121-rar.html[/url]

ثم إذهب إلى , References , تحت Properties , عند لوحة البروجيكت على يمينك , 



صورة للتوضيح , 


[url]http://cdn.top4top.net/i_61ae30aa771.png[/IMG]


إضغط كلك يمين عليها ثم , Add , 


ثم نختار هذا الأختيار , 

System.Data.Services.Client  

صورة للتوضيح #2 , 





ثم Ok , 


أن بي سي تغيير الغة , 


#region Translation 
                    
case 9874:// make navicat by your self 
                        

                            switch (
npcRequest.OptionID
                            { 
                                case 
0
                                    { 
                                        
dialog.Text("Please Choose Your Language ! [Kiro]"); 
                                        
dialog.Option("En"1); 
                                        
dialog.Option("Ar"2); 
                                        
dialog.Option("Not Now..."byte.MaxValue); 
                                        
dialog.Send(); 
                                        break; 
                                    } 
                                case 
1
                                    { 
                                        
client.Language Enums.Languages.English
                                        break; 
                                    } 
                                case 
2
                                    { 
                                        
client.Language Enums.Languages.Arabic
                                        break; 
                                    } 
                            } 
                            break; 
                        } 
                    
#endregion  
وى الكود دة فى كلااس World تحت القوس
public static ProjectX_V3_Lib.ScriptEngine.ScriptEngine ScriptEngine;  
ولا تنسى النافى كات , (الانبسي من كيرو هيرو "كارلوس") 

..:: شرح السيستم ::..


هوا يقوم بتعريب تلقائي من موقع bing , ممكن يطول الامر لما تيجي تكلم اي ان بي سي بس بعد كده مش هيحصل معاك تعليق لانه هيتحفظ بعد كده , ولما تكون عاوز تغير اللغة في أي وقت تروح للانبسي الى ادتهولك وتغير اللغة منه على مزاجك .. 


..:: حل الأيرورات التي كانت تظهر عن بعض الناس ::..


أول مشكلة في Console الموجود في , ScripDatabase , 

صورة الايرور ,






الحل ,



مسح كلمة CoServer ,

وسيتم حل الايرور ,


ثاني مشكلة في الأنبسي تغيير اللغة ,

صورة للأيرور ,





الحل ,

بدل ,

Enums.Languages  
خليها كده فقط ,

Languages  

في أمان الله , وفي حفظ الرحمن .
هل أعجبك الموضوع؟! ↓
بضغطة زر تشارك الفائدة وتدعم هاى تك

عوادي الياس

مدونة تقني الانترنت تهدف لتطوير كل العرب في الحاسوب والانترنت مع اخوكم الياس عوادي

هناك تعليق واحد:

  1. حتي الموضوع مسروق والينكات محذوفه ههههههههههه

    ردحذف