Sha256: 0965a5e6f6651032b2a0c952c5df60027663a197932c8f0e780b16a061c6f5c4

Contents?: true

Size: 1.08 KB

Versions: 21

Compression:

Stored size: 1.08 KB

Contents

import translationData from "./translations"

const KEY_SEPARATOR = /\./

function currentLocale() {
  if (Alchemy.locale == null) {
    throw "Alchemy.locale is not set! Please set Alchemy.locale to a locale string in order to translate something."
  }
  return Alchemy.locale
}

function getTranslations() {
  const locale = currentLocale()
  const translations = translationData[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 default function translate(key, replacement) {
  let translation = getTranslation(key)

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

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
alchemy_cms-5.2.1 package/src/i18n.js
alchemy_cms-5.1.4 package/src/i18n.js
alchemy_cms-5.0.4 package/src/i18n.js
alchemy_cms-5.1.3 package/src/i18n.js
alchemy_cms-5.2.0 package/src/i18n.js
alchemy_cms-5.2.0.rc1 package/src/i18n.js
alchemy_cms-5.2.0.b1 package/src/i18n.js
alchemy_cms-5.1.2 package/src/i18n.js
alchemy_cms-5.1.1 package/src/i18n.js
alchemy_cms-5.0.3 package/src/i18n.js
alchemy_cms-5.1.0 package/src/i18n.js
alchemy_cms-5.0.2 package/src/i18n.js
alchemy_cms-5.1.0.rc1 package/src/i18n.js
alchemy_cms-5.1.0.beta2 package/src/i18n.js
alchemy_cms-5.1.0.beta1 package/src/i18n.js
alchemy_cms-5.0.1 package/src/i18n.js
alchemy_cms-5.0.0 package/src/i18n.js
alchemy_cms-5.0.0.rc2 package/src/i18n.js
alchemy_cms-5.0.0.rc1 package/src/i18n.js
alchemy_cms-5.0.0.beta2 package/src/i18n.js