public static void GenerateTranslations(string i18nFolderPath, IGeneratorConfiguration generatorConfiguration) { var host = new TemplateEngineHost(); var pass = generatorConfiguration.CurrentPass; var exports = new List <ESModule>(); var declarations = new List <IDeclarable>(); Dictionary <string, object> sessionVariables; FolderStructure.File file; string fileLocation; string filePath; string output; try { foreach (var dictionary in generatorConfiguration.LanguageDictionary.LanguageSpecificDictionaries.Values) { // LanguageTranslation file sessionVariables = new Dictionary <string, object>(); sessionVariables.Add("Dictionary", dictionary); fileLocation = i18nFolderPath; filePath = PathCombine(fileLocation, dictionary.LanguageCode + ".json"); output = host.Generate <LanguageTranslationFileTemplate>(sessionVariables, false); if (pass == GeneratorPass.Files) { if (File.Exists(filePath)) { File.Delete(filePath); } if (!Directory.Exists(fileLocation)) { generatorConfiguration.CreateDirectory(fileLocation); } using (var fileStream = generatorConfiguration.CreateFile(filePath)) { fileStream.Write(output); generatorConfiguration.FileSystem.DeleteFile(filePath); file = generatorConfiguration.FileSystem.AddSystemLocalProjectFile(new FileInfo(filePath)); } } else if (pass == GeneratorPass.HierarchyOnly) { file = generatorConfiguration.FileSystem.AddSystemLocalProjectFile(new FileInfo(filePath), generatorConfiguration.GenerateInfo(sessionVariables, "{\r\n\t\"Test\": \"Test\"\r\n}")); } } } catch (Exception e) { generatorConfiguration.AppGeneratorEngine.WriteError(e.ToString()); } }