using System;
using System.Globalization;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Collections;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using Message;

namespace ___C_File_Editor
{
  public partial class MainWindow : Window
  {

    private void changeLanguage()
    {
      Dictionary<string, string> language = new Dictionary<string, string>();
      txt["btnOpen"] = "開く";
      txt["OK"] = "OK";
      txt["Cancel"] = "キャンセル";
      txt["Yes"] = "はい";
      txt["No"] = "いいえ";
      txt["Info"] = "情報";
      txt["Error"] = "エラー";
      txt["Caution"] = "注意";
      txt["Confirm"] = "確認";
      txt["Message"] = "メッセージ";
      txt["textStatus"] = "ファイルを開いて下さい";

      txt["Saved"] = "保存しました";
      txt["NotC"] = "---Cファイルではありません";
      txt["UnsupportedC"] = "対応している---Cファイルではありません";
      txt["UnsupportedFile"] = "対応しているファイルではありません";
      txt["ConfirmOpenFile"] = "このファイルを開きますか？";

      txt["Overwrite"] = "ファイルを上書きしますか？";
      txt["OverwriteYes"] = "上書きする";
      txt["AlreadyExists"] = "同じ名前のファイルが既にあります。別名で保存しますか？";
      txt["SaveAs"] = "別名で保存する";

      string filePath = Environment.CurrentDirectory + @"\Language.dat";
      if (!File.Exists(filePath))
      {
        return;
      }

      using (var sr = new StreamReader(filePath))
      {
        while (!sr.EndOfStream)
        {
          string[] inLine = sr.ReadLine().Split('\t');
          if (inLine.Length == 0)
          {
            continue;
          }
          else if (inLine[0] == "Type")
          {
            langType = inLine[2].Trim();
          }
          else if (inLine[0] == langType)
          {
            language[inLine[1].Trim()] = inLine[2].Trim();
          }
        }

        List<string> keys = new List<string>();
        foreach (var key in txt.Keys)
        {
          keys.Add(key);
        }
        foreach (string key in keys)
        {
          if (language.ContainsKey(key)) txt[key] = Regex.Unescape(language[key]);
        }

        if (language.ContainsKey("gbVisibleFlag")) gbVisibleFlag.Header = language["gbVisibleFlag"];
        if (language.ContainsKey("gbOtherFlag")) gbOtherFlag.Header = language["gbOtherFlag"];
        if (language.ContainsKey("cbHideGlasses")) cbHideGlasses.Content = language["cbHideGlasses"];

        if (language.ContainsKey("btnOpen")) btnOpen.Content = language["btnOpen"];
        if (language.ContainsKey("btnSave")) btnSave.Content = language["btnSave"];
        if (language.ContainsKey("btnSaveAs")) btnSaveAs.Content = language["btnSaveAs"];
        if (language.ContainsKey("textStatus"))
        {
          textStatus.Path = language["textStatus"];
        }
      }
    }

  }
}
