TekDeq.Localization
1.0.0

자체 추상화가있는 또 다른 현지화 라이브러리는 예제와 함께 현지화 인프라를 만들 수 있습니다. 기본 JSON 현지화 제공 업체 구현이 포함되어 있습니다 (다른 유형은 향후 추가 될 것입니다).
라이브러리를 사용하기 전에 다음 Nuget 패키지를 설치하십시오.
| 이름 | 설명 | 버전 |
|---|---|---|
| Tekdeq.localization.core | 핵심 라이브러리 | |
| Tekdeq.localization. 의존성 | Microsoft DI 확장 | |
| Tekdeq.localization.avalonia | Avalonia 현지화 및 확장 |
추가 현지화 제공 업체를 만들려면 Ilocalization -Provider 및 LocalizationProviderbase 추상화를 참조하십시오. 사용법의 예로 JSONLOCALIDISIONPROVIDER 및 AVALONIAJSONLOCALIZATIONPROVIDER 구현을 참조하십시오. 프로젝트에서 종속성 주입을 사용하는 경우 Demo 프로젝트의 App.axaml.cs에서 사용법의 예를 찾을 수 있습니다.
public override void OnFrameworkInitializationCompleted ( )
{
var host = Host . CreateDefaultBuilder ( )
. ConfigureServices ( ( context , services ) =>
{
services . UseMicrosoftDependencyResolver ( ) ;
// Initialize Splat
var resolver = Locator . CurrentMutable ;
resolver . InitializeSplat ( ) ;
resolver . InitializeReactiveUI ( ) ;
// Register Views and ViewModels
services . AddTransient < MainWindow > ( ) ;
services . AddTransient < MainWindowViewModel > ( ) ;
// Register Localization
services . AddLocalization < AvaloniaJsonLocalizationProvider > ( ( ) =>
{
var options = new AvaloniaLocalizationOptions (
// cultures support localization
new List < CultureInfo >
{
new ( "en-US" ) ,
new ( "uk-UA" )
} ,
// defaultCulture, it uses for setting if currentCulture is not in cultures list
// and as fallback culture mor missing localization entries.
new CultureInfo ( "en-US" ) ,
// currentCulture sets when infrastructure loads,
// could be received from app settings or so.
Thread . CurrentThread . CurrentCulture ,
// path to assets with json files of localization.
$ " { typeof ( App ) . Namespace } /Assets/i18n" ) ;
return options ;
} ) ;
} ) . Build ( ) ;
if ( ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop )
{
desktop . MainWindow = new MainWindow
{
DataContext = host . Services . GetRequiredService < MainWindowViewModel > ( )
} ;
}
base . OnFrameworkInitializationCompleted ( ) ;
}Markup Extension을 현지화하여 Avalonia의 Markup Localization을 시작하려면 마크 업에 네임 스페이스를 추가해야합니다.
<Window xmlns="https://github.com/avaloniaui"
...
xmlns:i18n="clr-namespace:TekDeq.Localization.Avalonia.Extensions;assembly=TekDeq.Localization.Avalonia"
...
>
이 후에는 UI의 국소화에 사용될 수 있습니다.
<StackPanel
...
<TextBlock Text="{i18n:Localize Greeting}" />
...
</StackPanel>
리포지토리에 포함 된 데모 프로젝트는 Visual Studio에서 열고 실행합니다.
이 프로젝트는 MIT 라이센스의 조건에 따라 라이센스가 부여됩니다.
기부금을 환영합니다. 문제를 열거나 새 PR을 제출하십시오.
내 이메일을 통해 저에게 연락 할 수 있습니다.