// (C) Copyright 2014-2015 Hewlett Packard Enterprise Development LP

import Cookies from './Cookies';

let currentLocale = 'en-US';

function normalizeLocale(locale) {
  let locales = locale.replace(/_/g, '-').split('-');
  let normalizedLocale = locales[0];
  if (locales.length > 1) {
    normalizedLocale += '-' + locales[1].toUpperCase();
  }

  return normalizedLocale;
}

module.exports = {
  setLocale(locale) {
    currentLocale = normalizeLocale(locale);
  },

  getCurrentLocale() {
    try {
      let cookieLanguages = Cookies.get('languages');
      let locale = cookieLanguages ? JSON.parse(cookieLanguages)[0] : undefined;
      if (!locale) {
        locale = window.navigator.languages ? window.navigator.languages[0] : (window.navigator.language || window.navigator.userLanguage);
      }

      return normalizeLocale(locale);
    } catch (e) {
      return currentLocale;
    }
  },

  getLocaleData(appMessages = {}, locale = this.getCurrentLocale()) {
    let grommetMessages;
    try {
      grommetMessages = require('../messages/' + locale);
    } catch (e) {
      grommetMessages = {};
    }

    let messages = Object.assign(grommetMessages, appMessages);

    return {locale, messages};
  }
};

@@ -376,28 +376,23 @@
 %0A%7D%0A%0A
-module.exports = %7B%0A 
+export function
  set
@@ -408,18 +408,16 @@
 cale) %7B%0A
-  
   curren
@@ -451,23 +451,34 @@
 ocale);%0A
-  %7D,%0A%0A 
+%7D%0A%0Aexport function
  getCurr
@@ -491,26 +491,24 @@
 ale() %7B%0A
-  
   try %7B%0A
       le
@@ -495,26 +495,24 @@
 ) %7B%0A  try %7B%0A
-  
     let cook
@@ -551,18 +551,16 @@
 ages');%0A
-  
     let 
@@ -634,18 +634,16 @@
 ed;%0A    
-  
 if (!loc
@@ -645,26 +645,24 @@
 (!locale) %7B%0A
-  
       locale
@@ -787,18 +787,16 @@
 guage);%0A
-  
     %7D%0A%0A 
@@ -794,26 +794,24 @@
 %0A    %7D%0A%0A    
-  
 return norma
@@ -822,34 +822,32 @@
 Locale(locale);%0A
-  
   %7D catch (e) %7B%0A
@@ -850,18 +850,16 @@
 ) %7B%0A    
-  
 return c
@@ -878,19 +878,28 @@
 ;%0A  
- 
- 
 %7D%0A
-  %7D,%0A%0A 
+%7D%0A%0Aexport function
  get
@@ -940,13 +940,8 @@
 e = 
-this.
 getC
@@ -958,18 +958,16 @@
 le()) %7B%0A
-  
   let gr
@@ -983,26 +983,22 @@
 ages;%0A  
- 
- 
 try %7B%0A
-  
     grom
@@ -1045,18 +1045,16 @@
 ocale);%0A
-  
   %7D catc
@@ -1065,18 +1065,16 @@
 ) %7B%0A    
- 
- 
 grommetM
@@ -1087,25 +1087,21 @@
 s = %7B%7D;%0A
-  
   %7D%0A%0A
-  
   let me
@@ -1153,26 +1153,24 @@
 ssages);%0A%0A  
- 
- 
 return %7Bloca
@@ -1188,11 +1188,6 @@
 s%7D;%0A
-  %7D%0A%7D;
+%7D
 %0A

Use ES6 syntax to export Locale methods