add hint to translation tool for users with unsupported language
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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' ) ) {
|
||||
|
||||
@@ -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 );
|
||||
|
||||
Reference in New Issue
Block a user