Zakladem jsou 5 trid – RL, Translation, AppLangConverter, AppLang a AppLangHelper a vyctu Langs. Podle kodu poznate, ze jazyku program muze mit maximalne 10(jedna se o jedine cislo, tedy 0-9). Takze nyni vam tu naserviruji vsechny tyto tridy, vycty a jak se to pouziva v praxi: RL:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
using System.Collections.Generic; using System.IO; using System.Threading.Tasks; using System.Xml; using System.Xml.Linq; /// <summary> /// Staticka trida, do ktere se ulozi pod jednotlive klice cesky text i anglicky preklad /// Ma metodu pro vraceni textu na zaklade daneho jazyku. /// </summary> public static class RL { public static Langs l = Langs.en; static Dictionary<string, string> en = new Dictionary<string, string>(); static Dictionary<string, string> cs = new Dictionary<string, string>(); public static void Initialize(Dictionary<string, Translation> trans) { foreach (var item in trans) { en.Add(item.Key, item.Value.En); cs.Add(item.Key, item.Value.Cs); } } public static string GetString(string k) { if (l == Langs.cs) { return cs[k]; } return en[k]; } } |
Translation:
|
/// <summary> /// Datova trida, obsahujici pouze cesky text a jeho odpovidajici anglicky preklad /// </summary> public class Translation { public string En = null; public string Cs = null; public Translation(string en, string cs) { En = en; Cs = cs; } } |
AppLangConverter:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
using swf; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; /// <summary> /// Staticka prevodni trida, prevadejici vsechny data z tridy AppLang do retezce a naopak /// </summary> public static class AppLangConverter { public static AppLang ConvertTo(string b) { byte type = 0; if (!byte.TryParse(b[0].ToString(), out type)) { return new AppLang(1, 0); } byte lang = 0; if (!byte.TryParse(b[1].ToString(), out lang)) { return new AppLang(1, 0); } return new AppLang(type, lang); } public static string ConvertFrom(AppLang t) { return t.Type.ToString() + t.Language.ToString(); } } |
AppLang:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
/// <summary> /// AppLang je pouze datova trida, ktera obsahuje dvou ciferne cislo. Pokud je prvni cislo 0, druhe cislo oznacuje ID jazyku, ktery bude fixne nastaveny. Pokud je 1. cislo 1, bude se jazyk nastavovat podle systemu. /// </summary> public class AppLang { byte language = 0; byte type = 0; /// <summary> /// Pokud se jedna o systemovy jazyk, z hodnoty 0 se jazyk bere z CurrentUICulture, kdezto u hodnoty 1 z CurrentCulture /// </summary> public byte Language { get { return language; } } /// <summary> /// Typ jazyka zda fixni nebo systemovy /// /// </summary> public byte Type { get { return type; } } /// <summary> /// Je zde vykon na 1. miste, proto tato trida nema zadnou metodu Parse a zadny bezparametrovy konstruktor. /// </summary> /// <param name="type"></param> /// <param name="language"></param> public AppLang(byte type, byte language) { this.type = type; this.language = language; } public override string ToString() { return AppLangHelper.ToString(this); } } |
AppLangHelper: …
Read More Jak mam udelany preklad klasickych Windows aplikaci