LocalizationHelperBase.cs 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. //------------------------------------------------------------
  2. // Game Framework
  3. // Copyright © 2013-2021 loyalsoft. All rights reserved.
  4. // Homepage: http://www.game7000.com/
  5. // Feedback: http://www.game7000.com/
  6. //------------------------------------------------------------
  7. using GameFramework;
  8. using GameFramework.Localization;
  9. using UnityEngine;
  10. namespace UnityGameFramework.Runtime
  11. {
  12. /// <summary>
  13. /// 本地化辅助器基类。
  14. /// </summary>
  15. public abstract class LocalizationHelperBase : MonoBehaviour, IDataProviderHelper<ILocalizationManager>, ILocalizationHelper
  16. {
  17. /// <summary>
  18. /// 获取系统语言。
  19. /// </summary>
  20. public abstract Language SystemLanguage
  21. {
  22. get;
  23. }
  24. /// <summary>
  25. /// 读取字典。
  26. /// </summary>
  27. /// <param name="localizationManager">本地化管理器。</param>
  28. /// <param name="dictionaryAssetName">字典资源名称。</param>
  29. /// <param name="dictionaryAsset">字典资源。</param>
  30. /// <param name="userData">用户自定义数据。</param>
  31. /// <returns>是否读取字典成功。</returns>
  32. public abstract bool ReadData(ILocalizationManager localizationManager, string dictionaryAssetName, object dictionaryAsset, object userData);
  33. /// <summary>
  34. /// 读取字典。
  35. /// </summary>
  36. /// <param name="localizationManager">本地化管理器。</param>
  37. /// <param name="dictionaryAssetName">字典资源名称。</param>
  38. /// <param name="dictionaryBytes">字典二进制流。</param>
  39. /// <param name="startIndex">字典二进制流的起始位置。</param>
  40. /// <param name="length">字典二进制流的长度。</param>
  41. /// <param name="userData">用户自定义数据。</param>
  42. /// <returns>是否读取字典成功。</returns>
  43. public abstract bool ReadData(ILocalizationManager localizationManager, string dictionaryAssetName, byte[] dictionaryBytes, int startIndex, int length, object userData);
  44. /// <summary>
  45. /// 解析字典。
  46. /// </summary>
  47. /// <param name="localizationManager">本地化管理器。</param>
  48. /// <param name="dictionaryString">要解析的字典字符串。</param>
  49. /// <param name="userData">用户自定义数据。</param>
  50. /// <returns>是否解析字典成功。</returns>
  51. public abstract bool ParseData(ILocalizationManager localizationManager, string dictionaryString, object userData);
  52. /// <summary>
  53. /// 解析字典。
  54. /// </summary>
  55. /// <param name="localizationManager">本地化管理器。</param>
  56. /// <param name="dictionaryBytes">要解析的字典二进制流。</param>
  57. /// <param name="startIndex">字典二进制流的起始位置。</param>
  58. /// <param name="length">字典二进制流的长度。</param>
  59. /// <param name="userData">用户自定义数据。</param>
  60. /// <returns>是否解析字典成功。</returns>
  61. public abstract bool ParseData(ILocalizationManager localizationManager, byte[] dictionaryBytes, int startIndex, int length, object userData);
  62. /// <summary>
  63. /// 释放字典资源。
  64. /// </summary>
  65. /// <param name="localizationManager">本地化管理器。</param>
  66. /// <param name="dictionaryAsset">要释放的字典资源。</param>
  67. public abstract void ReleaseDataAsset(ILocalizationManager localizationManager, object dictionaryAsset);
  68. }
  69. }