public TranslateString GetNormalizedTranslateString(TranslateString input) { TranslateString result = input.Clone() as TranslateString; string loadedString = input.LoadedString; string replaceToken = ""; string normalized = loadedString; MatchCollection numbers = Regex.Matches(loadedString, @"\d+(\.|,)?\d*"); int tokenIndex = 0; foreach (var match in numbers) { var regex = new Regex(Regex.Escape(match.ToString())); normalized = regex.Replace(normalized, "#" + tokenIndex++ + "#", 1); replaceToken += "#" + match.ToString() + "#"; } result.NormalizedString = normalized; result.ReplaceToken = replaceToken; result.TranslateStringState = TranslateStringState.Normalized; return(result); }
private void AutoTrans() //EZTransXP Doesn't support multi-threading :/ { StartLongProgress(); try { UpdateLongProgressMessage("EZTransXP 모듈 초기화..."); if (!EZTransXP.IsInited) { EZTransXP.Init(); } } catch (Exception ex) { MessageBox.Show(ex.Message); FinishLongProgress(); return; } long lastUpdate = DateTimeOffset.Now.ToUnixTimeMilliseconds() - 500; for (int i = 0; i < StringListBox.Items.Count; i++) { TranslateString str = StringListBox.Items[i] as TranslateString; if (str.Machine != "") { continue; } try { if (lastUpdate + 500 < DateTimeOffset.Now.ToUnixTimeMilliseconds()) { UpdateLongProgressMessage("번역중 " + i + "/" + StringListBox.Items.Count); lastUpdate = DateTimeOffset.Now.ToUnixTimeMilliseconds(); } str.Machine = EZTransXP.TranslateJ2K(str.Original); machineCount++; } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); } } project.Extractor.SaveTranslateStrings(); Dispatcher.Invoke(new Action(() => { UpdateTranslateState(true); })); FinishLongProgress(); }
protected void InsertNewTranslateStrings(string original) { if (original.Trim() == "") { return; } if (TranslateStringDict.ContainsKey(original)) { return; } var ts = new TranslateString() { Original = original, Hand = "", Machine = "" }; TranslateStrings.Add(ts); TranslateStringDict[original] = ts; }
public async Task Update <T>(TranslateString str, Expression <Func <TranslateString, T> > field, T value) { await _stringsCollection.UpdateOneAsync(s => s.Id == str.Id, Builders <TranslateString> .Update.Set(field, value)); }