Beispiel #1
0
        /// <summary>
        /// 翻译窗口失去焦点的时候。
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Stxt_trans_Leave(object sender, EventArgs e)
        {
            if (sdgv_items.SelectedRows.Count <= 0)
            {
                return;
            }

            if (sdgv_items.SelectedRows.Count > 1)
            {
                MessageBoxEx.Show("只能选择一行进行翻译,你现在选择了多行", "提示");
                return;
            }

            var i = sdgv_items.SelectedRows.Count - 1;

            var key  = this.sdgv_items.SelectedRows[i].Cells[1].Value.ToString();
            var han  = stxt_han.Text;
            var tran = stxt_trans.Text;

            if (key.IsNullOrEmpty())
            {
                MessageBoxEx.Show("获取key失败", "提示");
                return;
            }

            var model = ModelManager.Instance.Items.FirstOrDefault(x => x.Key == key);

            if (model == null)
            {
                MessageBoxEx.Show("根据key没有找到数据", "提示");
                return;
            }

            if (model.Value != han)
            {
                MessageBoxEx.Show("搜索到的信息与选中的韩文不匹配", "提示");
                return;
            }

            var hanLen  = EncodingHelp.GetStringLength(han);
            var tranLen = EncodingHelp.GetStringLength(tran);

            if (tranLen > hanLen)
            {
                //这个汉化不能转换,提示用户
                this.sdgv_items.SelectedRows[i].Cells[0].Value = Resource.PROCESS_WRONG;
            }
            else
            {
                this.sdgv_items.SelectedRows[i].Cells[0].Value = Resource.PROCESS_RIGHT;
            }

            this.sdgv_items.SelectedRows[i].Cells[3].Value = tran;

            lbl_otext.Text  = hanLen.ToString();
            label2.Text     = tranLen.ToString();
            model.Transform = tran;

            ModelManager.Instance.Save();
        }
Beispiel #2
0
        /// <summary>
        /// 按键盘的上下键给列表置入焦点时
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Sdgv_items_CellEnter(object sender, DataGridViewCellEventArgs e)
        {
            if (sdgv_items.SelectedRows.Count <= 0)
            {
                return;
            }

            if (sdgv_items.SelectedRows.Count > 1)
            {
                MessageBoxEx.Show("只能选择一行进行翻译,你现在选择了多行", "提示");
                return;
            }

            var i = sdgv_items.SelectedRows.Count - 1;

            var han  = this.sdgv_items.SelectedRows[i].Cells[2].Value.ToString();
            var tran = this.sdgv_items.SelectedRows[i].Cells[3].Value.ToString();

            var hanLen  = EncodingHelp.GetStringLength(han);
            var tranLen = EncodingHelp.GetStringLength(tran);

            lbl_otext.Text = hanLen.ToString();
            label2.Text    = tranLen.ToString();

            stxt_han.Text   = han;
            stxt_trans.Text = tran;
        }
Beispiel #3
0
        /// <summary>
        /// 导入翻译文件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Sbtn_tai_Click(object sender, EventArgs e)
        {
            var patch = OpenFile.OpenDialog("请选择翻译后的语言包", "翻译后的包(*.tbl)|*.tbl", "是否将文件导入到字库中");

            if (string.IsNullOrWhiteSpace(patch))
            {
                return;
            }

            var form = this;

            progress = new FormProgress();
            progress.SetFormText("正在解析tbl文件");

            var task = new Task(() =>
            {
                var tblParse = new TblParse(patch);

                var models = tblParse.Parser();

                form.Invoke((Action <string, int>)SetFormInfo, "导入汉化的进度", models.Count);

                var items = ModelManager.Instance.Items;

                //遍历已翻译过的
                models = models.Where(x => x.Value.Length > 0).ToList();

                foreach (var x in models)
                {
                    //已form主线程的方式执行代码
                    form.Invoke((Action)SetFormProgress);

                    var item = items.FirstOrDefault(_ => _.Key == x.Key);
                    if (item == null)
                    {
                        continue;
                    }

                    var hanLen  = EncodingHelp.GetStringLength(item.Value);
                    var tranLen = EncodingHelp.GetStringLength(x.Value);

                    if (tranLen > hanLen)
                    {
                        continue;
                    }

                    item.Transform = x.Value;
                }

                //保存字库
                ModelManager.Instance.Save();

                uiHelper.InitData(sdgv_items, GetPage);
            });

            task.Start();
            progress.ShowDialog(form);
        }
Beispiel #4
0
        /// <summary>
        /// 行被选中
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Sdgv_items_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex > -1)
            {
                var value = this.sdgv_items.Rows[e.RowIndex].Cells[2].Value.ToString();
                var trans = this.sdgv_items.Rows[e.RowIndex].Cells[3].Value.ToString();

                stxt_han.Text   = value;
                stxt_trans.Text = trans;

                lbl_otext.Text = EncodingHelp.GetStringLength(value).ToString();
                label2.Text    = EncodingHelp.GetStringLength(trans).ToString();
            }
        }