Skip to content

⬅️ Back to Table of Contents

📄 index.ts

📊 Analysis Summary

Metric Count
🔧 Functions 1
📦 Imports 7
📊 Variables & Constants 1
📐 Interfaces 1
📑 Type Aliases 1

📚 Table of Contents

🛠️ File Location:

📂 packages/core/useNavigatorLanguage/index.ts

📦 Imports

Name Source
ComputedRef vue
ShallowRef vue
ConfigurableWindow ../_configurable
shallowRef vue
defaultWindow ../_configurable
useEventListener ../useEventListener
useSupported ../useSupported

Variables & Constants

Name Type Kind Value Exported
navigator Navigator const window?.navigator

Functions

useNavigatorLanguage(options: ConfigurableWindow): Readonly<NavigatorLanguageState>

Code
export function useNavigatorLanguage(options: ConfigurableWindow = {}): Readonly<NavigatorLanguageState> {
  const { window = defaultWindow } = options

  const navigator = window?.navigator

  const isSupported = useSupported(() => navigator && 'language' in navigator)

  const language = shallowRef<string | undefined>(navigator?.language)

  // Listen to when to user changes language:
  useEventListener(window, 'languagechange', () => {
    if (navigator)
      language.value = navigator.language
  }, { passive: true })

  return {
    isSupported,
    language,
  }
}
  • JSDoc:

    /**
     *
     * Reactive useNavigatorLanguage
     *
     * Detects the currently selected user language and returns a reactive language
     * @see https://vueuse.org/useNavigatorLanguage
     *
     */
    

  • Parameters:

  • options: ConfigurableWindow
  • Return Type: Readonly<NavigatorLanguageState>
  • Calls:
  • useSupported (from ../useSupported)
  • shallowRef (from vue)
  • useEventListener (from ../useEventListener)
  • Internal Comments:
    // Listen to when to user changes language: (x3)
    

Interfaces

Interface Code
export interface NavigatorLanguageState {
  isSupported: ComputedRef<boolean>
  /**
   *
   * ISO 639-1 standard Language Code
   *
   * @info The detected user agent language preference as a language tag
   * (which is sometimes referred to as a "locale identifier").
   * This consists of a 2-3 letter base language tag that indicates a
   * language, optionally followed by additional subtags separated by
   * '-'. The most common extra information is the country or region
   * variant (like 'en-US' or 'fr-CA').
   *
   *
   * @see https://www.iso.org/iso-639-language-codes.html
   * @see https://www.loc.gov/standards/iso639-2/php/code_list.php
   *
   */
  language: ShallowRef<string | undefined>
}

Properties

Name Type Optional Description
isSupported ComputedRef<boolean>
language ShallowRef<string | undefined>

Type Aliases

UseNavigatorLanguageReturn

type UseNavigatorLanguageReturn = ReturnType<typeof useNavigatorLanguage>;