diff --git a/README.md b/README.md index eeafb5e..ecc6520 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ A word count Obsidian plugin that only counts Chinese, Japanese and Korean (CJK) ## Limitation -No translation currently. It only displays Chinese. +We only have English and Chinese UI now in `src/i18n.js` with a very simple localization framework(?). ## Acknowledgments diff --git a/src/i18n.js b/src/i18n.js new file mode 100644 index 0000000..0b05577 --- /dev/null +++ b/src/i18n.js @@ -0,0 +1,13 @@ +const translation = { + en: { + characters: "characters", + }, + zh: { + characters: "字", + }, + "zh-TW": { + characters: "字", + }, +}; + +export default translation; diff --git a/src/index.js b/src/index.js index 1f219fb..ec04bca 100644 --- a/src/index.js +++ b/src/index.js @@ -1,12 +1,15 @@ -import { MarkdownView, Plugin } from "obsidian"; +import { MarkdownView, Plugin, getLanguage } from "obsidian"; import { lettersRegExp } from "cjk-regex-compact"; +import translation from "./i18n"; + +const translatedText = translation[getLanguage()] ?? translation["en"]; export default class CJKCountPlugin extends Plugin { #statusBarItemEl; async onload() { this.#statusBarItemEl = this.addStatusBarItem(); - this.#statusBarItemEl.setText("0 字"); + this.#statusBarItemEl.setText(`0 ${translatedText.characters}`); this.registerEvent( this.app.workspace.on("file-open", () => { @@ -29,6 +32,6 @@ export default class CJKCountPlugin extends Plugin { characterCount = characters ? characters.length : 0; } - this.#statusBarItemEl.setText(`${characterCount} 字`); + this.#statusBarItemEl.setText(`${characterCount} ${translatedText.characters}`); } }