Unit Converter
Aplikáciám vytvorenie pre súťaž Machr na C# .NET - Viacjazyčná aplikácia. Aplikáciám je lokalizovaná do 51 svetových jazykovú pomoc Yandex Translate API. Je jednoducho rozšíriteľný o ďalšom veličiny, či jednotky. Taktiez Slúžte Ako praktická ukážka objektového prístupu k Xml súborom - LINQ to XML.
Algoritmus výpočtu
Algoritmus výpočtu je triviálnych. Funguje na takomto princípe:
výsledok = hodnota * odchýlkaVstupnejJednotky / odchýlkaVýstupnejJednotky
Príklad:
<Unit offset="0,001">mg</Unit> <!-- Vstupná jednotka --> <Unit offset="1000">Kg</Unit> <!-- Výstupná jednotka -->
232 mg * 0,001 / 1000 = 0,000232 kg
Odchýlka (offset) je odchýlkou od základnej jednotky danej veličiny napr. 1kg = 1000g - g (gram) je v tomto prípade základná jednotka tzn. od naj sa odvodzujú vzťah k ostatným jednotkám danej veličiny.
Pridávaním veličín / jednotiek
Pridávaním veličín sa uskutočňuje v subor quantities.xml,
ktory sa nachádza v zložka zo samotnú aplikáciám. Princíp Rozšírením je
jednoduchý: Medzi tagy <Quantities></Quantities>
pridáme nový element <Quantity>
, do ktoreho vnoríme
ľubovoľný počet elementov Unit
(jednotka), pričom jeden z
tychto elementov musí byť základná jednotka (offset="1"
).
Atribúty offset
definuje vzťah Medzi atribútom
offset
základnej jednotky a ním samotným:
1 meter = 0,001 milimeter
Príklad:
<Quantity name="Length"> <Unit offset="0,000000001">nm</Unit> <Unit offset="0,000001">μm</Unit> <Unit offset="0,001">mm</Unit> <Unit offset="0,01">cm</Unit> <Unit offset="0,1">dm</Unit> <Unit offset="1">m</Unit> <Unit offset="1000">Km</Unit> <Unit offset="1609,344">m(mile)</Unit> </Quantity>
POUŽITIE Yandex Translate API
Pre preklad aplikácie je použitá prekladacími API od Spoločnosti Yandex. Túto cestu som si zvolil kvoli jednoduchosti použitím a taktiez kvoli tomu, že Microsoft Translator od Bing-u momentálne vstupuje do druhej verziám a žiadny web (ani StackOverflow : D ) Nevie presne vysvetliť Ako funguje. Pre POUŽÍVANIE tajte API je nutné získať tzv. ApiKey, ktory možno bezplatne získať na tajte adrese.
Samotné použitím je realizované cez Tried WebClient, ktora sa nachádza v .NET framework-u od verziám 4.5. Tvar Požiadavky je nasledovný:
https://translate.yandex.net/api/v1.5/tr/translate?key=ApiKey&lang=inputLanguage-outputLanguage&text=text
Príklad:
WebClient webClient = new WebClient(); webClient.Encoding = Encoding.UTF8; string apiKey = "trnsl.1.1.xxxxxxxxxxxxxxx.xxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxxxxxxx"; string request = "https://translate.yandex.net/api/v1.5/tr/translate?key=" + apiKey + "&lang=" + inputLanguage + "-" + outputLanguage + "&text=" + text; XDocument = XDocument.Parse(webClient.DownloadString(request)); var query = from x in XDocument.Element("Translation").Elements("text") select x.Value; string translatedText = query.ElementAt(0);
V kóde, ktory je na Stiahnutie sa nachádza API kľúč, ktory som použil pri vývoji tajte aplikácie. Je vám k dispozícii.
Galéria
Stiahnuť
Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami
Stiahnuté 29x (293.85 kB)
Aplikácia je vrátane zdrojových kódov v jazyku C#