forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			38 lines
		
	
	
	
		
			928 B
		
	
	
	
		
			Svelte
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
	
		
			928 B
		
	
	
	
		
			Svelte
		
	
	
	
	
	
<script lang="ts">
 | 
						|
  /**
 | 
						|
   * Properly renders a translation
 | 
						|
   */
 | 
						|
  import { Translation } from "../i18n/Translation"
 | 
						|
  import { onDestroy } from "svelte"
 | 
						|
  import Locale from "../i18n/Locale"
 | 
						|
  import { Utils } from "../../Utils"
 | 
						|
  import FromHtml from "./FromHtml.svelte"
 | 
						|
  import WeblateLink from "./WeblateLink.svelte"
 | 
						|
 | 
						|
  export let t: Translation
 | 
						|
  export let cls: string = ""
 | 
						|
  export let tags: Record<string, string> | undefined = undefined
 | 
						|
  // Text for the current language
 | 
						|
  let txt: string | undefined
 | 
						|
 | 
						|
  $: onDestroy(
 | 
						|
    Locale.language.addCallbackAndRunD((l) => {
 | 
						|
      const translation = t?.textFor(l)
 | 
						|
      if (translation === undefined) {
 | 
						|
        return
 | 
						|
      }
 | 
						|
      if (tags) {
 | 
						|
        txt = Utils.SubstituteKeys(txt, tags)
 | 
						|
      } else {
 | 
						|
        txt = translation
 | 
						|
      }
 | 
						|
    })
 | 
						|
  )
 | 
						|
</script>
 | 
						|
 | 
						|
{#if t}
 | 
						|
  <span class={cls}>
 | 
						|
    <FromHtml src={txt} />
 | 
						|
    <WeblateLink context={t.context} />
 | 
						|
  </span>
 | 
						|
{/if}
 |