public async Task ExtractSourceText() { if (!Workspace.IsInProject) { await Workspace.CopyToSourceDirectory().ConfigureAwait(false); } if (!StringWithCodePage.ReadAllTextAutoDetect(Workspace.SourcePath, out StringWithCodePage sourceText)) { // TODO: UI message return; } string txt = sourceText.Content; _config = DotConfig.GetConfiguration(Workspace.SourcePath); WriteIntermediates(_config.Matches(txt)); }
public void BuildTranslation() { string translation = GetAlternativeTranslationIfExists(); string destPath = Util.PrecreateDirectory(Workspace.DestinationPath); if (!StringWithCodePage.ReadAllTextAutoDetect(Workspace.SourcePath, out StringWithCodePage sourceText)) { File.Copy(Workspace.SourcePath, destPath, true); return; } Encoding destinationEncoding = sourceText.Encoding.CodePage == 932 ? _cp949 : _utf8WithBom; using var meta = new MetadataCsvReader(Workspace.MetadataPath); using StreamReader trans = File.OpenText(translation); using var source = new StringReader(sourceText.Content); using var dest = new StreamWriter(File.Create(destPath), destinationEncoding); CompileTranslation(meta, trans, source, dest); }