Commit b1a62e4f authored by shrabbit's avatar shrabbit
Browse files

添加应用信息和本地化支持

- 添加 `AppInfo` 类实现 `IAppInfo` 接口
- 添加本地化管理器 `LocalizationManager` 和相关接口
- 添加资源文件本地化提供者 `ResourceFileLocalizationProvider`
- 更新 `Startup` 类以使用依赖注入容器
- 更新项目文件以包含新的依赖项和项目引用
parent 2aea2ddb
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -2,8 +2,11 @@

public interface IAppInfo
{
    string Name { get; set; }
    string VersionString { get; set; }
    string Name { get; }
    string VersionString { get; }
    int VersionInt { get; }
    Version Version { get; }
    
    string Developer { get; }
    string Description { get; }
    string Copyright { get; }
}
 No newline at end of file
+12 −0
Original line number Diff line number Diff line
using System.Globalization;

namespace Seek.Common.Localization;

public interface ILocalizationManager
{
    CultureInfo CurrentCulture { get; set; }
    CultureInfo DefaultCulture { get; }
    IEnumerable<ILocalizationProvider> Providers { get; }
    void RegisterProvider(ILocalizationProvider provider);
    void UnregisterProvider(string providerName);
}
+10 −0
Original line number Diff line number Diff line
using System.Globalization;

namespace Seek.Common.Localization;

public interface ILocalizationProvider
{
    string ProviderName { get; }
    IEnumerable<string> GetKeys(CultureInfo culture);
    bool TryGetString(string key, CultureInfo culture, out string value);
}
+13 −0
Original line number Diff line number Diff line
using System.Globalization;

namespace Seek.Common.Localization;

public interface IStringLocalizer
{
    string this[string key] { get; }
    string this[string key, params object[] args] { get; }
    string GetString(string key, CultureInfo? culture = null);
    string GetString(string key, CultureInfo? culture, params object[] args);
    bool TryGetString(string key, out string value, CultureInfo? culture = null);
    IEnumerable<string> GetAllKeys(CultureInfo? culture = null);
}
+4 −0
Original line number Diff line number Diff line
@@ -6,4 +6,8 @@
        <Nullable>enable</Nullable>
    </PropertyGroup>

    <ItemGroup>
      <PackageReference Include="Microsoft.Extensions.Localization" Version="10.0.5" />
    </ItemGroup>

</Project>
Loading