Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Json Array parser
- static string GetString(string str, ref int i)
- {
- string buffer = "";
- i++;
- for (; i < str.Length; i++)
- {
- if (str[i] == '\"' && str[i - 1] != '\\')
- {
- return buffer;
- }
- else
- {
- buffer += str[i];
- }
- }
- return buffer;
- }
- static void ParseArray(string str, ref int i, ArrayList list = null)
- {
- string buffer = "";
- i++;
- ArrayList _list = new ArrayList();
- for (; i < str.Length; i++)
- {
- var bt = str[i];
- if (str[i] == '[')
- {
- ParseArray(str, ref i, list);
- }
- else
- {
- if (str[i] == ']')
- {
- list.Add(_list);
- return;
- }
- else if (str[i] == '\"')
- {
- var stra = GetString(str, ref i);
- _list.Add(stra);
- }
- }
- }
- }
- // Google Translate
- static string DecodeEncodedNonAsciiCharacters(string value)
- {
- return Regex.Replace(
- value,
- @"\\u(?<Value>[a-zA-Z0-9]{4})",
- m =>
- {
- return ((char)int.Parse(m.Groups["Value"].Value, NumberStyles.HexNumber)).ToString();
- });
- }
- public static List<string> TranslateText(string input)
- {
- string url = String.Format("http://translate.google.com/translate_a/t?client=t&text={0}&hl=en&sl=ja&tl=en&multires=1&otf=2&ssel=4&tsel=4&sc=1", input);
- WebSession session = new WebSession(url);
- ArrayList list = new ArrayList();
- int i = 0;
- ParseArray(session.LastResponse.PageParser.Content, ref i, list);
- List<string> strings = new List<string>();
- foreach (var arry in list)
- {
- if (arry is ArrayList && ((ArrayList)arry).Count > 0)
- {
- strings.Add(DecodeEncodedNonAsciiCharacters((string)((ArrayList)arry)[0]).Replace("\\n","\n").Replace("\\\"", "\""));
- }
- else
- break;
- }
- return strings;
- }
RAW Paste Data