public void DirectoryProviderFactory() { DirectoryTranslationReaderProviderFactory factory = new DirectoryTranslationReaderProviderFactory( new PlainTextTranslationReaderFactory(), "*.txt" ); string rootPath = @"C:\\Temp\\Localization"; Assert.AreEqual(true, Directory.Exists(rootPath)); File.WriteAllText(Path.Combine(rootPath, "en-US.txt"), "Hello, World!=Hello, World!"); File.WriteAllText(Path.Combine(rootPath, "cs-CZ.txt"), "Hello, World!=Ahoj všichni!"); File.WriteAllText(Path.Combine(rootPath, "UnitTest.cs-CZ.txt"), "Hello, World!=Ahoj!"); /// EN ------------------ ITranslationReaderProvider provider = factory.Create(rootPath); ITranslationReader reader; Assert.AreEqual(true, provider.TryGetReader(new CultureInfo("en-US"), Assembly.GetExecutingAssembly(), out reader)); string translatedText; Assert.AreEqual(true, reader.TryGet("Hello, World!", out translatedText)); Assert.AreEqual("Hello, World!", translatedText); /// CS ------------------ Assert.AreEqual(true, provider.TryGetReader(new CultureInfo("cs-CZ"), Assembly.GetExecutingAssembly(), out reader)); Assert.AreEqual(true, reader.TryGet("Hello, World!", out translatedText)); Assert.AreEqual("Ahoj!", translatedText); }
public bool TryGetReader(CultureInfo culture, Assembly assembly, out ITranslationReader reader) { IEnumerable <CultureInfo> defaultCultures = defaultCultureProvider.GetCulture(); if (defaultCultures.Contains(culture)) { reader = EmptyTranslationReader.SourceAsTranslated; return(true); } return(readerProvider.TryGetReader(culture, assembly, out reader)); }
public string Translate(Assembly callingAssembly, string originalText) { IEnumerable <CultureInfo> cultureInfos = cultureProvider.GetCulture(); foreach (CultureInfo cultureInfo in cultureInfos) { ITranslationReader reader; string translatedText; if (readerProvider.TryGetReader(cultureInfo, callingAssembly, out reader) && reader.TryGet(originalText, out translatedText)) { return(translatedText); } } return(originalText); }