import Vue from 'vue'
import VueI18n from 'vue-i18n'

// Import translations
import en from './en'

Vue.use(VueI18n)

export function getBrowserLocales () {
    let langs = []

    if (navigator.languages) {
        // Chrome does not currently set navigator.language correctly
        // https://code.google.com/p/chromium/issues/detail?id=101138
        // but it does set the first element of navigator.languages correctly
        langs = navigator.languages
    } else if (navigator.userLanguage) {
        // IE only
        langs = [navigator.userLanguage]
    } else {
        // as of this writing the latest version of firefox + safari set this correctly
        langs = [navigator.language]
    }

    // Some browsers does not return uppercase for second part
    const locales = langs.map(function (lang) {
        const locale = lang.split('-')
        return locale[1] ? `${locale[0]}-${locale[1].toUpperCase()}` : lang
    })

    return locales
}

const messages = {
    'en': en
}

const locales = getBrowserLocales()

var locale = 'en'  // Safe default
// Get best matching locale
for (var i = 0; i < locales.length; ++i) {
    if (messages[locales[i]]) {
        locale = locales[i]
        break  // Break at first matching locale
    }
}

export default new VueI18n({
    locale: locale,
    messages
})

import Vue from 'vue'
import VueI18n from 'vue-i18n'

// Import translations
import en from './en'
import fr from './fr'

Vue.use(VueI18n)

export function getBrowserLocales () {
    let langs = []

    if (navigator.languages) {
        // Chrome does not currently set navigator.language correctly
        // https://code.google.com/p/chromium/issues/detail?id=101138
        // but it does set the first element of navigator.languages correctly
        langs = navigator.languages
    } else if (navigator.userLanguage) {
        // IE only
        langs = [navigator.userLanguage]
    } else {
        // as of this writing the latest version of firefox + safari set this correctly
        langs = [navigator.language]
    }

    // Some browsers does not return uppercase for second part
    const locales = langs.map(function (lang) {
        const locale = lang.split('-')
        return locale[1] ? `${locale[0]}-${locale[1].toUpperCase()}` : lang
    })

    return locales
}

const messages = {
    'en': en,
    'fr': fr
}

const locales = getBrowserLocales()

var locale = 'en'  // Safe default
// Get best matching locale
for (var i = 0; i < locales.length; ++i) {
    if (messages[locales[i]]) {
        locale = locales[i]
        break  // Break at first matching locale
    }
}

export default new VueI18n({
    locale: locale,
    messages
})

Add French support