# 可以通过主题文件覆盖区域设置吗？

**URL:** <https://meta.discourse.org/t/can-you-override-the-locale-via-theme-files/263355>\
**Category:** Development\
**Created:** [2023年五月1日 05:50 UTC](https://meta.discourse.org/t/can-you-override-the-locale-via-theme-files/263355 "2023-05-01T05:50:30Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![sevadev-ramchandra](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sevadev-ramchandra/32/301936_2.png) [@sevadev-ramchandra](https://meta.discourse.org/u/sevadev-ramchandra)\
**Post date:** [2023年五月1日 05:50 UTC](https://meta.discourse.org/t/can-you-override-the-locale-via-theme-files/263355/1 "2023-05-01T05:50:30Z")

</div>

我想通过 locale 文件更改一些占位符文本，有什么办法可以做到吗？

我尝试创建 `config/locales/client.en.yml`，之前主题中没有这些文件，我也尝试使用 `locales/en.yml`，但这些都不起作用。

我认为可以通过管理设置 → 文本在那里更改值，但我希望通过 discourse 主题文件来实现。

所以，有什么可行的方法可以实现吗？

---

<div class="post-metadata">

**Author:** ![Lhc\_fl](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lhc_fl/32/268115_2.png) [@Lhc\_fl](https://meta.discourse.org/u/Lhc_fl)\
**Post date:** [2023年五月1日 05:54 UTC](https://meta.discourse.org/t/can-you-override-the-locale-via-theme-files/263355/2 "2023-05-01T05:54:42Z")

</div>

是的，你可以。\n\n一个例子：\n\n`javascript\nI18n.translations[I18n.currentLocale()].js.composer.reply = \"ylper\";\n`\n\n

 ![image](https://global.discourse-cdn.com/meta/original/4X/d/1/4/d1420b7098527d86d7b66cce52d99d168c2a0ace.png)

---

<div class="post-metadata">

**Author:** ![sevadev-ramchandra](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sevadev-ramchandra/32/301936_2.png) [@sevadev-ramchandra](https://meta.discourse.org/u/sevadev-ramchandra)\
**Post date:** [2023年五月1日 05:56 UTC](https://meta.discourse.org/t/can-you-override-the-locale-via-theme-files/263355/3 "2023-05-01T05:56:04Z")

</div>

我们可以从 locale yml 文件中实现这一点吗？

---

<div class="post-metadata">

**Author:** ![Lhc\_fl](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lhc_fl/32/268115_2.png) [@Lhc\_fl](https://meta.discourse.org/u/Lhc_fl)\
**Post date:** [2023年五月1日 05:57 UTC](https://meta.discourse.org/t/can-you-override-the-locale-via-theme-files/263355/4 "2023-05-01T05:57:06Z")

</div>

我不知道，我还没有找到任何这方面的例子。（也许我只看了太少的主题组件）

---

<div class="post-metadata">

**Author:** ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)\
**Post date:** [2023年五月2日 14:17 UTC](https://meta.discourse.org/t/can-you-override-the-locale-via-theme-files/263355/5 "2023-05-02T14:17:55Z")

</div>

你好 🙂

> [@sevadev-ramchandra](#):
>
> 但我希望通过 Discourse 主题文件来实现。

为什么？

如果你修改 Discourse 的文件，每次更新时它们都会被覆盖。

---

<div class="post-metadata">

**Author:** ![awesomerobot](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/awesomerobot/32/142900_2.png) [@awesomerobot](https://meta.discourse.org/u/awesomerobot)\
**Post date:** [2023年五月2日 14:58 UTC](https://meta.discourse.org/t/can-you-override-the-locale-via-theme-files/263355/6 "2023-05-02T14:58:47Z")

</div>

> [@Lhc\_fl](#):
>
> `I18n.translations[I18n.currentLocale()].js.composer.reply = "ylper";`

> [@sevadev-ramchandra](#):
>
> Can we achieve that from locale yml files ?

您可以结合这两种方法，例如：

```js
I18n.translations[I18n.currentLocale()].js.composer.reply = I18n.t(themePrefix("my_translation_key"));

```

---

<div class="post-metadata">

**Author:** ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)\
**Post date:** [2023年六月8日 05:50 UTC](https://meta.discourse.org/t/can-you-override-the-locale-via-theme-files/263355/7 "2023-06-08T05:50:01Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
