Add choose language option
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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];
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user