2017-02-21 74 views
1

get請求文化我嘗試創建IStringLocalizer在asp.net 1.1核心的implemantation使用每種語言的單一資源文件爲我的整個項目(而不是一個每頁每種語言...)。而且我無法找到如何在這裏獲得請求語言以回報具有良好文化的價值觀。如何從IStringLocalizer實施

我可能失去了實現它的方式,但文檔在主題上很差。有人能告訴我如何獲得良好的文化(用戶的一個EQ要求用戶語言)請在這裏:

public class CustomLocalizer : IStringLocalizer 
{ 
    private readonly CultureInfo _currentCulture; 
    public IEnumerable<LocalizedString> GetAllStrings(bool includeParentCultures) 
    { 
     ResourceManager rm = new ResourceManager(typeof(MyResources)); 
     foreach(DictionaryEntry value in rm.GetResourceSet(_currentCulture, false, true)) 
     { 
      yield return new LocalizedString((string)value.Key, (string)value.Value); 
     } 
    } 

    public CustomLocalizer(CultureInfo culture = null) 
    { 
     _currentCulture = culture ?? CultureInfo.DefaultThreadCurrentUICulture; 
    } 

    public IStringLocalizer WithCulture(CultureInfo culture) 
    { 
     return new CustomLocalizer(culture); 

    } 

    LocalizedString IStringLocalizer.this[string name] 
    { 
     get 
     { 
      ResourceManager rm = new ResourceManager(typeof(MyResources)); 
      return new LocalizedString(name, rm.GetString(name, _currentCulture)); 
     } 
    } 

    LocalizedString IStringLocalizer.this[string name, params object[] arguments] 
    { 
     get 
     { 
      ResourceManager rm = new ResourceManager(typeof(MyResources)); 
      return new LocalizedString(name, rm.GetString(name, _currentCulture)); 
     } 
    } 
} 

回答

3

終於找到了其中的錯誤(在我startup.cs,在配置方法我設置本地化之前使用AddMvc選項...)。如果它可以幫助某人,在其他情況下,我會刪除這篇文章。