TranslatableString for titles, and spin control and combo prompts
This commit is contained in:
parent
707a069712
commit
acd1158e1b
|
@ -469,14 +469,15 @@ public:
|
|||
S.SetBorder(10);
|
||||
S.StartVerticalLay(true);
|
||||
{
|
||||
S.AddTitle( wxString::Format(
|
||||
_("Audacity needs the file '%s' to import and export audio via FFmpeg."),
|
||||
mName));
|
||||
S.AddTitle(
|
||||
XO(
|
||||
"Audacity needs the file '%s' to import and export audio via FFmpeg.")
|
||||
.Format( mName ) );
|
||||
|
||||
S.SetBorder(3);
|
||||
S.StartHorizontalLay(wxALIGN_LEFT, true);
|
||||
{
|
||||
S.AddTitle( wxString::Format(_("Location of '%s':"), mName) );
|
||||
S.AddTitle( XO("Location of '%s':").Format( mName ) );
|
||||
}
|
||||
S.EndHorizontalLay();
|
||||
|
||||
|
|
|
@ -266,18 +266,19 @@ void ShuttleGuiBase::AddUnits(const wxString &Prompt, int wrapWidth)
|
|||
}
|
||||
|
||||
/// Centred text string.
|
||||
void ShuttleGuiBase::AddTitle(const wxString &Prompt, int wrapWidth)
|
||||
void ShuttleGuiBase::AddTitle(const TranslatableString &Prompt, int wrapWidth)
|
||||
{
|
||||
if( Prompt.empty() )
|
||||
return;
|
||||
if( mShuttleMode != eIsCreating )
|
||||
return;
|
||||
auto text = safenew wxStaticText(GetParent(), -1, Prompt, wxDefaultPosition, wxDefaultSize,
|
||||
const auto translated = Prompt.Translation();
|
||||
auto text = safenew wxStaticText(GetParent(), -1, translated, wxDefaultPosition, wxDefaultSize,
|
||||
GetStyle( wxALIGN_CENTRE ));
|
||||
mpWind = text;
|
||||
if (wrapWidth > 0)
|
||||
text->Wrap(wrapWidth);
|
||||
mpWind->SetName(Prompt); // fix for bug 577 (NVDA/Narrator screen readers do not read static text in dialogs)
|
||||
mpWind->SetName(translated); // fix for bug 577 (NVDA/Narrator screen readers do not read static text in dialogs)
|
||||
UpdateSizers();
|
||||
}
|
||||
|
||||
|
@ -478,10 +479,13 @@ wxStaticText * ShuttleGuiBase::AddVariableText(
|
|||
return pStatic;
|
||||
}
|
||||
|
||||
wxComboBox * ShuttleGuiBase::AddCombo( const wxString &Prompt, const wxString &Selected,const wxArrayStringEx & choices )
|
||||
wxComboBox * ShuttleGuiBase::AddCombo(
|
||||
const TranslatableString &Prompt,
|
||||
const wxString &Selected, const wxArrayStringEx & choices )
|
||||
{
|
||||
HandleOptionality( Prompt );
|
||||
AddPrompt( Prompt );
|
||||
const auto translated = Prompt.Translation();
|
||||
HandleOptionality( translated );
|
||||
AddPrompt( translated );
|
||||
UseUpId();
|
||||
if( mShuttleMode != eIsCreating )
|
||||
return wxDynamicCast(wxWindow::FindWindowById( miId, mpDlg), wxComboBox);
|
||||
|
@ -499,7 +503,7 @@ wxComboBox * ShuttleGuiBase::AddCombo( const wxString &Prompt, const wxString &S
|
|||
|
||||
mpWind = pCombo = safenew wxComboBox(GetParent(), miId, Selected, wxDefaultPosition, wxDefaultSize,
|
||||
n, Choices, GetStyle( 0 ));
|
||||
mpWind->SetName(wxStripMenuCodes(Prompt));
|
||||
mpWind->SetName(wxStripMenuCodes(translated));
|
||||
|
||||
UpdateSizers();
|
||||
return pCombo;
|
||||
|
@ -569,10 +573,12 @@ wxSlider * ShuttleGuiBase::AddSlider(const wxString &Prompt, int pos, int Max, i
|
|||
return pSlider;
|
||||
}
|
||||
|
||||
wxSpinCtrl * ShuttleGuiBase::AddSpinCtrl(const wxString &Prompt, int Value, int Max, int Min)
|
||||
wxSpinCtrl * ShuttleGuiBase::AddSpinCtrl(
|
||||
const TranslatableString &Prompt, int Value, int Max, int Min)
|
||||
{
|
||||
HandleOptionality( Prompt );
|
||||
AddPrompt( Prompt );
|
||||
const auto translated = Prompt.Translation();
|
||||
HandleOptionality( translated );
|
||||
AddPrompt( translated );
|
||||
UseUpId();
|
||||
if( mShuttleMode != eIsCreating )
|
||||
return wxDynamicCast(wxWindow::FindWindowById( miId, mpDlg), wxSpinCtrl);
|
||||
|
@ -583,7 +589,7 @@ wxSpinCtrl * ShuttleGuiBase::AddSpinCtrl(const wxString &Prompt, int Value, int
|
|||
GetStyle( wxSP_VERTICAL | wxSP_ARROW_KEYS ),
|
||||
Min, Max, Value
|
||||
);
|
||||
mpWind->SetName(wxStripMenuCodes(Prompt));
|
||||
mpWind->SetName(wxStripMenuCodes(translated));
|
||||
miProp=1;
|
||||
UpdateSizers();
|
||||
return pSpinCtrl;
|
||||
|
@ -1299,9 +1305,11 @@ wxCheckBox * ShuttleGuiBase::DoTieCheckBoxOnRight(const wxString &Prompt, Wrappe
|
|||
return pCheckBox;
|
||||
}
|
||||
|
||||
wxSpinCtrl * ShuttleGuiBase::DoTieSpinCtrl( const wxString &Prompt, WrappedType & WrappedRef, const int max, const int min )
|
||||
wxSpinCtrl * ShuttleGuiBase::DoTieSpinCtrl(
|
||||
const TranslatableString &Prompt,
|
||||
WrappedType & WrappedRef, const int max, const int min )
|
||||
{
|
||||
HandleOptionality( Prompt );
|
||||
HandleOptionality( Prompt.Translation() );
|
||||
// The Add function does a UseUpId(), so don't do it here in that case.
|
||||
if( mShuttleMode == eIsCreating )
|
||||
return AddSpinCtrl( Prompt, WrappedRef.ReadAsInt(), max, min );
|
||||
|
@ -1625,7 +1633,8 @@ wxCheckBox * ShuttleGuiBase::TieCheckBoxOnRight(const wxString &Prompt, bool &Va
|
|||
return DoTieCheckBox( Prompt, WrappedRef );
|
||||
}
|
||||
|
||||
wxSpinCtrl * ShuttleGuiBase::TieSpinCtrl( const wxString &Prompt, int &Value, const int max, const int min )
|
||||
wxSpinCtrl * ShuttleGuiBase::TieSpinCtrl(
|
||||
const TranslatableString &Prompt, int &Value, const int max, const int min )
|
||||
{
|
||||
WrappedType WrappedRef(Value);
|
||||
return DoTieSpinCtrl( Prompt, WrappedRef, max, min );
|
||||
|
@ -1872,10 +1881,10 @@ wxSlider * ShuttleGuiBase::TieSlider(
|
|||
/// Variant of the standard TieSpinCtrl which does the two step exchange
|
||||
/// between gui and stack variable and stack variable and shuttle.
|
||||
wxSpinCtrl * ShuttleGuiBase::TieSpinCtrl(
|
||||
const wxString &Prompt,
|
||||
const SettingSpec< int > &Setting,
|
||||
const int max,
|
||||
const int min)
|
||||
const TranslatableString &Prompt,
|
||||
const SettingSpec< int > &Setting,
|
||||
const int max,
|
||||
const int min)
|
||||
{
|
||||
wxSpinCtrl * pSpinCtrl=NULL;
|
||||
|
||||
|
|
|
@ -268,11 +268,12 @@ public:
|
|||
void HandleOptionality(const wxString &Prompt);
|
||||
void AddPrompt(const wxString &Prompt, int wrapWidth = 0);
|
||||
void AddUnits(const wxString &Prompt, int wrapWidth = 0);
|
||||
void AddTitle(const wxString &Prompt, int wrapWidth = 0);
|
||||
void AddTitle(const TranslatableString &Prompt, int wrapWidth = 0);
|
||||
wxWindow * AddWindow(wxWindow * pWindow);
|
||||
wxSlider * AddSlider(const wxString &Prompt, int pos, int Max, int Min = 0);
|
||||
wxSlider * AddVSlider(const wxString &Prompt, int pos, int Max);
|
||||
wxSpinCtrl * AddSpinCtrl(const wxString &Prompt, int Value, int Max, int Min);
|
||||
wxSpinCtrl * AddSpinCtrl(const TranslatableString &Prompt,
|
||||
int Value, int Max, int Min);
|
||||
wxTreeCtrl * AddTree();
|
||||
|
||||
// Pass the same initValue to the sequence of calls to AddRadioButton and
|
||||
|
@ -331,7 +332,8 @@ public:
|
|||
wxGrid * AddGrid();
|
||||
wxCheckBox * AddCheckBox( const wxString &Prompt, bool Selected);
|
||||
wxCheckBox * AddCheckBoxOnRight( const wxString &Prompt, bool Selected);
|
||||
wxComboBox * AddCombo( const wxString &Prompt, const wxString &Selected,const wxArrayStringEx & choices );
|
||||
wxComboBox * AddCombo( const TranslatableString &Prompt,
|
||||
const wxString &Selected, const wxArrayStringEx & choices );
|
||||
wxChoice * AddChoice( const TranslatableString &Prompt,
|
||||
const TranslatableStrings &choices, int Selected = -1 );
|
||||
wxChoice * AddChoice( const TranslatableString &Prompt,
|
||||
|
@ -420,7 +422,8 @@ public:
|
|||
// and as many times as there are values in the enumeration.
|
||||
wxRadioButton * TieRadioButton();
|
||||
|
||||
wxSpinCtrl * TieSpinCtrl( const wxString &Prompt, int &Value, const int max, const int min = 0 );
|
||||
wxSpinCtrl * TieSpinCtrl( const TranslatableString &Prompt,
|
||||
int &Value, const int max, const int min = 0 );
|
||||
|
||||
|
||||
//-- Variants of the standard Tie functions which do two step exchange in one go
|
||||
|
@ -468,7 +471,7 @@ public:
|
|||
const int max,
|
||||
const int min = 0);
|
||||
virtual wxSpinCtrl * TieSpinCtrl(
|
||||
const wxString &Prompt,
|
||||
const TranslatableString &Prompt,
|
||||
const SettingSpec< int > &Setting,
|
||||
const int max,
|
||||
const int min);
|
||||
|
@ -553,7 +556,8 @@ private:
|
|||
const TranslatableString &Prompt, WrappedType & WrappedRef,
|
||||
const TranslatableStrings & choices );
|
||||
wxSlider * DoTieSlider( const wxString &Prompt, WrappedType & WrappedRef, const int max, const int min = 0 );
|
||||
wxSpinCtrl * DoTieSpinCtrl( const wxString &Prompt, WrappedType & WrappedRef, const int max, const int min = 0 );
|
||||
wxSpinCtrl * DoTieSpinCtrl( const TranslatableString &Prompt,
|
||||
WrappedType & WrappedRef, const int max, const int min = 0 );
|
||||
|
||||
std::vector<EnumValueSymbol> mRadioSymbols;
|
||||
wxString mRadioSettingName; /// The setting controlled by a group.
|
||||
|
|
|
@ -229,7 +229,7 @@ public:
|
|||
const int max,
|
||||
const int min = 0) override;
|
||||
wxSpinCtrl * TieSpinCtrl(
|
||||
const wxString &Prompt,
|
||||
const TranslatableString &Prompt,
|
||||
const SettingSpec< int > &Setting,
|
||||
const int max,
|
||||
const int min) override;
|
||||
|
@ -342,14 +342,14 @@ wxSlider * ShuttleGuiGetDefinition::TieSlider(
|
|||
return ShuttleGui::TieSlider( Prompt, Setting, max, min );
|
||||
}
|
||||
wxSpinCtrl * ShuttleGuiGetDefinition::TieSpinCtrl(
|
||||
const wxString &Prompt,
|
||||
const TranslatableString &Prompt,
|
||||
const SettingSpec< int > &Setting,
|
||||
const int max,
|
||||
const int min)
|
||||
{
|
||||
StartStruct();
|
||||
AddItem( Setting.GetPath(), "id" );
|
||||
AddItem( Prompt, "prompt" );
|
||||
AddItem( Prompt.Translation(), "prompt" );
|
||||
AddItem( "number", "type" );
|
||||
AddItem( Setting.GetDefault(), "default" );
|
||||
EndStruct();
|
||||
|
|
|
@ -263,11 +263,10 @@ void EffectChangePitch::PopulateOrExchange(ShuttleGui & S)
|
|||
{
|
||||
S.StartVerticalLay();
|
||||
{
|
||||
S.AddTitle(_("Change Pitch without Changing Tempo"));
|
||||
S.AddTitle(XO("Change Pitch without Changing Tempo"));
|
||||
S.AddTitle(
|
||||
XO("Estimated Start Pitch: %s%d (%.3f Hz)")
|
||||
.Format( pitch[m_nFromPitch], m_nFromOctave, m_FromFrequency)
|
||||
.Translation() );
|
||||
.Format( pitch[m_nFromPitch], m_nFromOctave, m_FromFrequency) );
|
||||
}
|
||||
S.EndVerticalLay();
|
||||
|
||||
|
|
|
@ -299,7 +299,7 @@ void EffectChangeSpeed::PopulateOrExchange(ShuttleGui & S)
|
|||
S.StartVerticalLay(0);
|
||||
{
|
||||
S.AddSpace(0, 5);
|
||||
S.AddTitle(_("Change Speed, affecting both Tempo and Pitch"));
|
||||
S.AddTitle(XO("Change Speed, affecting both Tempo and Pitch"));
|
||||
S.AddSpace(0, 10);
|
||||
|
||||
// Speed multiplier and percent change controls.
|
||||
|
|
|
@ -226,7 +226,7 @@ void EffectChangeTempo::PopulateOrExchange(ShuttleGui & S)
|
|||
S.StartVerticalLay(0);
|
||||
{
|
||||
S.AddSpace(0, 5);
|
||||
S.AddTitle(_("Change Tempo without Changing Pitch"));
|
||||
S.AddTitle(XO("Change Tempo without Changing Pitch"));
|
||||
S.SetBorder(5);
|
||||
|
||||
//
|
||||
|
|
|
@ -224,7 +224,8 @@ ContrastDialog::ContrastDialog(wxWindow * parent, wxWindowID id,
|
|||
S.StartHorizontalLay(wxCENTER, false);
|
||||
{
|
||||
/* i18n-hint: RMS abbreviates root mean square, a certain averaging method */
|
||||
S.AddTitle(_("Contrast Analyzer, for measuring RMS volume differences between two selections of audio."));
|
||||
S.AddTitle(XO(
|
||||
"Contrast Analyzer, for measuring RMS volume differences between two selections of audio."));
|
||||
}
|
||||
S.EndHorizontalLay();
|
||||
S.StartStatic( XO("Parameters") );
|
||||
|
|
|
@ -444,15 +444,15 @@ void EffectReverb::PopulateOrExchange(ShuttleGui & S)
|
|||
.Style(wxSL_HORIZONTAL) \
|
||||
.AddSlider( {}, DEF_ ## n, MAX_ ## n, MIN_ ## n);
|
||||
|
||||
SpinSlider(RoomSize, _("&Room Size (%):"))
|
||||
SpinSlider(PreDelay, _("&Pre-delay (ms):"))
|
||||
SpinSlider(Reverberance, _("Rever&berance (%):"))
|
||||
SpinSlider(HfDamping, _("Da&mping (%):"))
|
||||
SpinSlider(ToneLow, _("Tone &Low (%):"))
|
||||
SpinSlider(ToneHigh, _("Tone &High (%):"))
|
||||
SpinSlider(WetGain, _("Wet &Gain (dB):"))
|
||||
SpinSlider(DryGain, _("Dr&y Gain (dB):"))
|
||||
SpinSlider(StereoWidth, _("Stereo Wid&th (%):"))
|
||||
SpinSlider(RoomSize, XO("&Room Size (%):"))
|
||||
SpinSlider(PreDelay, XO("&Pre-delay (ms):"))
|
||||
SpinSlider(Reverberance, XO("Rever&berance (%):"))
|
||||
SpinSlider(HfDamping, XO("Da&mping (%):"))
|
||||
SpinSlider(ToneLow, XO("Tone &Low (%):"))
|
||||
SpinSlider(ToneHigh, XO("Tone &High (%):"))
|
||||
SpinSlider(WetGain, XO("Wet &Gain (dB):"))
|
||||
SpinSlider(DryGain, XO("Dr&y Gain (dB):"))
|
||||
SpinSlider(StereoWidth, XO("Stereo Wid&th (%):"))
|
||||
|
||||
#undef SpinSlider
|
||||
|
||||
|
|
|
@ -351,13 +351,13 @@ void EffectToneGen::PopulateOrExchange(ShuttleGui & S)
|
|||
{
|
||||
S.StartHorizontalLay(wxLEFT, 50);
|
||||
{
|
||||
S.AddTitle(_("Start"));
|
||||
S.AddTitle(XO("Start"));
|
||||
}
|
||||
S.EndHorizontalLay();
|
||||
|
||||
S.StartHorizontalLay(wxLEFT, 50);
|
||||
{
|
||||
S.AddTitle(_("End"));
|
||||
S.AddTitle(XO("End"));
|
||||
}
|
||||
S.EndHorizontalLay();
|
||||
}
|
||||
|
|
|
@ -226,7 +226,7 @@ void ExportPlugin::OptionsCreate(ShuttleGui &S, int WXUNUSED(format))
|
|||
{
|
||||
S.StartHorizontalLay(wxCENTER, 0);
|
||||
{
|
||||
S.Prop(1).AddTitle(_("No format specific options"));
|
||||
S.Prop(1).AddTitle(XO("No format specific options"));
|
||||
}
|
||||
S.EndHorizontalLay();
|
||||
}
|
||||
|
|
|
@ -120,7 +120,7 @@ void ExportCLOptions::PopulateOrExchange(ShuttleGui & S)
|
|||
S.StartMultiColumn(3, wxEXPAND);
|
||||
{
|
||||
S.SetStretchyCol(1);
|
||||
mCmd = S.AddCombo(_("Command:"),
|
||||
mCmd = S.AddCombo(XO("Command:"),
|
||||
cmd,
|
||||
cmds);
|
||||
S.Id(ID_BROWSE).AddButton(XO("Browse..."),
|
||||
|
@ -134,12 +134,13 @@ void ExportCLOptions::PopulateOrExchange(ShuttleGui & S)
|
|||
}
|
||||
S.EndHorizontalLay();
|
||||
|
||||
S.AddTitle(XO(
|
||||
/* i18n-hint: Some programmer-oriented terminology here:
|
||||
"Data" refers to the sound to be exported, "piped" means sent,
|
||||
and "standard in" means the default input stream that the external program,
|
||||
named by %f, will read. And yes, it's %f, not %s -- this isn't actually used
|
||||
in the program as a format string. Keep %f unchanged. */
|
||||
S.AddTitle(_("Data will be piped to standard in. \"%f\" uses the file name in the export window."));
|
||||
"Data will be piped to standard in. \"%f\" uses the file name in the export window."));
|
||||
}
|
||||
S.EndVerticalLay();
|
||||
}
|
||||
|
|
|
@ -1051,13 +1051,13 @@ int ExportFFmpeg::AskResample(int bitrate, int rate, int lowrate, int highrate,
|
|||
{
|
||||
S.AddTitle(
|
||||
(bitrate == 0
|
||||
? wxString::Format(
|
||||
_("The project sample rate (%d) is not supported by the current output\nfile format. "),
|
||||
rate)
|
||||
: wxString::Format(
|
||||
_("The project sample rate (%d) and bit rate (%d kbps) combination is not\nsupported by the current output file format. "),
|
||||
rate, bitrate/1024))
|
||||
+ _("You may resample to one of the rates below.")
|
||||
? XO(
|
||||
"The project sample rate (%d) is not supported by the current output\nfile format. ")
|
||||
.Format( rate )
|
||||
: XO(
|
||||
"The project sample rate (%d) and bit rate (%d kbps) combination is not\nsupported by the current output file format. ")
|
||||
.Format( rate, bitrate/1024))
|
||||
+ XO("You may resample to one of the rates below.")
|
||||
);
|
||||
}
|
||||
S.EndHorizontalLay();
|
||||
|
|
|
@ -1541,7 +1541,7 @@ void ExportFFmpegOptions::PopulateOrExchange(ShuttleGui & S)
|
|||
S.StartMultiColumn(7, wxEXPAND);
|
||||
{
|
||||
S.SetStretchyCol(1);
|
||||
mPresetCombo = S.Id(FEPresetID).AddCombo(_("Preset:"), gPrefs->Read(wxT("/FileFormats/FFmpegPreset"),wxEmptyString), mPresetNames);
|
||||
mPresetCombo = S.Id(FEPresetID).AddCombo(XO("Preset:"), gPrefs->Read(wxT("/FileFormats/FFmpegPreset"),wxEmptyString), mPresetNames);
|
||||
mLoadPreset = S.Id(FELoadPresetID).AddButton(XO("Load Preset"));
|
||||
mSavePreset = S.Id(FESavePresetID).AddButton(XO("Save Preset"));
|
||||
mDeletePreset = S.Id(FEDeletePresetID).AddButton(XO("Delete Preset"));
|
||||
|
@ -1606,19 +1606,19 @@ void ExportFFmpegOptions::PopulateOrExchange(ShuttleGui & S)
|
|||
|
||||
mBitrateSpin = S.Id(FEBitrateID)
|
||||
.ToolTip(XO("Bit Rate (bits/second) - influences the resulting file size and quality\nSome codecs may only accept specific values (128k, 192k, 256k etc)\n0 - automatic\nRecommended - 192000"))
|
||||
.TieSpinCtrl(_("Bit Rate:"), {wxT("/FileFormats/FFmpegBitRate"), 0}, 1000000, 0);
|
||||
.TieSpinCtrl(XO("Bit Rate:"), {wxT("/FileFormats/FFmpegBitRate"), 0}, 1000000, 0);
|
||||
|
||||
mQualitySpin = S.Id(FEQualityID)
|
||||
.ToolTip(XO("Overall quality, used differently by different codecs\nRequired for vorbis\n0 - automatic\n-1 - off (use bitrate instead)"))
|
||||
.TieSpinCtrl(_("Quality:"), {wxT("/FileFormats/FFmpegQuality"), 0}, 500, -1);
|
||||
.TieSpinCtrl(XO("Quality:"), {wxT("/FileFormats/FFmpegQuality"), 0}, 500, -1);
|
||||
|
||||
mSampleRateSpin = S.Id(FESampleRateID)
|
||||
.ToolTip(XO("Sample rate (Hz)\n0 - don't change sample rate"))
|
||||
.TieSpinCtrl(_("Sample Rate:"), {wxT("/FileFormats/FFmpegSampleRate"), 0}, 200000, 0);
|
||||
.TieSpinCtrl(XO("Sample Rate:"), {wxT("/FileFormats/FFmpegSampleRate"), 0}, 200000, 0);
|
||||
|
||||
mCutoffSpin = S.Id(FECutoffID)
|
||||
.ToolTip(XO("Audio cutoff bandwidth (Hz)\nOptional\n0 - automatic"))
|
||||
.TieSpinCtrl(_("Cutoff:"), {wxT("/FileFormats/FFmpegCutOff"), 0}, 10000000, 0);
|
||||
.TieSpinCtrl(XO("Cutoff:"), {wxT("/FileFormats/FFmpegCutOff"), 0}, 10000000, 0);
|
||||
|
||||
mProfileChoice = S.Id(FEProfileID)
|
||||
.ToolTip(XO("AAC Profile\nLow Complexity - default\nMost players won't play anything other than LC"))
|
||||
|
@ -1634,15 +1634,15 @@ void ExportFFmpegOptions::PopulateOrExchange(ShuttleGui & S)
|
|||
{
|
||||
mCompressionLevelSpin = S
|
||||
.ToolTip(XO("Compression level\nRequired for FLAC\n-1 - automatic\nmin - 0 (fast encoding, large output file)\nmax - 10 (slow encoding, small output file)"))
|
||||
.Id(FECompLevelID).TieSpinCtrl(_("Compression:"), {wxT("/FileFormats/FFmpegCompLevel"), 0}, 10, -1);
|
||||
.Id(FECompLevelID).TieSpinCtrl(XO("Compression:"), {wxT("/FileFormats/FFmpegCompLevel"), 0}, 10, -1);
|
||||
|
||||
mFrameSizeSpin = S.Id(FEFrameSizeID)
|
||||
.ToolTip(XO("Frame size\nOptional\n0 - default\nmin - 16\nmax - 65535"))
|
||||
.TieSpinCtrl(_("Frame:"), {wxT("/FileFormats/FFmpegFrameSize"), 0}, 65535, 0);
|
||||
.TieSpinCtrl(XO("Frame:"), {wxT("/FileFormats/FFmpegFrameSize"), 0}, 65535, 0);
|
||||
|
||||
mLPCCoeffsPrecisionSpin = S.Id(FELPCCoeffsID)
|
||||
.ToolTip(XO("LPC coefficients precision\nOptional\n0 - default\nmin - 1\nmax - 15"))
|
||||
.TieSpinCtrl(_("LPC"), {wxT("/FileFormats/FFmpegLPCCoefPrec"), 0}, 15, 0);
|
||||
.TieSpinCtrl(XO("LPC"), {wxT("/FileFormats/FFmpegLPCCoefPrec"), 0}, 15, 0);
|
||||
|
||||
mPredictionOrderMethodChoice = S.Id(FEPredOrderID)
|
||||
.ToolTip(XO("Prediction Order Method\nEstimate - fastest, lower compression\nLog search - slowest, best compression\nFull search - default"))
|
||||
|
@ -1656,19 +1656,19 @@ void ExportFFmpegOptions::PopulateOrExchange(ShuttleGui & S)
|
|||
|
||||
mMinPredictionOrderSpin = S.Id(FEMinPredID)
|
||||
.ToolTip(XO("Minimal prediction order\nOptional\n-1 - default\nmin - 0\nmax - 32 (with LPC) or 4 (without LPC)"))
|
||||
.TieSpinCtrl(_("Min. PdO"), {wxT("/FileFormats/FFmpegMinPredOrder"), -1}, 32, -1);
|
||||
.TieSpinCtrl(XO("Min. PdO"), {wxT("/FileFormats/FFmpegMinPredOrder"), -1}, 32, -1);
|
||||
|
||||
mMaxPredictionOrderSpin = S.Id(FEMaxPredID)
|
||||
.ToolTip(XO("Maximal prediction order\nOptional\n-1 - default\nmin - 0\nmax - 32 (with LPC) or 4 (without LPC)"))
|
||||
.TieSpinCtrl(_("Max. PdO"), {wxT("/FileFormats/FFmpegMaxPredOrder"), -1}, 32, -1);
|
||||
.TieSpinCtrl(XO("Max. PdO"), {wxT("/FileFormats/FFmpegMaxPredOrder"), -1}, 32, -1);
|
||||
|
||||
mMinPartitionOrderSpin = S.Id(FEMinPartOrderID)
|
||||
.ToolTip(XO("Minimal partition order\nOptional\n-1 - default\nmin - 0\nmax - 8"))
|
||||
.TieSpinCtrl(_("Min. PtO"), {wxT("/FileFormats/FFmpegMinPartOrder"), -1}, 8, -1);
|
||||
.TieSpinCtrl(XO("Min. PtO"), {wxT("/FileFormats/FFmpegMinPartOrder"), -1}, 8, -1);
|
||||
|
||||
mMaxPartitionOrderSpin = S.Id(FEMaxPartOrderID)
|
||||
.ToolTip(XO("Maximal partition order\nOptional\n-1 - default\nmin - 0\nmax - 8"))
|
||||
.TieSpinCtrl(_("Max. PtO"), {wxT("/FileFormats/FFmpegMaxPartOrder"), -1}, 8, -1);
|
||||
.TieSpinCtrl(XO("Max. PtO"), {wxT("/FileFormats/FFmpegMaxPartOrder"), -1}, 8, -1);
|
||||
|
||||
/* i18n-hint: Abbreviates "Linear Predictive Coding",
|
||||
but this text needs to be kept very short */
|
||||
|
@ -1688,13 +1688,13 @@ void ExportFFmpegOptions::PopulateOrExchange(ShuttleGui & S)
|
|||
it has a hard to predict effect on the degree of compression */
|
||||
mMuxRate = S.Id(FEMuxRateID)
|
||||
.ToolTip(XO("Maximum bit rate of the multiplexed stream\nOptional\n0 - default"))
|
||||
.TieSpinCtrl(_("Mux Rate:"), {wxT("/FileFormats/FFmpegMuxRate"), 0}, 10000000, 0);
|
||||
.TieSpinCtrl(XO("Mux Rate:"), {wxT("/FileFormats/FFmpegMuxRate"), 0}, 10000000, 0);
|
||||
|
||||
/* i18n-hint: 'Packet Size' is a parameter that has some bearing on compression ratio for MPEG
|
||||
compression. It measures how big a chunk of audio is compressed in one piece. */
|
||||
mPacketSize = S.Id(FEPacketSizeID)
|
||||
.ToolTip(XO("Packet size\nOptional\n0 - default"))
|
||||
.TieSpinCtrl(_("Packet Size:"), {wxT("/FileFormats/FFmpegPacketSize"), 0}, 10000000, 0);
|
||||
.TieSpinCtrl(XO("Packet Size:"), {wxT("/FileFormats/FFmpegPacketSize"), 0}, 10000000, 0);
|
||||
}
|
||||
S.EndMultiColumn();
|
||||
}
|
||||
|
|
|
@ -576,13 +576,13 @@ public:
|
|||
S.StartVerticalLay(true);
|
||||
{
|
||||
S.AddTitle(
|
||||
wxString::Format(_("Audacity needs the file %s to create MP3s."),
|
||||
mName));
|
||||
XO("Audacity needs the file %s to create MP3s.")
|
||||
.Format( mName ) );
|
||||
|
||||
S.SetBorder(3);
|
||||
S.StartHorizontalLay(wxALIGN_LEFT, true);
|
||||
{
|
||||
S.AddTitle( wxString::Format(_("Location of %s:"), mName) );
|
||||
S.AddTitle( XO("Location of %s:").Format( mName ) );
|
||||
}
|
||||
S.EndHorizontalLay();
|
||||
|
||||
|
@ -2017,13 +2017,13 @@ int ExportMP3::AskResample(int bitrate, int rate, int lowrate, int highrate)
|
|||
{
|
||||
S.AddTitle(
|
||||
((bitrate == 0)
|
||||
? wxString::Format(
|
||||
_("The project sample rate (%d) is not supported by the MP3\nfile format. "),
|
||||
rate)
|
||||
: wxString::Format(
|
||||
_("The project sample rate (%d) and bit rate (%d kbps) combination is not\nsupported by the MP3 file format. "),
|
||||
rate, bitrate))
|
||||
+ _("You may resample to one of the rates below.")
|
||||
? XO(
|
||||
"The project sample rate (%d) is not supported by the MP3\nfile format. ")
|
||||
.Format( rate )
|
||||
: XO(
|
||||
"The project sample rate (%d) and bit rate (%d kbps) combination is not\nsupported by the MP3 file format. ")
|
||||
.Format( rate, bitrate ))
|
||||
+ XO("You may resample to one of the rates below.")
|
||||
);
|
||||
}
|
||||
S.EndHorizontalLay();
|
||||
|
|
|
@ -722,7 +722,7 @@ void OnResample(const CommandContext &context)
|
|||
|
||||
S.StartHorizontalLay(wxCENTER, false);
|
||||
{
|
||||
cb = S.AddCombo(_("New sample rate (Hz):"),
|
||||
cb = S.AddCombo(XO("New sample rate (Hz):"),
|
||||
rate,
|
||||
rates);
|
||||
}
|
||||
|
|
|
@ -122,8 +122,8 @@ void KeyConfigPrefs::Populate()
|
|||
{
|
||||
S.StartStatic( {}, true);
|
||||
{
|
||||
S.AddTitle(_("Keyboard preferences currently unavailable."));
|
||||
S.AddTitle(_("Open a new project to modify keyboard shortcuts."));
|
||||
S.AddTitle(XO("Keyboard preferences currently unavailable."));
|
||||
S.AddTitle(XO("Open a new project to modify keyboard shortcuts."));
|
||||
}
|
||||
S.EndStatic();
|
||||
}
|
||||
|
@ -173,7 +173,7 @@ void KeyConfigPrefs::PopulateOrExchange(ShuttleGui & S)
|
|||
|
||||
S.StartHorizontalLay(wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 0);
|
||||
{
|
||||
S.AddTitle(_("View by:"));
|
||||
S.AddTitle(XO("View by:"));
|
||||
S.StartRadioButtonGroup({
|
||||
wxT("/Prefs/KeyConfig/ViewBy"),
|
||||
{
|
||||
|
|
|
@ -504,7 +504,7 @@ void RateMenuTable::OnRateOther(wxCommandEvent &)
|
|||
S.SetBorder(10);
|
||||
S.StartHorizontalLay(wxEXPAND, false);
|
||||
{
|
||||
cb = S.AddCombo(_("New sample rate (Hz):"),
|
||||
cb = S.AddCombo(XO("New sample rate (Hz):"),
|
||||
rate,
|
||||
rates);
|
||||
#if defined(__WXMAC__)
|
||||
|
|
|
@ -105,7 +105,7 @@ void HelpSystem::ShowInfoDialog( wxWindow *parent,
|
|||
|
||||
S.StartVerticalLay(1);
|
||||
{
|
||||
S.AddTitle( shortMsg.Translation() );
|
||||
S.AddTitle( shortMsg );
|
||||
S.Style( wxTE_MULTILINE | wxTE_READONLY | wxTE_RICH | wxTE_RICH2 |
|
||||
wxTE_AUTO_URL | wxTE_NOHIDESEL | wxHSCROLL )
|
||||
.AddTextWindow(message);
|
||||
|
|
Loading…
Reference in New Issue