string OneLineTranslate(string src, string from) { if (src.Length <= 0) { return(src); } string ret = ""; TranslateGoogle engine = new TranslateGoogle(); string[] lines = src.Split(new string[] { "\r\n" }, StringSplitOptions.None); for (int i = 0; i < lines.Length; i++) { string t; if (this.TranslateCache.ContainsKey(lines[i])) { t = this.TranslateCache[lines[i]]; } else { t = engine.Trans(lines[i], from, this.GoogleTranslateLang); Log.Debug("GoolgeTranslate:" + lines[i] + " => " + t); this.TranslateCache[lines[i]] = t; } ret += "\r\n" + t; } return(ret.Substring(2)); }
public static void TEST_genTK() { byte[] srcUTF8 = Encoding.UTF8.GetBytes("hello"); TranslateGoogle g = new TranslateGoogle(); string r = g.genTK(srcUTF8, 1493107850); Debug.Assert(r == "415694.1006"); // string a = g.TransUTF8("hello", "en", "ja"); }
static string TranslateTextGoogleTranslate(string text, string from, string to) { //定型文で変換できない場合GoogleTranslateへ List <string> list = SplitEscapeString(text); bool use0001 = false; bool use0003 = false; if (text.IndexOf("\r\n") >= 0) { use0001 = true; } if (text.IndexOf("@0003") >= 0) { use0003 = true; } uint addchar = 0; for (int i = 0; i < list.Count; i++) { string oneline = list[i]; if (oneline == "") { continue; } if (oneline[0] == '@') {//エスケープ文字列は翻訳しない. if (oneline.IndexOf("@0002") >= 0 || oneline.IndexOf("@0008") >= 0 || oneline.IndexOf("@0009") >= 0 || oneline.IndexOf("@000A") >= 0 || oneline.IndexOf("@000B") >= 0 || oneline.IndexOf("@000C") >= 0 || oneline.IndexOf("@000D") >= 0 || oneline.IndexOf("@000E") >= 0 || oneline.IndexOf("@000F") >= 0 || oneline.IndexOf("@0001") >= 0 || oneline.IndexOf("\r\n") >= 0 ) { addchar = 0; } continue; } oneline = Cat0003(oneline, i, list); //英語の場合、改行はスペースを兼ねるので。 if (from == "en") { oneline = oneline.Replace("\r\n", " "); } else { oneline = oneline.Replace("\r\n", ""); } TranslateGoogle engine = new TranslateGoogle(); string transline = engine.Trans(oneline, from, to); if (use0001) { transline = InsertSerifnl(transline, to, use0003, ref addchar); } list[i] = transline; } string resultext = string.Join("", list); return(resultext); }