Skip to content

3. Localization

IUpdatable edited this page Aug 30, 2021 · 2 revisions

WeUiSharp目前支持三种语言(WeUiSharp currently supports three languages):

  • English(en)
  • 简体中文(zh-CN)
  • 繁体中文(zh-Hant)

3.1 切换语言(Switch languages):

// using WeUiSharp.Localization;
TranslationSource.Instance.Language = "en"; // "zh-CN" "zh-Hant"

3.2 自己的项目中实现多语言支持(Implement multi-language support in your own projects)

Step 1: 建立如下图的resx资源文件,添加自己的多语言文本,这里推荐使用 ResXManager(Create the resx resource file as shown below and add your own multilingual text. It is recommended to use ResXManager

Localization

Step 2: XAML

<weui:Window xmlns:weui="https://github.com/IUpdatable/WeUiSharp" 
             xmlns:props="clr-namespace:YourProjectName.Properties"
             xmlns:markup="clr-namespace:WeUiSharp.Markup;assembly=WeUiSharp"
             xmlns:localization="clr-namespace:WeUiSharp.Localization;assembly=WeUiSharp"
             localization:Translation.ResourceManager="{x:Static props:Strings.ResourceManager}"
             ...>
    <Grid>
        <!-- TestText is a demo key  -->
        <TextBlock Text="{markup:Loc TestText}" Width="100" Height="30"></TextBlock>
    </Grid>
</weui:Window>

Step 3: code

// using YourProjectName.Properties;
string text = Strings.ResourceManager.GetString(nameof(Strings.TestText), Thread.CurrentThread.CurrentUICulture);

如果希望监听语言切换事件(If you want to listen to language switching events)

// using WeUiSharp.Localization;
TranslationSource.Instance.PropertyChanged += TranslationInstance_PropertyChanged;

private void TranslationInstance_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
    // your code here
}

Clone this wiki locally