Add choose language option

This commit is contained in:
Daniel Winzen
2014-12-25 20:54:18 +01:00
parent 9e4db1417a
commit 41b756776f
3 changed files with 43 additions and 3 deletions

View File

@@ -112,6 +112,8 @@ private slots:
void toggleDisplayWaveform( bool en );
void toggleDisableAutoquit( bool en );
void setLanguage( int lang );
private:
TabBar * m_tabBar;
@@ -125,6 +127,8 @@ private:
bool m_displaydBV;
bool m_MMPZ;
bool m_hqAudioDev;
QString m_lang;
QStringList m_languages;
QLineEdit * m_wdLineEdit;

View File

@@ -383,7 +383,14 @@ int main( int argc, char * * argv )
}
QString pos = QLocale::system().name().left( 2 );
ConfigManager::inst()->loadConfigFile();
// set language
QString pos = ConfigManager::inst()->value( "app", "language" );
if( pos.isEmpty() )
{
pos = QLocale::system().name().left( 2 );
}
#ifdef LMMS_BUILD_WIN32
#undef QT_TRANSLATIONS_DIR
@@ -414,8 +421,6 @@ int main( int argc, char * * argv )
#endif
#endif
ConfigManager::inst()->loadConfigFile();
if( render_out.isEmpty() )
{
// init style and palette

View File

@@ -96,6 +96,8 @@ SetupDialog::SetupDialog( ConfigTabs _tab_to_open ) :
m_MMPZ( !ConfigManager::inst()->value( "app", "nommpz" ).toInt() ),
m_hqAudioDev( ConfigManager::inst()->value( "mixer",
"hqaudio" ).toInt() ),
m_lang( ConfigManager::inst()->value( "app",
"language" ) ),
m_workingDir( ConfigManager::inst()->workingDir() ),
m_vstDir( ConfigManager::inst()->vstDir() ),
m_artworkDir( ConfigManager::inst()->artworkDir() ),
@@ -302,10 +304,33 @@ SetupDialog::SetupDialog( ConfigTabs _tab_to_open ) :
misc_tw->setFixedHeight( YDelta*labelNumber + HeaderSize );
TabWidget * lang_tw = new TabWidget( tr( "LANGUAGE" ), general );
lang_tw->setFixedHeight( 48 );
QComboBox * changeLang = new QComboBox( lang_tw );
changeLang->move( XDelta, YDelta );
QDir dir( ConfigManager::inst()->localeDir() );
QStringList fileNames = dir.entryList( QStringList( "*.qm" ) );
for( int i = 0; i < fileNames.size(); ++i )
{
// get locale extracted by filename
fileNames[i].truncate( fileNames[i].lastIndexOf( '.' ) );
m_languages.append( fileNames[i] );
QString lang = QLocale( m_languages.last() ).nativeLanguageName();
changeLang->addItem( lang );
if( m_lang == m_languages.last() )
{
changeLang->setCurrentIndex( i );
}
}
connect( changeLang, SIGNAL( currentIndexChanged( int ) ),
this, SLOT( setLanguage( int ) ) );
gen_layout->addWidget( bufsize_tw );
gen_layout->addSpacing( 10 );
gen_layout->addWidget( misc_tw );
gen_layout->addSpacing( 10 );
gen_layout->addWidget( lang_tw );
gen_layout->addStretch();
@@ -826,6 +851,7 @@ void SetupDialog::accept()
QString::number( m_displayWaveform ) );
ConfigManager::inst()->setValue( "ui", "disableautoquit",
QString::number( m_disableAutoQuit ) );
ConfigManager::inst()->setValue( "app", "language", m_lang );
ConfigManager::inst()->setWorkingDir( m_workingDir );
@@ -1026,6 +1052,11 @@ void SetupDialog::toggleOneInstrumentTrackWindow( bool _enabled )
m_oneInstrumentTrackWindow = _enabled;
}
void SetupDialog::setLanguage( int lang )
{
m_lang = m_languages[lang];
}