Artalk icon indicating copy to clipboard operation
Artalk copied to clipboard

i18n: locale override

Open Elypha opened this issue 2 years ago • 2 comments

Hello

  1. 我尝试按照docs中的示例修改i18n文本,例如
Artalk.init({
    // override i18n
    locale: {
        voteUp: "Like",
        voteDown: "Dislike",
    }
})

但似乎没有生效。

docs下面的评论里提到了placeholder的例子。docs中的示例是

Artalk.init({
  locale: {
    placeholder: 'こんにちは',
  }
})

而在我这边似乎需要修改为下面这样才生效(即成为conf的子元素 src

Artalk.init({
  placeholder: 'こんにちは',
})

而这个结构对于 voteUp 等来说又是无效的(简单看了一下似乎代码的实现方式不同? src

不清楚文档是否相对当前代码有过时信息,如果有的话希望可以更新一下!

  1. 另外,上面所述的覆盖文本的方法似乎是对所有语言生效的……?我在想是否可以实现更精细的文本管理

例如,在后端载入i18n文件

artalk-app/
| artalk
| artalk.yml
| i18n/
|- en-US.yml
|- ja-JP.yml

或者前端传入i18n object

Artalk.init({
    locale: "auto",
    i18n: {
        "en-US": {
            voteUp: "Like",
            // ...
        },
        "ja-JP": {
            voteUp: "いいね",
            // ...
        },
    },
});

毕竟是直接展示在用户端的文本,希望它能通过细粒度的调整支持更多类型/风格的服务

Elypha avatar Feb 16 '24 13:02 Elypha

同样需要

myg321 avatar Oct 13 '25 10:10 myg321

目前解决办法:自行前端定义updateFormFields()函数,放到与artalk init在一起的初始化函数中。

  function updateFormFields() {
    // 等待DOM更新
    setTimeout(() => {
      // 修改昵称字段
      const nameInput = document.querySelector('#Comments .atk-main-editor .atk-header .atk-name');
      if (nameInput) {
        nameInput.placeholder = 'Nickname *';
        nameInput.required = true;
        nameInput.title = 'Required, used to identify your comments.';
      }

      // 修改邮箱字段
      const emailInput = document.querySelector('#Comments .atk-main-editor .atk-header .atk-email');
      if (emailInput) {
        emailInput.placeholder = 'Email *';
        emailInput.required = true;
        emailInput.title = 'Required, used to receive reply notifications.';
      }

      // 修改网站字段
      const linkInput = document.querySelector('#Comments .atk-main-editor .atk-header .atk-link');
      if (linkInput) {
        linkInput.placeholder = 'Website';
        linkInput.title = 'Optional, used to easily jump to your personal website.';
      }
    }, 100)
  }

myg321 avatar Oct 14 '25 13:10 myg321