diff --git a/.github/workflows/lighthouse-badger-advanced.yml b/.github/workflows/lighthouse-badger-advanced.yml
index 1bb215855fce..c174e9b19ad0 100644
--- a/.github/workflows/lighthouse-badger-advanced.yml
+++ b/.github/workflows/lighthouse-badger-advanced.yml
@@ -1,38 +1,20 @@
-# Lighthouse-Badger-Advanced | GitHub Action Workflow
-#
-# Description: Generates, adds & updates manually/automatically Lighthouse badges & reports from one/multiple input URL-group(s) to one/multiple target repo(s)/branch(es) in parallel
-# Author: Sitdisch
-# Source: https://github.com/myactionway/lighthouse-badger-workflows
-# License: MIT
-# Copyright (c) 2021 Sitdisch
+name: Lighthouse Badger
-name: 'Lighthouse-Badger-Advanced'
-
-########################################################################
-# DEFINE YOUR DEFAULTS (INPUTS & TRIGGERS) IN THE FOLLOWING
-########################################################################
-
-# INPUTS as environmental variables (env)
env:
- TOKEN_NAME: 'GH_TOKEN' # target token name; insert only the name never the real value e.g. 'LIGHTHOUSE_BADGER_TOKEN'
- # To change predefined values, just override them
- REPO_BRANCH: 'lobehub/lobe-chat lighthouse' # target repository & branch (predefined: repo with this file and master branch)
- USER_NAME: 'lobehubbot' # user who should commit
+ TOKEN_NAME: 'GH_TOKEN'
+ REPO_BRANCH: 'lobehub/lobe-chat lighthouse'
+ USER_NAME: 'lobehubbot'
USER_EMAIL: 'i@lobehub.com'
- AUDIT_TYPE: 'both' # 'mobile', 'desktop', 'both' or 'both_p'
- MOBILE_LIGHTHOUSE_PARAMS: '--throttling.cpuSlowdownMultiplier=2' # Lighthouse parameters mobile audit
- DESKTOP_LIGHTHOUSE_PARAMS: '--preset=desktop --throttling.cpuSlowdownMultiplier=1' # Lighthouse parameters desktop audit
+ AUDIT_TYPE: 'both'
+ MOBILE_LIGHTHOUSE_PARAMS: '--throttling.cpuSlowdownMultiplier=2'
+ DESKTOP_LIGHTHOUSE_PARAMS: '--preset=desktop --throttling.cpuSlowdownMultiplier=1'
COMMIT_MESSAGE: '๐ค chore: Lighthouse Results Refreshed'
-# TRIGGERS
on:
+ schedule:
+ - cron: '0 0 * * *' # every day
workflow_dispatch:
-########################################################################
-# YOU CAN JUMP TO THE FIRST URL-GROUP DEFINITION BELOW
-########################################################################
-
-# Jobs
jobs:
lighthouse-badger-advanced:
name: ${{ matrix.NAME }}
diff --git a/.github/workflows/pre-welcome.yml b/.github/workflows/pre-welcome.yml
new file mode 100644
index 000000000000..dd62826d7dc4
--- /dev/null
+++ b/.github/workflows/pre-welcome.yml
@@ -0,0 +1,22 @@
+name: PR Welcome
+
+on:
+ pull_request:
+ types:
+ - closed
+
+jobs:
+ if_merged:
+ if: github.event.pull_request.merged == true
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions-cool/pr-welcome@main
+ with:
+ token: ${{ secrets.GITHUB_TOKEN }}
+ comment: |
+ Great PR @${{ github.event.pull_request.user.login }}. The growth of project is inseparable from user feedback and contribution, thanks for your contribution โค๏ธ
+
+ ้ๅธธๆฃ็ PR @${{ github.event.pull_request.user.login }}. ้กน็ฎ็ๆ้ฟ็ฆปไธๅผ็จๆทๅ้ฆๅ่ดก็ฎ๏ผๆ่ฐขๆจ็่ดก็ฎ โค๏ธ
+ emoji: 'heart'
+ pr-emoji: '+1, heart'
+ close: true
diff --git a/.github/workflows/sync.yml b/.github/workflows/sync.yml
index 3a20133af2d4..511db165e8a5 100644
--- a/.github/workflows/sync.yml
+++ b/.github/workflows/sync.yml
@@ -2,6 +2,8 @@ name: Upstream Sync
permissions:
contents: write
+ issues: write
+ actions: write
on:
schedule:
@@ -42,9 +44,9 @@ jobs:
labels: '๐จ Sync Fail'
body: |
Due to a change in the workflow file of the [LobeChat][lobechat] upstream repository, GitHub has automatically suspended the scheduled automatic update. You need to manually sync your fork. Please refer to the detailed [Tutorial][tutorial-en-US] for instructions.
-
+
็ฑไบ [LobeChat][lobechat] ไธๆธธไปๅบ็ workflow ๆไปถๅๆด๏ผๅฏผ่ด GitHub ่ชๅจๆๅไบๆฌๆฌก่ชๅจๆดๆฐ๏ผไฝ ้่ฆๆๅจ Sync Fork ไธๆฌก๏ผ่ฏทๆฅ็ [่ฏฆ็ปๆ็จ][tutorial-zh-CN]
-
+
[lobechat]: https://github.com/lobehub/lobe-chat
[tutorial-zh-CN]: https://github.com/lobehub/lobe-chat/wiki/Upstream-Sync.zh-CN
- [tutorial-en-US]: https://github.com/lobehub/lobe-chat/wiki/Upstream-Sync.zh-CN
+ [tutorial-en-US]: https://github.com/lobehub/lobe-chat/wiki/Upstream-Sync
diff --git a/.i18nrc.js b/.i18nrc.js
index 2b18e3106655..76886685dfcc 100644
--- a/.i18nrc.js
+++ b/.i18nrc.js
@@ -6,8 +6,7 @@ module.exports = defineConfig({
entry: 'locales/zh_CN',
entryLocale: 'zh_CN',
output: 'locales',
- outputLocales: ['zh_TW', 'en_US', 'ru_RU'],
- splitToken: 2500,
+ outputLocales: ['zh_TW', 'en_US', 'ru_RU', 'ja_JP', 'ko_KR'],
temperature: 0,
modelName: 'gpt-3.5-turbo',
});
diff --git a/locales/ja_JP/common.json b/locales/ja_JP/common.json
new file mode 100644
index 000000000000..b6598d153acc
--- /dev/null
+++ b/locales/ja_JP/common.json
@@ -0,0 +1,103 @@
+{
+ "about": "ใซใคใใฆ",
+ "advanceSettings": "่ฉณ็ดฐ่จญๅฎ",
+ "agentDefaultMessage": "ใใใซใกใฏใ็งใฏ **{{name}}** ใงใใใใใซใใฃใใใๅงใใใใจใใงใใพใใใ[ใจใผใธใงใณใ่จญๅฎ](/chat/settings#session={{id}}) ใซ็งปๅใใฆ็งใฎๆ
ๅ ฑใๅฎๅ
จใซใใใใจใใงใใพใใ",
+ "agentDefaultMessageWithSystemRole": "ใใใซใกใฏใ็งใฏ **{{name}}** ใงใใ{{systemRole}}ใใใใใใฃใใใๅงใใพใใใ๏ผ",
+ "agentMaxToken": "ใปใใทใงใณใฎๆๅคงใใผใฏใณๆฐ",
+ "agentModel": "ใขใใซ",
+ "agentProfile": "ใจใผใธใงใณใๆ
ๅ ฑ",
+ "appInitializing": "LobeChat ใ่ตทๅใใฆใใพใใใๅพ
ใกใใ ใใ...",
+ "archive": "ใขใผใซใคใ",
+ "autoGenerate": "่ชๅ็ๆ",
+ "autoGenerateTooltip": "ใใณใใฏใผใใซๅบใฅใใฆใจใผใธใงใณใใฎ่ชฌๆใ่ชๅ็ๆใใพใ",
+ "backToBottom": "ๆๆฐใกใใปใผใธใ่กจ็คบ",
+ "cancel": "ใญใฃใณใปใซ",
+ "changelog": "ๆดๆฐๅฑฅๆญด",
+ "clearCurrentMessages": "็พๅจใฎใปใใทใงใณใฎใกใใปใผใธใใฏใชใข",
+ "close": "้ใใ",
+ "confirmClearCurrentMessages": "็พๅจใฎใปใใทใงใณใฎใกใใปใผใธใใฏใชใขใใพใใใฏใชใขๅพใฏๅ
ใซๆปใใใจใฏใงใใพใใใฎใงใๆไฝใ็ขบ่ชใใฆใใ ใใ",
+ "confirmRemoveSessionItemAlert": "ใใฎใจใผใธใงใณใใๅ้คใใพใใๅ้คๅพใฏๅ
ใซๆปใใใจใฏใงใใพใใใฎใงใๆไฝใ็ขบ่ชใใฆใใ ใใ",
+ "copy": "ใณใใผ",
+ "copySuccess": "ใณใใผใๆๅใใพใใ",
+ "defaultAgent": "ใใใฉใซใใจใผใธใงใณใ",
+ "defaultSession": "ใใใฉใซใใปใใทใงใณ",
+ "delete": "ๅ้ค",
+ "edit": "็ทจ้",
+ "export": "่จญๅฎใฎใจใฏในใใผใ",
+ "exportType": {
+ "agent": "ใจใผใธใงใณใ่จญๅฎใฎใจใฏในใใผใ",
+ "agentWithMessage": "ใจใผใธใงใณใใจใกใใปใผใธใฎใจใฏในใใผใ",
+ "all": "ใฐใญใผใใซ่จญๅฎใจใในใฆใฎใจใผใธใงใณใใใผใฟใฎใจใฏในใใผใ",
+ "allAgent": "ใในใฆใฎใจใผใธใงใณใ่จญๅฎใฎใจใฏในใใผใ",
+ "allAgentWithMessage": "ใในใฆใฎใจใผใธใงใณใใจใกใใปใผใธใฎใจใฏในใใผใ",
+ "globalSetting": "ใฐใญใผใใซ่จญๅฎใฎใจใฏในใใผใ"
+ },
+ "feedback": "ใใฃใผใใใใฏ",
+ "historyRange": "ๅฑฅๆญด็ฏๅฒ",
+ "import": "่จญๅฎใฎใคใณใใผใ",
+ "inbox": {
+ "defaultMessage": "ใใใซใกใฏใ็งใฏใใชใใฎใคใณใใชใธใงใณใใจใผใธใงใณใใงใใไฝใงใ่ณชๅใใฆใใ ใใใใงใใ้ใใ็ญใใใพใใใใๅฐ้็ใงใซในใฟใใคใบใใใใจใผใธใงใณใใๅฟ
่ฆใชๅ ดๅใฏใ`+` ใใฏใชใใฏใใฆใซในใฟใ ใจใผใธใงใณใใไฝๆใงใใพใ",
+ "desc": "ใใฌใคใณใฏใฉในใฟใ่ตทๅใใๆ่ใฎ็ซ่ฑใๅผใ่ตทใใใพใใใใชใใฎใคใณใใชใธใงใณใใขใทในใฟใณใใจใฎใในใฆใฎใณใใฅใใฑใผใทใงใณใฏใใใง่กใใใพใ",
+ "title": "ๆฐ่ปฝใซใใฃใใ"
+ },
+ "message": {
+ "function_loading": "ใใฉใฐใคใณใชใฏใจในใไธญ..."
+ },
+ "moreSetting": "ใใฎไปใฎ่จญๅฎ...",
+ "newAgent": "ๆฐใใใจใผใธใงใณใ",
+ "noDescription": "่ชฌๆใฏใใใพใใ",
+ "ok": "OK",
+ "password": "ใในใฏใผใ",
+ "pin": "ใใณ็ใ",
+ "pinOff": "ใใณ็ใ่งฃ้ค",
+ "regenerate": "ๅ็ๆ",
+ "rename": "ๅๅใฎๅคๆด",
+ "reset": "ใชใปใใ",
+ "retry": "ๅ่ฉฆ่ก",
+ "roleAndArchive": "ๅฝนๅฒใจใขใผใซใคใ",
+ "searchAgentPlaceholder": "ใจใผใธใงใณใใจใใฃใใใๆค็ดข...",
+ "send": "้ไฟก",
+ "sendPlaceholder": "ใใฃใใๅ
ๅฎนใๅ
ฅๅ...",
+ "sessionList": "ใจใผใธใงใณใใชในใ",
+ "setting": "่จญๅฎ",
+ "share": "ๅ
ฑๆ",
+ "shareModal": {
+ "download": "ใใฆใณใญใผใ",
+ "imageType": "็ปๅๅฝขๅผ",
+ "screenshot": "ในใฏใชใผใณใทใงใใ",
+ "settings": "่จญๅฎใใจใฏในใใผใ",
+ "shareToShareGPT": "ShareGPTๅ
ฑๆใชใณใฏใ็ๆ",
+ "withBackground": "่ๆฏ็ปๅใๅซใ",
+ "withFooter": "ใใใฟใผใๅซใ",
+ "withPluginInfo": "ใใฉใฐใคใณๆ
ๅ ฑใๅซใ",
+ "withSystemRole": "ใขใทในใฟใณใใฎๅฝนๅฒ่จญๅฎใๅซใ"
+ },
+ "stop": "ๅๆญข",
+ "tab": {
+ "chat": "ใใฃใใ",
+ "market": "็บ่ฆ",
+ "setting": "่จญๅฎ"
+ },
+ "temp": "ไธๆ็ใช",
+ "tokenDetail": "ๅฝนๅฒ่จญๅฎ: {{systemRoleToken}} ยท ใใฃใใๅฑฅๆญด: {{chatsToken}}",
+ "tokenTag": {
+ "overload": "ๅถ้ใ่ถ
ใใ",
+ "remained": "ๆฎใ",
+ "used": "ไฝฟ็จๆธใฟ"
+ },
+ "topic": {
+ "confirmRemoveTopic": "ใใฎใใใใฏใๅ้คใใพใใ๏ผๅ้คๅพใฏๅ
ใซๆปใใพใใใฎใงใๆณจๆใใฆๆไฝใใฆใใ ใใใ",
+ "defaultTitle": "ใใใฉใซใใใใใฏ",
+ "saveCurrentMessages": "็พๅจใฎใใฃใใใใใใใฏใจใใฆไฟๅญ",
+ "searchPlaceholder": "ใใใใฏใๆค็ดข...",
+ "title": "ใใใใฏ"
+ },
+ "updateAgent": "ใขใทในใฟใณใๆ
ๅ ฑใๆดๆฐ",
+ "updatePrompt": "ใใญใณใใใฎๆดๆฐ",
+ "upgradeVersion": {
+ "action": "ไปใใใขใใใฐใฌใผใ",
+ "hasNew": "ๅฉ็จๅฏ่ฝใชๆดๆฐใใใใพใ",
+ "newVersion": "ๆฐใใใใผใธใงใณใๅฉ็จๅฏ่ฝใงใ๏ผ{{version}}"
+ },
+ "warp": "ๆน่ก"
+}
diff --git a/locales/ja_JP/empty.json b/locales/ja_JP/empty.json
new file mode 100644
index 000000000000..af2710565348
--- /dev/null
+++ b/locales/ja_JP/empty.json
@@ -0,0 +1,6 @@
+{
+ "topic": {
+ "desc": "ๅทฆๅดใฎใใฟใณใใฏใชใใฏใใฆใ็พๅจใฎไผ่ฉฑใๅฑฅๆญดใใใใฏใจใใฆไฟๅญใใๆฐใใไผ่ฉฑใ้ๅงใใพใ",
+ "title": "ใใใใฏใชในใ"
+ }
+}
diff --git a/locales/ja_JP/error.json b/locales/ja_JP/error.json
new file mode 100644
index 000000000000..e3551d2ea159
--- /dev/null
+++ b/locales/ja_JP/error.json
@@ -0,0 +1,42 @@
+{
+ "pluginSettings": {
+ "desc": "ไปฅไธใฎ่จญๅฎใๅฎไบใใใจใใใฉใฐใคใณใไฝฟ็จใใใใจใใงใใพใ",
+ "title": "{{name}}ใใฉใฐใคใณใฎ่จญๅฎ"
+ },
+ "response": {
+ "400": "็ณใ่จณใใใพใใใใใตใผใใผใฏใชใฏใจในใใ็่งฃใงใใพใใใใชใฏใจในใใใฉใกใผใฟใๆญฃใใใใฉใใ็ขบ่ชใใฆใใ ใใ",
+ "401": "็ณใ่จณใใใพใใใใใตใผใใผใฏใชใฏใจในใใๆๅฆใใพใใใๆจฉ้ใไธ่ถณใใฆใใใใๆๅนใช่ช่จผๆ
ๅ ฑใๆไพใใใฆใใชใๅฏ่ฝๆงใใใใพใ",
+ "403": "็ณใ่จณใใใพใใใใใตใผใใผใฏใชใฏใจในใใๆๅฆใใพใใใใใฎใณใณใใณใใซใขใฏใปในใใๆจฉ้ใใใใพใใ",
+ "404": "็ณใ่จณใใใพใใใใใตใผใใผใฏใชใฏใจในใใใใใผใธใใชใฝใผในใ่ฆใคใใใใจใใงใใพใใใURLใๆญฃใใใใฉใใ็ขบ่ชใใฆใใ ใใ",
+ "405": "็ณใ่จณใใใพใใใใใตใผใใผใฏไฝฟ็จใใใใชใฏใจในใใกใฝใใใใตใใผใใใฆใใพใใใใชใฏใจในใใกใฝใใใๆญฃใใใใฉใใ็ขบ่ชใใฆใใ ใใ",
+ "429": "็ณใ่จณใใใพใใใใใชใฏใจในใใๅคใใใฆใตใผใใผใๅฟใใใใใใใฐใใใใฆใใๅ่ฉฆ่กใใฆใใ ใใ",
+ "500": "็ณใ่จณใใใพใใใใใตใผใใผใซไธๆ็ใชๅ้กใ็บ็ใใใชใฏใจในใใๅฎไบใงใใพใใใใใฐใใใใฆใใๅ่ฉฆ่กใใฆใใ ใใ",
+ "502": "็ณใ่จณใใใพใใใใใตใผใใผใฏไธๆ็ใซใตใผใในใๆไพใงใใพใใใใใฐใใใใฆใใๅ่ฉฆ่กใใฆใใ ใใ",
+ "503": "็ณใ่จณใใใพใใใใใตใผใใผใฏ็พๅจใใชใฏใจในใใๅฆ็ใงใใพใใใใชใผใใผใญใผใใพใใฏใกใณใใใณในไธญใฎๅฏ่ฝๆงใใใใพใใใใฐใใใใฆใใๅ่ฉฆ่กใใฆใใ ใใ",
+ "504": "็ณใ่จณใใใพใใใใใตใผใใผใฏไธไฝใตใผใใผใใใฎๅฟ็ญใๅพ
ใฃใฆใใพใใใใใฐใใใใฆใใๅ่ฉฆ่กใใฆใใ ใใ",
+ "PluginMarketIndexNotFound": "็ณใ่จณใใใพใใใใใใฉใฐใคใณใฎใคใณใใใฏในใ่ฆใคใใใพใใใงใใใใคใณใใใฏในใฎใขใใฌในใๆญฃใใใใฉใใ็ขบ่ชใใฆใใ ใใ",
+ "PluginMetaNotFound": "็ณใ่จณใใใพใใใใใคใณใใใฏในใงใใฉใฐใคใณใ่ฆใคใใใพใใใงใใใใใฉใฐใคใณใฎ่จญๅฎๆ
ๅ ฑใใคใณใใใฏในใง็ขบ่ชใใฆใใ ใใ",
+ "PluginMetaInvalid": "็ณใ่จณใใใพใใใใใใฉใฐใคใณใฎใกใฟๆ
ๅ ฑใฎๆค่จผใซๅคฑๆใใพใใใใใฉใฐใคใณใฎใกใฟๆ
ๅ ฑใฎๅฝขๅผใๆญฃใใใใฉใใ็ขบ่ชใใฆใใ ใใ",
+ "PluginApiParamsError": "็ณใ่จณใใใพใใใใใใฉใฐใคใณใฎใชใฏใจในใใใฉใกใผใฟใฎๆค่จผใซๅคฑๆใใพใใใใใฉใกใผใฟใจAPIใฎ่ชฌๆใไธ่ดใใฆใใใใฉใใ็ขบ่ชใใฆใใ ใใ",
+ "PluginSettingsInvalid": "ใใฎใใฉใฐใคใณใไฝฟ็จใใใซใฏใๆญฃใใ่จญๅฎใๅฟ
่ฆใงใใ่จญๅฎใๆญฃใใใใฉใใ็ขบ่ชใใฆใใ ใใ",
+ "PluginServerError": "ใใฉใฐใคใณใตใผใใผใฎใชใฏใจในใใจใฉใผใ็บ็ใใพใใใไปฅไธใฎใจใฉใผใกใใปใผใธใๅ่ใซใใใฉใฐใคใณใฎใใใใงในใใใกใคใซใ่จญๅฎใใตใผใใผๅฎ่ฃ
ใ็ขบ่ชใใฆใใ ใใ",
+ "InvalidAccessCode": "ใในใฏใผใใๆญฃใใใชใใ็ฉบใงใใๆญฃใใใขใฏใปในใในใฏใผใใๅ
ฅๅใใใใใซในใฟใ ใฎOpenAI APIใญใผใ่ฟฝๅ ใใฆใใ ใใ",
+ "OpenAIBizError": "OpenAIใตใผใในใฎใชใฏใจในใใจใฉใผใ็บ็ใใพใใใไปฅไธใฎๆ
ๅ ฑใซๅบใฅใใฆๅ้กใ่งฃๆฑบใใใใๅ่ฉฆ่กใใใใใฆใใ ใใ",
+ "PluginMarketIndexInvalid": "็ณใ่จณใใใพใใใใใใฉใฐใคใณใฎใคใณใใใฏในใฎๆค่จผใซๅคฑๆใใพใใใใคใณใใใฏในใใกใคใซใฎๅฝขๅผใๆญฃใใใใฉใใใ็ขบ่ชใใฆใใ ใใ",
+ "PluginManifestNotFound": "็ณใ่จณใใใพใใใใใตใผใใผใงใใฉใฐใคใณใฎใใใใงในใใใกใคใซ (manifest.json) ใ่ฆใคใใใพใใใงใใใใใฉใฐใคใณใฎใใใใงในใใใกใคใซใฎใขใใฌในใๆญฃใใใใฉใใใ็ขบ่ชใใฆใใ ใใ",
+ "PluginManifestInvalid": "็ณใ่จณใใใพใใใใใใฎใใฉใฐใคใณใฎใใใใงในใใฎๆค่จผใซๅคฑๆใใพใใใใใใใงในใใฎๅฝขๅผใๆญฃใใใใฉใใใ็ขบ่ชใใฆใใ ใใ",
+ "PluginApiNotFound": "็ณใ่จณใใใพใใใใใใฉใฐใคใณใฎใใใใงในใใซๆๅฎใใใAPIใ่ฆใคใใใพใใใงใใใใชใฏใจในใใกใฝใใใจใใฉใฐใคใณใฎใใใใงในใใฎAPIใไธ่ดใใฆใใใใฉใใใ็ขบ่ชใใฆใใ ใใ"
+ },
+ "unlock": {
+ "apikey": {
+ "description": "OpenAI APIใญใผใๅ
ฅๅใใใจใใในใฏใผใ่ช่จผใใใคใในใงใใพใใใขใใชใฏAPIใญใผใ่จ้ฒใใพใใ",
+ "title": "ใซในใฟใ APIใญใผใฎไฝฟ็จ"
+ },
+ "closeMessage": "ใใณใใ้ใใ",
+ "confirm": "็ขบ่ชใใฆๅ่ฉฆ่ก",
+ "password": {
+ "description": "็ฎก็่
ใซใใฃใฆใขใใชใๆๅทๅใใใพใใใใขใใชใใญใใฏ่งฃ้คใใใซใฏใใขใใชใฎใในใฏใผใใๅ
ฅๅใใฆใใ ใใใใในใฏใผใใฏ1ๅใ ใๅ
ฅๅใใใฐใใใงใ",
+ "title": "ใในใฏใผใใๅ
ฅๅใใฆใขใใชใใญใใฏ่งฃ้ค"
+ }
+ }
+}
diff --git a/locales/ja_JP/market.json b/locales/ja_JP/market.json
new file mode 100644
index 000000000000..e028cf60ab66
--- /dev/null
+++ b/locales/ja_JP/market.json
@@ -0,0 +1,16 @@
+{
+ "addAgent": "ๅฉๆใ่ฟฝๅ ใใ",
+ "search": {
+ "placeholder": "ๅฉๆใฎๅๅใ่ชฌๆใใพใใฏใญใผใฏใผใใๆค็ดข..."
+ },
+ "sidebar": {
+ "comment": "ใณใกใณใ",
+ "prompt": "ใใญใณใใ",
+ "title": "ๅฉๆใฎ่ฉณ็ดฐ"
+ },
+ "submitAgent": "ๅฉๆใๆๅบใใ",
+ "title": {
+ "allAgents": "ใในใฆใฎๅฉๆ",
+ "recentSubmits": "ๆ่ฟใฎ่ฟฝๅ "
+ }
+}
diff --git a/locales/ja_JP/plugin.json b/locales/ja_JP/plugin.json
new file mode 100644
index 000000000000..7de59a3718ed
--- /dev/null
+++ b/locales/ja_JP/plugin.json
@@ -0,0 +1,107 @@
+{
+ "debug": {
+ "arguments": "ๅผๆฐ",
+ "function_call": "้ขๆฐๅผใณๅบใ",
+ "response": "ใฌในใใณใน"
+ },
+ "dev": {
+ "confirmDeleteDevPlugin": "ใใฎใญใผใซใซใใฉใฐใคใณใๅ้คใใพใใ๏ผๅ้คๅพใฏๅ
ใซๆปใใพใใใ",
+ "deleteSuccess": "ใใฉใฐใคใณใๆญฃๅธธใซๅ้คใใใพใใ",
+ "manifest": {
+ "identifier": {
+ "desc": "ใใฉใฐใคใณใฎไธๆใฎ่ญๅฅๅญ",
+ "label": "่ญๅฅๅญ"
+ },
+ "mode": {
+ "local": "ใใธใฅใขใซ่จญๅฎ",
+ "local-tooltip": "ใใธใฅใขใซ่จญๅฎใฏไธๆ็ใซใตใใผใใใใฆใใพใใ",
+ "url": "ใชใณใฉใคใณใชใณใฏ"
+ },
+ "name": {
+ "desc": "ใใฉใฐใคใณใฎใฟใคใใซ",
+ "label": "ใฟใคใใซ",
+ "placeholder": "ๆค็ดขใจใณใธใณ"
+ }
+ },
+ "meta": {
+ "author": {
+ "desc": "ใใฉใฐใคใณใฎไฝ่
",
+ "label": "ไฝ่
"
+ },
+ "avatar": {
+ "desc": "ใใฉใฐใคใณใฎใขใคใณใณใ็ตตๆๅญใURLใไฝฟ็จใงใใพใ",
+ "label": "ใขใคใณใณ"
+ },
+ "description": {
+ "desc": "ใใฉใฐใคใณใฎ่ชฌๆ",
+ "label": "่ชฌๆ",
+ "placeholder": "ๆค็ดขใจใณใธใณใงๆ
ๅ ฑใๅๅพใใพใ"
+ },
+ "formFieldRequired": "ใใฎใใฃใผใซใใฏๅฟ
้ ใงใ",
+ "homepage": {
+ "desc": "ใใฉใฐใคใณใฎใใผใ ใใผใธ",
+ "label": "ใใผใ ใใผใธ"
+ },
+ "identifier": {
+ "desc": "ใใฉใฐใคใณใฎไธๆใฎ่ญๅฅๅญใใใใใงในใใใ่ชๅ็ใซ่ญๅฅใใใพใ",
+ "errorDuplicate": "่ญๅฅๅญใๆขๅญใฎใใฉใฐใคใณใจ้่คใใฆใใพใใ่ญๅฅๅญใๅคๆดใใฆใใ ใใ",
+ "label": "่ญๅฅๅญ",
+ "pattenErrorMessage": "่ฑๆฐๅญใ-ใ_ ใฎใฟๅ
ฅๅใงใใพใ"
+ },
+ "manifest": {
+ "desc": "LobeChatใฏใใฎใชใณใฏใไฝฟ็จใใฆใใฉใฐใคใณใใคใณในใใผใซใใพใ",
+ "jsonInvalid": "ใใใใงในใใ่ฆๆ ผใซๆบๆ ใใฆใใพใใใๆค่จผ็ตๆ๏ผ\n\n{{error}}",
+ "label": "ใใฉใฐใคใณใฎใใใใงในใURL",
+ "preview": "ใใใใงในใใฎใใฌใใฅใผ",
+ "refresh": "ๆดๆฐ",
+ "requestError": "ใชใณใฏใฎใชใฏใจในใใซๅคฑๆใใพใใใๆๅนใชใชใณใฏใๅ
ฅๅใใใฏใญในใชใชใธใณใชใฏใจในใใ่จฑๅฏใใใฆใใใ็ขบ่ชใใฆใใ ใใ",
+ "urlError": "ใใฎใชใณใฏใฏJSONๅฝขๅผใฎใณใณใใณใใ่ฟใใฆใใพใใใๆๅนใชใชใณใฏใๅ
ฅๅใใฆใใ ใใ"
+ },
+ "title": {
+ "desc": "ใใฉใฐใคใณใฎใฟใคใใซ",
+ "label": "ใฟใคใใซ",
+ "placeholder": "ๆค็ดขใจใณใธใณ"
+ }
+ },
+ "metaConfig": "ใใฉใฐใคใณใฎใกใฟๆ
ๅ ฑใฎ่จญๅฎ",
+ "modalDesc": "ใซในใฟใ ใใฉใฐใคใณใ่ฟฝๅ ใใใจใใใฉใฐใคใณใฎ้็บๆค่จผใใปใใทใงใณใง็ดๆฅไฝฟ็จใงใใพใใใใฉใฐใคใณใฎ้็บใใญใฅใกใณใใซใคใใฆใฏใๅ็
งใใฆใใ ใใ",
+ "preview": {
+ "card": "ใใฉใฐใคใณใฎใใฌใใฅใผ่กจ็คบ",
+ "desc": "ใใฉใฐใคใณใฎ่ชฌๆใฎใใฌใใฅใผ",
+ "title": "ใใฉใฐใคใณๅใฎใใฌใใฅใผ"
+ },
+ "save": "ไฟๅญ",
+ "saveSuccess": "ใใฉใฐใคใณใฎ่จญๅฎใๆญฃๅธธใซไฟๅญใใใพใใ",
+ "tabs": {
+ "manifest": "ๆฉ่ฝใฎใใใใงในใ",
+ "meta": "ใใฉใฐใคใณใฎใกใฟๆ
ๅ ฑ"
+ },
+ "title": "ใซในใฟใ ใใฉใฐใคใณใฎ่ฟฝๅ ",
+ "update": "ๆดๆฐ",
+ "updateSuccess": "ใใฉใฐใคใณใฎ่จญๅฎใๆญฃๅธธใซๆดๆฐใใใพใใ"
+ },
+ "list": {
+ "item": {
+ "deprecated.title": "ๅ้คๆธใฟ",
+ "local.config": "่จญๅฎ",
+ "local.title": "ใซในใฟใ "
+ }
+ },
+ "loading": {
+ "content": "ใใผใฟใฎๅๅพไธญ...",
+ "plugin": "ใใฉใฐใคใณใฎๅฎ่กไธญ..."
+ },
+ "pluginList": "ใใฉใฐใคใณใชในใ",
+ "plugins": {
+ "unknown": "ใใฉใฐใคใณใฎๆคๅบไธญ..."
+ },
+ "setting": "ใใฉใฐใคใณใฎ่จญๅฎ",
+ "settings": {
+ "indexUrl": {
+ "title": "ใใผใฑใใใคใณใใใฏใน",
+ "tooltip": "ใชใณใฉใคใณ็ทจ้ใฏ็พๅจใตใใผใใใใฆใใพใใใใใใญใคๆใฎ็ฐๅขๅคๆฐใไฝฟ็จใใฆ่จญๅฎใใฆใใ ใใ"
+ },
+ "modalDesc": "ใใฉใฐใคใณใใผใฑใใใฎใขใใฌในใ่จญๅฎใใใจใใซในใฟใ ใฎใใฉใฐใคใณใใผใฑใใใไฝฟ็จใงใใพใ",
+ "title": "ใใฉใฐใคใณใใผใฑใใใฎ่จญๅฎ"
+ }
+}
diff --git a/locales/ja_JP/setting.json b/locales/ja_JP/setting.json
new file mode 100644
index 000000000000..a5d6e3a7cd9f
--- /dev/null
+++ b/locales/ja_JP/setting.json
@@ -0,0 +1,225 @@
+{
+ "danger": {
+ "clear": {
+ "action": "ใฏใชใข",
+ "confirm": "ใในใฆใฎใใฃใใใใผใฟใใฏใชใขใใพใใ๏ผ",
+ "desc": "ใในใฆใฎใปใใทใงใณใใผใฟใใฏใชใขใใพใ",
+ "success": "ใในใฆใฎใปใใทใงใณใกใใปใผใธใใฏใชใขใใใพใใ",
+ "title": "ใในใฆใฎใปใใทใงใณใกใใปใผใธใใฏใชใข"
+ },
+ "reset": {
+ "action": "ใชใปใใ",
+ "confirm": "ใในใฆใฎ่จญๅฎใใชใปใใใใพใใ๏ผ",
+ "currentVersion": "็พๅจใฎใใผใธใงใณ",
+ "desc": "ใในใฆใฎ่จญๅฎ้
็ฎใใใใฉใซใๅคใซใชใปใใใใพใ",
+ "title": "ใในใฆใฎ่จญๅฎใใชใปใใ"
+ }
+ },
+ "header": {
+ "global": "ใฐใญใผใใซ่จญๅฎ",
+ "session": "ใปใใทใงใณ่จญๅฎ",
+ "sessionWithName": "ใปใใทใงใณ่จญๅฎ ยท {{name}}"
+ },
+ "llm": {
+ "AzureOpenAI": {
+ "endpoint": {
+ "desc": "Azureใใผใฟใซใงใชใฝใผในใ็ขบ่ชใใใจใใใฎๅคใฏใใญใผใจใจใณใใใคใณใใใปใฏใทใงใณใง่ฆใคใใใใจใใงใใพใ",
+ "placeholder": "https://docs-test-001.openai.azure.com",
+ "title": "Azure APIใขใใฌใน"
+ },
+ "models": {
+ "desc": "ใตใใผใใใใฆใใใขใใซ",
+ "title": "ใขใใซใชในใ"
+ },
+ "title": "Azure OpenAI่จญๅฎ",
+ "token": {
+ "desc": "Azureใใผใฟใซใงใชใฝใผในใ็ขบ่ชใใใจใใใฎๅคใฏใใญใผใจใจใณใใใคใณใใใปใฏใทใงใณใง่ฆใคใใใใจใใงใใพใใKEY1ใพใใฏKEY2ใไฝฟ็จใงใใพใ",
+ "placeholder": "Azure APIใญใผ",
+ "title": "APIใญใผ"
+ }
+ },
+ "OpenAI": {
+ "azureApiVersion": {
+ "desc": "AzureใฎAPIใใผใธใงใณใฏใYYYY-MM-DDๅฝขๅผใซๅพใใพใใ[ๆๆฐใใผใธใงใณ](https://learn.microsoft.com/zh-cn/azure/ai-services/openai/reference#chat-completions)ใๅ็
งใใฆใใ ใใ",
+ "fetch": "ใชในใใๅๅพ",
+ "title": "Azure APIใใผใธใงใณ"
+ },
+ "check": {
+ "button": "ใใงใใฏ",
+ "desc": "APIใญใผใจใใญใญใทใขใใฌในใๆญฃใใๅ
ฅๅใใใฆใใใใใในใใใพใ",
+ "pass": "ใใงใใฏใซๅๆ ผใใพใใ",
+ "title": "ๆฅ็ถๆงใฎใใงใใฏ"
+ },
+ "endpoint": {
+ "desc": "ใใใฉใซใใฎใขใใฌในไปฅๅคใซใhttp(s)://ใๅซใใๅฟ
่ฆใใใใพใ",
+ "placeholder": "https://api.openai.com/v1",
+ "title": "ใจใณใใใคใณใใใญใญใทใขใใฌใน"
+ },
+ "models": {
+ "count": "{{count}}ใขใใซใใตใใผใใใใฆใใพใ",
+ "desc": "ใตใใผใใใใฆใใใขใใซ",
+ "fetch": "ใขใใซใชในใใๅๅพ",
+ "notSupport": "Azure OpenAIใงใฏใขใใซใชในใใฎ่กจ็คบใฏใตใใผใใใใฆใใพใใ",
+ "notSupportTip": "ใใใญใคๅใจใขใใซๅใไธ่ดใใฆใใใใจใ็ขบ่ชใใๅฟ
่ฆใใใใพใ",
+ "refetch": "ใขใใซใชในใใๅๅๅพ",
+ "title": "ใขใใซใชในใ"
+ },
+ "title": "OpenAI่จญๅฎ",
+ "token": {
+ "desc": "็ฌ่ชใฎOpenAIใญใผใไฝฟ็จใใพใ",
+ "placeholder": "OpenAI APIใญใผ",
+ "title": "APIใญใผ"
+ },
+ "useAzure": {
+ "desc": "AzureใๆไพใใOpenAIใตใผใในใไฝฟ็จใใพใ",
+ "fetch": "ใชในใใๅๅพ",
+ "serverConfig": "็ฎก็่
ใใตใผใใผๅดใงAzure OpenAIใ่จญๅฎใใฆใใใๅใๆฟใใ็ฆๆญขใใใฆใใพใ",
+ "title": "Azure OpenAI"
+ }
+ },
+ "waitingForMore": "ไปใฎใขใใซใฏ็พๅจ <1>่จ็ปไธญ1> ใงใใใๆฅฝใใฟใซ โจ"
+ },
+ "settingAgent": {
+ "avatar": {
+ "title": "ใขใใฟใผ"
+ },
+ "backgroundColor": {
+ "title": "่ๆฏ่ฒ"
+ },
+ "description": {
+ "placeholder": "ใขใทในใฟใณใใฎ่ชฌๆใๅ
ฅๅใใฆใใ ใใ",
+ "title": "่ชฌๆ"
+ },
+ "name": {
+ "placeholder": "ใขใทในใฟใณใใฎๅๅใๅ
ฅๅใใฆใใ ใใ",
+ "title": "ๅๅ"
+ },
+ "prompt": {
+ "placeholder": "ใญใฃใฉใฏใฟใผใใญใณใใใๅ
ฅๅใใฆใใ ใใ",
+ "title": "ใญใฃใฉใฏใฟใผ่จญๅฎ"
+ },
+ "tag": {
+ "placeholder": "ใฟใฐใๅ
ฅๅใใฆใใ ใใ",
+ "title": "ใฟใฐ"
+ },
+ "title": "ใขใทในใฟใณใๆ
ๅ ฑ"
+ },
+ "settingChat": {
+ "chatStyleType": {
+ "title": "ใใฃใใใฆใฃใณใใฆใฎในใฟใคใซ",
+ "type": {
+ "chat": "ๅฏพ่ฉฑใขใผใ",
+ "docs": "ใใญใฅใกใณใใขใผใ"
+ }
+ },
+ "compressThreshold": {
+ "desc": "้ๅง็ธฎใฎๅฑฅๆญดใกใใปใผใธใใใฎๅคใ่ถ
ใใใจใๅง็ธฎใใใพใ",
+ "title": "ๅฑฅๆญดใกใใปใผใธใฎๅง็ธฎ้พๅค"
+ },
+ "enableCompressThreshold": {
+ "title": "ๅฑฅๆญดใกใใปใผใธใฎๅง็ธฎ้พๅคใๆๅนใซใใ"
+ },
+ "enableHistoryCount": {
+ "alias": "ๅถ้ใชใ",
+ "limited": "{{number}}ไปถใฎไผ่ฉฑใกใใปใผใธใฎใฟๅซใ",
+ "title": "ๅฑฅๆญดใกใใปใผใธๆฐใฎๅถ้",
+ "unlimited": "ๅฑฅๆญดใกใใปใผใธๆฐใฎๅถ้ใชใ"
+ },
+ "historyCount": {
+ "desc": "ใชใฏใจในใใใจใซๅซใพใใๅฑฅๆญดใกใใปใผใธๆฐ",
+ "title": "ๅฑฅๆญดใกใใปใผใธๆฐ"
+ },
+ "inputTemplate": {
+ "desc": "ใฆใผใถใผใฎๆๆฐใฎใกใใปใผใธใใใฎใใณใใฌใผใใซๅใ่พผใพใใพใ",
+ "placeholder": "ใใชใใญใปในใใณใใฌใผใ {{text}} ใฏใชใขใซใฟใคใ ใฎๅ
ฅๅๆ
ๅ ฑใซ็ฝฎใๆใใใใพใ",
+ "title": "ใฆใผใถใผๅ
ฅๅใฎใใชใใญใปใน"
+ },
+ "title": "ใใฃใใ่จญๅฎ"
+ },
+ "settingModel": {
+ "enableMaxTokens": {
+ "title": "ๅไธๅฟ็ญๅถ้ใๆๅนใซใใ"
+ },
+ "frequencyPenalty": {
+ "desc": "ๅคใๅคงใใใปใฉใ้่คใใๅ่ชใๆธๅฐใใๅฏ่ฝๆงใ้ซใใชใใพใ",
+ "title": "้ ปๅบฆใใใซใใฃ"
+ },
+ "maxTokens": {
+ "desc": "ๅไธใฎๅฏพ่ฉฑใงไฝฟ็จใใใๆๅคงใใผใฏใณๆฐ",
+ "title": "ๅไธๅฟ็ญๅถ้"
+ },
+ "model": {
+ "desc": "ChatGPTใขใใซ",
+ "list": {
+ "gpt-3.5-turbo": "GPT 3.5",
+ "gpt-3.5-turbo-16k": "GPT 3.5 (16K)",
+ "gpt-4": "GPT 4",
+ "gpt-4-32k": "GPT 4 (32K)"
+ },
+ "title": "ใขใใซ"
+ },
+ "presencePenalty": {
+ "desc": "ๅคใๅคงใใใปใฉใๆฐใใใใใใฏใซๅฑ้ใใๅฏ่ฝๆงใ้ซใใชใใพใ",
+ "title": "ใใใใฏใฎๆฐ้ฎฎใ"
+ },
+ "temperature": {
+ "desc": "ๅคใๅคงใใใปใฉใๅฟ็ญใใใใฉใณใใ ใซใชใใพใ",
+ "title": "ใฉใณใใ ๆง",
+ "titleWithValue": "ใฉใณใใ ๆง {{value}}"
+ },
+ "title": "ใขใใซ่จญๅฎ",
+ "topP": {
+ "desc": "ใฉใณใใ ๆงใจๅๆงใงใใใใฉใณใใ ๆงใจใฏๅๆใซๅคๆดใใชใใงใใ ใใ",
+ "title": "ใใใPใตใณใใชใณใฐ"
+ }
+ },
+ "settingPlugin": {
+ "add": "่ฟฝๅ ",
+ "addTooltip": "ใซในใฟใ ใใฉใฐใคใณใ่ฟฝๅ ",
+ "clearDeprecated": "็กๅนใชใใฉใฐใคใณใๅ้ค",
+ "config": "{{id}}ใใฉใฐใคใณใฎ่จญๅฎ",
+ "settings": "ใใฉใฐใคใณใใผใฑใใใฎ่จญๅฎ",
+ "title": "ใใฉใฐใคใณใชในใ"
+ },
+ "settingSystem": {
+ "accessCode": {
+ "desc": "็ฎก็่
ใๆๅทๅใขใฏใปในใๆๅนใซใใฆใใพใ",
+ "placeholder": "ใขใฏใปในใณใผใใๅ
ฅๅใใฆใใ ใใ",
+ "title": "ใขใฏใปในใณใผใ"
+ },
+ "title": "ใทในใใ ่จญๅฎ"
+ },
+ "settingTheme": {
+ "avatar": {
+ "title": "ใขใใฟใผ"
+ },
+ "fontSize": {
+ "desc": "ใใฃใใใฎใใญในใใตใคใบ",
+ "title": "ใใฉใณใใตใคใบ"
+ },
+ "lang": {
+ "autoMode": "ใทในใใ ใซๅพใ",
+ "title": "่จ่ช"
+ },
+ "neutralColor": {
+ "desc": "็ฐใชใ่ฒ่ชฟใฎใฐใฌใผในใฑใผใซใฎใซในใฟใใคใบ",
+ "title": "ไธญ็ซ่ฒ"
+ },
+ "primaryColor": {
+ "desc": "ใซในใฟใ ใใผใใซใฉใผ",
+ "title": "ใใผใใซใฉใผ"
+ },
+ "themeMode": {
+ "auto": "่ชๅ",
+ "dark": "ใใผใฏ",
+ "light": "ใฉใคใ",
+ "title": "ใใผใ"
+ },
+ "title": "ใใผใ่จญๅฎ"
+ },
+ "tab": {
+ "agent": "ใใใฉใซใใฎใขใทในใฟใณใ",
+ "common": "ไธ่ฌ่จญๅฎ",
+ "llm": "่จ่ชใขใใซ"
+ }
+}
diff --git a/locales/ja_JP/welcome.json b/locales/ja_JP/welcome.json
new file mode 100644
index 000000000000..28aa8fdddbe7
--- /dev/null
+++ b/locales/ja_JP/welcome.json
@@ -0,0 +1,14 @@
+{
+ "button": {
+ "import": "่จญๅฎใใคใณใใผใ",
+ "start": "ใใใซ้ๅง"
+ },
+ "header": "ใใใใ",
+ "pickAgent": "ใพใใฏไปฅไธใฎใขใทในใฟใณใใใณใใฌใผใใใ้ธๆใใฆใใ ใใ",
+ "skip": "ไฝๆใในใญใใ",
+ "slogan": {
+ "desc1": "่ณใฎใฏใฉในใฟใผใ้ๅงใใๆ่ใฎ็ซ่ฑใๅผใ่ตทใใใพใใใใชใใฎในใใผใใขใทในใฟใณใใฏๅธธใซใใใซใใใพใใ",
+ "desc2": "ๆๅใฎใขใทในใฟใณใใไฝๆใใฆใๅงใใพใใใใ",
+ "title": "ใใ่ณขใ่ณใ่ชๅใซไธใใ"
+ }
+}
diff --git a/locales/ko_KR/common.json b/locales/ko_KR/common.json
new file mode 100644
index 000000000000..dd4f8b4985ea
--- /dev/null
+++ b/locales/ko_KR/common.json
@@ -0,0 +1,103 @@
+{
+ "about": "์๊ฐ",
+ "advanceSettings": "๊ณ ๊ธ ์ค์ ",
+ "agentDefaultMessage": "์๋
ํ์ธ์, ์ ๋ **{{name}}**์
๋๋ค. ๋ฐ๋ก ๋ํ๋ฅผ ์์ํ๊ฑฐ๋ [๋์ฐ๋ฏธ ์ค์ ](/chat/settings#session={{id}})์ผ๋ก ์ด๋ํ์ฌ ์ ์ ๋ณด๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.",
+ "agentDefaultMessageWithSystemRole": "์๋
ํ์ธ์, ์ ๋ **{{name}}**์
๋๋ค. {{systemRole}}์
๋๋ค. ๋ํ๋ฅผ ์์ํด๋ด
์๋ค!",
+ "agentMaxToken": "์ธ์
์ต๋ ๊ธธ์ด",
+ "agentModel": "๋ชจ๋ธ",
+ "agentProfile": "๋์ฐ๋ฏธ ์ ๋ณด",
+ "appInitializing": "LobeChat์ ์์ํ๋ ์ค์
๋๋ค. ์ ์ ๊ธฐ๋ค๋ ค์ฃผ์ธ์...",
+ "archive": "๋ณด๊ดํจ",
+ "autoGenerate": "์๋ ์์ฑ",
+ "autoGenerateTooltip": "๋์ฐ๋ฏธ ์ค๋ช
์ ์๋์ผ๋ก ์์ฑํฉ๋๋ค.",
+ "backToBottom": "์ต์ ๋ฉ์์ง ๋ณด๊ธฐ",
+ "cancel": "์ทจ์",
+ "changelog": "๋ณ๊ฒฝ ๋ด์ญ",
+ "clearCurrentMessages": "ํ์ฌ ๋ํ ๋ฉ์์ง ์ง์ฐ๊ธฐ",
+ "close": "๋ซ๊ธฐ",
+ "confirmClearCurrentMessages": "ํ์ฌ ๋ํ ๋ฉ์์ง๋ฅผ ์ง์ฐ์๊ฒ ์ต๋๊น? ์ง์ด ํ์๋ ๋ณต๊ตฌํ ์ ์์ต๋๋ค. ์์
์ ํ์ธํ์ธ์.",
+ "confirmRemoveSessionItemAlert": "๋์ฐ๋ฏธ๋ฅผ ์ญ์ ํ์๊ฒ ์ต๋๊น? ์ญ์ ํ ํ์๋ ๋ณต๊ตฌํ ์ ์์ต๋๋ค. ์์
์ ํ์ธํ์ธ์.",
+ "copy": "๋ณต์ฌ",
+ "copySuccess": "๋ณต์ฌ ์๋ฃ",
+ "defaultAgent": "๊ธฐ๋ณธ ๋์ฐ๋ฏธ",
+ "defaultSession": "๊ธฐ๋ณธ ๋์ฐ๋ฏธ",
+ "delete": "์ญ์ ",
+ "edit": "ํธ์ง",
+ "export": "์ค์ ๋ด๋ณด๋ด๊ธฐ",
+ "exportType": {
+ "agent": "๋์ฐ๋ฏธ ์ค์ ๋ด๋ณด๋ด๊ธฐ",
+ "agentWithMessage": "๋์ฐ๋ฏธ์ ๋ฉ์์ง ๋ด๋ณด๋ด๊ธฐ",
+ "all": "์ ์ญ ์ค์ ๊ณผ ๋ชจ๋ ๋์ฐ๋ฏธ ๋ฐ์ดํฐ ๋ด๋ณด๋ด๊ธฐ",
+ "allAgent": "๋ชจ๋ ๋์ฐ๋ฏธ ์ค์ ๋ด๋ณด๋ด๊ธฐ",
+ "allAgentWithMessage": "๋ชจ๋ ๋์ฐ๋ฏธ์ ๋ฉ์์ง ๋ด๋ณด๋ด๊ธฐ",
+ "globalSetting": "์ ์ญ ์ค์ ๋ด๋ณด๋ด๊ธฐ"
+ },
+ "feedback": "ํผ๋๋ฐฑ",
+ "historyRange": "๊ธฐ๋ก ๋ฒ์",
+ "import": "์ค์ ๊ฐ์ ธ์ค๊ธฐ",
+ "inbox": {
+ "defaultMessage": "์๋
ํ์ธ์, ์ ๋ ์ธ๊ณต์ง๋ฅ ๋์ฐ๋ฏธ์
๋๋ค. ๊ถ๊ธํ ์ ์ด ์์ผ๋ฉด ๋ฌผ์ด๋ณด์ธ์. ๊ฐ๋ฅํ ํ ๋ต๋ณํด๋๋ฆฌ๊ฒ ์ต๋๋ค. ๋ ์ ๋ฌธ์ ์ด๊ฑฐ๋ ๋ง์ถคํ๋ ๋์ฐ๋ฏธ๊ฐ ํ์ํ๋ค๋ฉด `+`๋ฅผ ํด๋ฆญํ์ฌ ์ฌ์ฉ์ ์ ์ ๋์ฐ๋ฏธ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.",
+ "desc": "๋ ํด๋ฌ์คํฐ๋ฅผ ํ์ฑํํ์ฌ ์ฐฝ์์ ์ธ ์์ด๋์ด๋ฅผ ๋์ง์ด๋ด์ธ์. ์ฌ๊ธฐ์์ ๋ชจ๋ ๊ฒ์ ๋ํํ๋ ์ธ๊ณต์ง๋ฅ ๋์ฐ๋ฏธ์ ์ํตํ์ธ์.",
+ "title": "๋ฌด์์ ๋ํ"
+ },
+ "message": {
+ "function_loading": "ํ๋ฌ๊ทธ์ธ ์์ฒญ ์ค..."
+ },
+ "moreSetting": "์ถ๊ฐ ์ค์ ...",
+ "newAgent": "์ ๋์ฐ๋ฏธ",
+ "noDescription": "์ค๋ช
์์",
+ "ok": "ํ์ธ",
+ "password": "๋น๋ฐ๋ฒํธ",
+ "pin": "๊ณ ์ ",
+ "pinOff": "๊ณ ์ ํด์ ",
+ "regenerate": "์ฌ์์ฑ",
+ "rename": "์ด๋ฆ ๋ณ๊ฒฝ",
+ "reset": "์ฌ์ค์ ",
+ "retry": "์ฌ์๋",
+ "roleAndArchive": "์ญํ ๋ฐ ๊ธฐ๋ก",
+ "searchAgentPlaceholder": "๋์ฐ๋ฏธ์ ๋ํ ๊ฒ์...",
+ "send": "๋ณด๋ด๊ธฐ",
+ "sendPlaceholder": "๋ํ ๋ด์ฉ ์
๋ ฅ...",
+ "sessionList": "๋์ฐ๋ฏธ ๋ชฉ๋ก",
+ "setting": "์ค์ ",
+ "share": "๊ณต์ ",
+ "shareModal": {
+ "download": "์คํฌ๋ฆฐ์ท ๋ค์ด๋ก๋",
+ "imageType": "์ด๋ฏธ์ง ํ์",
+ "screenshot": "์คํฌ๋ฆฐ์ท",
+ "settings": "๋ด๋ณด๋ด๊ธฐ ์ค์ ",
+ "shareToShareGPT": "ShareGPT ๊ณต์ ๋งํฌ ์์ฑ",
+ "withBackground": "๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง ํฌํจ",
+ "withFooter": "ํธํฐ ํฌํจ",
+ "withPluginInfo": "ํ๋ฌ๊ทธ์ธ ์ ๋ณด ํฌํจ",
+ "withSystemRole": "์ด์์คํดํธ ์ญํ ํฌํจ"
+ },
+ "stop": "์ค์ง",
+ "tab": {
+ "chat": "์ฑํ
",
+ "market": "ํ์",
+ "setting": "์ค์ "
+ },
+ "temp": "์์",
+ "tokenDetail": "์ญํ ์ค์ : {{systemRoleToken}} ยท ์ด์ ๋ฉ์์ง: {{chatsToken}}",
+ "tokenTag": {
+ "overload": "์ ํ ์ด๊ณผ",
+ "remained": "๋จ์",
+ "used": "์ฌ์ฉ๋จ"
+ },
+ "topic": {
+ "confirmRemoveTopic": "์ด ์ฃผ์ ๋ฅผ ์ญ์ ํ๋ ค๊ณ ํฉ๋๋ค. ์ญ์ ํ์๋ ๋ณต๊ตฌํ ์ ์์ผ๋ ์ฃผ์ํ์ธ์.",
+ "defaultTitle": "๊ธฐ๋ณธ ์ฃผ์ ",
+ "saveCurrentMessages": "ํ์ฌ ๋ํ๋ฅผ ์ฃผ์ ๋ก ์ ์ฅ",
+ "searchPlaceholder": "์ฃผ์ ๊ฒ์...",
+ "title": "์ฃผ์ "
+ },
+ "updateAgent": "์ด์์คํดํธ ์ ๋ณด ์
๋ฐ์ดํธ",
+ "updatePrompt": "ํ๋กฌํํธ ๋ฌธ๊ตฌ ์
๋ฐ์ดํธ",
+ "upgradeVersion": {
+ "action": "์ง๊ธ ์
๊ทธ๋ ์ด๋",
+ "hasNew": "์ฌ์ฉ ๊ฐ๋ฅํ ์
๋ฐ์ดํธ๊ฐ ์์ต๋๋ค",
+ "newVersion": "์ ๋ฒ์ ์ฌ์ฉ ๊ฐ๋ฅ: {{version}}"
+ },
+ "warp": "์ค๋ฐ๊ฟ"
+}
diff --git a/locales/ko_KR/empty.json b/locales/ko_KR/empty.json
new file mode 100644
index 000000000000..8864d20e2abc
--- /dev/null
+++ b/locales/ko_KR/empty.json
@@ -0,0 +1,6 @@
+{
+ "topic": {
+ "desc": "ํ์ฌ ๋ํ๋ฅผ ํ์คํ ๋ฆฌ ํ ํฝ์ผ๋ก ์ ์ฅํ๊ณ ์๋ก์ด ๋ํ๋ฅผ ์์ํ๋ ค๋ฉด ์ผ์ชฝ ๋ฒํผ์ ํด๋ฆญํ์ธ์.",
+ "title": "ํ ํฝ ๋ชฉ๋ก"
+ }
+}
diff --git a/locales/ko_KR/error.json b/locales/ko_KR/error.json
new file mode 100644
index 000000000000..f9fad6d87a41
--- /dev/null
+++ b/locales/ko_KR/error.json
@@ -0,0 +1,42 @@
+{
+ "pluginSettings": {
+ "desc": "๋ค์ ๊ตฌ์ฑ์ ์๋ฃํ๋ฉด ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.",
+ "title": "{{name}} ํ๋ฌ๊ทธ์ธ ์ค์ "
+ },
+ "response": {
+ "400": "์ฃ์กํฉ๋๋ค. ์๋ฒ๊ฐ ์์ฒญ์ ์ดํดํ์ง ๋ชปํ์ต๋๋ค. ์์ฒญ ๋งค๊ฐ๋ณ์๊ฐ ์ฌ๋ฐ๋ฅธ์ง ํ์ธํด์ฃผ์ธ์.",
+ "401": "์ฃ์กํฉ๋๋ค. ์๋ฒ๊ฐ ์์ฒญ์ ๊ฑฐ๋ถํ์ต๋๋ค. ๊ถํ์ด ๋ถ์กฑํ๊ฑฐ๋ ์ ํจํ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ ๊ณตํ์ง ์์์ ์ ์์ต๋๋ค.",
+ "403": "์ฃ์กํฉ๋๋ค. ์๋ฒ๊ฐ ์์ฒญ์ ๊ฑฐ๋ถํ์ต๋๋ค. ์ด ์ฝํ
์ธ ์ ๋ํ ์ก์ธ์ค ๊ถํ์ด ์์ต๋๋ค.",
+ "404": "์ฃ์กํฉ๋๋ค. ์๋ฒ๊ฐ ์์ฒญํ ํ์ด์ง๋ ๋ฆฌ์์ค๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. URL์ด ์ฌ๋ฐ๋ฅธ์ง ํ์ธํด์ฃผ์ธ์.",
+ "405": "์ฃ์กํฉ๋๋ค. ์๋ฒ๊ฐ ์ฌ์ฉํ ์์ฒญ ๋ฉ์๋๋ฅผ ์ง์ํ์ง ์์ต๋๋ค. ์์ฒญ ๋ฉ์๋๊ฐ ์ฌ๋ฐ๋ฅธ์ง ํ์ธํด์ฃผ์ธ์.",
+ "429": "์ฃ์กํฉ๋๋ค. ์์ฒญ์ด ๋๋ฌด ๋ง์ ์๋ฒ๊ฐ ์ฝ๊ฐ ์ง์น ์ํ์
๋๋ค. ์ ์ ํ์ ๋ค์ ์๋ํด์ฃผ์ธ์.",
+ "500": "์ฃ์กํฉ๋๋ค. ์๋ฒ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ฌ ์์ฒญ์ ์๋ฃํ ์ ์์ต๋๋ค. ์ ์ ํ์ ๋ค์ ์๋ํด์ฃผ์ธ์.",
+ "502": "์ฃ์กํฉ๋๋ค. ์๋ฒ๊ฐ ์ ์ ์๋น์ค๋ฅผ ์ ๊ณตํ ์ ์๋ ์ํ์
๋๋ค. ์ ์ ํ์ ๋ค์ ์๋ํด์ฃผ์ธ์.",
+ "503": "์ฃ์กํฉ๋๋ค. ์๋ฒ๊ฐ ํ์ฌ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ๊ณผ๋ถํ ๋๋ ์ ์ง ๋ณด์ ์ค์ผ ์ ์์ต๋๋ค. ์ ์ ํ์ ๋ค์ ์๋ํด์ฃผ์ธ์.",
+ "504": "์ฃ์กํฉ๋๋ค. ์๋ฒ๊ฐ ์์ ์๋ฒ์ ์๋ต์ ๊ธฐ๋ค๋ฆฌ์ง ๋ชปํ์ต๋๋ค. ์ ์ ํ์ ๋ค์ ์๋ํด์ฃผ์ธ์.",
+ "PluginMarketIndexNotFound": "์ฃ์กํฉ๋๋ค. ์๋ฒ์์ ํ๋ฌ๊ทธ์ธ ์ธ๋ฑ์ค๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. ์ธ๋ฑ์ค ์ฃผ์๊ฐ ์ฌ๋ฐ๋ฅธ์ง ํ์ธํด์ฃผ์ธ์.",
+ "PluginMarketIndexInvalid": "์ฃ์กํฉ๋๋ค. ํ๋ฌ๊ทธ์ธ ์ธ๋ฑ์ค ์ ํจ์ฑ ๊ฒ์ฌ์ ์คํจํ์ต๋๋ค. ์ธ๋ฑ์ค ํ์ผ ํ์์ด ์ฌ๋ฐ๋ฅธ์ง ํ์ธํด์ฃผ์ธ์.",
+ "PluginMetaNotFound": "์ฃ์กํฉ๋๋ค. ์ธ๋ฑ์ค์์ ํด๋น ํ๋ฌ๊ทธ์ธ์ ์ฐพ์ ์ ์์ต๋๋ค. ํ๋ฌ๊ทธ์ธ์ ๊ตฌ์ฑ ์ ๋ณด๋ฅผ ์ธ๋ฑ์ค์์ ํ์ธํด์ฃผ์ธ์.",
+ "PluginMetaInvalid": "์ฃ์กํฉ๋๋ค. ํด๋น ํ๋ฌ๊ทธ์ธ์ ๋ฉํ ์ ๋ณด ์ ํจ์ฑ ๊ฒ์ฌ์ ์คํจํ์ต๋๋ค. ํ๋ฌ๊ทธ์ธ ๋ฉํ ์ ๋ณด ํ์์ด ์ฌ๋ฐ๋ฅธ์ง ํ์ธํด์ฃผ์ธ์.",
+ "PluginManifestNotFound": "์ฃ์กํฉ๋๋ค. ์๋ฒ์์ ํด๋น ํ๋ฌ๊ทธ์ธ์ ์ค๋ช
์ (manifest.json)๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. ํ๋ฌ๊ทธ์ธ ์ค๋ช
ํ์ผ ์ฃผ์๊ฐ ์ฌ๋ฐ๋ฅธ์ง ํ์ธํด์ฃผ์ธ์.",
+ "PluginManifestInvalid": "์ฃ์กํฉ๋๋ค. ํด๋น ํ๋ฌ๊ทธ์ธ์ ์ค๋ช
์ ์ ํจ์ฑ ๊ฒ์ฌ์ ์คํจํ์ต๋๋ค. ์ค๋ช
์ ํ์์ด ์ฌ๋ฐ๋ฅธ์ง ํ์ธํด์ฃผ์ธ์.",
+ "PluginApiNotFound": "์ฃ์กํฉ๋๋ค. ํ๋ฌ๊ทธ์ธ ์ค๋ช
์์ ํด๋น API๊ฐ ์์ต๋๋ค. ์์ฒญ ๋ฉ์๋์ ํ๋ฌ๊ทธ์ธ ์ค๋ช
์ API๊ฐ ์ผ์นํ๋์ง ํ์ธํด์ฃผ์ธ์.",
+ "PluginApiParamsError": "์ฃ์กํฉ๋๋ค. ํ๋ฌ๊ทธ์ธ ์์ฒญ์ ์
๋ ฅ ๋งค๊ฐ๋ณ์ ์ ํจ์ฑ ๊ฒ์ฌ์ ์คํจํ์ต๋๋ค. ์
๋ ฅ ๋งค๊ฐ๋ณ์์ API ์ค๋ช
์ ๋ณด๊ฐ ์ผ์นํ๋์ง ํ์ธํด์ฃผ์ธ์.",
+ "PluginSettingsInvalid": "ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ๋ ค๋ฉด ์ฌ๋ฐ๋ฅธ ๊ตฌ์ฑ์ด ํ์ํฉ๋๋ค. ๊ตฌ์ฑ์ด ์ฌ๋ฐ๋ฅธ์ง ํ์ธํด์ฃผ์ธ์.",
+ "PluginServerError": "ํ๋ฌ๊ทธ์ธ ์๋ฒ ์์ฒญ์ด ์ค๋ฅ๋ก ๋ฐํ๋์์ต๋๋ค. ํ๋ฌ๊ทธ์ธ ์ค๋ช
ํ์ผ, ํ๋ฌ๊ทธ์ธ ๊ตฌ์ฑ ๋๋ ์๋ฒ ๊ตฌํ์ ํ์ธํด์ฃผ์ธ์.",
+ "InvalidAccessCode": "์ํธ๊ฐ ์ฌ๋ฐ๋ฅด์ง ์๊ฑฐ๋ ๋น์ด ์์ต๋๋ค. ์ฌ๋ฐ๋ฅธ ์ก์ธ์ค ์ํธ๋ฅผ ์
๋ ฅํ๊ฑฐ๋ ์ฌ์ฉ์ ์ง์ OpenAI API ํค๋ฅผ ์ถ๊ฐํด์ฃผ์ธ์.",
+ "OpenAIBizError": "OpenAI ์๋น์ค ์์ฒญ ์ค ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์๋ ์ ๋ณด๋ฅผ ํ์ธํ๊ณ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ฑฐ๋ ๋ค์ ์๋ํด์ฃผ์ธ์."
+ },
+ "unlock": {
+ "apikey": {
+ "description": "OpenAI API ํค๋ฅผ ์
๋ ฅํ์ฌ ์ํธ ํ์ธ์ ์ฐํํ ์ ์์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์
์ API ํค๋ฅผ ๊ธฐ๋กํ์ง ์์ต๋๋ค.",
+ "title": "์ฌ์ฉ์ ์ ์ API ํค ์ฌ์ฉ"
+ },
+ "closeMessage": "์๋ฆผ ๋ซ๊ธฐ",
+ "confirm": "ํ์ธ ๋ฐ ๋ค์ ์๋",
+ "password": {
+ "description": "๊ด๋ฆฌ์๊ฐ ์ ํ๋ฆฌ์ผ์ด์
์ํธํ๋ฅผ ํ์ฑํํ์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์
์ ์ ๊ธ ํด์ ํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์
๋น๋ฐ๋ฒํธ๋ฅผ ์
๋ ฅํ์ญ์์ค. ๋น๋ฐ๋ฒํธ๋ ํ ๋ฒ๋ง ์
๋ ฅํ๋ฉด ๋ฉ๋๋ค.",
+ "title": "์ํธ ์
๋ ฅํ์ฌ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ธ ํด์ "
+ }
+ }
+}
diff --git a/locales/ko_KR/market.json b/locales/ko_KR/market.json
new file mode 100644
index 000000000000..cd4ceb38eb86
--- /dev/null
+++ b/locales/ko_KR/market.json
@@ -0,0 +1,16 @@
+{
+ "addAgent": "๋ณด์กฐ ํ๋ก๊ทธ๋จ ์ถ๊ฐ",
+ "search": {
+ "placeholder": "๋ณด์กฐ ํ๋ก๊ทธ๋จ ์ด๋ฆ, ์ค๋ช
๋๋ ํค์๋ ๊ฒ์..."
+ },
+ "sidebar": {
+ "comment": "์๊ฒฌ",
+ "prompt": "ํ๋กฌํํธ",
+ "title": "๋ณด์กฐ ํ๋ก๊ทธ๋จ ์ธ๋ถ ์ ๋ณด"
+ },
+ "submitAgent": "๋ณด์กฐ ํ๋ก๊ทธ๋จ ์ ์ถ",
+ "title": {
+ "allAgents": "๋ชจ๋ ๋ณด์กฐ ํ๋ก๊ทธ๋จ",
+ "recentSubmits": "์ต๊ทผ ์ถ๊ฐ"
+ }
+}
diff --git a/locales/ko_KR/plugin.json b/locales/ko_KR/plugin.json
new file mode 100644
index 000000000000..2e7a9f947b0d
--- /dev/null
+++ b/locales/ko_KR/plugin.json
@@ -0,0 +1,107 @@
+{
+ "debug": {
+ "arguments": "ํจ์ ํธ์ถ ์ธ์",
+ "function_call": "ํจ์ ํธ์ถ",
+ "response": "์๋ต"
+ },
+ "dev": {
+ "confirmDeleteDevPlugin": "๋ก์ปฌ ํ๋ฌ๊ทธ์ธ์ ์ญ์ ํ์๊ฒ ์ต๋๊น? ์ญ์ ํ์๋ ๋ณต๊ตฌํ ์ ์์ต๋๋ค.",
+ "deleteSuccess": "ํ๋ฌ๊ทธ์ธ์ด ์ฑ๊ณต์ ์ผ๋ก ์ญ์ ๋์์ต๋๋ค.",
+ "manifest": {
+ "identifier": {
+ "desc": "ํ๋ฌ๊ทธ์ธ์ ๊ณ ์ ์๋ณ์",
+ "label": "์๋ณ์"
+ },
+ "mode": {
+ "local": "์๊ฐ์ ๊ตฌ์ฑ",
+ "local-tooltip": "์๊ฐ์ ๊ตฌ์ฑ์ ์ผ์์ ์ผ๋ก ์ง์๋์ง ์์ต๋๋ค.",
+ "url": "์จ๋ผ์ธ ๋งํฌ"
+ },
+ "name": {
+ "desc": "ํ๋ฌ๊ทธ์ธ ์ ๋ชฉ",
+ "label": "์ ๋ชฉ",
+ "placeholder": "๊ฒ์ ์์ง"
+ }
+ },
+ "meta": {
+ "author": {
+ "desc": "ํ๋ฌ๊ทธ์ธ ์์ฑ์",
+ "label": "์์ฑ์"
+ },
+ "avatar": {
+ "desc": "ํ๋ฌ๊ทธ์ธ ์์ด์ฝ์ผ๋ก๋ Emoji ๋๋ URL์ ์ฌ์ฉํ ์ ์์ต๋๋ค.",
+ "label": "์์ด์ฝ"
+ },
+ "description": {
+ "desc": "ํ๋ฌ๊ทธ์ธ ์ค๋ช
",
+ "label": "์ค๋ช
",
+ "placeholder": "๊ฒ์ ์์ง์์ ์ ๋ณด ๊ฐ์ ธ์ค๊ธฐ"
+ },
+ "formFieldRequired": "์ด ํ๋๋ ํ์ ์
๋ ฅ ์ฌํญ์
๋๋ค.",
+ "homepage": {
+ "desc": "ํ๋ฌ๊ทธ์ธ ํํ์ด์ง",
+ "label": "ํํ์ด์ง"
+ },
+ "identifier": {
+ "desc": "ํ๋ฌ๊ทธ์ธ์ ๊ณ ์ ์๋ณ์๋ manifest์์ ์๋์ผ๋ก ์ธ์๋ฉ๋๋ค.",
+ "errorDuplicate": "์๋ณ์๊ฐ ์ด๋ฏธ ์๋ ํ๋ฌ๊ทธ์ธ๊ณผ ์ค๋ณต๋์์ต๋๋ค. ์๋ณ์๋ฅผ ์์ ํด์ฃผ์ธ์.",
+ "label": "์๋ณ์",
+ "pattenErrorMessage": "์๋ฌธ์, ์ซ์, - ๋ฐ _๋ง ์
๋ ฅํ ์ ์์ต๋๋ค."
+ },
+ "manifest": {
+ "desc": "LobeChat์ ์ด ๋งํฌ๋ฅผ ํตํด ํ๋ฌ๊ทธ์ธ์ ์ค์นํฉ๋๋ค.",
+ "jsonInvalid": "manifest๊ฐ ๊ท์น์ ๋ง์ง ์์ต๋๋ค. ์ ํจ์ฑ ๊ฒ์ฌ ๊ฒฐ๊ณผ: \n\n {{error}}",
+ "label": "ํ๋ฌ๊ทธ์ธ ์ค๋ช
ํ์ผ URL ์ฃผ์",
+ "preview": "Manifest ๋ฏธ๋ฆฌ๋ณด๊ธฐ",
+ "refresh": "์๋ก ๊ณ ์นจ",
+ "requestError": "์ด ๋งํฌ๋ฅผ ์์ฒญํ๋ ์ค์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์ ํจํ ๋งํฌ๋ฅผ ์
๋ ฅํ๊ณ ๋งํฌ๊ฐ ํฌ๋ก์ค ๋๋ฉ์ธ ์ก์ธ์ค๋ฅผ ํ์ฉํ๋์ง ํ์ธํด์ฃผ์ธ์.",
+ "urlError": "์ด ๋งํฌ๋ JSON ํ์์ ๋ด์ฉ์ ๋ฐํํ์ง ์์ต๋๋ค. ์ ํจํ ๋งํฌ๋ฅผ ์
๋ ฅํด์ฃผ์ธ์."
+ },
+ "title": {
+ "desc": "ํ๋ฌ๊ทธ์ธ ์ ๋ชฉ",
+ "label": "์ ๋ชฉ",
+ "placeholder": "๊ฒ์ ์์ง"
+ }
+ },
+ "metaConfig": "ํ๋ฌ๊ทธ์ธ ๋ฉํ ์ ๋ณด ๊ตฌ์ฑ",
+ "modalDesc": "์ฌ์ฉ์ ์ ์ ํ๋ฌ๊ทธ์ธ์ ์ถ๊ฐํ๋ฉด ํ๋ฌ๊ทธ์ธ ๊ฐ๋ฐ ๊ฒ์ฆ ๋ฐ ์ธ์
์์ ์ง์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ํ๋ฌ๊ทธ์ธ ๊ฐ๋ฐ ๋ฌธ์๋ ์ฐธ์กฐํด์ฃผ์ธ์.",
+ "preview": {
+ "card": "ํ๋ฌ๊ทธ์ธ ๋ฏธ๋ฆฌ๋ณด๊ธฐ",
+ "desc": "ํ๋ฌ๊ทธ์ธ ์ค๋ช
๋ฏธ๋ฆฌ๋ณด๊ธฐ",
+ "title": "ํ๋ฌ๊ทธ์ธ ์ด๋ฆ ๋ฏธ๋ฆฌ๋ณด๊ธฐ"
+ },
+ "save": "์ ์ฅ",
+ "saveSuccess": "ํ๋ฌ๊ทธ์ธ ์ค์ ์ด ์ฑ๊ณต์ ์ผ๋ก ์ ์ฅ๋์์ต๋๋ค.",
+ "tabs": {
+ "manifest": "๊ธฐ๋ฅ ์ค๋ช
๋ชฉ๋ก (Manifest)",
+ "meta": "ํ๋ฌ๊ทธ์ธ ๋ฉํ ์ ๋ณด"
+ },
+ "title": "์ฌ์ฉ์ ์ ์ ํ๋ฌ๊ทธ์ธ ์ถ๊ฐ",
+ "update": "์
๋ฐ์ดํธ",
+ "updateSuccess": "ํ๋ฌ๊ทธ์ธ ์ค์ ์ด ์ฑ๊ณต์ ์ผ๋ก ์
๋ฐ์ดํธ๋์์ต๋๋ค."
+ },
+ "list": {
+ "item": {
+ "deprecated.title": "์ญ์ ๋จ",
+ "local.config": "๊ตฌ์ฑ",
+ "local.title": "์ฌ์ฉ์ ์ ์"
+ }
+ },
+ "loading": {
+ "content": "๋ฐ์ดํฐ ๊ฐ์ ธ์ค๋ ์ค...",
+ "plugin": "ํ๋ฌ๊ทธ์ธ ์คํ ์ค..."
+ },
+ "pluginList": "ํ๋ฌ๊ทธ์ธ ๋ชฉ๋ก",
+ "plugins": {
+ "unknown": "ํ๋ฌ๊ทธ์ธ ๊ฒ์ฌ ์ค..."
+ },
+ "setting": "ํ๋ฌ๊ทธ์ธ ์ค์ ",
+ "settings": {
+ "indexUrl": {
+ "title": "๋ง์ผ ์ธ๋ฑ์ค",
+ "tooltip": "์จ๋ผ์ธ ํธ์ง์ ์ง์๋์ง ์์ต๋๋ค. ๋ฐฐํฌ ํ๊ฒฝ ๋ณ์๋ฅผ ํตํด ์ค์ ํด์ฃผ์ธ์."
+ },
+ "modalDesc": "ํ๋ฌ๊ทธ์ธ ๋ง์ผ์ ์ฃผ์๋ฅผ ๊ตฌ์ฑํ๋ฉด ์ฌ์ฉ์ ์ ์ ํ๋ฌ๊ทธ์ธ ๋ง์ผ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.",
+ "title": "ํ๋ฌ๊ทธ์ธ ๋ง์ผ ์ค์ "
+ }
+}
diff --git a/locales/ko_KR/setting.json b/locales/ko_KR/setting.json
new file mode 100644
index 000000000000..e3b0ea9aec87
--- /dev/null
+++ b/locales/ko_KR/setting.json
@@ -0,0 +1,225 @@
+{
+ "danger": {
+ "clear": {
+ "action": "์ง๊ธ ์ง์ฐ๊ธฐ",
+ "confirm": "๋ชจ๋ ์ฑํ
๋ฐ์ดํฐ๋ฅผ ์ง์ฐ์๊ฒ ์ต๋๊น?",
+ "desc": "๋ชจ๋ ๋ํ ๋ฐ์ดํฐ๋ฅผ ์ง์๋๋ค.",
+ "success": "๋ชจ๋ ๋ํ ๋ฉ์์ง๊ฐ ์ง์์ก์ต๋๋ค.",
+ "title": "๋ชจ๋ ๋ํ ๋ฉ์์ง ์ง์ฐ๊ธฐ"
+ },
+ "reset": {
+ "action": "์ง๊ธ ์ฌ์ค์ ",
+ "confirm": "๋ชจ๋ ์ค์ ์ ์ฌ์ค์ ํ์๊ฒ ์ต๋๊น?",
+ "currentVersion": "ํ์ฌ ๋ฒ์ ",
+ "desc": "๋ชจ๋ ์ค์ ํญ๋ชฉ์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ฌ์ค์ ํฉ๋๋ค.",
+ "title": "๋ชจ๋ ์ค์ ์ฌ์ค์ "
+ }
+ },
+ "header": {
+ "global": "์ ์ญ ์ค์ ",
+ "session": "์ธ์
์ค์ ",
+ "sessionWithName": "์ธ์
์ค์ ยท {{name}}"
+ },
+ "llm": {
+ "AzureOpenAI": {
+ "endpoint": {
+ "desc": "Azure ํฌํธ์์ ๋ฆฌ์์ค๋ฅผ ํ์ธํ ๋ ์ด ๊ฐ์ 'ํค ๋ฐ ์๋ํฌ์ธํธ' ์น์
์์ ์ฐพ์ ์ ์์ต๋๋ค.",
+ "placeholder": "https://docs-test-001.openai.azure.com",
+ "title": "Azure API ์ฃผ์"
+ },
+ "models": {
+ "desc": "์ง์๋๋ ๋ชจ๋ธ",
+ "title": "๋ชจ๋ธ ๋ชฉ๋ก"
+ },
+ "title": "Azure OpenAI ์ค์ ",
+ "token": {
+ "desc": "Azure ํฌํธ์์ ๋ฆฌ์์ค๋ฅผ ํ์ธํ ๋ ์ด ๊ฐ์ 'ํค ๋ฐ ์๋ํฌ์ธํธ' ์น์
์์ ์ฐพ์ ์ ์์ต๋๋ค. KEY1 ๋๋ KEY2๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.",
+ "placeholder": "Azure API ํค",
+ "title": "API ํค"
+ }
+ },
+ "OpenAI": {
+ "azureApiVersion": {
+ "desc": "Azure์ API ๋ฒ์ ์
๋๋ค. YYYY-MM-DD ํ์์ ๋ฐ๋ฆ
๋๋ค. [์ต์ ๋ฒ์ ](https://learn.microsoft.com/ko-kr/azure/ai-services/openai/reference#chat-completions)์ ํ์ธํ์ธ์.",
+ "fetch": "๋ชฉ๋ก ๊ฐ์ ธ์ค๊ธฐ",
+ "title": "Azure API ๋ฒ์ "
+ },
+ "check": {
+ "button": "ํ์ธ",
+ "desc": "API ํค์ ํ๋ก์ ์ฃผ์๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์
๋ ฅ๋์๋์ง ํ
์คํธํฉ๋๋ค.",
+ "pass": "ํ์ธ ์๋ฃ",
+ "title": "์ฐ๊ฒฐ์ฑ ํ์ธ"
+ },
+ "endpoint": {
+ "desc": "๊ธฐ๋ณธ ์ฃผ์ ์ธ์๋ ๋ฐ๋์ http(s)://๋ฅผ ํฌํจํด์ผ ํฉ๋๋ค.",
+ "placeholder": "https://api.openai.com/v1",
+ "title": "์ธํฐํ์ด์ค ํ๋ก์ ์ฃผ์"
+ },
+ "models": {
+ "count": "์ด {{count}}๊ฐ์ ๋ชจ๋ธ ์ง์",
+ "desc": "์ง์๋๋ ๋ชจ๋ธ",
+ "fetch": "๋ชจ๋ธ ๋ชฉ๋ก ๊ฐ์ ธ์ค๊ธฐ",
+ "notSupport": "Azure OpenAI์์ ๋ชจ๋ธ ๋ชฉ๋ก์ ๋ณผ ์ ์์ต๋๋ค.",
+ "notSupportTip": "๋ฐฐํฌ ์ด๋ฆ๊ณผ ๋ชจ๋ธ ์ด๋ฆ์ด ์ผ์นํ๋์ง ํ์ธํด์ผ ํฉ๋๋ค.",
+ "refetch": "๋ชจ๋ธ ๋ชฉ๋ก ๋ค์ ๊ฐ์ ธ์ค๊ธฐ",
+ "title": "๋ชจ๋ธ ๋ชฉ๋ก"
+ },
+ "title": "OpenAI ์ค์ ",
+ "token": {
+ "desc": "์์ฒด OpenAI ํค ์ฌ์ฉ",
+ "placeholder": "OpenAI API ํค",
+ "title": "API ํค"
+ },
+ "useAzure": {
+ "desc": "Azure์์ ์ ๊ณตํ๋ OpenAI ์๋น์ค ์ฌ์ฉ",
+ "fetch": "๋ชฉ๋ก ๊ฐ์ ธ์ค๊ธฐ",
+ "serverConfig": "๊ด๋ฆฌ์๊ฐ ์๋ฒ์์ Azure OpenAI๋ฅผ ๊ตฌ์ฑํ์ผ๋ฏ๋ก ๋ณ๊ฒฝ์ด ๊ธ์ง๋์์ต๋๋ค.",
+ "title": "Azure OpenAI"
+ }
+ },
+ "waitingForMore": "๋ ๋ง์ ๋ชจ๋ธ์ด <1>๊ณํ ์ค1>์ ์์ผ๋ ๊ธฐ๋ํด์ฃผ์ธ์ โจ"
+ },
+ "settingAgent": {
+ "avatar": {
+ "title": "์๋ฐํ"
+ },
+ "backgroundColor": {
+ "title": "๋ฐฐ๊ฒฝ์"
+ },
+ "description": {
+ "placeholder": "๋์ฐ๋ฏธ ์ค๋ช
์ ์
๋ ฅํ์ธ์.",
+ "title": "๋์ฐ๋ฏธ ์ค๋ช
"
+ },
+ "name": {
+ "placeholder": "๋์ฐ๋ฏธ ์ด๋ฆ์ ์
๋ ฅํ์ธ์.",
+ "title": "์ด๋ฆ"
+ },
+ "prompt": {
+ "placeholder": "์ญํ ํ๋กฌํํธ ํํธ๋ฅผ ์
๋ ฅํ์ธ์.",
+ "title": "์ญํ ์ค์ "
+ },
+ "tag": {
+ "placeholder": "ํ๊ทธ๋ฅผ ์
๋ ฅํ์ธ์.",
+ "title": "ํ๊ทธ"
+ },
+ "title": "๋์ฐ๋ฏธ ์ ๋ณด"
+ },
+ "settingChat": {
+ "chatStyleType": {
+ "title": "์ฑํ
์ฐฝ ์คํ์ผ",
+ "type": {
+ "chat": "๋ํ ๋ชจ๋",
+ "docs": "๋ฌธ์ ๋ชจ๋"
+ }
+ },
+ "compressThreshold": {
+ "desc": "์์ถ๋์ง ์์ ์ด์ ๋ฉ์์ง๊ฐ์ด ๊ฐ๋ณด๋ค ํฌ๋ฉด ์์ถ๋ฉ๋๋ค.",
+ "title": "์์ถ ์๊ณ๊ฐ"
+ },
+ "enableCompressThreshold": {
+ "title": "์ด์ ๋ฉ์์ง ๊ธธ์ด ์์ถ ์ฌ์ฉ"
+ },
+ "enableHistoryCount": {
+ "alias": "์ ํ ์์",
+ "limited": "๋ํ ๋ฉ์์ง {{number}} ๊ฐ๋ง ํฌํจ",
+ "title": "๋ํ ๋ฉ์์ง ์ ํ",
+ "unlimited": "๋ํ ๋ฉ์์ง ์ ํ ์์"
+ },
+ "historyCount": {
+ "desc": "์์ฒญ๋น ํฌํจ๋๋ ์ด์ ๋ฉ์์ง ์",
+ "title": "ํฌํจ๋ ์ด์ ๋ฉ์์ง ์"
+ },
+ "inputTemplate": {
+ "desc": "์ฌ์ฉ์์ ์ต์ ๋ฉ์์ง๊ฐ์ด ํ
ํ๋ฆฟ์ ์ฑ์์ง๋๋ค.",
+ "placeholder": "์ฌ์ ์ฒ๋ฆฌ ํ
ํ๋ฆฟ {{text}}์(๋) ์ค์๊ฐ ์
๋ ฅ ์ ๋ณด๋ก ๋์ฒด๋ฉ๋๋ค.",
+ "title": "์ฌ์ฉ์ ์
๋ ฅ ์ฌ์ ์ฒ๋ฆฌ"
+ },
+ "title": "์ฑํ
์ค์ "
+ },
+ "settingModel": {
+ "enableMaxTokens": {
+ "title": "๋จ์ผ ์๋ต ์ ํ ์ฌ์ฉ"
+ },
+ "frequencyPenalty": {
+ "desc": "๊ฐ์ด ํด์๋ก ๋ฐ๋ณต ๋จ์ด๊ฐ ์ค์ด๋ญ๋๋ค.",
+ "title": "๋น๋ ํจ๋ํฐ"
+ },
+ "maxTokens": {
+ "desc": "๋จ์ผ ์ํธ ์์ฉ์ ์ฌ์ฉ๋๋ ์ต๋ ํ ํฐ ์",
+ "title": "๋จ์ผ ์๋ต ์ ํ"
+ },
+ "model": {
+ "desc": "ChatGPT ๋ชจ๋ธ",
+ "list": {
+ "gpt-3.5-turbo": "GPT 3.5",
+ "gpt-3.5-turbo-16k": "GPT 3.5 (16K)",
+ "gpt-4": "GPT 4",
+ "gpt-4-32k": "GPT 4 (32K)"
+ },
+ "title": "๋ชจ๋ธ"
+ },
+ "presencePenalty": {
+ "desc": "๊ฐ์ด ํด์๋ก ์๋ก์ด ์ฃผ์ ๋ก ํ์ฅ๋ ๊ฐ๋ฅ์ฑ์ด ๋์์ง๋๋ค.",
+ "title": "์ฃผ์ ์ ์ ๋"
+ },
+ "temperature": {
+ "desc": "๊ฐ์ด ํด์๋ก ์๋ต์ด ๋ ๋ฌด์์ ํด์ง๋๋ค.",
+ "title": "๋๋ค์ฑ",
+ "titleWithValue": "๋๋ค์ฑ {{value}}"
+ },
+ "title": "๋ชจ๋ธ ์ค์ ",
+ "topP": {
+ "desc": "๋๋ค์ฑ๊ณผ ์ ์ฌํ์ง๋ง ํจ๊ป ๋ณ๊ฒฝํ์ง ๋ง์ญ์์ค.",
+ "title": "์์ P ์ํ๋ง"
+ }
+ },
+ "settingPlugin": {
+ "add": "์ถ๊ฐ",
+ "addTooltip": "์ฌ์ฉ์ ์ ์ ํ๋ฌ๊ทธ์ธ ์ถ๊ฐ",
+ "clearDeprecated": "์ฌ์ฉ๋์ง ์๋ ํ๋ฌ๊ทธ์ธ ์ ๊ฑฐ",
+ "config": "{{id}} ํ๋ฌ๊ทธ์ธ ๊ตฌ์ฑ",
+ "settings": "ํ๋ฌ๊ทธ์ธ ๋ง์ผ ์ค์ ",
+ "title": "ํ๋ฌ๊ทธ์ธ ๋ชฉ๋ก"
+ },
+ "settingSystem": {
+ "accessCode": {
+ "desc": "๊ด๋ฆฌ์๊ฐ ์ํธ ์ก์ธ์ค๋ฅผ ํ์ฑํํ์ต๋๋ค.",
+ "placeholder": "์ก์ธ์ค ์ฝ๋๋ฅผ ์
๋ ฅํ์ธ์.",
+ "title": "์ก์ธ์ค ์ฝ๋"
+ },
+ "title": "์์คํ
์ค์ "
+ },
+ "settingTheme": {
+ "avatar": {
+ "title": "์๋ฐํ"
+ },
+ "fontSize": {
+ "desc": "์ฑํ
์ฝํ
์ธ ์ ๊ธ๊ผด ํฌ๊ธฐ",
+ "title": "๊ธ๊ผด ํฌ๊ธฐ"
+ },
+ "lang": {
+ "autoMode": "์์คํ
์ ๋ฐ๋ฆ",
+ "title": "์ธ์ด"
+ },
+ "neutralColor": {
+ "desc": "๋ค์ํ ์์ ๊ฒฝํฅ์ ์ค๋ฆฝ์ ์ธ ์ฌ์ฉ์ ์ ์",
+ "title": "์ค๋ฆฝ ์์"
+ },
+ "primaryColor": {
+ "desc": "์ฌ์ฉ์ ์ ์ ํ
๋ง ์์",
+ "title": "ํ
๋ง ์์"
+ },
+ "themeMode": {
+ "auto": "์๋",
+ "dark": "๋คํฌ",
+ "light": "๋ผ์ดํธ",
+ "title": "ํ
๋ง"
+ },
+ "title": "ํ
๋ง ์ค์ "
+ },
+ "tab": {
+ "agent": "๊ธฐ๋ณธ ๋์ฐ๋ฏธ",
+ "common": "์ผ๋ฐ ์ค์ ",
+ "llm": "์ธ์ด ๋ชจ๋ธ"
+ }
+}
diff --git a/locales/ko_KR/welcome.json b/locales/ko_KR/welcome.json
new file mode 100644
index 000000000000..8247b64d2f17
--- /dev/null
+++ b/locales/ko_KR/welcome.json
@@ -0,0 +1,14 @@
+{
+ "button": {
+ "import": "๊ตฌ์ฑ ๊ฐ์ ธ์ค๊ธฐ",
+ "start": "์ง๊ธ ์์"
+ },
+ "header": "ํ์ํฉ๋๋ค",
+ "pickAgent": "๋๋ ๋ค์ ๋์ฐ๋ฏธ ํ
ํ๋ฆฟ ์ค ํ๋๋ฅผ ์ ํํ์ธ์",
+ "skip": "์์ฑ ๊ฑด๋๋ฐ๊ธฐ",
+ "slogan": {
+ "desc1": "๋ ํด๋ฌ์คํฐ๋ฅผ ์์ํ์ฌ ์์ด๋์ด๋ฅผ ์๊ทนํ์ธ์. ๋น์ ์ ์ง๋ฅํ ์ด์์คํดํธ๊ฐ ํญ์ ์ฌ๊ธฐ์ ์์ต๋๋ค.",
+ "desc2": "์ฒซ ๋ฒ์งธ ์ด์์คํดํธ๋ฅผ ๋ง๋ค์ด ๋ณด์ธ์. ์์ํด ๋ด
์๋ค~",
+ "title": "๋ ๋๋ํ ๋๋ฅผ ์ํด ์ค์ค๋ก์๊ฒ ์ ๋ฌผํ์ธ์"
+ }
+}
diff --git a/public/icons/maskable-icon-192x192.png b/public/icons/maskable-icon-192x192.png
new file mode 100644
index 000000000000..8b1a6416bf61
Binary files /dev/null and b/public/icons/maskable-icon-192x192.png differ
diff --git a/public/icons/maskable-icon-512x512.png b/public/icons/maskable-icon-512x512.png
new file mode 100644
index 000000000000..47ae021586d9
Binary files /dev/null and b/public/icons/maskable-icon-512x512.png differ
diff --git a/public/manifest.json b/public/manifest.json
index 3e2f10295d8c..ea6bd1f1ac7b 100644
--- a/public/manifest.json
+++ b/public/manifest.json
@@ -6,12 +6,26 @@
{
"src": "/icons/icon-192x192.png",
"sizes": "192x192",
- "type": "image/png"
+ "type": "image/png",
+ "purpose": "any"
+ },
+ {
+ "src": "/icons/maskable-icon-192x192.png",
+ "sizes": "192x192",
+ "type": "image/png",
+ "purpose": "maskable"
},
{
"src": "/icons/icon-512x512.png",
"sizes": "512x512",
- "type": "image/png"
+ "type": "image/png",
+ "purpose": "any"
+ },
+ {
+ "src": "/icons/maskable-icon-512x512.png",
+ "sizes": "512x512",
+ "type": "image/png",
+ "purpose": "maskable"
}
],
"id": "/",
@@ -20,13 +34,28 @@
"scope": "/",
"screenshots": [
{
- "src": "https://registry.npmmirror.com/@lobehub/assets-favicons/1.4.0/files/assets/og-960x540.png",
- "sizes": "960x540",
+ "src": "/screenshots/screenshot-1.png",
+ "sizes": "750x1334",
+ "type": "image/png"
+ },
+ {
+ "src": "/screenshots/screenshot-2.png",
+ "sizes": "750x1334",
+ "type": "image/png"
+ },
+ {
+ "src": "/screenshots/screenshot-3.png",
+ "sizes": "750x1334",
+ "type": "image/png"
+ },
+ {
+ "src": "/screenshots/screenshot-4.png",
+ "sizes": "750x1334",
"type": "image/png"
}
],
"short_name": "LobeChat",
"splash_pages": null,
- "start_url": "/",
+ "start_url": ".",
"theme_color": "#000000"
}
diff --git a/public/screenshots/screenshot-1.png b/public/screenshots/screenshot-1.png
new file mode 100644
index 000000000000..207e57fb4d72
Binary files /dev/null and b/public/screenshots/screenshot-1.png differ
diff --git a/public/screenshots/screenshot-2.png b/public/screenshots/screenshot-2.png
new file mode 100644
index 000000000000..a6f9d3e95ddb
Binary files /dev/null and b/public/screenshots/screenshot-2.png differ
diff --git a/public/screenshots/screenshot-3.png b/public/screenshots/screenshot-3.png
new file mode 100644
index 000000000000..170597363382
Binary files /dev/null and b/public/screenshots/screenshot-3.png differ
diff --git a/public/screenshots/screenshot-4.png b/public/screenshots/screenshot-4.png
new file mode 100644
index 000000000000..4772d31ec990
Binary files /dev/null and b/public/screenshots/screenshot-4.png differ
diff --git a/src/app/chat/features/ChatInputContent/Footer/SaveTopic.tsx b/src/app/chat/features/ChatInputContent/Footer/SaveTopic.tsx
index ad10d19a5184..9af68c7fca73 100644
--- a/src/app/chat/features/ChatInputContent/Footer/SaveTopic.tsx
+++ b/src/app/chat/features/ChatInputContent/Footer/SaveTopic.tsx
@@ -19,7 +19,7 @@ const SaveTopic = memo(() => {
return (
-
+
);
});
diff --git a/src/app/welcome/(desktop)/features/Footer.tsx b/src/app/welcome/(desktop)/features/Footer.tsx
index ff257d0c0edd..5979c1273eb2 100644
--- a/src/app/welcome/(desktop)/features/Footer.tsx
+++ b/src/app/welcome/(desktop)/features/Footer.tsx
@@ -6,7 +6,7 @@ import { Book, Github } from 'lucide-react';
import { memo } from 'react';
import { Flexbox } from 'react-layout-kit';
-import { CHANGELOG, DISCORD, GITHUB } from '@/const/url';
+import { DISCORD, GITHUB, WIKI } from '@/const/url';
const Footer = memo(() => {
const theme = useTheme();
@@ -21,9 +21,20 @@ const Footer = memo(() => {
icon={DiscordIcon}
onClick={() => window.open(DISCORD, '__blank')}
size={'site'}
+ title={'Discord'}
+ />
+ window.open(WIKI, '__blank')}
+ size={'site'}
+ title={'Wiki'}
+ />
+ window.open(GITHUB, '__blank')}
+ size={'site'}
+ title={'GitHub'}
/>
- window.open(CHANGELOG, '__blank')} size={'site'} />
- window.open(GITHUB, '__blank')} size={'site'} />
);
diff --git a/src/app/welcome/(desktop)/layout.desktop.tsx b/src/app/welcome/(desktop)/layout.desktop.tsx
index 717b50c0eba5..6a6877f45d25 100644
--- a/src/app/welcome/(desktop)/layout.desktop.tsx
+++ b/src/app/welcome/(desktop)/layout.desktop.tsx
@@ -1,5 +1,4 @@
import { Logo } from '@lobehub/ui';
-import Link from 'next/link';
import { PropsWithChildren, memo } from 'react';
import { Center, Flexbox } from 'react-layout-kit';
@@ -18,9 +17,7 @@ const Desktop = memo(({ children }) => {
horizontal
style={{ position: 'relative' }}
>
-
-
-
+
{children}
diff --git a/src/const/url.ts b/src/const/url.ts
index 84bce8e93ea9..550fa2d37542 100644
--- a/src/const/url.ts
+++ b/src/const/url.ts
@@ -8,7 +8,8 @@ import { DEFAULT_LANG, checkLang } from './locale';
import { INBOX_SESSION_ID } from './session';
export const GITHUB = pkg.homepage;
-export const CHANGELOG = `${pkg.homepage}/blob/master/CHANGELOG.md`;
+export const CHANGELOG = urlJoin(GITHUB, 'blob/master/CHANGELOG.md');
+export const WIKI = urlJoin(GITHUB, 'wiki');
export const ABOUT = pkg.homepage;
export const FEEDBACK = pkg.bugs.url;
export const DISCORD = 'https://discord.gg/AYFPHvv2jT';
diff --git a/src/features/SideBar/BottomActions.tsx b/src/features/SideBar/BottomActions.tsx
index 318904767549..1ae8345cdacd 100644
--- a/src/features/SideBar/BottomActions.tsx
+++ b/src/features/SideBar/BottomActions.tsx
@@ -1,6 +1,7 @@
import { ActionIcon, DiscordIcon, Icon } from '@lobehub/ui';
import { Badge, ConfigProvider, Dropdown, MenuProps, Upload } from 'antd';
import {
+ Book,
Feather,
FileClock,
Github,
@@ -15,7 +16,7 @@ import { memo } from 'react';
import { useTranslation } from 'react-i18next';
import { Flexbox } from 'react-layout-kit';
-import { ABOUT, CHANGELOG, DISCORD, FEEDBACK, GITHUB } from '@/const/url';
+import { ABOUT, CHANGELOG, DISCORD, FEEDBACK, GITHUB, WIKI } from '@/const/url';
import { useExportConfig } from '@/hooks/useExportConfig';
import { useImportConfig } from '@/hooks/useImportConfig';
import { GlobalStore, useGlobalStore } from '@/store/global';
@@ -94,6 +95,12 @@ const BottomActions = memo(({ tab, setTab }) => {
label: t('changelog'),
onClick: () => window.open(CHANGELOG, '__blank'),
},
+ {
+ icon: ,
+ key: 'wiki',
+ label: 'WIKI',
+ onClick: () => window.open(WIKI, '__blank'),
+ },
{
icon: ,
key: 'about',
@@ -130,7 +137,7 @@ const BottomActions = memo(({ tab, setTab }) => {
icon={Github}
onClick={() => window.open(GITHUB, '__blank')}
placement={'right'}
- title={'Github'}
+ title={'GitHub'}
/>
{hasNewVersion ? (
diff --git a/src/layout/GlobalLayout/AppTheme.tsx b/src/layout/GlobalLayout/AppTheme.tsx
index 50ac9724c30a..e70e9132e0b0 100644
--- a/src/layout/GlobalLayout/AppTheme.tsx
+++ b/src/layout/GlobalLayout/AppTheme.tsx
@@ -20,9 +20,9 @@ export interface AppThemeProps {
const AppTheme = memo(
({ children, defaultAppearance, defaultPrimaryColor, defaultNeutralColor }) => {
- // console.log('server:appearance', defaultAppearance);
- // console.log('server:primaryColor', defaultPrimaryColor);
- // console.log('server:neutralColor', defaultNeutralColor);
+ // console.debug('server:appearance', defaultAppearance);
+ // console.debug('server:primaryColor', defaultPrimaryColor);
+ // console.debug('server:neutralColor', defaultNeutralColor);
const themeMode = useGlobalStore((s) => s.settings.themeMode);
const [primaryColor, neutralColor] = useGlobalStore((s) => [
diff --git a/src/layout/GlobalLayout/Locale.tsx b/src/layout/GlobalLayout/Locale.tsx
index 1a6d8266638c..da09b489fe01 100644
--- a/src/layout/GlobalLayout/Locale.tsx
+++ b/src/layout/GlobalLayout/Locale.tsx
@@ -20,9 +20,9 @@ const InnerLocale = memo(({ children, lang }) => {
} else {
// if on browser side, init i18n instance only once
if (!i18n.instance.isInitialized)
- // console.log('locale', lang);
+ // console.debug('locale', lang);
i18n.init().then(() => {
- // console.log('inited.');
+ // console.debug('inited.');
});
}
diff --git a/src/locales/options.ts b/src/locales/options.ts
index 7097719af670..b3801d9b825d 100644
--- a/src/locales/options.ts
+++ b/src/locales/options.ts
@@ -1,4 +1,3 @@
-
import type { Locales } from '@/types/locale';
type LocaleOptions = {
@@ -19,6 +18,14 @@ export const localeOptions: LocaleOptions = [
label: 'English',
value: 'en-US',
},
+ {
+ label: 'ๆฅๆฌ่ช',
+ value: 'ja-JP',
+ },
+ {
+ label: 'ํ๊ตญ์ด',
+ value: 'ko-KR',
+ },
{
label: 'Russian',
value: 'ru-RU',
diff --git a/src/locales/resources/index.ts b/src/locales/resources/index.ts
index 8ce7194bae05..c1d961d42ee7 100644
--- a/src/locales/resources/index.ts
+++ b/src/locales/resources/index.ts
@@ -1,10 +1,14 @@
import en_US from './en_US';
+import ja_JP from './ja_JP';
+import ko_KR from './ko_KR';
import ru_RU from './ru_RU';
import zh_CN from './zh_CN';
import zh_TW from './zh_TW';
const resources = {
'en-US': en_US,
+ 'ja-JP': ja_JP,
+ 'ko-KR': ko_KR,
'ru-RU': ru_RU,
'zh-CN': zh_CN,
'zh-TW': zh_TW,
diff --git a/src/locales/resources/ja_JP.ts b/src/locales/resources/ja_JP.ts
new file mode 100644
index 000000000000..77c08eee3327
--- /dev/null
+++ b/src/locales/resources/ja_JP.ts
@@ -0,0 +1,19 @@
+import common from '../../../locales/ja_JP/common.json';
+import empty from '../../../locales/ja_JP/empty.json';
+import error from '../../../locales/ja_JP/error.json';
+import market from '../../../locales/ja_JP/market.json';
+import plugin from '../../../locales/ja_JP/plugin.json';
+import setting from '../../../locales/ja_JP/setting.json';
+import welcome from '../../../locales/ja_JP/welcome.json';
+
+const resources = {
+ common,
+ empty,
+ error,
+ market,
+ plugin,
+ setting,
+ welcome,
+} as const;
+
+export default resources;
diff --git a/src/locales/resources/ko_KR.ts b/src/locales/resources/ko_KR.ts
new file mode 100644
index 000000000000..b5f10be2b12b
--- /dev/null
+++ b/src/locales/resources/ko_KR.ts
@@ -0,0 +1,19 @@
+import common from '../../../locales/ko_KR/common.json';
+import empty from '../../../locales/ko_KR/empty.json';
+import error from '../../../locales/ko_KR/error.json';
+import market from '../../../locales/ko_KR/market.json';
+import plugin from '../../../locales/ko_KR/plugin.json';
+import setting from '../../../locales/ko_KR/setting.json';
+import welcome from '../../../locales/ko_KR/welcome.json';
+
+const resources = {
+ common,
+ empty,
+ error,
+ market,
+ plugin,
+ setting,
+ welcome,
+} as const;
+
+export default resources;
diff --git a/src/utils/VersionController.ts b/src/utils/VersionController.ts
index ff1395b3f179..e03de38e8263 100644
--- a/src/utils/VersionController.ts
+++ b/src/utils/VersionController.ts
@@ -56,7 +56,7 @@ export class VersionController {
nextData = migration.migrate(nextData);
nextData.version += 1;
- console.log('่ฟ็งปๅจ๏ผ', migration, 'ๆฐๆฎ๏ผ', nextData, '่ฟ็งปๅ็ๆฌ:', nextData.version);
+ console.debug('่ฟ็งปๅจ๏ผ', migration, 'ๆฐๆฎ๏ผ', nextData, '่ฟ็งปๅ็ๆฌ:', nextData.version);
}
return nextData;
diff --git a/src/utils/responsive.ts b/src/utils/responsive.ts
index b661fd9336ac..0434bd3bc3f4 100644
--- a/src/utils/responsive.ts
+++ b/src/utils/responsive.ts
@@ -12,7 +12,7 @@ export const isMobileDevice = () => {
const { get } = headers();
const ua = get('user-agent');
- // console.log(ua);
+ // console.debug(ua);
const device = new UAParser(ua || '').getDevice();
return device.type === 'mobile';