diff --git a/aegisub/frame_main.cpp b/aegisub/frame_main.cpp index 50b20e2db..356d38c73 100644 --- a/aegisub/frame_main.cpp +++ b/aegisub/frame_main.cpp @@ -408,6 +408,7 @@ void FrameMain::InitMenu() { videoMenu->Append(Menu_Video_Details, _("Show Video Details..."), _("Shows video details")); videoMenu->AppendSeparator(); videoMenu->Append(Menu_File_Open_VFR, _("Open Timecodes File..."), _("Opens a VFR timecodes v1 or v2 file")); + videoMenu->Append(Menu_File_Save_VFR, _("Save Timecodes File..."), _("Saves a VFR timecodes v2 file")); videoMenu->Append(Menu_File_Close_VFR, _("Close Timecodes File"), _("Closes the currently open timecodes file"))->Enable(false); wxMenuItem *RecentTimesParent = new wxMenuItem(videoMenu, Menu_File_Recent_Timecodes_Parent, _("Recent"), _T(""), wxITEM_NORMAL, RecentTimecodes); videoMenu->Append(RecentTimesParent); @@ -1138,6 +1139,13 @@ void FrameMain::LoadVFR(wxString filename) { } +///////////// +// Saves VFR +void FrameMain::SaveVFR(wxString filename) { + VFR_Output.Save(filename); +} + + ///////////// // Open help void FrameMain::OpenHelp(wxString page) { diff --git a/aegisub/frame_main.h b/aegisub/frame_main.h index a07998a64..3d4948667 100644 --- a/aegisub/frame_main.h +++ b/aegisub/frame_main.h @@ -154,6 +154,7 @@ private: void OnOpenVideo (wxCommandEvent &event); void OnCloseVideo (wxCommandEvent &event); void OnOpenVFR (wxCommandEvent &event); + void OnSaveVFR (wxCommandEvent &event); void OnCloseVFR (wxCommandEvent &event); void OnOpenKeyframes (wxCommandEvent &event); void OnCloseKeyframes (wxCommandEvent &event); @@ -252,6 +253,7 @@ private: void LoadVideo(wxString filename,bool autoload=false); void LoadAudio(wxString filename,bool FromVideo=false); void LoadVFR(wxString filename); + void SaveVFR(wxString filename); void LoadSubtitles(wxString filename,wxString charset=_T("")); bool SaveSubtitles(bool saveas=false,bool withCharset=false); int TryToCloseSubs(bool enableCancel=true); @@ -310,6 +312,7 @@ enum { Menu_File_Save_Subtitles_With_Charset, Menu_File_Export_Subtitles, Menu_File_Open_VFR, + Menu_File_Save_VFR, Menu_File_Close_VFR, Menu_File_New_Window, Menu_File_Exit, diff --git a/aegisub/frame_main_events.cpp b/aegisub/frame_main_events.cpp index 402028d36..f259dc144 100644 --- a/aegisub/frame_main_events.cpp +++ b/aegisub/frame_main_events.cpp @@ -119,6 +119,7 @@ BEGIN_EVENT_TABLE(FrameMain, wxFrame) EVT_MENU(Menu_File_Save_Subtitles_With_Charset, FrameMain::OnSaveSubtitlesCharset) EVT_MENU(Menu_File_Export_Subtitles, FrameMain::OnExportSubtitles) EVT_MENU(Menu_File_Open_VFR, FrameMain::OnOpenVFR) + EVT_MENU(Menu_File_Save_VFR, FrameMain::OnSaveVFR) EVT_MENU(Menu_File_Close_VFR, FrameMain::OnCloseVFR) EVT_MENU(Menu_Video_Load_Keyframes, FrameMain::OnOpenKeyframes) EVT_MENU(Menu_Video_Save_Keyframes, FrameMain::OnSaveKeyframes) @@ -312,6 +313,7 @@ void FrameMain::OnMenuOpen (wxMenuEvent &event) { MenuBar->Enable(Menu_Video_AR_235,state); MenuBar->Enable(Menu_Video_AR_Custom,state); MenuBar->Enable(Menu_Video_Detach,state && !detachedVideo); + MenuBar->Enable(Menu_File_Save_VFR,VFR_Output.GetFrameRateType() == VFR); MenuBar->Enable(Menu_File_Close_VFR,VFR_Output.GetFrameRateType() == VFR); MenuBar->Enable(Menu_Video_Close_Keyframes,VideoContext::Get()->OverKeyFramesLoaded()); MenuBar->Enable(Menu_Video_Save_Keyframes,VideoContext::Get()->KeyFramesLoaded()); @@ -760,6 +762,20 @@ void FrameMain::OnOpenVFR(wxCommandEvent &event) { } +///////////////// +// Save VFR tags +void FrameMain::OnSaveVFR(wxCommandEvent &event) { + wxString path = Options.AsText(_T("Last open timecodes path")); + wxString filename = wxFileSelector(_("Save timecodes file"),path,_T(""),_T(""),_("All Supported Types (*.txt)|*.txt|All Files (*.*)|*.*"),wxFD_SAVE | wxFD_OVERWRITE_PROMPT); + if (!filename.empty()) { + SaveVFR(filename); + Options.SetText(_T("Last open timecodes path"), filename); + Options.Save(); + } +} + + + ////////////////// // Close VFR tags void FrameMain::OnCloseVFR(wxCommandEvent &event) { diff --git a/aegisub/vfr.cpp b/aegisub/vfr.cpp index 3358a579a..14f742fb2 100644 --- a/aegisub/vfr.cpp +++ b/aegisub/vfr.cpp @@ -41,6 +41,7 @@ #include "vfr.h" #include "utils.h" #include "text_file_reader.h" +#include "text_file_writer.h" ///////////////////// @@ -223,6 +224,17 @@ void FrameRate::Load(wxString filename) { } +//////// +// Save +void FrameRate::Save(wxString filename) { + TextFileWriter file(filename,_T("ASCII")); + file.WriteLineToFile(_T("# timecode format v2")); + for (size_t i=0;i\n" "Language-Team: Rodrigo Braz Monteiro\n" "MIME-Version: 1.0\n" @@ -1096,15 +1096,15 @@ msgstr "timing de kanji" #: dialog_kanji_timer.cpp:209 msgid "Select source and destination styles first." -msgstr "" +msgstr "Primeiro escolha os estilos de fonte e destino." #: dialog_kanji_timer.cpp:211 msgid "The source and destination styles must be different." -msgstr "" +msgstr "Os estilos de fonte e destino devem ser diferentes." #: dialog_kanji_timer.cpp:244 msgid "Select source text first." -msgstr "" +msgstr "Escolha o texto fonte primeiro." #: dialog_kanji_timer.cpp:313 msgid "" @@ -1112,6 +1112,8 @@ msgid "" "Do you want to carry it over to the destination?\n" "It will be ignored otherwise." msgstr "" +"A linha fonte contem texto antes do primeiro bloco de karaoke.\n" +"Você quer carregá-lo para o destino?Caso contrário, ele será ignorado." #: dialog_kanji_timer.cpp:314 #, fuzzy @@ -1120,15 +1122,15 @@ msgstr "Abrir arquivo de áudio" #: dialog_kanji_timer.cpp:328 msgid "Possible error parsing source line" -msgstr "" +msgstr "Possivel erro interpretando linha fonte" #: dialog_kanji_timer.cpp:360 msgid "Group some text first." -msgstr "" +msgstr "Agrupe algum texto antes." #: dialog_kanji_timer.cpp:362 msgid "Group all of the source text." -msgstr "" +msgstr "Agrupe todo o texto fonte." #: dialog_options.cpp:109 #, fuzzy @@ -1137,27 +1139,27 @@ msgstr "Início" #: dialog_options.cpp:112 msgid "Show Splash Screen" -msgstr "" +msgstr "Mostrar Tela de Abertura" #: dialog_options.cpp:113 msgid "Show Tip of the Day" -msgstr "" +msgstr "Mostrar Dica do Dia" #: dialog_options.cpp:114 msgid "Auto Check for Updates" -msgstr "" +msgstr "Checar Automaticamente por Atualizações" #: dialog_options.cpp:115 msgid "Save config.dat locally" -msgstr "" +msgstr "Salvar config.dat localmente" #: dialog_options.cpp:118 msgid "Limits for levels and recent files" -msgstr "" +msgstr "Limite de níveis para arquivos recentes" #: dialog_options.cpp:121 msgid "Maximum undo levels" -msgstr "" +msgstr "Níveis máximos de desfazer" #: dialog_options.cpp:121 #, fuzzy @@ -1166,7 +1168,7 @@ msgstr "Abrir arquivo de timecodes" #: dialog_options.cpp:121 msgid "Maximum recent keyframe files" -msgstr "" +msgstr "Máximo de arquivos de quadros-chave recentes" #: dialog_options.cpp:121 #, fuzzy @@ -1185,19 +1187,19 @@ msgstr "Abrir arquivo de áudio" #: dialog_options.cpp:121 msgid "Maximum recent find strings" -msgstr "" +msgstr "Máximo de buscas recentes" #: dialog_options.cpp:121 msgid "Maximum recent replace strings" -msgstr "" +msgstr "Máximo de substituições recentes" #: dialog_options.cpp:141 msgid "Auto-save" -msgstr "" +msgstr "Auto-salvar" #: dialog_options.cpp:143 msgid "File paths" -msgstr "" +msgstr "Caminhos para arquivos" #: dialog_options.cpp:145 #, fuzzy @@ -1206,46 +1208,46 @@ msgstr "Miscelânea" #: dialog_options.cpp:149 msgid "Auto-backup" -msgstr "" +msgstr "Auto-backup" #: dialog_options.cpp:155 msgid "Auto-save every" -msgstr "" +msgstr "Auto-salvar a cada" #: dialog_options.cpp:157 msgid "seconds." -msgstr "" +msgstr "segundos." #: dialog_options.cpp:160 msgid "Auto-save path:" -msgstr "" +msgstr "Caminho para auto-salvar:" #: dialog_options.cpp:168 msgid "Auto-backup path:" -msgstr "" +msgstr "Caminh para auto-backup:" #: dialog_options.cpp:176 msgid "Crash recovery path:" -msgstr "" +msgstr "Caminho para recuperação de trava:" #: dialog_options.cpp:186 msgid "Auto-load linked files:" -msgstr "" +msgstr "Auto-carregar arquivos linkados:" #: dialog_options.cpp:187 #: dialog_options.cpp:360 msgid "Never" -msgstr "" +msgstr "Nunca" #: dialog_options.cpp:187 #: dialog_options.cpp:360 msgid "Always" -msgstr "" +msgstr "Sempre" #: dialog_options.cpp:187 #: dialog_options.cpp:360 msgid "Ask" -msgstr "" +msgstr "Perguntar" #: dialog_options.cpp:209 #: dialog_options.cpp:283 @@ -1264,29 +1266,29 @@ msgstr "Ação" #: dialog_options.cpp:217 msgid "Enable call tips" -msgstr "" +msgstr "Ligar dicas de parâmetros" #: dialog_options.cpp:217 msgid "Enable syntax highlighting" -msgstr "" +msgstr "Ligar destaque de sintaxe" #: dialog_options.cpp:217 msgid "Link commiting of times" -msgstr "" +msgstr "Unir confirmação de tempos" #: dialog_options.cpp:217 msgid "Overwrite-Insertion in time boxes" -msgstr "" +msgstr "Inserir sobreescrevendo nas caixas de tempo" #: dialog_options.cpp:226 msgid "Path to dictionary files:" -msgstr "" +msgstr "Caminho para arquivos de dicionário:" #: dialog_options.cpp:236 #: dialog_options.cpp:566 #: dialog_properties.cpp:131 msgid "Normal" -msgstr "" +msgstr "Normal" #: dialog_options.cpp:236 #, fuzzy @@ -1295,11 +1297,11 @@ msgstr "Rastrear pontos" #: dialog_options.cpp:236 msgid "Slashes and Parentheses" -msgstr "" +msgstr "Barras e parênteses" #: dialog_options.cpp:236 msgid "Tags" -msgstr "" +msgstr "Etiquetas" #: dialog_options.cpp:236 #, fuzzy @@ -1308,7 +1310,7 @@ msgstr "Propriedades" #: dialog_options.cpp:237 msgid "Error Background" -msgstr "" +msgstr "Fundo de Erro" #: dialog_options.cpp:237 #, fuzzy @@ -1322,11 +1324,11 @@ msgstr "Tag de Karaoke" #: dialog_options.cpp:237 msgid "Modified Background" -msgstr "" +msgstr "Fundo Modificado" #: dialog_options.cpp:244 msgid "Syntax highlighter - " -msgstr "" +msgstr "Destacador de sintaxe - " #: dialog_options.cpp:255 #: dialog_options.cpp:319 @@ -1336,7 +1338,7 @@ msgstr "Fonte" #: dialog_options.cpp:290 msgid "Allow grid to take focus" -msgstr "" +msgstr "Permitir que a grade receba foco" #: dialog_options.cpp:290 #, fuzzy @@ -1350,7 +1352,7 @@ msgstr "Configurações padrão" #: dialog_options.cpp:300 msgid "Standard background" -msgstr "" +msgstr "Fundo padrão" #: dialog_options.cpp:300 #, fuzzy @@ -1365,31 +1367,31 @@ msgstr "Seleção" #: dialog_options.cpp:301 msgid "Comment background" -msgstr "" +msgstr "Fundo de comentário" #: dialog_options.cpp:301 msgid "Selected comment background" -msgstr "" +msgstr "Fundo de comentário selecionado" #: dialog_options.cpp:302 msgid "Collision foreground" -msgstr "" +msgstr "Texto em colisão" #: dialog_options.cpp:302 msgid "Line in frame background" -msgstr "" +msgstr "Fundo de linha no quadro" #: dialog_options.cpp:302 msgid "Header" -msgstr "" +msgstr "Cabeçalho" #: dialog_options.cpp:303 msgid "Left Column" -msgstr "" +msgstr "Coluna esquerda" #: dialog_options.cpp:303 msgid "Active Line Border" -msgstr "" +msgstr "Borda da linha ativa" #: dialog_options.cpp:303 #, fuzzy @@ -1404,11 +1406,11 @@ msgstr "Substituir por:" #: dialog_options.cpp:353 #: dialog_options.cpp:522 msgid "Advanced - EXPERT USERS ONLY" -msgstr "" +msgstr "Avançado - SOMENTE PARA USUÁRIOS EXPERT" #: dialog_options.cpp:359 msgid "Match video resolution on open: " -msgstr "" +msgstr "Usar resolução do vídeo ao abrí-lo: " #: dialog_options.cpp:364 #, fuzzy @@ -1417,19 +1419,19 @@ msgstr "Padrão" #: dialog_options.cpp:375 msgid "Fast jump step in frames: " -msgstr "" +msgstr "Pulo rápido em quadros: " #: dialog_options.cpp:379 msgid "Screenshot save path: " -msgstr "" +msgstr "Caminho para salvar screenshots: " #: dialog_options.cpp:385 msgid "Show keyframes in slider" -msgstr "" +msgstr "Mostrar quadros-chave na barra" #: dialog_options.cpp:391 msgid "Video provider: " -msgstr "" +msgstr "Provedor de vídeo: " #: dialog_options.cpp:396 #, fuzzy @@ -1438,15 +1440,15 @@ msgstr "Salvar arquivo de legendas" #: dialog_options.cpp:402 msgid "Avisynth memory limit: " -msgstr "" +msgstr "Limite de memória do Avisynth: " #: dialog_options.cpp:412 msgid "Allow pre-2.56a Avisynth" -msgstr "" +msgstr "Permitir Avisynth anterior a 2.56a" #: dialog_options.cpp:416 msgid "Avisynth renders its own subs" -msgstr "" +msgstr "Avisynth renderiza suas próprias legendas" #: dialog_options.cpp:423 #: dialog_options.cpp:546 @@ -1455,6 +1457,10 @@ msgid "" "crashes, glitches and/or movax.\n" "Don't touch these unless you know what you're doing." msgstr "" +"AVISO: Alterar estas configurações pode resultar em bugs,\n" +"fazer o programa travar, se comportar de forma estranha\n" +"e/ou movax. Não toque nestas opções se não souber o que\n" +"está fazendo." #: dialog_options.cpp:441 #, fuzzy @@ -1463,11 +1469,11 @@ msgstr "Subtrair da seleção" #: dialog_options.cpp:442 msgid "Default mouse wheel to zoom" -msgstr "" +msgstr "Padrão da roda do mouse para zoom" #: dialog_options.cpp:443 msgid "Lock scroll on Cursor" -msgstr "" +msgstr "Travar tela no cursor" #: dialog_options.cpp:444 #, fuzzy @@ -1481,7 +1487,7 @@ msgstr "Ajustar à cena\t" #: dialog_options.cpp:446 msgid "Auto-focus on mouse over" -msgstr "" +msgstr "Auto-focar ao passar o mouse por cima" #: dialog_options.cpp:450 #, fuzzy @@ -1490,7 +1496,7 @@ msgstr "Não coincide" #: dialog_options.cpp:450 msgid "Show previous" -msgstr "" +msgstr "Mostrar anterior" #: dialog_options.cpp:450 #, fuzzy @@ -1499,15 +1505,15 @@ msgstr "Cor da sombra" #: dialog_options.cpp:451 msgid "Default timing length" -msgstr "" +msgstr "Tempo padrão de timing" #: dialog_options.cpp:452 msgid "Default lead-in length" -msgstr "" +msgstr "Tempo de entrada padrão" #: dialog_options.cpp:453 msgid "Default lead-out length" -msgstr "" +msgstr "Tempo de saída padrão" #: dialog_options.cpp:454 #, fuzzy @@ -1516,19 +1522,19 @@ msgstr "Distância da sombra, em pixels" #: dialog_options.cpp:476 msgid "Draw secondary lines" -msgstr "" +msgstr "Desenhar linhas secundárias" #: dialog_options.cpp:476 msgid "Draw selection background" -msgstr "" +msgstr "Desenhar fundo de seleção" #: dialog_options.cpp:476 msgid "Draw timeline" -msgstr "" +msgstr "Desenhar linha do tempo" #: dialog_options.cpp:477 msgid "Draw cursor time" -msgstr "" +msgstr "Desenhar tempo no cursor" #: dialog_options.cpp:477 #, fuzzy @@ -1552,7 +1558,7 @@ msgstr "Para trás" #: dialog_options.cpp:489 msgid "Selection background - modified" -msgstr "" +msgstr "Fundo de seleção - modificado" #: dialog_options.cpp:489 #, fuzzy @@ -1561,7 +1567,7 @@ msgstr "Secundária" #: dialog_options.cpp:489 msgid "Waveform" -msgstr "" +msgstr "Forma de onda" #: dialog_options.cpp:490 #, fuzzy @@ -1570,27 +1576,27 @@ msgstr "Ir para a seleção" #: dialog_options.cpp:490 msgid "Waveform - modified" -msgstr "" +msgstr "Forma de onda - modificada" #: dialog_options.cpp:490 msgid "Waveform - inactive" -msgstr "" +msgstr "Forma de onda - inativa" #: dialog_options.cpp:491 msgid "Boundary - start" -msgstr "" +msgstr "Divisa - início" #: dialog_options.cpp:491 msgid "Boundary - end" -msgstr "" +msgstr "Divisa - fim" #: dialog_options.cpp:491 msgid "Boundary - inactive" -msgstr "" +msgstr "Divisa - inativa" #: dialog_options.cpp:492 msgid "Syllable text" -msgstr "" +msgstr "Texto da sílaba" #: dialog_options.cpp:492 #, fuzzy @@ -1599,15 +1605,15 @@ msgstr "Secundária" #: dialog_options.cpp:526 msgid "None (NOT RECOMMENDED)" -msgstr "" +msgstr "Nenhum (NÃO É RECOMENDADO)" #: dialog_options.cpp:526 msgid "RAM" -msgstr "" +msgstr "RAM" #: dialog_options.cpp:526 msgid "Hard Disk" -msgstr "" +msgstr "Disco Rígido" #: dialog_options.cpp:531 #, fuzzy @@ -1621,15 +1627,15 @@ msgstr "Áudio tocar" #: dialog_options.cpp:533 msgid "Cache type" -msgstr "" +msgstr "Tipo de Cache" #: dialog_options.cpp:535 msgid "Avisynth down-mixer" -msgstr "" +msgstr "Down-mixer do Avisynth" #: dialog_options.cpp:537 msgid "HD cache path" -msgstr "" +msgstr "Caminh para cache de HD" #: dialog_options.cpp:538 #, fuzzy @@ -1643,19 +1649,19 @@ msgstr "Modo do espectro:" #: dialog_options.cpp:540 msgid "0 - Regular quality" -msgstr "" +msgstr "0 - Qualidade regular" #: dialog_options.cpp:540 msgid "1 - Better quality" -msgstr "" +msgstr "1 - Qualidade melhor" #: dialog_options.cpp:540 msgid "2 - High quality" -msgstr "" +msgstr "2 - Alta qualidade" #: dialog_options.cpp:540 msgid "3 - Insane quality" -msgstr "" +msgstr "3 - Qualidade insana" #: dialog_options.cpp:541 #, fuzzy @@ -1664,23 +1670,23 @@ msgstr "Modo de analisador de espectro" #: dialog_options.cpp:542 msgid "Spectrum cache memory max (MB)" -msgstr "" +msgstr "Cache de memória máximo para espectro (MB)" #: dialog_options.cpp:562 msgid "Base path" -msgstr "" +msgstr "Caminho base" #: dialog_options.cpp:563 msgid "Include path" -msgstr "" +msgstr "Caminho para include" #: dialog_options.cpp:564 msgid "Auto-load path" -msgstr "" +msgstr "Caminho de auto-carga" #: dialog_options.cpp:565 msgid "0: Fatal" -msgstr "" +msgstr "0: Fatal" #: dialog_options.cpp:565 #, fuzzy @@ -1694,19 +1700,19 @@ msgstr "Alerta" #: dialog_options.cpp:565 msgid "3: Hint" -msgstr "" +msgstr "3: Dica" #: dialog_options.cpp:565 msgid "4: Debug" -msgstr "" +msgstr "4: Debug" #: dialog_options.cpp:565 msgid "5: Trace" -msgstr "" +msgstr "5: Traçar" #: dialog_options.cpp:566 msgid "Below Normal (recommended)" -msgstr "" +msgstr "Abaixo do normal (recomendado)" #: dialog_options.cpp:566 #, fuzzy