add hint to translation tool for users with unsupported language

This commit is contained in:
Georg Fischer
2016-01-06 22:00:54 +01:00
parent fe4e5aa639
commit aeeaf34c49
8 changed files with 85 additions and 26 deletions
+25 -1
View File
@@ -9,7 +9,7 @@ define(
var self = this;
var publishers = addPublishers( self, 'update', 'error' );
var publishers = addPublishers( self, 'update', 'newlanguage', 'error' );
var textElData = [ ];
var texts = '';
@@ -20,6 +20,30 @@ define(
var linkOptions = { links: { newTab: true } };
var userLanguage = ( navigator.language || navigator.userLanguage || '' ).toLowerCase();
// detect user language
if ( userLanguage !== '' ) {
var matchingLanguageWasFound = false;
if ( config.settings.language.options.indexOf( userLanguage ) > -1 ) {
config.settings.language.value = userLanguage;
matchingLanguageWasFound = true;
} else {
// en-au -> en-us
config.settings.language.options.forEach( function ( languageOption ) {
if ( userLanguage.substr( 0, 2 ) === languageOption.substr( 0, 2 ) ) {
config.settings.language.value = languageOption;
matchingLanguageWasFound = true;
}
} );
}
if ( ! matchingLanguageWasFound ) {
setTimeout( publishers.newlanguage.dispatch, 100, userLanguage );
}
}
loadLanguageFromStorage();
// receive message from the translation tool and
+1 -15
View File
@@ -14,21 +14,7 @@ define(
var worker;
var defaultSettings = config.settings;
var userLanguage = ( navigator.language || navigator.userLanguage || '' ).toLowerCase();
// set initial user language
if ( userLanguage !== '' ) {
if ( defaultSettings.language.options.indexOf( userLanguage ) > -1 ) {
defaultSettings.language.value = userLanguage;
} else {
// en-au -> en-us
defaultSettings.language.options.forEach( function ( languageOption ) {
if ( userLanguage.substr( 0, 2 ) === languageOption.substr( 0, 2 ) ) {
defaultSettings.language.value = languageOption;
}
} );
}
}
var settings = { };
if ( useLocalForage && browser.test( 'webworker' ) && browser.test( 'browserdb' ) && ! browser.test( 'safari' ) ) {
+10 -3
View File
@@ -16,6 +16,7 @@ define(
var self = this;
var isFirstVisit = false;
var visitCount = 0;
var entries = { };
var useLocalForage = browser.test( 'localforage' ) && localforage;
var worker;
@@ -23,7 +24,7 @@ define(
var publisherNames = [
'update', 'save', 'loaditem',
'removeall', 'removelocaldata', 'removeimgurdata',
'firstvisit', 'error', 'statusmessage'
'visits', 'firstvisit', 'error', 'statusmessage'
];
var publishers = addPublishers( self, publisherNames );
@@ -164,11 +165,17 @@ define(
entries = loadedData && loadedData.entries ? loadedData.entries : { };
publishers.update.dispatch( entries );
visitCount = ( loadedData && loadedData.visitCount ) ? loadedData.visitCount : 1;
isFirstVisit = ( loadedData && loadedData.lastVisit ) ? false : true;
if ( isFirstVisit ) {
publishers.firstvisit.dispatch();
save();
}
save();
if ( visitCount ) {
publishers.visitCount.dispatch( visitCount );
}
if ( typeof callback === 'function' ) {
@@ -187,7 +194,7 @@ define(
if ( worker ) {
sendMessageToWorker( 'save' );
} else {
localforage.setItem( storageKey, { entries: entries, lastVisit: Date.now() }, function ( err, savedData ) {
localforage.setItem( storageKey, { entries: entries, lastVisit: Date.now(), visitCount: visitCount + 1 }, function ( err, savedData ) {
if ( err ) {
publishers.error.dispatch( 'file.error.save' );
console && console.log( 'localforage error', err );