@ -139,15 +139,7 @@ UBApplication::UBApplication(const QString &id, int &argc, char **argv) : QtSing
UBSettings * settings = UBSettings : : settings ( ) ;
UBSettings * settings = UBSettings : : settings ( ) ;
QString forcedLanguage ( " " ) ;
setupTranslators ( args ) ;
if ( args . contains ( " -lang " ) )
forcedLanguage = args . at ( args . indexOf ( " -lang " ) + 1 ) ;
else {
QString setLanguage = settings - > appPreferredLanguage - > get ( ) . toString ( ) ;
if ( ! setLanguage . isEmpty ( ) )
forcedLanguage = setLanguage ;
}
setupTranslator ( forcedLanguage ) ;
connect ( settings - > appToolBarPositionedAtTop , SIGNAL ( changed ( QVariant ) ) , this , SLOT ( toolBarPositionChanged ( QVariant ) ) ) ;
connect ( settings - > appToolBarPositionedAtTop , SIGNAL ( changed ( QVariant ) ) , this , SLOT ( toolBarPositionChanged ( QVariant ) ) ) ;
connect ( settings - > appToolBarDisplayText , SIGNAL ( changed ( QVariant ) ) , this , SLOT ( toolBarDisplayTextChanged ( QVariant ) ) ) ;
connect ( settings - > appToolBarDisplayText , SIGNAL ( changed ( QVariant ) ) , this , SLOT ( toolBarDisplayTextChanged ( QVariant ) ) ) ;
@ -207,45 +199,71 @@ UBApplication::~UBApplication()
staticMemoryCleaner = 0 ;
staticMemoryCleaner = 0 ;
}
}
void UBApplication : : setupTranslator ( QString forcedL anguage)
QString UBApplication : : checkLanguageAvailabilityForSankore ( QString & l anguage)
{
{
QStringList availablesTranslations = UBPlatformUtils : : availableTranslations ( ) ;
QStringList availableTranslations = UBPlatformUtils : : availableTranslations ( ) ;
QString language ( " " ) ;
if ( availableTranslations . contains ( language , Qt : : CaseInsensitive ) )
if ( ! forcedLanguage . isEmpty ( ) ) {
return language ;
if ( availablesTranslations . contains ( forcedLanguage , Qt : : CaseInsensitive ) )
else {
language = forcedLanguage ;
if ( language . length ( ) > 2 ) {
else
QString shortLanguageCode = language . left ( 2 ) ;
qDebug ( ) < < " forced language " < < forcedLanguage < < " not available " ;
if ( availableTranslations . contains ( shortLanguageCode , Qt : : CaseInsensitive ) )
}
return shortLanguageCode ;
else {
}
QString systemLanguage = UBPlatformUtils : : systemLanguage ( ) ;
}
if ( availablesTranslations . contains ( systemLanguage , Qt : : CaseInsensitive ) )
return QString ( " " ) ;
language = systemLanguage ;
}
else
qDebug ( ) < < " translation for system language " < < systemLanguage < < " not found " ;
void UBApplication : : setupTranslators ( QStringList args )
}
{
QString forcedLanguage ;
if ( language . isEmpty ( ) ) {
if ( args . contains ( " -lang " ) )
language = " en_US " ;
forcedLanguage = args . at ( args . indexOf ( " -lang " ) + 1 ) ;
//fallback if no translation are available
else {
}
QString setLanguage = UBSettings : : settings ( ) - > appPreferredLanguage - > get ( ) . toString ( ) ;
else {
if ( ! setLanguage . isEmpty ( ) )
mApplicationTranslator = new QTranslator ( this ) ;
forcedLanguage = setLanguage ;
mQtGuiTranslator = new QTranslator ( this ) ;
}
QStringList availablesTranslations = UBPlatformUtils : : availableTranslations ( ) ;
QString language ( " " ) ;
if ( ! forcedLanguage . isEmpty ( ) )
language = checkLanguageAvailabilityForSankore ( forcedLanguage ) ;
if ( language . isEmpty ( ) ) {
QString systemLanguage = UBPlatformUtils : : systemLanguage ( ) ;
language = checkLanguageAvailabilityForSankore ( systemLanguage ) ;
}
if ( language . isEmpty ( ) ) {
language = " en_US " ;
//fallback if no translation are available
}
else {
mApplicationTranslator = new QTranslator ( this ) ;
mQtGuiTranslator = new QTranslator ( this ) ;
mApplicationTranslator - > load ( UBPlatformUtils : : translationPath ( QString ( " sankore_ " ) , language ) ) ;
mApplicationTranslator - > load ( UBPlatformUtils : : translationPath ( QString ( " sankore_ " ) , language ) ) ;
installTranslator ( mApplicationTranslator ) ;
installTranslator ( mApplicationTranslator ) ;
QString qtGuiTranslationPath = UBPlatformUtils : : translationPath ( " qt_ " , language ) ;
mQtGuiTranslator - > load ( UBPlatformUtils : : translationPath ( QString ( " qt_ " ) , language ) ) ;
if ( ! QFile ( qtGuiTranslationPath ) . exists ( ) ) {
if ( ! mQtGuiTranslator - > isEmpty ( ) ) {
qtGuiTranslationPath = UBPlatformUtils : : translationPath ( " qt_ " , language . left ( 2 ) ) ;
// checked because this translation could be not available
if ( ! QFile ( qtGuiTranslationPath ) . exists ( ) )
installTranslator ( mQtGuiTranslator ) ;
qtGuiTranslationPath = " " ;
}
}
else
qDebug ( ) < < " Qt gui translation in " < < language < < " are not available " ;
}
if ( ! qtGuiTranslationPath . isEmpty ( ) ) {
qDebug ( ) < < " qtGuiTranslationPath " < < qtGuiTranslationPath ;
mQtGuiTranslator - > load ( qtGuiTranslationPath ) ;
installTranslator ( mQtGuiTranslator ) ;
}
else
qDebug ( ) < < " Qt gui translation in " < < language < < " is not available " ;
}
QLocale : : setDefault ( QLocale ( language ) ) ;
QLocale : : setDefault ( QLocale ( language ) ) ;
qDebug ( ) < < " Running application in: " < < language ;
qDebug ( ) < < " Running application in: " < < language ;