ShuttleGui::AddVariableText takes TranslatableString
This commit is contained in:
parent
5168d62e3d
commit
707a069712
|
@ -68,7 +68,10 @@ void AutoRecoveryDialog::PopulateOrExchange(ShuttleGui& S)
|
|||
S.SetBorder(5);
|
||||
S.StartVerticalLay();
|
||||
{
|
||||
S.AddVariableText(_("Some projects were not saved properly the last time Audacity was run.\nFortunately, the following projects can be automatically recovered:"), false);
|
||||
S.AddVariableText(
|
||||
XO(
|
||||
"Some projects were not saved properly the last time Audacity was run.\nFortunately, the following projects can be automatically recovered:"),
|
||||
false);
|
||||
|
||||
S.StartStatic(XO("Recoverable projects"));
|
||||
{
|
||||
|
@ -79,7 +82,9 @@ void AutoRecoveryDialog::PopulateOrExchange(ShuttleGui& S)
|
|||
}
|
||||
S.EndStatic();
|
||||
|
||||
S.AddVariableText(_("After recovery, save the project to save the changes to disk."), false);
|
||||
S.AddVariableText(
|
||||
XO("After recovery, save the project to save the changes to disk."),
|
||||
false);
|
||||
|
||||
S.StartHorizontalLay();
|
||||
{
|
||||
|
|
|
@ -683,7 +683,8 @@ void MacrosWindow::PopulateOrExchange(ShuttleGui & S)
|
|||
/* i18n-hint: The Shrink button makes the dialog smaller, with less in it */
|
||||
mResize = S.Id(ShrinkID).AddButton(XO("Shrin&k"));
|
||||
// Using variable text just to get the positioning options.
|
||||
S.Prop(0).AddVariableText( _("Apply Macro to:"), false, wxALL | wxALIGN_CENTRE_VERTICAL );
|
||||
S.Prop(0).AddVariableText(
|
||||
XO("Apply Macro to:"), false, wxALL | wxALIGN_CENTRE_VERTICAL );
|
||||
wxButton* btn = S.Id(ApplyToProjectID)
|
||||
.Name(XO("Apply macro to project"))
|
||||
.AddButton(XO("&Project"));
|
||||
|
|
|
@ -333,17 +333,17 @@ DependencyDialog::DependencyDialog(wxWindow *parent,
|
|||
PopulateOrExchange(S);
|
||||
}
|
||||
|
||||
static const wxString kStdMsg()
|
||||
static const TranslatableString kStdMsg()
|
||||
{
|
||||
return
|
||||
_("Copying these files into your project will remove this dependency.\
|
||||
XO("Copying these files into your project will remove this dependency.\
|
||||
\nThis is safer, but needs more disk space.");
|
||||
}
|
||||
|
||||
static const wxString kExtraMsgForMissingFiles()
|
||||
static const TranslatableString kExtraMsgForMissingFiles()
|
||||
{
|
||||
return
|
||||
_("\n\nFiles shown as MISSING have been moved or deleted and cannot be copied.\
|
||||
XO("\n\nFiles shown as MISSING have been moved or deleted and cannot be copied.\
|
||||
\nRestore them to their original location to be able to copy into project.");
|
||||
}
|
||||
|
||||
|
@ -454,10 +454,10 @@ void DependencyDialog::PopulateList()
|
|||
++i;
|
||||
}
|
||||
|
||||
wxString msg = kStdMsg();
|
||||
auto msg = kStdMsg();
|
||||
if (mHasMissingFiles)
|
||||
msg += kExtraMsgForMissingFiles();
|
||||
mMessageStaticText->SetLabel(msg);
|
||||
mMessageStaticText->SetLabel(msg.Translation());
|
||||
|
||||
if (mCopyAllFilesButton)
|
||||
mCopyAllFilesButton->Enable(!mHasMissingFiles);
|
||||
|
|
|
@ -491,7 +491,8 @@ public:
|
|||
mPathText = S.AddTextBox( {}, mLibPath.GetFullPath(), 0);
|
||||
}
|
||||
S.Id(ID_FFMPEG_BROWSE).AddButton(XO("Browse..."), wxALIGN_RIGHT);
|
||||
S.AddVariableText(_("To get a free copy of FFmpeg, click here -->"), true);
|
||||
S.AddVariableText(
|
||||
XO("To get a free copy of FFmpeg, click here -->"), true);
|
||||
S.Id(ID_FFMPEG_DLOAD).AddButton(XO("Download"), wxALIGN_RIGHT);
|
||||
}
|
||||
S.EndMultiColumn();
|
||||
|
|
|
@ -446,19 +446,22 @@ void ShuttleGuiBase::AddFixedText(const wxString &Str, bool bCenter, int wrapWid
|
|||
}
|
||||
|
||||
wxStaticText * ShuttleGuiBase::AddVariableText(
|
||||
const wxString &Str, bool bCenter, int PositionFlags, int wrapWidth )
|
||||
const TranslatableString &Str,
|
||||
bool bCenter, int PositionFlags, int wrapWidth )
|
||||
{
|
||||
const auto translated = Str.Translation();
|
||||
UseUpId();
|
||||
if( mShuttleMode != eIsCreating )
|
||||
return wxDynamicCast(wxWindow::FindWindowById( miId, mpDlg), wxStaticText);
|
||||
|
||||
wxStaticText *pStatic;
|
||||
auto text = pStatic = safenew wxStaticText(GetParent(), miId, Str, wxDefaultPosition, wxDefaultSize,
|
||||
auto text = pStatic = safenew wxStaticText(GetParent(), miId, translated,
|
||||
wxDefaultPosition, wxDefaultSize,
|
||||
GetStyle( wxALIGN_LEFT ));
|
||||
mpWind = text;
|
||||
if ( wrapWidth > 0 )
|
||||
text->Wrap( wrapWidth );
|
||||
mpWind->SetName(wxStripMenuCodes(Str)); // fix for bug 577 (NVDA/Narrator screen readers do not read static text in dialogs)
|
||||
mpWind->SetName(wxStripMenuCodes(translated)); // fix for bug 577 (NVDA/Narrator screen readers do not read static text in dialogs)
|
||||
if( bCenter )
|
||||
{
|
||||
miProp=1;
|
||||
|
|
|
@ -298,7 +298,7 @@ public:
|
|||
// When PositionFlags is 0, applies wxALL (which affects borders),
|
||||
// and either wxALIGN_CENTER (if bCenter) or else wxEXPAND
|
||||
wxStaticText * AddVariableText(
|
||||
const wxString &Str, bool bCenter = false,
|
||||
const TranslatableString &Str, bool bCenter = false,
|
||||
int PositionFlags = 0, int wrapWidth = 0);
|
||||
wxTextCtrl * AddTextBox(
|
||||
const TranslatableString &Caption,
|
||||
|
|
|
@ -202,6 +202,40 @@ bool EffectCompressor::Startup()
|
|||
return true;
|
||||
}
|
||||
|
||||
namespace {
|
||||
|
||||
/* i18n-hint: usually leave this as is as dB doesn't get translated*/
|
||||
TranslatableString ThresholdFormat( int value )
|
||||
{ return XO("%3d dB").Format(value); }
|
||||
|
||||
TranslatableString AttackTimeFormat( double value )
|
||||
{ return XO("%.2f secs").Format( value ); }
|
||||
|
||||
TranslatableString DecayTimeFormat( double value )
|
||||
{ return XO("%.1f secs").Format( value ); }
|
||||
|
||||
TranslatableString RatioTextFormat( int sliderValue, double value )
|
||||
{
|
||||
auto format = (sliderValue % 10 == 0)
|
||||
/* i18n-hint: Unless your language has a different convention for ratios,
|
||||
* like 8:1, leave as is.*/
|
||||
? XO("%.0f:1")
|
||||
/* i18n-hint: Unless your language has a different convention for ratios,
|
||||
* like 8:1, leave as is.*/
|
||||
: XO("%.1f:1");
|
||||
return format.Format( value );
|
||||
}
|
||||
|
||||
TranslatableString RatioLabelFormat( int sliderValue, double value )
|
||||
{
|
||||
auto format = (sliderValue % 10 == 0)
|
||||
? XO("Ratio %.0f to 1")
|
||||
: XO("Ratio %.1f to 1");
|
||||
return format.Format( value );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void EffectCompressor::PopulateOrExchange(ShuttleGui & S)
|
||||
{
|
||||
S.SetBorder(5);
|
||||
|
@ -226,8 +260,8 @@ void EffectCompressor::PopulateOrExchange(ShuttleGui & S)
|
|||
S.StartMultiColumn(3, wxEXPAND);
|
||||
{
|
||||
S.SetStretchyCol(1);
|
||||
mThresholdLabel = S.AddVariableText(_("Threshold:"), true,
|
||||
wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
|
||||
mThresholdLabel = S.AddVariableText(XO("Threshold:"), true,
|
||||
wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
|
||||
mThresholdSlider = S.Id(ID_Threshold)
|
||||
.Name(XO("Threshold"))
|
||||
.Style(wxSL_HORIZONTAL)
|
||||
|
@ -235,11 +269,11 @@ void EffectCompressor::PopulateOrExchange(ShuttleGui & S)
|
|||
DEF_Threshold * SCL_Threshold,
|
||||
MAX_Threshold * SCL_Threshold,
|
||||
MIN_Threshold * SCL_Threshold);
|
||||
mThresholdText = S.AddVariableText(wxT("XXX dB"), true,
|
||||
wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
|
||||
mThresholdText = S.AddVariableText(ThresholdFormat(999), true,
|
||||
wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
|
||||
|
||||
mNoiseFloorLabel = S.AddVariableText(_("Noise Floor:"), true,
|
||||
wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
|
||||
mNoiseFloorLabel = S.AddVariableText(XO("Noise Floor:"), true,
|
||||
wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
|
||||
mNoiseFloorSlider = S.Id(ID_NoiseFloor)
|
||||
.Name(XO("Noise Floor"))
|
||||
.Style(wxSL_HORIZONTAL)
|
||||
|
@ -247,11 +281,11 @@ void EffectCompressor::PopulateOrExchange(ShuttleGui & S)
|
|||
DEF_NoiseFloor / SCL_NoiseFloor,
|
||||
MAX_NoiseFloor / SCL_NoiseFloor,
|
||||
MIN_NoiseFloor / SCL_NoiseFloor);
|
||||
mNoiseFloorText = S.AddVariableText(wxT("XXX dB"), true,
|
||||
wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
|
||||
mNoiseFloorText = S.AddVariableText(ThresholdFormat(999),
|
||||
true, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
|
||||
|
||||
mRatioLabel = S.AddVariableText(_("Ratio:"), true,
|
||||
wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
|
||||
mRatioLabel = S.AddVariableText(XO("Ratio:"), true,
|
||||
wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
|
||||
mRatioSlider = S.Id(ID_Ratio)
|
||||
.Name(XO("Ratio"))
|
||||
.Style(wxSL_HORIZONTAL)
|
||||
|
@ -260,14 +294,14 @@ void EffectCompressor::PopulateOrExchange(ShuttleGui & S)
|
|||
MAX_Ratio * SCL_Ratio,
|
||||
MIN_Ratio * SCL_Ratio);
|
||||
mRatioSlider->SetPageSize(5);
|
||||
mRatioText = S.AddVariableText(wxT("XXXX:1"), true,
|
||||
mRatioText = S.AddVariableText(XO("XXXX:1"), true, //??
|
||||
wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
|
||||
|
||||
/* i18n-hint: Particularly in percussion, sounds can be regarded as having
|
||||
* an 'attack' phase where the sound builds up and a 'decay' where the
|
||||
* sound dies away. So this means 'onset duration'. */
|
||||
mAttackLabel = S.AddVariableText(_("Attack Time:"), true,
|
||||
wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
|
||||
mAttackLabel = S.AddVariableText(XO("Attack Time:"), true,
|
||||
wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
|
||||
mAttackSlider = S.Id(ID_Attack)
|
||||
.Name(XO("Attack Time"))
|
||||
.Style(wxSL_HORIZONTAL)
|
||||
|
@ -275,11 +309,12 @@ void EffectCompressor::PopulateOrExchange(ShuttleGui & S)
|
|||
DEF_AttackTime * SCL_AttackTime,
|
||||
MAX_AttackTime * SCL_AttackTime,
|
||||
MIN_AttackTime * SCL_AttackTime);
|
||||
mAttackText = S.AddVariableText(wxT("XXXX secs"), true,
|
||||
wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
|
||||
mAttackText = S.AddVariableText(
|
||||
AttackTimeFormat(9.99),
|
||||
true, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
|
||||
|
||||
mDecayLabel = S.AddVariableText(_("Release Time:"), true,
|
||||
wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
|
||||
mDecayLabel = S.AddVariableText(XO("Release Time:"), true,
|
||||
wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
|
||||
mDecaySlider = S.Id(ID_Decay)
|
||||
.Name(XO("Release Time"))
|
||||
.Style(wxSL_HORIZONTAL)
|
||||
|
@ -288,8 +323,9 @@ void EffectCompressor::PopulateOrExchange(ShuttleGui & S)
|
|||
MAX_ReleaseTime * SCL_ReleaseTime,
|
||||
MIN_ReleaseTime * SCL_ReleaseTime);
|
||||
|
||||
mDecayText = S.AddVariableText(wxT("XXXX secs"), true,
|
||||
wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
|
||||
mDecayText = S.AddVariableText(
|
||||
DecayTimeFormat(99.9),
|
||||
true, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
|
||||
}
|
||||
S.EndMultiColumn();
|
||||
}
|
||||
|
@ -616,34 +652,25 @@ void EffectCompressor::OnSlider(wxCommandEvent & WXUNUSED(evt))
|
|||
void EffectCompressor::UpdateUI()
|
||||
{
|
||||
mThresholdLabel->SetName(wxString::Format(_("Threshold %d dB"), (int) mThresholdDB));
|
||||
/* i18n-hint: usually leave this as is as dB doesn't get translated*/
|
||||
mThresholdText->SetLabel(wxString::Format(_("%3d dB"), (int) mThresholdDB));
|
||||
mThresholdText->SetLabel(ThresholdFormat((int) mThresholdDB).Translation());
|
||||
mThresholdText->SetName(mThresholdText->GetLabel()); // fix for bug 577 (NVDA/Narrator screen readers do not read static text in dialogs)
|
||||
|
||||
mNoiseFloorLabel->SetName(wxString::Format(_("Noise Floor %d dB"), (int) mNoiseFloorDB));
|
||||
mNoiseFloorText->SetLabel(wxString::Format(_("%3d dB"), (int) mNoiseFloorDB));
|
||||
mNoiseFloorText->SetLabel(ThresholdFormat((int) mNoiseFloorDB).Translation());
|
||||
mNoiseFloorText->SetName(mNoiseFloorText->GetLabel()); // fix for bug 577 (NVDA/Narrator screen readers do not read static text in dialogs)
|
||||
|
||||
if (mRatioSlider->GetValue() % 10 == 0) {
|
||||
mRatioLabel->SetName(wxString::Format(_("Ratio %.0f to 1"), mRatio));
|
||||
/* i18n-hint: Unless your language has a different convention for ratios,
|
||||
* like 8:1, leave as is.*/
|
||||
mRatioText->SetLabel(wxString::Format(_("%.0f:1"), mRatio));
|
||||
}
|
||||
else {
|
||||
mRatioLabel->SetName(wxString::Format(_("Ratio %.1f to 1"), mRatio));
|
||||
/* i18n-hint: Unless your language has a different convention for ratios,
|
||||
* like 8:1, leave as is.*/
|
||||
mRatioText->SetLabel(wxString::Format(_("%.1f:1"), mRatio));
|
||||
}
|
||||
mRatioLabel->SetLabel(
|
||||
RatioLabelFormat(mRatioSlider->GetValue(), mRatio).Translation());
|
||||
mRatioText->SetLabel(
|
||||
RatioTextFormat(mRatioSlider->GetValue(), mRatio).Translation());
|
||||
mRatioText->SetName(mRatioText->GetLabel()); // fix for bug 577 (NVDA/Narrator screen readers do not read static text in dialogs)
|
||||
|
||||
mAttackLabel->SetName(wxString::Format(_("Attack Time %.2f secs"), mAttackTime));
|
||||
mAttackText->SetLabel(wxString::Format(_("%.2f secs"), mAttackTime));
|
||||
mAttackText->SetLabel(AttackTimeFormat(mAttackTime).Translation());
|
||||
mAttackText->SetName(mAttackText->GetLabel()); // fix for bug 577 (NVDA/Narrator screen readers do not read static text in dialogs)
|
||||
|
||||
mDecayLabel->SetName(wxString::Format(_("Release Time %.1f secs"), mDecayTime));
|
||||
mDecayText->SetLabel(wxString::Format(_("%.1f secs"), mDecayTime));
|
||||
mDecayText->SetLabel(DecayTimeFormat(mDecayTime).Translation());
|
||||
mDecayText->SetName(mDecayText->GetLabel()); // fix for bug 577 (NVDA/Narrator screen readers do not read static text in dialogs)
|
||||
|
||||
mPanel->Refresh(false);
|
||||
|
|
|
@ -388,7 +388,8 @@ void EffectDistortion::PopulateOrExchange(ShuttleGui & S)
|
|||
S.AddSpace(250,0); S.AddSpace(0,0); S.AddSpace(0,0); S.AddSpace(0,0);
|
||||
|
||||
// Upper threshold control
|
||||
mThresholdTxt = S.AddVariableText(defaultLabel(0), false, wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT);
|
||||
mThresholdTxt = S.AddVariableText(defaultLabelUntranslated(0),
|
||||
false, wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT);
|
||||
mThresholdT = S.Id(ID_Threshold)
|
||||
.Name(defaultLabelUntranslated(0))
|
||||
.Validator<FloatingPointValidator<double>>(
|
||||
|
@ -405,7 +406,8 @@ void EffectDistortion::PopulateOrExchange(ShuttleGui & S)
|
|||
S.AddSpace(20, 0);
|
||||
|
||||
// Noise floor control
|
||||
mNoiseFloorTxt = S.AddVariableText(defaultLabel(1), false, wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT);
|
||||
mNoiseFloorTxt = S.AddVariableText(defaultLabelUntranslated(1),
|
||||
false, wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT);
|
||||
mNoiseFloorT = S.Id(ID_NoiseFloor)
|
||||
.Name(defaultLabelUntranslated(1))
|
||||
.Validator<FloatingPointValidator<double>>(
|
||||
|
@ -433,7 +435,8 @@ void EffectDistortion::PopulateOrExchange(ShuttleGui & S)
|
|||
S.AddSpace(250,0); S.AddSpace(0,0); S.AddSpace(0,0); S.AddSpace(0,0);
|
||||
|
||||
// Parameter1 control
|
||||
mParam1Txt = S.AddVariableText(defaultLabel(2), false, wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT);
|
||||
mParam1Txt = S.AddVariableText(defaultLabelUntranslated(2),
|
||||
false, wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT);
|
||||
mParam1T = S.Id(ID_Param1)
|
||||
.Name(defaultLabelUntranslated(2))
|
||||
.Validator<FloatingPointValidator<double>>(
|
||||
|
@ -449,7 +452,8 @@ void EffectDistortion::PopulateOrExchange(ShuttleGui & S)
|
|||
S.AddSpace(20, 0);
|
||||
|
||||
// Parameter2 control
|
||||
mParam2Txt = S.AddVariableText(defaultLabel(3), false, wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT);
|
||||
mParam2Txt = S.AddVariableText(defaultLabelUntranslated(3),
|
||||
false, wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT);
|
||||
mParam2T = S.Id(ID_Param2)
|
||||
.Name(defaultLabelUntranslated(3))
|
||||
.Validator<FloatingPointValidator<double>>(
|
||||
|
@ -465,7 +469,8 @@ void EffectDistortion::PopulateOrExchange(ShuttleGui & S)
|
|||
S.AddSpace(20, 0);
|
||||
|
||||
// Repeats control
|
||||
mRepeatsTxt = S.AddVariableText(defaultLabel(4), false, wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT);
|
||||
mRepeatsTxt = S.AddVariableText(defaultLabelUntranslated(4),
|
||||
false, wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT);
|
||||
mRepeatsT = S.Id(ID_Repeats)
|
||||
.Name(defaultLabelUntranslated(4))
|
||||
.Validator<IntegerValidator<int>>(
|
||||
|
|
|
@ -366,13 +366,18 @@ void EffectDtmf::PopulateOrExchange(ShuttleGui & S)
|
|||
S.StartMultiColumn(2, wxCENTER);
|
||||
{
|
||||
S.AddFixedText(_("Duty cycle:"), false);
|
||||
mDtmfDutyT = S.AddVariableText(wxString::Format(wxT("%.1f %%"), dtmfDutyCycle), false);
|
||||
mDtmfDutyT =
|
||||
S.AddVariableText(XO("%.1f %%").Format( dtmfDutyCycle ), false);
|
||||
|
||||
S.AddFixedText(_("Tone duration:"), false);
|
||||
mDtmfSilenceT = S.AddVariableText(wxString::Format(wxString(wxT("%.0f ")) + _("ms"), dtmfTone * 1000.0), false);
|
||||
mDtmfSilenceT =
|
||||
/* i18n-hint milliseconds */
|
||||
S.AddVariableText(XO("%.0f ms").Format( dtmfTone * 1000.0 ), false);
|
||||
|
||||
S.AddFixedText(_("Silence duration:"), false);
|
||||
mDtmfToneT = S.AddVariableText(wxString::Format(wxString(wxT("%0.f ")) + _("ms"), dtmfSilence * 1000.0), false);
|
||||
mDtmfToneT =
|
||||
/* i18n-hint milliseconds */
|
||||
S.AddVariableText(XO("%0.f ms").Format( dtmfSilence * 1000.0 ), false);
|
||||
}
|
||||
S.EndMultiColumn();
|
||||
}
|
||||
|
|
|
@ -800,7 +800,7 @@ void EffectEqualization::PopulateOrExchange(ShuttleGui & S)
|
|||
S.SetBorder(5);
|
||||
S.StartVerticalLay();
|
||||
{
|
||||
S.AddVariableText(_("+ dB"), false, wxCENTER);
|
||||
S.AddVariableText(XO("+ dB"), false, wxCENTER);
|
||||
mdBMaxSlider = S.Id(ID_dBMax)
|
||||
.Name(XO("Max dB"))
|
||||
.Style(wxSL_VERTICAL | wxSL_INVERSE)
|
||||
|
@ -813,7 +813,7 @@ void EffectEqualization::PopulateOrExchange(ShuttleGui & S)
|
|||
.Name(XO("Min dB"))
|
||||
.Style(wxSL_VERTICAL | wxSL_INVERSE)
|
||||
.AddSlider( {}, -30, -10, -120);
|
||||
S.AddVariableText(_("- dB"), false, wxCENTER);
|
||||
S.AddVariableText(XO("- dB"), false, wxCENTER);
|
||||
#if wxUSE_ACCESSIBILITY
|
||||
mdBMinSlider->SetAccessible(safenew SliderAx(mdBMinSlider, _("%d dB")));
|
||||
#endif
|
||||
|
@ -995,7 +995,7 @@ void EffectEqualization::PopulateOrExchange(ShuttleGui & S)
|
|||
mMText = S.Name( Verbatim( label ) )
|
||||
// fix for bug 577 (NVDA/Narrator screen readers do not
|
||||
// read static text in dialogs)
|
||||
.AddVariableText(label);
|
||||
.AddVariableText( Verbatim( label ) );
|
||||
}
|
||||
S.EndHorizontalLay();
|
||||
}
|
||||
|
|
|
@ -283,8 +283,8 @@ void EffectLoudness::PopulateOrExchange(ShuttleGui & S)
|
|||
{
|
||||
S.StartHorizontalLay(wxALIGN_LEFT, false);
|
||||
{
|
||||
S.AddVariableText(_("Normalize"), false,
|
||||
wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT);
|
||||
S.AddVariableText(XO("Normalize"), false,
|
||||
wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT);
|
||||
|
||||
S
|
||||
.Validator<wxGenericValidator>( &mNormalizeTo )
|
||||
|
@ -292,8 +292,8 @@ void EffectLoudness::PopulateOrExchange(ShuttleGui & S)
|
|||
Msgids(kNormalizeTargetStrings, nAlgos),
|
||||
mNormalizeTo
|
||||
);
|
||||
S.AddVariableText(_("to"), false,
|
||||
wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT);
|
||||
S.AddVariableText(XO("to"), false,
|
||||
wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT);
|
||||
|
||||
mLevelTextCtrl = S
|
||||
/* i18n-hint: LUFS is a particular method for measuring loudnesss */
|
||||
|
@ -305,10 +305,10 @@ void EffectLoudness::PopulateOrExchange(ShuttleGui & S)
|
|||
)
|
||||
.AddTextBox( {}, wxT(""), 10);
|
||||
/* i18n-hint: LUFS is a particular method for measuring loudnesss */
|
||||
mLeveldB = S.AddVariableText(_("LUFS"), false,
|
||||
wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT);
|
||||
mLeveldB = S.AddVariableText(XO("LUFS"), false,
|
||||
wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT);
|
||||
mWarning = S.AddVariableText( {}, false,
|
||||
wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT);
|
||||
wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT);
|
||||
}
|
||||
S.EndHorizontalLay();
|
||||
|
||||
|
|
|
@ -1707,8 +1707,8 @@ void EffectNoiseReduction::Dialog::PopulateOrExchange(ShuttleGui & S)
|
|||
{
|
||||
S.StartStatic(XO("Step 1"));
|
||||
{
|
||||
S.AddVariableText(_(
|
||||
"Select a few seconds of just noise so Audacity knows what to filter out,\nthen click Get Noise Profile:"));
|
||||
S.AddVariableText(XO(
|
||||
"Select a few seconds of just noise so Audacity knows what to filter out,\nthen click Get Noise Profile:"));
|
||||
//m_pButton_GetProfile =
|
||||
S.Id(ID_BUTTON_GETPROFILE).AddButton(XO("&Get Noise Profile"));
|
||||
}
|
||||
|
@ -1716,8 +1716,8 @@ void EffectNoiseReduction::Dialog::PopulateOrExchange(ShuttleGui & S)
|
|||
|
||||
S.StartStatic(XO("Step 2"));
|
||||
{
|
||||
S.AddVariableText(_(
|
||||
"Select all of the audio you want filtered, choose how much noise you want\nfiltered out, and then click 'OK' to reduce noise.\n"));
|
||||
S.AddVariableText(XO(
|
||||
"Select all of the audio you want filtered, choose how much noise you want\nfiltered out, and then click 'OK' to reduce noise.\n"));
|
||||
|
||||
S.StartMultiColumn(3, wxEXPAND);
|
||||
S.SetStretchyCol(2);
|
||||
|
|
|
@ -705,14 +705,16 @@ void NoiseRemovalDialog::PopulateOrExchange(ShuttleGui & S)
|
|||
{
|
||||
S.StartStatic(XO("Step 1"));
|
||||
{
|
||||
S.AddVariableText(_("Select a few seconds of just noise so Audacity knows what to filter out,\nthen click Get Noise Profile:"));
|
||||
S.AddVariableText(XO(
|
||||
"Select a few seconds of just noise so Audacity knows what to filter out,\nthen click Get Noise Profile:"));
|
||||
m_pButton_GetProfile = S.Id(ID_BUTTON_GETPROFILE).AddButton(XO("&Get Noise Profile"));
|
||||
}
|
||||
S.EndStatic();
|
||||
|
||||
S.StartStatic(XO("Step 2"));
|
||||
{
|
||||
S.AddVariableText(_("Select all of the audio you want filtered, choose how much noise you want\nfiltered out, and then click 'OK' to remove noise.\n"));
|
||||
S.AddVariableText(XO(
|
||||
"Select all of the audio you want filtered, choose how much noise you want\nfiltered out, and then click 'OK' to remove noise.\n"));
|
||||
|
||||
S.StartMultiColumn(3, wxEXPAND);
|
||||
S.SetStretchyCol(2);
|
||||
|
|
|
@ -313,10 +313,10 @@ void EffectNormalize::PopulateOrExchange(ShuttleGui & S)
|
|||
MAX_PeakLevel
|
||||
)
|
||||
.AddTextBox( {}, wxT(""), 10);
|
||||
mLeveldB = S.AddVariableText(_("dB"), false,
|
||||
wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT);
|
||||
mLeveldB = S.AddVariableText(XO("dB"), false,
|
||||
wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT);
|
||||
mWarning = S.AddVariableText( {}, false,
|
||||
wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT);
|
||||
wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT);
|
||||
}
|
||||
S.EndHorizontalLay();
|
||||
|
||||
|
|
|
@ -182,8 +182,9 @@ void EffectRepeat::PopulateOrExchange(ShuttleGui & S)
|
|||
|
||||
S.StartMultiColumn(1, wxCENTER);
|
||||
{
|
||||
mCurrentTime = S.AddVariableText(_("Current selection length: dd:hh:mm:ss"));
|
||||
mTotalTime = S.AddVariableText(_("New selection length: dd:hh:mm:ss"));
|
||||
mCurrentTime = S.AddVariableText(
|
||||
XO("Current selection length: dd:hh:mm:ss"));
|
||||
mTotalTime = S.AddVariableText(XO("New selection length: dd:hh:mm:ss"));
|
||||
}
|
||||
S.EndMultiColumn();
|
||||
}
|
||||
|
|
|
@ -407,7 +407,7 @@ void EffectScienFilter::PopulateOrExchange(ShuttleGui & S)
|
|||
|
||||
S.StartVerticalLay();
|
||||
{
|
||||
S.AddVariableText(_("+ dB"), false, wxCENTER);
|
||||
S.AddVariableText(XO("+ dB"), false, wxCENTER);
|
||||
mdBMaxSlider = S.Id(ID_dBMax)
|
||||
.Name(XO("Max dB"))
|
||||
.Style(wxSL_VERTICAL | wxSL_INVERSE)
|
||||
|
@ -423,7 +423,7 @@ void EffectScienFilter::PopulateOrExchange(ShuttleGui & S)
|
|||
mdBMinSlider->SetAccessible(safenew SliderAx(mdBMinSlider, _("%d dB")));
|
||||
#endif
|
||||
|
||||
S.AddVariableText(_("- dB"), false, wxCENTER);
|
||||
S.AddVariableText(XO("- dB"), false, wxCENTER);
|
||||
}
|
||||
S.EndVerticalLay();
|
||||
|
||||
|
@ -483,14 +483,16 @@ void EffectScienFilter::PopulateOrExchange(ShuttleGui & S)
|
|||
);
|
||||
S.AddSpace(1, 1);
|
||||
|
||||
mRippleCtlP = S.AddVariableText(_("&Passband Ripple:"), false, wxALL | wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
|
||||
mRippleCtlP = S.AddVariableText( XO("&Passband Ripple:"),
|
||||
false, wxALL | wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
|
||||
mRippleCtl = S.Id(ID_Ripple)
|
||||
.Name(XO("Passband Ripple (dB)"))
|
||||
.Validator<FloatingPointValidator<float>>(
|
||||
1, &mRipple, NumValidatorStyle::DEFAULT,
|
||||
MIN_Passband, MAX_Passband)
|
||||
.AddTextBox( {}, wxT(""), 10);
|
||||
mRippleCtlU = S.AddVariableText(_("dB"), false, wxALL | wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
|
||||
mRippleCtlU = S.AddVariableText(XO("dB"),
|
||||
false, wxALL | wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
|
||||
|
||||
mFilterSubTypeCtl = S.Id(ID_SubType)
|
||||
.Validator<wxGenericValidator>(&mFilterSubtype)
|
||||
|
@ -507,14 +509,18 @@ void EffectScienFilter::PopulateOrExchange(ShuttleGui & S)
|
|||
.AddTextBox(XO("C&utoff:"), wxT(""), 10);
|
||||
S.AddUnits(_("Hz"));
|
||||
|
||||
mStopbandRippleCtlP = S.AddVariableText(_("Minimum S&topband Attenuation:"), false, wxALL | wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
|
||||
mStopbandRippleCtlP =
|
||||
S.AddVariableText(XO("Minimum S&topband Attenuation:"),
|
||||
false, wxALL | wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
|
||||
mStopbandRippleCtl = S.Id(ID_StopbandRipple)
|
||||
.Name(XO("Minimum S&topband Attenuation (dB)"))
|
||||
.Validator<FloatingPointValidator<float>>(
|
||||
1, &mStopbandRipple, NumValidatorStyle::DEFAULT,
|
||||
MIN_Stopband, MAX_Stopband)
|
||||
.AddTextBox( {}, wxT(""), 10);
|
||||
mStopbandRippleCtlU = S.AddVariableText(_("dB"), false, wxALL | wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
|
||||
mStopbandRippleCtlU =
|
||||
S.AddVariableText(XO("dB"),
|
||||
false, wxALL | wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
|
||||
}
|
||||
S.EndMultiColumn();
|
||||
S.AddSpace(1, 1);
|
||||
|
|
|
@ -96,26 +96,26 @@ ScoreAlignDialog::ScoreAlignDialog(ScoreAlignParams ¶ms)
|
|||
S.StartMultiColumn(3, wxEXPAND | wxALIGN_CENTER_VERTICAL);
|
||||
S.SetStretchyCol(1);
|
||||
|
||||
mFramePeriodLabel = S.AddVariableText(_("Frame Period:"), true,
|
||||
wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
|
||||
mFramePeriodLabel = S.AddVariableText(
|
||||
XO("Frame Period:"), true, wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
|
||||
mFramePeriodSlider = S.Id(ID_FRAMEPERIOD)
|
||||
.Name(XO("Frame Period"))
|
||||
.Style(wxSL_HORIZONTAL)
|
||||
.MinSize( { 300, -1 } )
|
||||
.AddSlider(wxT(""),
|
||||
/*pos*/ (int) (p.mFramePeriod * 100 + 0.5), /*max*/ 50, /*min*/ 5);
|
||||
mFramePeriodText = S.AddVariableText(SA_DFT_FRAME_PERIOD_TEXT, true,
|
||||
wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
|
||||
mFramePeriodText = S.AddVariableText(
|
||||
SA_DFT_FRAME_PERIOD_TEXT, true, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
|
||||
|
||||
mWindowSizeLabel = S.AddVariableText(_("Window Size:"), true,
|
||||
wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
|
||||
mWindowSizeLabel = S.AddVariableText(
|
||||
XO("Window Size:"), true, wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
|
||||
mWindowSizeSlider = S.Id(ID_WINDOWSIZE)
|
||||
.Name(XO("Window Size"))
|
||||
.Style(wxSL_HORIZONTAL)
|
||||
.AddSlider(wxT(""),
|
||||
/*pos*/ (int) (p.mWindowSize * 100 + 0.5), /*max*/ 100, /*min*/ 5);
|
||||
mWindowSizeText = S.AddVariableText(SA_DFT_WINDOW_SIZE_TEXT, true,
|
||||
wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
|
||||
mWindowSizeText = S.AddVariableText(
|
||||
SA_DFT_WINDOW_SIZE_TEXT, true, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
|
||||
|
||||
mForceFinalAlignmentCheckBox = S.Id(ID_FORCEFINALALIGNMENT)
|
||||
.Name(XO("Force Final Alignment"))
|
||||
|
@ -128,59 +128,60 @@ ScoreAlignDialog::ScoreAlignDialog(ScoreAlignParams ¶ms)
|
|||
wxT("Ignore Silence at Beginnings and Endings"),
|
||||
p.mIgnoreSilence );
|
||||
// need a third column after checkboxes:
|
||||
S.AddVariableText(wxT(""), true, wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
|
||||
S.AddVariableText({}, true, wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
|
||||
|
||||
mSilenceThresholdLabel = S.AddVariableText(_("Silence Threshold:"),
|
||||
true, wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
|
||||
mSilenceThresholdLabel = S.AddVariableText(XO("Silence Threshold:"),
|
||||
true, wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
|
||||
mSilenceThresholdSlider = S.Id(ID_SILENCETHRESHOLD)
|
||||
.Name(XO("Silence Threshold"))
|
||||
.Style(wxSL_HORIZONTAL)
|
||||
.AddSlider(wxT(""),
|
||||
/*pos*/ (int) (p.mSilenceThreshold * 1000 + 0.5), /*max*/ 500);
|
||||
mSilenceThresholdText = S.AddVariableText(SA_DFT_SILENCE_THRESHOLD_TEXT,
|
||||
true, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
|
||||
mSilenceThresholdText = S.AddVariableText(
|
||||
SA_DFT_SILENCE_THRESHOLD_TEXT,
|
||||
true, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
|
||||
|
||||
/* i18n-hint: The English would be clearer if it had 'Duration' rather than 'Time'
|
||||
This is a NEW experimental effect, and until we have it documented in the user
|
||||
manual we don't have a clear description of what this parameter does.
|
||||
It is OK to leave it in English. */
|
||||
mPresmoothLabel = S.AddVariableText(_("Presmooth Time:"), true,
|
||||
wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
|
||||
mPresmoothLabel = S.AddVariableText(
|
||||
XO("Presmooth Time:"), true, wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
|
||||
mPresmoothSlider = S.Id(ID_PRESMOOTH)
|
||||
.Name(XO("Presmooth Time"))
|
||||
.Style(wxSL_HORIZONTAL)
|
||||
.AddSlider(wxT(""),
|
||||
/*pos*/ (int) (p.mPresmoothTime * 100 + 0.5), /*max*/ 500);
|
||||
mPresmoothText = S.AddVariableText(SA_DFT_PRESMOOTH_TIME_TEXT, true,
|
||||
wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
|
||||
mPresmoothText = S.AddVariableText(
|
||||
SA_DFT_PRESMOOTH_TIME_TEXT, true, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
|
||||
|
||||
/* i18n-hint: The English would be clearer if it had 'Duration' rather than 'Time'
|
||||
This is a NEW experimental effect, and until we have it documented in the user
|
||||
manual we don't have a clear description of what this parameter does.
|
||||
It is OK to leave it in English. */
|
||||
mLineTimeLabel = S.AddVariableText(_("Line Time:"), true,
|
||||
wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
|
||||
mLineTimeLabel = S.AddVariableText(XO("Line Time:"), true,
|
||||
wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
|
||||
mLineTimeSlider = S.Id(ID_LINETIME)
|
||||
.Name(XO("Line Time"))
|
||||
.Style(wxSL_HORIZONTAL)
|
||||
.AddSlider(wxT(""),
|
||||
/*pos*/ (int) (p.mLineTime * 100 + 0.5), /*max*/ 500);
|
||||
mLineTimeText = S.AddVariableText(SA_DFT_LINE_TIME_TEXT, true,
|
||||
wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
|
||||
mLineTimeText = S.AddVariableText(
|
||||
SA_DFT_LINE_TIME_TEXT, true, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
|
||||
|
||||
/* i18n-hint: The English would be clearer if it had 'Duration' rather than 'Time'
|
||||
This is a NEW experimental effect, and until we have it documented in the user
|
||||
manual we don't have a clear description of what this parameter does.
|
||||
It is OK to leave it in English. */
|
||||
mSmoothTimeLabel = S.AddVariableText(_("Smooth Time:"), true,
|
||||
wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
|
||||
mSmoothTimeLabel = S.AddVariableText(
|
||||
XO("Smooth Time:"), true, wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
|
||||
mSmoothTimeSlider = S.Id(ID_SMOOTHTIME)
|
||||
.Name(XO("Smooth Time"))
|
||||
.Style(wxSL_HORIZONTAL)
|
||||
.AddSlider(wxT(""),
|
||||
/*pos*/ (int) (p.mSmoothTime * 100 + 0.5), /*max*/ 500);
|
||||
mSmoothTimeText = S.AddVariableText(SA_DFT_SMOOTH_TIME_TEXT, true,
|
||||
wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
|
||||
mSmoothTimeText = S.AddVariableText(
|
||||
SA_DFT_SMOOTH_TIME_TEXT, true, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
|
||||
|
||||
S.EndMultiColumn();
|
||||
S.EndStatic();
|
||||
|
|
|
@ -811,12 +811,12 @@ void VSTEffectOptionsDialog::PopulateOrExchange(ShuttleGui & S)
|
|||
{
|
||||
S.StartStatic(XO("Buffer Size"));
|
||||
{
|
||||
S.AddVariableText(wxString() +
|
||||
_("The buffer size controls the number of samples sent to the effect ") +
|
||||
_("on each iteration. Smaller values will cause slower processing and ") +
|
||||
_("some effects require 8192 samples or less to work properly. However ") +
|
||||
_("most effects can accept large buffers and using them will greatly ") +
|
||||
_("reduce processing time."),
|
||||
S.AddVariableText( XO(
|
||||
"The buffer size controls the number of samples sent to the effect "
|
||||
"on each iteration. Smaller values will cause slower processing and "
|
||||
"some effects require 8192 samples or less to work properly. However "
|
||||
"most effects can accept large buffers and using them will greatly "
|
||||
"reduce processing time."),
|
||||
false, 0, 650);
|
||||
|
||||
S.StartHorizontalLay(wxALIGN_LEFT);
|
||||
|
@ -835,12 +835,12 @@ void VSTEffectOptionsDialog::PopulateOrExchange(ShuttleGui & S)
|
|||
|
||||
S.StartStatic(XO("Latency Compensation"));
|
||||
{
|
||||
S.AddVariableText(wxString() +
|
||||
_("As part of their processing, some VST effects must delay returning ") +
|
||||
_("audio to Audacity. When not compensating for this delay, you will ") +
|
||||
_("notice that small silences have been inserted into the audio. ") +
|
||||
_("Enabling this option will provide that compensation, but it may ") +
|
||||
_("not work for all VST effects."),
|
||||
S.AddVariableText( XO(
|
||||
"As part of their processing, some VST effects must delay returning "
|
||||
"audio to Audacity. When not compensating for this delay, you will "
|
||||
"notice that small silences have been inserted into the audio. "
|
||||
"Enabling this option will provide that compensation, but it may "
|
||||
"not work for all VST effects."),
|
||||
false, 0, 650);
|
||||
|
||||
S.StartHorizontalLay(wxALIGN_LEFT);
|
||||
|
@ -854,10 +854,10 @@ void VSTEffectOptionsDialog::PopulateOrExchange(ShuttleGui & S)
|
|||
|
||||
S.StartStatic(XO("Graphical Mode"));
|
||||
{
|
||||
S.AddVariableText(wxString() +
|
||||
_("Most VST effects have a graphical interface for setting parameter values.") +
|
||||
_(" A basic text-only method is also available. ") +
|
||||
_(" Reopen the effect for this to take effect."),
|
||||
S.AddVariableText( XO(
|
||||
"Most VST effects have a graphical interface for setting parameter values."
|
||||
" A basic text-only method is also available. "
|
||||
" Reopen the effect for this to take effect."),
|
||||
false, 0, 650);
|
||||
S.TieCheckBox(_("Enable &graphical interface"),
|
||||
mUseGUI);
|
||||
|
|
|
@ -381,12 +381,12 @@ void AudioUnitEffectOptionsDialog::PopulateOrExchange(ShuttleGui & S)
|
|||
{
|
||||
S.StartStatic(XO("Latency Compensation"));
|
||||
{
|
||||
S.AddVariableText(wxString() +
|
||||
_("As part of their processing, some Audio Unit effects must delay returning ") +
|
||||
_("audio to Audacity. When not compensating for this delay, you will ") +
|
||||
_("notice that small silences have been inserted into the audio. ") +
|
||||
_("Enabling this option will provide that compensation, but it may ") +
|
||||
_("not work for all Audio Unit effects."),
|
||||
S.AddVariableText( XO(
|
||||
"As part of their processing, some Audio Unit effects must delay returning "
|
||||
"audio to Audacity. When not compensating for this delay, you will "
|
||||
"notice that small silences have been inserted into the audio. "
|
||||
"Enabling this option will provide that compensation, but it may "
|
||||
"not work for all Audio Unit effects."),
|
||||
false, 0, 650 );
|
||||
|
||||
S.StartHorizontalLay(wxALIGN_LEFT);
|
||||
|
@ -400,11 +400,11 @@ void AudioUnitEffectOptionsDialog::PopulateOrExchange(ShuttleGui & S)
|
|||
|
||||
S.StartStatic(XO("User Interface"));
|
||||
{
|
||||
S.AddVariableText(wxString() +
|
||||
_("Select \"Full\" to use the graphical interface if supplied by the Audio Unit.") +
|
||||
_(" Select \"Generic\" to use the system supplied generic interface.") +
|
||||
_(" Select \"Basic\" for a basic text-only interface.") +
|
||||
_(" Reopen the effect for this to take effect."),
|
||||
S.AddVariableText( XO(
|
||||
"Select \"Full\" to use the graphical interface if supplied by the Audio Unit."
|
||||
" Select \"Generic\" to use the system supplied generic interface."
|
||||
" Select \"Basic\" for a basic text-only interface."
|
||||
" Reopen the effect for this to take effect."),
|
||||
false, 0, 650);
|
||||
|
||||
S.StartHorizontalLay(wxALIGN_LEFT);
|
||||
|
|
|
@ -451,12 +451,12 @@ void LadspaEffectOptionsDialog::PopulateOrExchange(ShuttleGui & S)
|
|||
{
|
||||
S.StartStatic(XO("Latency Compensation"));
|
||||
{
|
||||
S.AddVariableText(wxString() +
|
||||
_("As part of their processing, some LADSPA effects must delay returning ") +
|
||||
_("audio to Audacity. When not compensating for this delay, you will ") +
|
||||
_("notice that small silences have been inserted into the audio. ") +
|
||||
_("Enabling this option will provide that compensation, but it may ") +
|
||||
_("not work for all LADSPA effects."),
|
||||
S.AddVariableText( XO(
|
||||
"As part of their processing, some LADSPA effects must delay returning "
|
||||
"audio to Audacity. When not compensating for this delay, you will "
|
||||
"notice that small silences have been inserted into the audio. "
|
||||
"Enabling this option will provide that compensation, but it may "
|
||||
"not work for all LADSPA effects."),
|
||||
false, 0, 650);
|
||||
|
||||
S.StartHorizontalLay(wxALIGN_LEFT);
|
||||
|
|
|
@ -248,12 +248,12 @@ void LV2EffectSettingsDialog::PopulateOrExchange(ShuttleGui &S)
|
|||
IntegerValidator<int> vld(&mBufferSize);
|
||||
vld.SetRange(8, DEFAULT_BLOCKSIZE);
|
||||
|
||||
S.AddVariableText(wxString() +
|
||||
_("The buffer size controls the number of samples sent to the effect ") +
|
||||
_("on each iteration. Smaller values will cause slower processing and ") +
|
||||
_("some effects require 8192 samples or less to work properly. However ") +
|
||||
_("most effects can accept large buffers and using them will greatly ") +
|
||||
_("reduce processing time."),
|
||||
S.AddVariableText( XO(
|
||||
"The buffer size controls the number of samples sent to the effect "
|
||||
"on each iteration. Smaller values will cause slower processing and "
|
||||
"some effects require 8192 samples or less to work properly. However "
|
||||
"most effects can accept large buffers and using them will greatly "
|
||||
"reduce processing time."),
|
||||
false, 0, 650);
|
||||
|
||||
S.StartHorizontalLay(wxALIGN_LEFT);
|
||||
|
@ -273,12 +273,12 @@ void LV2EffectSettingsDialog::PopulateOrExchange(ShuttleGui &S)
|
|||
|
||||
S.StartStatic(XO("Latency Compensation"));
|
||||
{
|
||||
S.AddVariableText(wxString() +
|
||||
_("As part of their processing, some LV2 effects must delay returning ") +
|
||||
_("audio to Audacity. When not compensating for this delay, you will ") +
|
||||
_("notice that small silences have been inserted into the audio. ") +
|
||||
_("Enabling this setting will provide that compensation, but it may ") +
|
||||
_("not work for all LV2 effects."),
|
||||
S.AddVariableText( XO(
|
||||
"As part of their processing, some LV2 effects must delay returning "
|
||||
"audio to Audacity. When not compensating for this delay, you will "
|
||||
"notice that small silences have been inserted into the audio. "
|
||||
"Enabling this setting will provide that compensation, but it may "
|
||||
"not work for all LV2 effects."),
|
||||
false, 0, 650);
|
||||
|
||||
S.StartHorizontalLay(wxALIGN_LEFT);
|
||||
|
@ -292,10 +292,10 @@ void LV2EffectSettingsDialog::PopulateOrExchange(ShuttleGui &S)
|
|||
|
||||
S.StartStatic(XO("Graphical Mode"));
|
||||
{
|
||||
S.AddVariableText(wxString() +
|
||||
_("LV2 effects can have a graphical interface for setting parameter values.") +
|
||||
_(" A basic text-only method is also available. ") +
|
||||
_(" Reopen the effect for this to take effect."),
|
||||
S.AddVariableText( XO(
|
||||
"LV2 effects can have a graphical interface for setting parameter values."
|
||||
" A basic text-only method is also available. "
|
||||
" Reopen the effect for this to take effect."),
|
||||
false, 0, 650);
|
||||
S.TieCheckBox(_("Enable &graphical interface"),
|
||||
mUseGUI);
|
||||
|
|
|
@ -2607,7 +2607,7 @@ void NyquistEffect::BuildPromptWindow(ShuttleGui & S)
|
|||
{
|
||||
S.SetStretchyCol(1);
|
||||
|
||||
S.AddVariableText(_("Enter Nyquist Command: "));
|
||||
S.AddVariableText(XO("Enter Nyquist Command: "));
|
||||
|
||||
S.AddSpace(1, 1);
|
||||
|
||||
|
|
|
@ -1429,7 +1429,7 @@ ExportMixerDialog::ExportMixerDialog( const TrackList *tracks, bool selectedOnly
|
|||
S.StartHorizontalLay(wxALIGN_CENTRE | wxALL, 0);
|
||||
{
|
||||
mChannelsText = S.AddVariableText(
|
||||
label.Translation(),
|
||||
label,
|
||||
false, wxALIGN_LEFT | wxALL );
|
||||
|
||||
S
|
||||
|
|
|
@ -1560,7 +1560,9 @@ void ExportFFmpegOptions::PopulateOrExchange(ShuttleGui & S)
|
|||
mCodecName = S.Id(FECodecNameID).AddVariableText( {} );
|
||||
}
|
||||
S.EndMultiColumn();
|
||||
S.AddVariableText(_("Not all formats and codecs are compatible. Nor are all option combinations compatible with all codecs."), false);
|
||||
S.AddVariableText(XO(
|
||||
"Not all formats and codecs are compatible. Nor are all option combinations compatible with all codecs."),
|
||||
false);
|
||||
S.StartMultiColumn(2, wxEXPAND);
|
||||
{
|
||||
S.StartMultiColumn(2, wxEXPAND);
|
||||
|
@ -1587,11 +1589,11 @@ void ExportFFmpegOptions::PopulateOrExchange(ShuttleGui & S)
|
|||
.TieTextBox(XO("Language:"), {wxT("/FileFormats/FFmpegLanguage"), wxEmptyString}, 9);
|
||||
|
||||
S.AddSpace( 20,0 );
|
||||
S.AddVariableText(_("Bit Reservoir"));
|
||||
S.AddVariableText(XO("Bit Reservoir"));
|
||||
S.Id(FEBitReservoirID).TieCheckBox( {}, {wxT("/FileFormats/FFmpegBitReservoir"), true});
|
||||
|
||||
S.AddSpace( 20,0 );
|
||||
S.AddVariableText(_("VBL"));
|
||||
S.AddVariableText(XO("VBL"));
|
||||
S.Id(FEVariableBlockLenID).TieCheckBox( {}, {wxT("/FileFormats/FFmpegVariableBlockLen"), true});
|
||||
}
|
||||
S.EndMultiColumn();
|
||||
|
@ -1670,7 +1672,7 @@ void ExportFFmpegOptions::PopulateOrExchange(ShuttleGui & S)
|
|||
|
||||
/* i18n-hint: Abbreviates "Linear Predictive Coding",
|
||||
but this text needs to be kept very short */
|
||||
S.AddVariableText(_("Use LPC"));
|
||||
S.AddVariableText(XO("Use LPC"));
|
||||
// PRL: This preference is not used anywhere!
|
||||
S.Id(FEUseLPCID).TieCheckBox( {}, {wxT("/FileFormats/FFmpegUseLPC"), true});
|
||||
}
|
||||
|
|
|
@ -599,7 +599,8 @@ public:
|
|||
}
|
||||
S.Id(ID_BROWSE).AddButton(XO("Browse..."), wxALIGN_RIGHT);
|
||||
/* i18n-hint: There is a button to the right of the arrow.*/
|
||||
S.AddVariableText(_("To get a free copy of LAME, click here -->"), true);
|
||||
S.AddVariableText(
|
||||
XO("To get a free copy of LAME, click here -->"), true);
|
||||
/* i18n-hint: (verb)*/
|
||||
S.Id(ID_DLOAD).AddButton(XO("Download"), wxALIGN_RIGHT);
|
||||
}
|
||||
|
|
|
@ -346,7 +346,7 @@ void ExportMultipleDialog::PopulateOrExchange(ShuttleGui& S)
|
|||
S.SetStretchyCol(1);
|
||||
{
|
||||
// Row 3 (indented)
|
||||
S.AddVariableText(wxT(" "), false);
|
||||
S.AddVariableText(Verbatim(" "), false);
|
||||
mFirst = S.Id(FirstID)
|
||||
.AddCheckBox(_("Include audio before first label"), false);
|
||||
|
||||
|
@ -355,7 +355,8 @@ void ExportMultipleDialog::PopulateOrExchange(ShuttleGui& S)
|
|||
S.StartMultiColumn(2, wxEXPAND);
|
||||
S.SetStretchyCol(1);
|
||||
{
|
||||
mFirstFileLabel = S.AddVariableText(_("First file name:"), false);
|
||||
mFirstFileLabel =
|
||||
S.AddVariableText(XO("First file name:"), false);
|
||||
mFirstFileName = S.Id(FirstFileNameID)
|
||||
.Prop(1)
|
||||
.Name(XO("First file name"))
|
||||
|
@ -397,8 +398,8 @@ void ExportMultipleDialog::PopulateOrExchange(ShuttleGui& S)
|
|||
S.SetStretchyCol(2);
|
||||
{
|
||||
// Row 3 (indented)
|
||||
S.AddVariableText(wxT(" "), false);
|
||||
mPrefixLabel = S.AddVariableText(_("File name prefix:"), false);
|
||||
S.AddVariableText(Verbatim(" "), false);
|
||||
mPrefixLabel = S.AddVariableText(XO("File name prefix:"), false);
|
||||
mPrefix = S.Id(PrefixID)
|
||||
.Name(XO("File name prefix"))
|
||||
.TieTextBox( {},
|
||||
|
|
|
@ -137,7 +137,8 @@ void DirectoriesPrefs::PopulateOrExchange(ShuttleGui & S)
|
|||
}
|
||||
S.EndTwoColumn();
|
||||
|
||||
S.AddVariableText(_("If the available system memory falls below this value, audio will no longer\nbe cached in memory and will be written to disk."),
|
||||
S.AddVariableText(XO(
|
||||
"If the available system memory falls below this value, audio will no longer\nbe cached in memory and will be written to disk."),
|
||||
false, 0, 600);
|
||||
}
|
||||
S.EndStatic();
|
||||
|
|
|
@ -212,7 +212,7 @@ void KeyConfigPrefs::PopulateOrExchange(ShuttleGui & S)
|
|||
|
||||
S.StartHorizontalLay(wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 0);
|
||||
{
|
||||
mFilterLabel = S.AddVariableText(_("Searc&h:"));
|
||||
mFilterLabel = S.AddVariableText(XO("Searc&h:"));
|
||||
|
||||
if (!mFilter) {
|
||||
mFilter = safenew wxTextCtrl(S.GetParent(),
|
||||
|
|
|
@ -101,27 +101,24 @@ void LibraryPrefs::PopulateOrExchange(ShuttleGui & S)
|
|||
{
|
||||
S.StartTwoColumn();
|
||||
{
|
||||
S.AddVariableText(_("MP3 Library Version:"),
|
||||
true,
|
||||
wxALL | wxALIGN_RIGHT | wxALIGN_CENTRE_VERTICAL);
|
||||
mMP3Version = S.AddVariableText(wxT("9.99"),
|
||||
true,
|
||||
wxALL | wxALIGN_LEFT | wxALIGN_CENTRE_VERTICAL);
|
||||
S.AddVariableText(XO("MP3 Library Version:"),
|
||||
true, wxALL | wxALIGN_RIGHT | wxALIGN_CENTRE_VERTICAL);
|
||||
// Change this text later:
|
||||
mMP3Version = S.AddVariableText(Verbatim("9.99"),
|
||||
true, wxALL | wxALIGN_LEFT | wxALIGN_CENTRE_VERTICAL);
|
||||
// Old buttons, not needed now that the lib is built-in.
|
||||
#ifndef MP3_EXPORT_BUILT_IN
|
||||
|
||||
S.AddVariableText(_("LAME MP3 Library:"),
|
||||
true,
|
||||
wxALL | wxALIGN_RIGHT | wxALIGN_CENTRE_VERTICAL);
|
||||
S.AddVariableText(XO("LAME MP3 Library:"),
|
||||
true, wxALL | wxALIGN_RIGHT | wxALIGN_CENTRE_VERTICAL);
|
||||
S.Id(ID_MP3_FIND_BUTTON)
|
||||
#ifdef DISABLE_DYNAMIC_LOADING_LAME
|
||||
.Disable()
|
||||
#endif
|
||||
.AddButton(XO("&Locate..."),
|
||||
wxALL | wxALIGN_LEFT | wxALIGN_CENTRE_VERTICAL);
|
||||
S.AddVariableText(_("LAME MP3 Library:"),
|
||||
true,
|
||||
wxALL | wxALIGN_RIGHT | wxALIGN_CENTRE_VERTICAL);
|
||||
S.AddVariableText(XO("LAME MP3 Library:"),
|
||||
true, wxALL | wxALIGN_RIGHT | wxALIGN_CENTRE_VERTICAL);
|
||||
S.Id(ID_MP3_DOWN_BUTTON)
|
||||
#ifdef DISABLE_DYNAMIC_LOADING_LAME
|
||||
.Disable()
|
||||
|
@ -139,21 +136,19 @@ void LibraryPrefs::PopulateOrExchange(ShuttleGui & S)
|
|||
{
|
||||
S.StartTwoColumn();
|
||||
{
|
||||
S.AddVariableText(_("FFmpeg Library Version:"),
|
||||
true,
|
||||
wxALL | wxALIGN_RIGHT | wxALIGN_CENTRE_VERTICAL);
|
||||
S.AddVariableText(XO("FFmpeg Library Version:"),
|
||||
true, wxALL | wxALIGN_RIGHT | wxALIGN_CENTRE_VERTICAL);
|
||||
#if defined(USE_FFMPEG)
|
||||
mFFmpegVersion = S.AddVariableText(_("No compatible FFmpeg library was found"),
|
||||
true,
|
||||
wxALL | wxALIGN_LEFT | wxALIGN_CENTRE_VERTICAL);
|
||||
mFFmpegVersion = S.AddVariableText(
|
||||
XO("No compatible FFmpeg library was found"),
|
||||
true, wxALL | wxALIGN_LEFT | wxALIGN_CENTRE_VERTICAL);
|
||||
#else
|
||||
mFFmpegVersion = S.AddVariableText(wxT("FFmpeg support is not compiled in"),
|
||||
true,
|
||||
wxALL | wxALIGN_LEFT | wxALIGN_CENTRE_VERTICAL);
|
||||
mFFmpegVersion = S.AddVariableText(
|
||||
XO("FFmpeg support is not compiled in"),
|
||||
true, wxALL | wxALIGN_LEFT | wxALIGN_CENTRE_VERTICAL);
|
||||
#endif
|
||||
S.AddVariableText(_("FFmpeg Library:"),
|
||||
true,
|
||||
wxALL | wxALIGN_RIGHT | wxALIGN_CENTRE_VERTICAL);
|
||||
S.AddVariableText(XO("FFmpeg Library:"),
|
||||
true, wxALL | wxALIGN_RIGHT | wxALIGN_CENTRE_VERTICAL);
|
||||
S.Id(ID_FFMPEG_FIND_BUTTON);
|
||||
S
|
||||
#if !defined(USE_FFMPEG) || defined(DISABLE_DYNAMIC_LOADING_FFMPEG)
|
||||
|
@ -161,9 +156,8 @@ void LibraryPrefs::PopulateOrExchange(ShuttleGui & S)
|
|||
#endif
|
||||
.AddButton(XO("Loca&te..."),
|
||||
wxALL | wxALIGN_LEFT | wxALIGN_CENTRE_VERTICAL);
|
||||
S.AddVariableText(_("FFmpeg Library:"),
|
||||
true,
|
||||
wxALL | wxALIGN_RIGHT | wxALIGN_CENTRE_VERTICAL);
|
||||
S.AddVariableText(XO("FFmpeg Library:"),
|
||||
true, wxALL | wxALIGN_RIGHT | wxALIGN_CENTRE_VERTICAL);
|
||||
S.Id(ID_FFMPEG_DOWN_BUTTON);
|
||||
S
|
||||
#if !defined(USE_FFMPEG) || defined(DISABLE_DYNAMIC_LOADING_FFMPEG)
|
||||
|
|
Loading…
Reference in New Issue