private void Awake() { _canvas = GetComponent <Canvas>(); _localizationOptionsFilepath = Path.Combine(Application.persistentDataPath, "localization.json"); _lastSavedLocalizationOptions = ScriptableObject.CreateInstance <LocalizationOptions>(); LoadLocalizationOptions(); }
private static void CreateLocalizationOptions(LocalizationOptions options) { options.Sources = new[] { new LocalizationSource(ResourceMap.GetLocalizationsRootPath(), LocalizationSourceType.Common), }; }
public void ShowHelp_WithAmericanLocale_ShowsEnglishHelpText() { using (LocalizationExtensions.WithUiCulture(new CultureInfo("en-US"))) { // Arrange var expected = @"Usage: clipr [ -h|--help ] [ --version ] [ --turnonthepower ] [ -s S ] [ -c C ] FILETOADD Positional Arguments: FileToAdd File to add to the thing. Optional Arguments: --turnonthepower Set power level to 9001. -c A cool counter. -h, --help Display this help document. -s Start date. --version Displays the version of the current executable."; var opt = new LocalizationOptions(); var parser = new CliParser <LocalizationOptions>(opt); var help = new AutomaticHelpGenerator <LocalizationOptions>(); // TODO simplify work required to get help info // Act var actual = help.GetHelp(parser.Config); // Assert Assert.AreEqual(expected, actual); } }
public void EmbeddedResourceAssemblies_ShouldReturnAnEmptyArrayByDefault() { var localizationOptions = new LocalizationOptions(); Assert.IsNotNull(localizationOptions.EmbeddedResourceAssemblies); Assert.IsFalse(localizationOptions.EmbeddedResourceAssemblies.Any()); }
public void JsonDeserialization_ShouldDeserializeCorrectly() { var expectedLocalizationOptions = new LocalizationOptions { FileResourcesDirectoryPath = "Test" }; expectedLocalizationOptions.EmbeddedResourceAssemblies.Add(this.AssemblyHelper.Wrap(typeof(string).Assembly).Name); expectedLocalizationOptions.EmbeddedResourceAssemblies.Add(this.AssemblyHelper.Wrap(this.GetType().Assembly).Name); var localizationOptions = JsonConvert.DeserializeObject <LocalizationOptions>("{\"EmbeddedResourceAssemblies\":[\"System.Private.CoreLib\",\"IntegrationTests\"],\"FileResourcesDirectoryPath\":\"Test\"}"); Assert.IsTrue(localizationOptions.AlphabeticalSorting); Assert.AreEqual(2, localizationOptions.EmbeddedResourceAssemblies.Count); Assert.AreEqual("System.Private.CoreLib", localizationOptions.EmbeddedResourceAssemblies.ElementAt(0)); Assert.AreEqual("IntegrationTests", localizationOptions.EmbeddedResourceAssemblies.ElementAt(1)); Assert.IsTrue(expectedLocalizationOptions.EmbeddedResourceAssemblies.SequenceEqual(localizationOptions.EmbeddedResourceAssemblies)); Assert.AreEqual("Test", localizationOptions.FileResourcesDirectoryPath); Assert.AreEqual(expectedLocalizationOptions.FileResourcesDirectoryPath, localizationOptions.FileResourcesDirectoryPath); Assert.IsFalse(localizationOptions.ThrowErrors); localizationOptions = JsonConvert.DeserializeObject <LocalizationOptions>("{\"AlphabeticalSorting\":false,\"EmbeddedResourceAssemblies\":[\"System.Private.CoreLib\",\"IntegrationTests\"],\"FileResourcesDirectoryPath\":\"Test\",\"ThrowErrors\":true}"); Assert.IsFalse(localizationOptions.AlphabeticalSorting); Assert.AreEqual(2, localizationOptions.EmbeddedResourceAssemblies.Count); Assert.AreEqual("System.Private.CoreLib", localizationOptions.EmbeddedResourceAssemblies.ElementAt(0)); Assert.AreEqual("IntegrationTests", localizationOptions.EmbeddedResourceAssemblies.ElementAt(1)); Assert.IsTrue(expectedLocalizationOptions.EmbeddedResourceAssemblies.SequenceEqual(localizationOptions.EmbeddedResourceAssemblies)); Assert.AreEqual("Test", localizationOptions.FileResourcesDirectoryPath); Assert.AreEqual(expectedLocalizationOptions.FileResourcesDirectoryPath, localizationOptions.FileResourcesDirectoryPath); Assert.IsTrue(localizationOptions.ThrowErrors); }
public WebLocalizationManagementService( IHttpContextAccessor httpContextAccessor, LocalizationOptions localizationOptions) { _httpContextAccessor = httpContextAccessor; _localizationOptions = localizationOptions; }
public void Resolve_IfTheLocalizationOptionsParameterContainsDuplicateEmbeddedResourceAssemblies_ShouldThrowAnInvalidOperationException() { var serviceProvider = this.BuildServiceProvider("Configuration-Empty.json"); var localizationOptionsResolver = (LocalizationOptionsResolver)serviceProvider.GetRequiredService <ILocalizationOptionsResolver>(); var localizationOptions = new LocalizationOptions(); localizationOptions.EmbeddedResourceAssemblies.Add("System"); localizationOptions.EmbeddedResourceAssemblies.Add("System"); try { localizationOptionsResolver.Resolve(localizationOptions); } catch (ArgumentException argumentException) { const string message = "Embedded-resource-assemblies-exception: The patterns-collection can not contain duplicate values. Values: \"System\", \"System\""; if (argumentException.Message.StartsWith(message, StringComparison.OrdinalIgnoreCase) && argumentException.ParamName.Equals("patterns", StringComparison.Ordinal)) { throw; } } }
public void ShowHelp_WithMexicanLocale_ShowsSpanishHelpText() { using (LocalizationExtensions.WithUiCulture(new CultureInfo("es-MX"))) { // Arrange var expected = @"Forma de uso: clipr [ -h|--help ] [ --version ] [ --turnonthepower ] [ -s S ] [ -c C ] FILETOADD Argumentos dependientes de la posición: FileToAdd Archivo para añadir a la cosa. Argumentos opcionales: --turnonthepower Establecer el nivel de potencia de 9001. -c Un contador fresco. -h, --help Muestra esta ayuda -s Fecha de inicio. --version Muestra la versión del ejecutable"; var opt = new LocalizationOptions(); var parser = new CliParser <LocalizationOptions>(opt); var help = new AutomaticHelpGenerator <LocalizationOptions>(); // Act var actual = help.GetHelp(parser.Config); // Assert Assert.AreEqual(expected, actual); } }
public void Create_OverloadsProduceSameResult() { // Arrange var locOptions = new LocalizationOptions(); var options = new Mock <IOptions <LocalizationOptions> >(); options.Setup(o => o.Value).Returns(locOptions); var resourceLocationAttribute = new ResourceLocationAttribute(Path.Combine("My", "Resources")); var loggerFactory = NullLoggerFactory.Instance; var typeFactory = new TestResourceManagerStringLocalizerFactory( options.Object, resourceLocationAttribute, rootNamespaceAttribute: null, loggerFactory: loggerFactory); var stringFactory = new TestResourceManagerStringLocalizerFactory( options.Object, resourceLocationAttribute, rootNamespaceAttribute: null, loggerFactory: loggerFactory); var type = typeof(ResourceManagerStringLocalizerFactoryTest); var assemblyName = new AssemblyName(type.Assembly.FullName); // Act typeFactory.Create(type); stringFactory.Create(type.Name, assemblyName.Name); // Assert Assert.Equal(typeFactory.BaseName, stringFactory.BaseName); Assert.Equal(typeFactory.Assembly !.FullName, stringFactory.Assembly !.FullName); }
public void Resolve_IfTheLocalizationOptionsParameterHasARelativeFileResourcesDirectoryPathThatDoesNotExist_ShouldThrowADirectoryNotFoundException() { var serviceProvider = this.BuildServiceProvider("Configuration-Empty.json"); var localizationOptionsResolver = (LocalizationOptionsResolver)serviceProvider.GetRequiredService <ILocalizationOptionsResolver>(); var localizationOptions = new LocalizationOptions { FileResourcesDirectoryPath = Guid.NewGuid().ToString() }; try { localizationOptionsResolver.Resolve(localizationOptions); } catch (DirectoryNotFoundException directoryNotFoundException) { const string message = "File-resources-directory-exception: The directory "; if (directoryNotFoundException.Message.StartsWith(message, StringComparison.OrdinalIgnoreCase)) { throw; } } }
public void Resolve_IfTheLocalizationOptionsParameterHasAnAbsoluteFileResourcesDirectoryPathThatDoesNotExist_ShouldThrowADirectoryNotFoundException() { var serviceProvider = this.BuildServiceProvider("Configuration-Empty.json"); var localizationOptionsResolver = (LocalizationOptionsResolver)serviceProvider.GetRequiredService <ILocalizationOptionsResolver>(); var fileResourcesDirectoryPath = "Z:\\" + Guid.NewGuid(); var localizationOptions = new LocalizationOptions { FileResourcesDirectoryPath = fileResourcesDirectoryPath }; try { localizationOptionsResolver.Resolve(localizationOptions); } catch (DirectoryNotFoundException directoryNotFoundException) { var message = $"File-resources-directory-exception: The directory \"{fileResourcesDirectoryPath}\" does not exist."; if (directoryNotFoundException.Message.Equals(message, StringComparison.OrdinalIgnoreCase)) { throw; } } }
public void Resolve_IfTheLocalizationOptionsParameterContainsAnInvalidEmbeddedResourceAssemblyName_ShouldThrowAnInvalidOperationException() { var serviceProvider = this.BuildServiceProvider("Configuration-Empty.json"); var localizationOptionsResolver = (LocalizationOptionsResolver)serviceProvider.GetRequiredService <ILocalizationOptionsResolver>(); var localizationOptions = new LocalizationOptions(); localizationOptions.EmbeddedResourceAssemblies.Add("Invalid-Assembly-Name"); try { localizationOptionsResolver.Resolve(localizationOptions); } catch (InvalidOperationException invalidOperationException) { const string message = "Embedded-resource-assemblies-exception: The patterns-collection contains invalid values. Values: \"Invalid-Assembly-Name\""; const string innerExceptionMessage = "The assembly \"Invalid-Assembly-Name\" is not loaded at runtime."; if (invalidOperationException.Message.Equals(message, StringComparison.OrdinalIgnoreCase) && invalidOperationException.InnerException is InvalidOperationException && invalidOperationException.InnerException.Message.Equals(innerExceptionMessage, StringComparison.OrdinalIgnoreCase)) { throw; } } }
public void Constructor_OptionsMonitor_IfTheEmbeddedResourceAssembliesParameterContainNullValues_ShouldThrowAnArguementException() { var serviceProvider = this.BuildServiceProvider((configuration, services) => { var localizationOptions = new LocalizationOptions(); // ReSharper disable AssignNullToNotNullAttribute localizationOptions.EmbeddedResourceAssemblies.Add(null); // ReSharper restore AssignNullToNotNullAttribute var optionsMonitorMock = new Mock <IOptionsMonitor <LocalizationOptions> >(); optionsMonitorMock.Setup(optionsMonitor => optionsMonitor.CurrentValue).Returns(localizationOptions); services.AddSingleton(optionsMonitorMock.Object); }, "Configuration-Empty.json"); try { serviceProvider.GetRequiredService <ILocalizationSettings>(); } catch (ArgumentException argumentException) { const string messageStart = "Embedded-resource-assemblies-exception: The patterns-collection can not contain null-values. Values: null"; if (argumentException.ParamName.Equals("patterns", StringComparison.Ordinal) && argumentException.Message.StartsWith(messageStart, StringComparison.Ordinal)) { throw; } } }
public void Create_ResourceLocationAttribute_UsesRootNamespace() { // Arrange var locOptions = new LocalizationOptions(); var options = new Mock <IOptions <LocalizationOptions> >(); options.Setup(o => o.Value).Returns(locOptions); var loggerFactory = NullLoggerFactory.Instance; var resourcePath = Path.Combine("My", "Resources"); var rootNamespace = "MyNamespace"; var resourceLocationAttribute = new ResourceLocationAttribute(resourcePath); var rootNamespaceAttribute = new RootNamespaceAttribute(rootNamespace); var typeFactory = new TestResourceManagerStringLocalizerFactory( options.Object, resourceLocationAttribute, rootNamespaceAttribute, loggerFactory); var type = typeof(ResourceManagerStringLocalizerFactoryTest); // Act typeFactory.Create(type); // Assert Assert.Equal($"MyNamespace.My.Resources.ResourceManagerStringLocalizerFactoryTest", typeFactory.BaseName); }
public JsonStringLocalizer(IHostingEnvironment hostingEnvironment, LocalizationOptions options, string baseResourceName, CultureInfo culture) { _options = options; _hostingEnvironment = hostingEnvironment; _cultureInfo = culture ?? CultureInfo.CurrentCulture; _baseResourceName = baseResourceName; _localizerConfiguration = InitializeLocalizeJson(); }
public JsonStringLocalizer(IHostingEnvironment hostingEnvironment, LocalizationOptions options, string baseResourceName, CultureInfo culture) { _options = options; _hostingEnvironment = hostingEnvironment; _cultureInfo = culture ?? CultureInfo.CurrentUICulture; _baseResourceName = baseResourceName + "." + _cultureInfo.Name; _all = GetAll(); }
private static void SetDefaultCulture(LocalizationOptions options) { var cultureInfo = new CultureInfo(options.DefaultCulture); CultureInfo.DefaultThreadCurrentCulture = cultureInfo; CultureInfo.DefaultThreadCurrentUICulture = cultureInfo; CultureInfo.CurrentCulture = cultureInfo; CultureInfo.CurrentUICulture = cultureInfo; }
static SR() { var locOptions = new LocalizationOptions() { ResourcesPath = "resources" }; var options = Options.Create <LocalizationOptions>(locOptions); var resourceFactory = new ResourceManagerStringLocalizerFactory(options, NullLoggerFactory.Instance); localizer = resourceFactory.Create(typeof(SR)); }
public void RootNamespace() { var locOptions = new LocalizationOptions(); var options = new Mock <IOptions <LocalizationOptions> >(); options.Setup(o => o.Value).Returns(locOptions); var factory = new ResourceManagerStringLocalizerFactory(options.Object, NullLoggerFactory.Instance); var valuesLoc = factory.Create(typeof(ValuesController)); Assert.Equal("ValFromResource", valuesLoc["String1"]); }
public LocalizedTextXmlProvider(ICurrentUser user , IWebHelper webHelper , IOptions <LocalizationOptions> options) { _webHelper = webHelper; _user = user; _localizationOptions = options.Value; if (_user != null && _user.HasValue()) { _langName = ((int)_user.UserSettings.LanguageId).ToString(); } _cache = new CacheManager <List <LocalizedTextLabel> >(LocalizationDefaults.CACHE_KEY, (List <LocalizedTextLabel> l) => { return(LocalizationDefaults.CACHE_KEY + _langName); }); }
public void RootNamespace() { var locOptions = new LocalizationOptions(); var options = new Mock <IOptions <LocalizationOptions> >(); options.Setup(o => o.Value).Returns(locOptions); var factory = new ResourceManagerStringLocalizerFactory(options.Object, NullLoggerFactory.Instance); var valuesLoc = factory.Create(typeof(ValuesController)); string value = valuesLoc["String1"]; // Note: Tests nullable analysis of implicit string conversion operator. Assert.Equal("ValFromResource", value); }
public EntityLocalizer( //ICacheManager<List<LocalizedPropertyCached>> cacheManagerList, ICacheManager <string> cacheManagerString, LocalizedPropertyRepository localizedPropertyRepository, LanguageRepository languageRepository, IOptionsSnapshot <LocalizationOptions> localizationOptions) { //_cacheManagerList = cacheManagerList; _cacheManagerString = cacheManagerString; _localizedPropertyRepository = localizedPropertyRepository; _languageRepository = languageRepository; _localizationOptions = localizationOptions.Value; }
public CoronaStopLightTelegramMessageService(HttpClient httpClient, ICoronaStopLightLocalizationService localizationService, IOptions <TelegramOptions> telegramOptions, IOptions <LocalizationOptions> localizationOptions, IOptions <MessageOptions> messageOptions, ILogger <CoronaStopLightTelegramMessageService> logger) { _httpClient = httpClient; _localizationService = localizationService; _logger = logger; _telegramOptions = telegramOptions.Value; _localizationOptions = localizationOptions.Value; _messageOptions = messageOptions.Value; }
public void Resolve_IfTheLocalizationOptionsParameterHasANullValuedFileResourcesDirectoryPath_ShouldReturnAResolvedLocalizationOptionsWithANullValuedFileResourcesDirectory() { var serviceProvider = this.BuildServiceProvider("Configuration-Empty.json"); var localizationOptionsResolver = (LocalizationOptionsResolver)serviceProvider.GetRequiredService <ILocalizationOptionsResolver>(); var localizationOptions = new LocalizationOptions { FileResourcesDirectoryPath = null }; var resolvedLocalizationOptions = localizationOptionsResolver.Resolve(localizationOptions); Assert.IsNotNull(resolvedLocalizationOptions); Assert.IsNull(resolvedLocalizationOptions.FileResourcesDirectory); }
public static IStringLocalizer <T> CreateStringLocalizer() { var locOptions = new LocalizationOptions { ResourcesPath = "Resources" }; var options = new Mock <IOptions <LocalizationOptions> >(); options.Setup(o => o.Value).Returns(locOptions); var loggerFactory = NullLoggerFactory.Instance; var factory = new ResourceManagerStringLocalizerFactory(options.Object, loggerFactory); return(new StringLocalizer <T>(factory)); }
public Controller() { loggerFactory = new LoggerFactory() .AddRobust(); var locOptions = new LocalizationOptions() { ResourcesPath = "resources" }; var options = Options.Create <LocalizationOptions>(locOptions); resourceFactory = new ResourceManagerStringLocalizerFactory(options, loggerFactory); listener = new LoggerEventListener( loggerFactory.CreateLogger <Telemetry>()); listener.EnableEvents(Controller.Events, EventLevel.Verbose); telemetry = new Telemetry(); }
public void Create_FromType_ReturnsNewResultForDifferentType() { // Arrange var appEnv = new Mock<IApplicationEnvironment>(); appEnv.SetupGet(a => a.ApplicationName).Returns("TestApplication"); var locOptions = new LocalizationOptions(); var options = new Mock<IOptions<LocalizationOptions>>(); options.Setup(o => o.Value).Returns(locOptions); var factory = new ResourceManagerStringLocalizerFactory(appEnv.Object, localizationOptions: options.Object); // Act var result1 = factory.Create(typeof(ResourceManagerStringLocalizerFactoryTest)); var result2 = factory.Create(typeof(LocalizationOptions)); // Assert Assert.NotSame(result1, result2); }
public void Create_FromNameLocation_ReturnsCachedResultForSameNameLocation() { // Arrange var appEnv = new Mock<IApplicationEnvironment>(); appEnv.SetupGet(a => a.ApplicationName).Returns("TestApplication"); var locOptions = new LocalizationOptions(); var options = new Mock<IOptions<LocalizationOptions>>(); options.Setup(o => o.Value).Returns(locOptions); var factory = new ResourceManagerStringLocalizerFactory(appEnv.Object, localizationOptions: options.Object); var location = typeof(ResourceManagerStringLocalizer).GetTypeInfo().Assembly.FullName; // Act var result1 = factory.Create("baseName", location); var result2 = factory.Create("baseName", location); // Assert Assert.Same(result1, result2); }
public void ParseNumber_WithAmericanLocaleAndAmericanNumberFormat_ParsesNumberCorrectly() { using (LocalizationExtensions.WithUiCulture(new CultureInfo("en-US"))) { // Arrange var expected = 2.3; var opt = new LocalizationOptions(); var parser = new CliParser<LocalizationOptions>(opt); var help = new AutomaticHelpGenerator<LocalizationOptions>(); // Act parser.Parse("-c 2.3 file.txt".Split()); // Assert Assert.AreEqual(expected, opt.MyCounter); } }
public void ParseDate_WithSpanishLocaleAndSpanishDateFormat_ParsesDateCorrectly() { using (LocalizationExtensions.WithUiCulture(new CultureInfo("es-ES"))) { // Arrange var expected = new DateTime(2016, 3, 12); var opt = new LocalizationOptions(); var parser = new CliParser<LocalizationOptions>(opt); var help = new AutomaticHelpGenerator<LocalizationOptions>(); // Act parser.Parse("-s 12/3/2016 file.txt".Split()); // Assert Assert.AreEqual(expected, opt.StartDate); } }
public void ShowHelp_WithMexicanLocale_ShowsSpanishHelpText() { using (LocalizationExtensions.WithUiCulture(new CultureInfo("es-MX"))) { // Arrange var expected = @"Uso: clipr [ -h|--help ] [ --version ] [ --turnonthepower ] [ -s S ] [ -c C ] FILETOADD Los Argumentos Posicionales: FileToAdd Archivo para añadir a la cosa. Los Argumentos Opcionales: --turnonthepower Establecer el nivel de potencia de 9001. -c Un contador fresco. -h, --help Mostrar este documento de ayuda. -s Fecha de inicio. --version Muestra la versión del ejecutable actual."; var opt = new LocalizationOptions(); var parser = new CliParser<LocalizationOptions>(opt); var help = new AutomaticHelpGenerator<LocalizationOptions>(); // Act var actual = help.GetHelp(parser.Config); // Assert Assert.AreEqual(expected, actual); } }
public void ShowHelp_WithAmericanLocale_ShowsEnglishHelpText() { using (LocalizationExtensions.WithUiCulture(new CultureInfo("en-US"))) { // Arrange var expected = @"Usage: clipr [ -h|--help ] [ --version ] [ --turnonthepower ] [ -s S ] [ -c C ] FILETOADD Positional Arguments: FileToAdd File to add to the thing. Optional Arguments: --turnonthepower Set power level to 9001. -c A cool counter. -h, --help Display this help document. -s Start date. --version Displays the version of the current executable."; var opt = new LocalizationOptions(); var parser = new CliParser<LocalizationOptions>(opt); var help = new AutomaticHelpGenerator<LocalizationOptions>(); // TODO simplify work required to get help info // Act var actual = help.GetHelp(parser.Config); // Assert Assert.AreEqual(expected, actual); } }