Skip to content
This repository has been archived by the owner on Jan 29, 2024. It is now read-only.

Commit

Permalink
feat(translateService): add storage() method
Browse files Browse the repository at this point in the history
- returns a registered storage
  • Loading branch information
0x-r4bbit committed May 10, 2013
1 parent 02c4bdb commit 98c2b12
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 10 deletions.
14 changes: 8 additions & 6 deletions ngTranslate/translate.js
Original file line number Diff line number Diff line change
@@ -1,20 +1,22 @@
angular.module('ngTranslate', ['ng', 'ngCookies'])

.run(['$translate', '$cookieStore', function ($translate, $cookieStore) {
.run(['$translate', function ($translate) {

var key = $translate.storageKey();
if ($translate.rememberLanguage()) {
if (!$cookieStore.get(key)) {
var key = $translate.storageKey(),
storage = $translate.storage();

if (storage) {
if (!storage.get(key)) {

if (angular.isString($translate.preferredLanguage())) {
// $translate.uses method will both set up and remember the language in case it's loaded successfully
$translate.uses($translate.preferredLanguage());
} else {
$cookieStore.put(key, $translate.uses());
storage.set(key, $translate.uses());
}

} else {
$translate.uses($cookieStore.get(key));
$translate.uses(storage.get(key));
}
} else if (angular.isString($translate.preferredLanguage())) {
$translate.uses($translate.preferredLanguage());
Expand Down
15 changes: 12 additions & 3 deletions ngTranslate/translateLocalStorage.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,16 @@ angular.module('ngTranslate')
* to use localStorage as storage.
*
*/
.factory('$translateLocalStorage', ['$window', function ($window) {
.factory('$translateLocalStorage', ['$window', '$translateCookieStorage', function ($window) {

// Setup adapter
var localStorageAdapter = {
get: function (name) { return $window.localStorage.getItem(name); },
set: function (name, value) { $window.localStorage.setItem(name, value); }
};

var storage = ('localStorage' in $window && $window['localStorage'] !== null) ?
localStorageAdapter : $translateCookieStorage;

var $translateLocalStorage = {

Expand All @@ -26,7 +35,7 @@ angular.module('ngTranslate')
* @return {string} Value of item name
*/
get: function (name) {
return $window.localStorage.getItem(name);
return storage.get(name);
},

/**
Expand All @@ -41,7 +50,7 @@ angular.module('ngTranslate')
* @param {string} value Item value
*/
set: function (name, value) {
$window.localStorage.setItem(name, value);
storage.set(name, value);
}
};

Expand Down
2 changes: 1 addition & 1 deletion test/unit/translateServiceSpec.js
Original file line number Diff line number Diff line change
Expand Up @@ -628,7 +628,7 @@ describe('ngTranslate', function () {
});

describe('useLocalStorage()', function () {

});

describe('useCookieStorage()', function () {
Expand Down

0 comments on commit 98c2b12

Please sign in to comment.