mirror of
https://github.com/cookiengineer/audacity
synced 2025-07-31 16:09:28 +02:00
Fixed more internationalisation hints.
This commit is contained in:
parent
4403da58ff
commit
69476e785c
@ -173,7 +173,7 @@ AboutDialog::AboutDialog(wxWindow * parent)
|
||||
PopulateLicensePage( S );
|
||||
}
|
||||
S.EndNotebook();
|
||||
/*i18n-hint: "OK... Audacious" appears on a button at the
|
||||
/* i18n-hint: "OK... Audacious" appears on a button at the
|
||||
* foot of the 'About Audacity' dialog box, after some text to read.
|
||||
* In English it is slightly humorous alternative to an 'OK' button.
|
||||
* If the humour doesn't work in your language, then just use whatever
|
||||
@ -239,11 +239,13 @@ void AboutDialog::PopulateAudacityPage( ShuttleGui & S )
|
||||
+ translatorCredits +
|
||||
wxT("<p><center><b>") +
|
||||
|
||||
/* i18n-hint: %s will be replaced by the version number.*/
|
||||
wxString::Format(_("Audacity %s Development Team"), versionStr.c_str()) +
|
||||
wxT("</b><br>") +
|
||||
GetCreditsByRole(roleTeamDeveloper) +
|
||||
wxT("<p><br><b>") +
|
||||
|
||||
/* i18n-hint: %s will be replaced by the version number.*/
|
||||
wxString::Format(_("Audacity %s Support Team"), versionStr.c_str()) +
|
||||
wxT("</b><br>") +
|
||||
GetCreditsByRole(roleTeamSupport) +
|
||||
|
@ -77,6 +77,7 @@ void AutoRecoveryDialog::PopulateOrExchange(ShuttleGui& S)
|
||||
S.StartStatic(_("Recoverable projects"));
|
||||
{
|
||||
mFileList = S.Id(ID_FILE_LIST).AddListControlReportMode();
|
||||
/*i18n-hint: (noun). It's the name of the project to recover.*/
|
||||
mFileList->InsertColumn(0, _("Name"));
|
||||
mFileList->SetColumnWidth(0, 220);
|
||||
PopulateList();
|
||||
|
@ -66,6 +66,9 @@ BatchProcessDialog::BatchProcessDialog(wxWindow * parent):
|
||||
AudacityProject * p = GetActiveProject();
|
||||
if (p->GetCleanSpeechMode())
|
||||
{
|
||||
/*i18n-hint: CleanSpeech is the name of a mode Audacity can operate
|
||||
* in that was invented to process lots of sermons, remove long
|
||||
* pauses and background noise.*/
|
||||
SetTitle(_("CleanSpeech Batch Processing"));
|
||||
}
|
||||
|
||||
@ -93,6 +96,8 @@ void BatchProcessDialog::PopulateOrExchange(ShuttleGui &S)
|
||||
{
|
||||
S.StartVerticalLay(true);
|
||||
{
|
||||
/*i18n-hint: A chain is a sequence of commands that can be applied
|
||||
* to one or more audio files.*/
|
||||
S.StartStatic(_("&Select chain"), true);
|
||||
{
|
||||
S.SetStyle(wxSUNKEN_BORDER | wxLC_REPORT | wxLC_HRULES | wxLC_VRULES |
|
||||
@ -544,7 +549,7 @@ void EditChainsDialog::PopulateList()
|
||||
AddItem(mBatchCommands.GetCommand(i),
|
||||
mBatchCommands.GetParams(i));
|
||||
}
|
||||
|
||||
/*i18n-hint: This is the last item in a list.*/
|
||||
AddItem(_("- END -"), wxT(""));
|
||||
|
||||
// Select the name in the list...this will fire an event.
|
||||
@ -681,6 +686,7 @@ void EditChainsDialog::OnAdd(wxCommandEvent &event)
|
||||
|
||||
if (name.Contains(wxFILE_SEP_PATH) ||
|
||||
name.Contains(wxFILE_SEP_PATH_UNIX)) {
|
||||
/*i18n-hint: The %c will be replaced with ‘forbidden characters’, like ‘/’ and ‘\’.*/
|
||||
wxMessageBox(wxString::Format(_("Names may not contain '%c' and '%c'"),
|
||||
wxFILE_SEP_PATH, wxFILE_SEP_PATH_UNIX),
|
||||
GetTitle(),
|
||||
@ -711,6 +717,7 @@ void EditChainsDialog::OnRemove(wxCommandEvent &event)
|
||||
|
||||
wxString name = mChains->GetItemText(item);
|
||||
wxMessageDialog m(this,
|
||||
/*i18n-hint: %s will be replaced by the name of a file.*/
|
||||
wxString::Format(_("Are you sure you want to delete %s?"), name.c_str()),
|
||||
GetTitle(),
|
||||
wxYES_NO | wxICON_QUESTION);
|
||||
|
@ -378,6 +378,8 @@ void DependencyDialog::PopulateOrExchange(ShuttleGui& S)
|
||||
S.StartHorizontalLay(wxALIGN_LEFT);
|
||||
{
|
||||
wxArrayString choices;
|
||||
/*i18n-hint: One of the choices of what you want Audacity to do when
|
||||
* Audacity finds a project depends on another file.*/
|
||||
choices.Add(_("Ask me"));
|
||||
choices.Add(_("Always copy all files (safest)"));
|
||||
choices.Add(_("Never copy any files"));
|
||||
|
@ -442,6 +442,7 @@ bool DirManager::SetProject(wxString& newProjPath, wxString& newProjName, const
|
||||
saved version of the old project must not be moved,
|
||||
otherwise the old project would not be safe.) */
|
||||
|
||||
/*i18n-hint: This title appears on a dialog that indicates the progress in doing something.*/
|
||||
ProgressDialog *progress = new ProgressDialog(_("Progress"),
|
||||
_("Saving project data files"));
|
||||
|
||||
@ -1200,8 +1201,8 @@ bool DirManager::EnsureSafeFilename(wxFileName fName)
|
||||
do {
|
||||
i++;
|
||||
/* i18n-hint: This is the pattern for filenames that are created
|
||||
when a file needs to be backed up to a different name. For
|
||||
example, mysong would become mysong-old1, mysong-old2, etc. */
|
||||
* when a file needs to be backed up to a different name. For
|
||||
* example, mysong would become mysong-old1, mysong-old2, etc. */
|
||||
renamedFileName.SetName(wxString::Format(_("%s-old%d"), fName.GetName().c_str(), i));
|
||||
} while (renamedFileName.FileExists());
|
||||
|
||||
@ -1219,6 +1220,7 @@ bool DirManager::EnsureSafeFilename(wxFileName fName)
|
||||
testFile.Close();
|
||||
|
||||
if (!wxRemoveFile(renamedFileName.GetFullPath())) {
|
||||
/* i18n-hint: %s is the name of a file.*/
|
||||
wxLogSysError(_("Unable to remove '%s'."),
|
||||
renamedFileName.GetFullPath().c_str());
|
||||
return false;
|
||||
|
@ -207,6 +207,7 @@ public:
|
||||
|
||||
wxString GetLibraryTypeString()
|
||||
{
|
||||
/* i18n-hint: do not translate avformat. Preserve the computer gibberish.*/
|
||||
return _("Only avformat.dll|*avformat*.dll|Dynamically Linked Libraries (*.dll)|*.dll|All Files (*.*)|*");
|
||||
}
|
||||
|
||||
|
@ -148,8 +148,8 @@ FreqWindow::FreqWindow(wxWindow * parent, wxWindowID id,
|
||||
_("Cuberoot Autocorrelation"),
|
||||
_("Enhanced Autocorrelation"),
|
||||
/* i18n-hint: This is a technical term, derived from the word
|
||||
"spectrum". Do not translate it unless you are sure you
|
||||
know the correct technical word in your language. */
|
||||
* "spectrum". Do not translate it unless you are sure you
|
||||
* know the correct technical word in your language. */
|
||||
_("Cepstrum")
|
||||
};
|
||||
|
||||
@ -186,8 +186,8 @@ FreqWindow::FreqWindow(wxWindow * parent, wxWindowID id,
|
||||
wxString *funcChoiceStrings = new wxString[f];
|
||||
for (int i = 0; i < f; i++) {
|
||||
/* i18n-hint: This refers to a "window function", used in the
|
||||
Frequency analyze dialog box. */
|
||||
funcChoiceStrings[i] = WindowFuncName(i) + wxString(_(" window"));
|
||||
* Frequency analyze dialog box. */
|
||||
funcChoiceStrings[i] = wxString( WindowFuncName(i)) + wxT(" ") + wxString(_("window"));
|
||||
}
|
||||
|
||||
wxStaticText *funcLabel = new wxStaticText(this, wxID_ANY,
|
||||
@ -223,6 +223,7 @@ FreqWindow::FreqWindow(wxWindow * parent, wxWindowID id,
|
||||
_("&Replot"));
|
||||
mReplotButton->SetName(_("Replot"));
|
||||
|
||||
/* i18n-hint: (verb)*/
|
||||
mCloseButton = new wxButton(this, wxID_CANCEL,
|
||||
_("Close"));
|
||||
mCloseButton->SetName(_("Close"));
|
||||
@ -866,7 +867,7 @@ void FreqWindow::PlotPaint(wxPaintEvent & evt)
|
||||
peakpitch = PitchName_Absolute(FreqToMIDInoteNumber(bestpeak));
|
||||
xp = xpitch.c_str();
|
||||
pp = peakpitch.c_str();
|
||||
|
||||
/* i18n-hint: The %d’s are replaced by numbers, the %s by musical notes, e.g. A#*/
|
||||
info.Printf(_("Cursor: %d Hz (%s) = %d dB Peak: %d Hz (%s) = %.1f dB"),
|
||||
int (xPos + 0.5), xp,
|
||||
int (value + 0.5), int (bestpeak + 0.5),
|
||||
@ -876,6 +877,8 @@ void FreqWindow::PlotPaint(wxPaintEvent & evt)
|
||||
peakpitch = PitchName_Absolute(FreqToMIDInoteNumber(1.0 / bestpeak));
|
||||
xp = xpitch.c_str();
|
||||
pp = peakpitch.c_str();
|
||||
/* i18n-hint: The %d’s are replaced by numbers, the %s by musical notes, e.g. A#
|
||||
* the %.4f are numbers, and 'sec' should be an abbreviation for seconds */
|
||||
info.Printf(_("Cursor: %.4f sec (%d Hz) (%s) = %f, Peak: %.4f sec (%d Hz) (%s) = %.3f"),
|
||||
xPos,
|
||||
int (1.0 / xPos + 0.5),
|
||||
|
@ -122,42 +122,52 @@ wxString TitleText( const wxString & Key )
|
||||
|
||||
if(Key ==wxT("play") )
|
||||
{
|
||||
/* i18n-hint: Title for a topic.*/
|
||||
return _("Playing Audio");
|
||||
}
|
||||
if((Key ==wxT("record") ) || (Key ==wxT("norecord") ))
|
||||
{
|
||||
/* i18n-hint: Title for a topic.*/
|
||||
return _("Recording Audio");
|
||||
}
|
||||
if(Key ==wxT("inputdevice") )
|
||||
{
|
||||
/* i18n-hint: Title for a topic.*/
|
||||
return _("Recording - Choosing the Input Device");
|
||||
}
|
||||
if(Key ==wxT("inputsource") )
|
||||
{
|
||||
/* i18n-hint: Title for a topic.*/
|
||||
return _("Recording - Choosing the Input Source");
|
||||
}
|
||||
if(Key ==wxT("inputlevel") )
|
||||
{
|
||||
/* i18n-hint: Title for a topic.*/
|
||||
return _("Recording - Setting the Input Level");
|
||||
}
|
||||
if((Key ==wxT("edit") ) || (Key==wxT("grey")))
|
||||
{
|
||||
/* i18n-hint: Title for a topic.*/
|
||||
return _("Editing and greyed out Menus");
|
||||
}
|
||||
if(Key ==wxT("export") )
|
||||
{
|
||||
/* i18n-hint: Title for a topic.*/
|
||||
return _("Exporting an Audio File");
|
||||
}
|
||||
if(Key ==wxT("save") )
|
||||
{
|
||||
/* i18n-hint: Title for a topic.*/
|
||||
return _("Saving an Audacity Project");
|
||||
}
|
||||
if(Key ==wxT("wma-proprietary") )
|
||||
{
|
||||
/* i18n-hint: Title for a topic.*/
|
||||
return _("Support for Other Formats");
|
||||
}
|
||||
if(Key ==wxT("burncd") )
|
||||
{
|
||||
/* i18n-hint: Title for a topic.*/
|
||||
return _("Burn to CD" );
|
||||
}
|
||||
if(Key == wxT("remotehelp") )
|
||||
@ -171,6 +181,7 @@ wxString HelpTextBuiltIn( const wxString & Key )
|
||||
{
|
||||
if(Key==wxT("welcome"))
|
||||
{
|
||||
/* i18n-hint: Preserve [[file:quick_help.html as it’s the name of a file.*/
|
||||
return WrapText(
|
||||
wxString(wxT("")) +
|
||||
_("<center><h3>How to Get Help</h3></center>") +
|
||||
|
@ -99,6 +99,7 @@ HistoryWindow::HistoryWindow(AudacityProject *parent, UndoManager *manager):
|
||||
mManager->GetCurrentState() - 1,
|
||||
0);
|
||||
S.AddWindow(mLevels);
|
||||
/* i18n-hint: (verb)*/
|
||||
mDiscard = S.Id(ID_DISCARD).AddButton(_("&Discard"));
|
||||
}
|
||||
S.EndMultiColumn();
|
||||
|
@ -150,12 +150,15 @@ wxString Internat::FormatSize(double size)
|
||||
if (size < 1024.0)
|
||||
sizeStr = ToDisplayString(size) + wxT(" ") + _("bytes");
|
||||
else if (size < 1024.0 * 1024.0) {
|
||||
/* i18n-hint: Abbreviation for Kilo bytes */
|
||||
sizeStr = ToDisplayString(size / 1024.0, 1) + wxT(" ") + _("KB");
|
||||
}
|
||||
else if (size < 1024.0 * 1024.0 * 1024.0) {
|
||||
/* i18n-hint: Abbreviation for Mega bytes */
|
||||
sizeStr = ToDisplayString(size / (1024.0 * 1024.0), 1) + wxT(" ") + _("MB");
|
||||
}
|
||||
else {
|
||||
/* i18n-hint: Abbreviation for Giga bytes */
|
||||
sizeStr = ToDisplayString(size / (1024.0 * 1024.0 * 1024.0), 1) + wxT(" ") + _("GB");
|
||||
}
|
||||
}
|
||||
|
@ -51,9 +51,13 @@ enum Column
|
||||
|
||||
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")
|
||||
};
|
||||
|
||||
@ -704,6 +708,7 @@ void LabelDialog::OnChangeTrack(wxGridEvent &event, int row, RowData *rd)
|
||||
wxTextEntryDialog d(this,
|
||||
_("New Label Track"),
|
||||
_("Enter track name"),
|
||||
/* i18n-hint: (noun) it's the name of a kind of track.*/
|
||||
_("Label Track"));
|
||||
|
||||
// User canceled so repopulating the grid will set the track
|
||||
|
@ -55,6 +55,8 @@ wxString ChooseLanguage(wxWindow *parent)
|
||||
{
|
||||
wxString returnVal;
|
||||
|
||||
/* i18n-hint: Title on a dialog indicating that this is the first
|
||||
* time Audacity has been run. */
|
||||
LangChoiceDialog dlog(parent, -1, _("Audacity First Run"));
|
||||
dlog.CentreOnParent();
|
||||
dlog.ShowModal();
|
||||
@ -122,6 +124,8 @@ void LangChoiceDialog::OnOk(wxCommandEvent & event)
|
||||
|
||||
if (mLang.Left(2) != slang.Left(2)) {
|
||||
wxString msg;
|
||||
/* i18n-hint; The %s’s are replaced by translated and untranslated
|
||||
* versions of language names. */
|
||||
msg.Printf(_("The language you have chosen, %s (%s), is not the same as the system language, %s (%s)."),
|
||||
mLangNames[ndx].c_str(),
|
||||
mLang.c_str(),
|
||||
|
@ -299,6 +299,7 @@ void AudacityProject::CreateMenusAndCommands()
|
||||
c->AddItem(wxT("PageSetup"), _("Pa&ge Setup..."), FN(OnPageSetup),
|
||||
AudioIONotBusyFlag | TracksExistFlag,
|
||||
AudioIONotBusyFlag | TracksExistFlag);
|
||||
/* i18n-hint: (verb) It's item on a menu. */
|
||||
c->AddItem(wxT("Print"), _("&Print..."), FN(OnPrint),
|
||||
AudioIONotBusyFlag | TracksExistFlag,
|
||||
AudioIONotBusyFlag | TracksExistFlag);
|
||||
@ -308,6 +309,7 @@ void AudacityProject::CreateMenusAndCommands()
|
||||
|
||||
// On the Mac, the Exit item doesn't actually go here...wxMac will pull it out
|
||||
// and put it in the Audacity menu for us based on its ID.
|
||||
/* i18n-hint: (verb) It's item on a menu. */
|
||||
c->AddItem(wxT("Exit"), _("E&xit"), FN(OnExit), wxT("Ctrl+Q"),
|
||||
AlwaysEnabledFlag,
|
||||
AlwaysEnabledFlag);
|
||||
@ -344,19 +346,25 @@ void AudacityProject::CreateMenusAndCommands()
|
||||
c->AddSeparator();
|
||||
|
||||
c->BeginSubMenu(_("R&emove Audio"));
|
||||
/* i18n-hint: (verb)*/
|
||||
c->AddItem(wxT("Cut"), _("Cu&t"), FN(OnCut), wxT("Ctrl+X"),
|
||||
AudioIONotBusyFlag | CutCopyAvailableFlag,
|
||||
AudioIONotBusyFlag | CutCopyAvailableFlag);
|
||||
c->AddItem(wxT("Delete"), _("&Delete"), FN(OnDelete), wxT("Ctrl+K"));
|
||||
c->AddSeparator();
|
||||
/* i18n-hint: (verb) Do a special kind of cut*/
|
||||
c->AddItem(wxT("SplitCut"), _("Spl&it Cut"), FN(OnSplitCut), wxT("Ctrl+Alt+X"));
|
||||
/* i18n-hint: (verb) Do a special kind of delete*/
|
||||
c->AddItem(wxT("SplitDelete"), _("Split D&elete"), FN(OnSplitDelete), wxT("Ctrl+Alt+K"));
|
||||
c->AddSeparator();
|
||||
/* i18n-hint: (verb)*/
|
||||
c->AddItem(wxT("Silence"), _("Silence Audi&o"), FN(OnSilence), wxT("Ctrl+L"));
|
||||
/* i18n-hint: (verb)*/
|
||||
c->AddItem(wxT("Trim"), _("Tri&m"), FN(OnTrim), wxT("Ctrl+T"));
|
||||
c->EndSubMenu();
|
||||
|
||||
c->BeginSubMenu(_("Clip Boun&daries"));
|
||||
/* i18n-hint: (verb) It's an item on a menu. */
|
||||
c->AddItem(wxT("Split"), _("Sp&lit"), FN(OnSplit), wxT("Ctrl+I"),
|
||||
AudioIONotBusyFlag | WaveTracksSelectedFlag,
|
||||
AudioIONotBusyFlag | WaveTracksSelectedFlag);
|
||||
@ -364,15 +372,18 @@ void AudacityProject::CreateMenusAndCommands()
|
||||
AudioIONotBusyFlag | TimeSelectedFlag | WaveTracksSelectedFlag,
|
||||
AudioIONotBusyFlag | TimeSelectedFlag | WaveTracksSelectedFlag);
|
||||
c->AddSeparator();
|
||||
/* i18n-hint: (verb)*/
|
||||
c->AddItem(wxT("Join"), _("&Join"), FN(OnJoin), wxT("Ctrl+J"));
|
||||
c->AddItem(wxT("Disjoin"), _("Detac&h at Silences"), FN(OnDisjoin), wxT("Ctrl+Alt+J"));
|
||||
c->EndSubMenu();
|
||||
|
||||
c->AddSeparator();
|
||||
|
||||
/* i18n-hint: (verb)*/
|
||||
c->AddItem(wxT("Copy"), _("&Copy"), FN(OnCopy), wxT("Ctrl+C"),
|
||||
AudioIONotBusyFlag | CutCopyAvailableFlag,
|
||||
AudioIONotBusyFlag | CutCopyAvailableFlag);
|
||||
/* i18n-hint: (verb)*/
|
||||
c->AddItem(wxT("Paste"), _("&Paste"), FN(OnPaste), wxT("Ctrl+V"),
|
||||
AudioIONotBusyFlag | ClipboardFlag,
|
||||
AudioIONotBusyFlag | ClipboardFlag);
|
||||
@ -381,6 +392,7 @@ void AudacityProject::CreateMenusAndCommands()
|
||||
|
||||
c->AddSeparator();
|
||||
|
||||
/* i18n-hint: (verb)*/
|
||||
c->AddItem(wxT("Duplicate"), _("Duplic&ate"), FN(OnDuplicate), wxT("Ctrl+D"));
|
||||
|
||||
// An anomaly... StereoToMono is added here for CleanSpeech,
|
||||
@ -399,6 +411,7 @@ void AudacityProject::CreateMenusAndCommands()
|
||||
c->SetDefaultFlags(AudioIONotBusyFlag | LabelsSelectedFlag | TimeSelectedFlag,
|
||||
AudioIONotBusyFlag | LabelsSelectedFlag | TimeSelectedFlag);
|
||||
|
||||
/* i18n-hint: (verb)*/
|
||||
c->AddItem(wxT("CutLabels"), _("&Cut"), FN(OnCutLabels), wxT("Alt+X"),
|
||||
AudioIONotBusyFlag | LabelsSelectedFlag | TimeSelectedFlag | IsNotSyncLockedFlag,
|
||||
AudioIONotBusyFlag | LabelsSelectedFlag | TimeSelectedFlag | IsNotSyncLockedFlag);
|
||||
@ -408,6 +421,7 @@ void AudacityProject::CreateMenusAndCommands()
|
||||
|
||||
c->AddSeparator();
|
||||
|
||||
/* i18n-hint: (verb) A special way to cut out a piece of audio*/
|
||||
c->AddItem(wxT("SplitCutLabels"), _("&Split Cut"), FN(OnSplitCutLabels), wxT("Alt+Shift+X"));
|
||||
c->AddItem(wxT("SplitDeleteLabels"), _("Sp&lit Delete"), FN(OnSplitDeleteLabels), wxT("Alt+Shift+K"));
|
||||
|
||||
@ -415,13 +429,16 @@ void AudacityProject::CreateMenusAndCommands()
|
||||
|
||||
|
||||
c->AddItem(wxT("SilenceLabels"), _("Silence &Audio"), FN(OnSilenceLabels), wxT("Alt+L"));
|
||||
/* i18n-hint: (verb)*/
|
||||
c->AddItem(wxT("CopyLabels"), _("Co&py"), FN(OnCopyLabels), wxT("Alt+Shift+C"));
|
||||
|
||||
c->AddSeparator();
|
||||
|
||||
/* i18n-hint: (verb)*/
|
||||
c->AddItem(wxT("SplitLabels"), _("Spli&t"), FN(OnSplitLabels), wxT("Alt+I"),
|
||||
AudioIONotBusyFlag | LabelsSelectedFlag,
|
||||
AudioIONotBusyFlag | LabelsSelectedFlag);
|
||||
/* i18n-hint: (verb)*/
|
||||
c->AddItem(wxT("JoinLabels"), _("&Join"), FN(OnJoinLabels), wxT("Alt+J"));
|
||||
c->AddItem(wxT("DisjoinLabels"), _("Detac&h at Silences"), FN(OnDisjoinLabels), wxT("Alt+Shift+J"));
|
||||
|
||||
@ -429,6 +446,7 @@ void AudacityProject::CreateMenusAndCommands()
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/* i18n-hint: (verb) It's an item on a menu. */
|
||||
c->BeginSubMenu(_("&Select"));
|
||||
c->SetDefaultFlags(TracksExistFlag, TracksExistFlag);
|
||||
|
||||
@ -572,6 +590,8 @@ void AudacityProject::CreateMenusAndCommands()
|
||||
// mCommandManager.Enable(wxT("UndoHistory"), true);
|
||||
// So for now, enable the command regardless of stack. It will just show empty sometimes.
|
||||
// FOR REDESIGN, clearly there are some limitations with the flags/mask bitmaps.
|
||||
|
||||
/* i18n-hint: Clicking this menu item shows the various editing steps that have been taken.*/
|
||||
c->AddItem(wxT("UndoHistory"), _("&History..."), FN(OnHistory),
|
||||
AudioIONotBusyFlag,
|
||||
AudioIONotBusyFlag);
|
||||
@ -585,23 +605,37 @@ void AudacityProject::CreateMenusAndCommands()
|
||||
|
||||
c->BeginSubMenu(_("&Toolbars"));
|
||||
|
||||
/* i18n-hint: Clicking this menu item shows the toolbar that manages devices*/
|
||||
c->AddCheck(wxT("ShowDeviceTB"), _("&Device Toolbar"), FN(OnShowDeviceToolBar), 0, AlwaysEnabledFlag, AlwaysEnabledFlag);
|
||||
/* i18n-hint: Clicking this menu item shows the toolbar for editing*/
|
||||
c->AddCheck(wxT("ShowEditTB"), _("&Edit Toolbar"), FN(OnShowEditToolBar), 0, AlwaysEnabledFlag, AlwaysEnabledFlag);
|
||||
/* i18n-hint: Clicking this menu item shows the toolbar which has sound level meters*/
|
||||
c->AddCheck(wxT("ShowMeterTB"), _("&Meter Toolbar"), FN(OnShowMeterToolBar), 0, AlwaysEnabledFlag, AlwaysEnabledFlag);
|
||||
/* i18n-hint: Clicking this menu item shows the toolbar with the mixer*/
|
||||
c->AddCheck(wxT("ShowMixerTB"), _("Mi&xer Toolbar"), FN(OnShowMixerToolBar), 0, AlwaysEnabledFlag, AlwaysEnabledFlag);
|
||||
/* i18n-hint: Clicking this menu item shows the toolbar for selecting audio*/
|
||||
c->AddCheck(wxT("ShowSelectionTB"), _("&Selection Toolbar"), FN(OnShowSelectionToolBar), 0, AlwaysEnabledFlag, AlwaysEnabledFlag);
|
||||
/* i18n-hint: Clicking this menu item shows a toolbar that has some tools in it*/
|
||||
c->AddCheck(wxT("ShowToolsTB"), _("T&ools Toolbar"), FN(OnShowToolsToolBar), 0, AlwaysEnabledFlag, AlwaysEnabledFlag);
|
||||
/* i18n-hint: Clicking this menu item shows the toolbar for transcription (currently just vary play speed)*/
|
||||
c->AddCheck(wxT("ShowTranscriptionTB"), _("Transcri&ption Toolbar"), FN(OnShowTranscriptionToolBar), 0, AlwaysEnabledFlag, AlwaysEnabledFlag);
|
||||
/* i18n-hint: Clicking this menu item shows the toolbar with the big buttons on it (play record etc)*/
|
||||
c->AddCheck(wxT("ShowTransportTB"), _("&Transport Toolbar"), FN(OnShowTransportToolBar), 0, AlwaysEnabledFlag, AlwaysEnabledFlag);
|
||||
|
||||
c->AddSeparator();
|
||||
|
||||
/* i18n-hint: (verb)*/
|
||||
c->AddItem(wxT("ResetToolbars"), _("&Reset Toolbars"), FN(OnResetToolBars), 0, AlwaysEnabledFlag, AlwaysEnabledFlag);
|
||||
|
||||
c->EndSubMenu();
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/* i18n-hint: Usually keep the ! at the start. It means this option is hidden.
|
||||
* Simplified View toggles the showing and hiding of 'hidden' menu items that start
|
||||
* with !. If your translation file is for a special use, that is if it is for a
|
||||
* simplified view with hidden menu items, then leave the ! out here, so that the
|
||||
* user can show/hide some of the menu items. */
|
||||
c->AddCheck(wxT("SimplifiedView"), _("!Simplified View"), FN(OnSimplifiedView),
|
||||
mCommandManager.mbHideFlaggedItems ? 1 : 0);
|
||||
|
||||
@ -616,11 +650,13 @@ void AudacityProject::CreateMenusAndCommands()
|
||||
c->BeginMenu(_("T&ransport"));
|
||||
c->SetDefaultFlags(AudioIONotBusyFlag, AudioIONotBusyFlag);
|
||||
|
||||
/* i18n-hint: (verb) Start playing audio*/
|
||||
c->AddItem(wxT("Play"), _("Play"), FN(OnPlayStop));
|
||||
c->AddItem(wxT("PlayLooped"), _("&Loop Play"), FN(OnPlayLooped), wxT("Shift+Space"));
|
||||
c->AddItem(wxT("Pause"), _("&Pause"), FN(OnPause), wxT("P"),
|
||||
AudioIOBusyFlag,
|
||||
AudioIOBusyFlag);
|
||||
/* i18n-hint: (verb) Stop playing audio*/
|
||||
c->AddItem(wxT("Stop"), _("&Stop"), FN(OnStop),
|
||||
AudioIOBusyFlag,
|
||||
AudioIOBusyFlag);
|
||||
@ -629,6 +665,7 @@ void AudacityProject::CreateMenusAndCommands()
|
||||
|
||||
c->AddSeparator();
|
||||
|
||||
/* i18n-hint: (verb)*/
|
||||
c->AddItem(wxT("Record"), _("&Record"), FN(OnRecord), wxT("R"));
|
||||
c->AddItem(wxT("TimerRecord"), _("&Timer Record..."), FN(OnTimerRecord), wxT("Shift+T"));
|
||||
c->AddItem(wxT("RecordAppend"), _("Append Record"), FN(OnRecordAppend), wxT("Shift+R"));
|
||||
@ -3899,7 +3936,11 @@ void AudacityProject::OnCutLabels()
|
||||
|
||||
mViewInfo.sel1 = mViewInfo.sel0;
|
||||
|
||||
PushState( _( "Cut labeled regions to the clipboard" ), _( "Cut Labels" ) );
|
||||
PushState(
|
||||
/* i18n-hint: (verb) past tense. Audacity has just cut the labeled regions.*/
|
||||
_( "Cut labeled regions to the clipboard" ),
|
||||
/* i18n-hint: (verb)*/
|
||||
_( "Cut Labels" ) );
|
||||
|
||||
RedrawProject();
|
||||
}
|
||||
@ -3913,7 +3954,10 @@ void AudacityProject::OnSplitCutLabels()
|
||||
|
||||
msClipProject = this;
|
||||
|
||||
PushState( _( "SplitCut labeled regions to the clipboard" ),
|
||||
PushState(
|
||||
/* i18n-hint: (verb) Audacity has just splitcut the labeled regions*/
|
||||
_( "SplitCut labeled regions to the clipboard" ),
|
||||
/* i18n-hint: (verb) Do a special kind of cut on the labels*/
|
||||
_( "Split Cut Labels" ) );
|
||||
|
||||
RedrawProject();
|
||||
@ -3928,7 +3972,9 @@ void AudacityProject::OnCopyLabels()
|
||||
|
||||
msClipProject = this;
|
||||
|
||||
PushState( _( "Copied labeled regions to the clipboard" ), _( "Copy Labels" ) );
|
||||
PushState( _( "Copied labeled regions to the clipboard" ),
|
||||
/* i18n-hint: (verb)*/
|
||||
_( "Copy Labels" ) );
|
||||
|
||||
mTrackPanel->Refresh( false );
|
||||
}
|
||||
@ -3942,7 +3988,11 @@ void AudacityProject::OnDeleteLabels()
|
||||
|
||||
mViewInfo.sel1 = mViewInfo.sel0;
|
||||
|
||||
PushState( _( "Deleted labeled regions" ), _( "Delete Labels" ) );
|
||||
PushState(
|
||||
/* i18n-hint: (verb) Audacity has just deleted the labeled regions*/
|
||||
_( "Deleted labeled regions" ),
|
||||
/* i18n-hint: (verb)*/
|
||||
_( "Delete Labels" ) );
|
||||
|
||||
RedrawProject();
|
||||
}
|
||||
@ -3954,7 +4004,11 @@ void AudacityProject::OnSplitDeleteLabels()
|
||||
|
||||
EditByLabel( &WaveTrack::SplitDelete, false );
|
||||
|
||||
PushState( _( "Split Deleted labeled regions" ), _( "Split Delete Labels" ) );
|
||||
PushState(
|
||||
/* i18n-hint: (verb) Audacity has just done a special kind of delete on the labeled regions */
|
||||
_( "Split Deleted labeled regions" ),
|
||||
/* i18n-hint: (verb) Do a special kind of delete on labels*/
|
||||
_( "Split Delete Labels" ) );
|
||||
|
||||
RedrawProject();
|
||||
}
|
||||
@ -3966,7 +4020,11 @@ void AudacityProject::OnSilenceLabels()
|
||||
|
||||
EditByLabel( &WaveTrack::Silence, false );
|
||||
|
||||
PushState( _( "Silenced labeled regions" ), _( "Silence Labels" ) );
|
||||
PushState(
|
||||
/* i18n-hint: (verb)*/
|
||||
_( "Silenced labeled regions" ),
|
||||
/* i18n-hint: (verb)*/
|
||||
_( "Silence Labels" ) );
|
||||
|
||||
mTrackPanel->Refresh( false );
|
||||
}
|
||||
@ -3975,7 +4033,11 @@ void AudacityProject::OnSplitLabels()
|
||||
{
|
||||
EditByLabel( &WaveTrack::Split, false );
|
||||
|
||||
PushState( _( "Split labeled regions" ), _( "Split Labels" ) );
|
||||
PushState(
|
||||
/* i18n-hint: (verb) past tense. Audacity has just split the labeled regions*/
|
||||
_( "Split labeled regions" ),
|
||||
/* i18n-hint: (verb)*/
|
||||
_( "Split Labels" ) );
|
||||
|
||||
RedrawProject();
|
||||
}
|
||||
@ -3987,7 +4049,11 @@ void AudacityProject::OnJoinLabels()
|
||||
|
||||
EditByLabel( &WaveTrack::Join, false );
|
||||
|
||||
PushState( _( "Joined labeled regions" ), _( "Join Labels" ) );
|
||||
PushState(
|
||||
/* i18n-hint: (verb) Audacity has just joined the labeled regions*/
|
||||
_( "Joined labeled regions" ),
|
||||
/* i18n-hint: (verb)*/
|
||||
_( "Join Labels" ) );
|
||||
|
||||
RedrawProject();
|
||||
}
|
||||
@ -3999,7 +4065,11 @@ void AudacityProject::OnDisjoinLabels()
|
||||
|
||||
EditByLabel( &WaveTrack::Disjoin, false );
|
||||
|
||||
PushState( _( "Detached labeled regions" ), _( "Detach Labels" ) );
|
||||
PushState(
|
||||
/* i18n-hint: (verb) Audacity has just detached the labeled regions*/
|
||||
_( "Detached labeled regions" ),
|
||||
/* i18n-hint: (verb)*/
|
||||
_( "Detach Labels" ) );
|
||||
|
||||
RedrawProject();
|
||||
}
|
||||
@ -4808,6 +4878,8 @@ void AudacityProject::HandleMixAndRender(bool toNewTrack)
|
||||
if (selectedCount==1) {
|
||||
wxString msg;
|
||||
msg.Printf(_("Rendered all audio in track '%s'"), firstName.c_str());
|
||||
/* i18n-hint: Convert the audio into a more usable form, so apply
|
||||
* panning and amplification and write to some external file.*/
|
||||
PushState(msg, _("Render"));
|
||||
}
|
||||
else {
|
||||
|
@ -1164,6 +1164,7 @@ void AudacityProject::SetProjectTitle()
|
||||
if (mIsRecovered)
|
||||
{
|
||||
name += wxT(" ");
|
||||
/* i18n-hint: E.g this is recovered audio that had been lost.*/
|
||||
name += _("(Recovered)");
|
||||
}
|
||||
|
||||
@ -2125,6 +2126,7 @@ wxArrayString AudacityProject::ShowOpenDialog(wxString extraformat, wxString ext
|
||||
all;
|
||||
#endif
|
||||
|
||||
/* i18n-hint: The vertical bars and * are essential here.*/
|
||||
wxString mask = _("All files|*|All supported files|") +
|
||||
all + wxT("|"); // "all" and "all supported" entries
|
||||
if (extraformat != wxEmptyString)
|
||||
@ -2807,6 +2809,7 @@ bool AudacityProject::HandleXMLTag(const wxChar *tag, const wxChar **attrs)
|
||||
(fileVersion > wxT(AUDACITY_FILE_FORMAT_VERSION)))
|
||||
{
|
||||
wxString msg;
|
||||
/* i18n-hint: %s will be replaced by the version number.*/
|
||||
msg.Printf(_("This file was saved using Audacity %s.\nYou are using Audacity %s. You may need to upgrade to a newer version to open this file."),
|
||||
audacityVersion.c_str(),
|
||||
AUDACITY_VERSION_STRING);
|
||||
@ -3509,6 +3512,7 @@ bool AudacityProject::SaveAs(bool bWantSaveCompressed /*= false*/)
|
||||
{
|
||||
fName = FileSelector(_("Save Speech As:"),
|
||||
path, fName, wxT(""),
|
||||
/* i18n-hint: Do not translate PCM.*/
|
||||
_("Windows PCM Audio file (*.wav)|*.wav"), //lda
|
||||
wxFD_SAVE | wxFD_OVERWRITE_PROMPT | wxRESIZE_BORDER, this);
|
||||
}
|
||||
|
@ -329,10 +329,14 @@ void ScreenFrame::PopulateOrExchange(ShuttleGui & S)
|
||||
{
|
||||
S.Id(IdMainWindowSmall).AddButton(_("Resize Small"));
|
||||
S.Id(IdMainWindowLarge).AddButton(_("Resize Large"));
|
||||
/* i18n-hint: Bkgnd is short for background and appears on a small button
|
||||
* It is OK to just translate this item as if it said 'Blue' */
|
||||
mBlue = new wxToggleButton(p,
|
||||
IdToggleBackgroundBlue,
|
||||
_("Blue Bkgnd"));
|
||||
S.AddWindow(mBlue);
|
||||
/* i18n-hint: Bkgnd is short for background and appears on a small button
|
||||
* It is OK to just translate this item as if it said 'White' */
|
||||
mWhite = new wxToggleButton(p,
|
||||
IdToggleBackgroundWhite,
|
||||
_("White Bkgnd"));
|
||||
|
@ -801,6 +801,7 @@ bool ThemeBase::ReadImageCache( bool bBinaryRead, bool bOkIfNotFound)
|
||||
}
|
||||
if( !ImageCache.LoadFile( FileName, wxBITMAP_TYPE_PNG ))
|
||||
{
|
||||
/* i18n-hint: Do not translate png. It is the name of a file format.*/
|
||||
wxMessageBox(
|
||||
wxString::Format(
|
||||
_("Audacity could not load file:\n %s.\nBad png format perhaps?"),
|
||||
@ -890,6 +891,7 @@ void ThemeBase::LoadComponents( bool bOkIfNotFound )
|
||||
{
|
||||
if( !mImages[i].LoadFile( FileName, wxBITMAP_TYPE_PNG ))
|
||||
{
|
||||
/* i18n-hint: Do not translate png. It is the name of a file format.*/
|
||||
wxMessageBox(
|
||||
wxString::Format(
|
||||
_("Audacity could not load file:\n %s.\nBad png format perhaps?"),
|
||||
|
@ -2420,7 +2420,9 @@ void TrackPanel::HandleEnvelope(wxMouseEvent & event)
|
||||
if (event.LeftUp()) {
|
||||
mCapturedTrack = NULL;
|
||||
MakeParentPushState(
|
||||
/* i18n-hint: (verb) Audacity has just adjusted the envelope .*/
|
||||
_("Adjusted envelope."),
|
||||
/* i18n-hint: The envelope is a curve that controls the audio loudness.*/
|
||||
_("Envelope")
|
||||
);
|
||||
}
|
||||
@ -2585,7 +2587,11 @@ void TrackPanel::HandleSlide(wxMouseEvent & event)
|
||||
consolidate = false;
|
||||
}
|
||||
else {
|
||||
wxString direction = mHSlideAmount>0 ? _("right") : _("left");
|
||||
wxString direction = mHSlideAmount>0 ?
|
||||
/* i18n-hint: a direction as in left or right.*/
|
||||
_("right") :
|
||||
/* i18n-hint: a direction as in left or right.*/
|
||||
_("left");
|
||||
/* i18n-hint: %s is a direction like left or right */
|
||||
msg.Printf(_("Time shifted tracks/clips %s %.02f seconds"),
|
||||
direction.c_str(), fabs(mHSlideAmount));
|
||||
@ -4291,6 +4297,7 @@ void TrackPanel::HandleRearrange(wxMouseEvent & event)
|
||||
}
|
||||
else if (event.m_y > mMoveDownThreshold || event.m_y > GetRect().GetHeight()) {
|
||||
mTracks->MoveDown(mCapturedTrack);
|
||||
/* i18n-hint: a direction as in up or down.*/
|
||||
dir = _("down");
|
||||
#ifdef EXPERIMENTAL_MIDI_OUT
|
||||
if (pMixerBoard && (mCapturedTrack->GetKind() == Track::Wave ||
|
||||
@ -7317,11 +7324,18 @@ void TrackPanel::OnMoveTrack(wxCommandEvent & event)
|
||||
if (pMixerBoard && (mPopupMenuTarget->GetKind() == Track::Wave))
|
||||
pMixerBoard->MoveTrackCluster((WaveTrack*)mPopupMenuTarget, bUp);
|
||||
|
||||
MakeParentPushState(wxString::Format(_("Moved '%s' %s"),
|
||||
MakeParentPushState(wxString::Format(
|
||||
/* i18n-hint: the first %s is the name of a track, the second a direction as in up or down.
|
||||
* If the word order is different in your language ask on the translators list about what
|
||||
* to do.*/
|
||||
_("Moved '%s' %s"),
|
||||
mPopupMenuTarget->GetName().
|
||||
c_str(),
|
||||
event.GetId() ==
|
||||
OnMoveUpID ? _("up") :
|
||||
OnMoveUpID ?
|
||||
/* i18n-hint: a direction as in up or down.*/
|
||||
_("up") :
|
||||
/* i18n-hint: a direction as in up or down.*/
|
||||
_("down")),
|
||||
_("Move Track"));
|
||||
Refresh(false);
|
||||
@ -8030,7 +8044,11 @@ void TrackInfo::DrawMuteSolo(wxDC * dc, const wxRect r, Track * t,
|
||||
dc->DrawRectangle(bev);
|
||||
|
||||
long textWidth, textHeight;
|
||||
wxString str = (solo) ? _("Solo") : _("Mute");
|
||||
wxString str = (solo) ?
|
||||
/* i18n-hint: This is on a button that will silence this track.*/
|
||||
_("Solo") :
|
||||
/* i18n-hint: This is on a button that will silence all the other tracks.*/
|
||||
_("Mute");
|
||||
|
||||
SetTrackInfoFont(dc);
|
||||
dc->GetTextExtent(str, &textWidth, &textHeight);
|
||||
|
@ -813,9 +813,11 @@ void EffectAutoDuckPanel::OnPaint(wxPaintEvent& evt)
|
||||
valueStr += wxT(" ");
|
||||
|
||||
if (cp == duckAmount)
|
||||
valueStr += _("dB"); // i18n-hint: short form of 'decibels'
|
||||
/* i18n-hint: short form of 'decibels'.*/
|
||||
valueStr += _("dB");
|
||||
else
|
||||
valueStr += _("s"); // i18n-hint: short form of 'seconds'
|
||||
/* i18n-hint: short form of 'seconds'.*/
|
||||
valueStr += _("s");
|
||||
|
||||
int textWidth = 0, textHeight = 0;
|
||||
GetTextExtent(valueStr, &textWidth, &textHeight);
|
||||
|
@ -597,6 +597,7 @@ public:
|
||||
S.SetStretchyCol(0);
|
||||
{
|
||||
if (mLibPath.GetFullPath().IsEmpty()) {
|
||||
/* i18n-hint: There is a button to the right of the arrow.*/
|
||||
text.Printf(_("To find %s, click here -->"), mName.c_str());
|
||||
mPathText = S.AddTextBox(wxT(""), text, 0);
|
||||
}
|
||||
@ -604,7 +605,9 @@ public:
|
||||
mPathText = S.AddTextBox(wxT(""), mLibPath.GetFullPath(), 0);
|
||||
}
|
||||
S.Id(ID_BROWSE).AddButton(_("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);
|
||||
/* i18n-hint: (verb)*/
|
||||
S.Id(ID_DLOAD).AddButton(_("Download"), wxALIGN_RIGHT);
|
||||
}
|
||||
S.EndMultiColumn();
|
||||
@ -625,8 +628,8 @@ public:
|
||||
{
|
||||
wxString question;
|
||||
/* i18n-hint: It's asking for the location of a file, for
|
||||
example, "Where is lame_enc.dll?" - you could translate
|
||||
"Where would I find the file %s" instead if you want. */
|
||||
* example, "Where is lame_enc.dll?" - you could translate
|
||||
* "Where would I find the file %s" instead if you want. */
|
||||
question.Printf(_("Where is %s?"), mName.c_str());
|
||||
|
||||
wxString path = FileSelector(question,
|
||||
|
@ -116,7 +116,10 @@ void MousePrefs::CreateList()
|
||||
AddItem(_("Shift-Left-Drag"), _("Time-Shift"),_("Time shift all clips in track"));
|
||||
AddItem(_("Ctrl-Left-Drag"), _("Time-Shift"),_("Move clip up/down between tracks"));
|
||||
|
||||
AddItem(_("Left-Drag"), _("Envelope"), _("Change Amplification Envelope"));
|
||||
AddItem(_("Left-Drag"),
|
||||
/* i18n-hint: The envelope is a curve that controls the audio loudness.*/
|
||||
_("Envelope"),
|
||||
_("Change Amplification Envelope"));
|
||||
|
||||
AddItem(_("Left-Click"), _("Pencil"), _("Change Sample"));
|
||||
AddItem(_("Alt-Left-Click"), _("Pencil"), _("Smooth at Sample"));
|
||||
|
@ -117,6 +117,7 @@ ToolBar::~ToolBar()
|
||||
//
|
||||
wxString ToolBar::GetTitle()
|
||||
{
|
||||
/* i18n-hint: %s will be replaced by the version number.*/
|
||||
return wxString::Format( _("Audacity %s ToolBar"), GetLabel().c_str() );
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user