html - 动态更改翻译后的页面标题 - Svelte

标签 html svelte

我在 Svelte 中创建了一个页面。我提供了两种语言的翻译,效果很好。现在,我希望更改每个页面上的标题,而且我希望将其翻译成页面的当前语言。我尝试过双向绑定(bind),但我认为我做错了。最小示例:

//../components/meta-title.svelte

<svelte:head>
<title>{title}</title>
</svelte:head>

<script>
export let title = "default title for page"
</script>


//../pages/_layout.svelte

<Meta bind:title={$_('title.companyTitle')} />  //doesn't work

<Navigation items={items}/>

<div>
    <slot/>
</div>

<Footer contact={contact}/>

//../pages/company.svelte
<LeadSection classes="lg:flex-row-reverse -mt-24">
    <div slot="header">
        { $_('pages.company.header') }
    </div>
...
</LeadSection>

有什么想法可以做到这一点吗?

最佳答案

我的理解是:你想要动态设置标题。要实现此目的,您不必使用双向绑定(bind)。双向绑定(bind)意味着写回到父组件中的变量。您尝试绑定(bind)的“变量”不是变量,而是不能用于绑定(bind)的存储。只需将标题作为普 channel 具传递即可,它应该可以工作:

//../components/meta-title.svelte

<svelte:head>
   <title>{title}</title>
</svelte:head>

<script>
   export let title = "default title for page"
</script>


//../pages/_layout.svelte

<Meta title="This is a dynamic title" />

...

关于html - 动态更改翻译后的页面标题 - Svelte,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66549276/

相关文章:

php - 是否可以在表单提交时不跳转到页面顶部?

java - 如何制作具有 x、y 和 z 旋转速度的 3 个字段的旋转立方体?

Svelte/Sapper 如何在不提供绝对 URL 的情况下从内部 api 获取数据

svelte - 创建带参数的派生函数

javascript - 获取父 ID 到变量中

javascript - 可以停止复制+粘贴到 html 文本框中吗?

Chrome Web 控制台中的 Javascript "Unexpected identifier"

javascript - 为什么可写数组不能正确更新 Svelte 组件内的值?

javascript - 使用 mdsvex 在 Svelte 组件中运行时编译 markdown

javascript - 评估 SSR module/src/stores.js 时出错 : ReferenceError: localStorage is not defined