mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-07-18 02:16:07 +00:00
chore: add more language supports
This commit is contained in:
@@ -25,6 +25,15 @@ class I18nString(pydantic.BaseModel):
|
|||||||
ja_JP: typing.Optional[str] = None
|
ja_JP: typing.Optional[str] = None
|
||||||
"""日文"""
|
"""日文"""
|
||||||
|
|
||||||
|
th_TH: typing.Optional[str] = None
|
||||||
|
"""泰文"""
|
||||||
|
|
||||||
|
vi_VN: typing.Optional[str] = None
|
||||||
|
"""越南文"""
|
||||||
|
|
||||||
|
es_ES: typing.Optional[str] = None
|
||||||
|
"""西班牙文"""
|
||||||
|
|
||||||
def to_dict(self) -> dict:
|
def to_dict(self) -> dict:
|
||||||
"""转换为字典"""
|
"""转换为字典"""
|
||||||
dic = {}
|
dic = {}
|
||||||
@@ -36,6 +45,12 @@ class I18nString(pydantic.BaseModel):
|
|||||||
dic['zh_Hant'] = self.zh_Hant
|
dic['zh_Hant'] = self.zh_Hant
|
||||||
if self.ja_JP is not None:
|
if self.ja_JP is not None:
|
||||||
dic['ja_JP'] = self.ja_JP
|
dic['ja_JP'] = self.ja_JP
|
||||||
|
if self.th_TH is not None:
|
||||||
|
dic['th_TH'] = self.th_TH
|
||||||
|
if self.vi_VN is not None:
|
||||||
|
dic['vi_VN'] = self.vi_VN
|
||||||
|
if self.es_ES is not None:
|
||||||
|
dic['es_ES'] = self.es_ES
|
||||||
return dic
|
return dic
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -7,11 +7,17 @@ metadata:
|
|||||||
zh_Hans: Discord
|
zh_Hans: Discord
|
||||||
zh_Hant: Discord
|
zh_Hant: Discord
|
||||||
ja_JP: Discord
|
ja_JP: Discord
|
||||||
|
th_TH: Discord
|
||||||
|
vi_VN: Discord
|
||||||
|
es_ES: Discord
|
||||||
description:
|
description:
|
||||||
en_US: Discord Adapter
|
en_US: Discord Adapter
|
||||||
zh_Hans: Discord 适配器,需要可连接 Discord 服务器的网络环境
|
zh_Hans: Discord 适配器,需要可连接 Discord 服务器的网络环境
|
||||||
zh_Hant: Discord 適配器,需要可連線 Discord 伺服器的網路環境
|
zh_Hant: Discord 適配器,需要可連線 Discord 伺服器的網路環境
|
||||||
ja_JP: Discord アダプター、Discord サーバーに接続可能なネットワーク環境が必要です
|
ja_JP: Discord アダプター、Discord サーバーに接続可能なネットワーク環境が必要です
|
||||||
|
th_TH: อะแดปเตอร์ Discord ต้องการสภาพแวดล้อมเครือข่ายที่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ Discord ได้
|
||||||
|
vi_VN: Bộ điều hợp Discord, cần môi trường mạng có thể kết nối với máy chủ Discord
|
||||||
|
es_ES: Adaptador de Discord, requiere un entorno de red con acceso al servidor de Discord
|
||||||
icon: discord.svg
|
icon: discord.svg
|
||||||
spec:
|
spec:
|
||||||
categories:
|
categories:
|
||||||
@@ -24,6 +30,9 @@ spec:
|
|||||||
zh_Hans: 客户端ID
|
zh_Hans: 客户端ID
|
||||||
zh_Hant: 用戶端ID
|
zh_Hant: 用戶端ID
|
||||||
ja_JP: クライアント ID
|
ja_JP: クライアント ID
|
||||||
|
th_TH: รหัสไคลเอนต์
|
||||||
|
vi_VN: ID khách hàng
|
||||||
|
es_ES: ID de cliente
|
||||||
type: string
|
type: string
|
||||||
required: true
|
required: true
|
||||||
default: ""
|
default: ""
|
||||||
@@ -33,6 +42,9 @@ spec:
|
|||||||
zh_Hans: 令牌
|
zh_Hans: 令牌
|
||||||
zh_Hant: 令牌
|
zh_Hant: 令牌
|
||||||
ja_JP: トークン
|
ja_JP: トークン
|
||||||
|
th_TH: โทเค็น
|
||||||
|
vi_VN: Mã thông báo
|
||||||
|
es_ES: Token
|
||||||
type: string
|
type: string
|
||||||
required: true
|
required: true
|
||||||
default: ""
|
default: ""
|
||||||
|
|||||||
@@ -6,11 +6,17 @@ metadata:
|
|||||||
en_US: LINE
|
en_US: LINE
|
||||||
zh_Hans: LINE
|
zh_Hans: LINE
|
||||||
zh_Hant: LINE
|
zh_Hant: LINE
|
||||||
|
th_TH: LINE
|
||||||
|
vi_VN: LINE
|
||||||
|
es_ES: LINE
|
||||||
description:
|
description:
|
||||||
en_US: LINE Adapter, requires a public URL to receive LINE message pushes, please refer to the documentation for usage details
|
en_US: LINE Adapter, requires a public URL to receive LINE message pushes, please refer to the documentation for usage details
|
||||||
zh_Hans: LINE适配器,需要公网地址以接收 LINE 消息推送,请查看文档了解使用方式
|
zh_Hans: LINE适配器,需要公网地址以接收 LINE 消息推送,请查看文档了解使用方式
|
||||||
zh_Hant: LINE 適配器,需要公網地址以接收 LINE 訊息推送,請查看文件了解使用方式
|
zh_Hant: LINE 適配器,需要公網地址以接收 LINE 訊息推送,請查看文件了解使用方式
|
||||||
ja_JP: LINEアダプター、LINEのメッセージプッシュを受信するためにパブリックURLが必要です。使用方法の詳細については、ドキュメントを参照してください。
|
ja_JP: LINEアダプター、LINEのメッセージプッシュを受信するためにパブリックURLが必要です。使用方法の詳細については、ドキュメントを参照してください。
|
||||||
|
th_TH: อะแดปเตอร์ LINE ต้องการ URL สาธารณะเพื่อรับการแจ้งเตือนข้อความจาก LINE โปรดดูเอกสารประกอบสำหรับรายละเอียดการใช้งาน
|
||||||
|
vi_VN: Bộ điều hợp LINE, cần URL công cộng để nhận thông báo tin nhắn LINE, vui lòng xem tài liệu để biết chi tiết cách sử dụng
|
||||||
|
es_ES: Adaptador de LINE, requiere una URL pública para recibir notificaciones de mensajes de LINE, consulte la documentación para obtener detalles de uso
|
||||||
icon: line.png
|
icon: line.png
|
||||||
spec:
|
spec:
|
||||||
categories:
|
categories:
|
||||||
@@ -22,11 +28,17 @@ spec:
|
|||||||
zh_Hans: Webhook 回调地址
|
zh_Hans: Webhook 回调地址
|
||||||
ja_JP: Webhook コールバック URL
|
ja_JP: Webhook コールバック URL
|
||||||
zh_Hant: Webhook 回調地址
|
zh_Hant: Webhook 回調地址
|
||||||
|
th_TH: URL การเรียกกลับ Webhook
|
||||||
|
vi_VN: URL gọi lại Webhook
|
||||||
|
es_ES: URL de devolución de llamada Webhook
|
||||||
description:
|
description:
|
||||||
en_US: Copy this URL and paste it into your LINE channel's webhook configuration
|
en_US: Copy this URL and paste it into your LINE channel's webhook configuration
|
||||||
zh_Hans: 复制此地址并粘贴到 LINE 频道的 Webhook 配置中
|
zh_Hans: 复制此地址并粘贴到 LINE 频道的 Webhook 配置中
|
||||||
ja_JP: この URL をコピーして LINE チャンネルの Webhook 設定に貼り付けてください
|
ja_JP: この URL をコピーして LINE チャンネルの Webhook 設定に貼り付けてください
|
||||||
zh_Hant: 複製此地址並貼到 LINE 頻道的 Webhook 設定中
|
zh_Hant: 複製此地址並貼到 LINE 頻道的 Webhook 設定中
|
||||||
|
th_TH: คัดลอก URL นี้แล้ววางในการตั้งค่า Webhook ของช่อง LINE ของคุณ
|
||||||
|
vi_VN: Sao chép URL này và dán vào cấu hình webhook của kênh LINE của bạn
|
||||||
|
es_ES: Copie esta URL y péguela en la configuración de webhook de su canal LINE
|
||||||
type: webhook-url
|
type: webhook-url
|
||||||
required: false
|
required: false
|
||||||
default: ""
|
default: ""
|
||||||
@@ -36,6 +48,9 @@ spec:
|
|||||||
zh_Hans: 频道访问令牌
|
zh_Hans: 频道访问令牌
|
||||||
ja_JP: チャンネルアクセストークン
|
ja_JP: チャンネルアクセストークン
|
||||||
zh_Hant: 頻道存取令牌
|
zh_Hant: 頻道存取令牌
|
||||||
|
th_TH: โทเค็นการเข้าถึงช่อง
|
||||||
|
vi_VN: Mã truy cập kênh
|
||||||
|
es_ES: Token de acceso del canal
|
||||||
type: string
|
type: string
|
||||||
required: true
|
required: true
|
||||||
default: ""
|
default: ""
|
||||||
@@ -45,11 +60,17 @@ spec:
|
|||||||
zh_Hans: 消息密钥
|
zh_Hans: 消息密钥
|
||||||
ja_JP: チャンネルシークレット
|
ja_JP: チャンネルシークレット
|
||||||
zh_Hant: 訊息密鑰
|
zh_Hant: 訊息密鑰
|
||||||
|
th_TH: รหัสลับช่อง
|
||||||
|
vi_VN: Khóa bí mật kênh
|
||||||
|
es_ES: Secreto del canal
|
||||||
description:
|
description:
|
||||||
en_US: Only valid when webhook mode is enabled, please fill in the encrypt key
|
en_US: Only valid when webhook mode is enabled, please fill in the encrypt key
|
||||||
zh_Hans: 请填写加密密钥
|
zh_Hans: 请填写加密密钥
|
||||||
ja_JP: Webhookモードが有効な場合にのみ、暗号化キーを入力してください
|
ja_JP: Webhookモードが有効な場合にのみ、暗号化キーを入力してください
|
||||||
zh_Hant: 請填寫加密密鑰
|
zh_Hant: 請填寫加密密鑰
|
||||||
|
th_TH: กรุณากรอกคีย์เข้ารหัส
|
||||||
|
vi_VN: Vui lòng điền khóa mã hóa
|
||||||
|
es_ES: Por favor, introduzca la clave de cifrado
|
||||||
type: string
|
type: string
|
||||||
required: true
|
required: true
|
||||||
default: ""
|
default: ""
|
||||||
|
|||||||
@@ -6,10 +6,16 @@ metadata:
|
|||||||
en_US: Satori
|
en_US: Satori
|
||||||
zh_Hans: Satori
|
zh_Hans: Satori
|
||||||
zh_Hant: Satori
|
zh_Hant: Satori
|
||||||
|
th_TH: Satori
|
||||||
|
vi_VN: Satori
|
||||||
|
es_ES: Satori
|
||||||
description:
|
description:
|
||||||
en_US: SatoriAdapter
|
en_US: SatoriAdapter
|
||||||
zh_Hans: Satori 协议适配器,支持多种平台的接入,请查看文档了解使用方式
|
zh_Hans: Satori 协议适配器,支持多种平台的接入,请查看文档了解使用方式
|
||||||
zh_Hant: Satori 協定適配器,支援多種平台的接入,請查看文件了解使用方式
|
zh_Hant: Satori 協定適配器,支援多種平台的接入,請查看文件了解使用方式
|
||||||
|
th_TH: อะแดปเตอร์โปรโตคอล Satori รองรับการเชื่อมต่อหลายแพลตฟอร์ม โปรดดูเอกสารประกอบสำหรับวิธีการใช้งาน
|
||||||
|
vi_VN: Bộ điều hợp giao thức Satori, hỗ trợ kết nối nhiều nền tảng, vui lòng xem tài liệu để biết cách sử dụng
|
||||||
|
es_ES: Adaptador del protocolo Satori, soporta acceso a múltiples plataformas, consulte la documentación para obtener instrucciones de uso
|
||||||
icon: satori.png
|
icon: satori.png
|
||||||
spec:
|
spec:
|
||||||
categories:
|
categories:
|
||||||
@@ -20,6 +26,9 @@ spec:
|
|||||||
en_US: Platform
|
en_US: Platform
|
||||||
zh_Hans: 平台名称
|
zh_Hans: 平台名称
|
||||||
zh_Hant: 平台名稱
|
zh_Hant: 平台名稱
|
||||||
|
th_TH: ชื่อแพลตฟอร์ม
|
||||||
|
vi_VN: Tên nền tảng
|
||||||
|
es_ES: Nombre de la plataforma
|
||||||
type: string
|
type: string
|
||||||
required: true
|
required: true
|
||||||
default: "llonebot"
|
default: "llonebot"
|
||||||
@@ -27,11 +36,17 @@ spec:
|
|||||||
en_US: The platform name (e.g., llonebot, discord, telegram)
|
en_US: The platform name (e.g., llonebot, discord, telegram)
|
||||||
zh_Hans: 平台名称(如 llonebot, discord, telegram)
|
zh_Hans: 平台名称(如 llonebot, discord, telegram)
|
||||||
zh_Hant: 平台名稱(如 llonebot、discord、telegram)
|
zh_Hant: 平台名稱(如 llonebot、discord、telegram)
|
||||||
|
th_TH: ชื่อแพลตฟอร์ม (เช่น llonebot, discord, telegram)
|
||||||
|
vi_VN: Tên nền tảng (ví dụ: llonebot, discord, telegram)
|
||||||
|
es_ES: El nombre de la plataforma (p. ej., llonebot, discord, telegram)
|
||||||
- name: host
|
- name: host
|
||||||
label:
|
label:
|
||||||
en_US: Host
|
en_US: Host
|
||||||
zh_Hans: 主机地址
|
zh_Hans: 主机地址
|
||||||
zh_Hant: 主機地址
|
zh_Hant: 主機地址
|
||||||
|
th_TH: ที่อยู่โฮสต์
|
||||||
|
vi_VN: Địa chỉ máy chủ
|
||||||
|
es_ES: Dirección del host
|
||||||
type: string
|
type: string
|
||||||
required: true
|
required: true
|
||||||
default: "127.0.0.1"
|
default: "127.0.0.1"
|
||||||
@@ -39,11 +54,17 @@ spec:
|
|||||||
en_US: The host address of LLOneBot Satori server (e.g., 127.0.0.1, localhost, 192.168.1.100)
|
en_US: The host address of LLOneBot Satori server (e.g., 127.0.0.1, localhost, 192.168.1.100)
|
||||||
zh_Hans: LLOneBot Satori服务器的主机地址(如 127.0.0.1, localhost, 192.168.1.100)
|
zh_Hans: LLOneBot Satori服务器的主机地址(如 127.0.0.1, localhost, 192.168.1.100)
|
||||||
zh_Hant: LLOneBot Satori 伺服器的主機地址(如 127.0.0.1、localhost、192.168.1.100)
|
zh_Hant: LLOneBot Satori 伺服器的主機地址(如 127.0.0.1、localhost、192.168.1.100)
|
||||||
|
th_TH: ที่อยู่โฮสต์ของเซิร์ฟเวอร์ LLOneBot Satori (เช่น 127.0.0.1, localhost, 192.168.1.100)
|
||||||
|
vi_VN: Địa chỉ máy chủ LLOneBot Satori (ví dụ: 127.0.0.1, localhost, 192.168.1.100)
|
||||||
|
es_ES: La dirección del host del servidor LLOneBot Satori (p. ej., 127.0.0.1, localhost, 192.168.1.100)
|
||||||
- name: port
|
- name: port
|
||||||
label:
|
label:
|
||||||
en_US: Port
|
en_US: Port
|
||||||
zh_Hans: 监听端口
|
zh_Hans: 监听端口
|
||||||
zh_Hant: 監聽連接埠
|
zh_Hant: 監聽連接埠
|
||||||
|
th_TH: พอร์ต
|
||||||
|
vi_VN: Cổng
|
||||||
|
es_ES: Puerto
|
||||||
type: integer
|
type: integer
|
||||||
required: true
|
required: true
|
||||||
default: 5600
|
default: 5600
|
||||||
@@ -52,6 +73,9 @@ spec:
|
|||||||
en_US: Satori API Endpoint
|
en_US: Satori API Endpoint
|
||||||
zh_Hans: Satori API 终结点
|
zh_Hans: Satori API 终结点
|
||||||
zh_Hant: Satori API 端點
|
zh_Hant: Satori API 端點
|
||||||
|
th_TH: จุดปลาย Satori API
|
||||||
|
vi_VN: Điểm cuối Satori API
|
||||||
|
es_ES: Punto de acceso de la API Satori
|
||||||
type: string
|
type: string
|
||||||
required: true
|
required: true
|
||||||
default: "http://localhost:5600/v1"
|
default: "http://localhost:5600/v1"
|
||||||
@@ -60,6 +84,9 @@ spec:
|
|||||||
en_US: Satori WebSocket Endpoint
|
en_US: Satori WebSocket Endpoint
|
||||||
zh_Hans: Satori WebSocket 终结点
|
zh_Hans: Satori WebSocket 终结点
|
||||||
zh_Hant: Satori WebSocket 端點
|
zh_Hant: Satori WebSocket 端點
|
||||||
|
th_TH: จุดปลาย Satori WebSocket
|
||||||
|
vi_VN: Điểm cuối Satori WebSocket
|
||||||
|
es_ES: Punto de acceso WebSocket de Satori
|
||||||
type: string
|
type: string
|
||||||
required: true
|
required: true
|
||||||
default: "ws://localhost:5600/v1/events"
|
default: "ws://localhost:5600/v1/events"
|
||||||
@@ -68,6 +95,9 @@ spec:
|
|||||||
en_US: Token
|
en_US: Token
|
||||||
zh_Hans: 令牌
|
zh_Hans: 令牌
|
||||||
zh_Hant: 令牌
|
zh_Hant: 令牌
|
||||||
|
th_TH: โทเค็น
|
||||||
|
vi_VN: Mã thông báo
|
||||||
|
es_ES: Token
|
||||||
type: string
|
type: string
|
||||||
required: true
|
required: true
|
||||||
default: ""
|
default: ""
|
||||||
|
|||||||
@@ -7,11 +7,17 @@ metadata:
|
|||||||
zh_Hans: Slack
|
zh_Hans: Slack
|
||||||
zh_Hant: Slack
|
zh_Hant: Slack
|
||||||
ja_JP: Slack
|
ja_JP: Slack
|
||||||
|
th_TH: Slack
|
||||||
|
vi_VN: Slack
|
||||||
|
es_ES: Slack
|
||||||
description:
|
description:
|
||||||
en_US: Slack Adapter
|
en_US: Slack Adapter
|
||||||
zh_Hans: Slack 适配器,需要公网地址以接收 Slack 消息推送,请查看文档了解使用方式
|
zh_Hans: Slack 适配器,需要公网地址以接收 Slack 消息推送,请查看文档了解使用方式
|
||||||
zh_Hant: Slack 適配器,需要公網地址以接收 Slack 訊息推送,請查看文件了解使用方式
|
zh_Hant: Slack 適配器,需要公網地址以接收 Slack 訊息推送,請查看文件了解使用方式
|
||||||
ja_JP: Slack アダプター、Slackのメッセージプッシュを受信するためにパブリックURLが必要です。使用方法の詳細については、ドキュメントを参照してください。
|
ja_JP: Slack アダプター、Slackのメッセージプッシュを受信するためにパブリックURLが必要です。使用方法の詳細については、ドキュメントを参照してください。
|
||||||
|
th_TH: อะแดปเตอร์ Slack ต้องการที่อยู่สาธารณะเพื่อรับการแจ้งเตือนข้อความจาก Slack โปรดดูเอกสารประกอบสำหรับวิธีการใช้งาน
|
||||||
|
vi_VN: Bộ điều hợp Slack, cần địa chỉ công cộng để nhận thông báo tin nhắn từ Slack, vui lòng xem tài liệu để biết cách sử dụng
|
||||||
|
es_ES: Adaptador de Slack, requiere una dirección pública para recibir notificaciones de mensajes de Slack, consulte la documentación para obtener instrucciones de uso
|
||||||
icon: slack.png
|
icon: slack.png
|
||||||
spec:
|
spec:
|
||||||
categories:
|
categories:
|
||||||
@@ -24,11 +30,17 @@ spec:
|
|||||||
zh_Hans: Webhook 回调地址
|
zh_Hans: Webhook 回调地址
|
||||||
zh_Hant: Webhook 回調地址
|
zh_Hant: Webhook 回調地址
|
||||||
ja_JP: Webhook コールバック URL
|
ja_JP: Webhook コールバック URL
|
||||||
|
th_TH: URL การเรียกกลับ Webhook
|
||||||
|
vi_VN: URL gọi lại Webhook
|
||||||
|
es_ES: URL de devolución de llamada Webhook
|
||||||
description:
|
description:
|
||||||
en_US: Copy this URL and paste it into your Slack app's event subscription configuration
|
en_US: Copy this URL and paste it into your Slack app's event subscription configuration
|
||||||
zh_Hans: 复制此地址并粘贴到 Slack 应用的事件订阅配置中
|
zh_Hans: 复制此地址并粘贴到 Slack 应用的事件订阅配置中
|
||||||
zh_Hant: 複製此地址並貼到 Slack 應用的事件訂閱設定中
|
zh_Hant: 複製此地址並貼到 Slack 應用的事件訂閱設定中
|
||||||
ja_JP: この URL をコピーして Slack アプリのイベントサブスクリプション設定に貼り付けてください
|
ja_JP: この URL をコピーして Slack アプリのイベントサブスクリプション設定に貼り付けてください
|
||||||
|
th_TH: คัดลอก URL นี้แล้ววางในการตั้งค่าการสมัครรับเหตุการณ์ของแอป Slack ของคุณ
|
||||||
|
vi_VN: Sao chép URL này và dán vào cấu hình đăng ký sự kiện của ứng dụng Slack của bạn
|
||||||
|
es_ES: Copie esta URL y péguela en la configuración de suscripción de eventos de su aplicación Slack
|
||||||
type: webhook-url
|
type: webhook-url
|
||||||
required: false
|
required: false
|
||||||
default: ""
|
default: ""
|
||||||
@@ -38,6 +50,9 @@ spec:
|
|||||||
zh_Hans: 机器人令牌
|
zh_Hans: 机器人令牌
|
||||||
zh_Hant: 機器人令牌
|
zh_Hant: 機器人令牌
|
||||||
ja_JP: ボットトークン
|
ja_JP: ボットトークン
|
||||||
|
th_TH: โทเค็นบอท
|
||||||
|
vi_VN: Mã thông báo Bot
|
||||||
|
es_ES: Token del bot
|
||||||
type: string
|
type: string
|
||||||
required: true
|
required: true
|
||||||
default: ""
|
default: ""
|
||||||
@@ -47,6 +62,9 @@ spec:
|
|||||||
zh_Hans: 密钥
|
zh_Hans: 密钥
|
||||||
zh_Hant: 密鑰
|
zh_Hant: 密鑰
|
||||||
ja_JP: 署名シークレット
|
ja_JP: 署名シークレット
|
||||||
|
th_TH: คีย์ลายเซ็น
|
||||||
|
vi_VN: Khóa ký
|
||||||
|
es_ES: Secreto de firma
|
||||||
type: string
|
type: string
|
||||||
required: true
|
required: true
|
||||||
default: ""
|
default: ""
|
||||||
|
|||||||
@@ -7,11 +7,17 @@ metadata:
|
|||||||
zh_Hans: 电报
|
zh_Hans: 电报
|
||||||
zh_Hant: Telegram
|
zh_Hant: Telegram
|
||||||
ja_JP: Telegram
|
ja_JP: Telegram
|
||||||
|
th_TH: Telegram
|
||||||
|
vi_VN: Telegram
|
||||||
|
es_ES: Telegram
|
||||||
description:
|
description:
|
||||||
en_US: Telegram Adapter
|
en_US: Telegram Adapter
|
||||||
zh_Hans: Telegram 适配器,请查看文档了解使用方式
|
zh_Hans: Telegram 适配器,请查看文档了解使用方式
|
||||||
zh_Hant: Telegram 適配器,請查看文件了解使用方式
|
zh_Hant: Telegram 適配器,請查看文件了解使用方式
|
||||||
ja_JP: Telegram アダプター。使用方法の詳細については、ドキュメントを参照してください。
|
ja_JP: Telegram アダプター。使用方法の詳細については、ドキュメントを参照してください。
|
||||||
|
th_TH: อะแดปเตอร์ Telegram โปรดดูเอกสารประกอบสำหรับวิธีการใช้งาน
|
||||||
|
vi_VN: Bộ điều hợp Telegram, vui lòng xem tài liệu để biết cách sử dụng
|
||||||
|
es_ES: Adaptador de Telegram, consulte la documentación para obtener instrucciones de uso
|
||||||
icon: telegram.svg
|
icon: telegram.svg
|
||||||
spec:
|
spec:
|
||||||
categories:
|
categories:
|
||||||
@@ -24,6 +30,9 @@ spec:
|
|||||||
zh_Hans: 令牌
|
zh_Hans: 令牌
|
||||||
zh_Hant: 令牌
|
zh_Hant: 令牌
|
||||||
ja_JP: トークン
|
ja_JP: トークン
|
||||||
|
th_TH: โทเค็น
|
||||||
|
vi_VN: Mã thông báo
|
||||||
|
es_ES: Token
|
||||||
type: string
|
type: string
|
||||||
required: true
|
required: true
|
||||||
default: "token_from_botfather"
|
default: "token_from_botfather"
|
||||||
@@ -33,6 +42,9 @@ spec:
|
|||||||
zh_Hans: 是否使用 Markdown 卡片
|
zh_Hans: 是否使用 Markdown 卡片
|
||||||
zh_Hant: 是否使用 Markdown 卡片
|
zh_Hant: 是否使用 Markdown 卡片
|
||||||
ja_JP: Markdown カードを使用
|
ja_JP: Markdown カードを使用
|
||||||
|
th_TH: การ์ด Markdown
|
||||||
|
vi_VN: Thẻ Markdown
|
||||||
|
es_ES: Tarjeta Markdown
|
||||||
type: boolean
|
type: boolean
|
||||||
required: false
|
required: false
|
||||||
default: true
|
default: true
|
||||||
@@ -42,11 +54,17 @@ spec:
|
|||||||
zh_Hans: 启用电报流式回复模式
|
zh_Hans: 启用电报流式回复模式
|
||||||
zh_Hant: 啟用 Telegram 串流回覆模式
|
zh_Hant: 啟用 Telegram 串流回覆模式
|
||||||
ja_JP: ストリーミング返信モードを有効化
|
ja_JP: ストリーミング返信モードを有効化
|
||||||
|
th_TH: เปิดใช้งานโหมดตอบกลับแบบสตรีม
|
||||||
|
vi_VN: Bật chế độ trả lời trực tuyến
|
||||||
|
es_ES: Habilitar modo de respuesta en streaming
|
||||||
description:
|
description:
|
||||||
en_US: If enabled, the bot will use the stream of telegram reply mode
|
en_US: If enabled, the bot will use the stream of telegram reply mode
|
||||||
zh_Hans: 如果启用,将使用电报流式方式来回复内容
|
zh_Hans: 如果启用,将使用电报流式方式来回复内容
|
||||||
zh_Hant: 如果啟用,將使用 Telegram 串流方式來回覆內容
|
zh_Hant: 如果啟用,將使用 Telegram 串流方式來回覆內容
|
||||||
ja_JP: 有効にすると、ボットはストリーミングモードでメッセージに返信します
|
ja_JP: 有効にすると、ボットはストリーミングモードでメッセージに返信します
|
||||||
|
th_TH: หากเปิดใช้งาน บอทจะใช้โหมดสตรีมของ Telegram ในการตอบกลับ
|
||||||
|
vi_VN: Nếu bật, bot sẽ sử dụng chế độ trả lời trực tuyến của Telegram
|
||||||
|
es_ES: Si está habilitado, el bot usará el modo de respuesta en streaming de Telegram
|
||||||
type: boolean
|
type: boolean
|
||||||
required: true
|
required: true
|
||||||
default: false
|
default: false
|
||||||
|
|||||||
@@ -6,10 +6,16 @@ metadata:
|
|||||||
en_US: "WebSocket Chat"
|
en_US: "WebSocket Chat"
|
||||||
zh_Hans: "WebSocket 聊天"
|
zh_Hans: "WebSocket 聊天"
|
||||||
zh_Hant: "WebSocket 聊天"
|
zh_Hant: "WebSocket 聊天"
|
||||||
|
th_TH: "แชท WebSocket"
|
||||||
|
vi_VN: "Trò chuyện WebSocket"
|
||||||
|
es_ES: "Chat WebSocket"
|
||||||
description:
|
description:
|
||||||
en_US: "WebSocket adapter for bidirectional real-time communication"
|
en_US: "WebSocket adapter for bidirectional real-time communication"
|
||||||
zh_Hans: "用于双向实时通信的 WebSocket 适配器"
|
zh_Hans: "用于双向实时通信的 WebSocket 适配器"
|
||||||
zh_Hant: "用於雙向即時通訊的 WebSocket 適配器"
|
zh_Hant: "用於雙向即時通訊的 WebSocket 適配器"
|
||||||
|
th_TH: "อะแดปเตอร์ WebSocket สำหรับการสื่อสารแบบเรียลไทม์สองทิศทาง"
|
||||||
|
vi_VN: "Bộ điều hợp WebSocket cho giao tiếp thời gian thực hai chiều"
|
||||||
|
es_ES: "Adaptador WebSocket para comunicación bidireccional en tiempo real"
|
||||||
icon: ""
|
icon: ""
|
||||||
spec:
|
spec:
|
||||||
categories:
|
categories:
|
||||||
|
|||||||
@@ -3,6 +3,9 @@ export interface I18nObject {
|
|||||||
zh_Hans: string;
|
zh_Hans: string;
|
||||||
zh_Hant?: string;
|
zh_Hant?: string;
|
||||||
ja_JP?: string;
|
ja_JP?: string;
|
||||||
|
th_TH?: string;
|
||||||
|
vi_VN?: string;
|
||||||
|
es_ES?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ComponentManifest {
|
export interface ComponentManifest {
|
||||||
|
|||||||
@@ -39,6 +39,15 @@ export function LanguageSelector({
|
|||||||
} else if (i18n.language === 'ja' || i18n.language === 'ja-JP') {
|
} else if (i18n.language === 'ja' || i18n.language === 'ja-JP') {
|
||||||
setCurrentLanguage('ja-JP');
|
setCurrentLanguage('ja-JP');
|
||||||
localStorage.setItem('langbot_language', 'ja-JP');
|
localStorage.setItem('langbot_language', 'ja-JP');
|
||||||
|
} else if (i18n.language === 'th' || i18n.language === 'th-TH') {
|
||||||
|
setCurrentLanguage('th-TH');
|
||||||
|
localStorage.setItem('langbot_language', 'th-TH');
|
||||||
|
} else if (i18n.language === 'vi' || i18n.language === 'vi-VN') {
|
||||||
|
setCurrentLanguage('vi-VN');
|
||||||
|
localStorage.setItem('langbot_language', 'vi-VN');
|
||||||
|
} else if (i18n.language === 'es' || i18n.language === 'es-ES') {
|
||||||
|
setCurrentLanguage('es-ES');
|
||||||
|
localStorage.setItem('langbot_language', 'es-ES');
|
||||||
} else {
|
} else {
|
||||||
setCurrentLanguage('en-US');
|
setCurrentLanguage('en-US');
|
||||||
localStorage.setItem('langbot_language', 'en-US');
|
localStorage.setItem('langbot_language', 'en-US');
|
||||||
@@ -58,6 +67,15 @@ export function LanguageSelector({
|
|||||||
detectedLanguage = 'zh-Hant';
|
detectedLanguage = 'zh-Hant';
|
||||||
} else if (browserLanguage === 'ja' || browserLanguage === 'ja-JP') {
|
} else if (browserLanguage === 'ja' || browserLanguage === 'ja-JP') {
|
||||||
detectedLanguage = 'ja-JP';
|
detectedLanguage = 'ja-JP';
|
||||||
|
} else if (browserLanguage === 'th' || browserLanguage === 'th-TH') {
|
||||||
|
detectedLanguage = 'th-TH';
|
||||||
|
} else if (browserLanguage === 'vi' || browserLanguage === 'vi-VN') {
|
||||||
|
detectedLanguage = 'vi-VN';
|
||||||
|
} else if (
|
||||||
|
browserLanguage === 'es' ||
|
||||||
|
browserLanguage.startsWith('es-')
|
||||||
|
) {
|
||||||
|
detectedLanguage = 'es-ES';
|
||||||
} else {
|
} else {
|
||||||
detectedLanguage = 'en-US';
|
detectedLanguage = 'en-US';
|
||||||
}
|
}
|
||||||
@@ -92,6 +110,9 @@ export function LanguageSelector({
|
|||||||
<SelectItem value="zh-Hant">繁體中文</SelectItem>
|
<SelectItem value="zh-Hant">繁體中文</SelectItem>
|
||||||
<SelectItem value="en-US">English</SelectItem>
|
<SelectItem value="en-US">English</SelectItem>
|
||||||
<SelectItem value="ja-JP">日本語</SelectItem>
|
<SelectItem value="ja-JP">日本語</SelectItem>
|
||||||
|
<SelectItem value="th-TH">ภาษาไทย</SelectItem>
|
||||||
|
<SelectItem value="vi-VN">Tiếng Việt</SelectItem>
|
||||||
|
<SelectItem value="es-ES">Español</SelectItem>
|
||||||
</SelectContent>
|
</SelectContent>
|
||||||
</Select>
|
</Select>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -27,6 +27,9 @@ export const extractI18nObject = (i18nObject: I18nObject): string => {
|
|||||||
if (language === 'zh_Hans' && i18nObject.zh_Hans) return i18nObject.zh_Hans;
|
if (language === 'zh_Hans' && i18nObject.zh_Hans) return i18nObject.zh_Hans;
|
||||||
if (language === 'zh_Hant' && i18nObject.zh_Hant) return i18nObject.zh_Hant;
|
if (language === 'zh_Hant' && i18nObject.zh_Hant) return i18nObject.zh_Hant;
|
||||||
if (language === 'ja_JP' && i18nObject.ja_JP) return i18nObject.ja_JP;
|
if (language === 'ja_JP' && i18nObject.ja_JP) return i18nObject.ja_JP;
|
||||||
|
if (language === 'th_TH' && i18nObject.th_TH) return i18nObject.th_TH;
|
||||||
|
if (language === 'vi_VN' && i18nObject.vi_VN) return i18nObject.vi_VN;
|
||||||
|
if (language === 'es_ES' && i18nObject.es_ES) return i18nObject.es_ES;
|
||||||
return (
|
return (
|
||||||
i18nObject.en_US ||
|
i18nObject.en_US ||
|
||||||
i18nObject.zh_Hans ||
|
i18nObject.zh_Hans ||
|
||||||
@@ -49,6 +52,12 @@ export const getAPILanguageCode = (): string => {
|
|||||||
if (language === 'en-US') return 'en';
|
if (language === 'en-US') return 'en';
|
||||||
// ja-JP -> ja_JP
|
// ja-JP -> ja_JP
|
||||||
if (language === 'ja-JP') return 'ja_JP';
|
if (language === 'ja-JP') return 'ja_JP';
|
||||||
|
// th-TH -> th_TH
|
||||||
|
if (language === 'th-TH') return 'th_TH';
|
||||||
|
// vi-VN -> vi_VN
|
||||||
|
if (language === 'vi-VN') return 'vi_VN';
|
||||||
|
// es-ES -> es_ES
|
||||||
|
if (language === 'es-ES') return 'es_ES';
|
||||||
// 默认返回 en
|
// 默认返回 en
|
||||||
return 'en';
|
return 'en';
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -8,6 +8,9 @@ import enUS from './locales/en-US';
|
|||||||
import zhHans from './locales/zh-Hans';
|
import zhHans from './locales/zh-Hans';
|
||||||
import zhHant from './locales/zh-Hant';
|
import zhHant from './locales/zh-Hant';
|
||||||
import jaJP from './locales/ja-JP';
|
import jaJP from './locales/ja-JP';
|
||||||
|
import thTH from './locales/th-TH';
|
||||||
|
import viVN from './locales/vi-VN';
|
||||||
|
import esES from './locales/es-ES';
|
||||||
|
|
||||||
i18n
|
i18n
|
||||||
.use(LanguageDetector)
|
.use(LanguageDetector)
|
||||||
@@ -26,6 +29,15 @@ i18n
|
|||||||
'ja-JP': {
|
'ja-JP': {
|
||||||
translation: jaJP,
|
translation: jaJP,
|
||||||
},
|
},
|
||||||
|
'th-TH': {
|
||||||
|
translation: thTH,
|
||||||
|
},
|
||||||
|
'vi-VN': {
|
||||||
|
translation: viVN,
|
||||||
|
},
|
||||||
|
'es-ES': {
|
||||||
|
translation: esES,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
fallbackLng: 'zh-Hans',
|
fallbackLng: 'zh-Hans',
|
||||||
debug: process.env.NODE_ENV === 'development',
|
debug: process.env.NODE_ENV === 'development',
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user