🎨 Internationalization supports Japanese https://github.com/siyuan-note/siyuan/pull/11212

This commit is contained in:
Daniel 2024-05-01 16:10:07 +08:00
parent 71d00fc8f8
commit 6e0da992af
No known key found for this signature in database
GPG key ID: 86211BA83DF03017
7 changed files with 18 additions and 6 deletions

View file

@ -210,6 +210,7 @@
<option value="fr_FR">Français</option> <option value="fr_FR">Français</option>
<option value="zh_CN">简体中文</option> <option value="zh_CN">简体中文</option>
<option value="zh_CHT">繁體中文</option> <option value="zh_CHT">繁體中文</option>
<option value="jp_JP">日本語</option>
</select> </select>
</label> </label>
<label class="b3-label"> <label class="b3-label">
@ -253,6 +254,7 @@
<option value="fr_FR">Français</option> <option value="fr_FR">Français</option>
<option value="zh_CN">简体中文</option> <option value="zh_CN">简体中文</option>
<option value="zh_CHT">繁體中文</option> <option value="zh_CHT">繁體中文</option>
<option value="jp_JP">日本語</option>
</select> </select>
</label> </label>
<label class="b3-label"> <label class="b3-label">

View file

@ -6,7 +6,7 @@ import {Constants} from "../constants";
import {exportLayout, resetLayout} from "../layout/util"; import {exportLayout, resetLayout} from "../layout/util";
import {isBrowser} from "../util/functions"; import {isBrowser} from "../util/functions";
import {fetchPost} from "../util/fetch"; import {fetchPost} from "../util/fetch";
import {genOptions} from "../util/genOptions"; import {genLangOptions, genOptions} from "../util/genOptions";
import {openSnippets} from "./util/snippets"; import {openSnippets} from "./util/snippets";
import {loadAssets} from "../util/assets"; import {loadAssets} from "../util/assets";
import {resetFloatDockSize} from "../layout/dock/util"; import {resetFloatDockSize} from "../layout/dock/util";
@ -94,7 +94,7 @@ export const appearance = {
<div class="b3-label__text">${window.siyuan.languages.language1}</div> <div class="b3-label__text">${window.siyuan.languages.language1}</div>
</div> </div>
<span class="fn__space"></span> <span class="fn__space"></span>
<select id="lang" class="b3-select fn__flex-center fn__size200">${genOptions(window.siyuan.config.langs, window.siyuan.config.appearance.lang)}</select> <select id="lang" class="b3-select fn__flex-center fn__size200">${genLangOptions(window.siyuan.config.langs, window.siyuan.config.appearance.lang)}</select>
</div> </div>
<div class="b3-label config__item${isBrowser() ? " fn__none" : " fn__flex"}"> <div class="b3-label config__item${isBrowser() ? " fn__none" : " fn__flex"}">
<div class="fn__flex-1"> <div class="fn__flex-1">

View file

@ -190,6 +190,7 @@ export abstract class Constants {
en_US: "20210808180117-6v0mkxr", en_US: "20210808180117-6v0mkxr",
fr_FR: "20210808180117-6v0mkxr", fr_FR: "20210808180117-6v0mkxr",
es_ES: "20210808180117-6v0mkxr", es_ES: "20210808180117-6v0mkxr",
jp_JP: "20210808180117-6v0mkxr",
}; };
public static readonly QUICK_DECK_ID = "20230218211946-2kw8jgx"; public static readonly QUICK_DECK_ID = "20230218211946-2kw8jgx";

View file

@ -1,5 +1,5 @@
import {fetchPost} from "../../util/fetch"; import {fetchPost} from "../../util/fetch";
import {genOptions} from "../../util/genOptions"; import {genLangOptions, genOptions} from "../../util/genOptions";
import {openModel} from "../menu/model"; import {openModel} from "../menu/model";
export const initAppearance = () => { export const initAppearance = () => {
@ -40,7 +40,7 @@ export const initAppearance = () => {
<div class="b3-label"> <div class="b3-label">
${window.siyuan.languages.language} ${window.siyuan.languages.language}
<div class="fn__hr"></div> <div class="fn__hr"></div>
<select id="lang" class="b3-select fn__block">${genOptions(window.siyuan.config.langs, window.siyuan.config.appearance.lang)}</select> <select id="lang" class="b3-select fn__block">${genLangOptions(window.siyuan.config.langs, window.siyuan.config.appearance.lang)}</select>
<div class="b3-label__text">${window.siyuan.languages.language1}</div> <div class="b3-label__text">${window.siyuan.languages.language1}</div>
</div>`, </div>`,
bindEvent(modelMainElement: HTMLElement) { bindEvent(modelMainElement: HTMLElement) {

View file

@ -263,7 +263,7 @@ declare namespace Config {
* User interface language * User interface language
* Same as {@link IAppearance.lang} * Same as {@link IAppearance.lang}
*/ */
export type TLang = "en_US" | "es_ES" | "fr_FR" | "zh_CHT" | "zh_CN"; export type TLang = "en_US" | "es_ES" | "fr_FR" | "zh_CHT" | "zh_CN" | "jp_JP";
/** /**
* SiYuan bazaar related configuration * SiYuan bazaar related configuration

View file

@ -9,3 +9,12 @@ export const genOptions = (data: string[] | { label: string, name: string }[], k
}); });
return html; return html;
}; };
export const genLangOptions = (data: { label: string, name: string }[], key: string) => {
let html = "";
data.forEach((item: { label: string, name: string }) => {
html += `<option value="${item.name}" ${key === item.name ? "selected" : ""}>${item.label} (${item.name})</option>`;
});
return html;
};

View file

@ -79,7 +79,7 @@ func Boot() {
readOnly := flag.String("readonly", "false", "read-only mode") readOnly := flag.String("readonly", "false", "read-only mode")
accessAuthCode := flag.String("accessAuthCode", "", "access auth code") accessAuthCode := flag.String("accessAuthCode", "", "access auth code")
ssl := flag.Bool("ssl", false, "for https and wss") ssl := flag.Bool("ssl", false, "for https and wss")
lang := flag.String("lang", "", "zh_CN/zh_CHT/en_US/fr_FR/es_ES") lang := flag.String("lang", "", "zh_CN/zh_CHT/en_US/fr_FR/es_ES/jp_JP")
mode := flag.String("mode", "prod", "dev/prod") mode := flag.String("mode", "prod", "dev/prod")
flag.Parse() flag.Parse()