Exemplo n.º 1
0
        private void AutoSavetranslationFile()
        {
            if (TranslationFile == null)
            {
                return;
            }

            DirectoryInfo autosaveFolder = new DirectoryInfo("autosave");

            if (!autosaveFolder.Exists)
            {
                autosaveFolder.Create();
                autosaveFolder.Refresh();
            }
            var existingFiles = autosaveFolder.GetFiles("*_autosave.txt");

            foreach (var file in existingFiles.OrderByDescending(f => f.LastWriteTime).Skip(10)) //TODO: parameter?
            {
                file.Delete();
            }
            var baseName       = TranslationFile.Name.Substring(0, TranslationFile.Name.Length - TranslationFile.Extension.Length);
            var backupFileName = String.Format("{0}_{1:yyMMddHHmmss}_autosave.txt", baseName, DateTime.Now);
            var backupFileInfo = new FileInfo(Path.Combine(autosaveFolder.FullName, backupFileName));

            PointerText.WritePointersToFile(backupFileInfo, TranslationLines.Select(l => l.PointerText).OrderBy(l => l.Address));
        }
Exemplo n.º 2
0
 internal void DiscardEditedLines()
 {
     foreach (var editedLine in TranslationLines.Where(l => l.HasChangesInEditor))
     {
         editedLine.RestoreMultiLineTextCommand.Execute(null);
     }
 }
Exemplo n.º 3
0
 private void WriteTranslationFile(FileInfo outputFile)
 {
     PointerText.WritePointersToFile(outputFile, TranslationLines.Select(l => l.PointerText).OrderBy(l => l.Address));
     foreach (var line in TranslationLines)
     {
         line.HasChangesInMemory = false;
     }
     StatusMessage = String.Format("Saved translation to {0}", outputFile.Name);
 }
 public MainWindowViewModelDesign() : base(new IOServiceMock(), new LineLengthServiceMock())
 {
     TranslationLines.Add(new TranslationItemViewModel(PointerText.FromString("1C5D4B| 1|113|0|D|Introduction                            |For some people, POKéMON are pets.[br]Others use them for battling.[nb2]As for myself[...][nb2]I study POKéMON as a profession.[nb2]|Voor sommigen zijn POKéMON huisdieren.[br]Anderen gebruiken ze om te vechten[nb2]Ikzelf[...][nb2]Ik bestudeer POKéMON als beroep.[nb2]|1,12FB9C"), new LineLengthServiceMock(), new DialogServiceMock()));
     TranslationLines.Add(new TranslationItemViewModel(PointerText.FromString("18D8FE| 1|124|0|D|Rival's House                           |[small][var1] looks dreamily content[...][nb2][fnt]ÈDAISY: There you go! All done.[br]See? Doesn't it look nice?[nb2]Giggle[...][br]It's such a cute POKéMON.|[small][var1] ziet er gelukkig uit[...][nb2][fnt]ÈDAISY: Daar! Helemaal klaar.[br]Is het niet mooi?[nb2]Hihi[...][br]Het is zo een schattige POKéMON.|1,168E2A"), new LineLengthServiceMock(), new DialogServiceMock()));
     TranslationLines.Add(new TranslationItemViewModel(PointerText.FromString("18EAF4| 1|241|0|D|Oak's Lab                               |There's an e-mail message here.[nb2][...][nb2]Finally![br]The ultimate TRAINERS of the[nb]POKéMON LEAGUE are ready to[nb]take on all comers![nb2]Bring your best POKéMON and see[br]how you rate as a TRAINER![nb2]POKéMON LEAGUE HQ[br]INDIGO PLATEAU[nb2]PROF. OAK, please visit us![br][...]|Er is een e-mail.[nb2][...][nb2]Eindelijk![br]De ultieme TRAINERS van de[nb]POKéMON LEAGUE zijn klaar om[nb]elke uitdaging te aanvaarden![nb2]Breng je beste POKéMON en zie[br]hoe goed je bent als TRAINER.[nb2]POKéMON LEAGUE HQ[br]INDIGO PLATEAU[nb2]PROF. OAK, kom ons bezoeken![br][...]|1,169E6A"), new LineLengthServiceMock(), new DialogServiceMock()));
     TranslationLines.Add(new TranslationItemViewModel(PointerText.FromString("18F085| 1| 98|0|D|Oak's Lab                               |[...] [...] [...]  [...] [...] [...][nb2][...] [...] [...]  [...] [...] [...][nb2][...]And that's done![nb2]Now these units can record data on[br]a lot more POKéMON.|[...] [...] [...]  [...] [...] [...][nb2][...] [...] [...]  [...] [...] [...][nb2][...] En klaar![nb2]Nu kunnen er nog meer POKéMON[br]geregistreerd worden.|1,1690D8"), new LineLengthServiceMock(), new DialogServiceMock()));
     TranslationLines.Add(new TranslationItemViewModel(PointerText.FromString("18F352| 1|236|0|D|Viridian Gym                            |Fwahahaha![br]Welcome to my hideout![nb2]It shall be so until I can restore[br]TEAM ROCKET to its former glory.[nb2]But, you have found me again.[br]So be it.[nb]This time, I'm not holding back![nb2]Once more, you shall face[br]GIOVANNI, the greatest TRAINER![FC]ÎéÀ|Hahahaha![br]Welkom in mijn schuilplaats![nb2]Hier schuil ik tot als ik[br]TEAM ROCKET in ere kan herstellen.[nb2]Maar je hebt me opnieuw gevonden.[br]deze keer ga ik voluit![nb2]Je mag nog eens vechten tegen[br]GIOVANNI, de beste TRAINER ooit![FC]ÎéÀ|1,169EDD"), new LineLengthServiceMock(), new DialogServiceMock()));
     TranslationLines.Add(new TranslationItemViewModel(PointerText.FromString("18F4A2| 1|227|0|D|Viridian Gym                            |Having lost in this fashion, [br]I can't face my followers.[nb]I have betrayed their trust.[nb2]As of today, TEAM ROCKET is[br]finished forever![nb2]As for myself, I shall dedicate[br]my life to training again.[nb2]Let us meet again someday![br]Farewell!|Nu ik zo verloren heb kan ik[br]mijn volgers niet onder ogen komen.[nb]Ik heb hun vertrouwen verraden.[nb2]Vanaf vandaag is TEAM ROCKET[br]voorgoed gedaan.[nb2]Ik ga mijn leven opnieuw[br]aan training wijden.[nb2]Tot nog eens![br]Vaarwel!|1,169EF4"), new LineLengthServiceMock(), new DialogServiceMock()));
     Filter.Groups.Add("Group 1");
     Filter.Groups.Add("Group 2");
     Filter.Groups.Add("Group 3");
     CurrentTranslationItem = TranslationLines[1];
 }
Exemplo n.º 5
0
 private void LoadtranslationFile(FileInfo translationSourceFile)
 {
     TranslationLines.Clear();
     Filter.Groups.Clear();
     Filter.SelectedGroups.Clear();
     foreach (var line in PointerText.ReadPointersFromFile(translationSourceFile))
     {
         if (!Filter.Groups.Contains(line.Group))
         {
             Filter.Groups.Add(line.Group);
         }
         TranslationLines.Add(new TranslationItemViewModel(line, _lineLengthService, this));
     }
     autoSaveTimer.Start();
     StatusMessage      = String.Format("Loaded {0}", translationSourceFile.Name);
     CurrentLineMessage = String.Format("{0} Lines", TranslationLinesView.Cast <TranslationItemViewModel>().Count());
     OnNewFileLoaded();
 }
Exemplo n.º 6
0
        private void DeleteSelectedLines()
        {
            var message = String.Format("Are you sure you want to delete {0} entries?", SelectedTranslationLines.Count);
            var vm      = new ConfirmationDialogViewModel("Are you sure?", message);

            DialogViewModel            = vm;
            DialogViewModel.ShowDialog = true;
            if (vm.Confirmed)
            {
                var linesToRemove = new List <Int32>();
                foreach (var line in SelectedTranslationLines)
                {
                    linesToRemove.Add(TranslationLines.IndexOf(line));
                }
                foreach (var lineIndex in linesToRemove.OrderByDescending(i => i))
                {
                    TranslationLines.RemoveAt(lineIndex);
                    TranslationLinesView.Refresh();
                }
            }
        }
Exemplo n.º 7
0
 internal Boolean CanDiscardEditedLines()
 {
     return(TranslationLines.Any(l => l.HasChangesInEditor));
 }