Beispiel #1
0
        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));
        }
Beispiel #2
0
        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);
        }