2016-07-14 54 views

回答

1

实际上您并不需要多语言应用程序工具包来修改应用程序的语言。默认情况下,应用程序将根据机器上的设置进行自我配置,但您可以通过设置CurrentCulture和/或CurrentUICulture来覆盖该设置。

假设您有一个包含“英语”,“西班牙语”和“法语”的Combobox ...并且您希望的行为是将您的语言切换为用户选择的任何值。所有你需要做的就是连接SelectionChanged事件。下面的代码可能看起来像:

private void ChangeLanguage(object sender, SelectionChangedEventArgs e) 
    { 
     var newlySelected = e.AddedItems[0] as ComboBoxItem; 
     string newLanguage = newlySelected.Content.ToString(); 
     switch (newLanguage) 
     { 
      case "English": 
       { 
        CultureInfo.CurrentCulture = new CultureInfo("en"); 
        CultureInfo.CurrentUICulture = new CultureInfo("en"); 
        break; 
       } 
      case "Spanish": 
       { 
        CultureInfo.CurrentCulture = new CultureInfo("es"); 
        CultureInfo.CurrentUICulture = new CultureInfo("es"); 
        break; 
       } 
      case "French": 
       { 
        CultureInfo.CurrentCulture = new CultureInfo("fr"); 
        CultureInfo.CurrentUICulture = new CultureInfo("fr"); 
        break; 
       } 
      default: 
       { 
        throw new NotImplementedException("Unidentified Language"); 
       } 
     } 
    } 

当然,我会鼓励你做所有适当的错误检查(确保投地ComboBoxItem工作,等...)。

另外,如果您想要修改ResourceLoader用于填充UI的资源,则需要设置CurrentCulture,以便在适当的语言环境中显示Dates和Times等内容并使用CurrentUICulture。

希望这应该让你启动并运行!

- 丹特