OSDN Git Service

DTXManiaソリューション、DTXManiaプロジェクト、DTXCreatorプロジェクト、FDKプロジェクトについて英語化。
[dtxmania/dtxmania.git] / DTXManiaプロジェクト / コード / 全体 / CResources.cs
diff --git a/DTXManiaプロジェクト/コード/全体/CResources.cs b/DTXManiaプロジェクト/コード/全体/CResources.cs
deleted file mode 100644 (file)
index 4584764..0000000
+++ /dev/null
@@ -1,320 +0,0 @@
-using System;\r
-using System.Collections.Generic;\r
-using System.Linq;\r
-using System.Text;\r
-using System.Threading.Tasks;\r
-using System.Resources;\r
-using System.Diagnostics;\r
-\r
-\r
-namespace DTXMania\r
-{\r
-       /// <summary>\r
-       /// 多言語メッセージ情報を扱います。\r
-       /// </summary>\r
-       public class CResources\r
-       {\r
-               private const string csvFileName = @"System\resources.csv";\r
-\r
-               private string[] csvHeader = null;\r
-               private Dictionary<string, string> dict = new Dictionary<string, string>();\r
-\r
-               private string[] langcodelist = null, langdisplist = null;\r
-\r
-               private string strLanguageCode;\r
-\r
-\r
-               /// <summary>\r
-               /// 表示に使用する言語情報を取得/設定する\r
-               /// 例: Language("ja-JP") など。\r
-               /// </summary>\r
-               public string Language\r
-               {\r
-                       get {\r
-                               if ( strLanguageCode == "" || strLanguageCode == null )\r
-                               {\r
-                                       string s = System.Threading.Thread.CurrentThread.CurrentUICulture.Name;\r
-                                       if ( s == "" || csvHeader == null || !csvHeader.Contains( s+".title" ) )\r
-                                       {\r
-                                               strLanguageCode = "default";\r
-                                       }\r
-                                       else\r
-                                       {\r
-                                               strLanguageCode = s;\r
-                                       }\r
-\r
-                               }\r
-//Debug.WriteLine( "Get: strLanguageCode: " + strLanguageCode );\r
-                               return strLanguageCode;\r
-                       }\r
-                       set\r
-                       {\r
-                               if ( value == "" || value == null )\r
-                               {\r
-                                       string s = System.Threading.Thread.CurrentThread.CurrentUICulture.Name;\r
-                                       if ( s == "" || csvHeader == null || !csvHeader.Contains( s + ".title" ) )\r
-                                       {\r
-                                               strLanguageCode = "default";\r
-                                       }\r
-                                       else\r
-                                       {\r
-                                               strLanguageCode = s;\r
-                                       }\r
-                               }\r
-                               else\r
-                               {\r
-                                       if ( csvHeader == null || !csvHeader.Contains( value + ".title" ) )\r
-                                       {\r
-                                               strLanguageCode = "default";\r
-                                       }\r
-                                       else\r
-                                       {\r
-                                               strLanguageCode = value;\r
-                                       }\r
-                               }\r
-                               if ( CDTXMania.Instance.ConfigIni != null )\r
-                               {\r
-                                       CDTXMania.Instance.ConfigIni.strLanguage.Value = strLanguageCode;\r
-//Debug.WriteLine( "strLang.Value=" + CDTXMania.Instance.ConfigIni.strLanguage.Value );\r
-                               }\r
-//Debug.WriteLine( "Set: strLanguageCode: " + strLanguageCode );\r
-                       }\r
-               }\r
-\r
-               /// <summary>\r
-               /// 使用可能な言語(表示名)のリストを返す\r
-               /// </summary>\r
-               /// <remarks>\r
-               /// listの格納順は、LanguageCodeListと一致する。\r
-               /// </remarks>\r
-               public string[] LanguageDispList\r
-               {\r
-                       get\r
-                       {\r
-                               return langdisplist;\r
-                       }\r
-               }\r
-\r
-               /// <summary>\r
-               /// 使用可能な言語(ja-JPなどの言語コード)のリストを返す\r
-               /// </summary>\r
-               /// <remarks>\r
-               /// listの格納順は、LanguageDispListと一致する。\r
-               /// </remarks>\r
-               public string[] LanguageCodeList\r
-               {\r
-                       get\r
-                       {\r
-                               return langcodelist;\r
-                       }\r
-               }\r
-               /// <summary>\r
-               /// 現在設定されている言語のindex順を返す\r
-               /// LanguageDispListやLanguageCodeListのindexに相当する\r
-               /// </summary>\r
-               public int LanguageCodeIndex\r
-               {\r
-                       get\r
-                       {\r
-                               int index = Array.IndexOf( langcodelist, strLanguageCode );\r
-                               if ( index < 0 ) index = 0;\r
-                               return index;\r
-                       }\r
-               }\r
-               \r
-               /// <summary>\r
-               /// key名に相当するlabel(表示名)を返す\r
-               /// </summary>\r
-               /// <param name="key"></param>\r
-               /// <returns></returns>\r
-               public string Label( string key )\r
-               {\r
-                       return Resource( key, "title", strLanguageCode );\r
-               }\r
-               public string Label( string key, string strLang )\r
-               {\r
-                       return Resource( key, "title", strLang );\r
-               }\r
-               /// <summary>\r
-               /// key名に相当するExplanation(説明文)を返す\r
-               /// </summary>\r
-               /// <param name="key"></param>\r
-               /// <returns></returns>\r
-               public string Explanation( string key )\r
-               {\r
-                       return Resource( key, "value", strLanguageCode );\r
-               }\r
-               /// <summary>\r
-               /// key名に相当するitem(コンマ区切りの選択肢)を返す\r
-               /// ただし現在は未使用\r
-               /// /// </summary>\r
-               /// <param name="key"></param>\r
-               /// <returns></returns>\r
-               public string Items( string key )\r
-               {\r
-                       return Resource( key, "items", strLanguageCode );\r
-               }\r
-\r
-               private string Resource(string key, string strType)\r
-               {\r
-                       return Resource( key, strType, strLanguageCode );\r
-               }\r
-\r
-               public string Resource( string key, string strType, string strLangCode )\r
-               {\r
-                       if (strType != "" && strType != "title" && strType != "value" && strType != "items")\r
-                       {\r
-                               throw new ArgumentOutOfRangeException( "CResources.Resource: 引数が正しくありません。(" + strType + ")" );\r
-                       }\r
-                       string key_ = key + "." + strLangCode + "." + strType;\r
-                       string value = "";\r
-\r
-//Debug.WriteLine( "strLangCode=" + strLangCode );\r
-//Debug.WriteLine( "key_=" + key_ );\r
-                       if ( !dict.ContainsKey( key_ ) )                                // keyかvalueが存在しない場合\r
-                       {\r
-                               value = "";\r
-                       }\r
-                       else\r
-                       {\r
-                               value = dict[ key_ ];\r
-//Debug.WriteLine( "value =" + value );\r
-\r
-                               if (value == "")        // もし未定義なら、defaultの文字列にfallbackする\r
-                               {\r
-                                       if ( strLangCode == "default" )\r
-                                       {\r
-                                               value = "";\r
-                                       }\r
-                                       else\r
-                                       {\r
-                                               return Resource( key, strType, "default" );\r
-                                       }\r
-                               }\r
-                       }\r
-                       return value;\r
-               }\r
-\r
-               /// <summary>\r
-               /// コンストラクタ\r
-               /// </summary>\r
-               public CResources()\r
-               {\r
-//            this.csvPath = excelPath;\r
-        }\r
\r
-               /// <summary>\r
-               /// csvファイルを読み込んで、言語リソースを初期化する。\r
-               /// languageで指定した言語リソースがない場合は、default(=en-US)にフォールバックする。\r
-               /// </summary>\r
-               /// <param name="language">"ja-JP"などの言語情報。""の場合は、default(=en-US)が用いられる。</param>\r
-        public void LoadResources(string language = "")\r
-        {\r
-                       // 参考: http://dobon.net/vb/dotnet/file/readcsvfile.html\r
-                       Microsoft.VisualBasic.FileIO.TextFieldParser tfp;\r
-                       try\r
-                       {\r
-                               tfp = new Microsoft.VisualBasic.FileIO.TextFieldParser(\r
-                                               csvFileName,\r
-                                               System.Text.Encoding.Unicode\r
-                               );\r
-                       }\r
-                       catch ( System.IO.FileNotFoundException e )\r
-                       {\r
-                               Trace.TraceError( "言語情報ファイル System/resources.csv が見つかりませんでした。" + e.Message );\r
-                               return;\r
-                       }\r
-\r
-                       //フィールドが文字で区切られているとする\r
-                       //デフォルトでDelimitedなので、必要なし\r
-                       tfp.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.Delimited;\r
-                       //区切り文字を,とする\r
-                       tfp.Delimiters = new string[] { "," };\r
-                       //フィールドを"で囲み、改行文字、区切り文字を含めることができるか\r
-                       //デフォルトでtrueなので、必要なし\r
-                       tfp.HasFieldsEnclosedInQuotes = true;\r
-                       //フィールドの前後からスペースを削除しない\r
-                       tfp.TrimWhiteSpace = false;\r
-\r
-                       bool bAlreadyReadFirstLine = false;\r
-                       while ( !tfp.EndOfData )\r
-                       {\r
-                               string[] fields = tfp.ReadFields();\r
-\r
-                               if ( !bAlreadyReadFirstLine )\r
-                               {\r
-                                       //csvHeader.Add( fields );\r
-                                       csvHeader = fields;\r
-                                       bAlreadyReadFirstLine = true;\r
-                               }\r
-                               else\r
-                               {\r
-                                       string strItemName = fields[ 0 ];\r
-                                       if (strItemName == "" || strItemName.Contains("/") )\r
-                                       {\r
-                                               continue;\r
-                                       }\r
-                                       else\r
-                                       {\r
-                                               for ( int i = 0; i < fields.GetLength( 0 ); i++ )\r
-                                               {\r
-                                                       string key = strItemName + "." + csvHeader[ i ];\r
-                                                       string value = fields[ i ];\r
-\r
-                                                       value = value.Replace( "\r", "" ).Replace( "\n", "" );          // 文字コードとしての改行は削除して、\r
-                                                       value = value.Replace( "\\n", Environment.NewLine );            // "\n" と書かれたところを改行文字に置換する\r
-                                                       dict[ key ] = value;\r
-                                               }\r
-                                       }\r
-\r
-                               }\r
-                       }\r
-\r
-                       //後始末\r
-                       tfp.Close();\r
-\r
-\r
-                       #region [ langcodelist, langlist 生成 ]\r
-                       List<string> lstLangCodeList = new List<string>();\r
-                       List<string> lstLangDispList = new List<string>();\r
-\r
-                       for ( int i = 1; i < csvHeader.Length; i++ )            // 0から開始、ではない (0は名称定義)\r
-                       {\r
-                               string s = csvHeader[ i ].Replace( ".title", "" ).Replace( ".value", "" ).Replace( ".items", "" );\r
-                               if ( !lstLangCodeList.Contains( s ) )\r
-                               {\r
-                                       lstLangCodeList.Add( s );\r
-                                       lstLangDispList.Add( Label("strCfgLanguageName", s ) );\r
-                               }\r
-                       }\r
-                       langcodelist = lstLangCodeList.ToArray();\r
-                       langdisplist = lstLangDispList.ToArray();\r
-                       #endregion\r
-\r
-                       Language = language;\r
-        }\r
-\r
-       \r
-       \r
-               #region [ Dispose-Finallizeパターン実装 ]\r
-               //-----------------\r
-               public void Dispose()\r
-               {\r
-                       this.Dispose( true );\r
-                       GC.SuppressFinalize( this );\r
-               }\r
-               protected void Dispose( bool bManagedDispose )\r
-               {\r
-                       dict = null;\r
-                       csvHeader = null;\r
-                       langcodelist = null;\r
-                       langdisplist = null;\r
-               }\r
-               ~CResources()\r
-               {\r
-                       this.Dispose( false );\r
-               }\r
-               //-----------------\r
-               #endregion\r
-       }\r
-}\r