Removed some (hidden) Cleanspeech cruft that had been used to disable effects. Made some static text open to translation. Added more i18n hints (thanks Thomas Breinstrup).

This commit is contained in:
james.k.crook@gmail.com 2012-04-05 11:21:15 +00:00
parent e98695f324
commit dd97cae3d9
17 changed files with 86 additions and 45 deletions

View File

@ -1008,8 +1008,11 @@ bool AudacityApp::OnInit()
#endif
mLogger=NULL;
/* i18n-hint: We translate the title of the log window, but
* we're not translating its contents, since the contents will be read by
* English speaking engineers */
#ifndef __WXMAC__
mLogger = new wxLogWindow(NULL, wxT("Audacity Log"), false, false);
mLogger = new wxLogWindow(NULL, _("Audacity Log"), false, false);
mLogger->SetActiveTarget(mLogger);
mLogger->EnableLogging(true);
mLogger->SetLogLevel(wxLOG_Max);
@ -1226,7 +1229,7 @@ bool AudacityApp::OnInit()
project->MayStartMonitoring();
#ifdef __WXMAC__
mLogger = new wxLogWindow(NULL, wxT("Audacity Log"), false, false);
mLogger = new wxLogWindow(NULL, _("Audacity Log"), false, false);
mLogger->SetActiveTarget(mLogger);
mLogger->EnableLogging(true);
mLogger->SetLogLevel(wxLOG_Max);

View File

@ -1369,6 +1369,12 @@ int DirManager::ProjectFSCK(const bool bForceError, const bool bAutoRecoverMode)
if (bForceError && !bAutoRecoverMode)
{
// TODO: Replace with more user friendly error message?
/* i18n-hint: The audacity project file is XML and has 'tags' in it,
rather like html tags <something>some stuff</something>.
This error message is about the tags that hold the sequence information.
The error message is confusing to users in English, and could just say
"Found problems with <sequence> when checking project file." */
wxString msg = _("Project check read faulty Sequence tags.");
const wxChar *buttons[] =
{_("Close project immediately with no changes"),

View File

@ -49,17 +49,7 @@ enum Column
Col_Max
};
static const wxChar *headers[Col_Max] =
{
/* i18n-hint: (noun). A track contains waves, audio etc.*/
_("Track"),
/* i18n-hint: (noun)*/
_("Label"),
/* i18n-hint: (noun) of a label*/
_("Start Time"),
/* i18n-hint: (noun) of a label*/
_("End Time")
};
class RowData
{
@ -146,10 +136,14 @@ LabelDialog::LabelDialog(wxWindow *parent,
mGrid->CreateGrid(0, Col_Max);
mGrid->SetDefaultCellAlignment(wxALIGN_LEFT, wxALIGN_CENTER);
int i;
for (i = 0; i < Col_Max; i++) {
mGrid->SetColLabelValue(i, headers[i]);
}
/* i18n-hint: (noun). A track contains waves, audio etc.*/
mGrid->SetColLabelValue(0,_("Track"));
/* i18n-hint: (noun)*/
mGrid->SetColLabelValue(1,_("Label"));
/* i18n-hint: (noun) of a label*/
mGrid->SetColLabelValue(2,_("Start Time"));
/* i18n-hint: (noun) of a label*/
mGrid->SetColLabelValue(3,_("End Time"));
// Create and remember editors. No need to delete these as the wxGrid will
// do it for us.

View File

@ -4074,7 +4074,9 @@ void AudacityProject::OnDisjoinLabels()
EditByLabel( &WaveTrack::Disjoin, false );
PushState(
/* i18n-hint: (verb) Audacity has just detached the labeled regions*/
/* i18n-hint: (verb) Audacity has just detached the labeled regions.
This message appears in history and tells you about something
Audacity has done.*/
_( "Detached labeled regions" ),
/* i18n-hint: (verb)*/
_( "Detach Labels" ) );

View File

@ -865,6 +865,9 @@ AudacityProject::AudacityProject(wxWindow * parent, wxWindowID id,
mMainPanel = Factory.AddPanel(
this, wxPoint( left, top ), wxSize( width, height ) );
pNotebook = Factory.AddNotebook( mMainPanel );
/* i18n-hint: This is an experiemental feature where the main panel in
Audacity is put on a notebook tab, and this is the name on that tab.
Other tabs in that notebook may have instruments, patch panels etc.*/
pPage = Factory.AddPage( pNotebook, _("Main Mix"));
#else
// Not using a notebook, so we place the track panel inside another panel,

View File

@ -1500,6 +1500,12 @@ bool Sequence::Append(samplePtr buffer, sampleFormat format,
if (format != mSampleFormat) {
temp = NewSamples(mMaxSamples, mSampleFormat);
wxASSERT(temp);
// TODO: Make error message clearer?
/* i18n-hint: Error message shown when Audacity was trying to allocate
memory to hold audio, and didn't have enough. 'New Samples' is
the name of the C++ function that failed, for use by a developer,
and should not be translated - though you could say
'in function "NewSamples()"' to be clearer.*/
if (!temp) {
wxMessageBox(_("Memory allocation failed -- NewSamples"));
return false;

View File

@ -70,14 +70,14 @@ preferences.
//#include "commands/CommandManager.h"
//#include "effects/Effect.h"
const int Enums::NumDbChoices = 14;
const int Enums::NumDbChoices = 13;
const wxString Enums::DbChoices[] =
{wxT("-20 dB"), wxT("-25 dB"), wxT("-30 dB"),
wxT("-35 dB"), wxT("-40 dB"), wxT("-45 dB"),
wxT("-50 dB"), wxT("-55 dB"), wxT("-60 dB"),
wxT("-65 dB"), wxT("-70 dB"), wxT("-75 dB"),
wxT("-80 dB"), wxT("Off-Skip")};
wxT("-80 dB")};
const double Enums::Db2Signal[] =
// -20dB -25dB -30dB -35dB -40dB -45dB -50dB -55dB -60dB -65dB -70dB -75dB -80dB Off

View File

@ -327,7 +327,7 @@ void TimerRecordDialog::PopulateOrExchange(ShuttleGui& S)
S.SetBorder(5);
S.StartVerticalLay(true);
{
wxString strFormat = wxT("099 h 060 m 060 s");
wxString strFormat = _("099 h 060 m 060 s");
S.StartStatic(_("Start Date and Time"), true);
{
m_pDatePickerCtrl_Start =
@ -368,7 +368,7 @@ void TimerRecordDialog::PopulateOrExchange(ShuttleGui& S)
S.StartStatic(_("Duration"), true);
{
wxString strFormat1 = wxT("099 days 024 h 060 m 060 s");
wxString strFormat1 = _("099 days 024 h 060 m 060 s");
m_pTimeTextCtrl_Duration = new TimeTextCtrl(this, ID_TIMETEXT_DURATION, strFormat1);
m_pTimeTextCtrl_Duration->SetName(_("Duration"));
m_pTimeTextCtrl_Duration->SetTimeValue(m_TimeSpan_Duration.GetSeconds().ToDouble());

View File

@ -305,15 +305,21 @@ wxAccStatus TrackPanelAx::GetName( int childId, wxString* name )
// LLL: Remove these during "refactor"
if( t->GetMute() )
{
/* i18n-hint: This is for screen reader software and indicates that
on this track mute is on.*/
*name->Append( _( " Mute On" ) );
}
if( t->GetSolo() )
{
/* i18n-hint: This is for screen reader software and indicates that
on this track solo is on.*/
*name->Append( _( " Solo On" ) );
}
if( t->GetSelected() )
{
/* i18n-hint: This is for screen reader software and indicates that
this track is selected.*/
*name->Append( _( " Select On" ) );
}
}

View File

@ -85,6 +85,11 @@ sampleCount VoiceKey::OnForward (WaveTrack & t, sampleCount start, sampleCount l
if((mWindowSize) >= len+10){
/* i18n-hint: Voice key is an experiemental/incomplete feature that
is used to navigate in vocal recordings, to move forwards and
backwards by words. So 'key' is being used in the sense of an index.
This error message means that you've selected too short
a region of audio to be able to use this feature.*/
wxMessageBox(_("Selection is too small to use voice key."));
return start;
}

View File

@ -1705,7 +1705,7 @@ void EqualizationDialog::setCurve(wxString curveName)
break;
if( i == mCurves.GetCount())
{
wxMessageBox( wxT("Requested curve not found, using 'unnamed'"), wxT("Curve not found"), wxOK|wxICON_ERROR );
wxMessageBox( _("Requested curve not found, using 'unnamed'"), _("Curve not found"), wxOK|wxICON_ERROR );
setCurve((int) mCurves.GetCount()-1);
}
else

View File

@ -43,18 +43,18 @@ EffectLeveller::EffectLeveller()
Init();
}
#define NUM_PASSES_CHOICES 6
#define NUM_PASSES_CHOICES 5
bool EffectLeveller::Init()
{
mLevellerNumPasses = gPrefs->Read(wxT("/CsPresets/LevellerNumPasses"), 2L);
if ((mLevellerNumPasses < 0) || (mLevellerNumPasses >= NUM_PASSES_CHOICES)) { // corrupted Prefs?
mLevellerNumPasses = 0;
gPrefs->Write(wxT("/CsPresets/LevellerNumPasses"), 0);
mLevellerNumPasses = gPrefs->Read(wxT("/CsPresets/LevellerNumPasses"), 2L) ;
if ((mLevellerNumPasses <= 0) || (mLevellerNumPasses >= NUM_PASSES_CHOICES)) { // corrupted Prefs?
mLevellerNumPasses = 1;
gPrefs->Write(wxT("/CsPresets/LevellerNumPasses"), 1);
}
mLevellerDbChoiceIndex = gPrefs->Read(wxT("/CsPresets/LevellerDbChoiceIndex"), 10L);
if ((mLevellerDbChoiceIndex < 0) || (mLevellerDbChoiceIndex >= Enums::NumDbChoices)) { // corrupted Prefs?
mLevellerDbChoiceIndex = (Enums::NumDbChoices - 1); //Off-skip
mLevellerDbChoiceIndex = 0; //Least dB
gPrefs->Write(wxT("/CsPresets/LevellerDbChoiceIndex"), mLevellerDbChoiceIndex);
}
mLevellerDbSilenceThreshold = Enums::Db2Signal[mLevellerDbChoiceIndex];
@ -66,7 +66,7 @@ bool EffectLeveller::Init()
bool EffectLeveller::CheckWhetherSkipEffect()
{
return ((mLevellerDbChoiceIndex >= (Enums::NumDbChoices - 1)) || (mLevellerNumPasses == 0));
return mLevellerNumPasses == 0;
}
void EffectLeveller::End()
@ -116,7 +116,7 @@ bool EffectLeveller::PromptUser()
{
LevellerDialog dlog(this, mParent);
dlog.mLevellerDbChoiceIndex = mLevellerDbChoiceIndex;
dlog.mLevellerNumPasses = mLevellerNumPasses;
dlog.mLevellerNumPassesChoicIndex = mLevellerNumPasses-1;
dlog.TransferDataToWindow();
dlog.CentreOnParent();
@ -126,7 +126,7 @@ bool EffectLeveller::PromptUser()
return false;
}
mLevellerNumPasses = dlog.mLevellerNumPasses;
mLevellerNumPasses = dlog.mLevellerNumPassesChoicIndex+1;
mLevellerDbChoiceIndex = dlog.mLevellerDbChoiceIndex;
mLevellerDbSilenceThreshold = Enums::Db2Signal[mLevellerDbChoiceIndex];
gPrefs->Write(wxT("/CsPresets/LevellerDbChoiceIndex"), mLevellerDbChoiceIndex);
@ -192,7 +192,7 @@ LevellerDialog::LevellerDialog(EffectLeveller *effect, wxWindow *parent)
: EffectDialog(parent, _("Leveller"), PROCESS_EFFECT),
mEffect(effect)
{
mLevellerNumPasses = 0;
mLevellerNumPassesChoicIndex = 0;//
mLevellerDbChoiceIndex = 0;
Init();
}
@ -202,8 +202,6 @@ void LevellerDialog::PopulateOrExchange(ShuttleGui & S)
wxArrayString db(Enums::NumDbChoices, Enums::GetDbChoices());
wxArrayString numPasses;
numPasses.Add(_("None-Skip"));
/* i18n-hint: Of strength of an effect. Not strongly.*/
numPasses.Add(_("Light"));
numPasses.Add(_("Moderate"));
@ -229,7 +227,7 @@ void LevellerDialog::PopulateOrExchange(ShuttleGui & S)
S.StartHorizontalLay();
{
S.TieChoice(_("Degree of Leveling:"),
mLevellerNumPasses,
mLevellerNumPassesChoicIndex,
&numPasses);
}
S.EndHorizontalLay();
@ -258,7 +256,7 @@ void LevellerDialog::OnPreview(wxCommandEvent &event)
int oldLevellerNumPasses = mEffect->mLevellerNumPasses;
mEffect->mLevellerDbChoiceIndex = mLevellerDbChoiceIndex;
mEffect->mLevellerNumPasses = mLevellerNumPasses;
mEffect->mLevellerNumPasses = mLevellerNumPassesChoicIndex+1;
mEffect->Preview();

View File

@ -87,7 +87,7 @@ class LevellerDialog: public EffectDialog
public:
int mLevellerDbChoiceIndex;
int mLevellerNumPasses;
int mLevellerNumPassesChoicIndex;
};
#endif

View File

@ -96,7 +96,7 @@ ScoreAlignDialog::ScoreAlignDialog(wxWindow *parent, ScoreAlignParams &params)
S.StartMultiColumn(3, wxEXPAND | wxALIGN_CENTER_VERTICAL);
S.SetStretchyCol(1);
mFramePeriodLabel = S.AddVariableText(_("Frame Period:"), true,
mFramePeriodLabel = S.AddVariableText(_("Frame Period")+wxT(":"), true,
wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
S.SetStyle(wxSL_HORIZONTAL);
mFramePeriodSlider = S.Id(ID_FRAMEPERIOD).AddSlider(wxT(""),
@ -106,7 +106,7 @@ ScoreAlignDialog::ScoreAlignDialog(wxWindow *parent, ScoreAlignParams &params)
mFramePeriodText = S.AddVariableText(SA_DFT_FRAME_PERIOD_TEXT, true,
wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
mWindowSizeLabel = S.AddVariableText(_("Window Size:"), true,
mWindowSizeLabel = S.AddVariableText(_("Window Size")+wxT(":"), true,
wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
S.SetStyle(wxSL_HORIZONTAL);
mWindowSizeSlider = S.Id(ID_WINDOWSIZE).AddSlider(wxT(""),
@ -136,7 +136,11 @@ ScoreAlignDialog::ScoreAlignDialog(wxWindow *parent, ScoreAlignParams &params)
mSilenceThresholdText = S.AddVariableText(SA_DFT_SILENCE_THRESHOLD_TEXT,
true, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
mPresmoothLabel = S.AddVariableText(_("Presmooth Time:"), true,
/* i18n-hint: The English would be clearer if it had 'Duration' rather than 'Time'
This is a new experiemtnal 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")+wxT(":"), true,
wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
S.SetStyle(wxSL_HORIZONTAL);
mPresmoothSlider = S.Id(ID_PRESMOOTH).AddSlider(wxT(""),
@ -145,7 +149,11 @@ ScoreAlignDialog::ScoreAlignDialog(wxWindow *parent, ScoreAlignParams &params)
mPresmoothText = S.AddVariableText(SA_DFT_PRESMOOTH_TIME_TEXT, true,
wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
mLineTimeLabel = S.AddVariableText(_("Line Time:"), true,
/* i18n-hint: The English would be clearer if it had 'Duration' rather than 'Time'
This is a new experiemtnal 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")+wxT(":"), true,
wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
S.SetStyle(wxSL_HORIZONTAL);
mLineTimeSlider = S.Id(ID_LINETIME).AddSlider(wxT(""),
@ -154,7 +162,11 @@ ScoreAlignDialog::ScoreAlignDialog(wxWindow *parent, ScoreAlignParams &params)
mLineTimeText = S.AddVariableText(SA_DFT_LINE_TIME_TEXT, true,
wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
mSmoothTimeLabel = S.AddVariableText(_("Smooth Time:"), true,
/* i18n-hint: The English would be clearer if it had 'Duration' rather than 'Time'
This is a new experiemtnal 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")+wxT(":"), true,
wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
S.SetStyle(wxSL_HORIZONTAL);
mSmoothTimeSlider = S.Id(ID_SMOOTHTIME).AddSlider(wxT(""),

View File

@ -304,8 +304,11 @@ void TimeScaleDialog::PopulateOrExchange(ShuttleGui & S)
S.StartHorizontalLay(wxEXPAND);
{
S.SetStyle(wxSL_HORIZONTAL);
/* i18n-hint: Transients are sounds like the onset of cymbals or drums.
They can get 'blurred' by sound stretching. This checkbox option
may make them sharper again. */
m_pCheckBox_PreAnalyze = S.Id(ID_CHECKBOX_PREANALYZE)
.AddCheckBox(wxT("Dynamic Transient Sharpening"), wxT("Dynamic Transient Sharpening"));
.AddCheckBox(_("Dynamic Transient Sharpening"), wxT("false"));
}
S.EndHorizontalLay();
}

View File

@ -158,6 +158,10 @@ bool EffectToneGen::MakeTone(float *buffer, sampleCount len)
Local variables are declared inside respective branch, globals are declared up.
*/
bool bLogInterpolation = mbLogInterpolation;
if( abs( frequency[1]-frequency[0] ) < 0.000000001 )
bLogInterpolation = true;
// this for log interpolation
if( mbLogInterpolation )
{

View File

@ -891,7 +891,6 @@ void TruncSilenceDialog::PopulateOrExchange(ShuttleGui & S)
10);
/* i18n-hint: Leave as is unless your language has a different way to show ratios like 5:1*/
S.AddUnits( _(":1") );
//S.AddUnits(_("(9999999 or greater is off)"));
S.TieChoice(_("Threshold for silence:"),
mEffect->mTruncDbChoiceIndex,
&choices);