Sha256: 539a9af1c98ab2ac0a77d08859265653f9e4c39e365862f31fc7053dfc8ca26c

Contents?: true

Size: 1.12 KB

Versions: 36

Compression:

Stored size: 1.12 KB

Contents

import { en } from "alchemy_admin/locales/en"

Alchemy.translations = Object.assign(Alchemy.translations || {}, { en })

const KEY_SEPARATOR = /\./

function getTranslations() {
  const locale = currentLocale()
  const translations = Alchemy.translations && Alchemy.translations[locale]

  if (translations) {
    return translations
  }
  console.warn(`Translations for locale ${locale} not found!`)
  return {}
}

function nestedTranslation(translations, key) {
  const keys = key.split(KEY_SEPARATOR)
  const group = translations[keys[0]]
  if (group) {
    return group[keys[1]] || key
  }
  return key
}

function getTranslation(key) {
  const translations = getTranslations()

  if (KEY_SEPARATOR.test(key)) {
    return nestedTranslation(translations, key)
  }
  return translations[key] || key
}

export function currentLocale() {
  if (document.documentElement.lang) {
    return document.documentElement.lang
  }
  return "en"
}

export function translate(key, replacement = undefined) {
  let translation = getTranslation(key)

  if (replacement) {
    return translation.replace(/%\{.+\}/, replacement)
  }
  return translation
}

Version data entries

36 entries across 36 versions & 1 rubygems

Version Path
alchemy_cms-7.4.2 app/javascript/alchemy_admin/i18n.js
alchemy_cms-7.3.6 app/javascript/alchemy_admin/i18n.js
alchemy_cms-7.2.9 app/javascript/alchemy_admin/i18n.js
alchemy_cms-7.4.1 app/javascript/alchemy_admin/i18n.js
alchemy_cms-7.4.0 app/javascript/alchemy_admin/i18n.js
alchemy_cms-7.3.5 app/javascript/alchemy_admin/i18n.js
alchemy_cms-7.2.8 app/javascript/alchemy_admin/i18n.js
alchemy_cms-7.1.13 app/javascript/alchemy_admin/i18n.js
alchemy_cms-7.3.4 app/javascript/alchemy_admin/i18n.js
alchemy_cms-7.3.3 app/javascript/alchemy_admin/i18n.js
alchemy_cms-7.3.2 app/javascript/alchemy_admin/i18n.js
alchemy_cms-7.2.7 app/javascript/alchemy_admin/i18n.js
alchemy_cms-7.3.1 app/javascript/alchemy_admin/i18n.js
alchemy_cms-7.3.0 app/javascript/alchemy_admin/i18n.js
alchemy_cms-7.2.6 app/javascript/alchemy_admin/i18n.js
alchemy_cms-7.2.5 app/javascript/alchemy_admin/i18n.js
alchemy_cms-7.1.12 app/javascript/alchemy_admin/i18n.js
alchemy_cms-7.2.4 app/javascript/alchemy_admin/i18n.js
alchemy_cms-7.1.11 app/javascript/alchemy_admin/i18n.js
alchemy_cms-7.2.3 app/javascript/alchemy_admin/i18n.js