Open suatsuphi opened 6 years ago
Hi, can you fix/add WithCulture and GetAllStrings
using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using Microsoft.Extensions.Localization;
namespace Localization.SqlLocalizer.DbStringLocalizer { public class SqlStringLocalizer : IStringLocalizer {
private readonly Dictionary<string, string> _localizations; private readonly DevelopmentSetup _developmentSetup; private readonly string _resourceKey; private bool _returnKeyOnlyIfNotFound; private bool _createNewRecordWhenLocalisedStringDoesNotExist; private CultureInfo _currentCulture; public SqlStringLocalizer(Dictionary<string, string> localizations, DevelopmentSetup developmentSetup, string resourceKey, bool returnKeyOnlyIfNotFound, bool createNewRecordWhenLocalisedStringDoesNotExist, CultureInfo culture = null) { _localizations = localizations; _developmentSetup = developmentSetup; _resourceKey = resourceKey; _returnKeyOnlyIfNotFound = returnKeyOnlyIfNotFound; _createNewRecordWhenLocalisedStringDoesNotExist = createNewRecordWhenLocalisedStringDoesNotExist; _currentCulture = culture; } public LocalizedString this[string name] { get { bool notSucceed; var text = GetText(name, out notSucceed); return new LocalizedString(name, text,notSucceed); } } public LocalizedString this[string name, params object[] arguments] { get { return this[name]; } } public IEnumerable<LocalizedString> GetAllStrings(bool includeParentCultures) { return _localizations.Select(x => new LocalizedString(x.Key, x.Value)); } public IStringLocalizer WithCulture(CultureInfo culture) { return new SqlStringLocalizer(_localizations, _developmentSetup, _resourceKey, _returnKeyOnlyIfNotFound, _createNewRecordWhenLocalisedStringDoesNotExist, culture); } private string GetText(string key,out bool notSucceed) {
var _culture = _currentCulture ?? System.Threading.Thread.CurrentThread.CurrentCulture; //var culture = System.Threading.Thread.CurrentThread.CurrentCulture.ToString();
var _culture = _currentCulture ?? CultureInfo.CurrentCulture; //CultureInfo.CurrentCulture.ToString();
string culture = _culture.ToString(); string computedKey = $"{key}.{culture}"; string result; if (_localizations.TryGetValue(computedKey, out result)) { notSucceed = false; return result; } else { notSucceed = true; if (_createNewRecordWhenLocalisedStringDoesNotExist) { _developmentSetup.AddNewLocalizedItem(key, culture, _resourceKey); _localizations.Add(computedKey, computedKey); return computedKey; } if (_returnKeyOnlyIfNotFound) { return key; } return _resourceKey + "." + computedKey; } } }
}
could you fix this thanks
Hi, can you fix/add WithCulture and GetAllStrings
using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using Microsoft.Extensions.Localization;
namespace Localization.SqlLocalizer.DbStringLocalizer { public class SqlStringLocalizer : IStringLocalizer {
if NET451
elif NET46
else
endif
}