diff --git a/Jamulus.pro b/Jamulus.pro
index 2b1d668f..739fb72b 100755
--- a/Jamulus.pro
+++ b/Jamulus.pro
@@ -16,7 +16,8 @@ QT += widgets \
TRANSLATIONS = src/res/translation/translation_de_DE.ts \
src/res/translation/translation_fr_FR.ts \
- src/res/translation/translation_pt_PT.ts
+ src/res/translation/translation_pt_PT.ts \
+ src/res/translation/translation_es_ES.ts
INCLUDEPATH += src
diff --git a/src/aboutdlgbase.ui b/src/aboutdlgbase.ui
index 870a1ebf..98e1e39b 100755
--- a/src/aboutdlgbase.ui
+++ b/src/aboutdlgbase.ui
@@ -122,20 +122,10 @@
0
- -
-
-
- Author: Volker Fischer
-
-
- false
-
-
-
-
- Copyright (C) 2005-2020
+ Copyright (C) 2005-2020 Volker Fischer and others
false
diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp
index 4bc949f6..3dccb3fe 100755
--- a/src/audiomixerboard.cpp
+++ b/src/audiomixerboard.cpp
@@ -41,11 +41,11 @@ CChannelFader::CChannelFader ( QWidget* pNW,
pFader = new QSlider ( Qt::Vertical, pLevelsBox );
pMuteSoloBox = new QWidget ( pFrame );
- pcbMute = new QCheckBox ( "Mute", pMuteSoloBox );
- pcbSolo = new QCheckBox ( "Solo", pMuteSoloBox );
+ pcbMute = new QCheckBox ( tr ( "Mute" ), pMuteSoloBox );
+ pcbSolo = new QCheckBox ( tr ( "Solo" ), pMuteSoloBox );
pLabelInstBox = new QGroupBox ( pFrame );
- plblLabel = new QLabel ( "", pFrame );
+ plblLabel = new QLabel ( "", pFrame );
plblInstrument = new QLabel ( pFrame );
plblCountryFlag = new QLabel ( pFrame );
@@ -439,13 +439,13 @@ void CChannelFader::SetChannelInfos ( const CChannelInfo& cChanInfo )
// alias/name
if ( !strReceivedName.isEmpty() )
{
- strToolTip += "
Alias/Name
" + strReceivedName;
+ strToolTip += "" + tr ( "Alias/Name" ) + "
" + strReceivedName;
}
// instrument
if ( !CInstPictures::IsNotUsedInstrument ( iTTInstrument ) )
{
- strToolTip += "Instrument
" +
+ strToolTip += "" + tr ( "Instrument" ) + "
" +
CInstPictures::GetName ( iTTInstrument );
}
@@ -453,7 +453,7 @@ void CChannelFader::SetChannelInfos ( const CChannelInfo& cChanInfo )
if ( ( eTTCountry != QLocale::AnyCountry ) ||
( !cChanInfo.strCity.isEmpty() ) )
{
- strToolTip += "Location
";
+ strToolTip += "" + tr ( "Location" ) + "
";
if ( !cChanInfo.strCity.isEmpty() )
{
@@ -475,15 +475,15 @@ void CChannelFader::SetChannelInfos ( const CChannelInfo& cChanInfo )
switch ( cChanInfo.eSkillLevel )
{
case SL_BEGINNER:
- strToolTip += "Skill Level
Beginner";
+ strToolTip += "" + tr ( "Skill Level" ) + "
" + tr ( "Beginner" );
break;
case SL_INTERMEDIATE:
- strToolTip += "Skill Level
Intermediate";
+ strToolTip += "" + tr ( "Skill Level" ) + "
" + tr ( "Intermediate" );
break;
case SL_PROFESSIONAL:
- strToolTip += "Skill Level
Expert";
+ strToolTip += "" + tr ( "Skill Level" ) + "
" + tr ( "Expert" );
break;
case SL_NOT_SET:
@@ -494,7 +494,7 @@ void CChannelFader::SetChannelInfos ( const CChannelInfo& cChanInfo )
// if no information is given, leave the tool tip empty, otherwise add header
if ( !strToolTip.isEmpty() )
{
- strToolTip.prepend ( "Musician Profile
" );
+ strToolTip.prepend ( "" + tr ( "Musician Profile" ) + "
" );
}
plblCountryFlag->setToolTip ( strToolTip );
@@ -704,7 +704,7 @@ void CAudioMixerBoard::SetServerName ( const QString& strNewServerName )
if ( strServerName.isEmpty() )
{
// no connection or connection was reset: show default title
- pGroupBox->setTitle ( "Server" );
+ pGroupBox->setTitle ( tr ( "Server" ) );
}
else
{
@@ -713,7 +713,7 @@ void CAudioMixerBoard::SetServerName ( const QString& strNewServerName )
// list was received, the connection was successful and the title is updated
// with the correct server name. Make sure to choose a "try to connect" title
// which is most striking (we use filled blocks and upper case letters).
- pGroupBox->setTitle ( u8"\u2588\u2588\u2588\u2588\u2588 T R Y I N G T O C O N N E C T \u2588\u2588\u2588\u2588\u2588" );
+ pGroupBox->setTitle ( u8"\u2588\u2588\u2588\u2588\u2588 " + tr ( "T R Y I N G T O C O N N E C T" ) + u8" \u2588\u2588\u2588\u2588\u2588" );
}
}
diff --git a/src/clientdlg.cpp b/src/clientdlg.cpp
index e1dc415c..a68aad99 100755
--- a/src/clientdlg.cpp
+++ b/src/clientdlg.cpp
@@ -200,7 +200,7 @@ CClientDlg::CClientDlg ( CClient* pNCliP,
OnTimerStatus();
// init connection button text
- butConnect->setText ( CON_BUT_CONNECTTEXT );
+ butConnect->setText ( tr ( "C&onnect" ) );
// init input level meter bars
lbrInputLevelL->setValue ( 0 );
@@ -252,7 +252,7 @@ CClientDlg::CClientDlg ( CClient* pNCliP,
// View menu --------------------------------------------------------------
- pViewMenu = new QMenu ( "&View", this );
+ pViewMenu = new QMenu ( tr ( "&View" ), this );
pViewMenu->addAction ( tr ( "&Connection Setup..." ), this,
SLOT ( OnOpenConnectionSetupDialog() ) );
@@ -323,7 +323,7 @@ CClientDlg::CClientDlg ( CClient* pNCliP,
{
// default icon and name for no flag selected
CurFlagIcon.addFile ( ":/png/flags/res/flags/flagnone.png" );
- sCurCountryName = "None";
+ sCurCountryName = tr ( "None" );
}
else
{
@@ -603,20 +603,20 @@ void CClientDlg::UpdateAudioFaderSlider()
// attenuated
if ( iCurAudInFader == AUD_FADER_IN_MIDDLE )
{
- lblAudioPanValue->setText ( "Center" );
+ lblAudioPanValue->setText ( tr ( "Center" ) );
}
else
{
if ( iCurAudInFader > AUD_FADER_IN_MIDDLE )
{
// attenuation on right channel
- lblAudioPanValue->setText ( "R -" +
+ lblAudioPanValue->setText ( tr ( "R" ) + " -" +
QString().setNum ( iCurAudInFader - AUD_FADER_IN_MIDDLE ) );
}
else
{
// attenuation on left channel
- lblAudioPanValue->setText ( "L -" +
+ lblAudioPanValue->setText ( tr ( "L" ) + " -" +
QString().setNum ( AUD_FADER_IN_MIDDLE - iCurAudInFader ) );
}
}
@@ -815,12 +815,12 @@ void CClientDlg::SetMyWindowTitle ( const int iNumClients )
{
if ( iNumClients == 1 )
{
- setWindowTitle ( QString ( pClient->strClientName ) + " (1 user)" );
+ setWindowTitle ( QString ( pClient->strClientName ) + " (1 " + tr ( "user" ) + ")" );
}
else
{
setWindowTitle ( QString ( pClient->strClientName ) +
- QString ( " (%1 users)" ).arg ( iNumClients ) );
+ QString ( " (%1 " + tr ( "users" ) + ")" ).arg ( iNumClients ) );
}
}
@@ -1057,7 +1057,7 @@ void CClientDlg::Connect ( const QString& strSelectedAddress,
}
// change connect button text to "disconnect"
- butConnect->setText ( CON_BUT_DISCONNECTTEXT );
+ butConnect->setText ( tr ( "D&isconnect" ) );
// set server name in audio mixer group box title
MainMixerBoard->SetServerName ( strMixerBoardLabel );
@@ -1081,7 +1081,7 @@ void CClientDlg::Disconnect()
}
// change connect button text to "connect"
- butConnect->setText ( CON_BUT_CONNECTTEXT );
+ butConnect->setText ( tr ( "C&onnect" ) );
// reset server name in audio mixer group box title
MainMixerBoard->SetServerName ( "" );
diff --git a/src/clientdlg.h b/src/clientdlg.h
index ddd284fd..b87a925f 100755
--- a/src/clientdlg.h
+++ b/src/clientdlg.h
@@ -51,10 +51,6 @@
/* Definitions ****************************************************************/
-// text strings for connection button for connect and disconnect
-#define CON_BUT_CONNECTTEXT "C&onnect"
-#define CON_BUT_DISCONNECTTEXT "D&isconnect"
-
// update time for GUI controls
#define LEVELMETER_UPDATE_TIME_MS 100 // ms
#define BUFFER_LED_UPDATE_TIME_MS 300 // ms
diff --git a/src/clientsettingsdlg.cpp b/src/clientsettingsdlg.cpp
index c3263123..31cda175 100755
--- a/src/clientsettingsdlg.cpp
+++ b/src/clientsettingsdlg.cpp
@@ -285,7 +285,7 @@ CClientSettingsDlg::CClientSettingsDlg ( CClient* pNCliP, QWidget* parent,
// init driver button
#ifdef _WIN32
- butDriverSetup->setText ( "ASIO Setup" );
+ butDriverSetup->setText ( tr ( "ASIO Setup" ) );
#else
// no use for this button for MacOS/Linux right now -> hide it
butDriverSetup->hide();
@@ -332,23 +332,23 @@ CClientSettingsDlg::CClientSettingsDlg ( CClient* pNCliP, QWidget* parent,
// "Audio Channels" combo box
cbxAudioChannels->clear();
- cbxAudioChannels->addItem ( "Mono" ); // CC_MONO
- cbxAudioChannels->addItem ( "Mono-in/Stereo-out" ); // CC_MONO_IN_STEREO_OUT
- cbxAudioChannels->addItem ( "Stereo" ); // CC_STEREO
+ cbxAudioChannels->addItem ( tr ( "Mono" ) ); // CC_MONO
+ cbxAudioChannels->addItem ( tr ( "Mono-in/Stereo-out" ) ); // CC_MONO_IN_STEREO_OUT
+ cbxAudioChannels->addItem ( tr ( "Stereo" ) ); // CC_STEREO
cbxAudioChannels->setCurrentIndex ( static_cast ( pClient->GetAudioChannels() ) );
// "Audio Quality" combo box
cbxAudioQuality->clear();
- cbxAudioQuality->addItem ( "Low" ); // AQ_LOW
- cbxAudioQuality->addItem ( "Normal" ); // AQ_NORMAL
- cbxAudioQuality->addItem ( "High" ); // AQ_HIGH
+ cbxAudioQuality->addItem ( tr ( "Low" ) ); // AQ_LOW
+ cbxAudioQuality->addItem ( tr ( "Normal" ) ); // AQ_NORMAL
+ cbxAudioQuality->addItem ( tr ( "High" ) ); // AQ_HIGH
cbxAudioQuality->setCurrentIndex ( static_cast ( pClient->GetAudioQuality() ) );
// central server address type combo box
cbxCentServAddrType->clear();
- cbxCentServAddrType->addItem ( "Manual" ); // AT_MANUAL
- cbxCentServAddrType->addItem ( "Default" ); // AT_DEFAULT
- cbxCentServAddrType->addItem ( "Default (North America)" ); // AT_NORTH_AMERICA
+ cbxCentServAddrType->addItem ( tr ( "Manual" ) ); // AT_MANUAL
+ cbxCentServAddrType->addItem ( tr ( "Default" ) ); // AT_DEFAULT
+ cbxCentServAddrType->addItem ( tr ( "Default (North America)" ) ); // AT_NORTH_AMERICA
cbxCentServAddrType->setCurrentIndex ( static_cast ( pClient->GetCentralServerAddressType() ) );
UpdateCentralServerDependency();
@@ -454,11 +454,11 @@ void CClientSettingsDlg::UpdateJitterBufferFrame()
// update slider value and text
const int iCurNumNetBuf = pClient->GetSockBufNumFrames();
sldNetBuf->setValue ( iCurNumNetBuf );
- lblNetBuf->setText ( "Size: " + QString().setNum ( iCurNumNetBuf ) );
+ lblNetBuf->setText ( tr ( "Size: " ) + QString().setNum ( iCurNumNetBuf ) );
const int iCurNumNetBufServer = pClient->GetServerSockBufNumFrames();
sldNetBufServer->setValue ( iCurNumNetBufServer );
- lblNetBufServer->setText ( "Size: " + QString().setNum ( iCurNumNetBufServer ) );
+ lblNetBufServer->setText ( tr ( "Size: " ) + QString().setNum ( iCurNumNetBufServer ) );
// if auto setting is enabled, disable slider control
const bool bIsAutoSockBufSize = pClient->GetDoAutoSockBufSize();
@@ -515,12 +515,12 @@ void CClientSettingsDlg::UpdateSoundCardFrame()
if ( bPreferredChecked || bDefaultChecked || bSafeChecked )
{
// default title text
- grbSoundCrdBufDelay->setTitle ( "Buffer Delay" );
+ grbSoundCrdBufDelay->setTitle ( tr ( "Buffer Delay" ) );
}
else
{
// special title text with buffer size information added
- grbSoundCrdBufDelay->setTitle ( "Buffer Delay: " +
+ grbSoundCrdBufDelay->setTitle ( tr ( "Buffer Delay: " ) +
GenSndCrdBufferDelayString ( iCurActualBufSize ) );
}
}
@@ -633,7 +633,7 @@ void CClientSettingsDlg::OnSoundcardActivated ( int iSndDevIdx )
QString ( tr ( "The selected audio device could not be used "
"because of the following error: " ) ) + strError +
QString ( tr ( " The previous driver will be selected." ) ),
- "Ok", nullptr );
+ tr ( "Ok" ), nullptr );
// recover old selection
cbxSoundcard->setCurrentIndex ( pClient->GetSndCrdDev() );
diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts
index 4b1d4655..7545870a 100644
--- a/src/res/translation/translation_de_DE.ts
+++ b/src/res/translation/translation_de_DE.ts
@@ -63,16 +63,11 @@
-
+
-
-
-
-
-
-
+
@@ -90,6 +85,19 @@
+
+ CAudioMixerBoard
+
+
+
+
+
+
+
+
+
+
+
CChannelFader
@@ -163,11 +171,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -332,6 +384,17 @@
+
+
+
+
+
+
+
+
+
+
+
@@ -362,6 +425,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
CClientDlgBase
@@ -663,6 +761,72 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -673,6 +837,11 @@
+
+
+
+
+
CClientSettingsDlgBase
@@ -946,29 +1115,44 @@
CHelpMenu
-
-
+
+
-
+
-
+
-
+
Über...
CLicenceDlg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1058,203 +1242,255 @@
CMusProfDlg
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -1337,48 +1573,108 @@ What you set here will appear at your fader on the mixer board when you are conn
-
+
-
+
-
-
+
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
CServerDlgBase
diff --git a/src/res/translation/translation_es_ES.qm b/src/res/translation/translation_es_ES.qm
new file mode 100644
index 00000000..9dad8dff
Binary files /dev/null and b/src/res/translation/translation_es_ES.qm differ
diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts
new file mode 100644
index 00000000..7c0fc889
--- /dev/null
+++ b/src/res/translation/translation_es_ES.ts
@@ -0,0 +1,1901 @@
+
+
+
+
+ CAboutDlg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CAboutDlgBase
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CAnalyzerConsole
+
+
+
+
+
+
+
+
+
+
+
+
+ CAudioMixerBoard
+
+
+
+
+
+
+
+
+
+
+
+
+ CChannelFader
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CChatDlg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CChatDlgBase
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CClientDlg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CClientDlgBase
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CClientSettingsDlg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CClientSettingsDlgBase
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CConnectDlg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CConnectDlgBase
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CHelpMenu
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CLicenceDlg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CMusProfDlg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CServerDlg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CServerDlgBase
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CSound
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CSoundBase
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/res/translation/translation_fr_FR.qm b/src/res/translation/translation_fr_FR.qm
index 9cfed230..94938b73 100644
Binary files a/src/res/translation/translation_fr_FR.qm and b/src/res/translation/translation_fr_FR.qm differ
diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts
index f864619a..03906304 100644
--- a/src/res/translation/translation_fr_FR.ts
+++ b/src/res/translation/translation_fr_FR.ts
@@ -63,16 +63,19 @@
+
+
+
+
- Auteur : Volker Fisher
+ Auteur : Volker Fisher
-
- Copyright (C) 2005-2020
+ Copyright (C) 2005-2020
-
+
&OK
@@ -90,6 +93,19 @@
+
+ CAudioMixerBoard
+
+
+
+ Serveur
+
+
+
+
+
+
+
CChannelFader
@@ -163,11 +179,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -332,6 +392,17 @@
+
+
+
+
+ Se c&onnecter
+
+
+
+
+
+
@@ -362,6 +433,41 @@
+
+
+
+
+
+
+
+
+ Centre
+
+
+
+
+ D
+
+
+
+
+ G
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
CClientDlgBase
@@ -398,7 +504,7 @@
- Tchate>
+ Tchate
@@ -663,6 +769,72 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -673,13 +845,18 @@
+
+
+
+
+
CClientSettingsDlgBase
-
+ Paramètres
@@ -700,13 +877,13 @@
-
+ G
-
+ D
@@ -946,29 +1123,44 @@
CHelpMenu
-
-
+
+
-
+
-
+
-
+
CLicenceDlg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1058,203 +1250,255 @@
CMusProfDlg
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ &Fermer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -1337,48 +1581,108 @@ What you set here will appear at your fader on the mixer board when you are conn
-
+
-
+
-
-
+
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
CServerDlgBase
diff --git a/src/res/translation/translation_pt_PT.qm b/src/res/translation/translation_pt_PT.qm
index 93b4207c..8dadf065 100644
Binary files a/src/res/translation/translation_pt_PT.qm and b/src/res/translation/translation_pt_PT.qm differ
diff --git a/src/res/translation/translation_pt_PT.ts b/src/res/translation/translation_pt_PT.ts
index 01fe7ed5..e5a533a1 100644
--- a/src/res/translation/translation_pt_PT.ts
+++ b/src/res/translation/translation_pt_PT.ts
@@ -63,16 +63,19 @@
+
+
+
+
- Autor: Volker Fischer
+ Autor: Volker Fischer
-
- Copyright (C) 2005-2020
+ Copyright (C) 2005-2020
-
+
&OK
@@ -90,6 +93,19 @@
Taxa de Erros de Cada Tamanho de Buffer
+
+ CAudioMixerBoard
+
+
+
+ Servidor
+
+
+
+
+
+
+
CChannelFader
@@ -163,11 +179,55 @@
SOLO
+
+
+
+
+
+
+
+
+
+
+
+
+ Localização
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Mute
+
Solo
@@ -332,6 +392,17 @@
Indicador LED do estado dos buffers
+
+
+
+
+ &Ligar
+
+
+
+
+
+
@@ -362,6 +433,41 @@
&Sair
+
+
+
+ Nenhum
+
+
+
+
+ Centro
+
+
+
+
+ R
+
+
+
+
+ L
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
CClientDlgBase
@@ -663,6 +769,72 @@
.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Atraso do buffer
+
+
+
+
+
+
@@ -673,6 +845,11 @@
O driver anterior será selecionado.
+
+
+
+
+
CClientSettingsDlgBase
@@ -946,29 +1123,44 @@
CHelpMenu
-
-
+
+
Como Começa&r...
-
+
&Manual do Programa...
-
+
O que é &isto
-
+
&Sobre...
CLicenceDlg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1058,204 +1250,256 @@
CMusProfDlg
-
+
<b>Perfil do músico:</b> Defina o seu nome ou um pseudônimo aqui para que os outros músicos com quem quer tocar saibam quem você é. Além disso, pode definir uma imagem do instrumento que toca e uma bandeira do país em que vive. A cidade em que vive e o nível de habilidade com o seu instrumento também podem ser adicionados.
O que definir aqui aparecerá por baixo do seu fader na secção de mistura quando estiver ligado a um servidor
-
+
. Esta identificação também será exibida em cada cliente ligado ao mesmo servidor que você. Se o nome estiver vazio, o endereço IP será mostrado.
-
+
Caixa de edição do nome ou pseudônimo
-
+
Botão da imagem do instrumento
-
+
Botão da bandeira do país
-
+
Caixa de edição da cidade
-
+
Caixa do nível de habilidade
-
+
+
+
Nenhum
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ &Fechar
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Bateria
-
+
Djembe
-
+
Guitarra Elétrica
-
+
Guitarra Acústica
-
+
Baixo
-
+
Teclado
-
+
Sintetizador
-
+
Piano de Cauda
-
+
Acordeão
-
+
Voz
-
+
Microfone
-
+
Harmónica
-
+
Trompete
-
+
Trombone
-
+
Trompa Francesa
-
+
Tuba
-
+
Saxofone
-
+
Clarinete
-
+
Flauta
-
+
Violino
-
+
Violoncelo
-
+
Contrabaixo
-
+
Gravador
-
+
Streamer
-
+
Ouvinte
-
+
Guitarra+Voz
-
+
Teclado+Voz
-
+
Bodhrán
-
+
Fagote
-
+
Oboé
-
+
Harpa
-
+
Viola de Arco
@@ -1338,48 +1582,108 @@ O que definir aqui aparecerá por baixo do seu fader na secção de mistura quan
Caixa de edição da cidade onde o servidor se encontra
-
+
<b>Localização: País</b> O país em que este servidor está localizado pode ser definido aqui. Se um país for inserido, ele será mostrado na lista do diálogo de logação dos clientes.
-
+
Seletor do país onde o servidor de encontra
-
-
+
+
&Sair
-
+
&Esconder servidor
-
-
-
+
+
+
-
+
&Abrir servidor
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
- Servidor
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
CServerDlgBase
diff --git a/src/resources.qrc b/src/resources.qrc
index 6b0fc83f..ab3535f1 100755
--- a/src/resources.qrc
+++ b/src/resources.qrc
@@ -8,6 +8,9 @@
res/translation/translation_pt_PT.qm
+
+ res/translation/translation_es_ES.qm
+
res/CLEDDisabledSmall.png
res/CLEDGreenArrow.png
diff --git a/src/serverdlg.cpp b/src/serverdlg.cpp
index 9091b061..48b4931a 100755
--- a/src/serverdlg.cpp
+++ b/src/serverdlg.cpp
@@ -107,8 +107,7 @@ CServerDlg::CServerDlg ( CServer* pNServP,
lblLocationCity->setWhatsThis ( strLocCity );
edtLocationCity->setWhatsThis ( strLocCity );
- edtLocationCity->setAccessibleName ( tr (
- "City where the server is located line edit" ) );
+ edtLocationCity->setAccessibleName ( tr ( "City where the server is located line edit" ) );
// location country
QString strLocCountry = tr ( "Location country: The country in "
@@ -189,9 +188,9 @@ lvwClients->setMinimumHeight ( 140 );
// central server address type combo box
cbxCentServAddrType->clear();
- cbxCentServAddrType->addItem ( "Manual" ); // AT_MANUAL
- cbxCentServAddrType->addItem ( "Default" ); // AT_DEFAULT
- cbxCentServAddrType->addItem ( "Default (North America)" ); // AT_NORTH_AMERICA
+ cbxCentServAddrType->addItem ( tr ( "Manual" ) ); // AT_MANUAL
+ cbxCentServAddrType->addItem ( tr ( "Default" ) ); // AT_DEFAULT
+ cbxCentServAddrType->addItem ( tr ( "Default (North America)" ) ); // AT_NORTH_AMERICA
cbxCentServAddrType->setCurrentIndex ( static_cast ( pServer->GetCentralServerAddressType() ) );
// update server name line edit
@@ -273,7 +272,7 @@ lvwClients->setMinimumHeight ( 140 );
// View menu --------------------------------------------------------------
- QMenu* pViewMenu = new QMenu ( "&Window", this );
+ QMenu* pViewMenu = new QMenu ( tr ( "&Window" ), this );
pViewMenu->addAction ( tr ( "E&xit" ), this,
SLOT ( close() ), QKeySequence ( Qt::CTRL + Qt::Key_Q ) );
diff --git a/src/util.cpp b/src/util.cpp
index 8839c288..dd845c02 100755
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -462,9 +462,9 @@ CLicenceDlg::CLicenceDlg ( QWidget* parent ) : QDialog ( parent )
QVBoxLayout* pLayout = new QVBoxLayout ( this );
QHBoxLayout* pSubLayout = new QHBoxLayout;
QTextBrowser* txvLicence = new QTextBrowser ( this );
- QCheckBox* chbAgree = new QCheckBox ( "I &agree to the above licence terms", this );
- butAccept = new QPushButton ( "Accept", this );
- QPushButton* butDecline = new QPushButton ( "Decline", this );
+ QCheckBox* chbAgree = new QCheckBox ( tr ( "I &agree to the above licence terms" ), this );
+ butAccept = new QPushButton ( tr ( "Accept" ), this );
+ QPushButton* butDecline = new QPushButton ( tr ( "Decline" ), this );
pSubLayout->addStretch();
pSubLayout->addWidget ( chbAgree );
@@ -539,22 +539,22 @@ CMusProfDlg::CMusProfDlg ( CClient* pNCliP,
- label with combo box for skill level
- OK button
*/
- setWindowTitle ( "Musician Profile" );
+ setWindowTitle ( tr ( "Musician Profile" ) );
setWindowIcon ( QIcon ( QString::fromUtf8 ( ":/png/main/res/fronticon.png" ) ) );
QVBoxLayout* pLayout = new QVBoxLayout ( this );
QHBoxLayout* pButSubLayout = new QHBoxLayout;
- QLabel* plblAlias = new QLabel ( "Alias/Name", this );
+ QLabel* plblAlias = new QLabel ( tr ( "Alias/Name" ), this );
pedtAlias = new QLineEdit ( this );
- QLabel* plblInstrument = new QLabel ( "Instrument", this );
+ QLabel* plblInstrument = new QLabel ( tr ( "Instrument" ), this );
pcbxInstrument = new QComboBox ( this );
- QLabel* plblCountry = new QLabel ( "Country", this );
+ QLabel* plblCountry = new QLabel ( tr ( "Country" ), this );
pcbxCountry = new QComboBox ( this );
- QLabel* plblCity = new QLabel ( "City", this );
+ QLabel* plblCity = new QLabel ( tr ( "City" ), this );
pedtCity = new QLineEdit ( this );
- QLabel* plblSkill = new QLabel ( "Skill", this );
+ QLabel* plblSkill = new QLabel ( tr ( "Skill" ), this );
pcbxSkill = new QComboBox ( this );
- QPushButton* butClose = new QPushButton ( "&Close", this );
+ QPushButton* butClose = new QPushButton ( tr ( "&Close" ), this );
QGridLayout* pGridLayout = new QGridLayout;
plblAlias->setSizePolicy ( QSizePolicy::Minimum, QSizePolicy::Expanding );
@@ -627,8 +627,7 @@ CMusProfDlg::CMusProfDlg ( CClient* pNCliP,
if ( static_cast ( iCurCntry ) != QLocale::AnyCountry )
{
// get current country enum
- QLocale::Country eCountry =
- static_cast ( iCurCntry );
+ QLocale::Country eCountry = static_cast ( iCurCntry );
// try to load icon from resource file name
QIcon CurFlagIcon;
@@ -653,7 +652,7 @@ CMusProfDlg::CMusProfDlg ( CClient* pNCliP,
FlagNoneIcon.addFile ( ":/png/flags/res/flags/flagnone.png" );
pcbxCountry->insertItem ( 0,
FlagNoneIcon,
- "None",
+ tr ( "None" ),
static_cast ( QLocale::AnyCountry ) );
@@ -665,25 +664,25 @@ CMusProfDlg::CMusProfDlg ( CClient* pNCliP,
RGBCOL_G_SL_NOT_SET,
RGBCOL_B_SL_NOT_SET ) );
- pcbxSkill->addItem ( QIcon ( SLPixmap ), "None", SL_NOT_SET );
+ pcbxSkill->addItem ( QIcon ( SLPixmap ), tr ( "None" ), SL_NOT_SET );
SLPixmap.fill ( QColor::fromRgb ( RGBCOL_R_SL_BEGINNER,
RGBCOL_G_SL_BEGINNER,
RGBCOL_B_SL_BEGINNER ) );
- pcbxSkill->addItem ( QIcon ( SLPixmap ), "Beginner", SL_BEGINNER );
+ pcbxSkill->addItem ( QIcon ( SLPixmap ), tr ( "Beginner" ), SL_BEGINNER );
SLPixmap.fill ( QColor::fromRgb ( RGBCOL_R_SL_INTERMEDIATE,
RGBCOL_G_SL_INTERMEDIATE,
RGBCOL_B_SL_INTERMEDIATE ) );
- pcbxSkill->addItem ( QIcon ( SLPixmap ), "Intermediate", SL_INTERMEDIATE );
+ pcbxSkill->addItem ( QIcon ( SLPixmap ), tr ( "Intermediate" ), SL_INTERMEDIATE );
SLPixmap.fill ( QColor::fromRgb ( RGBCOL_R_SL_SL_PROFESSIONAL,
RGBCOL_G_SL_SL_PROFESSIONAL,
RGBCOL_B_SL_SL_PROFESSIONAL ) );
- pcbxSkill->addItem ( QIcon ( SLPixmap ), "Expert", SL_PROFESSIONAL );
+ pcbxSkill->addItem ( QIcon ( SLPixmap ), tr ( "Expert" ), SL_PROFESSIONAL );
// Add help text to controls -----------------------------------------------
diff --git a/src/util.h b/src/util.h
index 6a790f3f..3c688f59 100755
--- a/src/util.h
+++ b/src/util.h
@@ -590,28 +590,28 @@ inline QString svrRegStatusToString ( ESvrRegStatus eSvrRegStatus )
switch ( eSvrRegStatus )
{
case SRS_UNREGISTERED:
- return "Unregistered";
+ return QCoreApplication::translate ( "CServerDlg", "Unregistered" );
case SRS_BAD_ADDRESS:
- return "Bad address";
+ return QCoreApplication::translate ( "CServerDlg", "Bad address" );
case SRS_REQUESTED:
- return "Registration requested";
+ return QCoreApplication::translate ( "CServerDlg", "Registration requested" );
case SRS_TIME_OUT:
- return "Registration failed";
+ return QCoreApplication::translate ( "CServerDlg", "Registration failed" );
case SRS_UNKNOWN_RESP:
- return "Check server version";
+ return QCoreApplication::translate ( "CServerDlg", "Check server version" );
case SRS_REGISTERED:
- return "Registered";
+ return QCoreApplication::translate ( "CServerDlg", "Registered" );
case SRS_CENTRAL_SVR_FULL:
- return "Central Server full";
+ return QCoreApplication::translate ( "CServerDlg", "Central Server full" );
}
- return QString ( "Unknown value " ).append ( eSvrRegStatus );
+ return QString ( QCoreApplication::translate ( "CServerDlg", "Unknown value " ) ).append ( eSvrRegStatus );
}