LocalizationHelper.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using System;
  2. using System.Globalization;
  3. using Abp.Dependency;
  4. using Abp.Localization.Sources;
  5. namespace Abp.Localization
  6. {
  7. /// <summary>
  8. /// This static class is used to simplify getting localized strings.
  9. /// </summary>
  10. public static class LocalizationHelper
  11. {
  12. /// <summary>
  13. /// Gets a reference to the localization manager.
  14. /// Inject and use <see cref="ILocalizationManager"/>
  15. /// wherever it's possible, instead of this shortcut.
  16. /// </summary>
  17. public static ILocalizationManager Manager { get { return LocalizationManager.Value; } }
  18. private static readonly Lazy<ILocalizationManager> LocalizationManager;
  19. static LocalizationHelper()
  20. {
  21. LocalizationManager = new Lazy<ILocalizationManager>(
  22. () => IocManager.Instance.IsRegistered<ILocalizationManager>()
  23. ? IocManager.Instance.Resolve<ILocalizationManager>()
  24. : NullLocalizationManager.Instance
  25. );
  26. }
  27. /// <summary>
  28. /// Gets a pre-registered localization source.
  29. /// </summary>
  30. public static ILocalizationSource GetSource(string name)
  31. {
  32. return LocalizationManager.Value.GetSource(name);
  33. }
  34. /// <summary>
  35. /// Gets a localized string in current language.
  36. /// </summary>
  37. /// <param name="sourceName">Name of the localization source</param>
  38. /// <param name="name">Key name to get localized string</param>
  39. /// <returns>Localized string</returns>
  40. public static string GetString(string sourceName, string name)
  41. {
  42. return LocalizationManager.Value.GetString(sourceName, name);
  43. }
  44. /// <summary>
  45. /// Gets a localized string in specified language.
  46. /// </summary>
  47. /// <param name="sourceName">Name of the localization source</param>
  48. /// <param name="name">Key name to get localized string</param>
  49. /// <param name="culture">culture</param>
  50. /// <returns>Localized string</returns>
  51. public static string GetString(string sourceName, string name, CultureInfo culture)
  52. {
  53. return LocalizationManager.Value.GetString(sourceName, name, culture);
  54. }
  55. }
  56. }