Files
MassSpectrometer/Language/LocalLanguage.cs
T
2026-09-09 18:42:38 +08:00

170 lines
8.1 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Language
{
public class LocalLanguage
{
private static Dictionary<string, Dictionary<string, string>> _languageData;
private static string _currentLanguage = "zh"; // 默认语言为中文
static LocalLanguage()
{
InitializeLanguageData();
}
private static void InitializeLanguageData()
{
_languageData = new Dictionary<string, Dictionary<string, string>>
{
// 中文语言包
["zh"] = new Dictionary<string, string>
{
["MessageTips1"] = "软件已经启动,请在后台确认。",
["MessageTips2"] = "正在初始化日志系统...",
["MessageTips3"] = "正在设置异常处理...",
["MessageTips4"] = "正在读取配置...",
["MessageTips5"] = "初始化完成",
["MessageTips6"] = "致命错误",
["MessageTips7"] = "程序出现大异常,请联系 【金源自动化软件设计部】。\r\n异常信息: {0}\r\n异常堆栈:{1}",
["MessageTips8"] = "加载语言设置时出错: {0}",
["MessageTips9"] = "语言加载错误",
// ... 可以继续添加更多中文键值对
},
// 英文语言包
["en"] = new Dictionary<string, string>
{
["MessageTips1"] = "The software has been started, please confirm in the background.",
["MessageTips2"] = "Initializing the logging system",
["MessageTips3"] = "Setting up exception handling",
["MessageTips4"] = "Reading configuration",
["MessageTips5"] = "Initialization completed",
["MessageTips6"] = "fatal error",
["MessageTips7"] = "The program has encountered a major exception. Please contact the Jinyuan Automation Software Design Department.\r\nAbnormal information: {0}\r\nException Stack:{1}",
["MessageTips8"] = "Error loading language settings: {0}",
["MessageTips9"] = "Language loading error",
// ... 可以继续添加更多英文键值对
},
// 日文语言包
["ja"] = new Dictionary<string, string>
{
["MessageTips1"] = "ソフトウェアが起動しました。バックグラウンドで確認してください。",
["MessageTips2"] = "ログシステムを初期化しています...",
["MessageTips3"] = "例外処理を設定しています...",
["MessageTips4"] = "構成を読み込み中...",
["MessageTips5"] = "初期化完了",
["MessageTips6"] = "致命的なエラー",
["MessageTips7"] = "プログラムに大きな異常が発生した場合は、【金源自動化ソフトウェア設計部】に連絡してください。日本語の\r\n例外情報: {0}\r\n例外スタック:{1}",
["MessageTips8"] = "言語設定のロードエラー: {0}",
["MessageTips9"] = "言語ロードエラー",
// ... 可以继续添加更多日文键值对
},
// 马来语言包
["ms"] = new Dictionary<string, string>
{
["MessageTips1"] = "Perisian telah dimulakan, sila sahkan di latar belakang.",
["MessageTips2"] = "Memulakan sistem log",
["MessageTips3"] = "Menetapkan pengendalian pengecualian",
["MessageTips4"] = "Membaca konfigurasi",
["MessageTips5"] = "Pemulaan selesai",
["MessageTips6"] = "Ralat Fatal",
["MessageTips7"] = "Program telah menghadapi pengecualian utama. Sila hubungi Jabatan Ralat Perisian Automatisasi Jinyuan.\r\nMaklumat tidak normal: {0}\r\nStack Kecualian:{1}",
["MessageTips8"] = "Ralat memuatkan tetapan bahasa: {0}",
["MessageTips9"] = "Ralat memuatkan bahasa",
},
// 匈牙利语言包
["hu"] = new Dictionary<string, string>
{
["MessageTips1"] = "A szoftver elindult, kérjük, erősítse meg a háttérben.",
["MessageTips2"] = "A naplózási rendszer indítása",
["MessageTips3"] = "Kivételek kezelésének beállítása",
["MessageTips4"] = "Olvasási beállítások",
["MessageTips5"] = "Inicializálás befejezve",
["MessageTips6"] = "Halálos hiba",
["MessageTips7"] = "A program jelentős kivétellel szembesült. Kérjük, lépjen kapcsolatba a Jinyuan Automation Software Design Osztállyal. \r\nKóros információk: {0}\r\nKivételek stack:{1}",
["MessageTips8"] = "Hiba történt a nyelvbeállítások betöltésével: {0}",
["MessageTips9"] = "Nyelvbetöltési hiba",
},
// 越南语言包
["vi"] = new Dictionary<string, string>
{
["MessageTips1"] = "Phần mềm đã được khởi chạy, hãy xác nhận trong nền.",
["MessageTips2"] = "Đang khởi chạy hệ thống nhật ký...",
["MessageTips3"] = "Thiết lập xử lý ngoại lệ...",
["MessageTips4"] = "Đang đọc cấu hình...",
["MessageTips5"] = "Khởi tạo xong",
["MessageTips6"] = "Lỗi nghiêm trọng",
["MessageTips7"] = "Chương trình xuất hiện đại dị thường, xin liên hệ 【 Kim Nguyên tự động hóa phần mềm thiết kế bộ 】.\r\nThông tin ngoại lệ: {0}\r\nNgăn xếp ngoại lệ:{1}",
["MessageTips8"] = "Gặp lỗi khi tải cài đặt ngôn ngữ: {0}",
["MessageTips9"] = "Lỗi tải ngôn ngữ",
}
// 可以继续添加更多语言...
};
}
/// <summary>
/// 获取当前语言的文本
/// </summary>
/// <param name="key">文本键值</param>
/// <returns>对应语言的文本,如果未找到则返回键值本身</returns>
public static string GetText(string key,string _currentLanguage)
{
if (_languageData.ContainsKey(_currentLanguage) &&
_languageData[_currentLanguage].ContainsKey(key))
{
return _languageData[_currentLanguage][key];
}
return key; // 如果找不到对应的文本,返回键值本身
}
/// <summary>
/// 获取带变量的文本
/// </summary>
/// <param name="key">文本键值</param>
/// <param name="args">要替换的变量值</param>
/// <returns>替换变量后的文本</returns>
public static string GetText(string key, string _currentLanguage, params object[] args)
{
try
{
if (_languageData.ContainsKey(_currentLanguage) &&
_languageData[_currentLanguage].ContainsKey(key))
{
string format = _languageData[_currentLanguage][key];
if (args != null && args.Length > 0)
{
return string.Format(format, args);
}
return format;
}
return key;
}
catch (FormatException ex)
{
// 记录错误:格式字符串与参数不匹配
Debug.WriteLine($"Language format error - Key: {key}, Error: {ex.Message}");
return key;
}
}
}
}