From ffe1eb604d6dc7fcb3052eea3a47e6098141f307 Mon Sep 17 00:00:00 2001 From: zlomzlom <64724986+zlomzlom@users.noreply.github.com> Date: Mon, 22 Dec 2025 14:19:27 +0000 Subject: [PATCH 1/7] Make more strings translatable --- src/auto4_lua.cpp | 12 ++++++------ src/command/app.cpp | 2 +- src/command/keyframe.cpp | 2 +- src/command/subtitle.cpp | 4 ++-- src/command/timecode.cpp | 2 +- src/dialog_fonts_collector.cpp | 2 +- src/dialog_search_replace.cpp | 2 +- src/main.cpp | 10 +++++----- src/video_controller.cpp | 10 +++++----- src/video_display.cpp | 16 ++++++---------- 10 files changed, 29 insertions(+), 33 deletions(-) diff --git a/src/auto4_lua.cpp b/src/auto4_lua.cpp index 4173076ae3..6595b7b050 100644 --- a/src/auto4_lua.cpp +++ b/src/auto4_lua.cpp @@ -824,7 +824,7 @@ namespace { subsobj->ProcessingComplete(); if (err) { - wxLogWarning("Runtime error in Lua macro validation function:\n%s", get_wxstring(L, -1)); + wxLogWarning(fmt_tl("Runtime error in Lua macro validation function:\n%s", get_wxstring(L, -1))); lua_pop(L, 2); return false; } @@ -878,7 +878,7 @@ namespace { if (lua_isnumber(L, -1)) { active_idx = lua_tointeger(L, -1); if (active_idx < 1 || active_idx > (int)lines.size()) { - wxLogError("Active row %d is out of bounds (must be 1-%u)", active_idx, lines.size()); + wxLogError(fmt_tl("Active row %d is out of bounds (must be 1-%u)", active_idx, lines.size())); active_idx = original_active; } } @@ -894,13 +894,13 @@ namespace { return; int cur = lua_tointeger(L, -1); if (cur < 1 || cur > (int)lines.size()) { - wxLogError("Selected row %d is out of bounds (must be 1-%u)", cur, lines.size()); + wxLogError(fmt_tl("Selected row %d is out of bounds (must be 1-%u)", cur, lines.size())); throw LuaForEachBreak(); } AssEntry *curline = lines[cur - 1]; if (typeid(*curline) != typeid(AssDialogue)) { - wxLogError("Selected row %d is not a dialogue line", cur); + wxLogError(fmt_tl("Selected row %d is not a dialogue line", cur)); throw LuaForEachBreak(); } @@ -966,7 +966,7 @@ namespace { bool result = false; if (err) - wxLogWarning("Runtime error in Lua macro IsActive function:\n%s", get_wxstring(L, -1)); + wxLogWarning(fmt_tl("Runtime error in Lua macro IsActive function:\n%s", get_wxstring(L, -1))); else result = !!lua_toboolean(L, -1); @@ -1072,7 +1072,7 @@ namespace { subsobj->ProcessingComplete(); if (err) { - wxLogWarning("Runtime error in Lua config dialog function:\n%s", get_wxstring(L, -1)); + wxLogWarning(fmt_tl("Runtime error in Lua config dialog function:\n%s", get_wxstring(L, -1))); lua_pop(L, 1); // remove error message } else { // Create config dialogue from table on top of stack diff --git a/src/command/app.cpp b/src/command/app.cpp index d509dc9313..40911692b3 100644 --- a/src/command/app.cpp +++ b/src/command/app.cpp @@ -164,7 +164,7 @@ struct app_language final : public Command { OPT_SET("App/Language")->SetString(new_language); // Ask to restart program - int result = wxMessageBox("Aegisub needs to be restarted so that the new language can be applied. Restart now?", "Restart Aegisub?", wxYES_NO | wxICON_QUESTION | wxCENTER); + int result = wxMessageBox(_("Aegisub needs to be restarted so that the new language can be applied. Restart now?"), _("Restart Aegisub?"), wxYES_NO | wxICON_QUESTION | wxCENTER); if (result == wxYES) { // Restart Aegisub if (c->frame->Close()) { diff --git a/src/command/keyframe.cpp b/src/command/keyframe.cpp index 8647e4ffd4..f07e35d2c5 100644 --- a/src/command/keyframe.cpp +++ b/src/command/keyframe.cpp @@ -94,7 +94,7 @@ struct keyframe_save final : public Command { } void operator()(agi::Context *c) override { - auto filename = SaveFileSelector(_("Save keyframes file"), "Path/Last/Keyframes", "", "*.key.txt", "Text files (*.txt)|*.txt", c->parent); + auto filename = SaveFileSelector(_("Save keyframes file"), "Path/Last/Keyframes", "", "*.key.txt", from_wx(_("Text files") + " (*.txt)|*.txt"), c->parent); if (filename.empty()) return; agi::keyframe::Save(filename, c->project->Keyframes()); diff --git a/src/command/subtitle.cpp b/src/command/subtitle.cpp index e62b646156..2207059139 100644 --- a/src/command/subtitle.cpp +++ b/src/command/subtitle.cpp @@ -354,10 +354,10 @@ static void save_subtitles(agi::Context *c, agi::fs::path filename) { c->subsController->Save(filename); } catch (const agi::Exception& err) { - wxMessageBox(to_wx(err.GetMessage()), "Error", wxOK | wxICON_ERROR | wxCENTER, c->parent); + wxMessageBox(to_wx(err.GetMessage()), _("Error"), wxOK | wxICON_ERROR | wxCENTER, c->parent); } catch (...) { - wxMessageBox("Unknown error", "Error", wxOK | wxICON_ERROR | wxCENTER, c->parent); + wxMessageBox(_("Unknown error"), _("Error"), wxOK | wxICON_ERROR | wxCENTER, c->parent); } } diff --git a/src/command/timecode.cpp b/src/command/timecode.cpp index 9687d0e56d..dbe15135c9 100644 --- a/src/command/timecode.cpp +++ b/src/command/timecode.cpp @@ -100,7 +100,7 @@ struct timecode_save final : public Command { config::mru->Add("Timecodes", filename); } catch (agi::Exception const& err) { - wxMessageBox(to_wx(err.GetMessage()), "Error saving timecodes", wxOK | wxICON_ERROR | wxCENTER, c->parent); + wxMessageBox(to_wx(err.GetMessage()), _("Error saving timecodes"), wxOK | wxICON_ERROR | wxCENTER, c->parent); } } }; diff --git a/src/dialog_fonts_collector.cpp b/src/dialog_fonts_collector.cpp index 882881e13e..4b2f39fac1 100644 --- a/src/dialog_fonts_collector.cpp +++ b/src/dialog_fonts_collector.cpp @@ -345,7 +345,7 @@ void DialogFontsCollector::OnBrowse(wxCommandEvent &) { _("Select archive file name"), dest_ctrl->GetValue(), wxFileName(dest_ctrl->GetValue()).GetFullName(), - ".zip", "Zip Archives (*.zip)|*.zip", + ".zip", _("Zip Archives") + " (*.zip)|*.zip", wxFD_SAVE|wxFD_OVERWRITE_PROMPT); } else diff --git a/src/dialog_search_replace.cpp b/src/dialog_search_replace.cpp index 3436971f1a..ca83480aef 100644 --- a/src/dialog_search_replace.cpp +++ b/src/dialog_search_replace.cpp @@ -140,7 +140,7 @@ void DialogSearchReplace::FindReplace(bool (SearchReplaceEngine::*f ((*c->search).*func)(); } catch (std::exception const& e) { - wxMessageBox(to_wx(e.what()), "Error", wxOK | wxICON_ERROR | wxCENTER, this); + wxMessageBox(to_wx(e.what()), _("Error"), wxOK | wxICON_ERROR | wxCENTER, this); return; } diff --git a/src/main.cpp b/src/main.cpp index c1b58badd1..bee455a735 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -192,7 +192,7 @@ bool AegisubApp::OnInit() { config::opt->ConfigUser(); } catch (agi::Exception const& err) { - wxMessageBox("Configuration file is invalid. Error reported:\n" + to_wx(err.GetMessage()), "Error"); + wxMessageBox(fmt_tl("Configuration file is invalid. Error reported:\n%s", err.GetMessage()), _("Error")); } #ifdef _WIN32 @@ -291,7 +291,7 @@ bool AegisubApp::OnInit() { config::opt->Flush(); } catch (agi::fs::FileSystemError const& e) { - wxMessageBox(to_wx(e.GetMessage()), "Error saving config file", wxOK | wxICON_ERROR | wxCENTER); + wxMessageBox(to_wx(e.GetMessage()), _("Error saving config file"), wxOK | wxICON_ERROR | wxCENTER); } #endif } @@ -307,16 +307,16 @@ bool AegisubApp::OnInit() { OpenFiles(wxArrayStringsAdapter(args.size() - 1, &args[1])); } catch (agi::Exception const& e) { - wxMessageBox(to_wx(e.GetMessage()), "Fatal error while initializing"); + wxMessageBox(to_wx(e.GetMessage()), _("Fatal error while initializing")); return false; } catch (std::exception const& e) { - wxMessageBox(to_wx(e.what()), "Fatal error while initializing"); + wxMessageBox(to_wx(e.what()), _("Fatal error while initializing")); return false; } #ifndef _DEBUG catch (...) { - wxMessageBox("Unhandled exception","Fatal error while initializing"); + wxMessageBox(_("Unhandled exception"), _("Fatal error while initializing")); return false; } #endif diff --git a/src/video_controller.cpp b/src/video_controller.cpp index 6aff6eef68..b7a89bdcd8 100644 --- a/src/video_controller.cpp +++ b/src/video_controller.cpp @@ -33,6 +33,7 @@ #include "ass_file.h" #include "audio_controller.h" #include "compat.h" +#include "format.h" #include "include/aegisub/context.h" #include "options.h" #include "project.h" @@ -224,13 +225,12 @@ int VideoController::FrameAtTime(int time, agi::vfr::Time type) const { void VideoController::OnVideoError(VideoProviderErrorEvent const& err) { wxLogError( - "Failed seeking video. The video file may be corrupt or incomplete.\n" - "Error message reported: %s", - to_wx(err.GetMessage())); + fmt_tl("Failed seeking video. The video file may be corrupt or incomplete.\nError message reported: %s", + err.GetMessage())); } void VideoController::OnSubtitlesError(SubtitlesProviderErrorEvent const& err) { wxLogError( - "Failed rendering subtitles. Error message reported: %s", - to_wx(err.GetMessage())); + fmt_tl("Failed rendering subtitles.\nError message reported: %s", + err.GetMessage())); } diff --git a/src/video_display.cpp b/src/video_display.cpp index f0a9eb2009..2abaffd98a 100644 --- a/src/video_display.cpp +++ b/src/video_display.cpp @@ -198,18 +198,15 @@ void VideoDisplay::Render() try { } catch (const VideoOutInitException& err) { wxLogError( - "Failed to initialize video display. Closing other running " - "programs and updating your video card drivers may fix this.\n" - "Error message reported: %s", - err.GetMessage()); + fmt_tl("Failed to initialize video display. Closing other running programs and updating your video card drivers may fix this.\nError message reported: %s", + err.GetMessage())); con->project->CloseVideo(); return; } catch (const VideoOutRenderException& err) { wxLogError( - "Could not upload video frame to graphics card.\n" - "Error message reported: %s", - err.GetMessage()); + fmt_tl("Could not upload video frame to graphics card.\nError message reported: %s", + err.GetMessage())); return; } @@ -253,9 +250,8 @@ void VideoDisplay::Render() try { } catch (const agi::Exception &err) { wxLogError( - "An error occurred trying to render the video frame on the screen.\n" - "Error message reported: %s", - err.GetMessage()); + fmt_tl("An error occurred trying to render the video frame on the screen.\nError message reported: %s", + err.GetMessage())); con->project->CloseVideo(); } From b1a1ca8d2b5fd78c2a786f2fc921263661ae6c6e Mon Sep 17 00:00:00 2001 From: zlomzlom <64724986+zlomzlom@users.noreply.github.com> Date: Wed, 21 Jan 2026 23:34:58 +0100 Subject: [PATCH 2/7] Various small fixes to translatable strings --- src/command/keyframe.cpp | 2 +- src/dialog_kara_timing_copy.cpp | 4 ++-- src/dialog_shift_times.cpp | 2 +- src/dialog_video_details.cpp | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/command/keyframe.cpp b/src/command/keyframe.cpp index f07e35d2c5..f9c2f74ed9 100644 --- a/src/command/keyframe.cpp +++ b/src/command/keyframe.cpp @@ -94,7 +94,7 @@ struct keyframe_save final : public Command { } void operator()(agi::Context *c) override { - auto filename = SaveFileSelector(_("Save keyframes file"), "Path/Last/Keyframes", "", "*.key.txt", from_wx(_("Text files") + " (*.txt)|*.txt"), c->parent); + auto filename = SaveFileSelector(_("Save keyframes file"), "Path/Last/Keyframes", "", "*.key.txt", from_wx(_("Text Files") + " (*.txt)|*.txt"), c->parent); if (filename.empty()) return; agi::keyframe::Save(filename, c->project->Keyframes()); diff --git a/src/dialog_kara_timing_copy.cpp b/src/dialog_kara_timing_copy.cpp index c565451786..f6042f1e35 100644 --- a/src/dialog_kara_timing_copy.cpp +++ b/src/dialog_kara_timing_copy.cpp @@ -383,7 +383,7 @@ class DialogKanjiTimer final : public wxDialog { }; DialogKanjiTimer::DialogKanjiTimer(agi::Context *c) -: wxDialog(c->parent, -1, _("Kanji timing")) +: wxDialog(c->parent, -1, _("Kanji timer")) , subs(c->ass.get()) { SetIcons(GETICONS(kara_timing_copier)); @@ -405,7 +405,7 @@ DialogKanjiTimer::DialogKanjiTimer(agi::Context *c) display = new KaraokeLineMatchDisplay(DisplayBox); //Checkbox - Interpolate = new wxCheckBox(DisplayBox,-1,_("Attempt to &interpolate kanji."),wxDefaultPosition,wxDefaultSize,wxALIGN_LEFT); + Interpolate = new wxCheckBox(DisplayBox,-1,_("Attempt to &interpolate kanji"),wxDefaultPosition,wxDefaultSize,wxALIGN_LEFT); Interpolate->SetValue(OPT_GET("Tool/Kanji Timer/Interpolation")->GetBool()); wxArrayString styles = to_wx(subs->GetStyles()); diff --git a/src/dialog_shift_times.cpp b/src/dialog_shift_times.cpp index 0bba5a95fb..886ec0c0af 100644 --- a/src/dialog_shift_times.cpp +++ b/src/dialog_shift_times.cpp @@ -93,7 +93,7 @@ static wxString get_history_string(json::Object &obj) { auto shift_amount = to_wx(obj["amount"]); if (!obj["is by time"]) - shift_amount = fmt_tl("%s frames", shift_amount); + shift_amount = fmt_plural(wxAtoi(shift_amount), "1 frame", "%s frames", shift_amount); wxString shift_direction = obj["is backward"] ? _("backward") : _("forward"); diff --git a/src/dialog_video_details.cpp b/src/dialog_video_details.cpp index f1fd147e88..256d8ccb97 100644 --- a/src/dialog_video_details.cpp +++ b/src/dialog_video_details.cpp @@ -63,7 +63,7 @@ void ShowVideoDetailsDialog(agi::Context *c) { make_field(_("File name:"), c->project->VideoName().wstring()); make_field(_("FPS:"), fmt_wx("%.3f", fps.FPS())); make_field(_("Resolution:"), fmt_wx("%dx%d (%d:%d)", width, height, ar.numerator(), ar.denominator())); - make_field(_("Length:"), fmt_plural(framecount, "1 frame", "%d frames (%s)", + make_field(_("Length:"), fmt_plural(framecount, "%d frame (%s)", "%d frames (%s)", framecount, agi::Time(fps.TimeAtFrame(framecount - 1)).GetAssFormatted(true))); make_field(_("Decoder:"), to_wx(provider->GetDecoderName())); From 86f2572197fb97e3f67bbb3642f1cd9900b3e78c Mon Sep 17 00:00:00 2001 From: arch1t3cht Date: Wed, 21 Jan 2026 23:48:35 +0100 Subject: [PATCH 3/7] Make casing for file dialog titles consistent Use title case for all dialogs except when the dialog title contains some longer explanation like when extracting attachments. --- src/command/audio.cpp | 2 +- src/command/keyframe.cpp | 4 ++-- src/command/subtitle.cpp | 6 +++--- src/command/video.cpp | 2 +- src/dialog_export.cpp | 2 +- src/dialog_style_manager.cpp | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/command/audio.cpp b/src/command/audio.cpp index 51e0f0de5c..6ae98cc717 100644 --- a/src/command/audio.cpp +++ b/src/command/audio.cpp @@ -174,7 +174,7 @@ struct audio_save_clip final : public Command { auto const& sel = c->selectionController->GetSelectedSet(); if (sel.empty()) return; - auto filename = SaveFileSelector(_("Save audio clip"), "", "", "wav", "", c->parent); + auto filename = SaveFileSelector(_("Save Audio Clip"), "", "", "wav", "", c->parent); if (filename.empty()) return; agi::Time start = INT_MAX, end = 0; diff --git a/src/command/keyframe.cpp b/src/command/keyframe.cpp index f9c2f74ed9..c5728f926a 100644 --- a/src/command/keyframe.cpp +++ b/src/command/keyframe.cpp @@ -69,7 +69,7 @@ struct keyframe_open final : public Command { void operator()(agi::Context *c) override { auto filename = OpenFileSelector( - _("Open keyframes file"), + _("Open Keyframes File"), "Path/Last/Keyframes", "" ,".txt", from_wx(_("All Supported Formats") + " (*.txt, *.pass, *.stats, *.log)|*.txt;*.pass;*.stats;*.log|" + @@ -94,7 +94,7 @@ struct keyframe_save final : public Command { } void operator()(agi::Context *c) override { - auto filename = SaveFileSelector(_("Save keyframes file"), "Path/Last/Keyframes", "", "*.key.txt", from_wx(_("Text Files") + " (*.txt)|*.txt"), c->parent); + auto filename = SaveFileSelector(_("Save Keyframes File"), "Path/Last/Keyframes", "", "*.key.txt", from_wx(_("Text Files") + " (*.txt)|*.txt"), c->parent); if (filename.empty()) return; agi::keyframe::Save(filename, c->project->Keyframes()); diff --git a/src/command/subtitle.cpp b/src/command/subtitle.cpp index 2207059139..274a3437ab 100644 --- a/src/command/subtitle.cpp +++ b/src/command/subtitle.cpp @@ -271,7 +271,7 @@ struct subtitle_open final : public Command { void operator()(agi::Context *c) override { if (!is_okay_to_close_subtitles(c)) return; - auto filename = OpenFileSelector(_("Open subtitles file"), "Path/Last/Subtitles", "","", SubtitleFormat::GetWildcards(0), c->parent); + auto filename = OpenFileSelector(_("Open Subtitles File"), "Path/Last/Subtitles", "","", SubtitleFormat::GetWildcards(0), c->parent); if (!filename.empty()) load_subtitles(c, filename); } @@ -301,7 +301,7 @@ struct subtitle_open_charset final : public Command { void operator()(agi::Context *c) override { if (!is_okay_to_close_subtitles(c)) return; - auto filename = OpenFileSelector(_("Open subtitles file"), "Path/Last/Subtitles", "","", SubtitleFormat::GetWildcards(0), c->parent); + auto filename = OpenFileSelector(_("Open Subtitles File"), "Path/Last/Subtitles", "","", SubtitleFormat::GetWildcards(0), c->parent); if (filename.empty()) return; wxString charset = wxGetSingleChoice(_("Choose charset code:"), _("Charset"), agi::charset::GetEncodingsList(), c->parent, -1, -1, true, 250, 200); @@ -344,7 +344,7 @@ struct subtitle_properties final : public Command { static void save_subtitles(agi::Context *c, agi::fs::path filename) { if (filename.empty()) { c->videoController->Stop(); - filename = SaveFileSelector(_("Save subtitles file"), "Path/Last/Subtitles", + filename = SaveFileSelector(_("Save Subtitles File"), "Path/Last/Subtitles", c->subsController->Filename().stem().string() + ".ass", "ass", "Advanced Substation Alpha (*.ass)|*.ass", c->parent); if (filename.empty()) return; diff --git a/src/command/video.cpp b/src/command/video.cpp index 5ad74509e5..1d4c4194a7 100644 --- a/src/command/video.cpp +++ b/src/command/video.cpp @@ -590,7 +590,7 @@ struct video_open final : public Command { void operator()(agi::Context *c) override { auto str = from_wx(_("Video Formats") + " (*.asf,*.avi,*.avs,*.d2v,*.h264,*.hevc,*.m2ts,*.m4v,*.mkv,*.mov,*.mp4,*.mpeg,*.mpg,*.ogm,*.webm,*.wmv,*.ts,*.y4m,*.yuv)|*.asf;*.avi;*.avs;*.d2v;*.h264;*.hevc;*.m2ts;*.m4v;*.mkv;*.mov;*.mp4;*.mpeg;*.mpg;*.ogm;*.webm;*.wmv;*.ts;*.y4m;*.yuv|" + _("All Files") + " (*.*)|*.*"); - auto filename = OpenFileSelector(_("Open video file"), "Path/Last/Video", "", "", str, c->parent); + auto filename = OpenFileSelector(_("Open Video File"), "Path/Last/Video", "", "", str, c->parent); if (!filename.empty()) c->project->LoadVideo(filename); } diff --git a/src/dialog_export.cpp b/src/dialog_export.cpp index ac0dc71140..a60c60f1b4 100644 --- a/src/dialog_export.cpp +++ b/src/dialog_export.cpp @@ -187,7 +187,7 @@ DialogExport::~DialogExport() { void DialogExport::OnProcess(wxCommandEvent &) { if (!d.TransferDataFromWindow()) return; - auto filename = SaveFileSelector(_("Export subtitles file"), "", "", "", SubtitleFormat::GetWildcards(1), &d); + auto filename = SaveFileSelector(_("Export Subtitles File"), "", "", "", SubtitleFormat::GetWildcards(1), &d); if (filename.empty()) return; for (size_t i = 0; i < filter_list->GetCount(); ++i) { diff --git a/src/dialog_style_manager.cpp b/src/dialog_style_manager.cpp index b7b69d3957..545eabc025 100644 --- a/src/dialog_style_manager.cpp +++ b/src/dialog_style_manager.cpp @@ -671,7 +671,7 @@ void DialogStyleManager::OnCurrentDelete() { } void DialogStyleManager::OnCurrentImport() { - auto filename = OpenFileSelector(_("Open subtitles file"), "Path/Last/Subtitles", "", "", SubtitleFormat::GetWildcards(0), this); + auto filename = OpenFileSelector(_("Open Subtitles File"), "Path/Last/Subtitles", "", "", SubtitleFormat::GetWildcards(0), this); if (filename.empty()) return; std::string charset; From 665ab3e65a66decee402a87bdd552a9719d45a5c Mon Sep 17 00:00:00 2001 From: arch1t3cht Date: Thu, 22 Jan 2026 00:04:40 +0100 Subject: [PATCH 4/7] Distinguish dialog title strings from command display strings Use context to allow these strings to be translated independently. --- po/make_pot.sh | 2 +- src/command/audio.cpp | 2 +- src/command/timecode.cpp | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/po/make_pot.sh b/po/make_pot.sh index f9eb8b0442..ad356d460f 100755 --- a/po/make_pot.sh +++ b/po/make_pot.sh @@ -16,7 +16,7 @@ maybe_append() { find ../src ../src/command -name '*.cpp' -o -name '*.h' \ | xgettext --files-from=- -o - --c++ --sort-by-file \ - -k_ -kwxTRANSLATE -kSTR_MENU -kSTR_DISP -kSTR_HELP -kCOMMAND_GROUP:5 \ + -k_ -kwxTRANSLATE -kwxGETTEXT_IN_CONTEXT:1c,2 -kSTR_MENU -kSTR_DISP -kSTR_HELP -kCOMMAND_GROUP:5 \ -kfmt_tl -kfmt_plural:2,3 \ | sed 's/SOME DESCRIPTIVE TITLE./Aegisub 3.2/' \ | sed 's/YEAR/2005-2014/' \ diff --git a/src/command/audio.cpp b/src/command/audio.cpp index 6ae98cc717..b2097c73fb 100644 --- a/src/command/audio.cpp +++ b/src/command/audio.cpp @@ -82,7 +82,7 @@ struct audio_open final : public Command { auto str = from_wx(_("Audio Formats") + " (*.aac,*.ac3,*.ape,*.dts,*.eac3,*.flac,*.m4a,*.mka,*.mp3,*.mp4,*.ogg,*.opus,*.w64,*.wav,*.wma)|*.aac;*.ac3;*.ape;*.dts;*.eac3;*.flac;*.m4a;*.mka;*.mp3;*.mp4;*.ogg;*.opus;*.w64;*.wav;*.wma|" + _("Video Formats") + " (*.asf,*.avi,*.avs,*.d2v,*.m2ts,*.m4v,*.mkv,*.mov,*.mp4,*.mpeg,*.mpg,*.ogm,*.webm,*.wmv,*.ts)|*.asf;*.avi;*.avs;*.d2v;*.m2ts;*.m4v;*.mkv;*.mov;*.mp4;*.mpeg;*.mpg;*.ogm;*.webm;*.wmv;*.ts|" + _("All Files") + " (*.*)|*.*"); - auto filename = OpenFileSelector(_("Open Audio File"), "Path/Last/Audio", "", "", str, c->parent); + auto filename = OpenFileSelector(wxGETTEXT_IN_CONTEXT("dialog title", "Open Audio File"), "Path/Last/Audio", "", "", str, c->parent); if (!filename.empty()) c->project->LoadAudio(filename); } diff --git a/src/command/timecode.cpp b/src/command/timecode.cpp index dbe15135c9..af64e57949 100644 --- a/src/command/timecode.cpp +++ b/src/command/timecode.cpp @@ -71,7 +71,7 @@ struct timecode_open final : public Command { void operator()(agi::Context *c) override { auto str = from_wx(_("Text Files") + " (*.txt)|*.txt|" + _("All Files") + " (*.*)|*.*"); - auto filename = OpenFileSelector(_("Open Timecodes File"), "Path/Last/Timecodes", "", "", str, c->parent); + auto filename = OpenFileSelector(wxGETTEXT_IN_CONTEXT("dialog title", "Open Timecodes File"), "Path/Last/Timecodes", "", "", str, c->parent); if (!filename.empty()) c->project->LoadTimecodes(filename); } @@ -91,7 +91,7 @@ struct timecode_save final : public Command { void operator()(agi::Context *c) override { auto str = from_wx(_("Text Files") + " (*.txt)|*.txt|" + _("All Files") + " (*.*)|*.*"); - auto filename = SaveFileSelector(_("Save Timecodes File"), "Path/Last/Timecodes", "", "", str, c->parent); + auto filename = SaveFileSelector(wxGETTEXT_IN_CONTEXT("dialog title", "Save Timecodes File"), "Path/Last/Timecodes", "", "", str, c->parent); if (filename.empty()) return; try { From bfefcd6da5e05e850f98d95d8ba1b71d934d19b4 Mon Sep 17 00:00:00 2001 From: arch1t3cht Date: Mon, 16 Feb 2026 23:00:37 +0100 Subject: [PATCH 5/7] po/make_pot: Extract msgmerge to separate script Make it possible to regenerate the pot file without updating all po files, but still document the flags used for updating po files. --- po/make_pot.sh | 6 ------ po/meson.build | 6 ++++-- po/update_po.sh | 11 +++++++++++ 3 files changed, 15 insertions(+), 8 deletions(-) create mode 100755 po/update_po.sh diff --git a/po/make_pot.sh b/po/make_pot.sh index ad356d460f..822ef3a1fd 100755 --- a/po/make_pot.sh +++ b/po/make_pot.sh @@ -57,9 +57,3 @@ do | sed 's/[^=]*=\(.*\)/packages\/win_installer\/fragment_strings.iss|1|"\1"/' \ | maybe_append done - -for lang in $(cat LINGUAS) ; do - # If using gettext < 0.21, run twice to avoid reversing order of old strings - # ref: https://savannah.gnu.org/bugs/?58778 - msgmerge --update --backup=none --no-fuzzy-matching "$lang".po aegisub.pot -done diff --git a/po/meson.build b/po/meson.build index f5a084d2c1..b60d499050 100644 --- a/po/meson.build +++ b/po/meson.build @@ -1,10 +1,12 @@ i18n = import('i18n') -# This is currently busted on OSX -# and incomplete on any platform. +# This should only be used to compile the translations during a build. +# Meson's i18n module is not sufficient to generate a pot file: # It misses translatable strings not directly found in either # C++ source, desktop or appdata file. This affects strings # of the Windows installer (iss), from Lua scripts and JSON files. # Until a solution is found, POT updates should continue to use make_pot.sh. +# Similarly, since meson insists on regenerating the POT file before updating +# PO files, PO files should be updated using update_po.sh i18n.gettext('aegisub', args: [ '-k_', '-kSTR_MENU', '-kSTR_DISP', '-kSTR_HELP', '-kCOMMAND_GROUP:5,', diff --git a/po/update_po.sh b/po/update_po.sh new file mode 100755 index 0000000000..5ec194687c --- /dev/null +++ b/po/update_po.sh @@ -0,0 +1,11 @@ +#!/bin/sh +set -e + +# Use as './update_po.sh de ja' to only update some po files, +# or as `./update_po.sh` to update all of them. + +for lang in ${@:-$(cat LINGUAS)} ; do + # If using gettext < 0.21, run twice to avoid reversing order of old strings + # ref: https://savannah.gnu.org/bugs/?58778 + msgmerge --update --backup=none --no-fuzzy-matching "$lang".po aegisub.pot +done From d24bc44baa5ad404f1804c8315814c3844f615b9 Mon Sep 17 00:00:00 2001 From: arch1t3cht Date: Mon, 16 Feb 2026 23:14:06 +0100 Subject: [PATCH 6/7] po/update_po.sh: Use fuzzy matching and --previous --previous was mainly added so that the source msgids of fuzzy matches are included in the po files, but as a result msgmerge will also keep translations whose msgid no longer exists. These may need to be manually cleaned up from time to time. --- po/update_po.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/po/update_po.sh b/po/update_po.sh index 5ec194687c..0b1db73f89 100755 --- a/po/update_po.sh +++ b/po/update_po.sh @@ -7,5 +7,5 @@ set -e for lang in ${@:-$(cat LINGUAS)} ; do # If using gettext < 0.21, run twice to avoid reversing order of old strings # ref: https://savannah.gnu.org/bugs/?58778 - msgmerge --update --backup=none --no-fuzzy-matching "$lang".po aegisub.pot + msgmerge --update --backup=none --previous "$lang".po aegisub.pot done From 329de9543275287bad773026c821ab5a2373dd8b Mon Sep 17 00:00:00 2001 From: arch1t3cht Date: Mon, 16 Feb 2026 23:14:53 +0100 Subject: [PATCH 7/7] Regenerate pot file --- po/aegisub.pot | 1601 ++++++++++++++++++++++++++---------------------- 1 file changed, 874 insertions(+), 727 deletions(-) diff --git a/po/aegisub.pot b/po/aegisub.pot index e13b27b613..07a16b3ebc 100644 --- a/po/aegisub.pot +++ b/po/aegisub.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Aegisub 3.2.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-01 20:46+0100\n" +"POT-Creation-Date: 2026-02-16 22:57+0100\n" "PO-Revision-Date: 2005-2014-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -118,7 +118,7 @@ msgstr "" msgid "Audio Volume" msgstr "" -#: ../src/audio_display.cpp:706 +#: ../src/audio_display.cpp:718 #, c-format msgid "%d%%, %d pixel/second" msgstr "" @@ -254,11 +254,11 @@ msgid "" "%s" msgstr "" -#: ../src/auto4_lua.cpp:458 +#: ../src/auto4_lua.cpp:460 msgid "Could not initialize Lua state" msgstr "" -#: ../src/auto4_lua.cpp:541 +#: ../src/auto4_lua.cpp:543 #, c-format msgid "" "Error initialising Lua script \"%s\":\n" @@ -266,12 +266,48 @@ msgid "" "%s" msgstr "" -#: ../src/auto4_lua.cpp:551 +#: ../src/auto4_lua.cpp:553 msgid "" "Attempted to load an Automation 3 script as an Automation 4 Lua script. " "Automation 3 is no longer supported." msgstr "" +#: ../src/auto4_lua.cpp:827 +#, c-format +msgid "" +"Runtime error in Lua macro validation function:\n" +"%s" +msgstr "" + +#: ../src/auto4_lua.cpp:881 +#, c-format +msgid "Active row %d is out of bounds (must be 1-%u)" +msgstr "" + +#: ../src/auto4_lua.cpp:897 +#, c-format +msgid "Selected row %d is out of bounds (must be 1-%u)" +msgstr "" + +#: ../src/auto4_lua.cpp:903 +#, c-format +msgid "Selected row %d is not a dialogue line" +msgstr "" + +#: ../src/auto4_lua.cpp:969 +#, c-format +msgid "" +"Runtime error in Lua macro IsActive function:\n" +"%s" +msgstr "" + +#: ../src/auto4_lua.cpp:1075 +#, c-format +msgid "" +"Runtime error in Lua config dialog function:\n" +"%s" +msgstr "" + #: ../src/charset_detect.cpp:50 msgid "" "Aegisub could not narrow down the character set to a single one.\n" @@ -362,6 +398,16 @@ msgstr "" msgid "Select Aegisub interface language" msgstr "" +#: ../src/command/app.cpp:167 +msgid "" +"Aegisub needs to be restarted so that the new language can be applied. " +"Restart now?" +msgstr "" + +#: ../src/command/app.cpp:167 +msgid "Restart Aegisub?" +msgstr "" + #: ../src/command/app.cpp:180 msgid "&Log window" msgstr "" @@ -390,9 +436,9 @@ msgstr "" msgid "&Options..." msgstr "" -#: ../src/command/app.cpp:205 ../src/dialog_properties.cpp:146 -#: ../src/dialog_timing_processor.cpp:168 ../src/preferences.cpp:129 -#: ../src/preferences.cpp:169 +#: ../src/command/app.cpp:205 ../src/dialog_properties.cpp:151 +#: ../src/dialog_timing_processor.cpp:169 ../src/preferences.cpp:132 +#: ../src/preferences.cpp:172 msgid "Options" msgstr "" @@ -472,7 +518,7 @@ msgstr "" msgid "&Open Audio File..." msgstr "" -#: ../src/command/audio.cpp:78 ../src/command/audio.cpp:85 +#: ../src/command/audio.cpp:78 msgid "Open Audio File" msgstr "" @@ -488,6 +534,11 @@ msgstr "" msgid "Video Formats" msgstr "" +#: ../src/command/audio.cpp:85 +msgctxt "dialog title" +msgid "Open Audio File" +msgstr "" + #: ../src/command/audio.cpp:93 ../src/command/audio.cpp:94 msgid "Open 2h30 Blank Audio" msgstr "" @@ -549,7 +600,7 @@ msgid "Save an audio clip of the selected line" msgstr "" #: ../src/command/audio.cpp:177 -msgid "Save audio clip" +msgid "Save Audio Clip" msgstr "" #: ../src/command/audio.cpp:192 ../src/command/audio.cpp:193 @@ -660,51 +711,69 @@ msgid "Scroll the audio display to center on the current audio selection" msgstr "" #: ../src/command/audio.cpp:408 ../src/command/audio.cpp:409 -msgid "Scroll left" +msgid "Go to selection start" msgstr "" #: ../src/command/audio.cpp:410 -msgid "Scroll the audio display left" +msgid "" +"Scroll the audio display to center on the start of current audio selection" msgstr "" #: ../src/command/audio.cpp:419 ../src/command/audio.cpp:420 -msgid "Scroll right" +msgid "Go to selection end" msgstr "" #: ../src/command/audio.cpp:421 +msgid "" +"Scroll the audio display to center on the end of current audio selection" +msgstr "" + +#: ../src/command/audio.cpp:430 ../src/command/audio.cpp:431 +msgid "Scroll left" +msgstr "" + +#: ../src/command/audio.cpp:432 +msgid "Scroll the audio display left" +msgstr "" + +#: ../src/command/audio.cpp:441 ../src/command/audio.cpp:442 +msgid "Scroll right" +msgstr "" + +#: ../src/command/audio.cpp:443 msgid "Scroll the audio display right" msgstr "" -#: ../src/command/audio.cpp:435 ../src/command/audio.cpp:436 -#: ../src/command/audio.cpp:437 +#: ../src/command/audio.cpp:457 ../src/command/audio.cpp:458 +#: ../src/command/audio.cpp:459 msgid "Auto scroll audio display to selected line" msgstr "" -#: ../src/command/audio.cpp:452 ../src/command/audio.cpp:453 -#: ../src/command/audio.cpp:454 +#: ../src/command/audio.cpp:474 ../src/command/audio.cpp:475 +#: ../src/command/audio.cpp:476 msgid "Automatically commit all changes" msgstr "" -#: ../src/command/audio.cpp:469 ../src/command/audio.cpp:470 +#: ../src/command/audio.cpp:491 ../src/command/audio.cpp:492 msgid "Auto go to next line on commit" msgstr "" -#: ../src/command/audio.cpp:471 +#: ../src/command/audio.cpp:493 msgid "Automatically go to next line on commit" msgstr "" -#: ../src/command/audio.cpp:486 ../src/command/audio.cpp:487 -#: ../src/command/audio.cpp:488 +#: ../src/command/audio.cpp:508 ../src/command/audio.cpp:509 +#: ../src/command/audio.cpp:510 msgid "Spectrum analyzer mode" msgstr "" -#: ../src/command/audio.cpp:503 ../src/command/audio.cpp:504 -#: ../src/command/audio.cpp:505 +#: ../src/command/audio.cpp:525 ../src/command/audio.cpp:526 +#: ../src/command/audio.cpp:527 msgid "Link vertical zoom and volume sliders" msgstr "" -#: ../src/command/audio.cpp:520 ../src/command/audio.cpp:521 -#: ../src/command/audio.cpp:522 +#: ../src/command/audio.cpp:542 ../src/command/audio.cpp:543 +#: ../src/command/audio.cpp:544 msgid "Toggle karaoke mode" msgstr "" @@ -745,7 +814,7 @@ msgid "&Automation..." msgstr "" #: ../src/command/automation.cpp:74 ../src/command/automation.cpp:86 -#: ../src/preferences.cpp:339 +#: ../src/preferences.cpp:342 msgid "Automation" msgstr "" @@ -879,7 +948,7 @@ msgstr "" msgid "Font Face..." msgstr "" -#: ../src/command/edit.cpp:488 ../src/preferences_base.cpp:250 +#: ../src/command/edit.cpp:488 ../src/preferences_base.cpp:277 msgid "Font Face" msgstr "" @@ -1174,7 +1243,7 @@ msgid "revert line" msgstr "" #: ../src/command/edit.cpp:1223 ../src/command/edit.cpp:1224 -#: ../src/preferences.cpp:416 +#: ../src/preferences.cpp:419 msgid "Clear" msgstr "" @@ -1268,8 +1337,8 @@ msgid "&Effect" msgstr "" #: ../src/command/grid.cpp:133 ../src/command/grid.cpp:145 -#: ../src/dialog_paste_over.cpp:72 ../src/grid_column.cpp:214 -#: ../src/grid_column.cpp:215 ../src/subs_edit_box.cpp:140 +#: ../src/dialog_paste_over.cpp:74 ../src/grid_column.cpp:216 +#: ../src/grid_column.cpp:217 ../src/subs_edit_box.cpp:140 msgid "Effect" msgstr "" @@ -1286,7 +1355,7 @@ msgid "&End Time" msgstr "" #: ../src/command/grid.cpp:157 ../src/command/grid.cpp:169 -#: ../src/dialog_paste_over.cpp:66 ../src/grid_column.cpp:170 +#: ../src/dialog_paste_over.cpp:68 ../src/grid_column.cpp:172 msgid "End Time" msgstr "" @@ -1303,7 +1372,7 @@ msgid "&Layer" msgstr "" #: ../src/command/grid.cpp:181 ../src/command/grid.cpp:193 -#: ../src/dialog_paste_over.cpp:64 ../src/grid_column.cpp:130 +#: ../src/dialog_paste_over.cpp:66 ../src/grid_column.cpp:132 msgid "Layer" msgstr "" @@ -1320,7 +1389,7 @@ msgid "&Start Time" msgstr "" #: ../src/command/grid.cpp:205 ../src/command/grid.cpp:217 -#: ../src/dialog_paste_over.cpp:65 ../src/grid_column.cpp:152 +#: ../src/dialog_paste_over.cpp:67 ../src/grid_column.cpp:154 msgid "Start Time" msgstr "" @@ -1337,7 +1406,7 @@ msgid "St&yle Name" msgstr "" #: ../src/command/grid.cpp:229 ../src/command/grid.cpp:241 -#: ../src/dialog_style_editor.cpp:179 +#: ../src/dialog_style_editor.cpp:180 msgid "Style Name" msgstr "" @@ -1520,7 +1589,7 @@ msgid "Open a keyframe list file" msgstr "" #: ../src/command/keyframe.cpp:72 -msgid "Open keyframes file" +msgid "Open Keyframes File" msgstr "" #: ../src/command/keyframe.cpp:87 @@ -1536,7 +1605,12 @@ msgid "Save the current list of keyframes to a file" msgstr "" #: ../src/command/keyframe.cpp:97 -msgid "Save keyframes file" +msgid "Save Keyframes File" +msgstr "" + +#: ../src/command/keyframe.cpp:97 ../src/command/timecode.cpp:73 +#: ../src/command/timecode.cpp:93 +msgid "Text Files" msgstr "" #: ../src/command/recent.cpp:43 ../src/command/recent.cpp:53 @@ -1661,7 +1735,7 @@ msgstr "" #: ../src/command/subtitle.cpp:255 ../src/command/subtitle.cpp:256 #: ../src/command/subtitle.cpp:257 ../src/dialog_progress.cpp:175 -#: ../src/dialog_style_manager.cpp:313 +#: ../src/dialog_style_manager.cpp:320 msgid "Close" msgstr "" @@ -1678,8 +1752,8 @@ msgid "Open a subtitles file" msgstr "" #: ../src/command/subtitle.cpp:274 ../src/command/subtitle.cpp:304 -#: ../src/dialog_style_manager.cpp:667 -msgid "Open subtitles file" +#: ../src/dialog_style_manager.cpp:674 +msgid "Open Subtitles File" msgstr "" #: ../src/command/subtitle.cpp:282 @@ -1739,7 +1813,24 @@ msgid "Open script properties window" msgstr "" #: ../src/command/subtitle.cpp:347 -msgid "Save subtitles file" +msgid "Save Subtitles File" +msgstr "" + +#: ../src/command/subtitle.cpp:357 ../src/command/subtitle.cpp:360 +#: ../src/dialog_fonts_collector.cpp:312 ../src/dialog_fonts_collector.cpp:317 +#: ../src/dialog_fonts_collector.cpp:322 ../src/dialog_kara_timing_copy.cpp:495 +#: ../src/dialog_kara_timing_copy.cpp:497 +#: ../src/dialog_kara_timing_copy.cpp:547 ../src/dialog_search_replace.cpp:143 +#: ../src/dialog_spellchecker.cpp:143 ../src/dialog_spellchecker.cpp:149 +#: ../src/dialog_style_manager.cpp:689 ../src/dialog_style_manager.cpp:695 +#: ../src/dialog_style_manager.cpp:698 ../src/main.cpp:195 +#: ../src/preferences.cpp:275 ../src/preferences.cpp:467 +msgid "Error" +msgstr "" + +#: ../src/command/subtitle.cpp:360 ../src/dialog_export.cpp:211 +#: ../src/dialog_style_manager.cpp:698 ../src/project.cpp:142 +msgid "Unknown error" msgstr "" #: ../src/command/subtitle.cpp:367 @@ -1766,7 +1857,7 @@ msgstr "" msgid "Save subtitles with another name" msgstr "" -#: ../src/command/subtitle.cpp:395 ../src/dialog_export.cpp:123 +#: ../src/command/subtitle.cpp:395 ../src/dialog_export.cpp:127 #: ../src/dialog_selected_choices.cpp:26 ../src/subs_edit_ctrl.cpp:392 msgid "Select &All" msgstr "" @@ -1847,7 +1938,7 @@ msgstr "" msgid "S&hift Times..." msgstr "" -#: ../src/command/time.cpp:154 ../src/dialog_shift_times.cpp:134 +#: ../src/command/time.cpp:154 ../src/dialog_shift_times.cpp:135 msgid "Shift Times" msgstr "" @@ -1990,7 +2081,7 @@ msgstr "" msgid "Open Timecodes File..." msgstr "" -#: ../src/command/timecode.cpp:69 ../src/command/timecode.cpp:74 +#: ../src/command/timecode.cpp:69 msgid "Open Timecodes File" msgstr "" @@ -1998,15 +2089,16 @@ msgstr "" msgid "Open a VFR timecodes v1 or v2 file" msgstr "" -#: ../src/command/timecode.cpp:73 ../src/command/timecode.cpp:93 -msgid "Text Files" +#: ../src/command/timecode.cpp:74 +msgctxt "dialog title" +msgid "Open Timecodes File" msgstr "" #: ../src/command/timecode.cpp:83 msgid "Save Timecodes File..." msgstr "" -#: ../src/command/timecode.cpp:84 ../src/command/timecode.cpp:94 +#: ../src/command/timecode.cpp:84 msgid "Save Timecodes File" msgstr "" @@ -2014,6 +2106,15 @@ msgstr "" msgid "Save a VFR timecodes v2 file" msgstr "" +#: ../src/command/timecode.cpp:94 +msgctxt "dialog title" +msgid "Save Timecodes File" +msgstr "" + +#: ../src/command/timecode.cpp:103 +msgid "Error saving timecodes" +msgstr "" + #: ../src/command/tool.cpp:56 msgid "&Export Subtitles..." msgstr "" @@ -2070,7 +2171,7 @@ msgstr "" msgid "St&yling Assistant..." msgstr "" -#: ../src/command/tool.cpp:109 ../src/dialog_styling_assistant.cpp:53 +#: ../src/command/tool.cpp:109 ../src/dialog_styling_assistant.cpp:54 msgid "Styling Assistant" msgstr "" @@ -2083,7 +2184,7 @@ msgid "&Accept changes" msgstr "" #: ../src/command/tool.cpp:128 ../src/command/tool.cpp:212 -#: ../src/dialog_styling_assistant.cpp:88 ../src/dialog_translation.cpp:111 +#: ../src/dialog_styling_assistant.cpp:90 ../src/dialog_translation.cpp:114 msgid "Accept changes" msgstr "" @@ -2096,7 +2197,7 @@ msgid "&Preview changes" msgstr "" #: ../src/command/tool.cpp:139 ../src/command/tool.cpp:223 -#: ../src/dialog_styling_assistant.cpp:89 ../src/dialog_translation.cpp:112 +#: ../src/dialog_styling_assistant.cpp:91 ../src/dialog_translation.cpp:115 msgid "Preview changes" msgstr "" @@ -2108,7 +2209,7 @@ msgstr "" msgid "&Styles Manager..." msgstr "" -#: ../src/command/tool.cpp:151 ../src/dialog_style_manager.cpp:258 +#: ../src/command/tool.cpp:151 ../src/dialog_style_manager.cpp:259 msgid "Styles Manager" msgstr "" @@ -2146,8 +2247,8 @@ msgstr "" msgid "&Translation Assistant..." msgstr "" -#: ../src/command/tool.cpp:187 ../src/dialog_translation.cpp:64 -#: ../src/preferences.cpp:235 +#: ../src/command/tool.cpp:187 ../src/dialog_translation.cpp:65 +#: ../src/preferences.cpp:238 msgid "Translation Assistant" msgstr "" @@ -2491,7 +2592,7 @@ msgid "Open a video file" msgstr "" #: ../src/command/video.cpp:593 -msgid "Open video file" +msgid "Open Video File" msgstr "" #: ../src/command/video.cpp:602 @@ -2737,13 +2838,13 @@ msgstr "" msgid "Translated into LANGUAGE by PERSON\n" msgstr "" -#: ../src/dialog_about.cpp:128 +#: ../src/dialog_about.cpp:131 msgid "" "\n" "See the help file for full credits.\n" msgstr "" -#: ../src/dialog_about.cpp:130 +#: ../src/dialog_about.cpp:133 #, c-format msgid "Built by %s on %s." msgstr "" @@ -2764,13 +2865,13 @@ msgstr "" msgid "E&xtract" msgstr "" -#: ../src/dialog_attachments.cpp:79 ../src/dialog_style_manager.cpp:204 -#: ../src/preferences.cpp:613 +#: ../src/dialog_attachments.cpp:79 ../src/dialog_style_manager.cpp:205 +#: ../src/preferences.cpp:615 msgid "&Delete" msgstr "" #: ../src/dialog_attachments.cpp:89 ../src/dialog_automation.cpp:122 -#: ../src/dialog_kara_timing_copy.cpp:419 ../src/dialog_version_check.cpp:122 +#: ../src/dialog_kara_timing_copy.cpp:425 ../src/dialog_version_check.cpp:122 msgid "&Close" msgstr "" @@ -2850,7 +2951,7 @@ msgstr "" msgid "Filename" msgstr "" -#: ../src/dialog_automation.cpp:136 ../src/preferences.cpp:633 +#: ../src/dialog_automation.cpp:136 ../src/preferences.cpp:635 msgid "Description" msgstr "" @@ -2923,109 +3024,109 @@ msgstr "" msgid "Automation Script Info" msgstr "" -#: ../src/dialog_autosave.cpp:66 +#: ../src/dialog_autosave.cpp:67 msgid "Open autosave file" msgstr "" -#: ../src/dialog_autosave.cpp:70 ../src/preferences.cpp:78 +#: ../src/dialog_autosave.cpp:71 ../src/preferences.cpp:79 msgid "Files" msgstr "" -#: ../src/dialog_autosave.cpp:75 +#: ../src/dialog_autosave.cpp:76 msgid "Versions" msgstr "" -#: ../src/dialog_autosave.cpp:85 +#: ../src/dialog_autosave.cpp:86 msgid "Open" msgstr "" -#: ../src/dialog_autosave.cpp:94 +#: ../src/dialog_autosave.cpp:95 #, c-format msgid "%s [ORIGINAL BACKUP]" msgstr "" -#: ../src/dialog_autosave.cpp:95 +#: ../src/dialog_autosave.cpp:96 #, c-format msgid "%s [RECOVERED]" msgstr "" -#: ../src/dialog_colorpicker.cpp:543 +#: ../src/dialog_colorpicker.cpp:552 msgid "Select Color" msgstr "" -#: ../src/dialog_colorpicker.cpp:557 +#: ../src/dialog_colorpicker.cpp:566 msgid "Color spectrum" msgstr "" -#: ../src/dialog_colorpicker.cpp:561 +#: ../src/dialog_colorpicker.cpp:572 msgid "HSL/L" msgstr "" -#: ../src/dialog_colorpicker.cpp:561 +#: ../src/dialog_colorpicker.cpp:572 msgid "HSV/H" msgstr "" -#: ../src/dialog_colorpicker.cpp:561 +#: ../src/dialog_colorpicker.cpp:572 msgid "RGB/B" msgstr "" -#: ../src/dialog_colorpicker.cpp:561 +#: ../src/dialog_colorpicker.cpp:572 msgid "RGB/G" msgstr "" -#: ../src/dialog_colorpicker.cpp:561 +#: ../src/dialog_colorpicker.cpp:572 msgid "RGB/R" msgstr "" -#: ../src/dialog_colorpicker.cpp:564 +#: ../src/dialog_colorpicker.cpp:575 msgid "RGB color" msgstr "" -#: ../src/dialog_colorpicker.cpp:565 +#: ../src/dialog_colorpicker.cpp:576 msgid "HSL color" msgstr "" -#: ../src/dialog_colorpicker.cpp:566 +#: ../src/dialog_colorpicker.cpp:577 msgid "HSV color" msgstr "" -#: ../src/dialog_colorpicker.cpp:594 +#: ../src/dialog_colorpicker.cpp:614 msgid "Spectrum mode:" msgstr "" -#: ../src/dialog_colorpicker.cpp:611 +#: ../src/dialog_colorpicker.cpp:631 msgid "Blue:" msgstr "" -#: ../src/dialog_colorpicker.cpp:611 +#: ../src/dialog_colorpicker.cpp:631 msgid "Green:" msgstr "" -#: ../src/dialog_colorpicker.cpp:611 +#: ../src/dialog_colorpicker.cpp:631 msgid "Red:" msgstr "" -#: ../src/dialog_colorpicker.cpp:614 +#: ../src/dialog_colorpicker.cpp:634 msgid "Alpha:" msgstr "" -#: ../src/dialog_colorpicker.cpp:621 ../src/dialog_colorpicker.cpp:624 +#: ../src/dialog_colorpicker.cpp:641 ../src/dialog_colorpicker.cpp:644 msgid "Hue:" msgstr "" -#: ../src/dialog_colorpicker.cpp:621 +#: ../src/dialog_colorpicker.cpp:641 msgid "Lum.:" msgstr "" -#: ../src/dialog_colorpicker.cpp:621 ../src/dialog_colorpicker.cpp:624 +#: ../src/dialog_colorpicker.cpp:641 ../src/dialog_colorpicker.cpp:644 msgid "Sat.:" msgstr "" -#: ../src/dialog_colorpicker.cpp:624 +#: ../src/dialog_colorpicker.cpp:644 msgid "Value:" msgstr "" -#: ../src/dialog_detached_video.cpp:63 ../src/dialog_detached_video.cpp:131 +#: ../src/dialog_detached_video.cpp:63 ../src/dialog_detached_video.cpp:149 #, c-format msgid "Video: %s" msgstr "" @@ -3082,8 +3183,8 @@ msgstr "" msgid "Dummy video options" msgstr "" -#: ../src/dialog_dummy_video.cpp:110 ../src/dialog_properties.cpp:130 -#: ../src/dialog_resample.cpp:167 ../src/dialog_resample.cpp:181 +#: ../src/dialog_dummy_video.cpp:110 ../src/dialog_properties.cpp:136 +#: ../src/dialog_resample.cpp:175 ../src/dialog_resample.cpp:188 msgid "×" msgstr "" @@ -3112,48 +3213,43 @@ msgstr "" msgid "Resulting duration: %s" msgstr "" -#: ../src/dialog_export.cpp:101 +#: ../src/dialog_export.cpp:102 msgid "Export" msgstr "" -#: ../src/dialog_export.cpp:121 +#: ../src/dialog_export.cpp:109 +msgid "Filters" +msgstr "" + +#: ../src/dialog_export.cpp:125 msgid "Move &Up" msgstr "" -#: ../src/dialog_export.cpp:122 +#: ../src/dialog_export.cpp:126 msgid "Move &Down" msgstr "" -#: ../src/dialog_export.cpp:124 ../src/dialog_selected_choices.cpp:33 +#: ../src/dialog_export.cpp:128 ../src/dialog_selected_choices.cpp:33 msgid "Select &None" msgstr "" -#: ../src/dialog_export.cpp:140 +#: ../src/dialog_export.cpp:144 msgid "Text encoding:" msgstr "" -#: ../src/dialog_export.cpp:148 -msgid "Filters" -msgstr "" - -#: ../src/dialog_export.cpp:155 +#: ../src/dialog_export.cpp:158 msgid "Export..." msgstr "" -#: ../src/dialog_export.cpp:187 -msgid "Export subtitles file" +#: ../src/dialog_export.cpp:190 +msgid "Export Subtitles File" msgstr "" -#: ../src/dialog_export.cpp:202 ../src/dialog_export.cpp:205 -#: ../src/dialog_export.cpp:208 +#: ../src/dialog_export.cpp:205 ../src/dialog_export.cpp:208 +#: ../src/dialog_export.cpp:211 msgid "Error exporting subtitles" msgstr "" -#: ../src/dialog_export.cpp:208 ../src/dialog_style_manager.cpp:691 -#: ../src/project.cpp:142 -msgid "Unknown error" -msgstr "" - #: ../src/dialog_export_ebu3264.cpp:83 msgid "EBU STL export" msgstr "" @@ -3168,116 +3264,116 @@ msgstr "" msgid "Export to EBU STL format" msgstr "" +#: ../src/dialog_export_ebu3264.cpp:101 +msgid "Text formatting" +msgstr "" + #: ../src/dialog_export_ebu3264.cpp:102 -msgid "23.976 fps (non-standard, STL24.01)" +msgid "Time codes" msgstr "" #: ../src/dialog_export_ebu3264.cpp:103 +msgid "Display standard" +msgstr "" + +#: ../src/dialog_export_ebu3264.cpp:110 +msgid "23.976 fps (non-standard, STL24.01)" +msgstr "" + +#: ../src/dialog_export_ebu3264.cpp:111 msgid "24 fps (non-standard, STL24.01)" msgstr "" -#: ../src/dialog_export_ebu3264.cpp:104 +#: ../src/dialog_export_ebu3264.cpp:112 msgid "25 fps (STL25.01)" msgstr "" -#: ../src/dialog_export_ebu3264.cpp:105 +#: ../src/dialog_export_ebu3264.cpp:113 msgid "29.97 fps (non-dropframe, STL30.01)" msgstr "" -#: ../src/dialog_export_ebu3264.cpp:106 +#: ../src/dialog_export_ebu3264.cpp:114 msgid "29.97 fps (dropframe, STL30.01)" msgstr "" -#: ../src/dialog_export_ebu3264.cpp:107 +#: ../src/dialog_export_ebu3264.cpp:115 msgid "30 fps (STL30.01)" msgstr "" -#: ../src/dialog_export_ebu3264.cpp:109 +#: ../src/dialog_export_ebu3264.cpp:117 msgid "TV standard" msgstr "" -#: ../src/dialog_export_ebu3264.cpp:113 +#: ../src/dialog_export_ebu3264.cpp:121 msgid "Out-times are inclusive" msgstr "" -#: ../src/dialog_export_ebu3264.cpp:116 +#: ../src/dialog_export_ebu3264.cpp:124 msgid "ISO 6937-2 (Latin/Western Europe)" msgstr "" -#: ../src/dialog_export_ebu3264.cpp:117 +#: ../src/dialog_export_ebu3264.cpp:125 msgid "ISO 8859-5 (Cyrillic)" msgstr "" -#: ../src/dialog_export_ebu3264.cpp:118 +#: ../src/dialog_export_ebu3264.cpp:126 msgid "ISO 8859-6 (Arabic)" msgstr "" -#: ../src/dialog_export_ebu3264.cpp:119 +#: ../src/dialog_export_ebu3264.cpp:127 msgid "ISO 8859-7 (Greek)" msgstr "" -#: ../src/dialog_export_ebu3264.cpp:120 +#: ../src/dialog_export_ebu3264.cpp:128 msgid "ISO 8859-8 (Hebrew)" msgstr "" -#: ../src/dialog_export_ebu3264.cpp:121 +#: ../src/dialog_export_ebu3264.cpp:129 msgid "UTF-8 Unicode (non-standard)" msgstr "" -#: ../src/dialog_export_ebu3264.cpp:123 +#: ../src/dialog_export_ebu3264.cpp:131 msgid "Text encoding" msgstr "" -#: ../src/dialog_export_ebu3264.cpp:126 +#: ../src/dialog_export_ebu3264.cpp:134 msgid "Automatically wrap long lines (ASS)" msgstr "" -#: ../src/dialog_export_ebu3264.cpp:127 +#: ../src/dialog_export_ebu3264.cpp:135 msgid "Automatically wrap long lines (Balanced)" msgstr "" -#: ../src/dialog_export_ebu3264.cpp:128 +#: ../src/dialog_export_ebu3264.cpp:136 msgid "Abort if any lines are too long" msgstr "" -#: ../src/dialog_export_ebu3264.cpp:129 +#: ../src/dialog_export_ebu3264.cpp:137 msgid "Skip lines that are too long" msgstr "" -#: ../src/dialog_export_ebu3264.cpp:134 +#: ../src/dialog_export_ebu3264.cpp:142 msgid "Translate alignments" msgstr "" -#: ../src/dialog_export_ebu3264.cpp:137 +#: ../src/dialog_export_ebu3264.cpp:145 msgid "Open subtitles" msgstr "" -#: ../src/dialog_export_ebu3264.cpp:138 +#: ../src/dialog_export_ebu3264.cpp:146 msgid "Level-1 teletext" msgstr "" -#: ../src/dialog_export_ebu3264.cpp:139 +#: ../src/dialog_export_ebu3264.cpp:147 msgid "Level-2 teletext" msgstr "" -#: ../src/dialog_export_ebu3264.cpp:145 +#: ../src/dialog_export_ebu3264.cpp:153 msgid "Max. line length:" msgstr "" -#: ../src/dialog_export_ebu3264.cpp:149 -msgid "Time code offset:" -msgstr "" - -#: ../src/dialog_export_ebu3264.cpp:152 -msgid "Text formatting" -msgstr "" - #: ../src/dialog_export_ebu3264.cpp:157 -msgid "Time codes" -msgstr "" - -#: ../src/dialog_export_ebu3264.cpp:161 -msgid "Display standard" +msgid "Time code offset:" msgstr "" #: ../src/dialog_fonts_collector.cpp:101 @@ -3362,7 +3458,7 @@ msgstr "" msgid "Symlink fonts to folder" msgstr "" -#: ../src/dialog_fonts_collector.cpp:243 ../src/dialog_selection.cpp:150 +#: ../src/dialog_fonts_collector.cpp:243 ../src/dialog_selection.cpp:153 msgid "Action" msgstr "" @@ -3370,59 +3466,53 @@ msgstr "" msgid "Destination" msgstr "" -#: ../src/dialog_fonts_collector.cpp:253 +#: ../src/dialog_fonts_collector.cpp:254 msgid "&Browse..." msgstr "" -#: ../src/dialog_fonts_collector.cpp:262 +#: ../src/dialog_fonts_collector.cpp:263 msgid "Log" msgstr "" -#: ../src/dialog_fonts_collector.cpp:275 +#: ../src/dialog_fonts_collector.cpp:277 msgid "&Start!" msgstr "" -#: ../src/dialog_fonts_collector.cpp:310 ../src/dialog_fonts_collector.cpp:315 -#: ../src/dialog_fonts_collector.cpp:320 ../src/dialog_kara_timing_copy.cpp:489 -#: ../src/dialog_kara_timing_copy.cpp:491 -#: ../src/dialog_kara_timing_copy.cpp:541 ../src/dialog_spellchecker.cpp:143 -#: ../src/dialog_spellchecker.cpp:149 ../src/dialog_style_manager.cpp:682 -#: ../src/dialog_style_manager.cpp:688 ../src/dialog_style_manager.cpp:691 -#: ../src/preferences.cpp:272 ../src/preferences.cpp:464 -msgid "Error" -msgstr "" - -#: ../src/dialog_fonts_collector.cpp:310 +#: ../src/dialog_fonts_collector.cpp:312 msgid "Invalid destination." msgstr "" -#: ../src/dialog_fonts_collector.cpp:315 +#: ../src/dialog_fonts_collector.cpp:317 msgid "Could not create destination folder." msgstr "" -#: ../src/dialog_fonts_collector.cpp:320 +#: ../src/dialog_fonts_collector.cpp:322 msgid "Invalid path for .zip file." msgstr "" -#: ../src/dialog_fonts_collector.cpp:343 +#: ../src/dialog_fonts_collector.cpp:345 msgid "Select archive file name" msgstr "" -#: ../src/dialog_fonts_collector.cpp:350 +#: ../src/dialog_fonts_collector.cpp:348 +msgid "Zip Archives" +msgstr "" + +#: ../src/dialog_fonts_collector.cpp:352 msgid "Select folder to save fonts on" msgstr "" -#: ../src/dialog_fonts_collector.cpp:369 +#: ../src/dialog_fonts_collector.cpp:371 msgid "N/A" msgstr "" -#: ../src/dialog_fonts_collector.cpp:377 +#: ../src/dialog_fonts_collector.cpp:379 msgid "" "Choose the folder where the fonts will be collected to. It will be created " "if it doesn't exist." msgstr "" -#: ../src/dialog_fonts_collector.cpp:384 +#: ../src/dialog_fonts_collector.cpp:386 msgid "" "Enter the name of the destination zip file to collect the fonts to. If a " "folder is entered, a default name will be used." @@ -3436,40 +3526,40 @@ msgstr "" msgid "Time: " msgstr "" -#: ../src/dialog_kara_timing_copy.cpp:58 +#: ../src/dialog_kara_timing_copy.cpp:59 msgid "Source: " msgstr "" -#: ../src/dialog_kara_timing_copy.cpp:59 +#: ../src/dialog_kara_timing_copy.cpp:60 msgid "Dest: " msgstr "" -#: ../src/dialog_kara_timing_copy.cpp:385 -msgid "Kanji timing" +#: ../src/dialog_kara_timing_copy.cpp:386 +msgid "Kanji timer" msgstr "" -#: ../src/dialog_kara_timing_copy.cpp:390 ../src/dialog_paste_over.cpp:73 -#: ../src/grid_column.cpp:362 ../src/grid_column.cpp:363 +#: ../src/dialog_kara_timing_copy.cpp:391 ../src/dialog_paste_over.cpp:75 +#: ../src/grid_column.cpp:364 ../src/grid_column.cpp:365 msgid "Text" msgstr "" -#: ../src/dialog_kara_timing_copy.cpp:391 +#: ../src/dialog_kara_timing_copy.cpp:392 msgid "Styles" msgstr "" -#: ../src/dialog_kara_timing_copy.cpp:393 +#: ../src/dialog_kara_timing_copy.cpp:394 msgid "Shortcut Keys" msgstr "" -#: ../src/dialog_kara_timing_copy.cpp:394 +#: ../src/dialog_kara_timing_copy.cpp:395 msgid "Commands" msgstr "" -#: ../src/dialog_kara_timing_copy.cpp:402 -msgid "Attempt to &interpolate kanji." +#: ../src/dialog_kara_timing_copy.cpp:408 +msgid "Attempt to &interpolate kanji" msgstr "" -#: ../src/dialog_kara_timing_copy.cpp:409 +#: ../src/dialog_kara_timing_copy.cpp:415 msgid "" "When the destination textbox has focus, use the following keys:\n" "\n" @@ -3481,101 +3571,101 @@ msgid "" "Backspace: Unlink last" msgstr "" -#: ../src/dialog_kara_timing_copy.cpp:412 +#: ../src/dialog_kara_timing_copy.cpp:418 msgid "S&tart!" msgstr "" -#: ../src/dialog_kara_timing_copy.cpp:413 +#: ../src/dialog_kara_timing_copy.cpp:419 msgid "&Link" msgstr "" -#: ../src/dialog_kara_timing_copy.cpp:414 +#: ../src/dialog_kara_timing_copy.cpp:420 msgid "&Unlink" msgstr "" -#: ../src/dialog_kara_timing_copy.cpp:415 +#: ../src/dialog_kara_timing_copy.cpp:421 msgid "Skip &Source Line" msgstr "" -#: ../src/dialog_kara_timing_copy.cpp:416 +#: ../src/dialog_kara_timing_copy.cpp:422 msgid "Skip &Dest Line" msgstr "" -#: ../src/dialog_kara_timing_copy.cpp:417 +#: ../src/dialog_kara_timing_copy.cpp:423 msgid "&Go Back a Line" msgstr "" -#: ../src/dialog_kara_timing_copy.cpp:418 +#: ../src/dialog_kara_timing_copy.cpp:424 msgid "&Accept Line" msgstr "" -#: ../src/dialog_kara_timing_copy.cpp:481 +#: ../src/dialog_kara_timing_copy.cpp:487 msgid "kanji timing" msgstr "" -#: ../src/dialog_kara_timing_copy.cpp:489 +#: ../src/dialog_kara_timing_copy.cpp:495 msgid "Select source and destination styles first." msgstr "" -#: ../src/dialog_kara_timing_copy.cpp:491 +#: ../src/dialog_kara_timing_copy.cpp:497 msgid "The source and destination styles must be different." msgstr "" -#: ../src/dialog_kara_timing_copy.cpp:541 +#: ../src/dialog_kara_timing_copy.cpp:547 msgid "Group all of the source text." msgstr "" -#: ../src/dialog_paste_over.cpp:55 +#: ../src/dialog_paste_over.cpp:56 msgid "Select Fields to Paste Over" msgstr "" -#: ../src/dialog_paste_over.cpp:58 +#: ../src/dialog_paste_over.cpp:59 msgid "Fields" msgstr "" -#: ../src/dialog_paste_over.cpp:59 +#: ../src/dialog_paste_over.cpp:61 msgid "Please select the fields that you want to paste over:" msgstr "" -#: ../src/dialog_paste_over.cpp:63 +#: ../src/dialog_paste_over.cpp:65 msgid "Comment" msgstr "" -#: ../src/dialog_paste_over.cpp:67 ../src/grid_column.cpp:200 -#: ../src/grid_column.cpp:201 +#: ../src/dialog_paste_over.cpp:69 ../src/grid_column.cpp:202 +#: ../src/grid_column.cpp:203 msgid "Style" msgstr "" -#: ../src/dialog_paste_over.cpp:68 ../src/grid_column.cpp:228 -#: ../src/grid_column.cpp:229 ../src/subs_edit_box.cpp:135 +#: ../src/dialog_paste_over.cpp:70 ../src/grid_column.cpp:230 +#: ../src/grid_column.cpp:231 ../src/subs_edit_box.cpp:135 msgid "Actor" msgstr "" -#: ../src/dialog_paste_over.cpp:69 +#: ../src/dialog_paste_over.cpp:71 msgid "Margin Left" msgstr "" -#: ../src/dialog_paste_over.cpp:70 +#: ../src/dialog_paste_over.cpp:72 msgid "Margin Right" msgstr "" -#: ../src/dialog_paste_over.cpp:71 +#: ../src/dialog_paste_over.cpp:73 msgid "Margin Vertical" msgstr "" -#: ../src/dialog_paste_over.cpp:88 ../src/dialog_timing_processor.cpp:161 +#: ../src/dialog_paste_over.cpp:90 ../src/dialog_timing_processor.cpp:162 msgid "&All" msgstr "" -#: ../src/dialog_paste_over.cpp:90 ../src/dialog_timing_processor.cpp:164 +#: ../src/dialog_paste_over.cpp:92 ../src/dialog_timing_processor.cpp:165 msgid "&None" msgstr "" -#: ../src/dialog_paste_over.cpp:92 +#: ../src/dialog_paste_over.cpp:94 msgid "&Times" msgstr "" -#: ../src/dialog_paste_over.cpp:94 +#: ../src/dialog_paste_over.cpp:96 msgid "T&ext" msgstr "" @@ -3587,134 +3677,134 @@ msgstr "" msgid "Cancelling..." msgstr "" -#: ../src/dialog_properties.cpp:89 +#: ../src/dialog_properties.cpp:91 msgid "Script Properties" msgstr "" -#: ../src/dialog_properties.cpp:103 +#: ../src/dialog_properties.cpp:105 msgid "Script" msgstr "" -#: ../src/dialog_properties.cpp:106 +#: ../src/dialog_properties.cpp:109 msgid "Title:" msgstr "" -#: ../src/dialog_properties.cpp:107 +#: ../src/dialog_properties.cpp:110 msgid "Original script:" msgstr "" -#: ../src/dialog_properties.cpp:108 +#: ../src/dialog_properties.cpp:111 msgid "Translation:" msgstr "" -#: ../src/dialog_properties.cpp:109 +#: ../src/dialog_properties.cpp:112 msgid "Editing:" msgstr "" -#: ../src/dialog_properties.cpp:110 +#: ../src/dialog_properties.cpp:113 msgid "Timing:" msgstr "" -#: ../src/dialog_properties.cpp:111 +#: ../src/dialog_properties.cpp:114 msgid "Synch point:" msgstr "" -#: ../src/dialog_properties.cpp:112 +#: ../src/dialog_properties.cpp:115 msgid "Updated by:" msgstr "" -#: ../src/dialog_properties.cpp:113 +#: ../src/dialog_properties.cpp:116 msgid "Update details:" msgstr "" -#: ../src/dialog_properties.cpp:122 ../src/dialog_resample.cpp:141 +#: ../src/dialog_properties.cpp:122 +msgid "Resolution" +msgstr "" + +#: ../src/dialog_properties.cpp:128 ../src/dialog_resample.cpp:150 #: ../src/export_framerate.cpp:70 msgid "From &video" msgstr "" -#: ../src/dialog_properties.cpp:138 ../src/dialog_resample.cpp:172 -#: ../src/dialog_resample.cpp:186 +#: ../src/dialog_properties.cpp:144 ../src/dialog_resample.cpp:180 +#: ../src/dialog_resample.cpp:193 msgid "YCbCr Matrix:" msgstr "" -#: ../src/dialog_properties.cpp:141 -msgid "Resolution" -msgstr "" - -#: ../src/dialog_properties.cpp:149 +#: ../src/dialog_properties.cpp:155 msgid "0: Smart wrapping, top line is wider" msgstr "" -#: ../src/dialog_properties.cpp:150 +#: ../src/dialog_properties.cpp:156 msgid "1: End-of-line word wrapping, only \\N breaks" msgstr "" -#: ../src/dialog_properties.cpp:151 +#: ../src/dialog_properties.cpp:157 msgid "2: No word wrapping, both \\n and \\N break" msgstr "" -#: ../src/dialog_properties.cpp:152 +#: ../src/dialog_properties.cpp:158 msgid "3: Smart wrapping, bottom line is wider" msgstr "" -#: ../src/dialog_properties.cpp:156 +#: ../src/dialog_properties.cpp:162 msgid "Wrap Style: " msgstr "" -#: ../src/dialog_properties.cpp:159 +#: ../src/dialog_properties.cpp:165 msgid "Scale Border and Shadow" msgstr "" -#: ../src/dialog_properties.cpp:160 +#: ../src/dialog_properties.cpp:166 msgid "" "Scale border and shadow together with script/render resolution. If this is " "unchecked, relative border and shadow size will depend on renderer." msgstr "" -#: ../src/dialog_properties.cpp:196 +#: ../src/dialog_properties.cpp:202 msgid "property changes" msgstr "" -#: ../src/dialog_resample.cpp:119 +#: ../src/dialog_resample.cpp:114 +msgid "Source Resolution" +msgstr "" + +#: ../src/dialog_resample.cpp:115 +msgid "Destination Resolution" +msgstr "" + +#: ../src/dialog_resample.cpp:116 +msgid "Margin offset" +msgstr "" + +#: ../src/dialog_resample.cpp:128 msgid "&Symmetrical" msgstr "" -#: ../src/dialog_resample.cpp:143 +#: ../src/dialog_resample.cpp:152 msgid "From s&cript" msgstr "" -#: ../src/dialog_resample.cpp:146 +#: ../src/dialog_resample.cpp:155 msgid "Add borders" msgstr "" -#: ../src/dialog_resample.cpp:146 +#: ../src/dialog_resample.cpp:155 msgid "Manual" msgstr "" -#: ../src/dialog_resample.cpp:146 +#: ../src/dialog_resample.cpp:155 msgid "Remove borders" msgstr "" -#: ../src/dialog_resample.cpp:146 +#: ../src/dialog_resample.cpp:155 msgid "Stretch" msgstr "" -#: ../src/dialog_resample.cpp:147 +#: ../src/dialog_resample.cpp:156 msgid "Aspect Ratio Handling" msgstr "" -#: ../src/dialog_resample.cpp:162 -msgid "Margin offset" -msgstr "" - -#: ../src/dialog_resample.cpp:175 -msgid "Source Resolution" -msgstr "" - -#: ../src/dialog_resample.cpp:189 -msgid "Destination Resolution" -msgstr "" - #: ../src/dialog_search_replace.cpp:47 msgid "Replace" msgstr "" @@ -3743,7 +3833,7 @@ msgstr "" msgid "S&kip Override Tags" msgstr "" -#: ../src/dialog_search_replace.cpp:87 ../src/dialog_selection.cpp:137 +#: ../src/dialog_search_replace.cpp:87 ../src/dialog_selection.cpp:139 msgid "&Text" msgstr "" @@ -3759,11 +3849,11 @@ msgstr "" msgid "A&ll rows" msgstr "" -#: ../src/dialog_search_replace.cpp:88 ../src/dialog_shift_times.cpp:163 +#: ../src/dialog_search_replace.cpp:88 ../src/dialog_shift_times.cpp:170 msgid "Selected &rows" msgstr "" -#: ../src/dialog_search_replace.cpp:90 ../src/dialog_selection.cpp:138 +#: ../src/dialog_search_replace.cpp:90 ../src/dialog_selection.cpp:140 msgid "In Field" msgstr "" @@ -3783,246 +3873,248 @@ msgstr "" msgid "Replace &all" msgstr "" -#: ../src/dialog_selection.cpp:106 +#: ../src/dialog_selection.cpp:107 msgid "Select" msgstr "" -#: ../src/dialog_selection.cpp:117 +#: ../src/dialog_selection.cpp:118 msgid "Match" msgstr "" -#: ../src/dialog_selection.cpp:121 +#: ../src/dialog_selection.cpp:123 msgid "&Matches" msgstr "" -#: ../src/dialog_selection.cpp:122 +#: ../src/dialog_selection.cpp:124 msgid "&Doesn't Match" msgstr "" -#: ../src/dialog_selection.cpp:123 +#: ../src/dialog_selection.cpp:125 msgid "Match c&ase" msgstr "" -#: ../src/dialog_selection.cpp:132 +#: ../src/dialog_selection.cpp:134 msgid "&Contains" msgstr "" -#: ../src/dialog_selection.cpp:132 +#: ../src/dialog_selection.cpp:134 msgid "&Exact match" msgstr "" -#: ../src/dialog_selection.cpp:132 +#: ../src/dialog_selection.cpp:134 msgid "&Regular Expression match" msgstr "" -#: ../src/dialog_selection.cpp:133 +#: ../src/dialog_selection.cpp:135 msgid "Mode" msgstr "" -#: ../src/dialog_selection.cpp:137 +#: ../src/dialog_selection.cpp:139 msgid "&Style" msgstr "" -#: ../src/dialog_selection.cpp:137 +#: ../src/dialog_selection.cpp:139 msgid "Act&or" msgstr "" -#: ../src/dialog_selection.cpp:137 +#: ../src/dialog_selection.cpp:139 msgid "E&ffect" msgstr "" -#: ../src/dialog_selection.cpp:142 +#: ../src/dialog_selection.cpp:144 msgid "Match dialogues/comments" msgstr "" -#: ../src/dialog_selection.cpp:143 +#: ../src/dialog_selection.cpp:146 msgid "D&ialogues" msgstr "" -#: ../src/dialog_selection.cpp:144 +#: ../src/dialog_selection.cpp:147 msgid "Comme&nts" msgstr "" -#: ../src/dialog_selection.cpp:149 +#: ../src/dialog_selection.cpp:152 msgid "&Add to selection" msgstr "" -#: ../src/dialog_selection.cpp:149 +#: ../src/dialog_selection.cpp:152 msgid "Intersect &with selection" msgstr "" -#: ../src/dialog_selection.cpp:149 +#: ../src/dialog_selection.cpp:152 msgid "S&ubtract from selection" msgstr "" -#: ../src/dialog_selection.cpp:149 +#: ../src/dialog_selection.cpp:152 msgid "Set se&lection" msgstr "" -#: ../src/dialog_selection.cpp:212 +#: ../src/dialog_selection.cpp:215 #, c-format msgid "Selection was set to one line" msgid_plural "Selection was set to %u lines" msgstr[0] "" msgstr[1] "" -#: ../src/dialog_selection.cpp:213 +#: ../src/dialog_selection.cpp:216 msgid "Selection was set to no lines" msgstr "" -#: ../src/dialog_selection.cpp:219 +#: ../src/dialog_selection.cpp:222 #, c-format msgid "One line was added to selection" msgid_plural "%u lines were added to selection" msgstr[0] "" msgstr[1] "" -#: ../src/dialog_selection.cpp:220 +#: ../src/dialog_selection.cpp:223 msgid "No lines were added to selection" msgstr "" -#: ../src/dialog_selection.cpp:231 +#: ../src/dialog_selection.cpp:234 #, c-format msgid "One line was removed from selection" msgid_plural "%u lines were removed from selection" msgstr[0] "" msgstr[1] "" -#: ../src/dialog_selection.cpp:232 +#: ../src/dialog_selection.cpp:235 msgid "No lines were removed from selection" msgstr "" -#: ../src/dialog_selection.cpp:237 +#: ../src/dialog_selection.cpp:240 msgid "Selection" msgstr "" -#: ../src/dialog_shift_times.cpp:91 +#: ../src/dialog_shift_times.cpp:92 msgid "unsaved" msgstr "" -#: ../src/dialog_shift_times.cpp:95 +#: ../src/dialog_shift_times.cpp:96 #, c-format -msgid "%s frames" -msgstr "" +msgid "1 frame" +msgid_plural "%s frames" +msgstr[0] "" +msgstr[1] "" -#: ../src/dialog_shift_times.cpp:97 +#: ../src/dialog_shift_times.cpp:98 msgid "backward" msgstr "" -#: ../src/dialog_shift_times.cpp:97 +#: ../src/dialog_shift_times.cpp:98 msgid "forward" msgstr "" -#: ../src/dialog_shift_times.cpp:101 +#: ../src/dialog_shift_times.cpp:102 msgid "s+e" msgstr "" -#: ../src/dialog_shift_times.cpp:102 +#: ../src/dialog_shift_times.cpp:103 msgid "s" msgstr "" -#: ../src/dialog_shift_times.cpp:103 +#: ../src/dialog_shift_times.cpp:104 msgid "e" msgstr "" -#: ../src/dialog_shift_times.cpp:110 +#: ../src/dialog_shift_times.cpp:111 msgid "all" msgstr "" -#: ../src/dialog_shift_times.cpp:113 +#: ../src/dialog_shift_times.cpp:114 #, c-format msgid "from %d onward" msgstr "" -#: ../src/dialog_shift_times.cpp:116 +#: ../src/dialog_shift_times.cpp:117 msgid "sel " msgstr "" -#: ../src/dialog_shift_times.cpp:143 +#: ../src/dialog_shift_times.cpp:144 +msgid "Shift by" +msgstr "" + +#: ../src/dialog_shift_times.cpp:145 +msgid "Load from history" +msgstr "" + +#: ../src/dialog_shift_times.cpp:150 msgid "&Time: " msgstr "" -#: ../src/dialog_shift_times.cpp:144 +#: ../src/dialog_shift_times.cpp:151 msgid "Shift by time" msgstr "" -#: ../src/dialog_shift_times.cpp:147 +#: ../src/dialog_shift_times.cpp:154 msgid "&Frames: " msgstr "" -#: ../src/dialog_shift_times.cpp:148 +#: ../src/dialog_shift_times.cpp:155 msgid "Shift by frames" msgstr "" -#: ../src/dialog_shift_times.cpp:152 +#: ../src/dialog_shift_times.cpp:159 msgid "Enter time in h:mm:ss.cs notation" msgstr "" -#: ../src/dialog_shift_times.cpp:155 +#: ../src/dialog_shift_times.cpp:162 msgid "Enter number of frames to shift by" msgstr "" -#: ../src/dialog_shift_times.cpp:157 +#: ../src/dialog_shift_times.cpp:164 msgid "For&ward" msgstr "" -#: ../src/dialog_shift_times.cpp:158 +#: ../src/dialog_shift_times.cpp:165 msgid "" "Shifts subs forward, making them appear later. Use if they are appearing too " "soon." msgstr "" -#: ../src/dialog_shift_times.cpp:160 +#: ../src/dialog_shift_times.cpp:167 msgid "&Backward" msgstr "" -#: ../src/dialog_shift_times.cpp:161 +#: ../src/dialog_shift_times.cpp:168 msgid "" "Shifts subs backward, making them appear earlier. Use if they are appearing " "too late." msgstr "" -#: ../src/dialog_shift_times.cpp:163 +#: ../src/dialog_shift_times.cpp:170 msgid "&All rows" msgstr "" -#: ../src/dialog_shift_times.cpp:163 +#: ../src/dialog_shift_times.cpp:170 msgid "Selection &onward" msgstr "" -#: ../src/dialog_shift_times.cpp:164 +#: ../src/dialog_shift_times.cpp:171 msgid "Affect" msgstr "" -#: ../src/dialog_shift_times.cpp:166 +#: ../src/dialog_shift_times.cpp:173 msgid "&End times only" msgstr "" -#: ../src/dialog_shift_times.cpp:166 +#: ../src/dialog_shift_times.cpp:173 msgid "&Start times only" msgstr "" -#: ../src/dialog_shift_times.cpp:166 +#: ../src/dialog_shift_times.cpp:173 msgid "Start a&nd End times" msgstr "" -#: ../src/dialog_shift_times.cpp:167 +#: ../src/dialog_shift_times.cpp:174 msgid "Times" msgstr "" -#: ../src/dialog_shift_times.cpp:171 +#: ../src/dialog_shift_times.cpp:178 msgid "&Clear" msgstr "" -#: ../src/dialog_shift_times.cpp:203 -msgid "Shift by" -msgstr "" - -#: ../src/dialog_shift_times.cpp:212 -msgid "Load from history" -msgstr "" - -#: ../src/dialog_shift_times.cpp:410 +#: ../src/dialog_shift_times.cpp:415 msgid "shifting" msgstr "" @@ -4078,334 +4170,334 @@ msgstr "" msgid "spell check replace" msgstr "" -#: ../src/dialog_style_editor.cpp:127 +#: ../src/dialog_style_editor.cpp:128 msgid "Style Editor" msgstr "" -#: ../src/dialog_style_editor.cpp:172 +#: ../src/dialog_style_editor.cpp:173 msgid "Border boxes" msgstr "" -#: ../src/dialog_style_editor.cpp:172 ../src/dialog_style_editor.cpp:183 -#: ../src/dialog_style_editor.cpp:286 +#: ../src/dialog_style_editor.cpp:173 ../src/dialog_style_editor.cpp:184 +#: ../src/dialog_style_editor.cpp:295 msgid "Outline" msgstr "" -#: ../src/dialog_style_editor.cpp:172 +#: ../src/dialog_style_editor.cpp:173 msgid "Shadow box (libass only)" msgstr "" -#: ../src/dialog_style_editor.cpp:180 +#: ../src/dialog_style_editor.cpp:181 msgid "Font" msgstr "" -#: ../src/dialog_style_editor.cpp:181 ../src/preferences.cpp:243 +#: ../src/dialog_style_editor.cpp:182 ../src/preferences.cpp:246 msgid "Colors" msgstr "" -#: ../src/dialog_style_editor.cpp:182 +#: ../src/dialog_style_editor.cpp:183 msgid "Margins" msgstr "" -#: ../src/dialog_style_editor.cpp:184 +#: ../src/dialog_style_editor.cpp:185 msgid "Miscellaneous" msgstr "" -#: ../src/dialog_style_editor.cpp:185 +#: ../src/dialog_style_editor.cpp:186 msgid "Preview" msgstr "" -#: ../src/dialog_style_editor.cpp:191 +#: ../src/dialog_style_editor.cpp:200 msgid "&Bold" msgstr "" -#: ../src/dialog_style_editor.cpp:192 +#: ../src/dialog_style_editor.cpp:201 msgid "&Italic" msgstr "" -#: ../src/dialog_style_editor.cpp:193 +#: ../src/dialog_style_editor.cpp:202 msgid "&Underline" msgstr "" -#: ../src/dialog_style_editor.cpp:194 +#: ../src/dialog_style_editor.cpp:203 msgid "&Strikeout" msgstr "" -#: ../src/dialog_style_editor.cpp:206 +#: ../src/dialog_style_editor.cpp:215 msgid "Alignment" msgstr "" -#: ../src/dialog_style_editor.cpp:217 +#: ../src/dialog_style_editor.cpp:226 msgid "Style name" msgstr "" -#: ../src/dialog_style_editor.cpp:218 +#: ../src/dialog_style_editor.cpp:227 msgid "Font face" msgstr "" -#: ../src/dialog_style_editor.cpp:219 +#: ../src/dialog_style_editor.cpp:228 msgid "Font size" msgstr "" -#: ../src/dialog_style_editor.cpp:220 +#: ../src/dialog_style_editor.cpp:229 msgid "Choose primary color" msgstr "" -#: ../src/dialog_style_editor.cpp:221 +#: ../src/dialog_style_editor.cpp:230 msgid "Choose secondary color" msgstr "" -#: ../src/dialog_style_editor.cpp:222 +#: ../src/dialog_style_editor.cpp:231 msgid "Choose outline color" msgstr "" -#: ../src/dialog_style_editor.cpp:223 +#: ../src/dialog_style_editor.cpp:232 msgid "Choose shadow color" msgstr "" -#: ../src/dialog_style_editor.cpp:224 +#: ../src/dialog_style_editor.cpp:233 msgid "Distance from left edge, in pixels" msgstr "" -#: ../src/dialog_style_editor.cpp:225 +#: ../src/dialog_style_editor.cpp:234 msgid "Distance from right edge, in pixels" msgstr "" -#: ../src/dialog_style_editor.cpp:226 +#: ../src/dialog_style_editor.cpp:235 msgid "Distance from top/bottom edge, in pixels" msgstr "" -#: ../src/dialog_style_editor.cpp:227 +#: ../src/dialog_style_editor.cpp:236 msgid "Whether to draw a normal outline or opaque boxes around the text" msgstr "" -#: ../src/dialog_style_editor.cpp:228 +#: ../src/dialog_style_editor.cpp:237 msgid "Outline width, in pixels" msgstr "" -#: ../src/dialog_style_editor.cpp:229 +#: ../src/dialog_style_editor.cpp:238 msgid "Shadow distance, in pixels" msgstr "" -#: ../src/dialog_style_editor.cpp:230 +#: ../src/dialog_style_editor.cpp:239 msgid "Scale X, in percentage" msgstr "" -#: ../src/dialog_style_editor.cpp:231 +#: ../src/dialog_style_editor.cpp:240 msgid "Scale Y, in percentage" msgstr "" -#: ../src/dialog_style_editor.cpp:232 +#: ../src/dialog_style_editor.cpp:241 msgid "Angle to rotate in Z axis, in degrees" msgstr "" -#: ../src/dialog_style_editor.cpp:233 +#: ../src/dialog_style_editor.cpp:242 msgid "" "Encoding, only useful in unicode if the font doesn't have the proper unicode " "mapping" msgstr "" -#: ../src/dialog_style_editor.cpp:234 +#: ../src/dialog_style_editor.cpp:243 msgid "Character spacing, in pixels" msgstr "" -#: ../src/dialog_style_editor.cpp:235 +#: ../src/dialog_style_editor.cpp:244 msgid "Alignment in screen, in numpad style" msgstr "" -#: ../src/dialog_style_editor.cpp:286 +#: ../src/dialog_style_editor.cpp:295 msgid "Primary" msgstr "" -#: ../src/dialog_style_editor.cpp:286 +#: ../src/dialog_style_editor.cpp:295 msgid "Secondary" msgstr "" -#: ../src/dialog_style_editor.cpp:286 +#: ../src/dialog_style_editor.cpp:295 msgid "Shadow" msgstr "" -#: ../src/dialog_style_editor.cpp:297 ../src/grid_column.cpp:263 +#: ../src/dialog_style_editor.cpp:306 ../src/grid_column.cpp:265 msgid "Left" msgstr "" -#: ../src/dialog_style_editor.cpp:297 ../src/grid_column.cpp:269 +#: ../src/dialog_style_editor.cpp:306 ../src/grid_column.cpp:271 msgid "Right" msgstr "" -#: ../src/dialog_style_editor.cpp:297 ../src/grid_column.cpp:275 +#: ../src/dialog_style_editor.cpp:306 ../src/grid_column.cpp:277 msgid "Vert" msgstr "" -#: ../src/dialog_style_editor.cpp:315 +#: ../src/dialog_style_editor.cpp:324 msgid "Outline:" msgstr "" -#: ../src/dialog_style_editor.cpp:316 +#: ../src/dialog_style_editor.cpp:325 msgid "Shadow:" msgstr "" -#: ../src/dialog_style_editor.cpp:317 +#: ../src/dialog_style_editor.cpp:326 msgid "Border style:" msgstr "" -#: ../src/dialog_style_editor.cpp:321 +#: ../src/dialog_style_editor.cpp:330 msgid "Scale X%:" msgstr "" -#: ../src/dialog_style_editor.cpp:322 +#: ../src/dialog_style_editor.cpp:331 msgid "Scale Y%:" msgstr "" -#: ../src/dialog_style_editor.cpp:323 +#: ../src/dialog_style_editor.cpp:332 msgid "Rotation:" msgstr "" -#: ../src/dialog_style_editor.cpp:324 +#: ../src/dialog_style_editor.cpp:333 msgid "Spacing:" msgstr "" -#: ../src/dialog_style_editor.cpp:327 +#: ../src/dialog_style_editor.cpp:336 msgid "Encoding:" msgstr "" -#: ../src/dialog_style_editor.cpp:337 +#: ../src/dialog_style_editor.cpp:346 msgid "Preview of current style" msgstr "" -#: ../src/dialog_style_editor.cpp:340 +#: ../src/dialog_style_editor.cpp:349 msgid "Text to be used for the preview" msgstr "" -#: ../src/dialog_style_editor.cpp:341 +#: ../src/dialog_style_editor.cpp:350 msgid "Color of preview background" msgstr "" -#: ../src/dialog_style_editor.cpp:422 +#: ../src/dialog_style_editor.cpp:431 msgid "Style name conflict" msgstr "" -#: ../src/dialog_style_editor.cpp:422 +#: ../src/dialog_style_editor.cpp:431 msgid "There is already a style with this name. Please choose another name." msgstr "" -#: ../src/dialog_style_editor.cpp:434 +#: ../src/dialog_style_editor.cpp:443 msgid "" "Do you want to change all instances of this style in the script to this new " "name?" msgstr "" -#: ../src/dialog_style_editor.cpp:435 +#: ../src/dialog_style_editor.cpp:444 msgid "Update script?" msgstr "" -#: ../src/dialog_style_editor.cpp:462 ../src/subs_edit_box.cpp:604 +#: ../src/dialog_style_editor.cpp:471 ../src/subs_edit_box.cpp:604 msgid "style change" msgstr "" -#: ../src/dialog_style_manager.cpp:187 +#: ../src/dialog_style_manager.cpp:188 msgid "Move style up" msgstr "" -#: ../src/dialog_style_manager.cpp:188 +#: ../src/dialog_style_manager.cpp:189 msgid "Move style down" msgstr "" -#: ../src/dialog_style_manager.cpp:189 +#: ../src/dialog_style_manager.cpp:190 msgid "Move style to top" msgstr "" -#: ../src/dialog_style_manager.cpp:190 +#: ../src/dialog_style_manager.cpp:191 msgid "Move style to bottom" msgstr "" -#: ../src/dialog_style_manager.cpp:191 +#: ../src/dialog_style_manager.cpp:192 msgid "Sort styles alphabetically" msgstr "" -#: ../src/dialog_style_manager.cpp:201 ../src/preferences.cpp:611 +#: ../src/dialog_style_manager.cpp:202 ../src/preferences.cpp:613 msgid "&New" msgstr "" -#: ../src/dialog_style_manager.cpp:202 ../src/preferences.cpp:612 +#: ../src/dialog_style_manager.cpp:203 ../src/preferences.cpp:614 msgid "&Edit" msgstr "" -#: ../src/dialog_style_manager.cpp:203 ../src/subs_edit_ctrl.cpp:389 +#: ../src/dialog_style_manager.cpp:204 ../src/subs_edit_ctrl.cpp:389 #: ../src/timeedit_ctrl.cpp:209 msgid "&Copy" msgstr "" -#: ../src/dialog_style_manager.cpp:217 +#: ../src/dialog_style_manager.cpp:218 #, c-format msgid "%s - Copy" msgstr "" -#: ../src/dialog_style_manager.cpp:219 +#: ../src/dialog_style_manager.cpp:220 #, c-format msgid "%s - Copy (%d)" msgstr "" -#: ../src/dialog_style_manager.cpp:242 +#: ../src/dialog_style_manager.cpp:243 msgid "Could not parse style" msgstr "" -#: ../src/dialog_style_manager.cpp:247 +#: ../src/dialog_style_manager.cpp:248 #, c-format msgid "Are you sure you want to delete this style?" msgid_plural "Are you sure you want to delete these %d styles?" msgstr[0] "" msgstr[1] "" -#: ../src/dialog_style_manager.cpp:272 +#: ../src/dialog_style_manager.cpp:273 msgid "Catalog of available storages" msgstr "" #: ../src/dialog_style_manager.cpp:274 -msgid "New" +msgid "Storage" msgstr "" #: ../src/dialog_style_manager.cpp:275 -msgid "Delete" +msgid "Current script" msgstr "" -#: ../src/dialog_style_manager.cpp:281 -msgid "Copy to ¤t script ->" +#: ../src/dialog_style_manager.cpp:283 +msgid "New" msgstr "" -#: ../src/dialog_style_manager.cpp:288 -msgid "Storage" +#: ../src/dialog_style_manager.cpp:284 +msgid "Delete" msgstr "" -#: ../src/dialog_style_manager.cpp:294 -msgid "&Import from script..." +#: ../src/dialog_style_manager.cpp:290 +msgid "Copy to ¤t script ->" msgstr "" -#: ../src/dialog_style_manager.cpp:295 -msgid "<- Copy to &storage" +#: ../src/dialog_style_manager.cpp:302 +msgid "&Import from script..." msgstr "" -#: ../src/dialog_style_manager.cpp:306 -msgid "Current script" +#: ../src/dialog_style_manager.cpp:303 +msgid "<- Copy to &storage" msgstr "" -#: ../src/dialog_style_manager.cpp:453 +#: ../src/dialog_style_manager.cpp:460 msgid "New catalog entry" msgstr "" -#: ../src/dialog_style_manager.cpp:453 +#: ../src/dialog_style_manager.cpp:460 msgid "New storage name:" msgstr "" -#: ../src/dialog_style_manager.cpp:468 +#: ../src/dialog_style_manager.cpp:475 msgid "A catalog with that name already exists." msgstr "" -#: ../src/dialog_style_manager.cpp:468 +#: ../src/dialog_style_manager.cpp:475 msgid "Catalog name conflict" msgstr "" -#: ../src/dialog_style_manager.cpp:475 +#: ../src/dialog_style_manager.cpp:482 #, c-format msgid "" "The specified catalog name contains one or more illegal characters. They " @@ -4413,152 +4505,152 @@ msgid "" "The catalog has been renamed to \"%s\"." msgstr "" -#: ../src/dialog_style_manager.cpp:476 +#: ../src/dialog_style_manager.cpp:483 msgid "Invalid characters" msgstr "" -#: ../src/dialog_style_manager.cpp:489 +#: ../src/dialog_style_manager.cpp:496 #, c-format msgid "Are you sure you want to delete the storage \"%s\" from the catalog?" msgstr "" -#: ../src/dialog_style_manager.cpp:490 +#: ../src/dialog_style_manager.cpp:497 msgid "Confirm delete" msgstr "" -#: ../src/dialog_style_manager.cpp:508 ../src/dialog_style_manager.cpp:535 -#: ../src/dialog_style_manager.cpp:714 +#: ../src/dialog_style_manager.cpp:515 ../src/dialog_style_manager.cpp:542 +#: ../src/dialog_style_manager.cpp:721 msgid "Style name collision" msgstr "" -#: ../src/dialog_style_manager.cpp:508 +#: ../src/dialog_style_manager.cpp:515 #, c-format msgid "" "There is already a style with the name \"%s\" in the current storage. " "Overwrite?" msgstr "" -#: ../src/dialog_style_manager.cpp:535 ../src/dialog_style_manager.cpp:713 +#: ../src/dialog_style_manager.cpp:542 ../src/dialog_style_manager.cpp:720 #, c-format msgid "" "There is already a style with the name \"%s\" in the current script. " "Overwrite?" msgstr "" -#: ../src/dialog_style_manager.cpp:546 +#: ../src/dialog_style_manager.cpp:553 msgid "style copy" msgstr "" -#: ../src/dialog_style_manager.cpp:575 +#: ../src/dialog_style_manager.cpp:582 msgid "style paste" msgstr "" -#: ../src/dialog_style_manager.cpp:619 +#: ../src/dialog_style_manager.cpp:626 msgid "Confirm delete from storage" msgstr "" -#: ../src/dialog_style_manager.cpp:658 +#: ../src/dialog_style_manager.cpp:665 msgid "Confirm delete from current" msgstr "" -#: ../src/dialog_style_manager.cpp:662 +#: ../src/dialog_style_manager.cpp:669 msgid "style delete" msgstr "" -#: ../src/dialog_style_manager.cpp:682 +#: ../src/dialog_style_manager.cpp:689 msgid "Unsupported subtitle format" msgstr "" -#: ../src/dialog_style_manager.cpp:698 +#: ../src/dialog_style_manager.cpp:705 msgid "Error Importing Styles" msgstr "" -#: ../src/dialog_style_manager.cpp:698 +#: ../src/dialog_style_manager.cpp:705 msgid "The selected file has no available styles." msgstr "" -#: ../src/dialog_style_manager.cpp:704 +#: ../src/dialog_style_manager.cpp:711 msgid "Choose styles to import:" msgstr "" -#: ../src/dialog_style_manager.cpp:704 +#: ../src/dialog_style_manager.cpp:711 msgid "Import Styles" msgstr "" -#: ../src/dialog_style_manager.cpp:730 +#: ../src/dialog_style_manager.cpp:737 msgid "style import" msgstr "" -#: ../src/dialog_style_manager.cpp:839 +#: ../src/dialog_style_manager.cpp:846 msgid "Are you sure? This cannot be undone!" msgstr "" -#: ../src/dialog_style_manager.cpp:839 +#: ../src/dialog_style_manager.cpp:846 msgid "Sort styles" msgstr "" -#: ../src/dialog_style_manager.cpp:880 +#: ../src/dialog_style_manager.cpp:887 msgid "style move" msgstr "" -#: ../src/dialog_styling_assistant.cpp:63 #: ../src/dialog_styling_assistant.cpp:64 +#: ../src/dialog_styling_assistant.cpp:65 msgid "Current line" msgstr "" -#: ../src/dialog_styling_assistant.cpp:70 +#: ../src/dialog_styling_assistant.cpp:71 msgid "Styles available" msgstr "" -#: ../src/dialog_styling_assistant.cpp:78 +#: ../src/dialog_styling_assistant.cpp:79 msgid "Set style" msgstr "" -#: ../src/dialog_styling_assistant.cpp:85 ../src/dialog_translation.cpp:108 +#: ../src/dialog_styling_assistant.cpp:86 ../src/dialog_translation.cpp:110 msgid "Keys" msgstr "" -#: ../src/dialog_styling_assistant.cpp:90 ../src/dialog_translation.cpp:113 +#: ../src/dialog_styling_assistant.cpp:92 ../src/dialog_translation.cpp:116 msgid "Previous line" msgstr "" -#: ../src/dialog_styling_assistant.cpp:91 ../src/dialog_translation.cpp:114 +#: ../src/dialog_styling_assistant.cpp:93 ../src/dialog_translation.cpp:117 msgid "Next line" msgstr "" -#: ../src/dialog_styling_assistant.cpp:92 ../src/dialog_translation.cpp:116 +#: ../src/dialog_styling_assistant.cpp:94 ../src/dialog_translation.cpp:119 msgid "Play video" msgstr "" -#: ../src/dialog_styling_assistant.cpp:93 ../src/dialog_translation.cpp:117 +#: ../src/dialog_styling_assistant.cpp:95 ../src/dialog_translation.cpp:120 msgid "Play audio" msgstr "" -#: ../src/dialog_styling_assistant.cpp:94 +#: ../src/dialog_styling_assistant.cpp:96 msgid "Click on list" msgstr "" -#: ../src/dialog_styling_assistant.cpp:95 +#: ../src/dialog_styling_assistant.cpp:97 msgid "Select style" msgstr "" -#: ../src/dialog_styling_assistant.cpp:99 +#: ../src/dialog_styling_assistant.cpp:101 msgid "&Seek video to line start time" msgstr "" -#: ../src/dialog_styling_assistant.cpp:108 ../src/dialog_translation.cpp:129 +#: ../src/dialog_styling_assistant.cpp:110 ../src/dialog_translation.cpp:132 msgid "Actions" msgstr "" -#: ../src/dialog_styling_assistant.cpp:111 ../src/dialog_translation.cpp:131 +#: ../src/dialog_styling_assistant.cpp:113 ../src/dialog_translation.cpp:134 msgid "Play &Audio" msgstr "" -#: ../src/dialog_styling_assistant.cpp:115 ../src/dialog_translation.cpp:136 +#: ../src/dialog_styling_assistant.cpp:117 ../src/dialog_translation.cpp:139 msgid "Play &Video" msgstr "" -#: ../src/dialog_styling_assistant.cpp:173 +#: ../src/dialog_styling_assistant.cpp:175 msgid "styling assistant" msgstr "" @@ -4582,196 +4674,196 @@ msgstr "" msgid "Apply to styles" msgstr "" -#: ../src/dialog_timing_processor.cpp:159 +#: ../src/dialog_timing_processor.cpp:160 msgid "Select styles to process. Unchecked ones will be ignored." msgstr "" -#: ../src/dialog_timing_processor.cpp:162 +#: ../src/dialog_timing_processor.cpp:163 msgid "Select all styles" msgstr "" -#: ../src/dialog_timing_processor.cpp:165 +#: ../src/dialog_timing_processor.cpp:166 msgid "Deselect all styles" msgstr "" -#: ../src/dialog_timing_processor.cpp:169 +#: ../src/dialog_timing_processor.cpp:170 msgid "Affect &selection only" msgstr "" -#: ../src/dialog_timing_processor.cpp:174 +#: ../src/dialog_timing_processor.cpp:175 msgid "Lead-in/Lead-out" msgstr "" -#: ../src/dialog_timing_processor.cpp:176 +#: ../src/dialog_timing_processor.cpp:177 msgid "Add lead &in:" msgstr "" -#: ../src/dialog_timing_processor.cpp:178 +#: ../src/dialog_timing_processor.cpp:179 msgid "Enable adding of lead-ins to lines" msgstr "" -#: ../src/dialog_timing_processor.cpp:179 +#: ../src/dialog_timing_processor.cpp:180 msgid "Lead in to be added, in milliseconds" msgstr "" -#: ../src/dialog_timing_processor.cpp:181 +#: ../src/dialog_timing_processor.cpp:182 msgid "Add lead &out:" msgstr "" -#: ../src/dialog_timing_processor.cpp:183 +#: ../src/dialog_timing_processor.cpp:184 msgid "Enable adding of lead-outs to lines" msgstr "" -#: ../src/dialog_timing_processor.cpp:184 +#: ../src/dialog_timing_processor.cpp:185 msgid "Lead out to be added, in milliseconds" msgstr "" -#: ../src/dialog_timing_processor.cpp:189 +#: ../src/dialog_timing_processor.cpp:190 msgid "Make adjacent subtitles continuous" msgstr "" -#: ../src/dialog_timing_processor.cpp:190 +#: ../src/dialog_timing_processor.cpp:192 msgid "&Enable" msgstr "" -#: ../src/dialog_timing_processor.cpp:192 +#: ../src/dialog_timing_processor.cpp:194 msgid "" "Enable snapping of subtitles together if they are within a certain distance " "of each other" msgstr "" -#: ../src/dialog_timing_processor.cpp:195 +#: ../src/dialog_timing_processor.cpp:197 msgid "Max gap:" msgstr "" -#: ../src/dialog_timing_processor.cpp:196 +#: ../src/dialog_timing_processor.cpp:198 msgid "" "Maximum difference between start and end time for two subtitles to be made " "continuous, in milliseconds" msgstr "" -#: ../src/dialog_timing_processor.cpp:197 +#: ../src/dialog_timing_processor.cpp:199 msgid "Max overlap:" msgstr "" -#: ../src/dialog_timing_processor.cpp:198 +#: ../src/dialog_timing_processor.cpp:200 msgid "" "Maximum overlap between the end and start time for two subtitles to be made " "continuous, in milliseconds" msgstr "" -#: ../src/dialog_timing_processor.cpp:201 +#: ../src/dialog_timing_processor.cpp:203 msgid "" "Sets how to set the adjoining of lines. If set totally to left, it will " "extend or shrink start time of the second line; if totally to right, it will " "extend or shrink the end time of the first line." msgstr "" -#: ../src/dialog_timing_processor.cpp:204 +#: ../src/dialog_timing_processor.cpp:206 msgid "Bias: Start <- " msgstr "" -#: ../src/dialog_timing_processor.cpp:206 +#: ../src/dialog_timing_processor.cpp:208 msgid " -> End" msgstr "" -#: ../src/dialog_timing_processor.cpp:214 +#: ../src/dialog_timing_processor.cpp:216 msgid "Keyframe snapping" msgstr "" -#: ../src/dialog_timing_processor.cpp:217 +#: ../src/dialog_timing_processor.cpp:220 msgid "E&nable" msgstr "" -#: ../src/dialog_timing_processor.cpp:218 +#: ../src/dialog_timing_processor.cpp:221 msgid "" "Enable snapping of subtitles to nearest keyframe, if distance is within " "threshold" msgstr "" -#: ../src/dialog_timing_processor.cpp:229 +#: ../src/dialog_timing_processor.cpp:232 msgid "Starts before thres.:" msgstr "" -#: ../src/dialog_timing_processor.cpp:230 +#: ../src/dialog_timing_processor.cpp:233 msgid "" "Threshold for 'before start' distance, that is, how many milliseconds a " "subtitle must start before a keyframe to snap to it" msgstr "" -#: ../src/dialog_timing_processor.cpp:232 +#: ../src/dialog_timing_processor.cpp:235 msgid "Starts after thres.:" msgstr "" -#: ../src/dialog_timing_processor.cpp:233 +#: ../src/dialog_timing_processor.cpp:236 msgid "" "Threshold for 'after start' distance, that is, how many milliseconds a " "subtitle must start after a keyframe to snap to it" msgstr "" -#: ../src/dialog_timing_processor.cpp:237 +#: ../src/dialog_timing_processor.cpp:240 msgid "Ends before thres.:" msgstr "" -#: ../src/dialog_timing_processor.cpp:238 +#: ../src/dialog_timing_processor.cpp:241 msgid "" "Threshold for 'before end' distance, that is, how many milliseconds a " "subtitle must end before a keyframe to snap to it" msgstr "" -#: ../src/dialog_timing_processor.cpp:240 +#: ../src/dialog_timing_processor.cpp:243 msgid "Ends after thres.:" msgstr "" -#: ../src/dialog_timing_processor.cpp:241 +#: ../src/dialog_timing_processor.cpp:244 msgid "" "Threshold for 'after end' distance, that is, how many milliseconds a " "subtitle must end after a keyframe to snap to it" msgstr "" -#: ../src/dialog_timing_processor.cpp:349 +#: ../src/dialog_timing_processor.cpp:352 #, c-format msgid "One of the lines in the file (%i) has negative duration. Aborting." msgstr "" -#: ../src/dialog_timing_processor.cpp:350 +#: ../src/dialog_timing_processor.cpp:353 msgid "Invalid script" msgstr "" -#: ../src/dialog_timing_processor.cpp:445 +#: ../src/dialog_timing_processor.cpp:448 msgid "timing processor" msgstr "" -#: ../src/dialog_translation.cpp:77 +#: ../src/dialog_translation.cpp:78 msgid "Original" msgstr "" -#: ../src/dialog_translation.cpp:100 +#: ../src/dialog_translation.cpp:94 msgid "Translation" msgstr "" -#: ../src/dialog_translation.cpp:115 +#: ../src/dialog_translation.cpp:118 msgid "Insert original" msgstr "" -#: ../src/dialog_translation.cpp:118 +#: ../src/dialog_translation.cpp:121 msgid "Delete line" msgstr "" -#: ../src/dialog_translation.cpp:121 +#: ../src/dialog_translation.cpp:124 msgid "Enable &preview" msgstr "" -#: ../src/dialog_translation.cpp:178 ../src/dialog_translation.cpp:278 +#: ../src/dialog_translation.cpp:181 ../src/dialog_translation.cpp:281 msgid "No more lines to translate." msgstr "" -#: ../src/dialog_translation.cpp:186 ../src/dialog_translation.cpp:236 +#: ../src/dialog_translation.cpp:189 ../src/dialog_translation.cpp:239 #, c-format msgid "Current line: %d/%d" msgstr "" -#: ../src/dialog_translation.cpp:273 +#: ../src/dialog_translation.cpp:276 msgid "translation assistant" msgstr "" @@ -4822,42 +4914,42 @@ msgstr "" msgid "An unknown error occurred while checking for updates to Aegisub." msgstr "" -#: ../src/dialog_video_details.cpp:45 +#: ../src/dialog_video_details.cpp:46 msgid "Video Details" msgstr "" -#: ../src/dialog_video_details.cpp:59 +#: ../src/dialog_video_details.cpp:55 ../src/preferences.cpp:170 +#: ../src/preferences.cpp:447 +msgid "Video" +msgstr "" + +#: ../src/dialog_video_details.cpp:63 msgid "File name:" msgstr "" -#: ../src/dialog_video_details.cpp:60 +#: ../src/dialog_video_details.cpp:64 msgid "FPS:" msgstr "" -#: ../src/dialog_video_details.cpp:61 +#: ../src/dialog_video_details.cpp:65 msgid "Resolution:" msgstr "" -#: ../src/dialog_video_details.cpp:62 +#: ../src/dialog_video_details.cpp:66 #, c-format -msgid "1 frame" +msgid "%d frame (%s)" msgid_plural "%d frames (%s)" msgstr[0] "" msgstr[1] "" -#: ../src/dialog_video_details.cpp:62 +#: ../src/dialog_video_details.cpp:66 msgid "Length:" msgstr "" -#: ../src/dialog_video_details.cpp:64 +#: ../src/dialog_video_details.cpp:68 msgid "Decoder:" msgstr "" -#: ../src/dialog_video_details.cpp:66 ../src/preferences.cpp:167 -#: ../src/preferences.cpp:444 -msgid "Video" -msgstr "" - #: ../src/dialog_video_properties.cpp:44 msgid "Resolution mismatch" msgstr "" @@ -4894,7 +4986,7 @@ msgstr "" msgid "Resample script" msgstr "" -#: ../src/dialog_video_properties.cpp:167 +#: ../src/dialog_video_properties.cpp:168 msgid "change script resolution" msgstr "" @@ -5065,35 +5157,35 @@ msgstr "" msgid "Line Number" msgstr "" -#: ../src/grid_column.cpp:129 +#: ../src/grid_column.cpp:131 msgid "L" msgstr "" -#: ../src/grid_column.cpp:151 +#: ../src/grid_column.cpp:153 msgid "Start" msgstr "" -#: ../src/grid_column.cpp:169 +#: ../src/grid_column.cpp:171 msgid "End" msgstr "" -#: ../src/grid_column.cpp:264 +#: ../src/grid_column.cpp:266 msgid "Left Margin" msgstr "" -#: ../src/grid_column.cpp:270 +#: ../src/grid_column.cpp:272 msgid "Right Margin" msgstr "" -#: ../src/grid_column.cpp:276 +#: ../src/grid_column.cpp:278 msgid "Vertical Margin" msgstr "" -#: ../src/grid_column.cpp:294 +#: ../src/grid_column.cpp:296 msgid "CPS" msgstr "" -#: ../src/grid_column.cpp:295 +#: ../src/grid_column.cpp:297 msgid "Characters Per Second" msgstr "" @@ -5101,7 +5193,14 @@ msgstr "" msgid "Invalid command name for hotkey" msgstr "" -#: ../src/main.cpp:258 +#: ../src/main.cpp:195 +#, c-format +msgid "" +"Configuration file is invalid. Error reported:\n" +"%s" +msgstr "" + +#: ../src/main.cpp:259 #, c-format msgid "" "Oops, Aegisub has crashed!\n" @@ -5113,21 +5212,33 @@ msgid "" "Aegisub will now close." msgstr "" -#: ../src/main.cpp:285 +#: ../src/main.cpp:288 msgid "Check for updates?" msgstr "" -#: ../src/main.cpp:285 +#: ../src/main.cpp:288 msgid "" "Do you want Aegisub to check for updates whenever it starts? You can still " "do it manually via the Help menu." msgstr "" -#: ../src/main.cpp:402 ../src/main.cpp:405 +#: ../src/main.cpp:294 +msgid "Error saving config file" +msgstr "" + +#: ../src/main.cpp:310 ../src/main.cpp:314 ../src/main.cpp:319 +msgid "Fatal error while initializing" +msgstr "" + +#: ../src/main.cpp:319 +msgid "Unhandled exception" +msgstr "" + +#: ../src/main.cpp:407 ../src/main.cpp:410 msgid "Program error" msgstr "" -#: ../src/main.cpp:405 +#: ../src/main.cpp:410 #, c-format msgid "" "Aegisub has crashed while starting up!\n" @@ -5135,7 +5246,7 @@ msgid "" "The last startup step attempted was: %s." msgstr "" -#: ../src/main.cpp:419 +#: ../src/main.cpp:424 #, c-format msgid "" "An unexpected error has occurred. Please save your work and restart " @@ -5144,7 +5255,7 @@ msgid "" "Error Message: %s" msgstr "" -#: ../src/main.cpp:420 +#: ../src/main.cpp:425 msgid "Exception in event handler" msgstr "" @@ -5176,64 +5287,64 @@ msgstr "" msgid "Reading subtitles from Matroska file." msgstr "" -#: ../src/preferences.cpp:63 ../src/preferences.cpp:65 -#: ../src/preferences.cpp:341 ../src/preferences.cpp:362 +#: ../src/preferences.cpp:64 ../src/preferences.cpp:66 +#: ../src/preferences.cpp:344 ../src/preferences.cpp:365 msgid "General" msgstr "" -#: ../src/preferences.cpp:66 +#: ../src/preferences.cpp:67 msgid "Check for updates on startup" msgstr "" -#: ../src/preferences.cpp:67 +#: ../src/preferences.cpp:68 msgid "Show main toolbar" msgstr "" -#: ../src/preferences.cpp:68 +#: ../src/preferences.cpp:69 msgid "Save UI state in subtitles files" msgstr "" -#: ../src/preferences.cpp:71 +#: ../src/preferences.cpp:72 msgid "Toolbar Icon Size" msgstr "" -#: ../src/preferences.cpp:72 +#: ../src/preferences.cpp:73 msgid "Always" msgstr "" -#: ../src/preferences.cpp:72 ../src/preferences.cpp:203 +#: ../src/preferences.cpp:73 ../src/preferences.cpp:206 msgid "Ask" msgstr "" -#: ../src/preferences.cpp:72 ../src/preferences.cpp:203 +#: ../src/preferences.cpp:73 ../src/preferences.cpp:206 msgid "Never" msgstr "" -#: ../src/preferences.cpp:74 +#: ../src/preferences.cpp:75 msgid "Automatically load linked files" msgstr "" -#: ../src/preferences.cpp:75 +#: ../src/preferences.cpp:76 msgid "Undo Levels" msgstr "" -#: ../src/preferences.cpp:77 +#: ../src/preferences.cpp:78 msgid "Recently Used Lists" msgstr "" -#: ../src/preferences.cpp:79 +#: ../src/preferences.cpp:80 msgid "Find/Replace" msgstr "" -#: ../src/preferences.cpp:85 +#: ../src/preferences.cpp:86 msgid "Default styles" msgstr "" -#: ../src/preferences.cpp:87 +#: ../src/preferences.cpp:88 msgid "Default style catalogs" msgstr "" -#: ../src/preferences.cpp:91 +#: ../src/preferences.cpp:92 msgid "" "The chosen style catalogs will be loaded when you start a new file or import " "files in the various formats.\n" @@ -5241,812 +5352,812 @@ msgid "" "You can set up style catalogs in the Style Manager." msgstr "" -#: ../src/preferences.cpp:116 +#: ../src/preferences.cpp:119 msgid "New files" msgstr "" -#: ../src/preferences.cpp:117 +#: ../src/preferences.cpp:120 msgid "MicroDVD import" msgstr "" -#: ../src/preferences.cpp:118 +#: ../src/preferences.cpp:121 msgid "SRT import" msgstr "" -#: ../src/preferences.cpp:119 +#: ../src/preferences.cpp:122 msgid "TTXT import" msgstr "" -#: ../src/preferences.cpp:120 +#: ../src/preferences.cpp:123 msgid "Plain text import" msgstr "" -#: ../src/preferences.cpp:127 ../src/preferences.cpp:377 +#: ../src/preferences.cpp:130 ../src/preferences.cpp:380 msgid "Audio" msgstr "" -#: ../src/preferences.cpp:130 +#: ../src/preferences.cpp:133 msgid "Default mouse wheel to zoom" msgstr "" -#: ../src/preferences.cpp:131 +#: ../src/preferences.cpp:134 msgid "Lock scroll on cursor" msgstr "" -#: ../src/preferences.cpp:132 +#: ../src/preferences.cpp:135 msgid "Snap markers by default" msgstr "" -#: ../src/preferences.cpp:133 +#: ../src/preferences.cpp:136 msgid "Auto-focus on mouse over" msgstr "" -#: ../src/preferences.cpp:134 +#: ../src/preferences.cpp:137 msgid "Play audio when stepping in video" msgstr "" -#: ../src/preferences.cpp:135 +#: ../src/preferences.cpp:138 msgid "Left-click-drag moves end marker" msgstr "" -#: ../src/preferences.cpp:136 +#: ../src/preferences.cpp:139 msgid "Default timing length (ms)" msgstr "" -#: ../src/preferences.cpp:137 +#: ../src/preferences.cpp:140 msgid "Default lead-in length (ms)" msgstr "" -#: ../src/preferences.cpp:138 +#: ../src/preferences.cpp:141 msgid "Default lead-out length (ms)" msgstr "" -#: ../src/preferences.cpp:140 +#: ../src/preferences.cpp:143 msgid "Marker drag-start sensitivity (px)" msgstr "" -#: ../src/preferences.cpp:141 +#: ../src/preferences.cpp:144 msgid "Line boundary thickness (px)" msgstr "" -#: ../src/preferences.cpp:142 +#: ../src/preferences.cpp:145 msgid "Maximum snap distance (px)" msgstr "" -#: ../src/preferences.cpp:144 +#: ../src/preferences.cpp:147 msgid "Don't show" msgstr "" -#: ../src/preferences.cpp:144 +#: ../src/preferences.cpp:147 msgid "Show all" msgstr "" -#: ../src/preferences.cpp:144 +#: ../src/preferences.cpp:147 msgid "Show previous" msgstr "" -#: ../src/preferences.cpp:144 +#: ../src/preferences.cpp:147 msgid "Show previous and next" msgstr "" -#: ../src/preferences.cpp:146 +#: ../src/preferences.cpp:149 msgid "Show inactive lines" msgstr "" -#: ../src/preferences.cpp:148 +#: ../src/preferences.cpp:151 msgid "Include commented inactive lines" msgstr "" -#: ../src/preferences.cpp:150 +#: ../src/preferences.cpp:153 msgid "Display Visual Options" msgstr "" -#: ../src/preferences.cpp:151 +#: ../src/preferences.cpp:154 msgid "Keyframes in dialogue mode" msgstr "" -#: ../src/preferences.cpp:152 +#: ../src/preferences.cpp:155 msgid "Keyframes in karaoke mode" msgstr "" -#: ../src/preferences.cpp:153 +#: ../src/preferences.cpp:156 msgid "Cursor time" msgstr "" -#: ../src/preferences.cpp:154 +#: ../src/preferences.cpp:157 msgid "Video position" msgstr "" -#: ../src/preferences.cpp:155 ../src/preferences.cpp:257 +#: ../src/preferences.cpp:158 ../src/preferences.cpp:260 msgid "Seconds boundaries" msgstr "" -#: ../src/preferences.cpp:157 +#: ../src/preferences.cpp:160 msgid "Waveform Style" msgstr "" -#: ../src/preferences.cpp:159 +#: ../src/preferences.cpp:162 msgid "Audio labels" msgstr "" -#: ../src/preferences.cpp:170 +#: ../src/preferences.cpp:173 msgid "Show keyframes in slider" msgstr "" -#: ../src/preferences.cpp:172 +#: ../src/preferences.cpp:175 msgid "Only show visual tools when mouse is over video" msgstr "" -#: ../src/preferences.cpp:174 +#: ../src/preferences.cpp:177 msgid "Seek video to line start on selection change" msgstr "" -#: ../src/preferences.cpp:176 +#: ../src/preferences.cpp:179 msgid "Automatically open audio when opening video" msgstr "" -#: ../src/preferences.cpp:179 +#: ../src/preferences.cpp:182 msgid "Does nothing" msgstr "" -#: ../src/preferences.cpp:179 +#: ../src/preferences.cpp:182 msgid "Pans the video" msgstr "" -#: ../src/preferences.cpp:179 +#: ../src/preferences.cpp:182 msgid "Pans the video (X/Y swapped)" msgstr "" -#: ../src/preferences.cpp:179 +#: ../src/preferences.cpp:182 msgid "Resizes the video box" msgstr "" -#: ../src/preferences.cpp:179 +#: ../src/preferences.cpp:182 msgid "Resizes the video box (reversed)" msgstr "" -#: ../src/preferences.cpp:179 +#: ../src/preferences.cpp:182 msgid "Zooms the video" msgstr "" -#: ../src/preferences.cpp:179 +#: ../src/preferences.cpp:182 msgid "Zooms the video (reversed)" msgstr "" -#: ../src/preferences.cpp:181 +#: ../src/preferences.cpp:184 msgid "Scrolling on the video display" msgstr "" -#: ../src/preferences.cpp:182 +#: ../src/preferences.cpp:185 msgid "Ctrl+Scrolling on the video display" msgstr "" -#: ../src/preferences.cpp:183 +#: ../src/preferences.cpp:186 msgid "Shift+Scrolling on the video display" msgstr "" -#: ../src/preferences.cpp:187 +#: ../src/preferences.cpp:190 msgid "Default Zoom" msgstr "" -#: ../src/preferences.cpp:189 +#: ../src/preferences.cpp:192 msgid "Fast jump step in frames" msgstr "" -#: ../src/preferences.cpp:193 +#: ../src/preferences.cpp:196 msgid "Screenshot save path" msgstr "" -#: ../src/preferences.cpp:195 +#: ../src/preferences.cpp:198 msgid "Script Resolution" msgstr "" -#: ../src/preferences.cpp:196 +#: ../src/preferences.cpp:199 msgid "Use resolution of first video opened" msgstr "" -#: ../src/preferences.cpp:199 +#: ../src/preferences.cpp:202 msgid "Default width" msgstr "" -#: ../src/preferences.cpp:201 +#: ../src/preferences.cpp:204 msgid "Default height" msgstr "" -#: ../src/preferences.cpp:203 +#: ../src/preferences.cpp:206 msgid "Always resample" msgstr "" -#: ../src/preferences.cpp:203 +#: ../src/preferences.cpp:206 msgid "Always set" msgstr "" -#: ../src/preferences.cpp:205 +#: ../src/preferences.cpp:208 msgid "Match video resolution on open" msgstr "" -#: ../src/preferences.cpp:212 +#: ../src/preferences.cpp:215 msgid "Interface" msgstr "" -#: ../src/preferences.cpp:214 +#: ../src/preferences.cpp:217 msgid "Edit Box" msgstr "" -#: ../src/preferences.cpp:215 +#: ../src/preferences.cpp:218 msgid "Enable call tips" msgstr "" -#: ../src/preferences.cpp:216 +#: ../src/preferences.cpp:219 msgid "Overwrite in time boxes" msgstr "" -#: ../src/preferences.cpp:217 +#: ../src/preferences.cpp:220 msgid "Shift+Enter adds \\n" msgstr "" -#: ../src/preferences.cpp:218 +#: ../src/preferences.cpp:221 msgid "Enable syntax highlighting" msgstr "" -#: ../src/preferences.cpp:219 +#: ../src/preferences.cpp:222 msgid "Dictionaries path" msgstr "" -#: ../src/preferences.cpp:222 +#: ../src/preferences.cpp:225 msgid "Character Counter" msgstr "" -#: ../src/preferences.cpp:223 +#: ../src/preferences.cpp:226 msgid "Maximum characters per line" msgstr "" -#: ../src/preferences.cpp:224 +#: ../src/preferences.cpp:227 msgid "Characters Per Second Warning Threshold" msgstr "" -#: ../src/preferences.cpp:225 +#: ../src/preferences.cpp:228 msgid "Characters Per Second Error Threshold" msgstr "" -#: ../src/preferences.cpp:226 +#: ../src/preferences.cpp:229 msgid "Ignore whitespace" msgstr "" -#: ../src/preferences.cpp:227 +#: ../src/preferences.cpp:230 msgid "Ignore punctuation" msgstr "" -#: ../src/preferences.cpp:229 +#: ../src/preferences.cpp:232 msgid "Grid" msgstr "" -#: ../src/preferences.cpp:230 +#: ../src/preferences.cpp:233 msgid "Focus grid on click" msgstr "" -#: ../src/preferences.cpp:231 +#: ../src/preferences.cpp:234 msgid "Highlight visible subtitles" msgstr "" -#: ../src/preferences.cpp:232 +#: ../src/preferences.cpp:235 msgid "Hide overrides symbol" msgstr "" -#: ../src/preferences.cpp:236 +#: ../src/preferences.cpp:239 msgid "Skip over whitespace" msgstr "" -#: ../src/preferences.cpp:251 +#: ../src/preferences.cpp:254 msgid "Audio Display" msgstr "" -#: ../src/preferences.cpp:252 +#: ../src/preferences.cpp:255 msgid "Play cursor" msgstr "" -#: ../src/preferences.cpp:253 +#: ../src/preferences.cpp:256 msgid "Line boundary start" msgstr "" -#: ../src/preferences.cpp:254 +#: ../src/preferences.cpp:257 msgid "Line boundary end" msgstr "" -#: ../src/preferences.cpp:255 +#: ../src/preferences.cpp:258 msgid "Line boundary inactive line" msgstr "" -#: ../src/preferences.cpp:256 +#: ../src/preferences.cpp:259 msgid "Syllable boundaries" msgstr "" -#: ../src/preferences.cpp:259 +#: ../src/preferences.cpp:262 msgid "Syntax Highlighting" msgstr "" -#: ../src/preferences.cpp:260 +#: ../src/preferences.cpp:263 msgid "Background" msgstr "" -#: ../src/preferences.cpp:261 +#: ../src/preferences.cpp:264 msgid "Normal" msgstr "" -#: ../src/preferences.cpp:262 +#: ../src/preferences.cpp:265 msgid "Comments" msgstr "" -#: ../src/preferences.cpp:263 +#: ../src/preferences.cpp:266 msgid "Drawing Commands" msgstr "" -#: ../src/preferences.cpp:264 +#: ../src/preferences.cpp:267 msgid "Drawing X Coords" msgstr "" -#: ../src/preferences.cpp:265 +#: ../src/preferences.cpp:268 msgid "Drawing Y Coords" msgstr "" -#: ../src/preferences.cpp:266 +#: ../src/preferences.cpp:269 msgid "Underline Spline Endpoints" msgstr "" -#: ../src/preferences.cpp:268 +#: ../src/preferences.cpp:271 msgid "Brackets" msgstr "" -#: ../src/preferences.cpp:269 +#: ../src/preferences.cpp:272 msgid "Slashes and Parentheses" msgstr "" -#: ../src/preferences.cpp:270 +#: ../src/preferences.cpp:273 msgid "Tags" msgstr "" -#: ../src/preferences.cpp:271 +#: ../src/preferences.cpp:274 msgid "Parameters" msgstr "" -#: ../src/preferences.cpp:273 +#: ../src/preferences.cpp:276 msgid "Error Background" msgstr "" -#: ../src/preferences.cpp:274 +#: ../src/preferences.cpp:277 msgid "Line Break" msgstr "" -#: ../src/preferences.cpp:275 +#: ../src/preferences.cpp:278 msgid "Karaoke templates" msgstr "" -#: ../src/preferences.cpp:276 +#: ../src/preferences.cpp:279 msgid "Karaoke variables" msgstr "" -#: ../src/preferences.cpp:282 +#: ../src/preferences.cpp:285 msgid "Audio Color Schemes" msgstr "" -#: ../src/preferences.cpp:284 ../src/preferences.cpp:393 +#: ../src/preferences.cpp:287 ../src/preferences.cpp:396 msgid "Spectrum" msgstr "" -#: ../src/preferences.cpp:285 +#: ../src/preferences.cpp:288 msgid "Waveform" msgstr "" -#: ../src/preferences.cpp:287 +#: ../src/preferences.cpp:290 msgid "Subtitle Grid" msgstr "" -#: ../src/preferences.cpp:288 +#: ../src/preferences.cpp:291 msgid "Standard foreground" msgstr "" -#: ../src/preferences.cpp:289 +#: ../src/preferences.cpp:292 msgid "Standard background" msgstr "" -#: ../src/preferences.cpp:290 +#: ../src/preferences.cpp:293 msgid "Selection foreground" msgstr "" -#: ../src/preferences.cpp:291 +#: ../src/preferences.cpp:294 msgid "Selection background" msgstr "" -#: ../src/preferences.cpp:292 +#: ../src/preferences.cpp:295 msgid "Collision foreground" msgstr "" -#: ../src/preferences.cpp:293 +#: ../src/preferences.cpp:296 msgid "In frame background" msgstr "" -#: ../src/preferences.cpp:294 +#: ../src/preferences.cpp:297 msgid "Comment background" msgstr "" -#: ../src/preferences.cpp:295 +#: ../src/preferences.cpp:298 msgid "Selected comment background" msgstr "" -#: ../src/preferences.cpp:296 +#: ../src/preferences.cpp:299 msgid "Header background" msgstr "" -#: ../src/preferences.cpp:297 +#: ../src/preferences.cpp:300 msgid "Left Column" msgstr "" -#: ../src/preferences.cpp:298 +#: ../src/preferences.cpp:301 msgid "Active Line Border" msgstr "" -#: ../src/preferences.cpp:299 +#: ../src/preferences.cpp:302 msgid "Lines" msgstr "" -#: ../src/preferences.cpp:300 +#: ../src/preferences.cpp:303 msgid "CPS Error" msgstr "" -#: ../src/preferences.cpp:302 +#: ../src/preferences.cpp:305 msgid "Visual Typesetting Tools" msgstr "" -#: ../src/preferences.cpp:303 +#: ../src/preferences.cpp:306 msgid "Primary Lines" msgstr "" -#: ../src/preferences.cpp:304 +#: ../src/preferences.cpp:307 msgid "Secondary Lines" msgstr "" -#: ../src/preferences.cpp:305 +#: ../src/preferences.cpp:308 msgid "Primary Highlight" msgstr "" -#: ../src/preferences.cpp:306 +#: ../src/preferences.cpp:309 msgid "Secondary Highlight" msgstr "" -#: ../src/preferences.cpp:309 +#: ../src/preferences.cpp:312 msgid "Visual Typesetting Tools Alpha" msgstr "" -#: ../src/preferences.cpp:310 +#: ../src/preferences.cpp:313 msgid "Shaded Area" msgstr "" -#: ../src/preferences.cpp:319 +#: ../src/preferences.cpp:322 msgid "Backup" msgstr "" -#: ../src/preferences.cpp:321 +#: ../src/preferences.cpp:324 msgid "Automatic Save" msgstr "" -#: ../src/preferences.cpp:322 ../src/preferences.cpp:330 +#: ../src/preferences.cpp:325 ../src/preferences.cpp:333 msgid "Enable" msgstr "" -#: ../src/preferences.cpp:325 +#: ../src/preferences.cpp:328 msgid "Interval in seconds" msgstr "" -#: ../src/preferences.cpp:326 ../src/preferences.cpp:332 -#: ../src/preferences.cpp:391 +#: ../src/preferences.cpp:329 ../src/preferences.cpp:335 +#: ../src/preferences.cpp:394 msgid "Path" msgstr "" -#: ../src/preferences.cpp:327 +#: ../src/preferences.cpp:330 msgid "Autosave after every change" msgstr "" -#: ../src/preferences.cpp:329 +#: ../src/preferences.cpp:332 msgid "Automatic Backup" msgstr "" -#: ../src/preferences.cpp:343 +#: ../src/preferences.cpp:346 msgid "Base path" msgstr "" -#: ../src/preferences.cpp:344 +#: ../src/preferences.cpp:347 msgid "Include path" msgstr "" -#: ../src/preferences.cpp:345 +#: ../src/preferences.cpp:348 msgid "Auto-load path" msgstr "" -#: ../src/preferences.cpp:347 +#: ../src/preferences.cpp:350 msgid "0: Fatal" msgstr "" -#: ../src/preferences.cpp:347 +#: ../src/preferences.cpp:350 msgid "1: Error" msgstr "" -#: ../src/preferences.cpp:347 +#: ../src/preferences.cpp:350 msgid "2: Warning" msgstr "" -#: ../src/preferences.cpp:347 +#: ../src/preferences.cpp:350 msgid "3: Hint" msgstr "" -#: ../src/preferences.cpp:347 +#: ../src/preferences.cpp:350 msgid "4: Debug" msgstr "" -#: ../src/preferences.cpp:347 +#: ../src/preferences.cpp:350 msgid "5: Trace" msgstr "" -#: ../src/preferences.cpp:349 +#: ../src/preferences.cpp:352 msgid "Trace level" msgstr "" -#: ../src/preferences.cpp:351 +#: ../src/preferences.cpp:354 msgid "All scripts" msgstr "" -#: ../src/preferences.cpp:351 +#: ../src/preferences.cpp:354 msgid "Global autoload scripts" msgstr "" -#: ../src/preferences.cpp:351 +#: ../src/preferences.cpp:354 msgid "No scripts" msgstr "" -#: ../src/preferences.cpp:351 +#: ../src/preferences.cpp:354 msgid "Subtitle-local scripts" msgstr "" -#: ../src/preferences.cpp:353 +#: ../src/preferences.cpp:356 msgid "Autoreload on Export" msgstr "" -#: ../src/preferences.cpp:360 +#: ../src/preferences.cpp:363 msgid "Advanced" msgstr "" -#: ../src/preferences.cpp:364 +#: ../src/preferences.cpp:367 msgid "" "Changing these settings might result in bugs and/or crashes. Do not touch " "these unless you know what you're doing." msgstr "" -#: ../src/preferences.cpp:379 ../src/preferences.cpp:446 +#: ../src/preferences.cpp:382 ../src/preferences.cpp:449 msgid "Expert" msgstr "" -#: ../src/preferences.cpp:382 +#: ../src/preferences.cpp:385 msgid "Audio provider" msgstr "" -#: ../src/preferences.cpp:385 +#: ../src/preferences.cpp:388 msgid "Audio player" msgstr "" -#: ../src/preferences.cpp:387 +#: ../src/preferences.cpp:390 msgid "Cache" msgstr "" -#: ../src/preferences.cpp:388 +#: ../src/preferences.cpp:391 msgid "Hard Disk" msgstr "" -#: ../src/preferences.cpp:388 +#: ../src/preferences.cpp:391 msgid "None (NOT RECOMMENDED)" msgstr "" -#: ../src/preferences.cpp:388 +#: ../src/preferences.cpp:391 msgid "RAM" msgstr "" -#: ../src/preferences.cpp:390 +#: ../src/preferences.cpp:393 msgid "Cache type" msgstr "" -#: ../src/preferences.cpp:395 +#: ../src/preferences.cpp:398 msgid "Better quality" msgstr "" -#: ../src/preferences.cpp:395 +#: ../src/preferences.cpp:398 msgid "High quality" msgstr "" -#: ../src/preferences.cpp:395 +#: ../src/preferences.cpp:398 msgid "Insane quality" msgstr "" -#: ../src/preferences.cpp:395 +#: ../src/preferences.cpp:398 msgid "Regular quality" msgstr "" -#: ../src/preferences.cpp:397 +#: ../src/preferences.cpp:400 msgid "Quality" msgstr "" -#: ../src/preferences.cpp:399 +#: ../src/preferences.cpp:402 msgid "Compressed" msgstr "" -#: ../src/preferences.cpp:399 +#: ../src/preferences.cpp:402 msgid "Extended" msgstr "" -#: ../src/preferences.cpp:399 +#: ../src/preferences.cpp:402 msgid "Linear" msgstr "" -#: ../src/preferences.cpp:399 +#: ../src/preferences.cpp:402 msgid "Logarithmic" msgstr "" -#: ../src/preferences.cpp:399 +#: ../src/preferences.cpp:402 msgid "Medium" msgstr "" -#: ../src/preferences.cpp:401 +#: ../src/preferences.cpp:404 msgid "Frequency mapping" msgstr "" -#: ../src/preferences.cpp:403 +#: ../src/preferences.cpp:406 msgid "Cache memory max (MB)" msgstr "" -#: ../src/preferences.cpp:409 +#: ../src/preferences.cpp:412 msgid "Avisynth down-mixer" msgstr "" -#: ../src/preferences.cpp:410 +#: ../src/preferences.cpp:413 msgid "Force sample rate" msgstr "" -#: ../src/preferences.cpp:416 +#: ../src/preferences.cpp:419 msgid "Abort" msgstr "" -#: ../src/preferences.cpp:416 +#: ../src/preferences.cpp:419 msgid "Ignore" msgstr "" -#: ../src/preferences.cpp:416 +#: ../src/preferences.cpp:419 msgid "Stop" msgstr "" -#: ../src/preferences.cpp:418 +#: ../src/preferences.cpp:421 msgid "Audio indexing error handling mode" msgstr "" -#: ../src/preferences.cpp:420 +#: ../src/preferences.cpp:423 msgid "Always index all audio tracks" msgstr "" -#: ../src/preferences.cpp:425 +#: ../src/preferences.cpp:428 msgid "Portaudio device" msgstr "" -#: ../src/preferences.cpp:430 +#: ../src/preferences.cpp:433 msgid "OSS Device" msgstr "" -#: ../src/preferences.cpp:435 +#: ../src/preferences.cpp:438 msgid "Buffer latency" msgstr "" -#: ../src/preferences.cpp:436 +#: ../src/preferences.cpp:439 msgid "Buffer length" msgstr "" -#: ../src/preferences.cpp:449 +#: ../src/preferences.cpp:452 msgid "Video provider" msgstr "" -#: ../src/preferences.cpp:452 +#: ../src/preferences.cpp:455 msgid "Subtitles provider" msgstr "" -#: ../src/preferences.cpp:456 +#: ../src/preferences.cpp:459 msgid "Allow pre-2.56a Avisynth" msgstr "" -#: ../src/preferences.cpp:458 +#: ../src/preferences.cpp:461 msgid "Avisynth memory limit" msgstr "" -#: ../src/preferences.cpp:464 +#: ../src/preferences.cpp:467 msgid "Debug" msgstr "" -#: ../src/preferences.cpp:464 +#: ../src/preferences.cpp:467 msgid "Fatal" msgstr "" -#: ../src/preferences.cpp:464 +#: ../src/preferences.cpp:467 msgid "Info" msgstr "" -#: ../src/preferences.cpp:464 +#: ../src/preferences.cpp:467 msgid "Panic" msgstr "" -#: ../src/preferences.cpp:464 +#: ../src/preferences.cpp:467 msgid "Quiet" msgstr "" -#: ../src/preferences.cpp:464 +#: ../src/preferences.cpp:467 msgid "Verbose" msgstr "" -#: ../src/preferences.cpp:464 ../src/project.cpp:318 +#: ../src/preferences.cpp:467 ../src/project.cpp:318 msgid "Warning" msgstr "" -#: ../src/preferences.cpp:466 +#: ../src/preferences.cpp:469 msgid "Debug log verbosity" msgstr "" -#: ../src/preferences.cpp:468 +#: ../src/preferences.cpp:471 msgid "Decoding threads" msgstr "" -#: ../src/preferences.cpp:469 +#: ../src/preferences.cpp:472 msgid "Enable unsafe seeking" msgstr "" -#: ../src/preferences.cpp:605 +#: ../src/preferences.cpp:607 msgid "Hotkeys" msgstr "" -#: ../src/preferences.cpp:609 +#: ../src/preferences.cpp:611 msgid "Search" msgstr "" -#: ../src/preferences.cpp:625 ../src/preferences.cpp:628 +#: ../src/preferences.cpp:627 ../src/preferences.cpp:630 msgid "Hotkey" msgstr "" -#: ../src/preferences.cpp:626 ../src/preferences.cpp:631 +#: ../src/preferences.cpp:628 ../src/preferences.cpp:633 msgid "Command" msgstr "" -#: ../src/preferences.cpp:705 +#: ../src/preferences.cpp:707 msgid "" "Are you sure that you want to restore the defaults? All your settings will " "be overridden." msgstr "" -#: ../src/preferences.cpp:705 +#: ../src/preferences.cpp:707 msgid "Restore defaults?" msgstr "" -#: ../src/preferences.cpp:723 +#: ../src/preferences.cpp:725 msgid "Preferences" msgstr "" -#: ../src/preferences.cpp:751 +#: ../src/preferences.cpp:753 msgid "&Restore Defaults" msgstr "" -#: ../src/preferences_base.cpp:62 +#: ../src/preferences_base.cpp:78 msgid "Please choose the folder:" msgstr "" -#: ../src/preferences_base.cpp:208 +#: ../src/preferences_base.cpp:234 msgid "Browse..." msgstr "" -#: ../src/preferences_base.cpp:243 +#: ../src/preferences_base.cpp:270 msgid "Choose..." msgstr "" -#: ../src/preferences_base.cpp:251 +#: ../src/preferences_base.cpp:278 msgid "Font Size" msgstr "" @@ -6135,7 +6246,7 @@ msgstr "" msgid "Keyframes file in unknown format: " msgstr "" -#: ../src/resolution_resampler.cpp:300 +#: ../src/resolution_resampler.cpp:301 msgid "resolution resampling" msgstr "" @@ -6459,6 +6570,42 @@ msgstr "" msgid "Time of this frame relative to start and end of current subs" msgstr "" +#: ../src/video_controller.cpp:228 +#, c-format +msgid "" +"Failed seeking video. The video file may be corrupt or incomplete.\n" +"Error message reported: %s" +msgstr "" + +#: ../src/video_controller.cpp:234 +#, c-format +msgid "" +"Failed rendering subtitles.\n" +"Error message reported: %s" +msgstr "" + +#: ../src/video_display.cpp:201 +#, c-format +msgid "" +"Failed to initialize video display. Closing other running programs and " +"updating your video card drivers may fix this.\n" +"Error message reported: %s" +msgstr "" + +#: ../src/video_display.cpp:208 +#, c-format +msgid "" +"Could not upload video frame to graphics card.\n" +"Error message reported: %s" +msgstr "" + +#: ../src/video_display.cpp:253 +#, c-format +msgid "" +"An error occurred trying to render the video frame on the screen.\n" +"Error message reported: %s" +msgstr "" + #: ../src/video_provider_manager.cpp:78 msgid "file not found." msgstr ""