123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- //------------------------------------------------------------
- // All Rights Reserved , Copyright (C) 2010 , Jirisoft , Ltd.
- //------------------------------------------------------------
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.IO;
- namespace Ant.Service.Utilities
- {
- /// <summary>
- /// ResourceManager
- /// 资源管理器
- ///
- /// 修改纪录
- /// 2007.05.16 版本:1.0 JiRiGaLa 重新调整代码的规范化。
- ///
- /// 版本:1.0
- ///
- /// <author>
- /// <name>JiRiGaLa</name>
- /// <date>2007.05.16</date>
- /// </author>
- /// </summary>
- public class ResourceManager
- {
- private volatile static ResourceManager instance = null;
- private static object locker = new Object();
- public static ResourceManager Instance
- {
- get
- {
- if (instance == null)
- {
- lock (locker)
- {
- if (instance == null)
- {
- instance = new ResourceManager();
- }
- }
- }
- return instance;
- }
- }
- private string FolderPath = string.Empty;
- public SortedList<String, Resources> LanguageResources = new SortedList<String, Resources>();
- public void Serialize(Resources resources, string filePath)
- {
- ResourcesSerializer.Serialize(filePath, resources);
- }
- public void Init(string filePath)
- {
- FolderPath = filePath;
- DirectoryInfo directoryInfo = new DirectoryInfo(filePath);
- LanguageResources.Clear();
- if (!directoryInfo.Exists)
- {
- return;
- }
- FileInfo[] FileInfo = directoryInfo.GetFiles();
- for (int i = 0; i < FileInfo.Length; i++)
- {
- Resources resources = ResourcesSerializer.DeSerialize(FileInfo[i].FullName);
- resources.createIndex();
- LanguageResources.Add(resources.language, resources);
- }
- }
- public Hashtable GetLanguages()
- {
- Hashtable hashtable = new Hashtable();
- IEnumerator<KeyValuePair<String, Resources>> iEnumerator = LanguageResources.GetEnumerator();
- while (iEnumerator.MoveNext())
- {
- hashtable.Add(iEnumerator.Current.Key, iEnumerator.Current.Value.displayName);
- }
- return hashtable;
- }
- public Hashtable GetLanguages(string path)
- {
- Hashtable hashtable = new Hashtable();
- DirectoryInfo directoryInfo = new DirectoryInfo(path);
- if (!directoryInfo.Exists)
- {
- return hashtable;
- }
- FileInfo[] fileInfo = directoryInfo.GetFiles();
- for (int i = 0; i < fileInfo.Length; i++)
- {
- Resources resources = ResourcesSerializer.DeSerialize(fileInfo[i].FullName);
- hashtable.Add(resources.language, resources.displayName);
- }
- return hashtable;
- }
- public Resources GetResources(string filePath)
- {
- Resources resources = new Resources();
- if (File.Exists(filePath))
- {
- resources = ResourcesSerializer.DeSerialize(filePath);
- resources.createIndex();
- }
- return resources;
- }
-
- public string Get(string language, string key)
- {
- if (!LanguageResources.ContainsKey(language))
- {
- return string.Empty;
- }
- return LanguageResources[language].Get(key);
- }
- }
- }
|