Skip to content

Latest commit

History

23 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Firebase RealTime Database Translation

props:

  • children,
  • defaultApp
  • defaultLanguage = 'en'
  • onWrite
  • onRead
  • storage = window?.localStorage
  • languages = [{ name: 'English', shortCode: 'en' }]
  • initialState = {}
  • useHashes = false
  • saveNewAutomatically = false
  • isLive = false

Example:

constTranslationProvider=(props)=>{const{ children, currentApp =DEFAULT_APP}=props// [HELPER_FUNCTIONS]constonWrite=useCallback(({ ref, value })=>database().ref(ref).update(value),[])constonRead=useCallback(async({ref: path, setTranslations, options })=>{constwrite=(snapshot)=>setTranslations(snapshot?.val()||{})constref=database().ref(path)if(options?.onlyOnce){returnref.once('value',write)}else{returnref.on('value',write)}},[])return(<Providerstorage={AsyncStorage}db={database()}onWrite={onWrite}useHashesonRead={onRead}saveNewAutomaticallylanguages={LANGUAGES}defaultLanguage={DEFAULT_LANGUAGE}currentApp={currentApp}><TranslationContext.Consumer>{({ loaded })=>loaded ? children : <ScreenLoadingtext="Translation is loading"/>}</TranslationContext.Consumer></Provider>)}

Context value:

  • setCurrentLanguage = (string) => void
  • setCurrentApp = ({ appName, withLoading }) => void
  • currentApp
  • language
  • translations
  • saveTranslationForLanguage = ({ textLabel, shortCode, refEnding, appName }) => Promise
  • loading
  • loaded
  • languages
  • translationsRDBRef: translations/${currentApp}/${language}
  • t = (string) => string

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages