Spaces:
Sleeping
Sleeping
Commit ·
b22e8ba
1
Parent(s): 6e475f4
added infer docker & /config option & various bug fixes & new tests
Browse files- .chainlit/config.toml +152 -0
- .chainlit/translations/bn.json +245 -0
- .chainlit/translations/de-DE.json +245 -0
- .chainlit/translations/el-GR.json +245 -0
- .chainlit/translations/en-US.json +245 -0
- .chainlit/translations/es.json +245 -0
- .chainlit/translations/fr-FR.json +245 -0
- .chainlit/translations/gu.json +245 -0
- .chainlit/translations/he-IL.json +245 -0
- .chainlit/translations/hi.json +245 -0
- .chainlit/translations/ja.json +244 -0
- .chainlit/translations/kn.json +245 -0
- .chainlit/translations/ko.json +245 -0
- .chainlit/translations/ml.json +245 -0
- .chainlit/translations/mr.json +245 -0
- .chainlit/translations/nl.json +245 -0
- .chainlit/translations/ta.json +245 -0
- .chainlit/translations/te.json +245 -0
- .chainlit/translations/zh-CN.json +245 -0
- .chainlit/translations/zh-TW.json +245 -0
- .dockerignore +1 -1
- .gitignore +4 -4
- .pre-commit-config.yaml +25 -16
- CONTRIBUTING.md +32 -19
- Dockerfile.dev +2 -8
- Dockerfile.infer +22 -0
- Makefile +13 -5
- README.md +28 -2
- configs/generation/generation.yaml +2 -2
- configs/optim/Adamw.yaml +0 -1
- configs/train_mode.yaml +1 -1
- configs/trainer/default.yaml +2 -2
- data/README.md +23 -0
- docker-compose.yml +19 -0
- notebooks/load_data.ipynb +22 -44
- notebooks/tokenizer.ipynb +22 -44
- notebooks/train.ipynb +189 -47
- pyproject.toml +8 -0
- src/mini_transformer/apps/chainlit_app.py +141 -0
- src/mini_transformer/configs.py +0 -1
- src/mini_transformer/utils.py +21 -10
- tests/units/test_utils.py +686 -601
- tokenizer/bpe_16k.json +0 -0
- tokenizer/bpe_32k.json +0 -0
- tokenizer/bpe_4k.json +0 -0
- tokenizer/bpe_8k.json +0 -0
- trained_models/README.md +21 -0
.chainlit/config.toml
ADDED
|
@@ -0,0 +1,152 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[project]
|
| 2 |
+
# List of environment variables to be provided by each user to use the app.
|
| 3 |
+
user_env = []
|
| 4 |
+
|
| 5 |
+
# Duration (in seconds) during which the session is saved when the connection is lost
|
| 6 |
+
session_timeout = 3600
|
| 7 |
+
|
| 8 |
+
# Duration (in seconds) of the user session expiry
|
| 9 |
+
user_session_timeout = 1296000 # 15 days
|
| 10 |
+
|
| 11 |
+
# Enable third parties caching (e.g., LangChain cache)
|
| 12 |
+
cache = false
|
| 13 |
+
|
| 14 |
+
# Whether to persist user environment variables (API keys) to the database
|
| 15 |
+
# Set to true to store user env vars in DB, false to exclude them for security
|
| 16 |
+
persist_user_env = false
|
| 17 |
+
|
| 18 |
+
# Whether to mask user environment variables (API keys) in the UI with password type
|
| 19 |
+
# Set to true to show API keys as ***, false to show them as plain text
|
| 20 |
+
mask_user_env = false
|
| 21 |
+
|
| 22 |
+
# Authorized origins
|
| 23 |
+
allow_origins = ["*"]
|
| 24 |
+
|
| 25 |
+
[features]
|
| 26 |
+
# Process and display HTML in messages. This can be a security risk (see https://stackoverflow.com/questions/19603097/why-is-it-dangerous-to-render-user-generated-html-or-javascript)
|
| 27 |
+
unsafe_allow_html = false
|
| 28 |
+
|
| 29 |
+
# Process and display mathematical expressions. This can clash with "$" characters in messages.
|
| 30 |
+
latex = false
|
| 31 |
+
|
| 32 |
+
# Autoscroll new user messages at the top of the window
|
| 33 |
+
user_message_autoscroll = true
|
| 34 |
+
|
| 35 |
+
# Automatically tag threads with the current chat profile (if a chat profile is used)
|
| 36 |
+
auto_tag_thread = true
|
| 37 |
+
|
| 38 |
+
# Allow users to edit their own messages
|
| 39 |
+
edit_message = true
|
| 40 |
+
|
| 41 |
+
# Allow users to share threads (backend + UI). Requires an app-defined on_shared_thread_view callback.
|
| 42 |
+
allow_thread_sharing = false
|
| 43 |
+
|
| 44 |
+
[features.slack]
|
| 45 |
+
# Add emoji reaction when message is received (requires reactions:write OAuth scope)
|
| 46 |
+
reaction_on_message_received = false
|
| 47 |
+
|
| 48 |
+
# Authorize users to spontaneously upload files with messages
|
| 49 |
+
[features.spontaneous_file_upload]
|
| 50 |
+
enabled = true
|
| 51 |
+
# Define accepted file types using MIME types
|
| 52 |
+
# Examples:
|
| 53 |
+
# 1. For specific file types:
|
| 54 |
+
# accept = ["image/jpeg", "image/png", "application/pdf"]
|
| 55 |
+
# 2. For all files of certain type:
|
| 56 |
+
# accept = ["image/*", "audio/*", "video/*"]
|
| 57 |
+
# 3. For specific file extensions:
|
| 58 |
+
# accept = { "application/octet-stream" = [".xyz", ".pdb"] }
|
| 59 |
+
# Note: Using "*/*" is not recommended as it may cause browser warnings
|
| 60 |
+
accept = ["*/*"]
|
| 61 |
+
max_files = 20
|
| 62 |
+
max_size_mb = 500
|
| 63 |
+
|
| 64 |
+
[features.audio]
|
| 65 |
+
# Enable audio features
|
| 66 |
+
enabled = false
|
| 67 |
+
# Sample rate of the audio
|
| 68 |
+
sample_rate = 24000
|
| 69 |
+
|
| 70 |
+
[features.mcp]
|
| 71 |
+
# Enable Model Context Protocol (MCP) features
|
| 72 |
+
enabled = false
|
| 73 |
+
|
| 74 |
+
[features.mcp.sse]
|
| 75 |
+
enabled = true
|
| 76 |
+
|
| 77 |
+
[features.mcp.streamable-http]
|
| 78 |
+
enabled = true
|
| 79 |
+
|
| 80 |
+
[features.mcp.stdio]
|
| 81 |
+
enabled = true
|
| 82 |
+
# Only the executables in the allow list can be used for MCP stdio server.
|
| 83 |
+
# Only need the base name of the executable, e.g. "npx", not "/usr/bin/npx".
|
| 84 |
+
# Please don't comment this line for now, we need it to parse the executable name.
|
| 85 |
+
allowed_executables = [ "npx", "uvx" ]
|
| 86 |
+
|
| 87 |
+
[UI]
|
| 88 |
+
# Name of the assistant.
|
| 89 |
+
name = "Assistant"
|
| 90 |
+
|
| 91 |
+
# default_theme = "dark"
|
| 92 |
+
|
| 93 |
+
# layout = "wide"
|
| 94 |
+
|
| 95 |
+
# default_sidebar_state = "open"
|
| 96 |
+
|
| 97 |
+
# Description of the assistant. This is used for HTML tags.
|
| 98 |
+
# description = ""
|
| 99 |
+
|
| 100 |
+
# Chain of Thought (CoT) display mode. Can be "hidden", "tool_call" or "full".
|
| 101 |
+
cot = "full"
|
| 102 |
+
|
| 103 |
+
# Specify a CSS file that can be used to customize the user interface.
|
| 104 |
+
# The CSS file can be served from the public directory or via an external link.
|
| 105 |
+
# custom_css = "/public/test.css"
|
| 106 |
+
|
| 107 |
+
# Specify additional attributes for a custom CSS file
|
| 108 |
+
# custom_css_attributes = "media=\"print\""
|
| 109 |
+
|
| 110 |
+
# Specify a JavaScript file that can be used to customize the user interface.
|
| 111 |
+
# The JavaScript file can be served from the public directory.
|
| 112 |
+
# custom_js = "/public/test.js"
|
| 113 |
+
|
| 114 |
+
# The style of alert boxes. Can be "classic" or "modern".
|
| 115 |
+
alert_style = "classic"
|
| 116 |
+
|
| 117 |
+
# Specify additional attributes for custom JS file
|
| 118 |
+
# custom_js_attributes = "async type = \"module\""
|
| 119 |
+
|
| 120 |
+
# Custom login page image, relative to public directory or external URL
|
| 121 |
+
# login_page_image = "/public/custom-background.jpg"
|
| 122 |
+
|
| 123 |
+
# Custom login page image filter (Tailwind internal filters, no dark/light variants)
|
| 124 |
+
# login_page_image_filter = "brightness-50 grayscale"
|
| 125 |
+
# login_page_image_dark_filter = "contrast-200 blur-sm"
|
| 126 |
+
|
| 127 |
+
# Specify a custom meta URL (used for meta tags like og:url)
|
| 128 |
+
# custom_meta_url = "https://github.com/Chainlit/chainlit"
|
| 129 |
+
|
| 130 |
+
# Specify a custom meta image url.
|
| 131 |
+
# custom_meta_image_url = "https://chainlit-cloud.s3.eu-west-3.amazonaws.com/logo/chainlit_banner.png"
|
| 132 |
+
|
| 133 |
+
# Load assistant logo directly from URL.
|
| 134 |
+
logo_file_url = ""
|
| 135 |
+
|
| 136 |
+
# Load assistant avatar image directly from URL.
|
| 137 |
+
default_avatar_file_url = ""
|
| 138 |
+
|
| 139 |
+
# Specify a custom build directory for the frontend.
|
| 140 |
+
# This can be used to customize the frontend code.
|
| 141 |
+
# Be careful: If this is a relative path, it should not start with a slash.
|
| 142 |
+
# custom_build = "./public/build"
|
| 143 |
+
|
| 144 |
+
# Specify optional one or more custom links in the header.
|
| 145 |
+
# [[UI.header_links]]
|
| 146 |
+
# name = "Issues"
|
| 147 |
+
# display_name = "Report Issue"
|
| 148 |
+
# icon_url = "https://avatars.githubusercontent.com/u/128686189?s=200&v=4"
|
| 149 |
+
# url = "https://github.com/Chainlit/chainlit/issues"
|
| 150 |
+
|
| 151 |
+
[meta]
|
| 152 |
+
generated_by = "2.8.2"
|
.chainlit/translations/bn.json
ADDED
|
@@ -0,0 +1,245 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "\u09ac\u09be\u09a4\u09bf\u09b2 \u0995\u09b0\u09c1\u09a8",
|
| 5 |
+
"confirm": "\u09a8\u09bf\u09b6\u09cd\u099a\u09bf\u09a4 \u0995\u09b0\u09c1\u09a8",
|
| 6 |
+
"continue": "\u099a\u09be\u09b2\u09bf\u09af\u09bc\u09c7 \u09af\u09be\u09a8",
|
| 7 |
+
"goBack": "\u09aa\u09bf\u099b\u09a8\u09c7 \u09af\u09be\u09a8",
|
| 8 |
+
"reset": "\u09b0\u09bf\u09b8\u09c7\u099f \u0995\u09b0\u09c1\u09a8",
|
| 9 |
+
"submit": "\u099c\u09ae\u09be \u09a6\u09bf\u09a8"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "\u09b2\u09cb\u09a1 \u09b9\u099a\u09cd\u099b\u09c7...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "\u098f\u0995\u099f\u09bf \u09a4\u09cd\u09b0\u09c1\u099f\u09bf \u0998\u099f\u09c7\u099b\u09c7",
|
| 15 |
+
"serverConnection": "\u09b8\u09be\u09b0\u09cd\u09ad\u09be\u09b0\u09c7\u09b0 \u09b8\u09be\u09a5\u09c7 \u09b8\u0982\u09af\u09cb\u0997 \u0995\u09b0\u09be \u09af\u09be\u099a\u09cd\u099b\u09c7 \u09a8\u09be"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "\u0985\u09cd\u09af\u09be\u09aa\u09cd\u09b2\u09bf\u0995\u09c7\u09b6\u09a8 \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09a4\u09c7 \u09b2\u0997\u0987\u09a8 \u0995\u09b0\u09c1\u09a8",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "\u0987\u09ae\u09c7\u0987\u09b2 \u09a0\u09bf\u0995\u09be\u09a8\u09be",
|
| 25 |
+
"required": "\u0987\u09ae\u09c7\u0987\u09b2 \u098f\u0995\u099f\u09bf \u0986\u09ac\u09b6\u09cd\u09af\u0995 \u0995\u09cd\u09b7\u09c7\u09a4\u09cd\u09b0",
|
| 26 |
+
"placeholder": "me@example.com"
|
| 27 |
+
},
|
| 28 |
+
"password": {
|
| 29 |
+
"label": "\u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1",
|
| 30 |
+
"required": "\u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1 \u098f\u0995\u099f\u09bf \u0986\u09ac\u09b6\u09cd\u09af\u0995 \u0995\u09cd\u09b7\u09c7\u09a4\u09cd\u09b0"
|
| 31 |
+
},
|
| 32 |
+
"actions": {
|
| 33 |
+
"signin": "\u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09c1\u09a8"
|
| 34 |
+
},
|
| 35 |
+
"alternativeText": {
|
| 36 |
+
"or": "\u0985\u09a5\u09ac\u09be"
|
| 37 |
+
}
|
| 38 |
+
},
|
| 39 |
+
"errors": {
|
| 40 |
+
"default": "\u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09be \u09b8\u09ae\u09cd\u09ad\u09ac \u09b9\u099a\u09cd\u099b\u09c7 \u09a8\u09be",
|
| 41 |
+
"signin": "\u0985\u09a8\u09cd\u09af \u098f\u0995\u099f\u09bf \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f \u09a6\u09bf\u09af\u09bc\u09c7 \u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09be\u09b0 \u099a\u09c7\u09b7\u09cd\u099f\u09be \u0995\u09b0\u09c1\u09a8",
|
| 42 |
+
"oauthSignin": "\u0985\u09a8\u09cd\u09af \u098f\u0995\u099f\u09bf \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f \u09a6\u09bf\u09af\u09bc\u09c7 \u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09be\u09b0 \u099a\u09c7\u09b7\u09cd\u099f\u09be \u0995\u09b0\u09c1\u09a8",
|
| 43 |
+
"redirectUriMismatch": "\u09b0\u09bf\u09a1\u09be\u0987\u09b0\u09c7\u0995\u09cd\u099f URI \u0993\u0986\u09a5 \u0985\u09cd\u09af\u09be\u09aa \u0995\u09a8\u09ab\u09bf\u0997\u09be\u09b0\u09c7\u09b6\u09a8\u09c7\u09b0 \u09b8\u09be\u09a5\u09c7 \u09ae\u09bf\u09b2\u099b\u09c7 \u09a8\u09be",
|
| 44 |
+
"oauthCallback": "\u0985\u09a8\u09cd\u09af \u098f\u0995\u099f\u09bf \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f \u09a6\u09bf\u09af\u09bc\u09c7 \u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09be\u09b0 \u099a\u09c7\u09b7\u09cd\u099f\u09be \u0995\u09b0\u09c1\u09a8",
|
| 45 |
+
"oauthCreateAccount": "\u0985\u09a8\u09cd\u09af \u098f\u0995\u099f\u09bf \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f \u09a6\u09bf\u09af\u09bc\u09c7 \u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09be\u09b0 \u099a\u09c7\u09b7\u09cd\u099f\u09be \u0995\u09b0\u09c1\u09a8",
|
| 46 |
+
"emailCreateAccount": "\u0985\u09a8\u09cd\u09af \u098f\u0995\u099f\u09bf \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f \u09a6\u09bf\u09af\u09bc\u09c7 \u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09be\u09b0 \u099a\u09c7\u09b7\u09cd\u099f\u09be \u0995\u09b0\u09c1\u09a8",
|
| 47 |
+
"callback": "\u0985\u09a8\u09cd\u09af \u098f\u0995\u099f\u09bf \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f \u09a6\u09bf\u09af\u09bc\u09c7 \u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09be\u09b0 \u099a\u09c7\u09b7\u09cd\u099f\u09be \u0995\u09b0\u09c1\u09a8",
|
| 48 |
+
"oauthAccountNotLinked": "\u0986\u09aa\u09a8\u09be\u09b0 \u09aa\u09b0\u09bf\u099a\u09af\u09bc \u09a8\u09bf\u09b6\u09cd\u099a\u09bf\u09a4 \u0995\u09b0\u09a4\u09c7, \u0986\u09aa\u09a8\u09bf \u09af\u09c7 \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f\u099f\u09bf \u09ae\u09c2\u09b2\u09a4 \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09c7\u099b\u09bf\u09b2\u09c7\u09a8 \u09b8\u09c7\u099f\u09bf \u09a6\u09bf\u09af\u09bc\u09c7 \u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09c1\u09a8",
|
| 49 |
+
"emailSignin": "\u0987\u09ae\u09c7\u0987\u09b2 \u09aa\u09be\u09a0\u09be\u09a8\u09cb \u09af\u09be\u09af\u09bc\u09a8\u09bf",
|
| 50 |
+
"emailVerify": "\u0985\u09a8\u09c1\u0997\u09cd\u09b0\u09b9 \u0995\u09b0\u09c7 \u0986\u09aa\u09a8\u09be\u09b0 \u0987\u09ae\u09c7\u0987\u09b2 \u09af\u09be\u099a\u09be\u0987 \u0995\u09b0\u09c1\u09a8, \u098f\u0995\u099f\u09bf \u09a8\u09a4\u09c1\u09a8 \u0987\u09ae\u09c7\u0987\u09b2 \u09aa\u09be\u09a0\u09be\u09a8\u09cb \u09b9\u09af\u09bc\u09c7\u099b\u09c7",
|
| 51 |
+
"credentialsSignin": "\u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u09ac\u09cd\u09af\u09b0\u09cd\u09a5 \u09b9\u09af\u09bc\u09c7\u099b\u09c7\u0964 \u0986\u09aa\u09a8\u09be\u09b0 \u09a6\u09c7\u0993\u09af\u09bc\u09be \u09a4\u09a5\u09cd\u09af \u09b8\u09a0\u09bf\u0995 \u0995\u09bf\u09a8\u09be \u09af\u09be\u099a\u09be\u0987 \u0995\u09b0\u09c1\u09a8",
|
| 52 |
+
"sessionRequired": "\u098f\u0987 \u09aa\u09c3\u09b7\u09cd\u09a0\u09be \u09a6\u09c7\u0996\u09a4\u09c7 \u0985\u09a8\u09c1\u0997\u09cd\u09b0\u09b9 \u0995\u09b0\u09c7 \u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09c1\u09a8"
|
| 53 |
+
}
|
| 54 |
+
},
|
| 55 |
+
"provider": {
|
| 56 |
+
"continue": "{{provider}} \u09a6\u09bf\u09af\u09bc\u09c7 \u099a\u09be\u09b2\u09bf\u09af\u09bc\u09c7 \u09af\u09be\u09a8"
|
| 57 |
+
}
|
| 58 |
+
},
|
| 59 |
+
"chat": {
|
| 60 |
+
"input": {
|
| 61 |
+
"placeholder": "\u0986\u09aa\u09a8\u09be\u09b0 \u09ac\u09be\u09b0\u09cd\u09a4\u09be \u098f\u0996\u09be\u09a8\u09c7 \u099f\u09be\u0987\u09aa \u0995\u09b0\u09c1\u09a8...",
|
| 62 |
+
"actions": {
|
| 63 |
+
"send": "\u09ac\u09be\u09b0\u09cd\u09a4\u09be \u09aa\u09be\u09a0\u09be\u09a8",
|
| 64 |
+
"stop": "\u0995\u09be\u099c \u09ac\u09a8\u09cd\u09a7 \u0995\u09b0\u09c1\u09a8",
|
| 65 |
+
"attachFiles": "\u09ab\u09be\u0987\u09b2 \u09b8\u0982\u09af\u09c1\u0995\u09cd\u09a4 \u0995\u09b0\u09c1\u09a8"
|
| 66 |
+
}
|
| 67 |
+
},
|
| 68 |
+
"speech": {
|
| 69 |
+
"start": "\u09b0\u09c7\u0995\u09b0\u09cd\u09a1\u09bf\u0982 \u09b6\u09c1\u09b0\u09c1 \u0995\u09b0\u09c1\u09a8",
|
| 70 |
+
"stop": "\u09b0\u09c7\u0995\u09b0\u09cd\u09a1\u09bf\u0982 \u09ac\u09a8\u09cd\u09a7 \u0995\u09b0\u09c1\u09a8",
|
| 71 |
+
"connecting": "\u09b8\u0982\u09af\u09cb\u0997 \u0995\u09b0\u09be \u09b9\u099a\u09cd\u099b\u09c7"
|
| 72 |
+
},
|
| 73 |
+
"commands": {
|
| 74 |
+
"button": "\u099f\u09c1\u09b2\u09b8",
|
| 75 |
+
"changeTool": "\u099f\u09c1\u09b2 \u09aa\u09b0\u09bf\u09ac\u09b0\u09cd\u09a4\u09a8 \u0995\u09b0\u09c1\u09a8",
|
| 76 |
+
"availableTools": "\u0989\u09aa\u09b2\u09ac\u09cd\u09a7 \u099f\u09c1\u09b2\u09b8"
|
| 77 |
+
},
|
| 78 |
+
"fileUpload": {
|
| 79 |
+
"dragDrop": "\u098f\u0996\u09be\u09a8\u09c7 \u09ab\u09be\u0987\u09b2 \u099f\u09c7\u09a8\u09c7 \u0986\u09a8\u09c1\u09a8",
|
| 80 |
+
"browse": "\u09ab\u09be\u0987\u09b2 \u09ac\u09cd\u09b0\u09be\u0989\u099c \u0995\u09b0\u09c1\u09a8",
|
| 81 |
+
"sizeLimit": "\u09b8\u09c0\u09ae\u09be:",
|
| 82 |
+
"errors": {
|
| 83 |
+
"failed": "\u0986\u09aa\u09b2\u09cb\u09a1 \u09ac\u09cd\u09af\u09b0\u09cd\u09a5 \u09b9\u09af\u09bc\u09c7\u099b\u09c7",
|
| 84 |
+
"cancelled": "\u0986\u09aa\u09b2\u09cb\u09a1 \u09ac\u09be\u09a4\u09bf\u09b2 \u0995\u09b0\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"cancelUpload": "\u0986\u09aa\u09b2\u09cb\u09a1 \u09ac\u09be\u09a4\u09bf\u09b2 \u0995\u09b0\u09c1\u09a8",
|
| 88 |
+
"removeAttachment": "\u09b8\u0982\u09af\u09c1\u0995\u09cd\u09a4\u09bf \u09ae\u09c1\u099b\u09c7 \u09ab\u09c7\u09b2\u09c1\u09a8"
|
| 89 |
+
}
|
| 90 |
+
},
|
| 91 |
+
"messages": {
|
| 92 |
+
"status": {
|
| 93 |
+
"using": "\u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u099b\u09c7",
|
| 94 |
+
"used": "\u09ac\u09cd\u09af\u09ac\u09b9\u09c3\u09a4"
|
| 95 |
+
},
|
| 96 |
+
"actions": {
|
| 97 |
+
"copy": {
|
| 98 |
+
"button": "\u0995\u09cd\u09b2\u09bf\u09aa\u09ac\u09cb\u09b0\u09cd\u09a1\u09c7 \u0995\u09aa\u09bf \u0995\u09b0\u09c1\u09a8",
|
| 99 |
+
"success": "\u0995\u09aa\u09bf \u0995\u09b0\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7!"
|
| 100 |
+
}
|
| 101 |
+
},
|
| 102 |
+
"feedback": {
|
| 103 |
+
"positive": "\u09b8\u09b9\u09be\u09af\u09bc\u0995",
|
| 104 |
+
"negative": "\u09b8\u09b9\u09be\u09af\u09bc\u0995 \u09a8\u09af\u09bc",
|
| 105 |
+
"edit": "\u09aa\u09cd\u09b0\u09a4\u09bf\u0995\u09cd\u09b0\u09bf\u09af\u09bc\u09be \u09b8\u09ae\u09cd\u09aa\u09be\u09a6\u09a8\u09be \u0995\u09b0\u09c1\u09a8",
|
| 106 |
+
"dialog": {
|
| 107 |
+
"title": "\u09ae\u09a8\u09cd\u09a4\u09ac\u09cd\u09af \u09af\u09cb\u0997 \u0995\u09b0\u09c1\u09a8",
|
| 108 |
+
"submit": "\u09aa\u09cd\u09b0\u09a4\u09bf\u0995\u09cd\u09b0\u09bf\u09af\u09bc\u09be \u099c\u09ae\u09be \u09a6\u09bf\u09a8",
|
| 109 |
+
"yourFeedback": "\u0986\u09aa\u09a8\u09be\u09b0 \u09aa\u09cd\u09b0\u09a4\u09bf\u0995\u09cd\u09b0\u09bf\u09af\u09bc\u09be..."
|
| 110 |
+
},
|
| 111 |
+
"status": {
|
| 112 |
+
"updating": "\u09b9\u09be\u09b2\u09a8\u09be\u0997\u09be\u09a6 \u0995\u09b0\u09be \u09b9\u099a\u09cd\u099b\u09c7",
|
| 113 |
+
"updated": "\u09aa\u09cd\u09b0\u09a4\u09bf\u0995\u09cd\u09b0\u09bf\u09af\u09bc\u09be \u09b9\u09be\u09b2\u09a8\u09be\u0997\u09be\u09a6 \u0995\u09b0\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7"
|
| 114 |
+
}
|
| 115 |
+
}
|
| 116 |
+
},
|
| 117 |
+
"history": {
|
| 118 |
+
"title": "\u09b8\u09b0\u09cd\u09ac\u09b6\u09c7\u09b7 \u0987\u09a8\u09aa\u09c1\u099f",
|
| 119 |
+
"empty": "\u0995\u09cb\u09a8\u09cb \u09a4\u09a5\u09cd\u09af \u09a8\u09c7\u0987...",
|
| 120 |
+
"show": "\u0987\u09a4\u09bf\u09b9\u09be\u09b8 \u09a6\u09c7\u0996\u09c1\u09a8"
|
| 121 |
+
},
|
| 122 |
+
"settings": {
|
| 123 |
+
"title": "\u09b8\u09c7\u099f\u09bf\u0982\u09b8 \u09aa\u09cd\u09af\u09be\u09a8\u09c7\u09b2",
|
| 124 |
+
"customize": "\u098f\u0996\u09be\u09a8\u09c7 \u0986\u09aa\u09a8\u09be\u09b0 \u099a\u09cd\u09af\u09be\u099f \u09b8\u09c7\u099f\u09bf\u0982\u09b8 \u0995\u09be\u09b8\u09cd\u099f\u09ae\u09be\u0987\u099c \u0995\u09b0\u09c1\u09a8"
|
| 125 |
+
},
|
| 126 |
+
"watermark": "\u098f\u09b2\u098f\u09b2\u098f\u09ae \u09ad\u09c1\u09b2 \u0995\u09b0\u09a4\u09c7 \u09aa\u09be\u09b0\u09c7\u0964 \u0997\u09c1\u09b0\u09c1\u09a4\u09cd\u09ac\u09aa\u09c2\u09b0\u09cd\u09a3 \u09a4\u09a5\u09cd\u09af \u09af\u09be\u099a\u09be\u0987 \u0995\u09b0\u09be\u09b0 \u0995\u09a5\u09be \u09ac\u09bf\u09ac\u09c7\u099a\u09a8\u09be \u0995\u09b0\u09c1\u09a8\u0964"
|
| 127 |
+
},
|
| 128 |
+
"threadHistory": {
|
| 129 |
+
"sidebar": {
|
| 130 |
+
"title": "\u09aa\u09c2\u09b0\u09cd\u09ac\u09ac\u09b0\u09cd\u09a4\u09c0 \u099a\u09cd\u09af\u09be\u099f",
|
| 131 |
+
"filters": {
|
| 132 |
+
"search": "\u0985\u09a8\u09c1\u09b8\u09a8\u09cd\u09a7\u09be\u09a8",
|
| 133 |
+
"placeholder": "Search conversations..."
|
| 134 |
+
},
|
| 135 |
+
"timeframes": {
|
| 136 |
+
"today": "\u0986\u099c",
|
| 137 |
+
"yesterday": "\u0997\u09a4\u0995\u09be\u09b2",
|
| 138 |
+
"previous7days": "\u0997\u09a4 \u09ed \u09a6\u09bf\u09a8",
|
| 139 |
+
"previous30days": "\u0997\u09a4 \u09e9\u09e6 \u09a6\u09bf\u09a8"
|
| 140 |
+
},
|
| 141 |
+
"empty": "\u0995\u09cb\u09a8\u09cb \u09a5\u09cd\u09b0\u09c7\u09a1 \u09aa\u09be\u0993\u09af\u09bc\u09be \u09af\u09be\u09af\u09bc\u09a8\u09bf",
|
| 142 |
+
"actions": {
|
| 143 |
+
"close": "\u09b8\u09be\u0987\u09a1\u09ac\u09be\u09b0 \u09ac\u09a8\u09cd\u09a7 \u0995\u09b0\u09c1\u09a8",
|
| 144 |
+
"open": "\u09b8\u09be\u0987\u09a1\u09ac\u09be\u09b0 \u0996\u09c1\u09b2\u09c1\u09a8"
|
| 145 |
+
}
|
| 146 |
+
},
|
| 147 |
+
"thread": {
|
| 148 |
+
"untitled": "\u09b6\u09bf\u09b0\u09cb\u09a8\u09be\u09ae\u09b9\u09c0\u09a8 \u0986\u09b2\u09cb\u099a\u09a8\u09be",
|
| 149 |
+
"menu": {
|
| 150 |
+
"rename": "\u09aa\u09c1\u09a8\u0983\u09a8\u09be\u09ae\u0995\u09b0\u09a3",
|
| 151 |
+
"share": "\u09b6\u09c7\u09af\u09bc\u09be\u09b0",
|
| 152 |
+
"delete": "Delete"
|
| 153 |
+
},
|
| 154 |
+
"actions": {
|
| 155 |
+
"share": {
|
| 156 |
+
"title": "\u099a\u09cd\u09af\u09be\u099f\u09c7\u09b0 \u09b2\u09bf\u0999\u09cd\u0995 \u09b6\u09c7\u09af\u09bc\u09be\u09b0 \u0995\u09b0\u09c1\u09a8",
|
| 157 |
+
"button": "\u09b6\u09c7\u09af\u09bc\u09be\u09b0",
|
| 158 |
+
"status": {
|
| 159 |
+
"copied": "\u09b2\u09bf\u0999\u09cd\u0995 \u0995\u09aa\u09bf \u0995\u09b0\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7",
|
| 160 |
+
"created": "\u09b6\u09c7\u09af\u09bc\u09be\u09b0 \u09b2\u09bf\u0999\u09cd\u0995 \u09a4\u09c8\u09b0\u09bf \u09b9\u09af\u09bc\u09c7\u099b\u09c7!",
|
| 161 |
+
"unshared": "\u098f\u0987 \u09a5\u09cd\u09b0\u09c7\u09a1\u09c7\u09b0 \u099c\u09a8\u09cd\u09af \u09b6\u09c7\u09af\u09bc\u09be\u09b0\u09bf\u0982 \u0985\u0995\u09cd\u09b7\u09ae \u0995\u09b0\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7"
|
| 162 |
+
},
|
| 163 |
+
"error": {
|
| 164 |
+
"create": "\u09b6\u09c7\u09af\u09bc\u09be\u09b0 \u09b2\u09bf\u0999\u09cd\u0995 \u09a4\u09c8\u09b0\u09bf \u0995\u09b0\u09a4\u09c7 \u09ac\u09cd\u09af\u09b0\u09cd\u09a5",
|
| 165 |
+
"unshare": "\u09a5\u09cd\u09b0\u09c7\u09a1\u09c7\u09b0 \u09b6\u09c7\u09af\u09bc\u09be\u09b0\u09bf\u0982 \u09ac\u09a8\u09cd\u09a7 \u0995\u09b0\u09a4\u09c7 \u09ac\u09cd\u09af\u09b0\u09cd\u09a5"
|
| 166 |
+
}
|
| 167 |
+
},
|
| 168 |
+
"delete": {
|
| 169 |
+
"title": "\u09ae\u09c1\u099b\u09c7 \u09ab\u09c7\u09b2\u09be \u09a8\u09bf\u09b6\u09cd\u099a\u09bf\u09a4 \u0995\u09b0\u09c1\u09a8",
|
| 170 |
+
"description": "\u098f\u099f\u09bf \u09a5\u09cd\u09b0\u09c7\u09a1 \u098f\u09ac\u0982 \u098f\u09b0 \u09ac\u09be\u09b0\u09cd\u09a4\u09be \u0993 \u0989\u09aa\u09be\u09a6\u09be\u09a8\u0997\u09c1\u09b2\u09bf \u09ae\u09c1\u099b\u09c7 \u09ab\u09c7\u09b2\u09ac\u09c7\u0964 \u098f\u0987 \u0995\u09be\u099c\u099f\u09bf \u09aa\u09c2\u09b0\u09cd\u09ac\u09be\u09ac\u09b8\u09cd\u09a5\u09be\u09af\u09bc \u09ab\u09c7\u09b0\u09be\u09a8\u09cb \u09af\u09be\u09ac\u09c7 \u09a8\u09be",
|
| 171 |
+
"success": "\u099a\u09cd\u09af\u09be\u099f \u09ae\u09c1\u099b\u09c7 \u09ab\u09c7\u09b2\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7",
|
| 172 |
+
"inProgress": "\u099a\u09cd\u09af\u09be\u099f \u09ae\u09c1\u099b\u09c7 \u09ab\u09c7\u09b2\u09be \u09b9\u099a\u09cd\u099b\u09c7"
|
| 173 |
+
},
|
| 174 |
+
"rename": {
|
| 175 |
+
"title": "\u09a5\u09cd\u09b0\u09c7\u09a1\u09c7\u09b0 \u09a8\u09be\u09ae \u09aa\u09b0\u09bf\u09ac\u09b0\u09cd\u09a4\u09a8 \u0995\u09b0\u09c1\u09a8",
|
| 176 |
+
"description": "\u098f\u0987 \u09a5\u09cd\u09b0\u09c7\u09a1\u09c7\u09b0 \u099c\u09a8\u09cd\u09af \u098f\u0995\u099f\u09bf \u09a8\u09a4\u09c1\u09a8 \u09a8\u09be\u09ae \u09a6\u09bf\u09a8",
|
| 177 |
+
"form": {
|
| 178 |
+
"name": {
|
| 179 |
+
"label": "\u09a8\u09be\u09ae",
|
| 180 |
+
"placeholder": "\u09a8\u09a4\u09c1\u09a8 \u09a8\u09be\u09ae \u09b2\u09bf\u0996\u09c1\u09a8"
|
| 181 |
+
}
|
| 182 |
+
},
|
| 183 |
+
"success": "\u09a5\u09cd\u09b0\u09c7\u09a1\u09c7\u09b0 \u09a8\u09be\u09ae \u09aa\u09b0\u09bf\u09ac\u09b0\u09cd\u09a4\u09a8 \u0995\u09b0\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7!",
|
| 184 |
+
"inProgress": "\u09a5\u09cd\u09b0\u09c7\u09a1\u09c7\u09b0 \u09a8\u09be\u09ae \u09aa\u09b0\u09bf\u09ac\u09b0\u09cd\u09a4\u09a8 \u0995\u09b0\u09be \u09b9\u099a\u09cd\u099b\u09c7"
|
| 185 |
+
}
|
| 186 |
+
}
|
| 187 |
+
}
|
| 188 |
+
},
|
| 189 |
+
"navigation": {
|
| 190 |
+
"header": {
|
| 191 |
+
"chat": "\u099a\u09cd\u09af\u09be\u099f",
|
| 192 |
+
"readme": "\u09b0\u09bf\u09a1\u09ae\u09bf",
|
| 193 |
+
"theme": {
|
| 194 |
+
"light": "Light Theme",
|
| 195 |
+
"dark": "Dark Theme",
|
| 196 |
+
"system": "Follow System"
|
| 197 |
+
}
|
| 198 |
+
},
|
| 199 |
+
"newChat": {
|
| 200 |
+
"button": "\u09a8\u09a4\u09c1\u09a8 \u099a\u09cd\u09af\u09be\u099f",
|
| 201 |
+
"dialog": {
|
| 202 |
+
"title": "\u09a8\u09a4\u09c1\u09a8 \u099a\u09cd\u09af\u09be\u099f \u09a4\u09c8\u09b0\u09bf \u0995\u09b0\u09c1\u09a8",
|
| 203 |
+
"description": "\u098f\u099f\u09bf \u0986\u09aa\u09a8\u09be\u09b0 \u09ac\u09b0\u09cd\u09a4\u09ae\u09be\u09a8 \u099a\u09cd\u09af\u09be\u099f \u0987\u09a4\u09bf\u09b9\u09be\u09b8 \u09ae\u09c1\u099b\u09c7 \u09ab\u09c7\u09b2\u09ac\u09c7\u0964 \u0986\u09aa\u09a8\u09bf \u0995\u09bf \u099a\u09be\u09b2\u09bf\u09af\u09bc\u09c7 \u09af\u09c7\u09a4\u09c7 \u099a\u09be\u09a8?",
|
| 204 |
+
"tooltip": "\u09a8\u09a4\u09c1\u09a8 \u099a\u09cd\u09af\u09be\u099f"
|
| 205 |
+
}
|
| 206 |
+
},
|
| 207 |
+
"user": {
|
| 208 |
+
"menu": {
|
| 209 |
+
"settings": "\u09b8\u09c7\u099f\u09bf\u0982\u09b8",
|
| 210 |
+
"settingsKey": "S",
|
| 211 |
+
"apiKeys": "\u098f\u09aa\u09bf\u0986\u0987 \u0995\u09c0",
|
| 212 |
+
"logout": "\u09b2\u0997\u0986\u0989\u099f"
|
| 213 |
+
}
|
| 214 |
+
}
|
| 215 |
+
},
|
| 216 |
+
"apiKeys": {
|
| 217 |
+
"title": "\u09aa\u09cd\u09b0\u09af\u09bc\u09cb\u099c\u09a8\u09c0\u09af\u09bc \u098f\u09aa\u09bf\u0986\u0987 \u0995\u09c0",
|
| 218 |
+
"description": "\u098f\u0987 \u0985\u09cd\u09af\u09be\u09aa\u09cd\u09b2\u09bf\u0995\u09c7\u09b6\u09a8 \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09a4\u09c7 \u09a8\u09bf\u09ae\u09cd\u09a8\u09b2\u09bf\u0996\u09bf\u09a4 \u098f\u09aa\u09bf\u0986\u0987 \u0995\u09c0 \u09aa\u09cd\u09b0\u09af\u09bc\u09cb\u099c\u09a8\u0964 \u0995\u09c0\u0997\u09c1\u09b2\u09bf \u0986\u09aa\u09a8\u09be\u09b0 \u09a1\u09bf\u09ad\u09be\u0987\u09b8\u09c7\u09b0 \u09b2\u09cb\u0995\u09be\u09b2 \u09b8\u09cd\u099f\u09cb\u09b0\u09c7\u099c\u09c7 \u09b8\u0982\u09b0\u0995\u09cd\u09b7\u09bf\u09a4 \u09a5\u09be\u0995\u09c7\u0964",
|
| 219 |
+
"success": {
|
| 220 |
+
"saved": "\u09b8\u09ab\u09b2\u09ad\u09be\u09ac\u09c7 \u09b8\u0982\u09b0\u0995\u09cd\u09b7\u09bf\u09a4 \u09b9\u09af\u09bc\u09c7\u099b\u09c7"
|
| 221 |
+
}
|
| 222 |
+
},
|
| 223 |
+
"alerts": {
|
| 224 |
+
"info": "Info",
|
| 225 |
+
"note": "Note",
|
| 226 |
+
"tip": "Tip",
|
| 227 |
+
"important": "Important",
|
| 228 |
+
"warning": "Warning",
|
| 229 |
+
"caution": "Caution",
|
| 230 |
+
"debug": "Debug",
|
| 231 |
+
"example": "Example",
|
| 232 |
+
"success": "Success",
|
| 233 |
+
"help": "Help",
|
| 234 |
+
"idea": "Idea",
|
| 235 |
+
"pending": "Pending",
|
| 236 |
+
"security": "Security",
|
| 237 |
+
"beta": "Beta",
|
| 238 |
+
"best-practice": "Best Practice"
|
| 239 |
+
},
|
| 240 |
+
"components": {
|
| 241 |
+
"MultiSelectInput": {
|
| 242 |
+
"placeholder": "\u09ac\u09c7\u099b\u09c7 \u09a8\u09bf\u09a8..."
|
| 243 |
+
}
|
| 244 |
+
}
|
| 245 |
+
}
|
.chainlit/translations/de-DE.json
ADDED
|
@@ -0,0 +1,245 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "Abbrechen",
|
| 5 |
+
"confirm": "Best\u00e4tigen",
|
| 6 |
+
"continue": "Fortfahren",
|
| 7 |
+
"goBack": "Zur\u00fcck",
|
| 8 |
+
"reset": "Zur\u00fccksetzen",
|
| 9 |
+
"submit": "Absenden"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "L\u00e4dt...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "Ein Fehler ist aufgetreten",
|
| 15 |
+
"serverConnection": "Server konnte nicht erreicht werden"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "Melde dich an, um auf die App zuzugreifen",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "E-Mail Adresse",
|
| 25 |
+
"required": "E-Mail Adresse ist ein Pflichtfeld",
|
| 26 |
+
"placeholder": "me@example.com"
|
| 27 |
+
},
|
| 28 |
+
"password": {
|
| 29 |
+
"label": "Passwort",
|
| 30 |
+
"required": "Passwort ist ein Pflichtfeld"
|
| 31 |
+
},
|
| 32 |
+
"actions": {
|
| 33 |
+
"signin": "Anmelden"
|
| 34 |
+
},
|
| 35 |
+
"alternativeText": {
|
| 36 |
+
"or": "ODER"
|
| 37 |
+
}
|
| 38 |
+
},
|
| 39 |
+
"errors": {
|
| 40 |
+
"default": "Anmeldung fehlgeschlagen",
|
| 41 |
+
"signin": "Versuche dich mit einem anderen Konto anzumelden",
|
| 42 |
+
"oauthSignin": "Versuche dich mit einem anderen Konto anzumelden",
|
| 43 |
+
"redirectUriMismatch": "Der Redirect-URI stimmt nicht mit der Konfiguration der Oauth-Anwendung \u00fcberein",
|
| 44 |
+
"oauthCallback": "Versuche dich mit einem anderen Konto anzumelden",
|
| 45 |
+
"oauthCreateAccount": "Versuche dich mit einem anderen Konto anzumelden",
|
| 46 |
+
"emailCreateAccount": "Versuche dich mit einem anderen Konto anzumelden",
|
| 47 |
+
"callback": "Versuche dich mit einem anderen Konto anzumelden",
|
| 48 |
+
"oauthAccountNotLinked": "Um die Identit\u00e4t zu best\u00e4tigen, melde dich mit demselben Konto an, das du urspr\u00fcnglich verwendet hast",
|
| 49 |
+
"emailSignin": "Die E-Mail konnte nicht gesendet werden",
|
| 50 |
+
"emailVerify": "Es wurde eine neue E-Mail versandt. Bitte \u00fcberpr\u00fcfe dein E-Mail Postfach",
|
| 51 |
+
"credentialsSignin": "Anmeldung fehlgeschlagen. \u00dcberpr\u00fcfe, ob die angegebenen Benutzerdaten korrekt sind",
|
| 52 |
+
"sessionRequired": "Bitte melde dich an, um auf diese Seite zuzugreifen"
|
| 53 |
+
}
|
| 54 |
+
},
|
| 55 |
+
"provider": {
|
| 56 |
+
"continue": "Fortfahren mit {{provider}}"
|
| 57 |
+
}
|
| 58 |
+
},
|
| 59 |
+
"chat": {
|
| 60 |
+
"input": {
|
| 61 |
+
"placeholder": "Nachricht eingeben...",
|
| 62 |
+
"actions": {
|
| 63 |
+
"send": "Nachricht senden",
|
| 64 |
+
"stop": "Aufgabe stoppen",
|
| 65 |
+
"attachFiles": "Dateien anh\u00e4ngen"
|
| 66 |
+
}
|
| 67 |
+
},
|
| 68 |
+
"commands": {
|
| 69 |
+
"button": "Tools",
|
| 70 |
+
"changeTool": "Tool wechseln",
|
| 71 |
+
"availableTools": "Verf\u00fcgbare Tools"
|
| 72 |
+
},
|
| 73 |
+
"speech": {
|
| 74 |
+
"start": "Aufnahme starten",
|
| 75 |
+
"stop": "Aufnahme stoppen",
|
| 76 |
+
"connecting": "Verbinde"
|
| 77 |
+
},
|
| 78 |
+
"fileUpload": {
|
| 79 |
+
"dragDrop": "Ziehe deine Dateien hierher",
|
| 80 |
+
"browse": "Dateien durchsuchen",
|
| 81 |
+
"sizeLimit": "Limit:",
|
| 82 |
+
"errors": {
|
| 83 |
+
"failed": "Hochladen fehlgeschlagen",
|
| 84 |
+
"cancelled": "Abbruch des hochladens von"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"cancelUpload": "Upload abbrechen",
|
| 88 |
+
"removeAttachment": "Anhang entfernen"
|
| 89 |
+
}
|
| 90 |
+
},
|
| 91 |
+
"messages": {
|
| 92 |
+
"status": {
|
| 93 |
+
"using": "Verwendet",
|
| 94 |
+
"used": "Verwendete"
|
| 95 |
+
},
|
| 96 |
+
"actions": {
|
| 97 |
+
"copy": {
|
| 98 |
+
"button": "In Zwischenablage kopieren",
|
| 99 |
+
"success": "Kopiert!"
|
| 100 |
+
}
|
| 101 |
+
},
|
| 102 |
+
"feedback": {
|
| 103 |
+
"positive": "Hilfreich",
|
| 104 |
+
"negative": "Nicht hilfreich",
|
| 105 |
+
"edit": "Feedback editieren",
|
| 106 |
+
"dialog": {
|
| 107 |
+
"title": "F\u00fcge einen Kommentar hinzu",
|
| 108 |
+
"submit": "Feedback absenden",
|
| 109 |
+
"yourFeedback": "Dein Feedback..."
|
| 110 |
+
},
|
| 111 |
+
"status": {
|
| 112 |
+
"updating": "Aktualisiert",
|
| 113 |
+
"updated": "Feedback aktualisiert"
|
| 114 |
+
}
|
| 115 |
+
}
|
| 116 |
+
},
|
| 117 |
+
"history": {
|
| 118 |
+
"title": "Vergangene Eingaben",
|
| 119 |
+
"empty": "Leer...",
|
| 120 |
+
"show": "Historie anzeigen"
|
| 121 |
+
},
|
| 122 |
+
"settings": {
|
| 123 |
+
"title": "Einstellungen",
|
| 124 |
+
"customize": "Passe die Chat Einstellungen hier an"
|
| 125 |
+
},
|
| 126 |
+
"watermark": "LLMs k\u00f6nnen Fehler machen. \u00dcberpr\u00fcfe bitte stets die Inhalte."
|
| 127 |
+
},
|
| 128 |
+
"threadHistory": {
|
| 129 |
+
"sidebar": {
|
| 130 |
+
"title": "Vergangene Chats",
|
| 131 |
+
"filters": {
|
| 132 |
+
"search": "Suche",
|
| 133 |
+
"placeholder": "Suche konversationen..."
|
| 134 |
+
},
|
| 135 |
+
"timeframes": {
|
| 136 |
+
"today": "Heute",
|
| 137 |
+
"yesterday": "Gestern",
|
| 138 |
+
"previous7days": "Vor 7 Tagen",
|
| 139 |
+
"previous30days": "Vor 30 Tagen"
|
| 140 |
+
},
|
| 141 |
+
"empty": "Kein Chat gefunden",
|
| 142 |
+
"actions": {
|
| 143 |
+
"close": "Seitenleiste schlie\u00dfen",
|
| 144 |
+
"open": "Seitenleiste \u00f6ffnen"
|
| 145 |
+
}
|
| 146 |
+
},
|
| 147 |
+
"thread": {
|
| 148 |
+
"untitled": "Unbenannter Thread",
|
| 149 |
+
"menu": {
|
| 150 |
+
"rename": "Umbenennen",
|
| 151 |
+
"share": "Teilen",
|
| 152 |
+
"delete": "L\u00f6schen"
|
| 153 |
+
},
|
| 154 |
+
"actions": {
|
| 155 |
+
"share": {
|
| 156 |
+
"title": "Thread l\u00f6schen best\u00e4tigen",
|
| 157 |
+
"button": "Teilen",
|
| 158 |
+
"status": {
|
| 159 |
+
"copied": "Link kopiert",
|
| 160 |
+
"created": "Freigabelink erstellt!",
|
| 161 |
+
"unshared": "Teilen ist f\u00fcr diesen Thread deaktiviert"
|
| 162 |
+
},
|
| 163 |
+
"error": {
|
| 164 |
+
"create": "Fehler beim Erstellen des Freigabelinks",
|
| 165 |
+
"unshare": "Freigabe des Threads konnte nicht aufgehoben werden"
|
| 166 |
+
}
|
| 167 |
+
},
|
| 168 |
+
"delete": {
|
| 169 |
+
"title": "L\u00f6schen best\u00e4tigen",
|
| 170 |
+
"description": "Dies wird den Thread sowie seine Nachrichten und Elemente l\u00f6schen. Dies kann nicht r\u00fcckg\u00e4ngig gemacht werden",
|
| 171 |
+
"success": "Chat gel\u00f6scht",
|
| 172 |
+
"inProgress": "Chat wird gel\u00f6scht"
|
| 173 |
+
},
|
| 174 |
+
"rename": {
|
| 175 |
+
"title": "Thread umbenennen",
|
| 176 |
+
"description": "Gebe einen neuen Namen f\u00fcr den Thread ein",
|
| 177 |
+
"form": {
|
| 178 |
+
"name": {
|
| 179 |
+
"label": "Name",
|
| 180 |
+
"placeholder": "Neuen Namen eingeben"
|
| 181 |
+
}
|
| 182 |
+
},
|
| 183 |
+
"success": "Thread umbenannt!",
|
| 184 |
+
"inProgress": "Thread wird umbenannt"
|
| 185 |
+
}
|
| 186 |
+
}
|
| 187 |
+
}
|
| 188 |
+
},
|
| 189 |
+
"navigation": {
|
| 190 |
+
"header": {
|
| 191 |
+
"chat": "Chat",
|
| 192 |
+
"readme": "Anleitung",
|
| 193 |
+
"theme": {
|
| 194 |
+
"light": "Helles Design",
|
| 195 |
+
"dark": "Dunkles Design",
|
| 196 |
+
"system": "System Design"
|
| 197 |
+
}
|
| 198 |
+
},
|
| 199 |
+
"newChat": {
|
| 200 |
+
"button": "Neuer Chat",
|
| 201 |
+
"dialog": {
|
| 202 |
+
"title": "M\u00f6chtest du einen neuen Chat erstellen?",
|
| 203 |
+
"description": "Es werden die aktuellen Nachrichten gel\u00f6scht und ein neuer Chat ge\u00f6ffnet.",
|
| 204 |
+
"tooltip": "Neuer Chat"
|
| 205 |
+
}
|
| 206 |
+
},
|
| 207 |
+
"user": {
|
| 208 |
+
"menu": {
|
| 209 |
+
"settings": "Einstellungen",
|
| 210 |
+
"settingsKey": "S",
|
| 211 |
+
"apiKeys": "API Schl\u00fcssel",
|
| 212 |
+
"logout": "Abmelden"
|
| 213 |
+
}
|
| 214 |
+
}
|
| 215 |
+
},
|
| 216 |
+
"apiKeys": {
|
| 217 |
+
"title": "Ben\u00f6tigte API Schl\u00fcssel",
|
| 218 |
+
"description": "Um diese App zu nutzen, werden die folgenden API Schl\u00fcssel ben\u00f6tigt. Die Schl\u00fcssel werden im lokalen Speicher Ihres Ger\u00e4ts gespeichert.",
|
| 219 |
+
"success": {
|
| 220 |
+
"saved": "Erfolgreich gespeichert"
|
| 221 |
+
}
|
| 222 |
+
},
|
| 223 |
+
"alerts": {
|
| 224 |
+
"info": "Info",
|
| 225 |
+
"note": "Hinweis",
|
| 226 |
+
"tip": "Tipp",
|
| 227 |
+
"important": "Wichtig",
|
| 228 |
+
"warning": "Warnung",
|
| 229 |
+
"caution": "Vorsicht",
|
| 230 |
+
"debug": "Debug",
|
| 231 |
+
"example": "Beispiel",
|
| 232 |
+
"success": "Erfolg",
|
| 233 |
+
"help": "Hilfe",
|
| 234 |
+
"idea": "Idee",
|
| 235 |
+
"pending": "Ausstehend",
|
| 236 |
+
"security": "Sicherheit",
|
| 237 |
+
"beta": "Beta",
|
| 238 |
+
"best-practice": "Bew\u00e4hrte Praxis"
|
| 239 |
+
},
|
| 240 |
+
"components": {
|
| 241 |
+
"MultiSelectInput": {
|
| 242 |
+
"placeholder": "W\u00e4hle aus..."
|
| 243 |
+
}
|
| 244 |
+
}
|
| 245 |
+
}
|
.chainlit/translations/el-GR.json
ADDED
|
@@ -0,0 +1,245 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "\u0386\u03ba\u03c5\u03c1\u03bf",
|
| 5 |
+
"confirm": "\u0395\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03af\u03c9\u03c3\u03b7",
|
| 6 |
+
"continue": "\u03a3\u03c5\u03bd\u03ad\u03c7\u03b5\u03b9\u03b1",
|
| 7 |
+
"goBack": "\u0395\u03c0\u03b9\u03c3\u03c4\u03c1\u03bf\u03c6\u03ae",
|
| 8 |
+
"reset": "\u0395\u03c0\u03b1\u03bd\u03b1\u03c6\u03bf\u03c1\u03ac",
|
| 9 |
+
"submit": "\u03a5\u03c0\u03bf\u03b2\u03bf\u03bb\u03ae"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "\u03a6\u03cc\u03c1\u03c4\u03c9\u03c3\u03b7...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "\u03a0\u03b1\u03c1\u03bf\u03c5\u03c3\u03b9\u03ac\u03c3\u03c4\u03b7\u03ba\u03b5 \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1",
|
| 15 |
+
"serverConnection": "\u0394\u03b5\u03bd \u03ae\u03c4\u03b1\u03bd \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b7 \u03b5\u03c0\u03b9\u03ba\u03bf\u03b9\u03bd\u03c9\u03bd\u03af\u03b1 \u03bc\u03b5 \u03c4\u03bf\u03bd \u03b4\u03b9\u03b1\u03ba\u03bf\u03bc\u03b9\u03c3\u03c4\u03ae"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "\u03a3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af\u03c4\u03b5 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03b1\u03c0\u03bf\u03ba\u03c4\u03ae\u03c3\u03b5\u03c4\u03b5 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7 \u03c3\u03c4\u03b7\u03bd \u03b5\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "\u0394\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7 \u03b7\u03bb\u03b5\u03ba\u03c4\u03c1\u03bf\u03bd\u03b9\u03ba\u03bf\u03cd \u03c4\u03b1\u03c7\u03c5\u03b4\u03c1\u03bf\u03bc\u03b5\u03af\u03bf\u03c5",
|
| 25 |
+
"required": "\u03a4\u03bf email \u03b5\u03af\u03bd\u03b1\u03b9 \u03c5\u03c0\u03bf\u03c7\u03c1\u03b5\u03c9\u03c4\u03b9\u03ba\u03cc \u03c0\u03b5\u03b4\u03af\u03bf",
|
| 26 |
+
"placeholder": "me@example.com"
|
| 27 |
+
},
|
| 28 |
+
"password": {
|
| 29 |
+
"label": "\u039a\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2",
|
| 30 |
+
"required": "\u039f \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9 \u03c5\u03c0\u03bf\u03c7\u03c1\u03b5\u03c9\u03c4\u03b9\u03ba\u03cc \u03c0\u03b5\u03b4\u03af\u03bf"
|
| 31 |
+
},
|
| 32 |
+
"actions": {
|
| 33 |
+
"signin": "\u03a3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7"
|
| 34 |
+
},
|
| 35 |
+
"alternativeText": {
|
| 36 |
+
"or": "\u03ae"
|
| 37 |
+
}
|
| 38 |
+
},
|
| 39 |
+
"errors": {
|
| 40 |
+
"default": "\u0394\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b7 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7",
|
| 41 |
+
"signin": "\u0394\u03bf\u03ba\u03b9\u03bc\u03ac\u03c3\u03c4\u03b5 \u03bd\u03b1 \u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af\u03c4\u03b5 \u03bc\u03b5 \u03b4\u03b9\u03b1\u03c6\u03bf\u03c1\u03b5\u03c4\u03b9\u03ba\u03cc \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc",
|
| 42 |
+
"oauthSignin": "\u0394\u03bf\u03ba\u03b9\u03bc\u03ac\u03c3\u03c4\u03b5 \u03bd\u03b1 \u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af\u03c4\u03b5 \u03bc\u03b5 \u03b4\u03b9\u03b1\u03c6\u03bf\u03c1\u03b5\u03c4\u03b9\u03ba\u03cc \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc",
|
| 43 |
+
"redirectUriMismatch": "\u039f \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03bc\u03bf\u03c2 \u03b1\u03bd\u03b1\u03ba\u03b1\u03c4\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7\u03c2 \u03b4\u03b5\u03bd \u03c4\u03b1\u03b9\u03c1\u03b9\u03ac\u03b6\u03b5\u03b9 \u03bc\u03b5 \u03c4\u03b7 \u03c1\u03cd\u03b8\u03bc\u03b9\u03c3\u03b7 \u03c4\u03b7\u03c2 \u03b1\u03c5\u03b8\u03b5\u03bd\u03c4\u03b9\u03ba\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b7\u03c2 \u03c4\u03b7\u03c2 \u03b5\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae\u03c2",
|
| 44 |
+
"oauthCallback": "\u0394\u03bf\u03ba\u03b9\u03bc\u03ac\u03c3\u03c4\u03b5 \u03bd\u03b1 \u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af\u03c4\u03b5 \u03bc\u03b5 \u03b4\u03b9\u03b1\u03c6\u03bf\u03c1\u03b5\u03c4\u03b9\u03ba\u03cc \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc",
|
| 45 |
+
"oauthCreateAccount": "\u0394\u03bf\u03ba\u03b9\u03bc\u03ac\u03c3\u03c4\u03b5 \u03bd\u03b1 \u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af\u03c4\u03b5 \u03bc\u03b5 \u03b4\u03b9\u03b1\u03c6\u03bf\u03c1\u03b5\u03c4\u03b9\u03ba\u03cc \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc",
|
| 46 |
+
"emailCreateAccount": "\u0394\u03bf\u03ba\u03b9\u03bc\u03ac\u03c3\u03c4\u03b5 \u03bd\u03b1 \u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af\u03c4\u03b5 \u03bc\u03b5 \u03b4\u03b9\u03b1\u03c6\u03bf\u03c1\u03b5\u03c4\u03b9\u03ba\u03cc \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc",
|
| 47 |
+
"callback": "\u0394\u03bf\u03ba\u03b9\u03bc\u03ac\u03c3\u03c4\u03b5 \u03bd\u03b1 \u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af\u03c4\u03b5 \u03bc\u03b5 \u03b4\u03b9\u03b1\u03c6\u03bf\u03c1\u03b5\u03c4\u03b9\u03ba\u03cc \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc",
|
| 48 |
+
"oauthAccountNotLinked": "\u0393\u03b9\u03b1 \u03bd\u03b1 \u03b5\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03b9\u03ce\u03c3\u03b5\u03c4\u03b5 \u03c4\u03b7\u03bd \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03ac \u03c3\u03b1\u03c2, \u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af\u03c4\u03b5 \u03bc\u03b5 \u03c4\u03bf\u03bd \u03af\u03b4\u03b9\u03bf \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc \u03c0\u03bf\u03c5 \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b1\u03c4\u03b5 \u03b1\u03c1\u03c7\u03b9\u03ba\u03ac",
|
| 49 |
+
"emailSignin": "\u0394\u03b5\u03bd \u03ae\u03c4\u03b1\u03bd \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b7 \u03b1\u03c0\u03bf\u03c3\u03c4\u03bf\u03bb\u03ae \u03c4\u03bf\u03c5 email",
|
| 50 |
+
"emailVerify": "\u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b5\u03c0\u03b1\u03bb\u03b7\u03b8\u03b5\u03cd\u03c3\u03c4\u03b5 \u03c4\u03b7\u03bd \u03b4\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7 \u03b7\u03bb\u03b5\u03ba\u03c4\u03c1\u03bf\u03bd\u03b9\u03ba\u03bf\u03cd \u03c4\u03b1\u03c7\u03c5\u03b4\u03c1\u03bf\u03bc\u03b5\u03af\u03bf\u03c5 \u03c3\u03b1\u03c2, \u03ad\u03bd\u03b1 \u03bd\u03ad\u03bf email \u03c3\u03b1\u03c2 \u03ad\u03c7\u03b5\u03b9 \u03c3\u03c4\u03b1\u03bb\u03b5\u03af",
|
| 51 |
+
"credentialsSignin": "\u0397 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03b1\u03c0\u03ad\u03c4\u03c5\u03c7\u03b5. \u0395\u03bb\u03ad\u03b3\u03be\u03c4\u03b5 \u03cc\u03c4\u03b9 \u03c4\u03b1 \u03c3\u03c4\u03bf\u03b9\u03c7\u03b5\u03af\u03b1 \u03c0\u03bf\u03c5 \u03b4\u03ce\u03c3\u03b1\u03c4\u03b5 \u03b5\u03af\u03bd\u03b1\u03b9 \u03c3\u03c9\u03c3\u03c4\u03ac",
|
| 52 |
+
"sessionRequired": "\u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af\u03c4\u03b5 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03b1\u03c0\u03bf\u03ba\u03c4\u03ae\u03c3\u03b5\u03c4\u03b5 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7 \u03c3\u03b5 \u03b1\u03c5\u03c4\u03ae\u03bd \u03c4\u03b7 \u03c3\u03b5\u03bb\u03af\u03b4\u03b1"
|
| 53 |
+
}
|
| 54 |
+
},
|
| 55 |
+
"provider": {
|
| 56 |
+
"continue": "\u03a3\u03c5\u03bd\u03ad\u03c7\u03b5\u03b9\u03b1 \u03bc\u03b5 {{provider}}"
|
| 57 |
+
}
|
| 58 |
+
},
|
| 59 |
+
"chat": {
|
| 60 |
+
"input": {
|
| 61 |
+
"placeholder": "\u03a0\u03bb\u03b7\u03ba\u03c4\u03c1\u03bf\u03bb\u03bf\u03b3\u03ae\u03c3\u03c4\u03b5 \u03c4\u03bf \u03bc\u03ae\u03bd\u03c5\u03bc\u03ac \u03c3\u03b1\u03c2 \u03b5\u03b4\u03ce...",
|
| 62 |
+
"actions": {
|
| 63 |
+
"send": "\u0391\u03c0\u03bf\u03c3\u03c4\u03bf\u03bb\u03ae \u03bc\u03b7\u03bd\u03cd\u03bc\u03b1\u03c4\u03bf\u03c2",
|
| 64 |
+
"stop": "\u0394\u03b9\u03b1\u03ba\u03bf\u03c0\u03ae \u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1\u03c2",
|
| 65 |
+
"attachFiles": "\u0395\u03c0\u03b9\u03c3\u03cd\u03bd\u03b1\u03c8\u03b7 \u03b1\u03c1\u03c7\u03b5\u03af\u03c9\u03bd"
|
| 66 |
+
}
|
| 67 |
+
},
|
| 68 |
+
"commands": {
|
| 69 |
+
"button": "\u0395\u03c1\u03b3\u03b1\u03bb\u03b5\u03af\u03b1",
|
| 70 |
+
"changeTool": "\u0391\u03bb\u03bb\u03b1\u03b3\u03ae \u0395\u03c1\u03b3\u03b1\u03bb\u03b5\u03af\u03bf\u03c5",
|
| 71 |
+
"availableTools": "\u0394\u03b9\u03b1\u03b8\u03ad\u03c3\u03b9\u03bc\u03b1 \u0395\u03c1\u03b3\u03b1\u03bb\u03b5\u03af\u03b1"
|
| 72 |
+
},
|
| 73 |
+
"speech": {
|
| 74 |
+
"start": "\u0388\u03bd\u03b1\u03c1\u03be\u03b7 \u03b5\u03b3\u03b3\u03c1\u03b1\u03c6\u03ae\u03c2",
|
| 75 |
+
"stop": "\u0394\u03b9\u03b1\u03ba\u03bf\u03c0\u03ae \u03b5\u03b3\u03b3\u03c1\u03b1\u03c6\u03ae\u03c2",
|
| 76 |
+
"connecting": "\u03a3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7"
|
| 77 |
+
},
|
| 78 |
+
"fileUpload": {
|
| 79 |
+
"dragDrop": "\u03a3\u03cd\u03c1\u03b5\u03c4\u03b5 \u03b1\u03c1\u03c7\u03b5\u03af\u03b1 \u03b5\u03b4\u03ce",
|
| 80 |
+
"browse": "\u0391\u03bd\u03b1\u03b6\u03ae\u03c4\u03b7\u03c3\u03b7 \u03b1\u03c1\u03c7\u03b5\u03af\u03c9\u03bd",
|
| 81 |
+
"sizeLimit": "\u038c\u03c1\u03b9\u03bf:",
|
| 82 |
+
"errors": {
|
| 83 |
+
"failed": "\u0397 \u03bc\u03b5\u03c4\u03b1\u03c6\u03cc\u03c1\u03c4\u03c9\u03c3\u03b7 \u03b1\u03c0\u03ad\u03c4\u03c5\u03c7\u03b5",
|
| 84 |
+
"cancelled": "\u0391\u03ba\u03c5\u03c1\u03ce\u03b8\u03b7\u03ba\u03b5 \u03b7 \u03bc\u03b5\u03c4\u03b1\u03c6\u03cc\u03c1\u03c4\u03c9\u03c3\u03b7 \u03c4\u03bf\u03c5"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"cancelUpload": "\u0391\u03ba\u03cd\u03c1\u03c9\u03c3\u03b7 \u03bc\u03b5\u03c4\u03b1\u03c6\u03cc\u03c1\u03c4\u03c9\u03c3\u03b7\u03c2",
|
| 88 |
+
"removeAttachment": "\u0391\u03c6\u03b1\u03af\u03c1\u03b5\u03c3\u03b7 \u03b5\u03c0\u03b9\u03c3\u03cd\u03bd\u03b1\u03c8\u03b7\u03c2"
|
| 89 |
+
}
|
| 90 |
+
},
|
| 91 |
+
"messages": {
|
| 92 |
+
"status": {
|
| 93 |
+
"using": "\u039c\u03b5 \u03c4\u03b7 \u03c7\u03c1\u03ae\u03c3\u03b7",
|
| 94 |
+
"used": "\u03a7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03ae\u03b8\u03b7\u03ba\u03b5"
|
| 95 |
+
},
|
| 96 |
+
"actions": {
|
| 97 |
+
"copy": {
|
| 98 |
+
"button": "\u0391\u03bd\u03c4\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae \u03c3\u03c4\u03bf \u03c0\u03c1\u03cc\u03c7\u03b5\u03b9\u03c1\u03bf",
|
| 99 |
+
"success": "\u0391\u03bd\u03c4\u03b9\u03b3\u03c1\u03ac\u03c6\u03b7\u03ba\u03b5!"
|
| 100 |
+
}
|
| 101 |
+
},
|
| 102 |
+
"feedback": {
|
| 103 |
+
"positive": "\u03a7\u03c1\u03ae\u03c3\u03b9\u03bc\u03bf\u03c2",
|
| 104 |
+
"negative": "\u039c\u03b7 \u03c7\u03c1\u03ae\u03c3\u03b9\u03bc\u03bf\u03c2",
|
| 105 |
+
"edit": "\u0395\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1 \u03c3\u03c7\u03bf\u03bb\u03af\u03c9\u03bd",
|
| 106 |
+
"dialog": {
|
| 107 |
+
"title": "\u03a0\u03c1\u03bf\u03c3\u03b8\u03ae\u03ba\u03b7 \u03c3\u03c7\u03bf\u03bb\u03af\u03bf\u03c5",
|
| 108 |
+
"submit": "\u03a5\u03c0\u03bf\u03b2\u03bf\u03bb\u03ae \u03c3\u03c7\u03bf\u03bb\u03af\u03c9\u03bd",
|
| 109 |
+
"yourFeedback": "\u0397 \u03b3\u03bd\u03ce\u03bc\u03b7 \u03c3\u03b1\u03c2"
|
| 110 |
+
},
|
| 111 |
+
"status": {
|
| 112 |
+
"updating": "\u0395\u03bd\u03b7\u03bc\u03b5\u03c1\u03ce\u03bd\u03b5\u03c4\u03b1\u03b9",
|
| 113 |
+
"updated": "\u03a4\u03b1 \u03c3\u03c7\u03cc\u03bb\u03b9\u03b1 \u03b5\u03bd\u03b7\u03bc\u03b5\u03c1\u03ce\u03b8\u03b7\u03ba\u03b1\u03bd"
|
| 114 |
+
}
|
| 115 |
+
}
|
| 116 |
+
},
|
| 117 |
+
"history": {
|
| 118 |
+
"title": "\u03a4\u03b5\u03bb\u03b5\u03c5\u03c4\u03b1\u03af\u03b5\u03c2 \u03b5\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ad\u03c2",
|
| 119 |
+
"empty": "\u03a4\u03cc\u03c3\u03bf \u03ac\u03b4\u03b5\u03b9\u03bf...",
|
| 120 |
+
"show": "\u03a0\u03c1\u03bf\u03b2\u03bf\u03bb\u03ae \u03b9\u03c3\u03c4\u03bf\u03c1\u03b9\u03ba\u03bf\u03cd"
|
| 121 |
+
},
|
| 122 |
+
"settings": {
|
| 123 |
+
"title": "\u03a0\u03af\u03bd\u03b1\u03ba\u03b1\u03c2 \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03c9\u03bd",
|
| 124 |
+
"customize": "\u03a0\u03c1\u03bf\u03c3\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae"
|
| 125 |
+
},
|
| 126 |
+
"watermark": "\u03a4\u03b1 \u039c\u0393\u039c \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03ba\u03ac\u03bd\u03bf\u03c5\u03bd \u03bb\u03ac\u03b8\u03b7. \u0395\u03bb\u03ad\u03b3\u03be\u03c4\u03b5 \u03c3\u03b7\u03bc\u03b1\u03bd\u03c4\u03b9\u03ba\u03ad\u03c2 \u03c0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2."
|
| 127 |
+
},
|
| 128 |
+
"threadHistory": {
|
| 129 |
+
"sidebar": {
|
| 130 |
+
"title": "\u03a0\u03b1\u03bb\u03b1\u03b9\u03cc\u03c4\u03b5\u03c1\u03b5\u03c2 \u03c3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b5\u03c2",
|
| 131 |
+
"filters": {
|
| 132 |
+
"search": "\u0391\u03bd\u03b1\u03b6\u03ae\u03c4\u03b7\u03c3\u03b7",
|
| 133 |
+
"placeholder": "\u0391\u03bd\u03b1\u03b6\u03ae\u03c4\u03b7\u03c3\u03b7 \u03c3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03b9\u03ce\u03bd..."
|
| 134 |
+
},
|
| 135 |
+
"timeframes": {
|
| 136 |
+
"today": "\u03a3\u03ae\u03bc\u03b5\u03c1\u03b1",
|
| 137 |
+
"yesterday": "\u03a7\u03b8\u03b5\u03c2",
|
| 138 |
+
"previous7days": "\u03a0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03b5\u03c2 7 \u03b7\u03bc\u03ad\u03c1\u03b5\u03c2",
|
| 139 |
+
"previous30days": "\u03a0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03b5\u03c2 30 \u03b7\u03bc\u03ad\u03c1\u03b5\u03c2"
|
| 140 |
+
},
|
| 141 |
+
"empty": "\u0394\u03b5\u03bd \u03b2\u03c1\u03ad\u03b8\u03b7\u03ba\u03b1\u03bd \u03bd\u03ae\u03bc\u03b1\u03c4\u03b1",
|
| 142 |
+
"actions": {
|
| 143 |
+
"close": "\u039a\u03bb\u03b5\u03af\u03c3\u03b9\u03bc\u03bf \u03c0\u03bb\u03b1\u03ca\u03bd\u03ae\u03c2 \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae\u03c2",
|
| 144 |
+
"open": "\u0386\u03bd\u03bf\u03b9\u03b3\u03bc\u03b1 \u03c0\u03bb\u03b1\u03ca\u03bd\u03ae\u03c2 \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae\u03c2"
|
| 145 |
+
}
|
| 146 |
+
},
|
| 147 |
+
"thread": {
|
| 148 |
+
"untitled": "\u03a3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1 \u03c7\u03c9\u03c1\u03af\u03c2 \u03c4\u03af\u03c4\u03bb\u03bf",
|
| 149 |
+
"menu": {
|
| 150 |
+
"rename": "\u039c\u03b5\u03c4\u03bf\u03bd\u03bf\u03bc\u03b1\u03c3\u03af\u03b1",
|
| 151 |
+
"share": "\u039a\u03bf\u03b9\u03bd\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7",
|
| 152 |
+
"delete": "\u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae"
|
| 153 |
+
},
|
| 154 |
+
"actions": {
|
| 155 |
+
"share": {
|
| 156 |
+
"title": "\u039a\u03bf\u03b9\u03bd\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03c3\u03c5\u03bd\u03b4\u03ad\u03c3\u03bc\u03bf\u03c5 \u03c3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1\u03c2",
|
| 157 |
+
"button": "\u039a\u03bf\u03b9\u03bd\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7",
|
| 158 |
+
"status": {
|
| 159 |
+
"copied": "\u039f \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03bc\u03bf\u03c2 \u03b1\u03bd\u03c4\u03b9\u03b3\u03c1\u03ac\u03c6\u03b7\u03ba\u03b5",
|
| 160 |
+
"created": "\u039f \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03bc\u03bf\u03c2 \u03ba\u03bf\u03b9\u03bd\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7\u03c2 \u03b4\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03ae\u03b8\u03b7\u03ba\u03b5!",
|
| 161 |
+
"unshared": "\u0397 \u03ba\u03bf\u03b9\u03bd\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03b1\u03c0\u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03ae\u03b8\u03b7\u03ba\u03b5 \u03b3\u03b9\u03b1 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03bd\u03ae\u03bc\u03b1"
|
| 162 |
+
},
|
| 163 |
+
"error": {
|
| 164 |
+
"create": "\u0391\u03c0\u03bf\u03c4\u03c5\u03c7\u03af\u03b1 \u03b4\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03af\u03b1\u03c2 \u03c3\u03c5\u03bd\u03b4\u03ad\u03c3\u03bc\u03bf\u03c5 \u03ba\u03bf\u03b9\u03bd\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7\u03c2",
|
| 165 |
+
"unshare": "\u0391\u03c0\u03bf\u03c4\u03c5\u03c7\u03af\u03b1 \u03b4\u03b9\u03b1\u03ba\u03bf\u03c0\u03ae\u03c2 \u03ba\u03bf\u03b9\u03bd\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7\u03c2 \u03bd\u03ae\u03bc\u03b1\u03c4\u03bf\u03c2"
|
| 166 |
+
}
|
| 167 |
+
},
|
| 168 |
+
"delete": {
|
| 169 |
+
"title": "\u0395\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03af\u03c9\u03c3\u03b7 \u03b4\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae\u03c2",
|
| 170 |
+
"description": "\u0391\u03c5\u03c4\u03cc \u03b8\u03b1 \u03b4\u03b9\u03b1\u03b3\u03c1\u03ac\u03c8\u03b5\u03b9 \u03c4\u03bf \u03bd\u03ae\u03bc\u03b1 \u03ba\u03b1\u03b8\u03ce\u03c2 \u03ba\u03b1\u03b9 \u03c4\u03b1 \u03bc\u03b7\u03bd\u03cd\u03bc\u03b1\u03c4\u03b1 \u03ba\u03b1\u03b9 \u03c4\u03b1 \u03c3\u03c4\u03bf\u03b9\u03c7\u03b5\u03af\u03b1 \u03c4\u03bf\u03c5. \u0391\u03c5\u03c4\u03ae \u03b7 \u03b5\u03bd\u03ad\u03c1\u03b3\u03b5\u03b9\u03b1 \u03b4\u03b5\u03bd \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03b1\u03bd\u03b1\u03b9\u03c1\u03b5\u03b8\u03b5\u03af.",
|
| 171 |
+
"success": "\u0397 \u03c3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1 \u03b4\u03b9\u03b1\u03b3\u03c1\u03ac\u03c6\u03b7\u03ba\u03b5",
|
| 172 |
+
"inProgress": "\u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae \u03c3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1\u03c2"
|
| 173 |
+
},
|
| 174 |
+
"rename": {
|
| 175 |
+
"title": "\u039c\u03b5\u03c4\u03bf\u03bd\u03bf\u03bc\u03b1\u03c3\u03af\u03b1 \u039d\u03ae\u03bc\u03b1\u03c4\u03bf\u03c2",
|
| 176 |
+
"description": "\u0395\u03b9\u03c3\u03b1\u03b3\u03ac\u03b3\u03b5\u03c4\u03b5 \u03ad\u03bd\u03b1 \u03bd\u03ad\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03b3\u03b9\u03b1 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03bd\u03ae\u03bc\u03b1",
|
| 177 |
+
"form": {
|
| 178 |
+
"name": {
|
| 179 |
+
"label": "\u038c\u03bd\u03bf\u03bc\u03b1",
|
| 180 |
+
"placeholder": "\u0395\u03b9\u03c3\u03b1\u03b3\u03ac\u03b3\u03b5\u03c4\u03b5 \u03bd\u03ad\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1"
|
| 181 |
+
}
|
| 182 |
+
},
|
| 183 |
+
"success": "\u03a4\u03bf \u03bd\u03ae\u03bc\u03b1 \u03bc\u03b5\u03c4\u03bf\u03bd\u03bf\u03bc\u03ac\u03c3\u03c4\u03b7\u03ba\u03b5!",
|
| 184 |
+
"inProgress": "\u039c\u03b5\u03c4\u03bf\u03bd\u03bf\u03bc\u03b1\u03c3\u03af\u03b1 \u039d\u03ae\u03bc\u03b1\u03c4\u03bf\u03c2"
|
| 185 |
+
}
|
| 186 |
+
}
|
| 187 |
+
}
|
| 188 |
+
},
|
| 189 |
+
"navigation": {
|
| 190 |
+
"header": {
|
| 191 |
+
"chat": "\u03a3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1",
|
| 192 |
+
"readme": "\u0394\u03b9\u03ac\u03b2\u03b1\u03c3\u03ad \u03bc\u03b5",
|
| 193 |
+
"theme": {
|
| 194 |
+
"light": "\u03a6\u03c9\u03c4\u03b5\u03b9\u03bd\u03cc \u0398\u03ad\u03bc\u03b1",
|
| 195 |
+
"dark": "\u03a3\u03ba\u03bf\u03c4\u03b5\u03b9\u03bd\u03cc \u03b8\u03ad\u03bc\u03b1",
|
| 196 |
+
"system": "\u0391\u03ba\u03bf\u03bb\u03bf\u03c5\u03b8\u03ae\u03c3\u03c4\u03b5 \u03c4\u03bf \u03c3\u03cd\u03c3\u03c4\u03b7\u03bc\u03b1"
|
| 197 |
+
}
|
| 198 |
+
},
|
| 199 |
+
"newChat": {
|
| 200 |
+
"button": "\u039d\u03ad\u03b1 \u03a3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1",
|
| 201 |
+
"dialog": {
|
| 202 |
+
"title": "\u0394\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u039d\u03ad\u03b1\u03c2 \u03a3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1\u03c2",
|
| 203 |
+
"description": "\u0391\u03c5\u03c4\u03cc \u03b8\u03b1 \u03b4\u03b9\u03b1\u03b3\u03c1\u03ac\u03c8\u03b5\u03b9 \u03c4\u03bf \u03c4\u03c1\u03ad\u03c7\u03bf\u03bd \u03b9\u03c3\u03c4\u03bf\u03c1\u03b9\u03ba\u03cc \u03c3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1\u03c2 \u03c3\u03b1\u03c2. \u0395\u03af\u03c3\u03c4\u03b5 \u03b2\u03ad\u03b2\u03b1\u03b9\u03bf\u03b9 \u03cc\u03c4\u03b9 \u03b8\u03ad\u03bb\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03c3\u03c5\u03bd\u03b5\u03c7\u03af\u03c3\u03b5\u03c4\u03b5;",
|
| 204 |
+
"tooltip": "\u039d\u03ad\u03b1 \u03a3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1"
|
| 205 |
+
}
|
| 206 |
+
},
|
| 207 |
+
"user": {
|
| 208 |
+
"menu": {
|
| 209 |
+
"settings": "\u03a1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03b9\u03c2",
|
| 210 |
+
"settingsKey": "S",
|
| 211 |
+
"apiKeys": "\u039a\u03bb\u03b5\u03b9\u03b4\u03b9\u03ac API",
|
| 212 |
+
"logout": "\u0391\u03c0\u03bf\u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7"
|
| 213 |
+
}
|
| 214 |
+
}
|
| 215 |
+
},
|
| 216 |
+
"apiKeys": {
|
| 217 |
+
"title": "\u0391\u03c0\u03b1\u03b9\u03c4\u03bf\u03cd\u03bc\u03b5\u03bd\u03b1 \u03ba\u03bb\u03b5\u03b9\u03b4\u03b9\u03ac API",
|
| 218 |
+
"description": "\u0393\u03b9\u03b1 \u03bd\u03b1 \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b5\u03c4\u03b5 \u03b1\u03c5\u03c4\u03ae\u03bd \u03c4\u03b7\u03bd \u03b5\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae, \u03b1\u03c0\u03b1\u03b9\u03c4\u03bf\u03cd\u03bd\u03c4\u03b1\u03b9 \u03c4\u03b1 \u03b1\u03ba\u03cc\u03bb\u03bf\u03c5\u03b8\u03b1 \u03ba\u03bb\u03b5\u03b9\u03b4\u03b9\u03ac API. \u03a4\u03b1 \u03ba\u03bb\u03b5\u03b9\u03b4\u03b9\u03ac \u03b5\u03af\u03bd\u03b1\u03b9 \u03b1\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03c5\u03bc\u03ad\u03bd\u03b1 \u03c3\u03c4\u03bf\u03bd \u03c4\u03bf\u03c0\u03b9\u03ba\u03cc \u03c7\u03ce\u03c1\u03bf \u03b1\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7\u03c2 \u03c4\u03b7\u03c2 \u03c3\u03c5\u03c3\u03ba\u03b5\u03c5\u03ae\u03c2 \u03c3\u03b1\u03c2.",
|
| 219 |
+
"success": {
|
| 220 |
+
"saved": "\u0391\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03cd\u03c4\u03b7\u03ba\u03b5 \u03bc\u03b5 \u03b5\u03c0\u03b9\u03c4\u03c5\u03c7\u03af\u03b1"
|
| 221 |
+
}
|
| 222 |
+
},
|
| 223 |
+
"alerts": {
|
| 224 |
+
"info": "\u03a0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2",
|
| 225 |
+
"note": "\u03a3\u03b7\u03bc\u03b5\u03af\u03c9\u03c3\u03b7",
|
| 226 |
+
"tip": "\u03a3\u03c5\u03bc\u03b2\u03bf\u03c5\u03bb\u03ae",
|
| 227 |
+
"important": "\u03a3\u03b7\u03bc\u03b1\u03bd\u03c4\u03b9\u03ba\u03cc",
|
| 228 |
+
"warning": "\u03a0\u03c1\u03bf\u03b5\u03b9\u03b4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7",
|
| 229 |
+
"caution": "\u03a0\u03c1\u03bf\u03c3\u03bf\u03c7\u03ae",
|
| 230 |
+
"debug": "\u0395\u03bd\u03c4\u03bf\u03c0\u03b9\u03c3\u03bc\u03cc\u03c2 \u03c3\u03c6\u03b1\u03bb\u03bc\u03ac\u03c4\u03c9\u03bd",
|
| 231 |
+
"example": "\u03a0\u03b1\u03c1\u03ac\u03b4\u03b5\u03b9\u03b3\u03bc\u03b1",
|
| 232 |
+
"success": "\u0395\u03c0\u03b9\u03c4\u03c5\u03c7\u03af\u03b1",
|
| 233 |
+
"help": "\u0392\u03bf\u03ae\u03b8\u03b5\u03b9\u03b1",
|
| 234 |
+
"idea": "\u0399\u03b4\u03ad\u03b1",
|
| 235 |
+
"pending": "\u03a3\u03b5 \u03b5\u03ba\u03ba\u03c1\u03b5\u03bc\u03cc\u03c4\u03b7\u03c4\u03b1",
|
| 236 |
+
"security": "\u0391\u03c3\u03c6\u03ac\u03bb\u03b5\u03b9\u03b1",
|
| 237 |
+
"beta": "Beta",
|
| 238 |
+
"best-practice": "\u0392\u03ad\u03bb\u03c4\u03b9\u03c3\u03c4\u03b7 \u03a0\u03c1\u03b1\u03ba\u03c4\u03b9\u03ba\u03ae"
|
| 239 |
+
},
|
| 240 |
+
"components": {
|
| 241 |
+
"MultiSelectInput": {
|
| 242 |
+
"placeholder": "\u0395\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5..."
|
| 243 |
+
}
|
| 244 |
+
}
|
| 245 |
+
}
|
.chainlit/translations/en-US.json
ADDED
|
@@ -0,0 +1,245 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "Cancel",
|
| 5 |
+
"confirm": "Confirm",
|
| 6 |
+
"continue": "Continue",
|
| 7 |
+
"goBack": "Go Back",
|
| 8 |
+
"reset": "Reset",
|
| 9 |
+
"submit": "Submit"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "Loading...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "An error occurred",
|
| 15 |
+
"serverConnection": "Could not reach the server"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "Login to access the app",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "Email address",
|
| 25 |
+
"required": "email is a required field",
|
| 26 |
+
"placeholder": "me@example.com"
|
| 27 |
+
},
|
| 28 |
+
"password": {
|
| 29 |
+
"label": "Password",
|
| 30 |
+
"required": "password is a required field"
|
| 31 |
+
},
|
| 32 |
+
"actions": {
|
| 33 |
+
"signin": "Sign In"
|
| 34 |
+
},
|
| 35 |
+
"alternativeText": {
|
| 36 |
+
"or": "OR"
|
| 37 |
+
}
|
| 38 |
+
},
|
| 39 |
+
"errors": {
|
| 40 |
+
"default": "Unable to sign in",
|
| 41 |
+
"signin": "Try signing in with a different account",
|
| 42 |
+
"oauthSignin": "Try signing in with a different account",
|
| 43 |
+
"redirectUriMismatch": "The redirect URI is not matching the oauth app configuration",
|
| 44 |
+
"oauthCallback": "Try signing in with a different account",
|
| 45 |
+
"oauthCreateAccount": "Try signing in with a different account",
|
| 46 |
+
"emailCreateAccount": "Try signing in with a different account",
|
| 47 |
+
"callback": "Try signing in with a different account",
|
| 48 |
+
"oauthAccountNotLinked": "To confirm your identity, sign in with the same account you used originally",
|
| 49 |
+
"emailSignin": "The e-mail could not be sent",
|
| 50 |
+
"emailVerify": "Please verify your email, a new email has been sent",
|
| 51 |
+
"credentialsSignin": "Sign in failed. Check the details you provided are correct",
|
| 52 |
+
"sessionRequired": "Please sign in to access this page"
|
| 53 |
+
}
|
| 54 |
+
},
|
| 55 |
+
"provider": {
|
| 56 |
+
"continue": "Continue with {{provider}}"
|
| 57 |
+
}
|
| 58 |
+
},
|
| 59 |
+
"chat": {
|
| 60 |
+
"input": {
|
| 61 |
+
"placeholder": "Type your message here...",
|
| 62 |
+
"actions": {
|
| 63 |
+
"send": "Send message",
|
| 64 |
+
"stop": "Stop Task",
|
| 65 |
+
"attachFiles": "Attach files"
|
| 66 |
+
}
|
| 67 |
+
},
|
| 68 |
+
"commands": {
|
| 69 |
+
"button": "Tools",
|
| 70 |
+
"changeTool": "Change Tool",
|
| 71 |
+
"availableTools": "Available Tools"
|
| 72 |
+
},
|
| 73 |
+
"speech": {
|
| 74 |
+
"start": "Start recording",
|
| 75 |
+
"stop": "Stop recording",
|
| 76 |
+
"connecting": "Connecting"
|
| 77 |
+
},
|
| 78 |
+
"fileUpload": {
|
| 79 |
+
"dragDrop": "Drag and drop files here",
|
| 80 |
+
"browse": "Browse Files",
|
| 81 |
+
"sizeLimit": "Limit:",
|
| 82 |
+
"errors": {
|
| 83 |
+
"failed": "Failed to upload",
|
| 84 |
+
"cancelled": "Cancelled upload of"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"cancelUpload": "Cancel upload",
|
| 88 |
+
"removeAttachment": "Remove attachment"
|
| 89 |
+
}
|
| 90 |
+
},
|
| 91 |
+
"messages": {
|
| 92 |
+
"status": {
|
| 93 |
+
"using": "Using",
|
| 94 |
+
"used": "Used"
|
| 95 |
+
},
|
| 96 |
+
"actions": {
|
| 97 |
+
"copy": {
|
| 98 |
+
"button": "Copy to clipboard",
|
| 99 |
+
"success": "Copied!"
|
| 100 |
+
}
|
| 101 |
+
},
|
| 102 |
+
"feedback": {
|
| 103 |
+
"positive": "Helpful",
|
| 104 |
+
"negative": "Not helpful",
|
| 105 |
+
"edit": "Edit feedback",
|
| 106 |
+
"dialog": {
|
| 107 |
+
"title": "Add a comment",
|
| 108 |
+
"submit": "Submit feedback",
|
| 109 |
+
"yourFeedback": "Your feedback..."
|
| 110 |
+
},
|
| 111 |
+
"status": {
|
| 112 |
+
"updating": "Updating",
|
| 113 |
+
"updated": "Feedback updated"
|
| 114 |
+
}
|
| 115 |
+
}
|
| 116 |
+
},
|
| 117 |
+
"history": {
|
| 118 |
+
"title": "Last Inputs",
|
| 119 |
+
"empty": "Such empty...",
|
| 120 |
+
"show": "Show history"
|
| 121 |
+
},
|
| 122 |
+
"settings": {
|
| 123 |
+
"title": "Settings panel",
|
| 124 |
+
"customize": "Customize your chat settings here"
|
| 125 |
+
},
|
| 126 |
+
"watermark": "LLMs can make mistakes. Check important info."
|
| 127 |
+
},
|
| 128 |
+
"threadHistory": {
|
| 129 |
+
"sidebar": {
|
| 130 |
+
"title": "Past Chats",
|
| 131 |
+
"filters": {
|
| 132 |
+
"search": "Search",
|
| 133 |
+
"placeholder": "Search conversations..."
|
| 134 |
+
},
|
| 135 |
+
"timeframes": {
|
| 136 |
+
"today": "Today",
|
| 137 |
+
"yesterday": "Yesterday",
|
| 138 |
+
"previous7days": "Previous 7 days",
|
| 139 |
+
"previous30days": "Previous 30 days"
|
| 140 |
+
},
|
| 141 |
+
"empty": "No threads found",
|
| 142 |
+
"actions": {
|
| 143 |
+
"close": "Close sidebar",
|
| 144 |
+
"open": "Open sidebar"
|
| 145 |
+
}
|
| 146 |
+
},
|
| 147 |
+
"thread": {
|
| 148 |
+
"untitled": "Untitled Conversation",
|
| 149 |
+
"menu": {
|
| 150 |
+
"rename": "Rename",
|
| 151 |
+
"share": "Share",
|
| 152 |
+
"delete": "Delete"
|
| 153 |
+
},
|
| 154 |
+
"actions": {
|
| 155 |
+
"share": {
|
| 156 |
+
"title": "Share link to chat",
|
| 157 |
+
"button": "Share",
|
| 158 |
+
"status": {
|
| 159 |
+
"copied": "Link copied",
|
| 160 |
+
"created": "Share link created!",
|
| 161 |
+
"unshared": "Sharing disabled for this thread"
|
| 162 |
+
},
|
| 163 |
+
"error": {
|
| 164 |
+
"create": "Failed to create share link",
|
| 165 |
+
"unshare": "Failed to unshare thread"
|
| 166 |
+
}
|
| 167 |
+
},
|
| 168 |
+
"delete": {
|
| 169 |
+
"title": "Confirm deletion",
|
| 170 |
+
"description": "This will delete the thread as well as its messages and elements. This action cannot be undone",
|
| 171 |
+
"success": "Chat deleted",
|
| 172 |
+
"inProgress": "Deleting chat"
|
| 173 |
+
},
|
| 174 |
+
"rename": {
|
| 175 |
+
"title": "Rename Thread",
|
| 176 |
+
"description": "Enter a new name for this thread",
|
| 177 |
+
"form": {
|
| 178 |
+
"name": {
|
| 179 |
+
"label": "Name",
|
| 180 |
+
"placeholder": "Enter new name"
|
| 181 |
+
}
|
| 182 |
+
},
|
| 183 |
+
"success": "Thread renamed!",
|
| 184 |
+
"inProgress": "Renaming thread"
|
| 185 |
+
}
|
| 186 |
+
}
|
| 187 |
+
}
|
| 188 |
+
},
|
| 189 |
+
"navigation": {
|
| 190 |
+
"header": {
|
| 191 |
+
"chat": "Chat",
|
| 192 |
+
"readme": "Readme",
|
| 193 |
+
"theme": {
|
| 194 |
+
"light": "Light Theme",
|
| 195 |
+
"dark": "Dark Theme",
|
| 196 |
+
"system": "Follow System"
|
| 197 |
+
}
|
| 198 |
+
},
|
| 199 |
+
"newChat": {
|
| 200 |
+
"button": "New Chat",
|
| 201 |
+
"dialog": {
|
| 202 |
+
"title": "Create New Chat",
|
| 203 |
+
"description": "This will clear your current chat history. Are you sure you want to continue?",
|
| 204 |
+
"tooltip": "New Chat"
|
| 205 |
+
}
|
| 206 |
+
},
|
| 207 |
+
"user": {
|
| 208 |
+
"menu": {
|
| 209 |
+
"settings": "Settings",
|
| 210 |
+
"settingsKey": "S",
|
| 211 |
+
"apiKeys": "API Keys",
|
| 212 |
+
"logout": "Logout"
|
| 213 |
+
}
|
| 214 |
+
}
|
| 215 |
+
},
|
| 216 |
+
"apiKeys": {
|
| 217 |
+
"title": "Required API Keys",
|
| 218 |
+
"description": "To use this app, the following API keys are required. The keys are stored on your device's local storage.",
|
| 219 |
+
"success": {
|
| 220 |
+
"saved": "Saved successfully"
|
| 221 |
+
}
|
| 222 |
+
},
|
| 223 |
+
"alerts": {
|
| 224 |
+
"info": "Info",
|
| 225 |
+
"note": "Note",
|
| 226 |
+
"tip": "Tip",
|
| 227 |
+
"important": "Important",
|
| 228 |
+
"warning": "Warning",
|
| 229 |
+
"caution": "Caution",
|
| 230 |
+
"debug": "Debug",
|
| 231 |
+
"example": "Example",
|
| 232 |
+
"success": "Success",
|
| 233 |
+
"help": "Help",
|
| 234 |
+
"idea": "Idea",
|
| 235 |
+
"pending": "Pending",
|
| 236 |
+
"security": "Security",
|
| 237 |
+
"beta": "Beta",
|
| 238 |
+
"best-practice": "Best Practice"
|
| 239 |
+
},
|
| 240 |
+
"components": {
|
| 241 |
+
"MultiSelectInput": {
|
| 242 |
+
"placeholder": "Select..."
|
| 243 |
+
}
|
| 244 |
+
}
|
| 245 |
+
}
|
.chainlit/translations/es.json
ADDED
|
@@ -0,0 +1,245 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "Cancelar",
|
| 5 |
+
"confirm": "Confirmar",
|
| 6 |
+
"continue": "Continuar",
|
| 7 |
+
"goBack": "Volver",
|
| 8 |
+
"reset": "Restablecer",
|
| 9 |
+
"submit": "Enviar"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "Cargando...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "Ocurri\u00f3 un error",
|
| 15 |
+
"serverConnection": "No se pudo conectar con el servidor"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "Inicia sesi\u00f3n para acceder a la aplicaci\u00f3n",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "Correo electr\u00f3nico",
|
| 25 |
+
"required": "el correo electr\u00f3nico es obligatorio",
|
| 26 |
+
"placeholder": "me@example.com"
|
| 27 |
+
},
|
| 28 |
+
"password": {
|
| 29 |
+
"label": "Contrase\u00f1a",
|
| 30 |
+
"required": "la contrase\u00f1a es obligatoria"
|
| 31 |
+
},
|
| 32 |
+
"actions": {
|
| 33 |
+
"signin": "Iniciar sesi\u00f3n"
|
| 34 |
+
},
|
| 35 |
+
"alternativeText": {
|
| 36 |
+
"or": "O"
|
| 37 |
+
}
|
| 38 |
+
},
|
| 39 |
+
"errors": {
|
| 40 |
+
"default": "No se pudo iniciar sesi\u00f3n",
|
| 41 |
+
"signin": "Intenta iniciar sesi\u00f3n con otra cuenta",
|
| 42 |
+
"oauthSignin": "Intenta iniciar sesi\u00f3n con otra cuenta",
|
| 43 |
+
"redirectUriMismatch": "El URI de redirecci\u00f3n no coincide con la configuraci\u00f3n de la aplicaci\u00f3n OAuth",
|
| 44 |
+
"oauthCallback": "Intenta iniciar sesi\u00f3n con otra cuenta",
|
| 45 |
+
"oauthCreateAccount": "Intenta iniciar sesi\u00f3n con otra cuenta",
|
| 46 |
+
"emailCreateAccount": "Intenta iniciar sesi\u00f3n con otra cuenta",
|
| 47 |
+
"callback": "Intenta iniciar sesi\u00f3n con otra cuenta",
|
| 48 |
+
"oauthAccountNotLinked": "Para confirmar tu identidad, inicia sesi\u00f3n con la misma cuenta que usaste originalmente",
|
| 49 |
+
"emailSignin": "No se pudo enviar el correo electr\u00f3nico",
|
| 50 |
+
"emailVerify": "Por favor verifica tu correo, se ha enviado un nuevo correo",
|
| 51 |
+
"credentialsSignin": "Error al iniciar sesi\u00f3n. Verifica que los datos proporcionados sean correctos",
|
| 52 |
+
"sessionRequired": "Por favor inicia sesi\u00f3n para acceder a esta p\u00e1gina"
|
| 53 |
+
}
|
| 54 |
+
},
|
| 55 |
+
"provider": {
|
| 56 |
+
"continue": "Continuar con {{provider}}"
|
| 57 |
+
}
|
| 58 |
+
},
|
| 59 |
+
"chat": {
|
| 60 |
+
"input": {
|
| 61 |
+
"placeholder": "Escribe tu mensaje aqu\u00ed...",
|
| 62 |
+
"actions": {
|
| 63 |
+
"send": "Enviar mensaje",
|
| 64 |
+
"stop": "Detener tarea",
|
| 65 |
+
"attachFiles": "Adjuntar archivos"
|
| 66 |
+
}
|
| 67 |
+
},
|
| 68 |
+
"commands": {
|
| 69 |
+
"button": "Herramientas",
|
| 70 |
+
"changeTool": "Cambiar herramienta",
|
| 71 |
+
"availableTools": "Herramientas disponibles"
|
| 72 |
+
},
|
| 73 |
+
"speech": {
|
| 74 |
+
"start": "Comenzar grabaci\u00f3n",
|
| 75 |
+
"stop": "Detener grabaci\u00f3n",
|
| 76 |
+
"connecting": "Conectando"
|
| 77 |
+
},
|
| 78 |
+
"fileUpload": {
|
| 79 |
+
"dragDrop": "Arrastra y suelta archivos aqu\u00ed",
|
| 80 |
+
"browse": "Buscar archivos",
|
| 81 |
+
"sizeLimit": "L\u00edmite:",
|
| 82 |
+
"errors": {
|
| 83 |
+
"failed": "Error al subir",
|
| 84 |
+
"cancelled": "Carga cancelada de"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"cancelUpload": "Cancelar subida",
|
| 88 |
+
"removeAttachment": "Eliminar adjunto"
|
| 89 |
+
}
|
| 90 |
+
},
|
| 91 |
+
"messages": {
|
| 92 |
+
"status": {
|
| 93 |
+
"using": "Usando",
|
| 94 |
+
"used": "Usado"
|
| 95 |
+
},
|
| 96 |
+
"actions": {
|
| 97 |
+
"copy": {
|
| 98 |
+
"button": "Copiar al portapapeles",
|
| 99 |
+
"success": "\u00a1Copiado!"
|
| 100 |
+
}
|
| 101 |
+
},
|
| 102 |
+
"feedback": {
|
| 103 |
+
"positive": "\u00datil",
|
| 104 |
+
"negative": "No \u00fatil",
|
| 105 |
+
"edit": "Editar comentario",
|
| 106 |
+
"dialog": {
|
| 107 |
+
"title": "Agregar un comentario",
|
| 108 |
+
"submit": "Enviar comentario",
|
| 109 |
+
"yourFeedback": "Tu comentario..."
|
| 110 |
+
},
|
| 111 |
+
"status": {
|
| 112 |
+
"updating": "Actualizando",
|
| 113 |
+
"updated": "Comentario actualizado"
|
| 114 |
+
}
|
| 115 |
+
}
|
| 116 |
+
},
|
| 117 |
+
"history": {
|
| 118 |
+
"title": "\u00daltimas entradas",
|
| 119 |
+
"empty": "Tan vac\u00edo...",
|
| 120 |
+
"show": "Mostrar historial"
|
| 121 |
+
},
|
| 122 |
+
"settings": {
|
| 123 |
+
"title": "Panel de configuraci\u00f3n",
|
| 124 |
+
"customize": "Personaliza la configuraci\u00f3n de tu chat aqu\u00ed"
|
| 125 |
+
},
|
| 126 |
+
"watermark": "Los LLM pueden cometer errores. Verifica la informaci\u00f3n importante."
|
| 127 |
+
},
|
| 128 |
+
"threadHistory": {
|
| 129 |
+
"sidebar": {
|
| 130 |
+
"title": "Chats anteriores",
|
| 131 |
+
"filters": {
|
| 132 |
+
"search": "Buscar",
|
| 133 |
+
"placeholder": "Buscar conversaciones..."
|
| 134 |
+
},
|
| 135 |
+
"timeframes": {
|
| 136 |
+
"today": "Hoy",
|
| 137 |
+
"yesterday": "Ayer",
|
| 138 |
+
"previous7days": "\u00daltimos 7 d\u00edas",
|
| 139 |
+
"previous30days": "\u00daltimos 30 d\u00edas"
|
| 140 |
+
},
|
| 141 |
+
"empty": "No se encontraron conversaciones",
|
| 142 |
+
"actions": {
|
| 143 |
+
"close": "Cerrar barra lateral",
|
| 144 |
+
"open": "Abrir barra lateral"
|
| 145 |
+
}
|
| 146 |
+
},
|
| 147 |
+
"thread": {
|
| 148 |
+
"untitled": "Conversaci\u00f3n sin t\u00edtulo",
|
| 149 |
+
"menu": {
|
| 150 |
+
"rename": "Renombrar",
|
| 151 |
+
"share": "Compartir",
|
| 152 |
+
"delete": "Eliminar"
|
| 153 |
+
},
|
| 154 |
+
"actions": {
|
| 155 |
+
"share": {
|
| 156 |
+
"title": "Compartir enlace del chat",
|
| 157 |
+
"button": "Compartir",
|
| 158 |
+
"status": {
|
| 159 |
+
"copied": "Enlace copiado",
|
| 160 |
+
"created": "\u00a1Enlace de uso compartido creado!",
|
| 161 |
+
"unshared": "Uso compartido deshabilitado para este hilo"
|
| 162 |
+
},
|
| 163 |
+
"error": {
|
| 164 |
+
"create": "Error al crear el enlace de uso compartido",
|
| 165 |
+
"unshare": "Error al dejar de compartir el hilo"
|
| 166 |
+
}
|
| 167 |
+
},
|
| 168 |
+
"delete": {
|
| 169 |
+
"title": "Confirmar eliminaci\u00f3n",
|
| 170 |
+
"description": "Esto eliminar\u00e1 la conversaci\u00f3n, sus mensajes y elementos. Esta acci\u00f3n no se puede deshacer",
|
| 171 |
+
"success": "Chat eliminado",
|
| 172 |
+
"inProgress": "Eliminando chat"
|
| 173 |
+
},
|
| 174 |
+
"rename": {
|
| 175 |
+
"title": "Renombrar conversaci\u00f3n",
|
| 176 |
+
"description": "Ingresa un nuevo nombre para esta conversaci\u00f3n",
|
| 177 |
+
"form": {
|
| 178 |
+
"name": {
|
| 179 |
+
"label": "Nombre",
|
| 180 |
+
"placeholder": "Ingresa nuevo nombre"
|
| 181 |
+
}
|
| 182 |
+
},
|
| 183 |
+
"success": "\u00a1Conversaci\u00f3n renombrada!",
|
| 184 |
+
"inProgress": "Renombrando conversaci\u00f3n"
|
| 185 |
+
}
|
| 186 |
+
}
|
| 187 |
+
}
|
| 188 |
+
},
|
| 189 |
+
"navigation": {
|
| 190 |
+
"header": {
|
| 191 |
+
"chat": "Chat",
|
| 192 |
+
"readme": "L\u00e9eme",
|
| 193 |
+
"theme": {
|
| 194 |
+
"light": "Tema claro",
|
| 195 |
+
"dark": "Tema oscuro",
|
| 196 |
+
"system": "Seguir sistema"
|
| 197 |
+
}
|
| 198 |
+
},
|
| 199 |
+
"newChat": {
|
| 200 |
+
"button": "Nuevo chat",
|
| 201 |
+
"dialog": {
|
| 202 |
+
"title": "Crear nuevo chat",
|
| 203 |
+
"description": "Esto borrar\u00e1 tu historial de chat actual. \u00bfSeguro que quieres continuar?",
|
| 204 |
+
"tooltip": "Nuevo chat"
|
| 205 |
+
}
|
| 206 |
+
},
|
| 207 |
+
"user": {
|
| 208 |
+
"menu": {
|
| 209 |
+
"settings": "Configuraci\u00f3n",
|
| 210 |
+
"settingsKey": "S",
|
| 211 |
+
"apiKeys": "Claves API",
|
| 212 |
+
"logout": "Cerrar sesi\u00f3n"
|
| 213 |
+
}
|
| 214 |
+
}
|
| 215 |
+
},
|
| 216 |
+
"apiKeys": {
|
| 217 |
+
"title": "Claves API requeridas",
|
| 218 |
+
"description": "Para usar esta aplicaci\u00f3n, se requieren las siguientes claves API. Las claves se almacenan en el almacenamiento local de tu dispositivo.",
|
| 219 |
+
"success": {
|
| 220 |
+
"saved": "Guardado exitosamente"
|
| 221 |
+
}
|
| 222 |
+
},
|
| 223 |
+
"alerts": {
|
| 224 |
+
"info": "Informaci\u00f3n",
|
| 225 |
+
"note": "Nota",
|
| 226 |
+
"tip": "Consejo",
|
| 227 |
+
"important": "Importante",
|
| 228 |
+
"warning": "Advertencia",
|
| 229 |
+
"caution": "Precauci\u00f3n",
|
| 230 |
+
"debug": "Depuraci\u00f3n",
|
| 231 |
+
"example": "Ejemplo",
|
| 232 |
+
"success": "\u00c9xito",
|
| 233 |
+
"help": "Ayuda",
|
| 234 |
+
"idea": "Idea",
|
| 235 |
+
"pending": "Pendiente",
|
| 236 |
+
"security": "Seguridad",
|
| 237 |
+
"beta": "Beta",
|
| 238 |
+
"best-practice": "Mejor pr\u00e1ctica"
|
| 239 |
+
},
|
| 240 |
+
"components": {
|
| 241 |
+
"MultiSelectInput": {
|
| 242 |
+
"placeholder": "Seleccionar..."
|
| 243 |
+
}
|
| 244 |
+
}
|
| 245 |
+
}
|
.chainlit/translations/fr-FR.json
ADDED
|
@@ -0,0 +1,245 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "Annuler",
|
| 5 |
+
"confirm": "Confirmer",
|
| 6 |
+
"continue": "Continuer",
|
| 7 |
+
"goBack": "Retour",
|
| 8 |
+
"reset": "R\u00e9initialiser",
|
| 9 |
+
"submit": "Envoyer"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "Chargement...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "Une erreur est survenue",
|
| 15 |
+
"serverConnection": "Impossible de joindre le serveur"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "Connectez-vous pour acc\u00e9der \u00e0 l'application",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "Adresse e-mail",
|
| 25 |
+
"required": "l'e-mail est un champ obligatoire",
|
| 26 |
+
"placeholder": "me@example.com"
|
| 27 |
+
},
|
| 28 |
+
"password": {
|
| 29 |
+
"label": "Mot de passe",
|
| 30 |
+
"required": "le mot de passe est un champ obligatoire"
|
| 31 |
+
},
|
| 32 |
+
"actions": {
|
| 33 |
+
"signin": "Se connecter"
|
| 34 |
+
},
|
| 35 |
+
"alternativeText": {
|
| 36 |
+
"or": "OU"
|
| 37 |
+
}
|
| 38 |
+
},
|
| 39 |
+
"errors": {
|
| 40 |
+
"default": "Impossible de se connecter",
|
| 41 |
+
"signin": "Essayez de vous connecter avec un autre compte",
|
| 42 |
+
"oauthSignin": "Essayez de vous connecter avec un autre compte",
|
| 43 |
+
"redirectUriMismatch": "L'URI de redirection ne correspond pas \u00e0 la configuration de l'application oauth",
|
| 44 |
+
"oauthCallback": "Essayez de vous connecter avec un autre compte",
|
| 45 |
+
"oauthCreateAccount": "Essayez de vous connecter avec un autre compte",
|
| 46 |
+
"emailCreateAccount": "Essayez de vous connecter avec un autre compte",
|
| 47 |
+
"callback": "Essayez de vous connecter avec un autre compte",
|
| 48 |
+
"oauthAccountNotLinked": "Pour confirmer votre identit\u00e9, connectez-vous avec le m\u00eame compte que vous avez utilis\u00e9 \u00e0 l'origine",
|
| 49 |
+
"emailSignin": "L'e-mail n'a pas pu \u00eatre envoy\u00e9",
|
| 50 |
+
"emailVerify": "Veuillez v\u00e9rifier votre e-mail, un nouvel e-mail a \u00e9t\u00e9 envoy\u00e9",
|
| 51 |
+
"credentialsSignin": "La connexion a \u00e9chou\u00e9. V\u00e9rifiez que les informations que vous avez fournies sont correctes",
|
| 52 |
+
"sessionRequired": "Veuillez vous connecter pour acc\u00e9der \u00e0 cette page"
|
| 53 |
+
}
|
| 54 |
+
},
|
| 55 |
+
"provider": {
|
| 56 |
+
"continue": "Continuer avec {{provider}}"
|
| 57 |
+
}
|
| 58 |
+
},
|
| 59 |
+
"chat": {
|
| 60 |
+
"input": {
|
| 61 |
+
"placeholder": "Tapez votre message ici...",
|
| 62 |
+
"actions": {
|
| 63 |
+
"send": "Envoyer le message",
|
| 64 |
+
"stop": "Arr\u00eater la t\u00e2che",
|
| 65 |
+
"attachFiles": "Joindre des fichiers"
|
| 66 |
+
}
|
| 67 |
+
},
|
| 68 |
+
"commands": {
|
| 69 |
+
"button": "Outils",
|
| 70 |
+
"changeTool": "Changer d'outil",
|
| 71 |
+
"availableTools": "Outils disponibles"
|
| 72 |
+
},
|
| 73 |
+
"speech": {
|
| 74 |
+
"start": "D\u00e9marrer l'enregistrement",
|
| 75 |
+
"stop": "Arr\u00eater l'enregistrement",
|
| 76 |
+
"connecting": "Connexion en cours"
|
| 77 |
+
},
|
| 78 |
+
"fileUpload": {
|
| 79 |
+
"dragDrop": "Glissez et d\u00e9posez des fichiers ici",
|
| 80 |
+
"browse": "Parcourir les fichiers",
|
| 81 |
+
"sizeLimit": "Limite :",
|
| 82 |
+
"errors": {
|
| 83 |
+
"failed": "\u00c9chec du t\u00e9l\u00e9versement",
|
| 84 |
+
"cancelled": "T\u00e9l\u00e9versement annul\u00e9 de"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"cancelUpload": "Annuler le t\u00e9l\u00e9versement",
|
| 88 |
+
"removeAttachment": "Supprimer la pi\u00e8ce jointe"
|
| 89 |
+
}
|
| 90 |
+
},
|
| 91 |
+
"messages": {
|
| 92 |
+
"status": {
|
| 93 |
+
"using": "Utilise",
|
| 94 |
+
"used": "Utilis\u00e9"
|
| 95 |
+
},
|
| 96 |
+
"actions": {
|
| 97 |
+
"copy": {
|
| 98 |
+
"button": "Copier dans le presse-papiers",
|
| 99 |
+
"success": "Copi\u00e9 !"
|
| 100 |
+
}
|
| 101 |
+
},
|
| 102 |
+
"feedback": {
|
| 103 |
+
"positive": "Utile",
|
| 104 |
+
"negative": "Pas utile",
|
| 105 |
+
"edit": "Modifier le commentaire",
|
| 106 |
+
"dialog": {
|
| 107 |
+
"title": "Ajouter un commentaire",
|
| 108 |
+
"submit": "Envoyer le commentaire",
|
| 109 |
+
"yourFeedback": "Votre avis..."
|
| 110 |
+
},
|
| 111 |
+
"status": {
|
| 112 |
+
"updating": "Mise \u00e0 jour",
|
| 113 |
+
"updated": "Commentaire mis \u00e0 jour"
|
| 114 |
+
}
|
| 115 |
+
}
|
| 116 |
+
},
|
| 117 |
+
"history": {
|
| 118 |
+
"title": "Derni\u00e8res entr\u00e9es",
|
| 119 |
+
"empty": "Tellement vide...",
|
| 120 |
+
"show": "Afficher l'historique"
|
| 121 |
+
},
|
| 122 |
+
"settings": {
|
| 123 |
+
"title": "Panneau des param\u00e8tres",
|
| 124 |
+
"customize": "Personnalisez vos param\u00e8tres de chat ici"
|
| 125 |
+
},
|
| 126 |
+
"watermark": "Construit avec"
|
| 127 |
+
},
|
| 128 |
+
"threadHistory": {
|
| 129 |
+
"sidebar": {
|
| 130 |
+
"title": "Discussions pass\u00e9es",
|
| 131 |
+
"filters": {
|
| 132 |
+
"search": "Rechercher",
|
| 133 |
+
"placeholder": "Rechercher des conversations..."
|
| 134 |
+
},
|
| 135 |
+
"timeframes": {
|
| 136 |
+
"today": "Aujourd'hui",
|
| 137 |
+
"yesterday": "Hier",
|
| 138 |
+
"previous7days": "Les 7 derniers jours",
|
| 139 |
+
"previous30days": "Les 30 derniers jours"
|
| 140 |
+
},
|
| 141 |
+
"empty": "Aucun fil de discussion trouv\u00e9",
|
| 142 |
+
"actions": {
|
| 143 |
+
"close": "Fermer la barre lat\u00e9rale",
|
| 144 |
+
"open": "Ouvrir la barre lat\u00e9rale"
|
| 145 |
+
}
|
| 146 |
+
},
|
| 147 |
+
"thread": {
|
| 148 |
+
"untitled": "Conversation sans titre",
|
| 149 |
+
"menu": {
|
| 150 |
+
"rename": "Renommer",
|
| 151 |
+
"share": "Partager",
|
| 152 |
+
"delete": "Supprimer"
|
| 153 |
+
},
|
| 154 |
+
"actions": {
|
| 155 |
+
"share": {
|
| 156 |
+
"title": "Partager le lien de la discussion",
|
| 157 |
+
"button": "Partager",
|
| 158 |
+
"status": {
|
| 159 |
+
"copied": "Lien copi\u00e9",
|
| 160 |
+
"created": "Lien de partage cr\u00e9\u00e9 !",
|
| 161 |
+
"unshared": "Partage d\u00e9sactiv\u00e9 pour ce fil"
|
| 162 |
+
},
|
| 163 |
+
"error": {
|
| 164 |
+
"create": "\u00c9chec de la cr\u00e9ation du lien de partage",
|
| 165 |
+
"unshare": "\u00c9chec de la d\u00e9sactivation du partage du fil"
|
| 166 |
+
}
|
| 167 |
+
},
|
| 168 |
+
"delete": {
|
| 169 |
+
"title": "Confirmer la suppression",
|
| 170 |
+
"description": "Cela supprimera le fil de discussion ainsi que ses messages et \u00e9l\u00e9ments. Cette action ne peut pas \u00eatre annul\u00e9e",
|
| 171 |
+
"success": "Discussion supprim\u00e9e",
|
| 172 |
+
"inProgress": "Suppression de la discussion"
|
| 173 |
+
},
|
| 174 |
+
"rename": {
|
| 175 |
+
"title": "Renommer le fil de discussion",
|
| 176 |
+
"description": "Entrez un nouveau nom pour ce fil de discussion",
|
| 177 |
+
"form": {
|
| 178 |
+
"name": {
|
| 179 |
+
"label": "Nom",
|
| 180 |
+
"placeholder": "Entrez le nouveau nom"
|
| 181 |
+
}
|
| 182 |
+
},
|
| 183 |
+
"success": "Fil de discussion renomm\u00e9 !",
|
| 184 |
+
"inProgress": "Renommage du fil de discussion"
|
| 185 |
+
}
|
| 186 |
+
}
|
| 187 |
+
}
|
| 188 |
+
},
|
| 189 |
+
"navigation": {
|
| 190 |
+
"header": {
|
| 191 |
+
"chat": "Discussion",
|
| 192 |
+
"readme": "Lisez-moi",
|
| 193 |
+
"theme": {
|
| 194 |
+
"light": "Th\u00e8me clair",
|
| 195 |
+
"dark": "Th\u00e8me sombre",
|
| 196 |
+
"system": "Suivre le syst\u00e8me"
|
| 197 |
+
}
|
| 198 |
+
},
|
| 199 |
+
"newChat": {
|
| 200 |
+
"button": "Nouvelle discussion",
|
| 201 |
+
"dialog": {
|
| 202 |
+
"title": "Cr\u00e9er une nouvelle discussion",
|
| 203 |
+
"description": "Cela effacera votre historique de discussion actuel. \u00cates-vous s\u00fbr de vouloir continuer ?",
|
| 204 |
+
"tooltip": "Nouvelle discussion"
|
| 205 |
+
}
|
| 206 |
+
},
|
| 207 |
+
"user": {
|
| 208 |
+
"menu": {
|
| 209 |
+
"settings": "Param\u00e8tres",
|
| 210 |
+
"settingsKey": "S",
|
| 211 |
+
"apiKeys": "Cl\u00e9s API",
|
| 212 |
+
"logout": "Se d\u00e9connecter"
|
| 213 |
+
}
|
| 214 |
+
}
|
| 215 |
+
},
|
| 216 |
+
"apiKeys": {
|
| 217 |
+
"title": "Cl\u00e9s API requises",
|
| 218 |
+
"description": "Pour utiliser cette application, les cl\u00e9s API suivantes sont requises. Les cl\u00e9s sont stock\u00e9es dans le stockage local de votre appareil.",
|
| 219 |
+
"success": {
|
| 220 |
+
"saved": "Enregistr\u00e9 avec succ\u00e8s"
|
| 221 |
+
}
|
| 222 |
+
},
|
| 223 |
+
"alerts": {
|
| 224 |
+
"info": "Info",
|
| 225 |
+
"note": "Note",
|
| 226 |
+
"tip": "Astuce",
|
| 227 |
+
"important": "Important",
|
| 228 |
+
"warning": "Avertissement",
|
| 229 |
+
"caution": "Attention",
|
| 230 |
+
"debug": "D\u00e9bogage",
|
| 231 |
+
"example": "Exemple",
|
| 232 |
+
"success": "Succ\u00e8s",
|
| 233 |
+
"help": "Aide",
|
| 234 |
+
"idea": "Id\u00e9e",
|
| 235 |
+
"pending": "En attente",
|
| 236 |
+
"security": "S\u00e9curit\u00e9",
|
| 237 |
+
"beta": "B\u00eata",
|
| 238 |
+
"best-practice": "Meilleure pratique"
|
| 239 |
+
},
|
| 240 |
+
"components": {
|
| 241 |
+
"MultiSelectInput": {
|
| 242 |
+
"placeholder": "S\u00e9lectionner..."
|
| 243 |
+
}
|
| 244 |
+
}
|
| 245 |
+
}
|
.chainlit/translations/gu.json
ADDED
|
@@ -0,0 +1,245 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "\u0ab0\u0aa6 \u0a95\u0ab0\u0acb",
|
| 5 |
+
"confirm": "\u0aaa\u0ac1\u0ab7\u0acd\u0a9f\u0abf \u0a95\u0ab0\u0acb",
|
| 6 |
+
"continue": "\u0a9a\u0abe\u0ab2\u0ac1 \u0ab0\u0abe\u0a96\u0acb",
|
| 7 |
+
"goBack": "\u0aaa\u0abe\u0a9b\u0abe \u0a9c\u0abe\u0a93",
|
| 8 |
+
"reset": "\u0ab0\u0ac0\u0ab8\u0ac7\u0a9f \u0a95\u0ab0\u0acb",
|
| 9 |
+
"submit": "\u0ab8\u0aac\u0aae\u0abf\u0a9f \u0a95\u0ab0\u0acb"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "\u0ab2\u0acb\u0aa1 \u0aa5\u0a88 \u0ab0\u0ab9\u0acd\u0aaf\u0ac1\u0a82 \u0a9b\u0ac7...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "\u0a8f\u0a95 \u0aad\u0ac2\u0ab2 \u0aa5\u0a88",
|
| 15 |
+
"serverConnection": "\u0ab8\u0ab0\u0acd\u0ab5\u0ab0 \u0ab8\u0ac1\u0aa7\u0ac0 \u0aaa\u0ab9\u0acb\u0a82\u0a9a\u0ac0 \u0ab6\u0a95\u0abe\u0aaf\u0ac1\u0a82 \u0aa8\u0aa5\u0ac0"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "\u0a8f\u0aaa\u0acd\u0ab2\u0abf\u0a95\u0ac7\u0ab6\u0aa8 \u0a8d\u0a95\u0acd\u0ab8\u0ac7\u0ab8 \u0a95\u0ab0\u0ab5\u0abe \u0aae\u0abe\u0a9f\u0ac7 \u0ab2\u0ac9\u0a97\u0abf\u0aa8 \u0a95\u0ab0\u0acb",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "\u0a88\u0aae\u0ac7\u0ab2 \u0a8f\u0aa1\u0acd\u0ab0\u0ac7\u0ab8",
|
| 25 |
+
"required": "\u0a88\u0aae\u0ac7\u0ab2 \u0a86\u0ab5\u0ab6\u0acd\u0aaf\u0a95 \u0a9b\u0ac7",
|
| 26 |
+
"placeholder": "me@example.com"
|
| 27 |
+
},
|
| 28 |
+
"password": {
|
| 29 |
+
"label": "\u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1",
|
| 30 |
+
"required": "\u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1 \u0a86\u0ab5\u0ab6\u0acd\u0aaf\u0a95 \u0a9b\u0ac7"
|
| 31 |
+
},
|
| 32 |
+
"actions": {
|
| 33 |
+
"signin": "\u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0acb"
|
| 34 |
+
},
|
| 35 |
+
"alternativeText": {
|
| 36 |
+
"or": "\u0a85\u0aa5\u0ab5\u0abe"
|
| 37 |
+
}
|
| 38 |
+
},
|
| 39 |
+
"errors": {
|
| 40 |
+
"default": "\u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ac0 \u0ab6\u0a95\u0abe\u0aaf\u0ac1\u0a82 \u0aa8\u0aa5\u0ac0",
|
| 41 |
+
"signin": "\u0a85\u0ab2\u0a97 \u0a8f\u0a95\u0abe\u0a89\u0aa8\u0acd\u0a9f\u0aa5\u0ac0 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0abe\u0ab8 \u0a95\u0ab0\u0acb",
|
| 42 |
+
"oauthSignin": "\u0a85\u0ab2\u0a97 \u0a8f\u0a95\u0abe\u0a89\u0aa8\u0acd\u0a9f\u0aa5\u0ac0 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0abe\u0ab8 \u0a95\u0ab0\u0acb",
|
| 43 |
+
"redirectUriMismatch": "\u0ab0\u0ac0\u0aa1\u0abe\u0aaf\u0ab0\u0ac7\u0a95\u0acd\u0a9f URI oauth \u0a8d\u0aaa \u0a95\u0aa8\u0acd\u0aab\u0abf\u0a97\u0ab0\u0ac7\u0ab6\u0aa8 \u0ab8\u0abe\u0aa5\u0ac7 \u0aae\u0ac7\u0ab3 \u0a96\u0abe\u0aa4\u0acb \u0aa8\u0aa5\u0ac0",
|
| 44 |
+
"oauthCallback": "\u0a85\u0ab2\u0a97 \u0a8f\u0a95\u0abe\u0a89\u0aa8\u0acd\u0a9f\u0aa5\u0ac0 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0abe\u0ab8 \u0a95\u0ab0\u0acb",
|
| 45 |
+
"oauthCreateAccount": "\u0a85\u0ab2\u0a97 \u0a8f\u0a95\u0abe\u0a89\u0aa8\u0acd\u0a9f\u0aa5\u0ac0 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0abe\u0ab8 \u0a95\u0ab0\u0acb",
|
| 46 |
+
"emailCreateAccount": "\u0a85\u0ab2\u0a97 \u0a8f\u0a95\u0abe\u0a89\u0aa8\u0acd\u0a9f\u0aa5\u0ac0 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0abe\u0ab8 \u0a95\u0ab0\u0acb",
|
| 47 |
+
"callback": "\u0a85\u0ab2\u0a97 \u0a8f\u0a95\u0abe\u0a89\u0aa8\u0acd\u0a9f\u0aa5\u0ac0 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0abe\u0ab8 \u0a95\u0ab0\u0acb",
|
| 48 |
+
"oauthAccountNotLinked": "\u0aa4\u0aae\u0abe\u0ab0\u0ac0 \u0a93\u0ab3\u0a96\u0aa8\u0ac0 \u0aaa\u0ac1\u0ab7\u0acd\u0a9f\u0abf \u0a95\u0ab0\u0ab5\u0abe \u0aae\u0abe\u0a9f\u0ac7, \u0aae\u0ac2\u0ab3 \u0ab0\u0ac2\u0aaa\u0ac7 \u0ab5\u0abe\u0aaa\u0ab0\u0ac7\u0ab2\u0abe \u0a8f\u0a95\u0abe\u0a89\u0aa8\u0acd\u0a9f\u0aa5\u0ac0 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0acb",
|
| 49 |
+
"emailSignin": "\u0a88\u0aae\u0ac7\u0ab2 \u0aae\u0acb\u0a95\u0ab2\u0ac0 \u0ab6\u0a95\u0abe\u0aaf\u0acb \u0aa8\u0aa5\u0ac0",
|
| 50 |
+
"emailVerify": "\u0a95\u0ac3\u0aaa\u0abe \u0a95\u0ab0\u0ac0 \u0aa4\u0aae\u0abe\u0ab0\u0acb \u0a88\u0aae\u0ac7\u0ab2 \u0a9a\u0a95\u0abe\u0ab8\u0acb, \u0aa8\u0ab5\u0acb \u0a88\u0aae\u0ac7\u0ab2 \u0aae\u0acb\u0a95\u0ab2\u0ab5\u0abe\u0aae\u0abe\u0a82 \u0a86\u0ab5\u0acd\u0aaf\u0acb \u0a9b\u0ac7",
|
| 51 |
+
"credentialsSignin": "\u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0aa8\u0abf\u0ab7\u0acd\u0aab\u0ab3. \u0a86\u0aaa\u0ac7\u0ab2\u0ac0 \u0ab5\u0abf\u0a97\u0aa4\u0acb \u0ab8\u0abe\u0a9a\u0ac0 \u0a9b\u0ac7 \u0a95\u0ac7 \u0aa8\u0ab9\u0ac0\u0a82 \u0aa4\u0ac7 \u0a9a\u0a95\u0abe\u0ab8\u0acb",
|
| 52 |
+
"sessionRequired": "\u0a86 \u0aaa\u0ac7\u0a9c\u0aa8\u0ac7 \u0a8d\u0a95\u0acd\u0ab8\u0ac7\u0ab8 \u0a95\u0ab0\u0ab5\u0abe \u0aae\u0abe\u0a9f\u0ac7 \u0a95\u0ac3\u0aaa\u0abe \u0a95\u0ab0\u0ac0 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0acb"
|
| 53 |
+
}
|
| 54 |
+
},
|
| 55 |
+
"provider": {
|
| 56 |
+
"continue": "{{provider}} \u0ab8\u0abe\u0aa5\u0ac7 \u0a9a\u0abe\u0ab2\u0ac1 \u0ab0\u0abe\u0a96\u0acb"
|
| 57 |
+
}
|
| 58 |
+
},
|
| 59 |
+
"chat": {
|
| 60 |
+
"input": {
|
| 61 |
+
"placeholder": "\u0a85\u0ab9\u0ac0\u0a82 \u0aa4\u0aae\u0abe\u0ab0\u0acb \u0ab8\u0a82\u0aa6\u0ac7\u0ab6 \u0ab2\u0a96\u0acb...",
|
| 62 |
+
"actions": {
|
| 63 |
+
"send": "\u0ab8\u0a82\u0aa6\u0ac7\u0ab6 \u0aae\u0acb\u0a95\u0ab2\u0acb",
|
| 64 |
+
"stop": "\u0a95\u0abe\u0ab0\u0acd\u0aaf \u0ab0\u0acb\u0a95\u0acb",
|
| 65 |
+
"attachFiles": "\u0aab\u0abe\u0a87\u0ab2\u0acd\u0ab8 \u0a9c\u0acb\u0aa1\u0acb"
|
| 66 |
+
}
|
| 67 |
+
},
|
| 68 |
+
"speech": {
|
| 69 |
+
"start": "\u0ab0\u0ac7\u0a95\u0acb\u0ab0\u0acd\u0aa1\u0abf\u0a82\u0a97 \u0ab6\u0ab0\u0ac2 \u0a95\u0ab0\u0acb",
|
| 70 |
+
"stop": "\u0ab0\u0ac7\u0a95\u0acb\u0ab0\u0acd\u0aa1\u0abf\u0a82\u0a97 \u0aac\u0a82\u0aa7 \u0a95\u0ab0\u0acb",
|
| 71 |
+
"connecting": "\u0a95\u0aa8\u0ac7\u0a95\u0acd\u0a9f \u0aa5\u0a88 \u0ab0\u0ab9\u0acd\u0aaf\u0ac1\u0a82 \u0a9b\u0ac7"
|
| 72 |
+
},
|
| 73 |
+
"commands": {
|
| 74 |
+
"button": "\u0a9f\u0ac2\u0ab2\u0acd\u0ab8",
|
| 75 |
+
"changeTool": "\u0a9f\u0ac2\u0ab2 \u0aac\u0aa6\u0ab2\u0acb",
|
| 76 |
+
"availableTools": "\u0a89\u0aaa\u0ab2\u0aac\u0acd\u0aa7 \u0a9f\u0ac2\u0ab2\u0acd\u0ab8"
|
| 77 |
+
},
|
| 78 |
+
"fileUpload": {
|
| 79 |
+
"dragDrop": "\u0a85\u0ab9\u0ac0\u0a82 \u0aab\u0abe\u0a87\u0ab2\u0acd\u0ab8 \u0a96\u0ac7\u0a82\u0a9a\u0acb \u0a85\u0aa8\u0ac7 \u0a9b\u0acb\u0aa1\u0acb",
|
| 80 |
+
"browse": "\u0aab\u0abe\u0a87\u0ab2\u0acd\u0ab8 \u0aac\u0acd\u0ab0\u0abe\u0a89\u0a9d \u0a95\u0ab0\u0acb",
|
| 81 |
+
"sizeLimit": "\u0aae\u0ab0\u0acd\u0aaf\u0abe\u0aa6\u0abe:",
|
| 82 |
+
"errors": {
|
| 83 |
+
"failed": "\u0a85\u0aaa\u0ab2\u0acb\u0aa1 \u0a95\u0ab0\u0ab5\u0abe\u0aae\u0abe\u0a82 \u0aa8\u0abf\u0ab7\u0acd\u0aab\u0ab3",
|
| 84 |
+
"cancelled": "\u0a85\u0aaa\u0ab2\u0acb\u0aa1 \u0ab0\u0aa6 \u0a95\u0ab0\u0acd\u0aaf\u0ac1\u0a82"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"cancelUpload": "\u0a85\u0aaa\u0ab2\u0acb\u0aa1 \u0ab0\u0aa6 \u0a95\u0ab0\u0acb",
|
| 88 |
+
"removeAttachment": "\u0a9c\u0acb\u0aa1\u0abe\u0aa3 \u0aa6\u0ac2\u0ab0 \u0a95\u0ab0\u0acb"
|
| 89 |
+
}
|
| 90 |
+
},
|
| 91 |
+
"messages": {
|
| 92 |
+
"status": {
|
| 93 |
+
"using": "\u0ab5\u0abe\u0aaa\u0ab0\u0ac0 \u0ab0\u0ab9\u0acd\u0aaf\u0abe \u0a9b\u0ac7",
|
| 94 |
+
"used": "\u0ab5\u0aaa\u0ab0\u0abe\u0aaf\u0ac7\u0ab2"
|
| 95 |
+
},
|
| 96 |
+
"actions": {
|
| 97 |
+
"copy": {
|
| 98 |
+
"button": "\u0a95\u0acd\u0ab2\u0abf\u0aaa\u0aac\u0acb\u0ab0\u0acd\u0aa1 \u0aaa\u0ab0 \u0a95\u0ac9\u0aaa\u0abf \u0a95\u0ab0\u0acb",
|
| 99 |
+
"success": "\u0a95\u0ac9\u0aaa\u0abf \u0aa5\u0aaf\u0ac1\u0a82!"
|
| 100 |
+
}
|
| 101 |
+
},
|
| 102 |
+
"feedback": {
|
| 103 |
+
"positive": "\u0a89\u0aaa\u0aaf\u0acb\u0a97\u0ac0",
|
| 104 |
+
"negative": "\u0aac\u0abf\u0aa8\u0a89\u0aaa\u0aaf\u0acb\u0a97\u0ac0",
|
| 105 |
+
"edit": "\u0aaa\u0acd\u0ab0\u0aa4\u0abf\u0ab8\u0abe\u0aa6 \u0ab8\u0a82\u0aaa\u0abe\u0aa6\u0abf\u0aa4 \u0a95\u0ab0\u0acb",
|
| 106 |
+
"dialog": {
|
| 107 |
+
"title": "\u0a9f\u0abf\u0aaa\u0acd\u0aaa\u0aa3\u0ac0 \u0a89\u0aae\u0ac7\u0ab0\u0acb",
|
| 108 |
+
"submit": "\u0aaa\u0acd\u0ab0\u0aa4\u0abf\u0ab8\u0abe\u0aa6 \u0ab8\u0aac\u0aae\u0abf\u0a9f \u0a95\u0ab0\u0acb",
|
| 109 |
+
"yourFeedback": "\u0aa4\u0aae\u0abe\u0ab0\u0acb \u0aaa\u0acd\u0ab0\u0aa4\u0abf\u0ab8\u0abe\u0aa6..."
|
| 110 |
+
},
|
| 111 |
+
"status": {
|
| 112 |
+
"updating": "\u0a85\u0aaa\u0aa1\u0ac7\u0a9f \u0aa5\u0a88 \u0ab0\u0ab9\u0acd\u0aaf\u0ac1\u0a82 \u0a9b\u0ac7",
|
| 113 |
+
"updated": "\u0aaa\u0acd\u0ab0\u0aa4\u0abf\u0ab8\u0abe\u0aa6 \u0a85\u0aaa\u0aa1\u0ac7\u0a9f \u0aa5\u0aaf\u0acb"
|
| 114 |
+
}
|
| 115 |
+
}
|
| 116 |
+
},
|
| 117 |
+
"history": {
|
| 118 |
+
"title": "\u0a9b\u0ac7\u0ab2\u0acd\u0ab2\u0abe \u0a87\u0aa8\u0aaa\u0ac1\u0a9f\u0acd\u0ab8",
|
| 119 |
+
"empty": "\u0a96\u0abe\u0ab2\u0ac0 \u0a9b\u0ac7...",
|
| 120 |
+
"show": "\u0a87\u0aa4\u0abf\u0ab9\u0abe\u0ab8 \u0aac\u0aa4\u0abe\u0ab5\u0acb"
|
| 121 |
+
},
|
| 122 |
+
"settings": {
|
| 123 |
+
"title": "\u0ab8\u0ac7\u0a9f\u0abf\u0a82\u0a97\u0acd\u0ab8 \u0aaa\u0ac7\u0aa8\u0ab2",
|
| 124 |
+
"customize": "\u0aa4\u0aae\u0abe\u0ab0\u0abe \u0a9a\u0ac7\u0a9f \u0ab8\u0ac7\u0a9f\u0abf\u0a82\u0a97\u0acd\u0ab8 \u0a85\u0ab9\u0ac0\u0a82 \u0a95\u0ab8\u0acd\u0a9f\u0aae\u0abe\u0a87\u0a9d \u0a95\u0ab0\u0acb"
|
| 125 |
+
},
|
| 126 |
+
"watermark": "LLM \u0aad\u0ac2\u0ab2\u0acb \u0a95\u0ab0\u0ac0 \u0ab6\u0a95\u0ac7 \u0a9b\u0ac7. \u0aae\u0ab9\u0aa4\u0acd\u0ab5\u0aaa\u0ac2\u0ab0\u0acd\u0aa3 \u0aae\u0abe\u0ab9\u0abf\u0aa4\u0ac0 \u0aa4\u0aaa\u0abe\u0ab8\u0ab5\u0abe\u0aa8\u0ac1\u0a82 \u0ab5\u0abf\u0a9a\u0abe\u0ab0\u0acb."
|
| 127 |
+
},
|
| 128 |
+
"threadHistory": {
|
| 129 |
+
"sidebar": {
|
| 130 |
+
"title": "\u0aaa\u0abe\u0a9b\u0ab2\u0ac0 \u0a9a\u0ac7\u0a9f\u0acd\u0ab8",
|
| 131 |
+
"filters": {
|
| 132 |
+
"search": "\u0ab6\u0acb\u0aa7\u0acb",
|
| 133 |
+
"placeholder": "Search conversations..."
|
| 134 |
+
},
|
| 135 |
+
"timeframes": {
|
| 136 |
+
"today": "\u0a86\u0a9c\u0ac7",
|
| 137 |
+
"yesterday": "\u0a97\u0a88\u0a95\u0abe\u0ab2\u0ac7",
|
| 138 |
+
"previous7days": "\u0aaa\u0abe\u0a9b\u0ab2\u0abe 7 \u0aa6\u0abf\u0ab5\u0ab8",
|
| 139 |
+
"previous30days": "\u0aaa\u0abe\u0a9b\u0ab2\u0abe 30 \u0aa6\u0abf\u0ab5\u0ab8"
|
| 140 |
+
},
|
| 141 |
+
"empty": "\u0a95\u0acb\u0a88 \u0aa5\u0acd\u0ab0\u0ac7\u0aa1\u0acd\u0ab8 \u0aae\u0ab3\u0acd\u0aaf\u0abe \u0aa8\u0aa5\u0ac0",
|
| 142 |
+
"actions": {
|
| 143 |
+
"close": "\u0ab8\u0abe\u0a87\u0aa1\u0aac\u0abe\u0ab0 \u0aac\u0a82\u0aa7 \u0a95\u0ab0\u0acb",
|
| 144 |
+
"open": "\u0ab8\u0abe\u0a87\u0aa1\u0aac\u0abe\u0ab0 \u0a96\u0acb\u0ab2\u0acb"
|
| 145 |
+
}
|
| 146 |
+
},
|
| 147 |
+
"thread": {
|
| 148 |
+
"untitled": "\u0ab6\u0ac0\u0ab0\u0acd\u0ab7\u0a95 \u0ab5\u0a97\u0ab0\u0aa8\u0ac0 \u0ab5\u0abe\u0aa4\u0a9a\u0ac0\u0aa4",
|
| 149 |
+
"menu": {
|
| 150 |
+
"rename": "\u0aa8\u0abe\u0aae \u0aac\u0aa6\u0ab2\u0acb",
|
| 151 |
+
"share": "\u0ab6\u0ac7\u0ab0 \u0a95\u0ab0\u0acb",
|
| 152 |
+
"delete": "Delete"
|
| 153 |
+
},
|
| 154 |
+
"actions": {
|
| 155 |
+
"share": {
|
| 156 |
+
"title": "\u0a9a\u0ac7\u0a9f\u0aa8\u0ac0 \u0ab2\u0abf\u0a82\u0a95 \u0ab6\u0ac7\u0ab0 \u0a95\u0ab0\u0acb",
|
| 157 |
+
"button": "\u0ab6\u0ac7\u0ab0 \u0a95\u0ab0\u0acb",
|
| 158 |
+
"status": {
|
| 159 |
+
"copied": "\u0ab2\u0abf\u0a82\u0a95 \u0a95\u0ac9\u0aaa\u0abf \u0aa5\u0a88",
|
| 160 |
+
"created": "\u0ab6\u0ac7\u0ab0 \u0ab2\u0abf\u0a82\u0a95 \u0aac\u0aa8\u0abe\u0ab5\u0abe\u0a88!",
|
| 161 |
+
"unshared": "\u0a86 \u0aa5\u0acd\u0ab0\u0ac7\u0aa1 \u0aae\u0abe\u0a9f\u0ac7 \u0ab6\u0ac7\u0ab0\u0abf\u0a82\u0a97 \u0aa8\u0abf\u0ab7\u0acd\u0a95\u0acd\u0ab0\u0abf\u0aaf \u0a9b\u0ac7"
|
| 162 |
+
},
|
| 163 |
+
"error": {
|
| 164 |
+
"create": "\u0ab6\u0ac7\u0ab0 \u0ab2\u0abf\u0a82\u0a95 \u0aac\u0aa8\u0abe\u0ab5\u0ab5\u0abe\u0aae\u0abe\u0a82 \u0aa8\u0abf\u0ab7\u0acd\u0aab\u0ab3",
|
| 165 |
+
"unshare": "\u0aa5\u0acd\u0ab0\u0ac7\u0aa1 \u0a85\u0aa8\u0ab6\u0ac7\u0ab0 \u0a95\u0ab0\u0ab5\u0abe\u0aae\u0abe\u0a82 \u0aa8\u0abf\u0ab7\u0acd\u0aab\u0ab3"
|
| 166 |
+
}
|
| 167 |
+
},
|
| 168 |
+
"delete": {
|
| 169 |
+
"title": "\u0a95\u0abe\u0aa2\u0ac0 \u0aa8\u0abe\u0a96\u0ab5\u0abe\u0aa8\u0ac0 \u0aaa\u0ac1\u0ab7\u0acd\u0a9f\u0abf \u0a95\u0ab0\u0acb",
|
| 170 |
+
"description": "\u0a86 \u0aa5\u0acd\u0ab0\u0ac7\u0aa1 \u0a85\u0aa8\u0ac7 \u0aa4\u0ac7\u0aa8\u0abe \u0ab8\u0a82\u0aa6\u0ac7\u0ab6\u0abe\u0a93 \u0a85\u0aa8\u0ac7 \u0aa4\u0aa4\u0acd\u0ab5\u0acb\u0aa8\u0ac7 \u0a95\u0abe\u0aa2\u0ac0 \u0aa8\u0abe\u0a96\u0ab6\u0ac7. \u0a86 \u0a95\u0acd\u0ab0\u0abf\u0aaf\u0abe \u0aaa\u0abe\u0a9b\u0ac0 \u0aab\u0ac7\u0ab0\u0ab5\u0ac0 \u0ab6\u0a95\u0abe\u0ab6\u0ac7 \u0aa8\u0ab9\u0ac0\u0a82",
|
| 171 |
+
"success": "\u0a9a\u0ac7\u0a9f \u0a95\u0abe\u0aa2\u0ac0 \u0aa8\u0abe\u0a96\u0ac0",
|
| 172 |
+
"inProgress": "\u0a9a\u0ac7\u0a9f \u0a95\u0abe\u0aa2\u0ac0 \u0aa8\u0abe\u0a96\u0ac0 \u0ab0\u0ab9\u0acd\u0aaf\u0abe \u0a9b\u0ac0\u0a8f"
|
| 173 |
+
},
|
| 174 |
+
"rename": {
|
| 175 |
+
"title": "\u0aa5\u0acd\u0ab0\u0ac7\u0aa1\u0aa8\u0ac1\u0a82 \u0aa8\u0abe\u0aae \u0aac\u0aa6\u0ab2\u0acb",
|
| 176 |
+
"description": "\u0a86 \u0aa5\u0acd\u0ab0\u0ac7\u0aa1 \u0aae\u0abe\u0a9f\u0ac7 \u0aa8\u0ab5\u0ac1\u0a82 \u0aa8\u0abe\u0aae \u0aa6\u0abe\u0a96\u0ab2 \u0a95\u0ab0\u0acb",
|
| 177 |
+
"form": {
|
| 178 |
+
"name": {
|
| 179 |
+
"label": "\u0aa8\u0abe\u0aae",
|
| 180 |
+
"placeholder": "\u0aa8\u0ab5\u0ac1\u0a82 \u0aa8\u0abe\u0aae \u0aa6\u0abe\u0a96\u0ab2 \u0a95\u0ab0\u0acb"
|
| 181 |
+
}
|
| 182 |
+
},
|
| 183 |
+
"success": "\u0aa5\u0acd\u0ab0\u0ac7\u0aa1\u0aa8\u0ac1\u0a82 \u0aa8\u0abe\u0aae \u0aac\u0aa6\u0ab2\u0abe\u0aaf\u0ac1\u0a82!",
|
| 184 |
+
"inProgress": "\u0aa5\u0acd\u0ab0\u0ac7\u0aa1\u0aa8\u0ac1\u0a82 \u0aa8\u0abe\u0aae \u0aac\u0aa6\u0ab2\u0ac0 \u0ab0\u0ab9\u0acd\u0aaf\u0abe \u0a9b\u0ac0\u0a8f"
|
| 185 |
+
}
|
| 186 |
+
}
|
| 187 |
+
}
|
| 188 |
+
},
|
| 189 |
+
"navigation": {
|
| 190 |
+
"header": {
|
| 191 |
+
"chat": "\u0a9a\u0ac7\u0a9f",
|
| 192 |
+
"readme": "\u0ab5\u0abe\u0a82\u0a9a\u0acb",
|
| 193 |
+
"theme": {
|
| 194 |
+
"light": "Light Theme",
|
| 195 |
+
"dark": "Dark Theme",
|
| 196 |
+
"system": "Follow System"
|
| 197 |
+
}
|
| 198 |
+
},
|
| 199 |
+
"newChat": {
|
| 200 |
+
"button": "\u0aa8\u0ab5\u0ac0 \u0a9a\u0ac7\u0a9f",
|
| 201 |
+
"dialog": {
|
| 202 |
+
"title": "\u0aa8\u0ab5\u0ac0 \u0a9a\u0ac7\u0a9f \u0aac\u0aa8\u0abe\u0ab5\u0acb",
|
| 203 |
+
"description": "\u0a86 \u0aa4\u0aae\u0abe\u0ab0\u0acb \u0ab5\u0ab0\u0acd\u0aa4\u0aae\u0abe\u0aa8 \u0a9a\u0ac7\u0a9f \u0a87\u0aa4\u0abf\u0ab9\u0abe\u0ab8 \u0ab8\u0abe\u0aab \u0a95\u0ab0\u0ab6\u0ac7. \u0ab6\u0ac1\u0a82 \u0aa4\u0aae\u0ac7 \u0a9a\u0abe\u0ab2\u0ac1 \u0ab0\u0abe\u0a96\u0ab5\u0abe \u0aae\u0abe\u0a82\u0a97\u0acb \u0a9b\u0acb?",
|
| 204 |
+
"tooltip": "\u0aa8\u0ab5\u0ac0 \u0a9a\u0ac7\u0a9f"
|
| 205 |
+
}
|
| 206 |
+
},
|
| 207 |
+
"user": {
|
| 208 |
+
"menu": {
|
| 209 |
+
"settings": "\u0ab8\u0ac7\u0a9f\u0abf\u0a82\u0a97\u0acd\u0ab8",
|
| 210 |
+
"settingsKey": "S",
|
| 211 |
+
"apiKeys": "API \u0a95\u0ac0",
|
| 212 |
+
"logout": "\u0ab2\u0ac9\u0a97\u0a86\u0a89\u0a9f"
|
| 213 |
+
}
|
| 214 |
+
}
|
| 215 |
+
},
|
| 216 |
+
"apiKeys": {
|
| 217 |
+
"title": "\u0a9c\u0ab0\u0ac2\u0ab0\u0ac0 API \u0a95\u0ac0",
|
| 218 |
+
"description": "\u0a86 \u0a8f\u0aaa\u0acd\u0ab2\u0abf\u0a95\u0ac7\u0ab6\u0aa8 \u0ab5\u0abe\u0aaa\u0ab0\u0ab5\u0abe \u0aae\u0abe\u0a9f\u0ac7, \u0aa8\u0ac0\u0a9a\u0ac7\u0aa8\u0ac0 API \u0a95\u0ac0 \u0a9c\u0ab0\u0ac2\u0ab0\u0ac0 \u0a9b\u0ac7. \u0a95\u0ac0 \u0aa4\u0aae\u0abe\u0ab0\u0abe \u0aa1\u0abf\u0ab5\u0abe\u0a87\u0ab8\u0aa8\u0abe \u0ab2\u0acb\u0a95\u0ab2 \u0ab8\u0acd\u0a9f\u0acb\u0ab0\u0ac7\u0a9c\u0aae\u0abe\u0a82 \u0ab8\u0a82\u0a97\u0acd\u0ab0\u0ab9\u0abf\u0aa4 \u0aa5\u0ab6\u0ac7.",
|
| 219 |
+
"success": {
|
| 220 |
+
"saved": "\u0ab8\u0aab\u0ab3\u0aa4\u0abe\u0aaa\u0ac2\u0ab0\u0acd\u0ab5\u0a95 \u0ab8\u0abe\u0a9a\u0ab5\u0acd\u0aaf\u0ac1\u0a82"
|
| 221 |
+
}
|
| 222 |
+
},
|
| 223 |
+
"alerts": {
|
| 224 |
+
"info": "Info",
|
| 225 |
+
"note": "Note",
|
| 226 |
+
"tip": "Tip",
|
| 227 |
+
"important": "Important",
|
| 228 |
+
"warning": "Warning",
|
| 229 |
+
"caution": "Caution",
|
| 230 |
+
"debug": "Debug",
|
| 231 |
+
"example": "Example",
|
| 232 |
+
"success": "Success",
|
| 233 |
+
"help": "Help",
|
| 234 |
+
"idea": "Idea",
|
| 235 |
+
"pending": "Pending",
|
| 236 |
+
"security": "Security",
|
| 237 |
+
"beta": "Beta",
|
| 238 |
+
"best-practice": "Best Practice"
|
| 239 |
+
},
|
| 240 |
+
"components": {
|
| 241 |
+
"MultiSelectInput": {
|
| 242 |
+
"placeholder": "\u0aac\u0ac7\u0a82\u0a9a\u0ac0 \u0ab2\u0acb..."
|
| 243 |
+
}
|
| 244 |
+
}
|
| 245 |
+
}
|
.chainlit/translations/he-IL.json
ADDED
|
@@ -0,0 +1,245 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "\u05d1\u05d9\u05d8\u05d5\u05dc",
|
| 5 |
+
"confirm": "\u05d0\u05d9\u05e9\u05d5\u05e8",
|
| 6 |
+
"continue": "\u05d4\u05de\u05e9\u05da",
|
| 7 |
+
"goBack": "\u05d7\u05d6\u05d5\u05e8",
|
| 8 |
+
"reset": "\u05d0\u05d9\u05e4\u05d5\u05e1",
|
| 9 |
+
"submit": "\u05e9\u05dc\u05d7"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "\u05d8\u05d5\u05e2\u05df...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "\u05d0\u05d9\u05e8\u05e2\u05d4 \u05e9\u05d2\u05d9\u05d0\u05d4",
|
| 15 |
+
"serverConnection": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05d4\u05ea\u05d7\u05d1\u05e8 \u05dc\u05e9\u05e8\u05ea"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "\u05d4\u05ea\u05d7\u05d1\u05e8 \u05db\u05d3\u05d9 \u05dc\u05d2\u05e9\u05ea \u05dc\u05d0\u05e4\u05dc\u05d9\u05e7\u05e6\u05d9\u05d4",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "\u05db\u05ea\u05d5\u05d1\u05ea \u05d0\u05d9\u05de\u05d9\u05d9\u05dc",
|
| 25 |
+
"required": "\u05e9\u05d3\u05d4 \u05d4\u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05d4\u05d5\u05d0 \u05e9\u05d3\u05d4 \u05d7\u05d5\u05d1\u05d4",
|
| 26 |
+
"placeholder": "me@example.com"
|
| 27 |
+
},
|
| 28 |
+
"password": {
|
| 29 |
+
"label": "\u05e1\u05d9\u05e1\u05de\u05d4",
|
| 30 |
+
"required": "\u05e9\u05d3\u05d4 \u05d4\u05e1\u05d9\u05e1\u05de\u05d4 \u05d4\u05d5\u05d0 \u05e9\u05d3\u05d4 \u05d7\u05d5\u05d1\u05d4"
|
| 31 |
+
},
|
| 32 |
+
"actions": {
|
| 33 |
+
"signin": "\u05d4\u05ea\u05d7\u05d1\u05e8"
|
| 34 |
+
},
|
| 35 |
+
"alternativeText": {
|
| 36 |
+
"or": "\u05d0\u05d5"
|
| 37 |
+
}
|
| 38 |
+
},
|
| 39 |
+
"errors": {
|
| 40 |
+
"default": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05d4\u05ea\u05d7\u05d1\u05e8",
|
| 41 |
+
"signin": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05ea\u05d7\u05d1\u05e8 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8",
|
| 42 |
+
"oauthSignin": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05ea\u05d7\u05d1\u05e8 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8",
|
| 43 |
+
"redirectUriMismatch": "\u05db\u05ea\u05d5\u05d1\u05ea \u05d4\u05d4\u05e4\u05e0\u05d9\u05d4 \u05d0\u05d9\u05e0\u05d4 \u05ea\u05d5\u05d0\u05de\u05ea \u05d0\u05ea \u05ea\u05e6\u05d5\u05e8\u05ea \u05d0\u05e4\u05dc\u05d9\u05e7\u05e6\u05d9\u05d9\u05ea OAuth",
|
| 44 |
+
"oauthCallback": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05ea\u05d7\u05d1\u05e8 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8",
|
| 45 |
+
"oauthCreateAccount": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05ea\u05d7\u05d1\u05e8 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8",
|
| 46 |
+
"emailCreateAccount": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05ea\u05d7\u05d1\u05e8 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8",
|
| 47 |
+
"callback": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05ea\u05d7\u05d1\u05e8 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8",
|
| 48 |
+
"oauthAccountNotLinked": "\u05db\u05d3\u05d9 \u05dc\u05d0\u05de\u05ea \u05d0\u05ea \u05d6\u05d4\u05d5\u05ea\u05da, \u05d4\u05ea\u05d7\u05d1\u05e8 \u05e2\u05dd \u05d0\u05d5\u05ea\u05d5 \u05d7\u05e9\u05d1\u05d5\u05df \u05d1\u05d5 \u05d4\u05e9\u05ea\u05de\u05e9\u05ea \u05d1\u05de\u05e7\u05d5\u05e8",
|
| 49 |
+
"emailSignin": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05d4\u05d9\u05d4 \u05dc\u05e9\u05dc\u05d5\u05d7 \u05d0\u05ea \u05d4\u05d0\u05d9\u05de\u05d9\u05d9\u05dc",
|
| 50 |
+
"emailVerify": "\u05d0\u05e0\u05d0 \u05d0\u05de\u05ea \u05d0\u05ea \u05d4\u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05e9\u05dc\u05da, \u05e0\u05e9\u05dc\u05d7 \u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05d7\u05d3\u05e9",
|
| 51 |
+
"credentialsSignin": "\u05d4\u05d4\u05ea\u05d7\u05d1\u05e8\u05d5\u05ea \u05e0\u05db\u05e9\u05dc\u05d4. \u05d1\u05d3\u05d5\u05e7 \u05e9\u05d4\u05e4\u05e8\u05d8\u05d9\u05dd \u05e9\u05d4\u05d6\u05e0\u05ea \u05e0\u05db\u05d5\u05e0\u05d9\u05dd",
|
| 52 |
+
"sessionRequired": "\u05d0\u05e0\u05d0 \u05d4\u05ea\u05d7\u05d1\u05e8 \u05db\u05d3\u05d9 \u05dc\u05d2\u05e9\u05ea \u05dc\u05d3\u05e3 \u05d6\u05d4"
|
| 53 |
+
}
|
| 54 |
+
},
|
| 55 |
+
"provider": {
|
| 56 |
+
"continue": "\u05d4\u05de\u05e9\u05da \u05e2\u05dd {{provider}}"
|
| 57 |
+
}
|
| 58 |
+
},
|
| 59 |
+
"chat": {
|
| 60 |
+
"input": {
|
| 61 |
+
"placeholder": "\u05d4\u05e7\u05dc\u05d3 \u05d0\u05ea \u05d4\u05d4\u05d5\u05d3\u05e2\u05d4 \u05e9\u05dc\u05da \u05db\u05d0\u05df...",
|
| 62 |
+
"actions": {
|
| 63 |
+
"send": "\u05e9\u05dc\u05d7 \u05d4\u05d5\u05d3\u05e2\u05d4",
|
| 64 |
+
"stop": "\u05e2\u05e6\u05d5\u05e8 \u05de\u05e9\u05d9\u05de\u05d4",
|
| 65 |
+
"attachFiles": "\u05e6\u05e8\u05e3 \u05e7\u05d1\u05e6\u05d9\u05dd"
|
| 66 |
+
}
|
| 67 |
+
},
|
| 68 |
+
"speech": {
|
| 69 |
+
"start": "\u05d4\u05ea\u05d7\u05dc \u05d4\u05e7\u05dc\u05d8\u05d4",
|
| 70 |
+
"stop": "\u05e2\u05e6\u05d5\u05e8 \u05d4\u05e7\u05dc\u05d8\u05d4",
|
| 71 |
+
"connecting": "\u05de\u05ea\u05d7\u05d1\u05e8"
|
| 72 |
+
},
|
| 73 |
+
"commands": {
|
| 74 |
+
"button": "\u05db\u05dc\u05d9\u05dd",
|
| 75 |
+
"changeTool": "\u05e9\u05e0\u05d4 \u05db\u05dc\u05d9",
|
| 76 |
+
"availableTools": "\u05db\u05dc\u05d9\u05dd \u05d6\u05de\u05d9\u05e0\u05d9\u05dd"
|
| 77 |
+
},
|
| 78 |
+
"fileUpload": {
|
| 79 |
+
"dragDrop": "\u05d2\u05e8\u05d5\u05e8 \u05d5\u05e9\u05d7\u05e8\u05e8 \u05e7\u05d1\u05e6\u05d9\u05dd \u05db\u05d0\u05df",
|
| 80 |
+
"browse": "\u05e2\u05d9\u05d9\u05df \u05d1\u05e7\u05d1\u05e6\u05d9\u05dd",
|
| 81 |
+
"sizeLimit": "\u05de\u05d2\u05d1\u05dc\u05d4:",
|
| 82 |
+
"errors": {
|
| 83 |
+
"failed": "\u05d4\u05e2\u05dc\u05d0\u05d4 \u05e0\u05db\u05e9\u05dc\u05d4",
|
| 84 |
+
"cancelled": "\u05d4\u05e2\u05dc\u05d0\u05d4 \u05d1\u05d5\u05d8\u05dc\u05d4 \u05e9\u05dc"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"cancelUpload": "\u05d1\u05d9\u05d8\u05d5\u05dc \u05d4\u05e2\u05dc\u05d0\u05d4",
|
| 88 |
+
"removeAttachment": "\u05d4\u05e1\u05e8\u05ea \u05e7\u05d5\u05d1\u05e5 \u05de\u05e6\u05d5\u05e8\u05e3"
|
| 89 |
+
}
|
| 90 |
+
},
|
| 91 |
+
"messages": {
|
| 92 |
+
"status": {
|
| 93 |
+
"using": "\u05de\u05e9\u05ea\u05de\u05e9 \u05d1",
|
| 94 |
+
"used": "\u05d4\u05e9\u05ea\u05de\u05e9 \u05d1"
|
| 95 |
+
},
|
| 96 |
+
"actions": {
|
| 97 |
+
"copy": {
|
| 98 |
+
"button": "\u05d4\u05e2\u05ea\u05e7 \u05dc\u05dc\u05d5\u05d7",
|
| 99 |
+
"success": "\u05d4\u05d5\u05e2\u05ea\u05e7!"
|
| 100 |
+
}
|
| 101 |
+
},
|
| 102 |
+
"feedback": {
|
| 103 |
+
"positive": "\u05de\u05d5\u05e2\u05d9\u05dc",
|
| 104 |
+
"negative": "\u05dc\u05d0 \u05de\u05d5\u05e2\u05d9\u05dc",
|
| 105 |
+
"edit": "\u05e2\u05e8\u05d5\u05da \u05de\u05e9\u05d5\u05d1",
|
| 106 |
+
"dialog": {
|
| 107 |
+
"title": "\u05d4\u05d5\u05e1\u05e3 \u05ea\u05d2\u05d5\u05d1\u05d4",
|
| 108 |
+
"submit": "\u05e9\u05dc\u05d7 \u05de\u05e9\u05d5\u05d1",
|
| 109 |
+
"yourFeedback": "\u05d4\u05de\u05e9\u05d5\u05d1 \u05e9\u05dc\u05da..."
|
| 110 |
+
},
|
| 111 |
+
"status": {
|
| 112 |
+
"updating": "\u05de\u05e2\u05d3\u05db\u05df",
|
| 113 |
+
"updated": "\u05d4\u05de\u05e9\u05d5\u05d1 \u05e2\u05d5\u05d3\u05db\u05df"
|
| 114 |
+
}
|
| 115 |
+
}
|
| 116 |
+
},
|
| 117 |
+
"history": {
|
| 118 |
+
"title": "\u05e7\u05dc\u05d8\u05d9\u05dd \u05d0\u05d7\u05e8\u05d5\u05e0\u05d9\u05dd",
|
| 119 |
+
"empty": "\u05db\u05dc \u05db\u05da \u05e8\u05d9\u05e7...",
|
| 120 |
+
"show": "\u05d4\u05e6\u05d2 \u05d4\u05d9\u05e1\u05d8\u05d5\u05e8\u05d9\u05d4"
|
| 121 |
+
},
|
| 122 |
+
"settings": {
|
| 123 |
+
"title": "\u05e4\u05d0\u05e0\u05dc \u05d4\u05d2\u05d3\u05e8\u05d5\u05ea",
|
| 124 |
+
"customize": "\u05d4\u05ea\u05d0\u05dd \u05d0\u05d9\u05e9\u05d9\u05ea \u05d0\u05ea \u05d4\u05d2\u05d3\u05e8\u05d5\u05ea \u05d4\u05e6'\u05d0\u05d8 \u05e9\u05dc\u05da \u05db\u05d0\u05df"
|
| 125 |
+
},
|
| 126 |
+
"watermark": "\u05de\u05d5\u05d3\u05dc\u05d9 \u05e9\u05e4\u05d4 \u05d2\u05d3\u05d5\u05dc\u05d9\u05dd \u05e2\u05dc\u05d5\u05dc\u05d9\u05dd \u05dc\u05e2\u05e9\u05d5\u05ea \u05d8\u05e2\u05d5\u05d9\u05d5\u05ea. \u05db\u05d3\u05d0\u05d9 \u05dc\u05d1\u05d3\u05d5\u05e7 \u05de\u05d9\u05d3\u05e2 \u05d7\u05e9\u05d5\u05d1."
|
| 127 |
+
},
|
| 128 |
+
"threadHistory": {
|
| 129 |
+
"sidebar": {
|
| 130 |
+
"title": "\u05e6'\u05d0\u05d8\u05d9\u05dd \u05e7\u05d5\u05d3\u05de\u05d9\u05dd",
|
| 131 |
+
"filters": {
|
| 132 |
+
"search": "\u05d7\u05d9\u05e4\u05d5\u05e9",
|
| 133 |
+
"placeholder": "Search conversations..."
|
| 134 |
+
},
|
| 135 |
+
"timeframes": {
|
| 136 |
+
"today": "\u05d4\u05d9\u05d5\u05dd",
|
| 137 |
+
"yesterday": "\u05d0\u05ea\u05de\u05d5\u05dc",
|
| 138 |
+
"previous7days": "7 \u05d9\u05de\u05d9\u05dd \u05d0\u05d7\u05e8\u05d5\u05e0\u05d9\u05dd",
|
| 139 |
+
"previous30days": "30 \u05d9\u05de\u05d9\u05dd \u05d0\u05d7\u05e8\u05d5\u05e0\u05d9\u05dd"
|
| 140 |
+
},
|
| 141 |
+
"empty": "\u05dc\u05d0 \u05e0\u05de\u05e6\u05d0\u05d5 \u05e9\u05d9\u05d7\u05d5\u05ea",
|
| 142 |
+
"actions": {
|
| 143 |
+
"close": "\u05e1\u05d2\u05d5\u05e8 \u05e1\u05e8\u05d2\u05dc \u05e6\u05d3",
|
| 144 |
+
"open": "\u05e4\u05ea\u05d7 \u05e1\u05e8\u05d2\u05dc \u05e6\u05d3"
|
| 145 |
+
}
|
| 146 |
+
},
|
| 147 |
+
"thread": {
|
| 148 |
+
"untitled": "\u05e9\u05d9\u05d7\u05d4 \u05dc\u05dc\u05d0 \u05db\u05d5\u05ea\u05e8\u05ea",
|
| 149 |
+
"menu": {
|
| 150 |
+
"rename": "\u05e9\u05d9\u05e0\u05d5\u05d9 \u05e9\u05dd",
|
| 151 |
+
"share": "\u05e9\u05d9\u05ea\u05d5\u05e3",
|
| 152 |
+
"delete": "Delete"
|
| 153 |
+
},
|
| 154 |
+
"actions": {
|
| 155 |
+
"share": {
|
| 156 |
+
"title": "\u05e9\u05d9\u05ea\u05d5\u05e3 \u05e7\u05d9\u05e9\u05d5\u05e8 \u05dc\u05e9\u05d9\u05d7\u05d4",
|
| 157 |
+
"button": "\u05e9\u05d9\u05ea\u05d5\u05e3",
|
| 158 |
+
"status": {
|
| 159 |
+
"copied": "\u05d4\u05e7\u05d9\u05e9\u05d5\u05e8 \u05d4\u05d5\u05e2\u05ea\u05e7",
|
| 160 |
+
"created": "\u05e7\u05d9\u05e9\u05d5\u05e8 \u05d4\u05e9\u05d9\u05ea\u05d5\u05e3 \u05e0\u05d5\u05e6\u05e8!",
|
| 161 |
+
"unshared": "\u05d4\u05e9\u05d9\u05ea\u05d5\u05e3 \u05d1\u05d5\u05d8\u05dc \u05e2\u05d1\u05d5\u05e8 \u05e9\u05d9\u05d7\u05d4 \u05d6\u05d5"
|
| 162 |
+
},
|
| 163 |
+
"error": {
|
| 164 |
+
"create": "\u05d9\u05e6\u05d9\u05e8\u05ea \u05e7\u05d9\u05e9\u05d5\u05e8 \u05d4\u05e9\u05d9\u05ea\u05d5\u05e3 \u05e0\u05db\u05e9\u05dc\u05d4",
|
| 165 |
+
"unshare": "\u05d1\u05d9\u05d8\u05d5\u05dc \u05d4\u05e9\u05d9\u05ea\u05d5\u05e3 \u05e9\u05dc \u05d4\u05e9\u05d9\u05d7\u05d4 \u05e0\u05db\u05e9\u05dc"
|
| 166 |
+
}
|
| 167 |
+
},
|
| 168 |
+
"delete": {
|
| 169 |
+
"title": "\u05d0\u05e9\u05e8 \u05de\u05d7\u05d9\u05e7\u05d4",
|
| 170 |
+
"description": "\u05e4\u05e2\u05d5\u05dc\u05d4 \u05d6\u05d5 \u05ea\u05de\u05d7\u05e7 \u05d0\u05ea \u05d4\u05e9\u05d9\u05d7\u05d4 \u05d5\u05db\u05df \u05d0\u05ea \u05d4\u05d4\u05d5\u05d3\u05e2\u05d5\u05ea \u05d5\u05d4\u05d0\u05dc\u05de\u05e0\u05d8\u05d9\u05dd \u05e9\u05dc\u05d4. \u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05d1\u05d8\u05dc \u05e4\u05e2\u05d5\u05dc\u05d4 \u05d6\u05d5",
|
| 171 |
+
"success": "\u05d4\u05e6'\u05d0\u05d8 \u05e0\u05de\u05d7\u05e7",
|
| 172 |
+
"inProgress": "\u05de\u05d5\u05d7\u05e7 \u05e6'\u05d0\u05d8"
|
| 173 |
+
},
|
| 174 |
+
"rename": {
|
| 175 |
+
"title": "\u05e9\u05e0\u05d4 \u05e9\u05dd \u05e9\u05d9\u05d7\u05d4",
|
| 176 |
+
"description": "\u05d4\u05d6\u05df \u05e9\u05dd \u05d7\u05d3\u05e9 \u05dc\u05e9\u05d9\u05d7\u05d4 \u05d6\u05d5",
|
| 177 |
+
"form": {
|
| 178 |
+
"name": {
|
| 179 |
+
"label": "\u05e9\u05dd",
|
| 180 |
+
"placeholder": "\u05d4\u05d6\u05df \u05e9\u05dd \u05d7\u05d3\u05e9"
|
| 181 |
+
}
|
| 182 |
+
},
|
| 183 |
+
"success": "\u05e9\u05dd \u05d4\u05e9\u05d9\u05d7\u05d4 \u05e9\u05d5\u05e0\u05d4!",
|
| 184 |
+
"inProgress": "\u05de\u05e9\u05e0\u05d4 \u05e9\u05dd \u05e9\u05d9\u05d7\u05d4"
|
| 185 |
+
}
|
| 186 |
+
}
|
| 187 |
+
}
|
| 188 |
+
},
|
| 189 |
+
"navigation": {
|
| 190 |
+
"header": {
|
| 191 |
+
"chat": "\u05e6'\u05d0\u05d8",
|
| 192 |
+
"readme": "\u05e7\u05e8\u05d0 \u05d0\u05d5\u05ea\u05d9",
|
| 193 |
+
"theme": {
|
| 194 |
+
"light": "Light Theme",
|
| 195 |
+
"dark": "Dark Theme",
|
| 196 |
+
"system": "Follow System"
|
| 197 |
+
}
|
| 198 |
+
},
|
| 199 |
+
"newChat": {
|
| 200 |
+
"button": "\u05e6'\u05d0\u05d8 \u05d7\u05d3\u05e9",
|
| 201 |
+
"dialog": {
|
| 202 |
+
"title": "\u05e6\u05d5\u05e8 \u05e6'\u05d0\u05d8 \u05d7\u05d3\u05e9",
|
| 203 |
+
"description": "\u05e4\u05e2\u05d5\u05dc\u05d4 \u05d6\u05d5 \u05ea\u05e0\u05e7\u05d4 \u05d0\u05ea \u05d4\u05d9\u05e1\u05d8\u05d5\u05e8\u05d9\u05d9\u05ea \u05d4\u05e6'\u05d0\u05d8 \u05d4\u05e0\u05d5\u05db\u05d7\u05d9\u05ea \u05e9\u05dc\u05da. \u05d4\u05d0\u05dd \u05d0\u05ea\u05d4 \u05d1\u05d8\u05d5\u05d7 \u05e9\u05d1\u05e8\u05e6\u05d5\u05e0\u05da \u05dc\u05d4\u05de\u05e9\u05d9\u05da?",
|
| 204 |
+
"tooltip": "\u05e6'\u05d0\u05d8 \u05d7\u05d3\u05e9"
|
| 205 |
+
}
|
| 206 |
+
},
|
| 207 |
+
"user": {
|
| 208 |
+
"menu": {
|
| 209 |
+
"settings": "\u05d4\u05d2\u05d3\u05e8\u05d5\u05ea",
|
| 210 |
+
"settingsKey": "\u05d4",
|
| 211 |
+
"apiKeys": "\u05de\u05e4\u05ea\u05d7\u05d5\u05ea API",
|
| 212 |
+
"logout": "\u05d4\u05ea\u05e0\u05ea\u05e7"
|
| 213 |
+
}
|
| 214 |
+
}
|
| 215 |
+
},
|
| 216 |
+
"apiKeys": {
|
| 217 |
+
"title": "\u05de\u05e4\u05ea\u05d7\u05d5\u05ea API \u05e0\u05d3\u05e8\u05e9\u05d9\u05dd",
|
| 218 |
+
"description": "\u05db\u05d3\u05d9 \u05dc\u05d4\u05e9\u05ea\u05de\u05e9 \u05d1\u05d0\u05e4\u05dc\u05d9\u05e7\u05e6\u05d9\u05d4 \u05d6\u05d5, \u05e0\u05d3\u05e8\u05e9\u05d9\u05dd \u05de\u05e4\u05ea\u05d7\u05d5\u05ea API \u05d4\u05d1\u05d0\u05d9\u05dd. \u05d4\u05de\u05e4\u05ea\u05d7\u05d5\u05ea \u05de\u05d0\u05d5\u05d7\u05e1\u05e0\u05d9\u05dd \u05d1\u05d0\u05d7\u05e1\u05d5\u05df \u05d4\u05de\u05e7\u05d5\u05de\u05d9 \u05e9\u05dc \u05d4\u05de\u05db\u05e9\u05d9\u05e8 \u05e9\u05dc\u05da.",
|
| 219 |
+
"success": {
|
| 220 |
+
"saved": "\u05e0\u05e9\u05de\u05e8 \u05d1\u05d4\u05e6\u05dc\u05d7\u05d4"
|
| 221 |
+
}
|
| 222 |
+
},
|
| 223 |
+
"alerts": {
|
| 224 |
+
"info": "Info",
|
| 225 |
+
"note": "Note",
|
| 226 |
+
"tip": "Tip",
|
| 227 |
+
"important": "Important",
|
| 228 |
+
"warning": "Warning",
|
| 229 |
+
"caution": "Caution",
|
| 230 |
+
"debug": "Debug",
|
| 231 |
+
"example": "Example",
|
| 232 |
+
"success": "Success",
|
| 233 |
+
"help": "Help",
|
| 234 |
+
"idea": "Idea",
|
| 235 |
+
"pending": "Pending",
|
| 236 |
+
"security": "Security",
|
| 237 |
+
"beta": "Beta",
|
| 238 |
+
"best-practice": "Best Practice"
|
| 239 |
+
},
|
| 240 |
+
"components": {
|
| 241 |
+
"MultiSelectInput": {
|
| 242 |
+
"placeholder": "\u05d1\u05d7\u05e8..."
|
| 243 |
+
}
|
| 244 |
+
}
|
| 245 |
+
}
|
.chainlit/translations/hi.json
ADDED
|
@@ -0,0 +1,245 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "\u0930\u0926\u094d\u0926 \u0915\u0930\u0947\u0902",
|
| 5 |
+
"confirm": "\u092a\u0941\u0937\u094d\u091f\u093f \u0915\u0930\u0947\u0902",
|
| 6 |
+
"continue": "\u091c\u093e\u0930\u0940 \u0930\u0916\u0947\u0902",
|
| 7 |
+
"goBack": "\u0935\u093e\u092a\u0938 \u091c\u093e\u090f\u0902",
|
| 8 |
+
"reset": "\u0930\u0940\u0938\u0947\u091f \u0915\u0930\u0947\u0902",
|
| 9 |
+
"submit": "\u091c\u092e\u093e \u0915\u0930\u0947\u0902"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "\u0932\u094b\u0921 \u0939\u094b \u0930\u0939\u093e \u0939\u0948...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "\u090f\u0915 \u0924\u094d\u0930\u0941\u091f\u093f \u0939\u0941\u0908",
|
| 15 |
+
"serverConnection": "\u0938\u0930\u094d\u0935\u0930 \u0938\u0947 \u0938\u0902\u092a\u0930\u094d\u0915 \u0928\u0939\u0940\u0902 \u0939\u094b \u092a\u093e \u0930\u0939\u093e"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "\u0910\u092a \u0915\u093e \u0909\u092a\u092f\u094b\u0917 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f \u0932\u0949\u0917\u093f\u0928 \u0915\u0930\u0947\u0902",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "\u0908\u092e\u0947\u0932 \u092a\u0924\u093e",
|
| 25 |
+
"required": "\u0908\u092e\u0947\u0932 \u090f\u0915 \u0906\u0935\u0936\u094d\u092f\u0915 \u092b\u093c\u0940\u0932\u094d\u0921 \u0939\u0948",
|
| 26 |
+
"placeholder": "me@example.com"
|
| 27 |
+
},
|
| 28 |
+
"password": {
|
| 29 |
+
"label": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921",
|
| 30 |
+
"required": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u090f\u0915 \u0906\u0935\u0936\u094d\u092f\u0915 \u092b\u093c\u0940\u0932\u094d\u0921 \u0939\u0948"
|
| 31 |
+
},
|
| 32 |
+
"actions": {
|
| 33 |
+
"signin": "\u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0947\u0902"
|
| 34 |
+
},
|
| 35 |
+
"alternativeText": {
|
| 36 |
+
"or": "\u092f\u093e"
|
| 37 |
+
}
|
| 38 |
+
},
|
| 39 |
+
"errors": {
|
| 40 |
+
"default": "\u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u092e\u0947\u0902 \u0905\u0938\u092e\u0930\u094d\u0925",
|
| 41 |
+
"signin": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u0915\u093e \u092a\u094d\u0930\u092f\u093e\u0938 \u0915\u0930\u0947\u0902",
|
| 42 |
+
"oauthSignin": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u0915\u093e \u092a\u094d\u0930\u092f\u093e\u0938 \u0915\u0930\u0947\u0902",
|
| 43 |
+
"redirectUriMismatch": "\u0930\u0940\u0921\u093e\u092f\u0930\u0947\u0915\u094d\u091f URI oauth \u0910\u092a \u0915\u0949\u0928\u094d\u092b\u093c\u093f\u0917\u0930\u0947\u0936\u0928 \u0938\u0947 \u092e\u0947\u0932 \u0928\u0939\u0940\u0902 \u0916\u093e \u0930\u0939\u093e",
|
| 44 |
+
"oauthCallback": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u0915\u093e \u092a\u094d\u0930\u092f\u093e\u0938 \u0915\u0930\u0947\u0902",
|
| 45 |
+
"oauthCreateAccount": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u0915\u093e \u092a\u094d\u0930\u092f\u093e\u0938 \u0915\u0930\u0947\u0902",
|
| 46 |
+
"emailCreateAccount": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u0915\u093e \u092a\u094d\u0930\u092f\u093e\u0938 \u0915\u0930\u0947\u0902",
|
| 47 |
+
"callback": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u0915\u093e \u092a\u094d\u0930\u092f\u093e\u0938 \u0915\u0930\u0947\u0902",
|
| 48 |
+
"oauthAccountNotLinked": "\u0905\u092a\u0928\u0940 \u092a\u0939\u091a\u093e\u0928 \u0915\u0940 \u092a\u0941\u0937\u094d\u091f\u093f \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f, \u0909\u0938\u0940 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0947\u0902 \u091c\u093f\u0938\u0915\u093e \u0909\u092a\u092f\u094b\u0917 \u0906\u092a\u0928\u0947 \u092e\u0942\u0932 \u0930\u0942\u092a \u0938\u0947 \u0915\u093f\u092f\u093e \u0925\u093e",
|
| 49 |
+
"emailSignin": "\u0908\u092e\u0947\u0932 \u0928\u0939\u0940\u0902 \u092d\u0947\u091c\u093e \u091c\u093e \u0938\u0915\u093e",
|
| 50 |
+
"emailVerify": "\u0915\u0943\u092a\u092f\u093e \u0905\u092a\u0928\u093e \u0908\u092e\u0947\u0932 \u0938\u0924\u094d\u092f\u093e\u092a\u093f\u0924 \u0915\u0930\u0947\u0902, \u090f\u0915 \u0928\u092f\u093e \u0908\u092e\u0947\u0932 \u092d\u0947\u091c\u093e \u0917\u092f\u093e \u0939\u0948",
|
| 51 |
+
"credentialsSignin": "\u0938\u093e\u0907\u0928 \u0907\u0928 \u0935\u093f\u092b\u0932\u0964 \u0906\u092a\u0915\u0947 \u0926\u094d\u0935\u093e\u0930\u093e \u092a\u094d\u0930\u0926\u093e\u0928 \u0915\u093f\u090f \u0917\u090f \u0935\u093f\u0935\u0930\u0923 \u0915\u0940 \u091c\u093e\u0902\u091a \u0915\u0930\u0947\u0902",
|
| 52 |
+
"sessionRequired": "\u0907\u0938 \u092a\u0943\u0937\u094d\u0920 \u0924\u0915 \u092a\u0939\u0941\u0902\u091a\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f \u0915\u0943\u092a\u092f\u093e \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0947\u0902"
|
| 53 |
+
}
|
| 54 |
+
},
|
| 55 |
+
"provider": {
|
| 56 |
+
"continue": "{{provider}} \u0915\u0947 \u0938\u093e\u0925 \u091c\u093e\u0930\u0940 \u0930\u0916\u0947\u0902"
|
| 57 |
+
}
|
| 58 |
+
},
|
| 59 |
+
"chat": {
|
| 60 |
+
"input": {
|
| 61 |
+
"placeholder": "\u0905\u092a\u0928\u093e \u0938\u0902\u0926\u0947\u0936 \u092f\u0939\u093e\u0902 \u091f\u093e\u0907\u092a \u0915\u0930\u0947\u0902...",
|
| 62 |
+
"actions": {
|
| 63 |
+
"send": "\u0938\u0902\u0926\u0947\u0936 \u092d\u0947\u091c\u0947\u0902",
|
| 64 |
+
"stop": "\u0915\u093e\u0930\u094d\u092f \u0930\u094b\u0915\u0947\u0902",
|
| 65 |
+
"attachFiles": "\u092b\u093c\u093e\u0907\u0932\u0947\u0902 \u0938\u0902\u0932\u0917\u094d\u0928 \u0915\u0930\u0947\u0902"
|
| 66 |
+
}
|
| 67 |
+
},
|
| 68 |
+
"speech": {
|
| 69 |
+
"start": "\u0930\u093f\u0915\u0949\u0930\u094d\u0921\u093f\u0902\u0917 \u0936\u0941\u0930\u0942 \u0915\u0930\u0947\u0902",
|
| 70 |
+
"stop": "\u0930\u093f\u0915\u0949\u0930\u094d\u0921\u093f\u0902\u0917 \u0930\u094b\u0915\u0947\u0902",
|
| 71 |
+
"connecting": "\u0915\u0928\u0947\u0915\u094d\u091f \u0939\u094b \u0930\u0939\u093e \u0939\u0948"
|
| 72 |
+
},
|
| 73 |
+
"fileUpload": {
|
| 74 |
+
"dragDrop": "\u092b\u093c\u093e\u0907\u0932\u094b\u0902 \u0915\u094b \u092f\u0939\u093e\u0902 \u0916\u0940\u0902\u091a\u0947\u0902 \u0914\u0930 \u091b\u094b\u0921\u093c\u0947\u0902",
|
| 75 |
+
"browse": "\u092b\u093c\u093e\u0907\u0932\u0947\u0902 \u092c\u094d\u0930\u093e\u0909\u091c\u093c \u0915\u0930\u0947\u0902",
|
| 76 |
+
"sizeLimit": "\u0938\u0940\u092e\u093e:",
|
| 77 |
+
"errors": {
|
| 78 |
+
"failed": "\u0905\u092a\u0932\u094b\u0921 \u0915\u0930\u0928\u0947 \u092e\u0947\u0902 \u0935\u093f\u092b\u0932",
|
| 79 |
+
"cancelled": "\u0915\u093e \u0905\u092a\u0932\u094b\u0921 \u0930\u0926\u094d\u0926 \u0915\u093f\u092f\u093e \u0917\u092f\u093e"
|
| 80 |
+
},
|
| 81 |
+
"actions": {
|
| 82 |
+
"cancelUpload": "\u0905\u092a\u0932\u094b\u0921 \u0930\u0926\u094d\u0926 \u0915\u0930\u0947\u0902",
|
| 83 |
+
"removeAttachment": "\u0938\u0902\u0932\u0917\u094d\u0928\u0915 \u0939\u091f\u093e\u090f\u0902"
|
| 84 |
+
}
|
| 85 |
+
},
|
| 86 |
+
"commands": {
|
| 87 |
+
"button": "\u0909\u092a\u0915\u0930\u0923",
|
| 88 |
+
"changeTool": "\u0909\u092a\u0915\u0930\u0923 \u092c\u0926\u0932\u0947\u0902",
|
| 89 |
+
"availableTools": "\u0909\u092a\u0932\u092c\u094d\u0927 \u0909\u092a\u0915\u0930\u0923"
|
| 90 |
+
},
|
| 91 |
+
"messages": {
|
| 92 |
+
"status": {
|
| 93 |
+
"using": "\u0909\u092a\u092f\u094b\u0917 \u0915\u0930 \u0930\u0939\u0947 \u0939\u0948\u0902",
|
| 94 |
+
"used": "\u0909\u092a\u092f\u094b\u0917 \u0915\u093f\u092f\u093e"
|
| 95 |
+
},
|
| 96 |
+
"actions": {
|
| 97 |
+
"copy": {
|
| 98 |
+
"button": "\u0915\u094d\u0932\u093f\u092a\u092c\u094b\u0930\u094d\u0921 \u092a\u0930 \u0915\u0949\u092a\u0940 \u0915\u0930\u0947\u0902",
|
| 99 |
+
"success": "\u0915\u0949\u092a\u0940 \u0915\u093f\u092f\u093e \u0917\u092f\u093e!"
|
| 100 |
+
}
|
| 101 |
+
},
|
| 102 |
+
"feedback": {
|
| 103 |
+
"positive": "\u0938\u0939\u093e\u092f\u0915",
|
| 104 |
+
"negative": "\u0938\u0939\u093e\u092f\u0915 \u0928\u0939\u0940\u0902",
|
| 105 |
+
"edit": "\u092a\u094d\u0930\u0924\u093f\u0915\u094d\u0930\u093f\u092f\u093e \u0938\u0902\u092a\u093e\u0926\u093f\u0924 \u0915\u0930\u0947\u0902",
|
| 106 |
+
"dialog": {
|
| 107 |
+
"title": "\u091f\u093f\u092a\u094d\u092a\u0923\u0940 \u091c\u094b\u0921\u093c\u0947\u0902",
|
| 108 |
+
"submit": "\u092a\u094d\u0930\u0924\u093f\u0915\u094d\u0930\u093f\u092f\u093e \u091c\u092e\u093e \u0915\u0930\u0947\u0902",
|
| 109 |
+
"yourFeedback": "\u0906\u092a\u0915\u0940 \u092a\u094d\u0930\u0924\u093f\u0915\u094d\u0930\u093f\u092f\u093e..."
|
| 110 |
+
},
|
| 111 |
+
"status": {
|
| 112 |
+
"updating": "\u0905\u092a\u0921\u0947\u091f \u0939\u094b \u0930\u0939\u093e \u0939\u0948",
|
| 113 |
+
"updated": "\u092a\u094d\u0930\u0924\u093f\u0915\u094d\u0930\u093f\u092f\u093e \u0905\u092a\u0921\u0947\u091f \u0915\u0940 \u0917\u0908"
|
| 114 |
+
}
|
| 115 |
+
}
|
| 116 |
+
},
|
| 117 |
+
"history": {
|
| 118 |
+
"title": "\u092a\u093f\u091b\u0932\u0947 \u0907\u0928\u092a\u0941\u091f",
|
| 119 |
+
"empty": "\u0915\u0941\u091b \u092d\u0940 \u0928\u0939\u0940\u0902 \u0939\u0948...",
|
| 120 |
+
"show": "\u0907\u0924\u093f\u0939\u093e\u0938 \u0926\u093f\u0916\u093e\u090f\u0902"
|
| 121 |
+
},
|
| 122 |
+
"settings": {
|
| 123 |
+
"title": "\u0938\u0947\u091f\u093f\u0902\u0917\u094d\u0938 \u092a\u0948\u0928\u0932",
|
| 124 |
+
"customize": "\u0905\u092a\u0928\u0947 \u091a\u0948\u091f \u0938\u0947\u091f\u093f\u0902\u0917\u094d\u0938 \u0915\u094b \u092f\u0939\u093e\u0902 \u0905\u0928\u0941\u0915\u0942\u0932\u093f\u0924 \u0915\u0930\u0947\u0902"
|
| 125 |
+
},
|
| 126 |
+
"watermark": "\u090f\u0932\u090f\u0932\u090f\u092e \u0917\u0932\u0924\u093f\u092f\u093e\u0902 \u0915\u0930 \u0938\u0915\u0924\u0947 \u0939\u0948\u0902\u0964 \u092e\u0939\u0924\u094d\u0935\u092a\u0942\u0930\u094d\u0923 \u091c\u093e\u0928\u0915\u093e\u0930\u0940 \u0915\u0940 \u091c\u093e\u0902\u091a \u0915\u0930\u0928\u0947 \u092a\u0930 \u0935\u093f\u091a\u093e\u0930 \u0915\u0930\u0947\u0902\u0964"
|
| 127 |
+
},
|
| 128 |
+
"threadHistory": {
|
| 129 |
+
"sidebar": {
|
| 130 |
+
"title": "\u092a\u093f\u091b\u0932\u0940 \u091a\u0948\u091f",
|
| 131 |
+
"filters": {
|
| 132 |
+
"search": "\u0916\u094b\u091c\u0947\u0902",
|
| 133 |
+
"placeholder": "Search conversations..."
|
| 134 |
+
},
|
| 135 |
+
"timeframes": {
|
| 136 |
+
"today": "\u0906\u091c",
|
| 137 |
+
"yesterday": "\u0915\u0932",
|
| 138 |
+
"previous7days": "\u092a\u093f\u091b\u0932\u0947 7 \u0926\u093f\u0928",
|
| 139 |
+
"previous30days": "\u092a\u093f\u091b\u0932\u0947 30 \u0926\u093f\u0928"
|
| 140 |
+
},
|
| 141 |
+
"empty": "\u0915\u094b\u0908 \u0925\u094d\u0930\u0947\u0921 \u0928\u0939\u0940\u0902 \u092e\u093f\u0932\u093e",
|
| 142 |
+
"actions": {
|
| 143 |
+
"close": "\u0938\u093e\u0907\u0921\u092c\u093e\u0930 \u092c\u0902\u0926 \u0915\u0930\u0947\u0902",
|
| 144 |
+
"open": "\u0938\u093e\u0907\u0921\u092c\u093e\u0930 \u0916\u094b\u0932\u0947\u0902"
|
| 145 |
+
}
|
| 146 |
+
},
|
| 147 |
+
"thread": {
|
| 148 |
+
"untitled": "\u0936\u0940\u0930\u094d\u0937\u0915\u0939\u0940\u0928 \u0935\u093e\u0930\u094d\u0924\u093e\u0932\u093e\u092a",
|
| 149 |
+
"menu": {
|
| 150 |
+
"rename": "\u0928\u093e\u092e \u092c\u0926\u0932\u0947\u0902",
|
| 151 |
+
"share": "\u0938\u093e\u091d\u093e \u0915\u0930\u0947\u0902",
|
| 152 |
+
"delete": "Delete"
|
| 153 |
+
},
|
| 154 |
+
"actions": {
|
| 155 |
+
"share": {
|
| 156 |
+
"title": "\u091a\u0948\u091f \u0915\u093e \u0932\u093f\u0902\u0915 \u0938\u093e\u091d\u093e \u0915\u0930\u0947\u0902",
|
| 157 |
+
"button": "\u0938\u093e\u091d\u093e \u0915\u0930\u0947\u0902",
|
| 158 |
+
"status": {
|
| 159 |
+
"copied": "\u0932\u093f\u0902\u0915 \u0915\u0949\u092a\u0940 \u0915\u093f\u092f\u093e \u0917\u092f\u093e",
|
| 160 |
+
"created": "\u0936\u0947\u092f\u0930 \u0932\u093f\u0902\u0915 \u092c\u0928\u093e\u092f\u093e \u0917\u092f\u093e!",
|
| 161 |
+
"unshared": "\u0907\u0938 \u0925\u094d\u0930\u0947\u0921 \u0915\u0947 \u0932\u093f\u090f \u0938\u093e\u091d\u093e \u0915\u0930\u0928\u093e \u0928\u093f\u0937\u094d\u0915\u094d\u0930\u093f\u092f \u0939\u0948"
|
| 162 |
+
},
|
| 163 |
+
"error": {
|
| 164 |
+
"create": "\u0936\u0947\u092f\u0930 \u0932\u093f\u0902\u0915 \u092c\u0928\u093e\u0928\u0947 \u092e\u0947\u0902 \u0935\u093f\u092b\u0932",
|
| 165 |
+
"unshare": "\u0925\u094d\u0930\u0947\u0921 \u0915\u094b \u0905\u0928\u0936\u0947\u092f\u0930 \u0915\u0930\u0928\u0947 \u092e\u0947\u0902 \u0935\u093f\u092b\u0932"
|
| 166 |
+
}
|
| 167 |
+
},
|
| 168 |
+
"delete": {
|
| 169 |
+
"title": "\u0939\u091f\u093e\u0928\u0947 \u0915\u0940 \u092a\u0941\u0937\u094d\u091f\u093f \u0915\u0930\u0947\u0902",
|
| 170 |
+
"description": "\u092f\u0939 \u0925\u094d\u0930\u0947\u0921 \u0914\u0930 \u0907\u0938\u0915\u0947 \u0938\u0902\u0926\u0947\u0936\u094b\u0902 \u0914\u0930 \u0924\u0924\u094d\u0935\u094b\u0902 \u0915\u094b \u0939\u091f\u093e \u0926\u0947\u0917\u093e\u0964 \u092f\u0939 \u0915\u094d\u0930\u093f\u092f\u093e \u0935\u093e\u092a\u0938 \u0928\u0939\u0940\u0902 \u0915\u0940 \u091c\u093e \u0938\u0915\u0924\u0940",
|
| 171 |
+
"success": "\u091a\u0948\u091f \u0939\u091f\u093e \u0926\u0940 \u0917\u0908",
|
| 172 |
+
"inProgress": "\u091a\u0948\u091f \u0939\u091f\u093e\u0908 \u091c\u093e \u0930\u0939\u0940 \u0939\u0948"
|
| 173 |
+
},
|
| 174 |
+
"rename": {
|
| 175 |
+
"title": "\u0925\u094d\u0930\u0947\u0921 \u0915\u093e \u0928\u093e\u092e \u092c\u0926\u0932\u0947\u0902",
|
| 176 |
+
"description": "\u0907\u0938 \u0925\u094d\u0930\u0947\u0921 \u0915\u0947 \u0932\u093f\u090f \u090f\u0915 \u0928\u092f\u093e \u0928\u093e\u092e \u0926\u0930\u094d\u091c \u0915\u0930\u0947\u0902",
|
| 177 |
+
"form": {
|
| 178 |
+
"name": {
|
| 179 |
+
"label": "\u0928\u093e\u092e",
|
| 180 |
+
"placeholder": "\u0928\u092f\u093e \u0928\u093e\u092e \u0926\u0930\u094d\u091c \u0915\u0930\u0947\u0902"
|
| 181 |
+
}
|
| 182 |
+
},
|
| 183 |
+
"success": "\u0925\u094d\u0930\u0947\u0921 \u0915\u093e \u0928\u093e\u092e \u092c\u0926\u0932 \u0926\u093f\u092f\u093e \u0917\u092f\u093e!",
|
| 184 |
+
"inProgress": "\u0925\u094d\u0930\u0947\u0921 \u0915\u093e \u0928\u093e\u092e \u092c\u0926\u0932\u093e \u091c\u093e \u0930\u0939\u093e \u0939\u0948"
|
| 185 |
+
}
|
| 186 |
+
}
|
| 187 |
+
}
|
| 188 |
+
},
|
| 189 |
+
"navigation": {
|
| 190 |
+
"header": {
|
| 191 |
+
"chat": "\u091a\u0948\u091f",
|
| 192 |
+
"readme": "\u0930\u0940\u0921\u092e\u0940",
|
| 193 |
+
"theme": {
|
| 194 |
+
"light": "Light Theme",
|
| 195 |
+
"dark": "Dark Theme",
|
| 196 |
+
"system": "Follow System"
|
| 197 |
+
}
|
| 198 |
+
},
|
| 199 |
+
"newChat": {
|
| 200 |
+
"button": "\u0928\u0908 \u091a\u0948\u091f",
|
| 201 |
+
"dialog": {
|
| 202 |
+
"title": "\u0928\u0908 \u091a\u0948\u091f \u092c\u0928\u093e\u090f\u0902",
|
| 203 |
+
"description": "\u092f\u0939 \u0906\u092a\u0915\u093e \u0935\u0930\u094d\u0924\u092e\u093e\u0928 \u091a\u0948\u091f \u0907\u0924\u093f\u0939\u093e\u0938 \u0938\u093e\u092b\u093c \u0915\u0930 \u0926\u0947\u0917\u093e\u0964 \u0915\u094d\u092f\u093e \u0906\u092a \u091c\u093e\u0930\u0940 \u0930\u0916\u0928\u093e \u091a\u093e\u0939\u0924\u0947 \u0939\u0948\u0902?",
|
| 204 |
+
"tooltip": "\u0928\u0908 \u091a\u0948\u091f"
|
| 205 |
+
}
|
| 206 |
+
},
|
| 207 |
+
"user": {
|
| 208 |
+
"menu": {
|
| 209 |
+
"settings": "\u0938\u0947\u091f\u093f\u0902\u0917\u094d\u0938",
|
| 210 |
+
"settingsKey": "S",
|
| 211 |
+
"apiKeys": "API \u0915\u0941\u0902\u091c\u093f\u092f\u093e\u0902",
|
| 212 |
+
"logout": "\u0932\u0949\u0917\u0906\u0909\u091f"
|
| 213 |
+
}
|
| 214 |
+
}
|
| 215 |
+
},
|
| 216 |
+
"apiKeys": {
|
| 217 |
+
"title": "\u0906\u0935\u0936\u094d\u092f\u0915 API \u0915\u0941\u0902\u091c\u093f\u092f\u093e\u0902",
|
| 218 |
+
"description": "\u0907\u0938 \u0910\u092a \u0915\u093e \u0909\u092a\u092f\u094b\u0917 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f, \u0928\u093f\u092e\u094d\u0928\u0932\u093f\u0916\u093f\u0924 API \u0915\u0941\u0902\u091c\u093f\u092f\u093e\u0902 \u0906\u0935\u0936\u094d\u092f\u0915 \u0939\u0948\u0902\u0964 \u0915\u0941\u0902\u091c\u093f\u092f\u093e\u0902 \u0906\u092a\u0915\u0947 \u0921\u093f\u0935\u093e\u0907\u0938 \u0915\u0947 \u0938\u094d\u0925\u093e\u0928\u0940\u092f \u0938\u0902\u0917\u094d\u0930\u0939\u0923 \u092e\u0947\u0902 \u0938\u0902\u0917\u094d\u0930\u0939\u0940\u0924 \u0915\u0940 \u091c\u093e\u0924\u0940 \u0939\u0948\u0902\u0964",
|
| 219 |
+
"success": {
|
| 220 |
+
"saved": "\u0938\u092b\u0932\u0924\u093e\u092a\u0942\u0930\u094d\u0935\u0915 \u0938\u0939\u0947\u091c\u093e \u0917\u092f\u093e"
|
| 221 |
+
}
|
| 222 |
+
},
|
| 223 |
+
"alerts": {
|
| 224 |
+
"info": "Info",
|
| 225 |
+
"note": "Note",
|
| 226 |
+
"tip": "Tip",
|
| 227 |
+
"important": "Important",
|
| 228 |
+
"warning": "Warning",
|
| 229 |
+
"caution": "Caution",
|
| 230 |
+
"debug": "Debug",
|
| 231 |
+
"example": "Example",
|
| 232 |
+
"success": "Success",
|
| 233 |
+
"help": "Help",
|
| 234 |
+
"idea": "Idea",
|
| 235 |
+
"pending": "Pending",
|
| 236 |
+
"security": "Security",
|
| 237 |
+
"beta": "Beta",
|
| 238 |
+
"best-practice": "Best Practice"
|
| 239 |
+
},
|
| 240 |
+
"components": {
|
| 241 |
+
"MultiSelectInput": {
|
| 242 |
+
"placeholder": "\u091a\u0941\u0928\u0947\u0902..."
|
| 243 |
+
}
|
| 244 |
+
}
|
| 245 |
+
}
|
.chainlit/translations/ja.json
ADDED
|
@@ -0,0 +1,244 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "\u30ad\u30e3\u30f3\u30bb\u30eb",
|
| 5 |
+
"confirm": "\u78ba\u8a8d",
|
| 6 |
+
"continue": "\u7d9a\u3051\u308b",
|
| 7 |
+
"goBack": "\u623b\u308b",
|
| 8 |
+
"reset": "\u30ea\u30bb\u30c3\u30c8",
|
| 9 |
+
"submit": "\u9001\u4fe1"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "\u8aad\u307f\u8fbc\u307f\u4e2d...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f",
|
| 15 |
+
"serverConnection": "\u30b5\u30fc\u30d0\u30fc\u306b\u63a5\u7d9a\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "\u30a2\u30d7\u30ea\u306b\u30ed\u30b0\u30a4\u30f3",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9",
|
| 25 |
+
"required": "\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306f\u5fc5\u9808\u9805\u76ee\u3067\u3059",
|
| 26 |
+
"placeholder": "me@example.com"
|
| 27 |
+
},
|
| 28 |
+
"password": {
|
| 29 |
+
"label": "\u30d1\u30b9\u30ef\u30fc\u30c9",
|
| 30 |
+
"required": "\u30d1\u30b9\u30ef\u30fc\u30c9\u306f\u5fc5\u9808\u9805\u76ee\u3067\u3059"
|
| 31 |
+
},
|
| 32 |
+
"actions": {
|
| 33 |
+
"signin": "\u30b5\u30a4\u30f3\u30a4\u30f3"
|
| 34 |
+
},
|
| 35 |
+
"alternativeText": {
|
| 36 |
+
"or": "\u307e\u305f\u306f"
|
| 37 |
+
}
|
| 38 |
+
},
|
| 39 |
+
"errors": {
|
| 40 |
+
"default": "\u30b5\u30a4\u30f3\u30a4\u30f3\u3067\u304d\u307e\u305b\u3093",
|
| 41 |
+
"signin": "\u5225\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30b5\u30a4\u30f3\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044",
|
| 42 |
+
"oauthSignin": "\u5225\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30b5\u30a4\u30f3\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044",
|
| 43 |
+
"redirectUriMismatch": "\u30ea\u30c0\u30a4\u30ec\u30af\u30c8URI\u304cOAuth\u30a2\u30d7\u30ea\u306e\u8a2d\u5b9a\u3068\u4e00\u81f4\u3057\u307e\u305b\u3093",
|
| 44 |
+
"oauthCallback": "\u5225\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30b5\u30a4\u30f3\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044",
|
| 45 |
+
"oauthCreateAccount": "\u5225\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30b5\u30a4\u30f3\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044",
|
| 46 |
+
"emailCreateAccount": "\u5225\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30b5\u30a4\u30f3\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044",
|
| 47 |
+
"callback": "\u5225\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30b5\u30a4\u30f3\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044",
|
| 48 |
+
"oauthAccountNotLinked": "\u672c\u4eba\u78ba\u8a8d\u306e\u305f\u3081\u3001\u6700\u521d\u306b\u4f7f\u7528\u3057\u305f\u306e\u3068\u540c\u3058\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30b5\u30a4\u30f3\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044",
|
| 49 |
+
"emailSignin": "\u30e1\u30fc\u30eb\u3092\u9001\u4fe1\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f",
|
| 50 |
+
"emailVerify": "\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u65b0\u3057\u3044\u30e1\u30fc\u30eb\u304c\u9001\u4fe1\u3055\u308c\u307e\u3057\u305f",
|
| 51 |
+
"credentialsSignin": "\u30b5\u30a4\u30f3\u30a4\u30f3\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002\u5165\u529b\u3057\u305f\u60c5\u5831\u304c\u6b63\u3057\u3044\u304b\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044",
|
| 52 |
+
"sessionRequired": "\u3053\u306e\u30da\u30fc\u30b8\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u306b\u306f\u30b5\u30a4\u30f3\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044"
|
| 53 |
+
}
|
| 54 |
+
},
|
| 55 |
+
"provider": {
|
| 56 |
+
"continue": "{{provider}}\u3067\u7d9a\u3051\u308b"
|
| 57 |
+
}
|
| 58 |
+
},
|
| 59 |
+
"chat": {
|
| 60 |
+
"input": {
|
| 61 |
+
"placeholder": "\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044...",
|
| 62 |
+
"actions": {
|
| 63 |
+
"send": "\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u9001\u4fe1",
|
| 64 |
+
"stop": "\u30bf\u30b9\u30af\u3092\u505c\u6b62",
|
| 65 |
+
"attachFiles": "\u30d5\u30a1\u30a4\u30eb\u3092\u6dfb\u4ed8"
|
| 66 |
+
}
|
| 67 |
+
},
|
| 68 |
+
"speech": {
|
| 69 |
+
"start": "\u9332\u97f3\u958b\u59cb",
|
| 70 |
+
"stop": "\u9332\u97f3\u505c\u6b62",
|
| 71 |
+
"connecting": "\u63a5\u7d9a\u4e2d"
|
| 72 |
+
},
|
| 73 |
+
"commands": {
|
| 74 |
+
"button": "\u30c4\u30fc\u30eb",
|
| 75 |
+
"changeTool": "\u30c4\u30fc\u30eb\u3092\u5909\u66f4",
|
| 76 |
+
"availableTools": "\u5229\u7528\u53ef\u80fd\u306a\u30c4\u30fc\u30eb"
|
| 77 |
+
},
|
| 78 |
+
"fileUpload": {
|
| 79 |
+
"dragDrop": "\u3053\u3053\u306b\u30d5\u30a1\u30a4\u30eb\u3092\u30c9\u30e9\u30c3\u30b0\uff06\u30c9\u30ed\u30c3\u30d7",
|
| 80 |
+
"sizeLimit": "\u5236\u9650\uff1a",
|
| 81 |
+
"errors": {
|
| 82 |
+
"failed": "\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u306b\u5931\u6557\u3057\u307e\u3057\u305f",
|
| 83 |
+
"cancelled": "\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3092\u30ad\u30e3\u30f3\u30bb\u30eb\u3057\u307e\u3057\u305f\uff1a"
|
| 84 |
+
},
|
| 85 |
+
"actions": {
|
| 86 |
+
"cancelUpload": "\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3092\u30ad\u30e3\u30f3\u30bb\u30eb",
|
| 87 |
+
"removeAttachment": "\u6dfb\u4ed8\u30d5\u30a1\u30a4\u30eb\u3092\u524a\u9664"
|
| 88 |
+
}
|
| 89 |
+
},
|
| 90 |
+
"messages": {
|
| 91 |
+
"status": {
|
| 92 |
+
"using": "\u4f7f\u7528\u4e2d",
|
| 93 |
+
"used": "\u4f7f\u7528\u6e08\u307f"
|
| 94 |
+
},
|
| 95 |
+
"actions": {
|
| 96 |
+
"copy": {
|
| 97 |
+
"button": "\u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9\u306b\u30b3\u30d4\u30fc",
|
| 98 |
+
"success": "\u30b3\u30d4\u30fc\u3057\u307e\u3057\u305f\uff01"
|
| 99 |
+
}
|
| 100 |
+
},
|
| 101 |
+
"feedback": {
|
| 102 |
+
"positive": "\u5f79\u306b\u7acb\u3063\u305f",
|
| 103 |
+
"negative": "\u5f79\u306b\u7acb\u305f\u306a\u304b\u3063\u305f",
|
| 104 |
+
"edit": "\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u3092\u7de8\u96c6",
|
| 105 |
+
"dialog": {
|
| 106 |
+
"title": "\u30b3\u30e1\u30f3\u30c8\u3092\u8ffd\u52a0",
|
| 107 |
+
"submit": "\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u3092\u9001\u4fe1",
|
| 108 |
+
"yourFeedback": "\u3042\u306a\u305f\u306e\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af..."
|
| 109 |
+
},
|
| 110 |
+
"status": {
|
| 111 |
+
"updating": "\u66f4\u65b0\u4e2d",
|
| 112 |
+
"updated": "\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f"
|
| 113 |
+
}
|
| 114 |
+
}
|
| 115 |
+
},
|
| 116 |
+
"history": {
|
| 117 |
+
"title": "\u6700\u8fd1\u306e\u5165\u529b",
|
| 118 |
+
"empty": "\u4f55\u3082\u3042\u308a\u307e\u305b\u3093...",
|
| 119 |
+
"show": "\u5c65\u6b74\u3092\u8868\u793a"
|
| 120 |
+
},
|
| 121 |
+
"settings": {
|
| 122 |
+
"title": "\u8a2d\u5b9a\u30d1\u30cd\u30eb",
|
| 123 |
+
"customize": "\u3053\u3053\u3067\u30c1\u30e3\u30c3\u30c8\u8a2d\u5b9a\u3092\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3057\u307e\u3059"
|
| 124 |
+
},
|
| 125 |
+
"watermark": "\u5927\u898f\u6a21\u8a00\u8a9e\u30e2\u30c7\u30eb\u306f\u9593\u9055\u3044\u3092\u72af\u3059\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002\u91cd\u8981\u306a\u60c5\u5831\u306b\u3064\u3044\u3066\u306f\u78ba\u8a8d\u3092\u691c\u8a0e\u3057\u3066\u304f\u3060\u3055\u3044\u3002"
|
| 126 |
+
},
|
| 127 |
+
"threadHistory": {
|
| 128 |
+
"sidebar": {
|
| 129 |
+
"title": "\u904e\u53bb\u306e\u30c1\u30e3\u30c3\u30c8",
|
| 130 |
+
"filters": {
|
| 131 |
+
"search": "\u691c\u7d22",
|
| 132 |
+
"placeholder": "Search conversations..."
|
| 133 |
+
},
|
| 134 |
+
"timeframes": {
|
| 135 |
+
"today": "\u4eca\u65e5",
|
| 136 |
+
"yesterday": "\u6628\u65e5",
|
| 137 |
+
"previous7days": "\u904e\u53bb7\u65e5\u9593",
|
| 138 |
+
"previous30days": "\u904e\u53bb30\u65e5\u9593"
|
| 139 |
+
},
|
| 140 |
+
"empty": "\u30b9\u30ec\u30c3\u30c9\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093",
|
| 141 |
+
"actions": {
|
| 142 |
+
"close": "\u30b5\u30a4\u30c9\u30d0\u30fc\u3092\u9589\u3058\u308b",
|
| 143 |
+
"open": "\u30b5\u30a4\u30c9\u30d0\u30fc\u3092\u958b\u304f"
|
| 144 |
+
}
|
| 145 |
+
},
|
| 146 |
+
"thread": {
|
| 147 |
+
"untitled": "\u7121\u984c\u306e\u4f1a\u8a71",
|
| 148 |
+
"menu": {
|
| 149 |
+
"rename": "\u540d\u524d\u3092\u5909\u66f4",
|
| 150 |
+
"share": "\u5171\u6709",
|
| 151 |
+
"delete": "\u524a\u9664"
|
| 152 |
+
},
|
| 153 |
+
"actions": {
|
| 154 |
+
"share": {
|
| 155 |
+
"title": "\u30c1\u30e3\u30c3\u30c8\u306e\u30ea\u30f3\u30af\u3092\u5171\u6709",
|
| 156 |
+
"button": "\u5171\u6709",
|
| 157 |
+
"status": {
|
| 158 |
+
"copied": "\u30ea\u30f3\u30af\u3092\u30b3\u30d4\u30fc\u3057\u307e\u3057\u305f",
|
| 159 |
+
"created": "\u5171\u6709\u30ea\u30f3\u30af\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\uff01",
|
| 160 |
+
"unshared": "\u3053\u306e\u30b9\u30ec\u30c3\u30c9\u306e\u5171\u6709\u3092\u7121\u52b9\u306b\u3057\u307e\u3057\u305f"
|
| 161 |
+
},
|
| 162 |
+
"error": {
|
| 163 |
+
"create": "\u5171\u6709\u30ea\u30f3\u30af\u306e\u4f5c\u6210\u306b\u5931\u6557\u3057\u307e\u3057\u305f",
|
| 164 |
+
"unshare": "\u30b9\u30ec\u30c3\u30c9\u306e\u5171\u6709\u89e3\u9664\u306b\u5931\u6557\u3057\u307e\u3057\u305f"
|
| 165 |
+
}
|
| 166 |
+
},
|
| 167 |
+
"delete": {
|
| 168 |
+
"title": "\u524a\u9664\u306e\u78ba\u8a8d",
|
| 169 |
+
"description": "\u3053\u306e\u30b9\u30ec\u30c3\u30c9\u3068\u305d\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u3001\u8981\u7d20\u304c\u524a\u9664\u3055\u308c\u307e\u3059\u3002\u3053\u306e\u64cd\u4f5c\u306f\u53d6\u308a\u6d88\u305b\u307e\u305b\u3093",
|
| 170 |
+
"success": "\u30c1\u30e3\u30c3\u30c8\u3092\u524a\u9664\u3057\u307e\u3057\u305f",
|
| 171 |
+
"inProgress": "\u30c1\u30e3\u30c3\u30c8\u3092\u524a\u9664\u4e2d"
|
| 172 |
+
},
|
| 173 |
+
"rename": {
|
| 174 |
+
"title": "\u30b9\u30ec\u30c3\u30c9\u306e\u540d\u524d\u3092\u5909\u66f4",
|
| 175 |
+
"description": "\u3053\u306e\u30b9\u30ec\u30c3\u30c9\u306e\u65b0\u3057\u3044\u540d\u524d\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044",
|
| 176 |
+
"form": {
|
| 177 |
+
"name": {
|
| 178 |
+
"label": "\u540d\u524d",
|
| 179 |
+
"placeholder": "\u65b0\u3057\u3044\u540d\u524d\u3092\u5165\u529b"
|
| 180 |
+
}
|
| 181 |
+
},
|
| 182 |
+
"success": "\u30b9\u30ec\u30c3\u30c9\u540d\u3092\u5909\u66f4\u3057\u307e\u3057\u305f\uff01",
|
| 183 |
+
"inProgress": "\u30b9\u30ec\u30c3\u30c9\u540d\u3092\u5909\u66f4\u4e2d"
|
| 184 |
+
}
|
| 185 |
+
}
|
| 186 |
+
}
|
| 187 |
+
},
|
| 188 |
+
"navigation": {
|
| 189 |
+
"header": {
|
| 190 |
+
"chat": "\u30c1\u30e3\u30c3\u30c8",
|
| 191 |
+
"readme": "\u8aac\u660e\u66f8",
|
| 192 |
+
"theme": {
|
| 193 |
+
"light": "Light Theme",
|
| 194 |
+
"dark": "Dark Theme",
|
| 195 |
+
"system": "Follow System"
|
| 196 |
+
}
|
| 197 |
+
},
|
| 198 |
+
"newChat": {
|
| 199 |
+
"button": "\u65b0\u898f\u30c1\u30e3\u30c3\u30c8",
|
| 200 |
+
"dialog": {
|
| 201 |
+
"title": "\u65b0\u898f\u30c1\u30e3\u30c3\u30c8\u306e\u4f5c\u6210",
|
| 202 |
+
"description": "\u73fe\u5728\u306e\u30c1\u30e3\u30c3\u30c8\u5c65\u6b74\u304c\u30af\u30ea\u30a2\u3055\u308c\u307e\u3059\u3002\u7d9a\u884c\u3057\u307e\u3059\u304b\uff1f",
|
| 203 |
+
"tooltip": "\u65b0\u898f\u30c1\u30e3\u30c3\u30c8"
|
| 204 |
+
}
|
| 205 |
+
},
|
| 206 |
+
"user": {
|
| 207 |
+
"menu": {
|
| 208 |
+
"settings": "\u8a2d\u5b9a",
|
| 209 |
+
"settingsKey": "S",
|
| 210 |
+
"apiKeys": "API\u30ad\u30fc",
|
| 211 |
+
"logout": "\u30ed\u30b0\u30a2\u30a6\u30c8"
|
| 212 |
+
}
|
| 213 |
+
}
|
| 214 |
+
},
|
| 215 |
+
"apiKeys": {
|
| 216 |
+
"title": "\u5fc5\u8981\u306aAPI\u30ad\u30fc",
|
| 217 |
+
"description": "\u3053\u306e\u30a2\u30d7\u30ea\u3092\u4f7f\u7528\u3059\u308b\u306b\u306f\u3001\u4ee5\u4e0b\u306eAPI\u30ad\u30fc\u304c\u5fc5\u8981\u3067\u3059\u3002\u30ad\u30fc\u306f\u304a\u4f7f\u3044\u306e\u30c7\u30d0\u30a4\u30b9\u306e\u30ed\u30fc\u30ab\u30eb\u30b9\u30c8\u30ec\u30fc\u30b8\u306b\u4fdd\u5b58\u3055\u308c\u307e\u3059\u3002",
|
| 218 |
+
"success": {
|
| 219 |
+
"saved": "\u4fdd\u5b58\u304c\u5b8c\u4e86\u3057\u307e\u3057\u305f"
|
| 220 |
+
}
|
| 221 |
+
},
|
| 222 |
+
"alerts": {
|
| 223 |
+
"info": "Info",
|
| 224 |
+
"note": "Note",
|
| 225 |
+
"tip": "Tip",
|
| 226 |
+
"important": "Important",
|
| 227 |
+
"warning": "Warning",
|
| 228 |
+
"caution": "Caution",
|
| 229 |
+
"debug": "Debug",
|
| 230 |
+
"example": "Example",
|
| 231 |
+
"success": "Success",
|
| 232 |
+
"help": "Help",
|
| 233 |
+
"idea": "Idea",
|
| 234 |
+
"pending": "Pending",
|
| 235 |
+
"security": "Security",
|
| 236 |
+
"beta": "Beta",
|
| 237 |
+
"best-practice": "Best Practice"
|
| 238 |
+
},
|
| 239 |
+
"components": {
|
| 240 |
+
"MultiSelectInput": {
|
| 241 |
+
"placeholder": "\u9078\u629e..."
|
| 242 |
+
}
|
| 243 |
+
}
|
| 244 |
+
}
|
.chainlit/translations/kn.json
ADDED
|
@@ -0,0 +1,245 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "\u0cb0\u0ca6\u0ccd\u0ca6\u0cc1\u0cae\u0cbe\u0ca1\u0cbf",
|
| 5 |
+
"confirm": "\u0ca6\u0cc3\u0ca2\u0cc0\u0c95\u0cb0\u0cbf\u0cb8\u0cbf",
|
| 6 |
+
"continue": "\u0cae\u0cc1\u0c82\u0ca6\u0cc1\u0cb5\u0cb0\u0cbf\u0cb8\u0cbf",
|
| 7 |
+
"goBack": "\u0cb9\u0cbf\u0c82\u0ca6\u0cc6 \u0cb9\u0ccb\u0c97\u0cbf",
|
| 8 |
+
"reset": "\u0cae\u0cb0\u0cc1\u0cb9\u0cca\u0c82\u0ca6\u0cbf\u0cb8\u0cbf",
|
| 9 |
+
"submit": "\u0cb8\u0cb2\u0ccd\u0cb2\u0cbf\u0cb8\u0cbf"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "\u0cb2\u0ccb\u0ca1\u0ccd \u0c86\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "\u0ca6\u0ccb\u0cb7 \u0cb8\u0c82\u0cad\u0cb5\u0cbf\u0cb8\u0cbf\u0ca6\u0cc6",
|
| 15 |
+
"serverConnection": "\u0cb8\u0cb0\u0ccd\u0cb5\u0cb0\u0ccd\u200c \u0c85\u0ca8\u0ccd\u0ca8\u0cc1 \u0ca4\u0cb2\u0cc1\u0caa\u0cb2\u0cc1 \u0cb8\u0cbe\u0ca7\u0ccd\u0caf\u0cb5\u0cbe\u0c97\u0cb2\u0cbf\u0cb2\u0ccd\u0cb2"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "\u0c85\u0caa\u0ccd\u0cb2\u0cbf\u0c95\u0cc7\u0cb6\u0ca8\u0ccd\u200c\u0c97\u0cc6 \u0caa\u0ccd\u0cb0\u0cb5\u0cc7\u0cb6\u0cbf\u0cb8\u0cb2\u0cc1 \u0cb2\u0cbe\u0c97\u0cbf\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cbf",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "\u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0cb5\u0cbf\u0cb3\u0cbe\u0cb8",
|
| 25 |
+
"required": "\u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0c85\u0c97\u0ca4\u0ccd\u0caf\u0cb5\u0cbf\u0cb0\u0cc1\u0cb5 \u0c95\u0ccd\u0cb7\u0cc7\u0ca4\u0ccd\u0cb0",
|
| 26 |
+
"placeholder": "me@example.com"
|
| 27 |
+
},
|
| 28 |
+
"password": {
|
| 29 |
+
"label": "\u0caa\u0cbe\u0cb8\u0ccd\u200c\u0cb5\u0cb0\u0ccd\u0ca1\u0ccd",
|
| 30 |
+
"required": "\u0caa\u0cbe\u0cb8\u0ccd\u200c\u0cb5\u0cb0\u0ccd\u0ca1\u0ccd \u0c85\u0c97\u0ca4\u0ccd\u0caf\u0cb5\u0cbf\u0cb0\u0cc1\u0cb5 \u0c95\u0ccd\u0cb7\u0cc7\u0ca4\u0ccd\u0cb0"
|
| 31 |
+
},
|
| 32 |
+
"actions": {
|
| 33 |
+
"signin": "\u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cbf"
|
| 34 |
+
},
|
| 35 |
+
"alternativeText": {
|
| 36 |
+
"or": "\u0c85\u0ca5\u0cb5\u0cbe"
|
| 37 |
+
}
|
| 38 |
+
},
|
| 39 |
+
"errors": {
|
| 40 |
+
"default": "\u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cb2\u0cc1 \u0cb8\u0cbe\u0ca7\u0ccd\u0caf\u0cb5\u0cbe\u0c97\u0cb2\u0cbf\u0cb2\u0ccd\u0cb2",
|
| 41 |
+
"signin": "\u0cac\u0cc7\u0cb0\u0cc6 \u0c96\u0cbe\u0ca4\u0cc6\u0caf\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cb2\u0cc1 \u0caa\u0ccd\u0cb0\u0caf\u0ca4\u0ccd\u0ca8\u0cbf\u0cb8\u0cbf",
|
| 42 |
+
"oauthSignin": "\u0cac\u0cc7\u0cb0\u0cc6 \u0c96\u0cbe\u0ca4\u0cc6\u0caf\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cb2\u0cc1 \u0caa\u0ccd\u0cb0\u0caf\u0ca4\u0ccd\u0ca8\u0cbf\u0cb8\u0cbf",
|
| 43 |
+
"redirectUriMismatch": "\u0cb0\u0cc0\u0ca1\u0cc8\u0cb0\u0cc6\u0c95\u0ccd\u0c9f\u0ccd URI \u0c93\u0ca5\u0ccd \u0c85\u0caa\u0ccd\u0cb2\u0cbf\u0c95\u0cc7\u0cb6\u0ca8\u0ccd \u0c95\u0cbe\u0ca8\u0ccd\u0cab\u0cbf\u0c97\u0cb0\u0cc7\u0cb6\u0ca8\u0ccd\u200c\u0c97\u0cc6 \u0cb9\u0cca\u0c82\u0ca6\u0cbf\u0c95\u0cc6\u0caf\u0cbe\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0cb2\u0ccd\u0cb2",
|
| 44 |
+
"oauthCallback": "\u0cac\u0cc7\u0cb0\u0cc6 \u0c96\u0cbe\u0ca4\u0cc6\u0caf\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cb2\u0cc1 \u0caa\u0ccd\u0cb0\u0caf\u0ca4\u0ccd\u0ca8\u0cbf\u0cb8\u0cbf",
|
| 45 |
+
"oauthCreateAccount": "\u0cac\u0cc7\u0cb0\u0cc6 \u0c96\u0cbe\u0ca4\u0cc6\u0caf\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cb2\u0cc1 \u0caa\u0ccd\u0cb0\u0caf\u0ca4\u0ccd\u0ca8\u0cbf\u0cb8\u0cbf",
|
| 46 |
+
"emailCreateAccount": "\u0cac\u0cc7\u0cb0\u0cc6 \u0c96\u0cbe\u0ca4\u0cc6\u0caf\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cb2\u0cc1 \u0caa\u0ccd\u0cb0\u0caf\u0ca4\u0ccd\u0ca8\u0cbf\u0cb8\u0cbf",
|
| 47 |
+
"callback": "\u0cac\u0cc7\u0cb0\u0cc6 \u0c96\u0cbe\u0ca4\u0cc6\u0caf\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cb2\u0cc1 \u0caa\u0ccd\u0cb0\u0caf\u0ca4\u0ccd\u0ca8\u0cbf\u0cb8\u0cbf",
|
| 48 |
+
"oauthAccountNotLinked": "\u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0c97\u0cc1\u0cb0\u0cc1\u0ca4\u0ca8\u0ccd\u0ca8\u0cc1 \u0ca6\u0cc3\u0ca2\u0cc0\u0c95\u0cb0\u0cbf\u0cb8\u0cb2\u0cc1, \u0ca8\u0cc0\u0cb5\u0cc1 \u0cae\u0cca\u0ca6\u0cb2\u0cc1 \u0cac\u0cb3\u0cb8\u0cbf\u0ca6 \u0c85\u0ca6\u0cc7 \u0c96\u0cbe\u0ca4\u0cc6\u0caf\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cbf",
|
| 49 |
+
"emailSignin": "\u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0c95\u0cb3\u0cc1\u0cb9\u0cbf\u0cb8\u0cb2\u0cc1 \u0cb8\u0cbe\u0ca7\u0ccd\u0caf\u0cb5\u0cbe\u0c97\u0cb2\u0cbf\u0cb2\u0ccd\u0cb2",
|
| 50 |
+
"emailVerify": "\u0ca6\u0caf\u0cb5\u0cbf\u0c9f\u0ccd\u0c9f\u0cc1 \u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0caa\u0cb0\u0cbf\u0cb6\u0cc0\u0cb2\u0cbf\u0cb8\u0cbf, \u0cb9\u0cca\u0cb8 \u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0c95\u0cb3\u0cc1\u0cb9\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6",
|
| 51 |
+
"credentialsSignin": "\u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cb5\u0cbf\u0cab\u0cb2\u0cb5\u0cbe\u0c97\u0cbf\u0ca6\u0cc6. \u0ca8\u0cc0\u0cb5\u0cc1 \u0c92\u0ca6\u0c97\u0cbf\u0cb8\u0cbf\u0ca6 \u0cb5\u0cbf\u0cb5\u0cb0\u0c97\u0cb3\u0cc1 \u0cb8\u0cb0\u0cbf\u0caf\u0cbe\u0c97\u0cbf\u0cb5\u0cc6\u0caf\u0cc7 \u0c8e\u0c82\u0ca6\u0cc1 \u0caa\u0cb0\u0cbf\u0cb6\u0cc0\u0cb2\u0cbf\u0cb8\u0cbf",
|
| 52 |
+
"sessionRequired": "\u0c88 \u0caa\u0cc1\u0c9f\u0cb5\u0ca8\u0ccd\u0ca8\u0cc1 \u0caa\u0ccd\u0cb0\u0cb5\u0cc7\u0cb6\u0cbf\u0cb8\u0cb2\u0cc1 \u0ca6\u0caf\u0cb5\u0cbf\u0c9f\u0ccd\u0c9f\u0cc1 \u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cbf"
|
| 53 |
+
}
|
| 54 |
+
},
|
| 55 |
+
"provider": {
|
| 56 |
+
"continue": "{{provider}} \u0ca8\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0cae\u0cc1\u0c82\u0ca6\u0cc1\u0cb5\u0cb0\u0cbf\u0cb8\u0cbf"
|
| 57 |
+
}
|
| 58 |
+
},
|
| 59 |
+
"chat": {
|
| 60 |
+
"input": {
|
| 61 |
+
"placeholder": "\u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0cb8\u0c82\u0ca6\u0cc7\u0cb6\u0cb5\u0ca8\u0ccd\u0ca8\u0cc1 \u0c87\u0cb2\u0ccd\u0cb2\u0cbf \u0c9f\u0cc8\u0caa\u0ccd \u0cae\u0cbe\u0ca1\u0cbf...",
|
| 62 |
+
"actions": {
|
| 63 |
+
"send": "\u0cb8\u0c82\u0ca6\u0cc7\u0cb6 \u0c95\u0cb3\u0cc1\u0cb9\u0cbf\u0cb8\u0cbf",
|
| 64 |
+
"stop": "\u0c95\u0cbe\u0cb0\u0ccd\u0caf \u0ca8\u0cbf\u0cb2\u0ccd\u0cb2\u0cbf\u0cb8\u0cbf",
|
| 65 |
+
"attachFiles": "\u0cab\u0cc8\u0cb2\u0ccd\u200c\u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0cb2\u0c97\u0ca4\u0ccd\u0ca4\u0cbf\u0cb8\u0cbf"
|
| 66 |
+
}
|
| 67 |
+
},
|
| 68 |
+
"commands": {
|
| 69 |
+
"button": "\u0c89\u0caa\u0c95\u0cb0\u0ca3\u0c97\u0cb3\u0cc1",
|
| 70 |
+
"changeTool": "\u0c89\u0caa\u0c95\u0cb0\u0ca3\u0cb5\u0ca8\u0ccd\u0ca8\u0cc1 \u0cac\u0ca6\u0cb2\u0cbf\u0cb8\u0cbf",
|
| 71 |
+
"availableTools": "\u0cb2\u0cad\u0ccd\u0caf\u0cb5\u0cbf\u0cb0\u0cc1\u0cb5 \u0c89\u0caa\u0c95\u0cb0\u0ca3\u0c97\u0cb3\u0cc1"
|
| 72 |
+
},
|
| 73 |
+
"speech": {
|
| 74 |
+
"start": "\u0cb0\u0cc6\u0c95\u0cbe\u0cb0\u0ccd\u0ca1\u0cbf\u0c82\u0c97\u0ccd \u0caa\u0ccd\u0cb0\u0cbe\u0cb0\u0c82\u0cad\u0cbf\u0cb8\u0cbf",
|
| 75 |
+
"stop": "\u0cb0\u0cc6\u0c95\u0cbe\u0cb0\u0ccd\u0ca1\u0cbf\u0c82\u0c97\u0ccd \u0ca8\u0cbf\u0cb2\u0ccd\u0cb2\u0cbf\u0cb8\u0cbf",
|
| 76 |
+
"connecting": "\u0cb8\u0c82\u0caa\u0cb0\u0ccd\u0c95\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6"
|
| 77 |
+
},
|
| 78 |
+
"fileUpload": {
|
| 79 |
+
"dragDrop": "\u0cab\u0cc8\u0cb2\u0ccd\u200c\u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0c87\u0cb2\u0ccd\u0cb2\u0cbf \u0c8e\u0cb3\u0cc6\u0ca6\u0cc1 \u0cac\u0cbf\u0ca1\u0cbf",
|
| 80 |
+
"browse": "\u0cab\u0cc8\u0cb2\u0ccd\u200c\u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0cac\u0ccd\u0cb0\u0ccc\u0cb8\u0ccd \u0cae\u0cbe\u0ca1\u0cbf",
|
| 81 |
+
"sizeLimit": "\u0cae\u0cbf\u0ca4\u0cbf:",
|
| 82 |
+
"errors": {
|
| 83 |
+
"failed": "\u0c85\u0caa\u0ccd\u200c\u0cb2\u0ccb\u0ca1\u0ccd \u0cb5\u0cbf\u0cab\u0cb2\u0cb5\u0cbe\u0c97\u0cbf\u0ca6\u0cc6",
|
| 84 |
+
"cancelled": "\u0c85\u0caa\u0ccd\u200c\u0cb2\u0ccb\u0ca1\u0ccd \u0cb0\u0ca6\u0ccd\u0ca6\u0cc1\u0c97\u0cca\u0cb3\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"cancelUpload": "\u0c85\u0caa\u0ccd\u200c\u0cb2\u0ccb\u0ca1\u0ccd \u0cb0\u0ca6\u0ccd\u0ca6\u0cc1\u0c97\u0cca\u0cb3\u0cbf\u0cb8\u0cbf",
|
| 88 |
+
"removeAttachment": "\u0c85\u0c9f\u0ccd\u0caf\u0cbe\u0c9a\u0ccd\u200c\u0cae\u0cc6\u0c82\u0c9f\u0ccd \u0c85\u0ca8\u0ccd\u0ca8\u0cc1 \u0ca4\u0cc6\u0c97\u0cc6\u0ca6\u0cc1\u0cb9\u0cbe\u0c95\u0cbf"
|
| 89 |
+
}
|
| 90 |
+
},
|
| 91 |
+
"messages": {
|
| 92 |
+
"status": {
|
| 93 |
+
"using": "\u0cac\u0cb3\u0cb8\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0cb0\u0cc1\u0cb5\u0cc1\u0ca6\u0cc1",
|
| 94 |
+
"used": "\u0cac\u0cb3\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6"
|
| 95 |
+
},
|
| 96 |
+
"actions": {
|
| 97 |
+
"copy": {
|
| 98 |
+
"button": "\u0c95\u0ccd\u0cb2\u0cbf\u0caa\u0ccd\u200c\u0cac\u0ccb\u0cb0\u0ccd\u0ca1\u0ccd\u200c\u0c97\u0cc6 \u0ca8\u0c95\u0cb2\u0cbf\u0cb8\u0cbf",
|
| 99 |
+
"success": "\u0ca8\u0c95\u0cb2\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6!"
|
| 100 |
+
}
|
| 101 |
+
},
|
| 102 |
+
"feedback": {
|
| 103 |
+
"positive": "\u0cb8\u0cb9\u0cbe\u0caf\u0c95\u0cb5\u0cbe\u0c97\u0cbf\u0ca6\u0cc6",
|
| 104 |
+
"negative": "\u0cb8\u0cb9\u0cbe\u0caf\u0c95\u0cb5\u0cbe\u0c97\u0cbf\u0cb2\u0ccd\u0cb2",
|
| 105 |
+
"edit": "\u0caa\u0ccd\u0cb0\u0ca4\u0cbf\u0c95\u0ccd\u0cb0\u0cbf\u0caf\u0cc6 \u0cb8\u0c82\u0caa\u0cbe\u0ca6\u0cbf\u0cb8\u0cbf",
|
| 106 |
+
"dialog": {
|
| 107 |
+
"title": "\u0c95\u0cbe\u0cae\u0cc6\u0c82\u0c9f\u0ccd \u0cb8\u0cc7\u0cb0\u0cbf\u0cb8\u0cbf",
|
| 108 |
+
"submit": "\u0caa\u0ccd\u0cb0\u0ca4\u0cbf\u0c95\u0ccd\u0cb0\u0cbf\u0caf\u0cc6 \u0cb8\u0cb2\u0ccd\u0cb2\u0cbf\u0cb8\u0cbf",
|
| 109 |
+
"yourFeedback": "\u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0caa\u0ccd\u0cb0\u0ca4\u0cbf\u0c95\u0ccd\u0cb0\u0cbf\u0caf\u0cc6..."
|
| 110 |
+
},
|
| 111 |
+
"status": {
|
| 112 |
+
"updating": "\u0ca8\u0cb5\u0cc0\u0c95\u0cb0\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6",
|
| 113 |
+
"updated": "\u0caa\u0ccd\u0cb0\u0ca4\u0cbf\u0c95\u0ccd\u0cb0\u0cbf\u0caf\u0cc6 \u0ca8\u0cb5\u0cc0\u0c95\u0cb0\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6"
|
| 114 |
+
}
|
| 115 |
+
}
|
| 116 |
+
},
|
| 117 |
+
"history": {
|
| 118 |
+
"title": "\u0c95\u0cca\u0ca8\u0cc6\u0caf \u0c87\u0ca8\u0ccd\u200c\u0caa\u0cc1\u0c9f\u0ccd\u200c\u0c97\u0cb3\u0cc1",
|
| 119 |
+
"empty": "\u0c96\u0cbe\u0cb2\u0cbf\u0caf\u0cbe\u0c97\u0cbf\u0ca6\u0cc6...",
|
| 120 |
+
"show": "\u0c87\u0ca4\u0cbf\u0cb9\u0cbe\u0cb8 \u0ca4\u0ccb\u0cb0\u0cbf\u0cb8\u0cbf"
|
| 121 |
+
},
|
| 122 |
+
"settings": {
|
| 123 |
+
"title": "\u0cb8\u0cc6\u0c9f\u0ccd\u0c9f\u0cbf\u0c82\u0c97\u0ccd\u200c\u0c97\u0cb3 \u0caa\u0ccd\u0caf\u0cbe\u0ca8\u0cc6\u0cb2\u0ccd",
|
| 124 |
+
"customize": "\u0c88\u0c97 \u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0c9a\u0cbe\u0c9f\u0ccd \u0cb8\u0cc6\u0c9f\u0ccd\u0c9f\u0cbf\u0c82\u0c97\u0ccd\u200c\u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0c95\u0cb8\u0ccd\u0c9f\u0cae\u0cc8\u0cb8\u0ccd \u0cae\u0cbe\u0ca1\u0cbf"
|
| 125 |
+
},
|
| 126 |
+
"watermark": "LLM \u0c97\u0cb3\u0cc1 \u0ca4\u0caa\u0ccd\u0caa\u0cc1\u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0cae\u0cbe\u0ca1\u0cac\u0cb9\u0cc1\u0ca6\u0cc1. \u0caa\u0ccd\u0cb0\u0cae\u0cc1\u0c96 \u0cae\u0cbe\u0cb9\u0cbf\u0ca4\u0cbf\u0caf\u0ca8\u0ccd\u0ca8\u0cc1 \u0caa\u0cb0\u0cbf\u0cb6\u0cc0\u0cb2\u0cbf\u0cb8\u0cc1\u0cb5\u0cc1\u0ca6\u0ca8\u0ccd\u0ca8\u0cc1 \u0caa\u0cb0\u0cbf\u0c97\u0ca3\u0cbf\u0cb8\u0cbf."
|
| 127 |
+
},
|
| 128 |
+
"threadHistory": {
|
| 129 |
+
"sidebar": {
|
| 130 |
+
"title": "\u0cb9\u0cbf\u0c82\u0ca6\u0cbf\u0ca8 \u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6\u0c97\u0cb3\u0cc1",
|
| 131 |
+
"filters": {
|
| 132 |
+
"search": "\u0cb9\u0cc1\u0ca1\u0cc1\u0c95\u0cbf",
|
| 133 |
+
"placeholder": "Search conversations..."
|
| 134 |
+
},
|
| 135 |
+
"timeframes": {
|
| 136 |
+
"today": "\u0c87\u0c82\u0ca6\u0cc1",
|
| 137 |
+
"yesterday": "\u0ca8\u0cbf\u0ca8\u0ccd\u0ca8\u0cc6",
|
| 138 |
+
"previous7days": "\u0cb9\u0cbf\u0c82\u0ca6\u0cbf\u0ca8 7 \u0ca6\u0cbf\u0ca8\u0c97\u0cb3\u0cc1",
|
| 139 |
+
"previous30days": "\u0cb9\u0cbf\u0c82\u0ca6\u0cbf\u0ca8 30 \u0ca6\u0cbf\u0ca8\u0c97\u0cb3\u0cc1"
|
| 140 |
+
},
|
| 141 |
+
"empty": "\u0caf\u0cbe\u0cb5\u0cc1\u0ca6\u0cc7 \u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6\u0c97\u0cb3\u0cc1 \u0c95\u0c82\u0ca1\u0cc1\u0cac\u0c82\u0ca6\u0cbf\u0cb2\u0ccd\u0cb2",
|
| 142 |
+
"actions": {
|
| 143 |
+
"close": "\u0caa\u0c95\u0ccd\u0c95\u0ca6 \u0caa\u0c9f\u0ccd\u0c9f\u0cbf \u0cae\u0cc1\u0c9a\u0ccd\u0c9a\u0cbf",
|
| 144 |
+
"open": "\u0caa\u0c95\u0ccd\u0c95\u0ca6 \u0caa\u0c9f\u0ccd\u0c9f\u0cbf \u0ca4\u0cc6\u0cb0\u0cc6\u0caf\u0cbf\u0cb0\u0cbf"
|
| 145 |
+
}
|
| 146 |
+
},
|
| 147 |
+
"thread": {
|
| 148 |
+
"untitled": "\u0cb6\u0cc0\u0cb0\u0ccd\u0cb7\u0cbf\u0c95\u0cc6\u0cb0\u0cb9\u0cbf\u0ca4 \u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6",
|
| 149 |
+
"menu": {
|
| 150 |
+
"rename": "\u0cae\u0cb0\u0cc1\u0cb9\u0cc6\u0cb8\u0cb0\u0cbf\u0cb8\u0cbf",
|
| 151 |
+
"share": "\u0cb9\u0c82\u0c9a\u0cbf\u0c95\u0cca\u0cb3\u0ccd\u0cb3\u0cbf",
|
| 152 |
+
"delete": "\u0c85\u0cb3\u0cbf\u0cb8\u0cbf"
|
| 153 |
+
},
|
| 154 |
+
"actions": {
|
| 155 |
+
"share": {
|
| 156 |
+
"title": "\u0c9a\u0cbe\u0c9f\u0ccd\u200c\u0c97\u0cc6 \u0cb2\u0cbf\u0c82\u0c95\u0ccd \u0cb9\u0c82\u0c9a\u0cbf\u0c95\u0cca\u0cb3\u0ccd\u0cb3\u0cbf",
|
| 157 |
+
"button": "\u0cb9\u0c82\u0c9a\u0cbf\u0c95\u0cca\u0cb3\u0ccd\u0cb3\u0cbf",
|
| 158 |
+
"status": {
|
| 159 |
+
"copied": "\u0cb2\u0cbf\u0c82\u0c95\u0ccd \u0caa\u0ccd\u0cb0\u0ca4\u0cbf\u0cb2\u0cbf\u0caa\u0cbf \u0cae\u0cbe\u0ca1\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6",
|
| 160 |
+
"created": "\u0cb9\u0c82\u0c9a\u0cbf\u0c95\u0cc6\u0caf \u0cb2\u0cbf\u0c82\u0c95\u0ccd \u0cb0\u0c9a\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6!",
|
| 161 |
+
"unshared": "\u0c88 \u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6\u0c97\u0cc6 \u0cb9\u0c82\u0c9a\u0cbf\u0c95\u0cc6 \u0ca8\u0cbf\u0cb7\u0ccd\u0c95\u0ccd\u0cb0\u0cbf\u0caf\u0c97\u0cca\u0cb3\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6"
|
| 162 |
+
},
|
| 163 |
+
"error": {
|
| 164 |
+
"create": "\u0cb9\u0c82\u0c9a\u0cbf\u0c95\u0cc6\u0caf \u0cb2\u0cbf\u0c82\u0c95\u0ccd \u0cb0\u0c9a\u0cbf\u0cb8\u0cb2\u0cc1 \u0cb5\u0cbf\u0cab\u0cb2\u0cb5\u0cbe\u0c97\u0cbf\u0ca6\u0cc6",
|
| 165 |
+
"unshare": "\u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6 \u0cb9\u0c82\u0c9a\u0cbf\u0c95\u0cc6\u0caf\u0ca8\u0ccd\u0ca8\u0cc1 \u0cb0\u0ca6\u0ccd\u0ca6\u0cc1 \u0cae\u0cbe\u0ca1\u0cb2\u0cc1 \u0cb5\u0cbf\u0cab\u0cb2\u0cb5\u0cbe\u0c97\u0cbf\u0ca6\u0cc6"
|
| 166 |
+
}
|
| 167 |
+
},
|
| 168 |
+
"delete": {
|
| 169 |
+
"title": "\u0c85\u0cb3\u0cbf\u0cb8\u0cc1\u0cb5\u0cbf\u0c95\u0cc6\u0caf\u0ca8\u0ccd\u0ca8\u0cc1 \u0ca6\u0cc3\u0ca2\u0cc0\u0c95\u0cb0\u0cbf\u0cb8\u0cbf",
|
| 170 |
+
"description": "\u0c87\u0ca6\u0cc1 \u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6\u0caf\u0ca8\u0ccd\u0ca8\u0cc1 \u0cb9\u0cbe\u0c97\u0cc2 \u0c85\u0ca6\u0cb0 \u0cb8\u0c82\u0ca6\u0cc7\u0cb6\u0c97\u0cb3\u0cc1 \u0cae\u0ca4\u0ccd\u0ca4\u0cc1 \u0c85\u0c82\u0cb6\u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0c85\u0cb3\u0cbf\u0cb8\u0cc1\u0ca4\u0ccd\u0ca4\u0ca6\u0cc6. \u0c88 \u0c95\u0ccd\u0cb0\u0cbf\u0caf\u0cc6\u0caf\u0ca8\u0ccd\u0ca8\u0cc1 \u0cb0\u0ca6\u0ccd\u0ca6\u0cc1\u0c97\u0cca\u0cb3\u0cbf\u0cb8\u0cb2\u0cc1 \u0cb8\u0cbe\u0ca7\u0ccd\u0caf\u0cb5\u0cbf\u0cb2\u0ccd\u0cb2",
|
| 171 |
+
"success": "\u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6 \u0c85\u0cb3\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6",
|
| 172 |
+
"inProgress": "\u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6 \u0c85\u0cb3\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6"
|
| 173 |
+
},
|
| 174 |
+
"rename": {
|
| 175 |
+
"title": "\u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6\u0caf \u0cb9\u0cc6\u0cb8\u0cb0\u0cc1 \u0cac\u0ca6\u0cb2\u0cbe\u0caf\u0cbf\u0cb8\u0cbf",
|
| 176 |
+
"description": "\u0c88 \u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6\u0c97\u0cc6 \u0cb9\u0cca\u0cb8 \u0cb9\u0cc6\u0cb8\u0cb0\u0ca8\u0ccd\u0ca8\u0cc1 \u0ca8\u0cae\u0cc2\u0ca6\u0cbf\u0cb8\u0cbf",
|
| 177 |
+
"form": {
|
| 178 |
+
"name": {
|
| 179 |
+
"label": "\u0cb9\u0cc6\u0cb8\u0cb0\u0cc1",
|
| 180 |
+
"placeholder": "\u0cb9\u0cca\u0cb8 \u0cb9\u0cc6\u0cb8\u0cb0\u0ca8\u0ccd\u0ca8\u0cc1 \u0ca8\u0cae\u0cc2\u0ca6\u0cbf\u0cb8\u0cbf"
|
| 181 |
+
}
|
| 182 |
+
},
|
| 183 |
+
"success": "\u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6\u0caf \u0cb9\u0cc6\u0cb8\u0cb0\u0cc1 \u0cac\u0ca6\u0cb2\u0cbe\u0caf\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6!",
|
| 184 |
+
"inProgress": "\u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6\u0caf \u0cb9\u0cc6\u0cb8\u0cb0\u0cc1 \u0cac\u0ca6\u0cb2\u0cbe\u0caf\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6"
|
| 185 |
+
}
|
| 186 |
+
}
|
| 187 |
+
}
|
| 188 |
+
},
|
| 189 |
+
"navigation": {
|
| 190 |
+
"header": {
|
| 191 |
+
"chat": "\u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6",
|
| 192 |
+
"readme": "\u0c93\u0ca6\u0cbf",
|
| 193 |
+
"theme": {
|
| 194 |
+
"light": "Light Theme",
|
| 195 |
+
"dark": "Dark Theme",
|
| 196 |
+
"system": "Follow System"
|
| 197 |
+
}
|
| 198 |
+
},
|
| 199 |
+
"newChat": {
|
| 200 |
+
"button": "\u0cb9\u0cca\u0cb8 \u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6",
|
| 201 |
+
"dialog": {
|
| 202 |
+
"title": "\u0cb9\u0cca\u0cb8 \u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6 \u0cb0\u0c9a\u0cbf\u0cb8\u0cbf",
|
| 203 |
+
"description": "\u0c87\u0ca6\u0cc1 \u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0caa\u0ccd\u0cb0\u0cb8\u0ccd\u0ca4\u0cc1\u0ca4 \u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6\u0caf \u0c87\u0ca4\u0cbf\u0cb9\u0cbe\u0cb8\u0cb5\u0ca8\u0ccd\u0ca8\u0cc1 \u0c85\u0cb3\u0cbf\u0cb8\u0cc1\u0ca4\u0ccd\u0ca4\u0ca6\u0cc6. \u0ca8\u0cc0\u0cb5\u0cc1 \u0cae\u0cc1\u0c82\u0ca6\u0cc1\u0cb5\u0cb0\u0cc6\u0caf\u0cb2\u0cc1 \u0cac\u0caf\u0cb8\u0cc1\u0cb5\u0cbf\u0cb0\u0cbe?",
|
| 204 |
+
"tooltip": "\u0cb9\u0cca\u0cb8 \u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6"
|
| 205 |
+
}
|
| 206 |
+
},
|
| 207 |
+
"user": {
|
| 208 |
+
"menu": {
|
| 209 |
+
"settings": "\u0cb8\u0cc6\u0c9f\u0ccd\u0c9f\u0cbf\u0c82\u0c97\u0ccd\u200c\u0c97\u0cb3\u0cc1",
|
| 210 |
+
"settingsKey": "S",
|
| 211 |
+
"apiKeys": "API \u0c95\u0cc0\u0c97\u0cb3\u0cc1",
|
| 212 |
+
"logout": "\u0cb2\u0cbe\u0c97\u0ccd \u0c94\u0c9f\u0ccd"
|
| 213 |
+
}
|
| 214 |
+
}
|
| 215 |
+
},
|
| 216 |
+
"apiKeys": {
|
| 217 |
+
"title": "\u0c85\u0c97\u0ca4\u0ccd\u0caf\u0cb5\u0cbf\u0cb0\u0cc1\u0cb5 API \u0c95\u0cc0\u0c97\u0cb3\u0cc1",
|
| 218 |
+
"description": "\u0c88 \u0c85\u0caa\u0ccd\u0cb2\u0cbf\u0c95\u0cc7\u0cb6\u0ca8\u0ccd \u0cac\u0cb3\u0cb8\u0cb2\u0cc1, \u0c88 \u0c95\u0cc6\u0cb3\u0c97\u0cbf\u0ca8 API \u0c95\u0cc0\u0c97\u0cb3\u0cc1 \u0c85\u0c97\u0ca4\u0ccd\u0caf\u0cb5\u0cbf\u0cb0\u0cc1\u0ca4\u0ccd\u0ca4\u0cb5\u0cc6. \u0c95\u0cc0\u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0cb8\u0cbe\u0ca7\u0ca8\u0ca6 \u0cb8\u0ccd\u0ca5\u0cb3\u0cc0\u0caf \u0cb8\u0c82\u0c97\u0ccd\u0cb0\u0cb9\u0ca3\u0cc6\u0caf\u0cb2\u0ccd\u0cb2\u0cbf \u0cb8\u0c82\u0c97\u0ccd\u0cb0\u0cb9\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0ca6\u0cc6.",
|
| 219 |
+
"success": {
|
| 220 |
+
"saved": "\u0caf\u0cb6\u0cb8\u0ccd\u0cb5\u0cbf\u0caf\u0cbe\u0c97\u0cbf \u0c89\u0cb3\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6"
|
| 221 |
+
}
|
| 222 |
+
},
|
| 223 |
+
"alerts": {
|
| 224 |
+
"info": "Info",
|
| 225 |
+
"note": "Note",
|
| 226 |
+
"tip": "Tip",
|
| 227 |
+
"important": "Important",
|
| 228 |
+
"warning": "Warning",
|
| 229 |
+
"caution": "Caution",
|
| 230 |
+
"debug": "Debug",
|
| 231 |
+
"example": "Example",
|
| 232 |
+
"success": "Success",
|
| 233 |
+
"help": "Help",
|
| 234 |
+
"idea": "Idea",
|
| 235 |
+
"pending": "Pending",
|
| 236 |
+
"security": "Security",
|
| 237 |
+
"beta": "Beta",
|
| 238 |
+
"best-practice": "Best Practice"
|
| 239 |
+
},
|
| 240 |
+
"components": {
|
| 241 |
+
"MultiSelectInput": {
|
| 242 |
+
"placeholder": "\u0c9a\u0cc1\u0ca8\u0cbe\u0caf\u0cbf\u0cb8\u0cbf..."
|
| 243 |
+
}
|
| 244 |
+
}
|
| 245 |
+
}
|
.chainlit/translations/ko.json
ADDED
|
@@ -0,0 +1,245 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "\ucde8\uc18c",
|
| 5 |
+
"confirm": "\ud655\uc778",
|
| 6 |
+
"continue": "\uacc4\uc18d",
|
| 7 |
+
"goBack": "\ub4a4\ub85c \uac00\uae30",
|
| 8 |
+
"reset": "\ucd08\uae30\ud654",
|
| 9 |
+
"submit": "\uc81c\ucd9c"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "\ub85c\ub529 \uc911...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "\uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4",
|
| 15 |
+
"serverConnection": "\uc11c\ubc84\uc5d0 \uc5f0\uacb0\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "\uc571\uc5d0 \uc811\uadfc\ud558\ub824\uba74 \ub85c\uadf8\uc778\ud558\uc138\uc694",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "\uc774\uba54\uc77c \uc8fc\uc18c",
|
| 25 |
+
"required": "\uc774\uba54\uc77c\uc740 \ud544\uc218 \uc785\ub825 \ud56d\ubaa9\uc785\ub2c8\ub2e4",
|
| 26 |
+
"placeholder": "me@example.com"
|
| 27 |
+
},
|
| 28 |
+
"password": {
|
| 29 |
+
"label": "\ube44\ubc00\ubc88\ud638",
|
| 30 |
+
"required": "\ube44\ubc00\ubc88\ud638\ub294 \ud544\uc218 \uc785\ub825 \ud56d\ubaa9\uc785\ub2c8\ub2e4"
|
| 31 |
+
},
|
| 32 |
+
"actions": {
|
| 33 |
+
"signin": "\ub85c\uadf8\uc778"
|
| 34 |
+
},
|
| 35 |
+
"alternativeText": {
|
| 36 |
+
"or": "\ub610\ub294"
|
| 37 |
+
}
|
| 38 |
+
},
|
| 39 |
+
"errors": {
|
| 40 |
+
"default": "\ub85c\uadf8\uc778\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4",
|
| 41 |
+
"signin": "\ub2e4\ub978 \uacc4\uc815\uc73c\ub85c \ub85c\uadf8\uc778\ud574\ubcf4\uc138\uc694",
|
| 42 |
+
"oauthSignin": "\ub2e4\ub978 \uacc4\uc815\uc73c\ub85c \ub85c\uadf8\uc778\ud574\ubcf4\uc138\uc694",
|
| 43 |
+
"redirectUriMismatch": "\ub9ac\ub2e4\uc774\ub809\ud2b8 URI\uac00 OAuth \uc571 \uc124\uc815\uacfc \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4",
|
| 44 |
+
"oauthCallback": "\ub2e4\ub978 \uacc4\uc815\uc73c\ub85c \ub85c\uadf8\uc778\ud574\ubcf4\uc138\uc694",
|
| 45 |
+
"oauthCreateAccount": "\ub2e4\ub978 \uacc4\uc815\uc73c\ub85c \ub85c\uadf8\uc778\ud574\ubcf4\uc138\uc694",
|
| 46 |
+
"emailCreateAccount": "\ub2e4\ub978 \uacc4\uc815\uc73c\ub85c \ub85c\uadf8\uc778\ud574\ubcf4\uc138\uc694",
|
| 47 |
+
"callback": "\ub2e4\ub978 \uacc4\uc815\uc73c\ub85c \ub85c\uadf8\uc778\ud574\ubcf4\uc138\uc694",
|
| 48 |
+
"oauthAccountNotLinked": "\uc2e0\uc6d0\uc744 \ud655\uc778\ud558\ub824\uba74 \uc6d0\ub798 \uc0ac\uc6a9\ud588\ub358 \uacc4\uc815\uc73c\ub85c \ub85c\uadf8\uc778\ud558\uc138\uc694",
|
| 49 |
+
"emailSignin": "\uc774\uba54\uc77c\uc744 \ubcf4\ub0bc \uc218 \uc5c6\uc2b5\ub2c8\ub2e4",
|
| 50 |
+
"emailVerify": "\uc774\uba54\uc77c\uc744 \ud655\uc778\ud574\uc8fc\uc138\uc694. \uc0c8\ub85c\uc6b4 \uc774\uba54\uc77c\uc774 \ubc1c\uc1a1\ub418\uc5c8\uc2b5\ub2c8\ub2e4",
|
| 51 |
+
"credentialsSignin": "\ub85c\uadf8\uc778 \uc2e4\ud328. \uc81c\uacf5\ud55c \uc815\ubcf4\uac00 \uc62c\ubc14\ub978\uc9c0 \ud655\uc778\ud558\uc138\uc694",
|
| 52 |
+
"sessionRequired": "\uc774 \ud398\uc774\uc9c0\uc5d0 \uc811\uadfc\ud558\ub824\uba74 \ub85c\uadf8\uc778\ud574\uc8fc\uc138\uc694"
|
| 53 |
+
}
|
| 54 |
+
},
|
| 55 |
+
"provider": {
|
| 56 |
+
"continue": "{{provider}}\ub85c \uacc4\uc18d\ud558\uae30"
|
| 57 |
+
}
|
| 58 |
+
},
|
| 59 |
+
"chat": {
|
| 60 |
+
"input": {
|
| 61 |
+
"placeholder": "\uc5ec\uae30\uc5d0 \uba54\uc2dc\uc9c0\ub97c \uc785\ub825\ud558\uc138\uc694...",
|
| 62 |
+
"actions": {
|
| 63 |
+
"send": "\uba54\uc2dc\uc9c0 \ubcf4\ub0b4\uae30",
|
| 64 |
+
"stop": "\uc791\uc5c5 \uc911\uc9c0",
|
| 65 |
+
"attachFiles": "\ud30c\uc77c \ucca8\ubd80"
|
| 66 |
+
}
|
| 67 |
+
},
|
| 68 |
+
"commands": {
|
| 69 |
+
"button": "\ub3c4\uad6c",
|
| 70 |
+
"changeTool": "\ub3c4\uad6c \ubcc0\uacbd",
|
| 71 |
+
"availableTools": "\uc0ac\uc6a9 \uac00\ub2a5\ud55c \ub3c4\uad6c"
|
| 72 |
+
},
|
| 73 |
+
"speech": {
|
| 74 |
+
"start": "\ub179\uc74c \uc2dc\uc791",
|
| 75 |
+
"stop": "\ub179\uc74c \uc911\uc9c0",
|
| 76 |
+
"connecting": "\uc5f0\uacb0 \uc911"
|
| 77 |
+
},
|
| 78 |
+
"fileUpload": {
|
| 79 |
+
"dragDrop": "\uc5ec\uae30\uc5d0 \ud30c\uc77c\uc744 \ub4dc\ub798\uadf8 \uc564 \ub4dc\ub86d\ud558\uc138\uc694",
|
| 80 |
+
"browse": "\ud30c\uc77c \ucc3e\uc544\ubcf4\uae30",
|
| 81 |
+
"sizeLimit": "\uc81c\ud55c:",
|
| 82 |
+
"errors": {
|
| 83 |
+
"failed": "\uc5c5\ub85c\ub4dc \uc2e4\ud328",
|
| 84 |
+
"cancelled": "\uc5c5\ub85c\ub4dc \ucde8\uc18c:"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"cancelUpload": "\uc5c5\ub85c\ub4dc \ucde8\uc18c",
|
| 88 |
+
"removeAttachment": "\ucca8\ubd80 \ud30c\uc77c \uc81c\uac70"
|
| 89 |
+
}
|
| 90 |
+
},
|
| 91 |
+
"messages": {
|
| 92 |
+
"status": {
|
| 93 |
+
"using": "\uc0ac\uc6a9 \uc911",
|
| 94 |
+
"used": "\uc0ac\uc6a9\ub428"
|
| 95 |
+
},
|
| 96 |
+
"actions": {
|
| 97 |
+
"copy": {
|
| 98 |
+
"button": "\ud074\ub9bd\ubcf4\ub4dc\ub85c \ubcf5\uc0ac",
|
| 99 |
+
"success": "\ubcf5\uc0ac\ub418\uc5c8\uc2b5\ub2c8\ub2e4!"
|
| 100 |
+
}
|
| 101 |
+
},
|
| 102 |
+
"feedback": {
|
| 103 |
+
"positive": "\ub3c4\uc6c0\uc774 \ub418\uc5c8\uc74c",
|
| 104 |
+
"negative": "\ub3c4\uc6c0\uc774 \ub418\uc9c0 \uc54a\uc74c",
|
| 105 |
+
"edit": "\ud53c\ub4dc\ubc31 \uc218\uc815",
|
| 106 |
+
"dialog": {
|
| 107 |
+
"title": "\ub313\uae00 \ucd94\uac00",
|
| 108 |
+
"submit": "\ud53c\ub4dc\ubc31 \uc81c\ucd9c",
|
| 109 |
+
"yourFeedback": "\uadc0\ud558\uc758 \ud53c\ub4dc\ubc31..."
|
| 110 |
+
},
|
| 111 |
+
"status": {
|
| 112 |
+
"updating": "\uc5c5\ub370\uc774\ud2b8 \uc911",
|
| 113 |
+
"updated": "\ud53c\ub4dc\ubc31\uc774 \uc5c5\ub370\uc774\ud2b8\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
|
| 114 |
+
}
|
| 115 |
+
}
|
| 116 |
+
},
|
| 117 |
+
"history": {
|
| 118 |
+
"title": "\ucd5c\uadfc \uc785\ub825",
|
| 119 |
+
"empty": "\ube44\uc5b4 \uc788\uc2b5\ub2c8\ub2e4...",
|
| 120 |
+
"show": "\uae30\ub85d \ud45c\uc2dc"
|
| 121 |
+
},
|
| 122 |
+
"settings": {
|
| 123 |
+
"title": "\uc124\uc815 \ud328\ub110",
|
| 124 |
+
"customize": "\uc5ec\uae30\uc5d0\uc11c \ucc44\ud305 \uc124\uc815\uc744 \uc0ac\uc6a9\uc790 \uc9c0\uc815\ud558\uc138\uc694"
|
| 125 |
+
},
|
| 126 |
+
"watermark": "LLM\uc740 \uc2e4\uc218\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc911\uc694\ud55c \uc815\ubcf4\ub294 \ud655\uc778\ud558\uc138\uc694."
|
| 127 |
+
},
|
| 128 |
+
"threadHistory": {
|
| 129 |
+
"sidebar": {
|
| 130 |
+
"title": "\uc774\uc804 \ucc44\ud305",
|
| 131 |
+
"filters": {
|
| 132 |
+
"search": "\uac80\uc0c9",
|
| 133 |
+
"placeholder": "\ub300\ud654 \uac80\uc0c9..."
|
| 134 |
+
},
|
| 135 |
+
"timeframes": {
|
| 136 |
+
"today": "\uc624\ub298",
|
| 137 |
+
"yesterday": "\uc5b4\uc81c",
|
| 138 |
+
"previous7days": "\uc9c0\ub09c 7\uc77c",
|
| 139 |
+
"previous30days": "\uc9c0\ub09c 30\uc77c"
|
| 140 |
+
},
|
| 141 |
+
"empty": "\uc2a4\ub808\ub4dc\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4",
|
| 142 |
+
"actions": {
|
| 143 |
+
"close": "\uc0ac\uc774\ub4dc\ubc14 \ub2eb\uae30",
|
| 144 |
+
"open": "\uc0ac\uc774\ub4dc\ubc14 \uc5f4\uae30"
|
| 145 |
+
}
|
| 146 |
+
},
|
| 147 |
+
"thread": {
|
| 148 |
+
"untitled": "\uc81c\ubaa9 \uc5c6\ub294 \ub300\ud654",
|
| 149 |
+
"menu": {
|
| 150 |
+
"rename": "\uc774\ub984 \ubcc0\uacbd",
|
| 151 |
+
"share": "\uacf5\uc720",
|
| 152 |
+
"delete": "\uc0ad\uc81c"
|
| 153 |
+
},
|
| 154 |
+
"actions": {
|
| 155 |
+
"share": {
|
| 156 |
+
"title": "\ucc44\ud305 \ub9c1\ud06c \uacf5\uc720",
|
| 157 |
+
"button": "\uacf5\uc720",
|
| 158 |
+
"status": {
|
| 159 |
+
"copied": "\ub9c1\ud06c \ubcf5\uc0ac\ub428",
|
| 160 |
+
"created": "\uacf5\uc720 \ub9c1\ud06c\uac00 \uc0dd\uc131\ub418\uc5c8\uc2b5\ub2c8\ub2e4!",
|
| 161 |
+
"unshared": "\uc774 \uc2a4\ub808\ub4dc\uc758 \uacf5\uc720\uac00 \ube44\ud65c\uc131\ud654\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
|
| 162 |
+
},
|
| 163 |
+
"error": {
|
| 164 |
+
"create": "\uacf5\uc720 \ub9c1\ud06c \uc0dd\uc131 \uc2e4\ud328",
|
| 165 |
+
"unshare": "\uc2a4\ub808\ub4dc \uacf5\uc720 \ud574\uc81c \uc2e4\ud328"
|
| 166 |
+
}
|
| 167 |
+
},
|
| 168 |
+
"delete": {
|
| 169 |
+
"title": "\uc0ad\uc81c \ud655\uc778",
|
| 170 |
+
"description": "\uc774\ub807\uac8c \ud558\uba74 \uc2a4\ub808\ub4dc\uc640 \uadf8 \uba54\uc2dc\uc9c0 \ubc0f \uc694\uc18c\uac00 \uc0ad\uc81c\ub429\ub2c8\ub2e4. \uc774 \uc791\uc5c5\uc740 \ucde8\uc18c\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4",
|
| 171 |
+
"success": "\ucc44\ud305\uc774 \uc0ad\uc81c\ub418\uc5c8\uc2b5\ub2c8\ub2e4",
|
| 172 |
+
"inProgress": "\ucc44\ud305 \uc0ad\uc81c \uc911"
|
| 173 |
+
},
|
| 174 |
+
"rename": {
|
| 175 |
+
"title": "\uc2a4\ub808\ub4dc \uc774\ub984 \ubcc0\uacbd",
|
| 176 |
+
"description": "\uc774 \uc2a4\ub808\ub4dc\uc758 \uc0c8 \uc774\ub984\uc744 \uc785\ub825\ud558\uc138\uc694",
|
| 177 |
+
"form": {
|
| 178 |
+
"name": {
|
| 179 |
+
"label": "\uc774\ub984",
|
| 180 |
+
"placeholder": "\uc0c8 \uc774\ub984 \uc785\ub825"
|
| 181 |
+
}
|
| 182 |
+
},
|
| 183 |
+
"success": "\uc2a4\ub808\ub4dc \uc774\ub984\uc774 \ubcc0\uacbd\ub418\uc5c8\uc2b5\ub2c8\ub2e4!",
|
| 184 |
+
"inProgress": "\uc2a4\ub808\ub4dc \uc774\ub984 \ubcc0\uacbd \uc911"
|
| 185 |
+
}
|
| 186 |
+
}
|
| 187 |
+
}
|
| 188 |
+
},
|
| 189 |
+
"navigation": {
|
| 190 |
+
"header": {
|
| 191 |
+
"chat": "\ucc44\ud305",
|
| 192 |
+
"readme": "\uc77d\uc5b4\ubcf4\uae30",
|
| 193 |
+
"theme": {
|
| 194 |
+
"light": "\ubc1d\uc740 \ud14c\ub9c8",
|
| 195 |
+
"dark": "\uc5b4\ub450\uc6b4 \ud14c\ub9c8",
|
| 196 |
+
"system": "\uc2dc\uc2a4\ud15c \ub530\ub77c\uac00\uae30"
|
| 197 |
+
}
|
| 198 |
+
},
|
| 199 |
+
"newChat": {
|
| 200 |
+
"button": "\uc0c8 \ucc44\ud305",
|
| 201 |
+
"dialog": {
|
| 202 |
+
"title": "\uc0c8 \ucc44\ud305 \ub9cc\ub4e4\uae30",
|
| 203 |
+
"description": "\uc774\ub807\uac8c \ud558\uba74 \ud604\uc7ac \ucc44\ud305 \uae30\ub85d\uc774 \uc9c0\uc6cc\uc9d1\ub2c8\ub2e4. \uacc4\uc18d\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?",
|
| 204 |
+
"tooltip": "\uc0c8 \ucc44\ud305"
|
| 205 |
+
}
|
| 206 |
+
},
|
| 207 |
+
"user": {
|
| 208 |
+
"menu": {
|
| 209 |
+
"settings": "\uc124\uc815",
|
| 210 |
+
"settingsKey": "S",
|
| 211 |
+
"apiKeys": "API \ud0a4",
|
| 212 |
+
"logout": "\ub85c\uadf8\uc544\uc6c3"
|
| 213 |
+
}
|
| 214 |
+
}
|
| 215 |
+
},
|
| 216 |
+
"apiKeys": {
|
| 217 |
+
"title": "\ud544\uc694\ud55c API \ud0a4",
|
| 218 |
+
"description": "\uc774 \uc571\uc744 \uc0ac\uc6a9\ud558\ub824\uba74 \ub2e4\uc74c API \ud0a4\uac00 \ud544\uc694\ud569\ub2c8\ub2e4. \ud0a4\ub294 \uae30\uae30\uc758 \ub85c\uceec \uc800\uc7a5\uc18c\uc5d0 \uc800\uc7a5\ub429\ub2c8\ub2e4.",
|
| 219 |
+
"success": {
|
| 220 |
+
"saved": "\uc131\uacf5\uc801\uc73c\ub85c \uc800\uc7a5\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
|
| 221 |
+
}
|
| 222 |
+
},
|
| 223 |
+
"alerts": {
|
| 224 |
+
"info": "\uc815\ubcf4",
|
| 225 |
+
"note": "\ucc38\uace0",
|
| 226 |
+
"tip": "\ud301",
|
| 227 |
+
"important": "\uc911\uc694",
|
| 228 |
+
"warning": "\uacbd\uace0",
|
| 229 |
+
"caution": "\uc8fc\uc758",
|
| 230 |
+
"debug": "\ub514\ubc84\uadf8",
|
| 231 |
+
"example": "\uc608\uc2dc",
|
| 232 |
+
"success": "\uc131\uacf5",
|
| 233 |
+
"help": "\ub3c4\uc6c0\ub9d0",
|
| 234 |
+
"idea": "\uc544\uc774\ub514\uc5b4",
|
| 235 |
+
"pending": "\ub300\uae30 \uc911",
|
| 236 |
+
"security": "\ubcf4\uc548",
|
| 237 |
+
"beta": "\ubca0\ud0c0",
|
| 238 |
+
"best-practice": "\ubaa8\ubc94 \uc0ac\ub840"
|
| 239 |
+
},
|
| 240 |
+
"components": {
|
| 241 |
+
"MultiSelectInput": {
|
| 242 |
+
"placeholder": "\uc120\ud0dd..."
|
| 243 |
+
}
|
| 244 |
+
}
|
| 245 |
+
}
|
.chainlit/translations/ml.json
ADDED
|
@@ -0,0 +1,245 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "\u0d31\u0d26\u0d4d\u0d26\u0d3e\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 5 |
+
"confirm": "\u0d38\u0d4d\u0d25\u0d3f\u0d30\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 6 |
+
"continue": "\u0d24\u0d41\u0d1f\u0d30\u0d41\u0d15",
|
| 7 |
+
"goBack": "\u0d24\u0d3f\u0d30\u0d3f\u0d15\u0d46 \u0d2a\u0d4b\u0d15\u0d41\u0d15",
|
| 8 |
+
"reset": "\u0d2a\u0d41\u0d28\u0d03\u0d38\u0d1c\u0d4d\u0d1c\u0d2e\u0d3e\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 9 |
+
"submit": "\u0d38\u0d2e\u0d7c\u0d2a\u0d4d\u0d2a\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "\u0d32\u0d4b\u0d21\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d41...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "\u0d12\u0d30\u0d41 \u0d2a\u0d3f\u0d36\u0d15\u0d4d \u0d38\u0d02\u0d2d\u0d35\u0d3f\u0d1a\u0d4d\u0d1a\u0d41",
|
| 15 |
+
"serverConnection": "\u0d38\u0d46\u0d7c\u0d35\u0d31\u0d41\u0d2e\u0d3e\u0d2f\u0d3f \u0d2c\u0d28\u0d4d\u0d27\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d3e\u0d7b \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d3f\u0d32\u0d4d\u0d32"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "\u0d06\u0d2a\u0d4d\u0d2a\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d15\u0d4d\u0d15\u0d3e\u0d7b \u0d32\u0d4b\u0d17\u0d3f\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "\u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d35\u0d3f\u0d32\u0d3e\u0d38\u0d02",
|
| 25 |
+
"required": "\u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d12\u0d30\u0d41 \u0d06\u0d35\u0d36\u0d4d\u0d2f\u0d2e\u0d3e\u0d2f \u0d2b\u0d40\u0d7d\u0d21\u0d4d \u0d06\u0d23\u0d4d",
|
| 26 |
+
"placeholder": "me@example.com"
|
| 27 |
+
},
|
| 28 |
+
"password": {
|
| 29 |
+
"label": "\u0d2a\u0d3e\u0d38\u0d4d\u200c\u0d35\u0d47\u0d21\u0d4d",
|
| 30 |
+
"required": "\u0d2a\u0d3e\u0d38\u0d4d\u200c\u0d35\u0d47\u0d21\u0d4d \u0d12\u0d30\u0d41 \u0d06\u0d35\u0d36\u0d4d\u0d2f\u0d2e\u0d3e\u0d2f \u0d2b\u0d40\u0d7d\u0d21\u0d4d \u0d06\u0d23\u0d4d"
|
| 31 |
+
},
|
| 32 |
+
"actions": {
|
| 33 |
+
"signin": "\u0d38\u0d48\u0d7b \u0d07\u0d7b"
|
| 34 |
+
},
|
| 35 |
+
"alternativeText": {
|
| 36 |
+
"or": "\u0d05\u0d32\u0d4d\u0d32\u0d46\u0d19\u0d4d\u0d15\u0d3f\u0d7d"
|
| 37 |
+
}
|
| 38 |
+
},
|
| 39 |
+
"errors": {
|
| 40 |
+
"default": "\u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d15\u0d34\u0d3f\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d3f\u0d32\u0d4d\u0d32",
|
| 41 |
+
"signin": "\u0d2e\u0d31\u0d4d\u0d31\u0d4a\u0d30\u0d41 \u0d05\u0d15\u0d4d\u0d15\u0d57\u0d23\u0d4d\u0d1f\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 42 |
+
"oauthSignin": "\u0d2e\u0d31\u0d4d\u0d31\u0d4a\u0d30\u0d41 \u0d05\u0d15\u0d4d\u0d15\u0d57\u0d23\u0d4d\u0d1f\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 43 |
+
"redirectUriMismatch": "\u0d31\u0d40\u0d21\u0d2f\u0d31\u0d15\u0d4d\u0d1f\u0d4d URI oauth \u0d06\u0d2a\u0d4d\u0d2a\u0d4d \u0d15\u0d4b\u0d7a\u0d2b\u0d3f\u0d17\u0d31\u0d47\u0d37\u0d28\u0d41\u0d2e\u0d3e\u0d2f\u0d3f \u0d2a\u0d4a\u0d30\u0d41\u0d24\u0d4d\u0d24\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d41\u0d28\u0d4d\u0d28\u0d3f\u0d32\u0d4d\u0d32",
|
| 44 |
+
"oauthCallback": "\u0d2e\u0d31\u0d4d\u0d31\u0d4a\u0d30\u0d41 \u0d05\u0d15\u0d4d\u0d15\u0d57\u0d23\u0d4d\u0d1f\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 45 |
+
"oauthCreateAccount": "\u0d2e\u0d31\u0d4d\u0d31\u0d4a\u0d30\u0d41 \u0d05\u0d15\u0d4d\u0d15\u0d57\u0d23\u0d4d\u0d1f\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 46 |
+
"emailCreateAccount": "\u0d2e\u0d31\u0d4d\u0d31\u0d4a\u0d30\u0d41 \u0d05\u0d15\u0d4d\u0d15\u0d57\u0d23\u0d4d\u0d1f\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 47 |
+
"callback": "\u0d2e\u0d31\u0d4d\u0d31\u0d4a\u0d30\u0d41 \u0d05\u0d15\u0d4d\u0d15\u0d57\u0d23\u0d4d\u0d1f\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 48 |
+
"oauthAccountNotLinked": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d35\u0d4d\u0d2f\u0d15\u0d4d\u0d24\u0d3f\u0d24\u0d4d\u0d35\u0d02 \u0d38\u0d4d\u0d25\u0d3f\u0d30\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d3e\u0d7b, \u0d06\u0d26\u0d4d\u0d2f\u0d02 \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a \u0d05\u0d24\u0d47 \u0d05\u0d15\u0d4d\u0d15\u0d57\u0d23\u0d4d\u0d1f\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15",
|
| 49 |
+
"emailSignin": "\u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d05\u0d2f\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d3e\u0d7b \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d3f\u0d32\u0d4d\u0d32",
|
| 50 |
+
"emailVerify": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d2a\u0d30\u0d3f\u0d36\u0d4b\u0d27\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15, \u0d12\u0d30\u0d41 \u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d05\u0d2f\u0d1a\u0d4d\u0d1a\u0d3f\u0d1f\u0d4d\u0d1f\u0d41\u0d23\u0d4d\u0d1f\u0d4d",
|
| 51 |
+
"credentialsSignin": "\u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d2a\u0d30\u0d3e\u0d1c\u0d2f\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d4d\u0d1f\u0d41. \u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d7e \u0d28\u0d7d\u0d15\u0d3f\u0d2f \u0d35\u0d3f\u0d35\u0d30\u0d19\u0d4d\u0d19\u0d7e \u0d36\u0d30\u0d3f\u0d2f\u0d3e\u0d23\u0d46\u0d28\u0d4d\u0d28\u0d4d \u0d2a\u0d30\u0d3f\u0d36\u0d4b\u0d27\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 52 |
+
"sessionRequired": "\u0d08 \u0d2a\u0d47\u0d1c\u0d4d \u0d06\u0d15\u0d4d\u0d38\u0d38\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d26\u0d2f\u0d35\u0d3e\u0d2f\u0d3f \u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15"
|
| 53 |
+
}
|
| 54 |
+
},
|
| 55 |
+
"provider": {
|
| 56 |
+
"continue": "{{provider}} \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d24\u0d41\u0d1f\u0d30\u0d41\u0d15"
|
| 57 |
+
}
|
| 58 |
+
},
|
| 59 |
+
"chat": {
|
| 60 |
+
"input": {
|
| 61 |
+
"placeholder": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d38\u0d28\u0d4d\u0d26\u0d47\u0d36\u0d02 \u0d07\u0d35\u0d3f\u0d1f\u0d46 \u0d1f\u0d48\u0d2a\u0d4d\u0d2a\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15...",
|
| 62 |
+
"actions": {
|
| 63 |
+
"send": "\u0d38\u0d28\u0d4d\u0d26\u0d47\u0d36\u0d02 \u0d05\u0d2f\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 64 |
+
"stop": "\u0d1f\u0d3e\u0d38\u0d4d\u0d15\u0d4d \u0d28\u0d3f\u0d7c\u0d24\u0d4d\u0d24\u0d41\u0d15",
|
| 65 |
+
"attachFiles": "\u0d2b\u0d2f\u0d32\u0d41\u0d15\u0d7e \u0d05\u0d31\u0d4d\u0d31\u0d3e\u0d1a\u0d4d\u0d1a\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15"
|
| 66 |
+
}
|
| 67 |
+
},
|
| 68 |
+
"commands": {
|
| 69 |
+
"button": "\u0d09\u0d2a\u0d15\u0d30\u0d23\u0d19\u0d4d\u0d19\u0d7e",
|
| 70 |
+
"changeTool": "\u0d09\u0d2a\u0d15\u0d30\u0d23\u0d02 \u0d2e\u0d3e\u0d31\u0d4d\u0d31\u0d41\u0d15",
|
| 71 |
+
"availableTools": "\u0d32\u0d2d\u0d4d\u0d2f\u0d2e\u0d3e\u0d2f \u0d09\u0d2a\u0d15\u0d30\u0d23\u0d19\u0d4d\u0d19\u0d7e"
|
| 72 |
+
},
|
| 73 |
+
"speech": {
|
| 74 |
+
"start": "\u0d31\u0d46\u0d15\u0d4d\u0d15\u0d4b\u0d7c\u0d21\u0d3f\u0d02\u0d17\u0d4d \u0d06\u0d30\u0d02\u0d2d\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 75 |
+
"stop": "\u0d31\u0d46\u0d15\u0d4d\u0d15\u0d4b\u0d7c\u0d21\u0d3f\u0d02\u0d17\u0d4d \u0d28\u0d3f\u0d7c\u0d24\u0d4d\u0d24\u0d41\u0d15",
|
| 76 |
+
"connecting": "\u0d2c\u0d28\u0d4d\u0d27\u0d3f\u0d2a\u0d4d\u0d2a\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d41"
|
| 77 |
+
},
|
| 78 |
+
"fileUpload": {
|
| 79 |
+
"dragDrop": "\u0d2b\u0d2f\u0d32\u0d41\u0d15\u0d7e \u0d07\u0d35\u0d3f\u0d1f\u0d46 \u0d35\u0d32\u0d3f\u0d1a\u0d4d\u0d1a\u0d3f\u0d1f\u0d41\u0d15",
|
| 80 |
+
"browse": "\u0d2b\u0d2f\u0d32\u0d41\u0d15\u0d7e \u0d24\u0d3f\u0d30\u0d2f\u0d41\u0d15",
|
| 81 |
+
"sizeLimit": "\u0d2a\u0d30\u0d3f\u0d27\u0d3f:",
|
| 82 |
+
"errors": {
|
| 83 |
+
"failed": "\u0d05\u0d2a\u0d4d\u200c\u0d32\u0d4b\u0d21\u0d4d \u0d2a\u0d30\u0d3e\u0d1c\u0d2f\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d4d\u0d1f\u0d41",
|
| 84 |
+
"cancelled": "\u0d05\u0d2a\u0d4d\u200c\u0d32\u0d4b\u0d21\u0d4d \u0d31\u0d26\u0d4d\u0d26\u0d3e\u0d15\u0d4d\u0d15\u0d3f"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"cancelUpload": "\u0d05\u0d2a\u0d4d\u200c\u0cb2\u0d4b\u0d21\u0d4d \u0d31\u0d26\u0d4d\u0d26\u0d41\u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15",
|
| 88 |
+
"removeAttachment": "\u0d05\u0d31\u0d4d\u0d31\u0d3e\u0d1a\u0d4d\u0d1a\u0d4d\u200c\u0d2e\u0d46\u0d28\u0d4d\u0d31\u0d4d \u0d28\u0d40\u0d15\u0d4d\u0d15\u0d02 \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15"
|
| 89 |
+
}
|
| 90 |
+
},
|
| 91 |
+
"messages": {
|
| 92 |
+
"status": {
|
| 93 |
+
"using": "\u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d41",
|
| 94 |
+
"used": "\u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d41"
|
| 95 |
+
},
|
| 96 |
+
"actions": {
|
| 97 |
+
"copy": {
|
| 98 |
+
"button": "\u0d15\u0d4d\u0d32\u0d3f\u0d2a\u0d4d\u0d2a\u0d4d\u0d2c\u0d4b\u0d7c\u0d21\u0d3f\u0d32\u0d47\u0d15\u0d4d\u0d15\u0d4d \u0d2a\u0d15\u0d7c\u0d24\u0d4d\u0d24\u0d41\u0d15",
|
| 99 |
+
"success": "\u0d2a\u0d15\u0d7c\u0d24\u0d4d\u0d24\u0d3f!"
|
| 100 |
+
}
|
| 101 |
+
},
|
| 102 |
+
"feedback": {
|
| 103 |
+
"positive": "\u0d38\u0d39\u0d3e\u0d2f\u0d15\u0d30\u0d02",
|
| 104 |
+
"negative": "\u0d38\u0d39\u0d3e\u0d2f\u0d15\u0d30\u0d2e\u0d32\u0d4d\u0d32",
|
| 105 |
+
"edit": "\u0d2b\u0d40\u0d21\u0d4d\u0d2c\u0d3e\u0d15\u0d4d\u0d15\u0d4d \u0d0e\u0d21\u0d3f\u0d31\u0d4d\u0d31\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15",
|
| 106 |
+
"dialog": {
|
| 107 |
+
"title": "\u0d12\u0d30\u0d41 \u0d15\u0d2e\u0d28\u0d4d\u0d31\u0d4d \u0d1a\u0d47\u0d7c\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 108 |
+
"submit": "\u0d2b\u0d40\u0d21\u0d4d\u0d2c\u0d3e\u0d15\u0d4d\u0d15\u0d4d \u0d38\u0d2e\u0d7c\u0d2a\u0d4d\u0d2a\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 109 |
+
"yourFeedback": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d2a\u0d4d\u0d30\u0d24\u0d3f\u0d15\u0d30\u0d23\u0d02..."
|
| 110 |
+
},
|
| 111 |
+
"status": {
|
| 112 |
+
"updating": "\u0d05\u0d2a\u0d4d\u0d21\u0d47\u0d31\u0d4d\u0d31\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d41",
|
| 113 |
+
"updated": "\u0d2b\u0d40\u0d21\u0d4d\u0d2c\u0d3e\u0d15\u0d4d\u0d15\u0d4d \u0d05\u0d2a\u0d4d\u0d21\u0d47\u0d31\u0d4d\u0d31\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d24\u0d41"
|
| 114 |
+
}
|
| 115 |
+
}
|
| 116 |
+
},
|
| 117 |
+
"history": {
|
| 118 |
+
"title": "\u0d05\u0d35\u0d38\u0d3e\u0d28 \u0d07\u0d7b\u0d2a\u0d41\u0d1f\u0d4d\u0d1f\u0d41\u0d15\u0d7e",
|
| 119 |
+
"empty": "\u0d12\u0d28\u0d4d\u0d28\u0d41\u0d2e\u0d3f\u0d32\u0d4d\u0d32...",
|
| 120 |
+
"show": "\u0d39\u0d3f\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d31\u0d3f \u0d15\u0d3e\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15"
|
| 121 |
+
},
|
| 122 |
+
"settings": {
|
| 123 |
+
"title": "\u0d15\u0d4d\u0d30\u0d2e\u0d40\u0d15\u0d30\u0d23\u0d19\u0d4d\u0d19\u0d7e \u0d2a\u0d3e\u0d28\u0d7d",
|
| 124 |
+
"customize": "\u0d08 \u0d38\u0d2e\u0d2f\u0d02 \u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d \u0d15\u0d4d\u0d30\u0d2e\u0d40\u0d15\u0d30\u0d23\u0d19\u0d4d\u0d19\u0d7e \u0d15\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d2e\u0d48\u0d38\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15"
|
| 125 |
+
},
|
| 126 |
+
"watermark": "LLM \u0d15\u0d7e\u0d15\u0d4d\u0d15\u0d4d \u0d24\u0d46\u0d31\u0d4d\u0d31\u0d41\u0d15\u0d7e \u0d35\u0d30\u0d41\u0d24\u0d4d\u0d24\u0d3e\u0d02. \u0d2a\u0d4d\u0d30\u0d27\u0d3e\u0d28\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d4d\u0d1f \u0d35\u0d3f\u0d35\u0d30\u0d19\u0d4d\u0d19\u0d7e \u0d2a\u0d30\u0d3f\u0d36\u0d4b\u0d27\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d24\u0d4d \u0d2a\u0d30\u0d3f\u0d17\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15."
|
| 127 |
+
},
|
| 128 |
+
"threadHistory": {
|
| 129 |
+
"sidebar": {
|
| 130 |
+
"title": "\u0d2e\u0d41\u0d7b \u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d41\u0d15\u0d7e",
|
| 131 |
+
"filters": {
|
| 132 |
+
"search": "\u0d24\u0d3f\u0d30\u0d2f\u0d41\u0d15",
|
| 133 |
+
"placeholder": "Search conversations..."
|
| 134 |
+
},
|
| 135 |
+
"timeframes": {
|
| 136 |
+
"today": "\u0d07\u0d28\u0d4d\u0d28\u0d4d",
|
| 137 |
+
"yesterday": "\u0d07\u0d28\u0d4d\u0d28\u0d32\u0d46",
|
| 138 |
+
"previous7days": "\u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e 7 \u0d26\u0d3f\u0d35\u0d38\u0d02",
|
| 139 |
+
"previous30days": "\u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e 30 \u0d26\u0d3f\u0d35\u0d38\u0d02"
|
| 140 |
+
},
|
| 141 |
+
"empty": "\u0d24\u0d4d\u0d30\u0d46\u0d21\u0d41\u0d15\u0d7e \u0d15\u0d23\u0d4d\u0d1f\u0d46\u0d24\u0d4d\u0d24\u0d3f\u0d2f\u0d3f\u0d32\u0d4d\u0d32",
|
| 142 |
+
"actions": {
|
| 143 |
+
"close": "\u0d38\u0d48\u0d21\u0d4d\u0d2c\u0d3e\u0d7c \u0d05\u0d1f\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 144 |
+
"open": "\u0d38\u0d48\u0d21\u0d4d\u0d2c\u0d3e\u0d7c \u0d24\u0d41\u0d31\u0d15\u0d4d\u0d15\u0d41\u0d15"
|
| 145 |
+
}
|
| 146 |
+
},
|
| 147 |
+
"thread": {
|
| 148 |
+
"untitled": "\u0d2a\u0d47\u0d30\u0d3f\u0d32\u0d4d\u0d32\u0d3e\u0d24\u0d4d\u0d24 \u0d38\u0d02\u0d2d\u0d3e\u0d37\u0d23\u0d02",
|
| 149 |
+
"menu": {
|
| 150 |
+
"rename": "\u0d2a\u0d47\u0d30\u0d4d \u0d2e\u0d3e\u0d31\u0d4d\u0d31\u0d41\u0d15",
|
| 151 |
+
"share": "\u0d2a\u0d19\u0d4d\u0d15\u0d3f\u0d1f\u0d41\u0d15",
|
| 152 |
+
"delete": "\u0d21\u0d3f\u0d32\u0d40\u0d31\u0d4d\u0d31\u0d4d"
|
| 153 |
+
},
|
| 154 |
+
"actions": {
|
| 155 |
+
"share": {
|
| 156 |
+
"title": "\u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d3f\u0d32\u0d47\u0d15\u0d4d\u0d15\u0d4d \u0d32\u0d3f\u0d19\u0d4d\u0d15\u0d4d \u0d2a\u0d19\u0d4d\u0d15\u0d3f\u0d1f\u0d41\u0d15",
|
| 157 |
+
"button": "\u0d2a\u0d19\u0d4d\u0d15\u0d3f\u0d1f\u0d41\u0d15",
|
| 158 |
+
"status": {
|
| 159 |
+
"copied": "\u0d32\u0d3f\u0d19\u0d4d\u0d15\u0d4d \u0d2a\u0d15\u0d7c\u0d24\u0d4d\u0d24\u0d3f",
|
| 160 |
+
"created": "\u0d2a\u0d19\u0d4d\u0d15\u0d3f\u0d1f\u0d7d \u0d32\u0d3f\u0d19\u0d4d\u0d15\u0d4d \u0d38\u0d43\u0d37\u0d4d\u0d1f\u0d3f\u0d1a\u0d4d\u0d1a\u0d41!",
|
| 161 |
+
"unshared": "\u0d08 \u0d24\u0d4d\u0d30\u0d46\u0d21\u0d3f\u0d28\u0d3e\u0d2f\u0d3f \u0d2a\u0d19\u0d4d\u0d15\u0d3f\u0d1f\u0d7d \u0d05\u0d2a\u0d4d\u0d30\u0d3e\u0d2a\u0d4d\u0d24\u0d2e\u0d3e\u0d15\u0d4d\u0d15\u0d3f"
|
| 162 |
+
},
|
| 163 |
+
"error": {
|
| 164 |
+
"create": "\u0d2a\u0d19\u0d4d\u0d15\u0d3f\u0d1f\u0d7d \u0d32\u0d3f\u0d19\u0d4d\u0d15\u0d4d \u0d38\u0d43\u0d37\u0d4d\u0d1f\u0d3f\u0d15\u0d4d\u0d15\u0d7d \u0d2a\u0d30\u0d3e\u0d1c\u0d2f\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d4d\u0d1f\u0d41",
|
| 165 |
+
"unshare": "\u0d24\u0d4d\u0d30\u0d46\u0d21\u0d4d \u0d2a\u0d19\u0d4d\u0d15\u0d3f\u0d1f\u0d7d \u0d05\u0d35\u0d38\u0d3e\u0d28\u0d3f\u0d2a\u0d4d\u0d2a\u0d3f\u0d15\u0d4d\u0d15\u0d7d \u0d2a\u0d30\u0d3e\u0d1c\u0d2f\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d4d\u0d1f\u0d41"
|
| 166 |
+
}
|
| 167 |
+
},
|
| 168 |
+
"delete": {
|
| 169 |
+
"title": "\u0d21\u0d3f\u0d32\u0d40\u0d31\u0d4d\u0d31\u0d4d \u0d38\u0d4d\u0d25\u0d3f\u0d30\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 170 |
+
"description": "\u0d07\u0d24\u0d4d \u0d24\u0d4d\u0d30\u0d46\u0d21\u0d41\u0d02 \u0d05\u0d24\u0d3f\u0d28\u0d4d\u0d31\u0d46 \u0d38\u0d28\u0d4d\u0d26\u0d47\u0d36\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d02 \u0d18\u0d1f\u0d15\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d02 \u0d21\u0d3f\u0d32\u0d40\u0d31\u0d4d\u0d31\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d02. \u0d08 \u0d2a\u0d4d\u0d30\u0d35\u0d7c\u0d24\u0d4d\u0d24\u0d3f \u0d2a\u0d34\u0d2f\u0d2a\u0d1f\u0d3f\u0d2f\u0d3e\u0d15\u0d4d\u0d15\u0d3e\u0d7b \u0d15\u0d34\u0d3f\u0d2f\u0d3f\u0d32\u0d4d\u0d32",
|
| 171 |
+
"success": "\u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d \u0d21\u0d3f\u0d32\u0d40\u0d31\u0d4d\u0d31\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d24\u0d41",
|
| 172 |
+
"inProgress": "\u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d \u0d21\u0d3f\u0d32\u0d40\u0d31\u0d4d\u0d31\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d41"
|
| 173 |
+
},
|
| 174 |
+
"rename": {
|
| 175 |
+
"title": "\u0d24\u0d4d\u0d30\u0d46\u0d21\u0d4d \u0d2a\u0d41\u0d28\u0d7c\u0d28\u0d3e\u0d2e\u0d15\u0d30\u0d23\u0d02 \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15",
|
| 176 |
+
"description": "\u0d08 \u0d24\u0d4d\u0d30\u0d46\u0d21\u0d3f\u0d28\u0d4d \u0d12\u0d30\u0d41 \u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d2a\u0d47\u0d30\u0d4d \u0d28\u0d7d\u0d15\u0d41\u0d15",
|
| 177 |
+
"form": {
|
| 178 |
+
"name": {
|
| 179 |
+
"label": "\u0d2a\u0d47\u0d30\u0d4d",
|
| 180 |
+
"placeholder": "\u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d2a\u0d47\u0d30\u0d4d \u0d28\u0d7d\u0d15\u0d41\u0d15"
|
| 181 |
+
}
|
| 182 |
+
},
|
| 183 |
+
"success": "\u0d24\u0d4d\u0d30\u0d46\u0d21\u0d4d \u0d2a\u0d41\u0d28\u0d7c\u0d28\u0d3e\u0d2e\u0d15\u0d30\u0d23\u0d02 \u0d1a\u0d46\u0d2f\u0d4d\u0d24\u0d41!",
|
| 184 |
+
"inProgress": "\u0d24\u0d4d\u0d30\u0d46\u0d21\u0d4d \u0d2a\u0d41\u0d28\u0d7c\u0d28\u0d3e\u0d2e\u0d15\u0d30\u0d23\u0d02 \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d41"
|
| 185 |
+
}
|
| 186 |
+
}
|
| 187 |
+
}
|
| 188 |
+
},
|
| 189 |
+
"navigation": {
|
| 190 |
+
"header": {
|
| 191 |
+
"chat": "\u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d",
|
| 192 |
+
"readme": "\u0d35\u0d3e\u0d2f\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 193 |
+
"theme": {
|
| 194 |
+
"light": "Light Theme",
|
| 195 |
+
"dark": "Dark Theme",
|
| 196 |
+
"system": "Follow System"
|
| 197 |
+
}
|
| 198 |
+
},
|
| 199 |
+
"newChat": {
|
| 200 |
+
"button": "\u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d",
|
| 201 |
+
"dialog": {
|
| 202 |
+
"title": "\u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d \u0d38\u0d43\u0d37\u0d4d\u0d1f\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 203 |
+
"description": "\u0d07\u0d24\u0d4d \u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d28\u0d3f\u0d32\u0d35\u0d3f\u0d32\u0d46 \u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d \u0d39\u0d3f\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d31\u0d3f \u0d2e\u0d3e\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d41\u0d02. \u0d24\u0d41\u0d1f\u0d30\u0d3e\u0d7b \u0d24\u0d3e\u0d7d\u0d2a\u0d4d\u0d2a\u0d30\u0d4d\u0d2f\u0d2e\u0d41\u0d23\u0d4d\u0d1f\u0d4b?",
|
| 204 |
+
"tooltip": "\u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d"
|
| 205 |
+
}
|
| 206 |
+
},
|
| 207 |
+
"user": {
|
| 208 |
+
"menu": {
|
| 209 |
+
"settings": "\u0d15\u0d4d\u0d30\u0d2e\u0d40\u0d15\u0d30\u0d23\u0d19\u0d4d\u0d19\u0d7e",
|
| 210 |
+
"settingsKey": "S",
|
| 211 |
+
"apiKeys": "API \u0d15\u0d40\u0d15\u0d7e",
|
| 212 |
+
"logout": "\u0d32\u0d4b\u0d17\u0d4d\u0d14\u0d1f\u0d4d\u0d1f\u0d4d"
|
| 213 |
+
}
|
| 214 |
+
}
|
| 215 |
+
},
|
| 216 |
+
"apiKeys": {
|
| 217 |
+
"title": "\u0d06\u0d35\u0d36\u0d4d\u0d2f\u0d2e\u0d3e\u0d2f API \u0d15\u0d40\u0d15\u0d7e",
|
| 218 |
+
"description": "\u0d08 \u0d06\u0d2a\u0d4d\u0d2a\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d15\u0d4d\u0d15\u0d3e\u0d7b, \u0d24\u0d3e\u0d34\u0d46\u0d2a\u0d4d\u0d2a\u0d31\u0d2f\u0d41\u0d28\u0d4d\u0d28 API \u0d15\u0d40\u0d15\u0d7e \u0d06\u0d35\u0d36\u0d4d\u0d2f\u0d2e\u0d3e\u0d23\u0d4d. \u0d15\u0d40\u0d15\u0d7e \u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d09\u0d2a\u0d15\u0d30\u0d23\u0d24\u0d4d\u0d24\u0d3f\u0d28\u0d4d\u0d31\u0d46 \u0d32\u0d4b\u0d15\u0d4d\u0d15\u0d7d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4b\u0d31\u0d47\u0d1c\u0d3f\u0d7d \u0d38\u0d02\u0d2d\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d41\u0d28\u0d4d\u0d28\u0d41.",
|
| 219 |
+
"success": {
|
| 220 |
+
"saved": "\u0d35\u0d3f\u0d1c\u0d2f\u0d15\u0d30\u0d2e\u0d3e\u0d2f\u0d3f \u0d38\u0d02\u0d30\u0d15\u0d4d\u0d37\u0d3f\u0d1a\u0d4d\u0d1a\u0d41"
|
| 221 |
+
}
|
| 222 |
+
},
|
| 223 |
+
"alerts": {
|
| 224 |
+
"info": "Info",
|
| 225 |
+
"note": "Note",
|
| 226 |
+
"tip": "Tip",
|
| 227 |
+
"important": "Important",
|
| 228 |
+
"warning": "Warning",
|
| 229 |
+
"caution": "Caution",
|
| 230 |
+
"debug": "Debug",
|
| 231 |
+
"example": "Example",
|
| 232 |
+
"success": "Success",
|
| 233 |
+
"help": "Help",
|
| 234 |
+
"idea": "Idea",
|
| 235 |
+
"pending": "Pending",
|
| 236 |
+
"security": "Security",
|
| 237 |
+
"beta": "Beta",
|
| 238 |
+
"best-practice": "Best Practice"
|
| 239 |
+
},
|
| 240 |
+
"components": {
|
| 241 |
+
"MultiSelectInput": {
|
| 242 |
+
"placeholder": "\u0d1a\u0d42\u0d23\u0d4d\u0d1f\u0d3f\u0d15\u0d4d\u0d15\u0d3e\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15..."
|
| 243 |
+
}
|
| 244 |
+
}
|
| 245 |
+
}
|
.chainlit/translations/mr.json
ADDED
|
@@ -0,0 +1,245 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "\u0930\u0926\u094d\u0926 \u0915\u0930\u093e",
|
| 5 |
+
"confirm": "\u092a\u0941\u0937\u094d\u091f\u0940 \u0915\u0930\u093e",
|
| 6 |
+
"continue": "\u092a\u0941\u0922\u0947 \u091c\u093e",
|
| 7 |
+
"goBack": "\u092e\u093e\u0917\u0947 \u091c\u093e",
|
| 8 |
+
"reset": "\u0930\u0940\u0938\u0947\u091f \u0915\u0930\u093e",
|
| 9 |
+
"submit": "\u0938\u092c\u092e\u093f\u091f \u0915\u0930\u093e"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "\u0932\u094b\u0921 \u0915\u0930\u0924 \u0906\u0939\u0947...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "\u090f\u0915 \u0924\u094d\u0930\u0941\u091f\u0940 \u0906\u0932\u0940",
|
| 15 |
+
"serverConnection": "\u0938\u0930\u094d\u0935\u094d\u0939\u0930\u0936\u0940 \u0915\u0928\u0947\u0915\u094d\u091f \u0939\u094b\u090a \u0936\u0915\u0932\u0947 \u0928\u093e\u0939\u0940"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "\u0905\u0945\u092a \u0935\u093e\u092a\u0930\u0923\u094d\u092f\u093e\u0938\u093e\u0920\u0940 \u0932\u0949\u0917\u093f\u0928 \u0915\u0930\u093e",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "\u0908\u092e\u0947\u0932 \u092a\u0924\u094d\u0924\u093e",
|
| 25 |
+
"required": "\u0908\u092e\u0947\u0932 \u0906\u0935\u0936\u094d\u092f\u0915 \u0906\u0939\u0947",
|
| 26 |
+
"placeholder": "me@example.com"
|
| 27 |
+
},
|
| 28 |
+
"password": {
|
| 29 |
+
"label": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921",
|
| 30 |
+
"required": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u0906\u0935\u0936\u094d\u092f\u0915 \u0906\u0939\u0947"
|
| 31 |
+
},
|
| 32 |
+
"actions": {
|
| 33 |
+
"signin": "\u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u093e"
|
| 34 |
+
},
|
| 35 |
+
"alternativeText": {
|
| 36 |
+
"or": "\u0915\u093f\u0902\u0935\u093e"
|
| 37 |
+
}
|
| 38 |
+
},
|
| 39 |
+
"errors": {
|
| 40 |
+
"default": "\u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0942 \u0936\u0915\u0924 \u0928\u093e\u0939\u0940",
|
| 41 |
+
"signin": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0928\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e",
|
| 42 |
+
"oauthSignin": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0928\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e",
|
| 43 |
+
"redirectUriMismatch": "\u0930\u0940\u0921\u093e\u092f\u0930\u0947\u0915\u094d\u091f URI \u0913\u0925 \u0905\u0945\u092a \u0915\u0949\u0928\u094d\u092b\u093f\u0917\u0930\u0947\u0936\u0928\u0936\u0940 \u091c\u0941\u0933\u0924 \u0928\u093e\u0939\u0940",
|
| 44 |
+
"oauthCallback": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0928\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e",
|
| 45 |
+
"oauthCreateAccount": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0928\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e",
|
| 46 |
+
"emailCreateAccount": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0928\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e",
|
| 47 |
+
"callback": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0928\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e",
|
| 48 |
+
"oauthAccountNotLinked": "\u0924\u0941\u092e\u091a\u0940 \u0913\u0933\u0916 \u092a\u091f\u0935\u0923\u094d\u092f\u093e\u0938\u093e\u0920\u0940, \u092e\u0942\u0933 \u0935\u093e\u092a\u0930\u0932\u0947\u0932\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0928\u0947\u091a \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u093e",
|
| 49 |
+
"emailSignin": "\u0908\u092e\u0947\u0932 \u092a\u093e\u0920\u0935\u0942 \u0936\u0915\u0932\u0947 \u0928\u093e\u0939\u0940",
|
| 50 |
+
"emailVerify": "\u0915\u0943\u092a\u092f\u093e \u0924\u0941\u092e\u091a\u093e \u0908\u092e\u0947\u0932 \u0924\u092a\u093e\u0938\u093e, \u0928\u0935\u0940\u0928 \u0908\u092e\u0947\u0932 \u092a\u093e\u0920\u0935\u0932\u093e \u0917\u0947\u0932\u093e \u0906\u0939\u0947",
|
| 51 |
+
"credentialsSignin": "\u0938\u093e\u0907\u0928 \u0907\u0928 \u0905\u092f\u0936\u0938\u094d\u0935\u0940. \u0924\u0941\u092e\u094d\u0939\u0940 \u0926\u093f\u0932\u0947\u0932\u0940 \u092e\u093e\u0939\u093f\u0924\u0940 \u092f\u094b\u0917\u094d\u092f \u0906\u0939\u0947 \u0915\u093e \u0924\u0947 \u0924\u092a\u093e\u0938\u093e",
|
| 52 |
+
"sessionRequired": "\u092f\u093e \u092a\u0943\u0937\u094d\u0920\u093e\u0935\u0930 \u092a\u094d\u0930\u0935\u0947\u0936 \u0915\u0930\u0923\u094d\u092f\u093e\u0938\u093e\u0920\u0940 \u0915\u0943\u092a\u092f\u093e \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u093e"
|
| 53 |
+
}
|
| 54 |
+
},
|
| 55 |
+
"provider": {
|
| 56 |
+
"continue": "{{provider}} \u0938\u0939 \u092a\u0941\u0922\u0947 \u091c\u093e"
|
| 57 |
+
}
|
| 58 |
+
},
|
| 59 |
+
"chat": {
|
| 60 |
+
"input": {
|
| 61 |
+
"placeholder": "\u0924\u0941\u092e\u091a\u093e \u0938\u0902\u0926\u0947\u0936 \u092f\u0947\u0925\u0947 \u091f\u093e\u0907\u092a \u0915\u0930\u093e...",
|
| 62 |
+
"actions": {
|
| 63 |
+
"send": "\u0938\u0902\u0926\u0947\u0936 \u092a\u093e\u0920\u0935\u093e",
|
| 64 |
+
"stop": "\u0915\u093e\u0930\u094d\u092f \u0925\u093e\u0902\u092c\u0935\u093e",
|
| 65 |
+
"attachFiles": "\u092b\u093e\u0907\u0932\u094d\u0938 \u091c\u094b\u0921\u093e"
|
| 66 |
+
}
|
| 67 |
+
},
|
| 68 |
+
"speech": {
|
| 69 |
+
"start": "\u0930\u0947\u0915\u0949\u0930\u094d\u0921\u093f\u0902\u0917 \u0938\u0941\u0930\u0942 \u0915\u0930\u093e",
|
| 70 |
+
"stop": "\u0930\u0947\u0915\u0949\u0930\u094d\u0921\u093f\u0902\u0917 \u0925\u093e\u0902\u092c\u0935\u093e",
|
| 71 |
+
"connecting": "\u0915\u0928\u0947\u0915\u094d\u091f \u0915\u0930\u0924 \u0906\u0939\u0947"
|
| 72 |
+
},
|
| 73 |
+
"commands": {
|
| 74 |
+
"button": "\u0938\u093e\u0927\u0928\u0947",
|
| 75 |
+
"changeTool": "\u0938\u093e\u0927\u0928 \u092c\u0926\u0932\u093e",
|
| 76 |
+
"availableTools": "\u0909\u092a\u0932\u092c\u094d\u0927 \u0938\u093e\u0927\u0928\u0947"
|
| 77 |
+
},
|
| 78 |
+
"fileUpload": {
|
| 79 |
+
"dragDrop": "\u092b\u093e\u0907\u0932\u094d\u0938 \u092f\u0947\u0925\u0947 \u0921\u094d\u0930\u0945\u0917 \u0906\u0923\u093f \u0921\u094d\u0930\u0949\u092a \u0915\u0930\u093e",
|
| 80 |
+
"browse": "\u092b\u093e\u0907\u0932\u094d\u0938 \u092c\u094d\u0930\u093e\u0909\u091d \u0915\u0930\u093e",
|
| 81 |
+
"sizeLimit": "\u092e\u0930\u094d\u092f\u093e\u0926\u093e:",
|
| 82 |
+
"errors": {
|
| 83 |
+
"failed": "\u0905\u092a\u0932\u094b\u0921 \u0905\u092f\u0936\u0938\u094d\u0935\u0940",
|
| 84 |
+
"cancelled": "\u092f\u093e\u0902\u091a\u0947 \u0905\u092a\u0932\u094b\u0921 \u0930\u0926\u094d\u0926 \u0915\u0947\u0932\u0947"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"cancelUpload": "\u0905\u092a\u0932\u094b\u0921 \u0930\u0926\u094d\u0926 \u0915\u0930\u093e",
|
| 88 |
+
"removeAttachment": "\u0905\u091f\u0945\u091a\u092e\u0947\u0902\u091f \u0915\u093e\u0922\u093e"
|
| 89 |
+
}
|
| 90 |
+
},
|
| 91 |
+
"messages": {
|
| 92 |
+
"status": {
|
| 93 |
+
"using": "\u0935\u093e\u092a\u0930\u0924 \u0906\u0939\u0947",
|
| 94 |
+
"used": "\u0935\u093e\u092a\u0930\u0932\u0947"
|
| 95 |
+
},
|
| 96 |
+
"actions": {
|
| 97 |
+
"copy": {
|
| 98 |
+
"button": "\u0915\u094d\u0932\u093f\u092a\u092c\u094b\u0930\u094d\u0921\u0935\u0930 \u0915\u0949\u092a\u0940 \u0915\u0930\u093e",
|
| 99 |
+
"success": "\u0915\u0949\u092a\u0940 \u0915\u0947\u0932\u0947!"
|
| 100 |
+
}
|
| 101 |
+
},
|
| 102 |
+
"feedback": {
|
| 103 |
+
"positive": "\u0909\u092a\u092f\u0941\u0915\u094d\u0924",
|
| 104 |
+
"negative": "\u0909\u092a\u092f\u0941\u0915\u094d\u0924 \u0928\u093e\u0939\u0940",
|
| 105 |
+
"edit": "\u092b\u0940\u0921\u092c\u0945\u0915 \u0938\u0902\u092a\u093e\u0926\u093f\u0924 \u0915\u0930\u093e",
|
| 106 |
+
"dialog": {
|
| 107 |
+
"title": "\u091f\u093f\u092a\u094d\u092a\u0923\u0940 \u091c\u094b\u0921\u093e",
|
| 108 |
+
"submit": "\u092b\u0940\u0921\u092c\u0945\u0915 \u0938\u092c\u092e\u093f\u091f \u0915\u0930\u093e",
|
| 109 |
+
"yourFeedback": "\u0924\u0941\u092e\u091a\u0940 \u092a\u094d\u0930\u0924\u093f\u0915\u094d\u0930\u093f\u092f\u093e..."
|
| 110 |
+
},
|
| 111 |
+
"status": {
|
| 112 |
+
"updating": "\u0905\u092a\u0921\u0947\u091f \u0915\u0930\u0924 \u0906\u0939\u0947",
|
| 113 |
+
"updated": "\u092b\u0940\u0921\u092c\u0945\u0915 \u0905\u092a\u0921\u0947\u091f \u0915\u0947\u0932\u0947"
|
| 114 |
+
}
|
| 115 |
+
}
|
| 116 |
+
},
|
| 117 |
+
"history": {
|
| 118 |
+
"title": "\u0936\u0947\u0935\u091f\u091a\u0947 \u0907\u0928\u092a\u0941\u091f",
|
| 119 |
+
"empty": "\u0930\u093f\u0915\u093e\u092e\u0947 \u0906\u0939\u0947...",
|
| 120 |
+
"show": "\u0907\u0924\u093f\u0939\u093e\u0938 \u0926\u093e\u0916\u0935\u093e"
|
| 121 |
+
},
|
| 122 |
+
"settings": {
|
| 123 |
+
"title": "\u0938\u0947\u091f\u093f\u0902\u0917\u094d\u091c \u092a\u0945\u0928\u0932",
|
| 124 |
+
"customize": "\u092f\u093e \u0935\u0947\u0933\u0940 \u0924\u0941\u092e\u091a\u094d\u092f\u093e \u091a\u0945\u091f \u0938\u0947\u091f\u093f\u0902\u0917\u094d\u091c \u0915\u0938\u094d\u091f\u092e\u093e\u0907\u091d \u0915\u0930\u093e"
|
| 125 |
+
},
|
| 126 |
+
"watermark": "LLM \u091a\u0941\u0915\u093e \u0915\u0930\u0942 \u0936\u0915\u0924\u093e\u0924. \u092e\u0939\u0924\u094d\u0924\u094d\u0935\u093e\u091a\u0940 \u092e\u093e\u0939\u093f\u0924\u0940 \u0924\u092a\u093e\u0938\u0923\u094d\u092f\u093e\u091a\u093e \u0935\u093f\u091a\u093e\u0930 \u0915\u0930\u093e."
|
| 127 |
+
},
|
| 128 |
+
"threadHistory": {
|
| 129 |
+
"sidebar": {
|
| 130 |
+
"title": "\u092e\u093e\u0917\u0940\u0932 \u091a\u0945\u091f\u094d\u0938",
|
| 131 |
+
"filters": {
|
| 132 |
+
"search": "\u0936\u094b\u0927\u093e",
|
| 133 |
+
"placeholder": "Search conversations..."
|
| 134 |
+
},
|
| 135 |
+
"timeframes": {
|
| 136 |
+
"today": "\u0906\u091c",
|
| 137 |
+
"yesterday": "\u0915\u093e\u0932",
|
| 138 |
+
"previous7days": "\u092e\u093e\u0917\u0940\u0932 7 \u0926\u093f\u0935\u0938",
|
| 139 |
+
"previous30days": "\u092e\u093e\u0917\u0940\u0932 30 \u0926\u093f\u0935\u0938"
|
| 140 |
+
},
|
| 141 |
+
"empty": "\u0915\u094b\u0923\u0924\u0947\u0939\u0940 \u0925\u094d\u0930\u0947\u0921 \u0938\u093e\u092a\u0921\u0932\u0947 \u0928\u093e\u0939\u0940\u0924",
|
| 142 |
+
"actions": {
|
| 143 |
+
"close": "\u0938\u093e\u0907\u0921\u092c\u093e\u0930 \u092c\u0902\u0926 \u0915\u0930\u093e",
|
| 144 |
+
"open": "\u0938\u093e\u0907\u0921\u092c\u093e\u0930 \u0909\u0918\u0921\u093e"
|
| 145 |
+
}
|
| 146 |
+
},
|
| 147 |
+
"thread": {
|
| 148 |
+
"untitled": "\u0936\u0940\u0930\u094d\u0937\u0915\u0935\u093f\u0930\u0939\u093f\u0924 \u0938\u0902\u092d\u093e\u0937\u0923",
|
| 149 |
+
"menu": {
|
| 150 |
+
"rename": "\u0928\u093e\u0935 \u092c\u0926\u0932\u093e",
|
| 151 |
+
"share": "\u0936\u0947\u0905\u0930 \u0915\u0930\u093e",
|
| 152 |
+
"delete": "\u0939\u091f\u0935\u093e"
|
| 153 |
+
},
|
| 154 |
+
"actions": {
|
| 155 |
+
"share": {
|
| 156 |
+
"title": "\u091a\u0945\u091f\u091a\u093e \u0926\u0941\u0935\u093e \u0936\u0947\u0905\u0930 \u0915\u0930\u093e",
|
| 157 |
+
"button": "\u0936\u0947\u0905\u0930 \u0915\u0930\u093e",
|
| 158 |
+
"status": {
|
| 159 |
+
"copied": "\u0926\u0941\u0935\u093e \u0915\u0949\u092a\u0940 \u0915\u0947\u0932\u093e",
|
| 160 |
+
"created": "\u0936\u0947\u0905\u0930 \u0926\u0941\u0935\u093e \u0924\u092f\u093e\u0930 \u091d\u093e\u0932\u093e!",
|
| 161 |
+
"unshared": "\u092f\u093e \u0925\u094d\u0930\u0947\u0921\u0938\u093e\u0920\u0940 \u0936\u0947\u0905\u0930\u093f\u0902\u0917 \u0905\u0915\u094d\u0937\u092e \u0915\u0947\u0932\u0947"
|
| 162 |
+
},
|
| 163 |
+
"error": {
|
| 164 |
+
"create": "\u0936\u0947\u0905\u0930 \u0926\u0941\u0935\u093e \u0924\u092f\u093e\u0930 \u0915\u0930\u0923\u094d\u092f\u093e\u0924 \u0905\u092a\u092f\u0936",
|
| 165 |
+
"unshare": "\u0925\u094d\u0930\u0947\u0921\u091a\u0947 \u0936\u0947\u0905\u0930\u093f\u0902\u0917 \u0925\u093e\u0902\u092c\u0935\u0923\u094d\u092f\u093e\u0924 \u0905\u092a\u092f\u0936"
|
| 166 |
+
}
|
| 167 |
+
},
|
| 168 |
+
"delete": {
|
| 169 |
+
"title": "\u0939\u091f\u0935\u093f\u0923\u094d\u092f\u093e\u091a\u0940 \u092a\u0941\u0937\u094d\u091f\u0940 \u0915\u0930\u093e",
|
| 170 |
+
"description": "\u0939\u0947 \u0925\u094d\u0930\u0947\u0921 \u0906\u0923\u093f \u0924\u094d\u092f\u093e\u091a\u0947 \u0938\u0902\u0926\u0947\u0936 \u0935 \u0918\u091f\u0915 \u0939\u091f\u0935\u0947\u0932. \u0939\u0940 \u0915\u094d\u0930\u093f\u092f\u093e \u092a\u0942\u0930\u094d\u0935\u0935\u0924 \u0915\u0947\u0932\u0940 \u091c\u093e\u090a \u0936\u0915\u0924 \u0928\u093e\u0939\u0940",
|
| 171 |
+
"success": "\u091a\u0945\u091f \u0939\u091f\u0935\u0932\u093e",
|
| 172 |
+
"inProgress": "\u091a\u0945\u091f \u0939\u091f\u0935\u0924 \u0906\u0939\u0947"
|
| 173 |
+
},
|
| 174 |
+
"rename": {
|
| 175 |
+
"title": "\u0925\u094d\u0930\u0947\u0921\u091a\u0947 \u0928\u093e\u0935 \u092c\u0926\u0932\u093e",
|
| 176 |
+
"description": "\u092f\u093e \u0925\u094d\u0930\u0947\u0921\u0938\u093e\u0920\u0940 \u0928\u0935\u0940\u0928 \u0928\u093e\u0935 \u092a\u094d\u0930\u0935\u093f\u0937\u094d\u091f \u0915\u0930\u093e",
|
| 177 |
+
"form": {
|
| 178 |
+
"name": {
|
| 179 |
+
"label": "\u0928\u093e\u0935",
|
| 180 |
+
"placeholder": "\u0928\u0935\u0940\u0928 \u0928\u093e\u0935 \u092a\u094d\u0930\u0935\u093f\u0937\u094d\u091f \u0915\u0930\u093e"
|
| 181 |
+
}
|
| 182 |
+
},
|
| 183 |
+
"success": "\u0925\u094d\u0930\u0947\u0921\u091a\u0947 \u0928\u093e\u0935 \u092c\u0926\u0932\u0932\u0947!",
|
| 184 |
+
"inProgress": "\u0925\u094d\u0930\u0947\u0921\u091a\u0947 \u0928\u093e\u0935 \u092c\u0926\u0932\u0924 \u0906\u0939\u0947"
|
| 185 |
+
}
|
| 186 |
+
}
|
| 187 |
+
}
|
| 188 |
+
},
|
| 189 |
+
"navigation": {
|
| 190 |
+
"header": {
|
| 191 |
+
"chat": "\u091a\u0945\u091f",
|
| 192 |
+
"readme": "\u0935\u093e\u091a\u093e",
|
| 193 |
+
"theme": {
|
| 194 |
+
"light": "Light Theme",
|
| 195 |
+
"dark": "Dark Theme",
|
| 196 |
+
"system": "Follow System"
|
| 197 |
+
}
|
| 198 |
+
},
|
| 199 |
+
"newChat": {
|
| 200 |
+
"button": "\u0928\u0935\u0940\u0928 \u091a\u0945\u091f",
|
| 201 |
+
"dialog": {
|
| 202 |
+
"title": "\u0928\u0935\u0940\u0928 \u091a\u0945\u091f \u0924\u092f\u093e\u0930 \u0915\u0930\u093e",
|
| 203 |
+
"description": "\u0939\u0947 \u0924\u0941\u092e\u091a\u093e \u0938\u0927\u094d\u092f\u093e\u091a\u093e \u091a\u0945\u091f \u0907\u0924\u093f\u0939\u093e\u0938 \u0938\u093e\u092b \u0915\u0930\u0947\u0932. \u0924\u0941\u092e\u094d\u0939\u093e\u0932\u093e \u0916\u093e\u0924\u094d\u0930\u0940 \u0906\u0939\u0947 \u0915\u0940 \u0924\u0941\u092e\u094d\u0939\u0940 \u092a\u0941\u0922\u0947 \u091c\u093e\u090a \u0907\u091a\u094d\u091b\u093f\u0924\u093e?",
|
| 204 |
+
"tooltip": "\u0928\u0935\u0940\u0928 \u091a\u0945\u091f"
|
| 205 |
+
}
|
| 206 |
+
},
|
| 207 |
+
"user": {
|
| 208 |
+
"menu": {
|
| 209 |
+
"settings": "\u0938\u0947\u091f\u093f\u0902\u0917\u094d\u091c",
|
| 210 |
+
"settingsKey": "S",
|
| 211 |
+
"apiKeys": "API \u0915\u0940\u091c",
|
| 212 |
+
"logout": "\u0932\u0949\u0917\u0906\u0909\u091f"
|
| 213 |
+
}
|
| 214 |
+
}
|
| 215 |
+
},
|
| 216 |
+
"apiKeys": {
|
| 217 |
+
"title": "\u0906\u0935\u0936\u094d\u092f\u0915 API \u0915\u0940\u091c",
|
| 218 |
+
"description": "\u0939\u0947 \u0905\u0945\u092a \u0935\u093e\u092a\u0930\u0923\u094d\u092f\u093e\u0938\u093e\u0920\u0940 \u0916\u093e\u0932\u0940\u0932 API \u0915\u0940\u091c \u0906\u0935\u0936\u094d\u092f\u0915 \u0906\u0939\u0947\u0924. \u0915\u0940\u091c \u0924\u0941\u092e\u091a\u094d\u092f\u093e \u0921\u093f\u0935\u094d\u0939\u093e\u0907\u0938\u091a\u094d\u092f\u093e \u0932\u094b\u0915\u0932 \u0938\u094d\u091f\u094b\u0930\u0947\u091c\u092e\u0927\u094d\u092f\u0947 \u0938\u093e\u0920\u0935\u0932\u094d\u092f\u093e \u091c\u093e\u0924\u093e\u0924.",
|
| 219 |
+
"success": {
|
| 220 |
+
"saved": "\u092f\u0936\u0938\u094d\u0935\u0940\u0930\u093f\u0924\u094d\u092f\u093e \u091c\u0924\u0928 \u0915\u0947\u0932\u0947"
|
| 221 |
+
}
|
| 222 |
+
},
|
| 223 |
+
"alerts": {
|
| 224 |
+
"info": "Info",
|
| 225 |
+
"note": "Note",
|
| 226 |
+
"tip": "Tip",
|
| 227 |
+
"important": "Important",
|
| 228 |
+
"warning": "Warning",
|
| 229 |
+
"caution": "Caution",
|
| 230 |
+
"debug": "Debug",
|
| 231 |
+
"example": "Example",
|
| 232 |
+
"success": "Success",
|
| 233 |
+
"help": "Help",
|
| 234 |
+
"idea": "Idea",
|
| 235 |
+
"pending": "Pending",
|
| 236 |
+
"security": "Security",
|
| 237 |
+
"beta": "Beta",
|
| 238 |
+
"best-practice": "Best Practice"
|
| 239 |
+
},
|
| 240 |
+
"components": {
|
| 241 |
+
"MultiSelectInput": {
|
| 242 |
+
"placeholder": "\u091a\u0941\u0928\u0947\u0902..."
|
| 243 |
+
}
|
| 244 |
+
}
|
| 245 |
+
}
|
.chainlit/translations/nl.json
ADDED
|
@@ -0,0 +1,245 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "Annuleren",
|
| 5 |
+
"confirm": "Bevestigen",
|
| 6 |
+
"continue": "Doorgaan",
|
| 7 |
+
"goBack": "Terug",
|
| 8 |
+
"reset": "Herstellen",
|
| 9 |
+
"submit": "Versturen"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "Laden...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "Er is een fout opgetreden",
|
| 15 |
+
"serverConnection": "Kon geen verbinding maken met de server"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "Inloggen om toegang te krijgen tot de app",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "E-mailadres",
|
| 25 |
+
"required": "e-mail is een verplicht veld",
|
| 26 |
+
"placeholder": "me@example.com"
|
| 27 |
+
},
|
| 28 |
+
"password": {
|
| 29 |
+
"label": "Wachtwoord",
|
| 30 |
+
"required": "wachtwoord is een verplicht veld"
|
| 31 |
+
},
|
| 32 |
+
"actions": {
|
| 33 |
+
"signin": "Inloggen"
|
| 34 |
+
},
|
| 35 |
+
"alternativeText": {
|
| 36 |
+
"or": "OF"
|
| 37 |
+
}
|
| 38 |
+
},
|
| 39 |
+
"errors": {
|
| 40 |
+
"default": "Kan niet inloggen",
|
| 41 |
+
"signin": "Probeer in te loggen met een ander account",
|
| 42 |
+
"oauthSignin": "Probeer in te loggen met een ander account",
|
| 43 |
+
"redirectUriMismatch": "De redirect URI komt niet overeen met de oauth app configuratie",
|
| 44 |
+
"oauthCallback": "Probeer in te loggen met een ander account",
|
| 45 |
+
"oauthCreateAccount": "Probeer in te loggen met een ander account",
|
| 46 |
+
"emailCreateAccount": "Probeer in te loggen met een ander account",
|
| 47 |
+
"callback": "Probeer in te loggen met een ander account",
|
| 48 |
+
"oauthAccountNotLinked": "Om je identiteit te bevestigen, log in met hetzelfde account dat je oorspronkelijk hebt gebruikt",
|
| 49 |
+
"emailSignin": "De e-mail kon niet worden verzonden",
|
| 50 |
+
"emailVerify": "Verifieer je e-mail, er is een nieuwe e-mail verzonden",
|
| 51 |
+
"credentialsSignin": "Inloggen mislukt. Controleer of de ingevoerde gegevens correct zijn",
|
| 52 |
+
"sessionRequired": "Log in om toegang te krijgen tot deze pagina"
|
| 53 |
+
}
|
| 54 |
+
},
|
| 55 |
+
"provider": {
|
| 56 |
+
"continue": "Doorgaan met {{provider}}"
|
| 57 |
+
}
|
| 58 |
+
},
|
| 59 |
+
"chat": {
|
| 60 |
+
"input": {
|
| 61 |
+
"placeholder": "Typ hier je bericht...",
|
| 62 |
+
"actions": {
|
| 63 |
+
"send": "Bericht versturen",
|
| 64 |
+
"stop": "Taak stoppen",
|
| 65 |
+
"attachFiles": "Bestanden bijvoegen"
|
| 66 |
+
}
|
| 67 |
+
},
|
| 68 |
+
"speech": {
|
| 69 |
+
"start": "Start opname",
|
| 70 |
+
"stop": "Stop opname",
|
| 71 |
+
"connecting": "Verbinden"
|
| 72 |
+
},
|
| 73 |
+
"fileUpload": {
|
| 74 |
+
"dragDrop": "Sleep bestanden hierheen",
|
| 75 |
+
"browse": "Bestanden zoeken",
|
| 76 |
+
"sizeLimit": "Limiet:",
|
| 77 |
+
"errors": {
|
| 78 |
+
"failed": "Uploaden mislukt",
|
| 79 |
+
"cancelled": "Upload geannuleerd van"
|
| 80 |
+
},
|
| 81 |
+
"actions": {
|
| 82 |
+
"cancelUpload": "Annuleer upload",
|
| 83 |
+
"removeAttachment": "Verwijder bijlage"
|
| 84 |
+
}
|
| 85 |
+
},
|
| 86 |
+
"commands": {
|
| 87 |
+
"button": "Hulpmiddelen",
|
| 88 |
+
"changeTool": "Wijzig hulpmiddel",
|
| 89 |
+
"availableTools": "Beschikbare hulpmiddelen"
|
| 90 |
+
},
|
| 91 |
+
"messages": {
|
| 92 |
+
"status": {
|
| 93 |
+
"using": "In gebruik",
|
| 94 |
+
"used": "Gebruikt"
|
| 95 |
+
},
|
| 96 |
+
"actions": {
|
| 97 |
+
"copy": {
|
| 98 |
+
"button": "Kopi\u00ebren naar klembord",
|
| 99 |
+
"success": "Gekopieerd!"
|
| 100 |
+
}
|
| 101 |
+
},
|
| 102 |
+
"feedback": {
|
| 103 |
+
"positive": "Nuttig",
|
| 104 |
+
"negative": "Niet nuttig",
|
| 105 |
+
"edit": "Feedback bewerken",
|
| 106 |
+
"dialog": {
|
| 107 |
+
"title": "Voeg een opmerking toe",
|
| 108 |
+
"submit": "Feedback versturen",
|
| 109 |
+
"yourFeedback": "Je feedback..."
|
| 110 |
+
},
|
| 111 |
+
"status": {
|
| 112 |
+
"updating": "Bijwerken",
|
| 113 |
+
"updated": "Feedback bijgewerkt"
|
| 114 |
+
}
|
| 115 |
+
}
|
| 116 |
+
},
|
| 117 |
+
"history": {
|
| 118 |
+
"title": "Laatste invoer",
|
| 119 |
+
"empty": "Zo leeg...",
|
| 120 |
+
"show": "Toon geschiedenis"
|
| 121 |
+
},
|
| 122 |
+
"settings": {
|
| 123 |
+
"title": "Instellingenpaneel",
|
| 124 |
+
"customize": "Pas hier je chatinstellingen aan"
|
| 125 |
+
},
|
| 126 |
+
"watermark": "LLM's kunnen fouten maken. Overweeg het controleren van belangrijke informatie."
|
| 127 |
+
},
|
| 128 |
+
"threadHistory": {
|
| 129 |
+
"sidebar": {
|
| 130 |
+
"title": "Eerdere chats",
|
| 131 |
+
"filters": {
|
| 132 |
+
"search": "Zoeken",
|
| 133 |
+
"placeholder": "Search conversations..."
|
| 134 |
+
},
|
| 135 |
+
"timeframes": {
|
| 136 |
+
"today": "Vandaag",
|
| 137 |
+
"yesterday": "Gisteren",
|
| 138 |
+
"previous7days": "Afgelopen 7 dagen",
|
| 139 |
+
"previous30days": "Afgelopen 30 dagen"
|
| 140 |
+
},
|
| 141 |
+
"empty": "Geen gesprekken gevonden",
|
| 142 |
+
"actions": {
|
| 143 |
+
"close": "Zijbalk sluiten",
|
| 144 |
+
"open": "Zijbalk openen"
|
| 145 |
+
}
|
| 146 |
+
},
|
| 147 |
+
"thread": {
|
| 148 |
+
"untitled": "Naamloos gesprek",
|
| 149 |
+
"menu": {
|
| 150 |
+
"rename": "Hernoemen",
|
| 151 |
+
"share": "Delen",
|
| 152 |
+
"delete": "Verwijderen"
|
| 153 |
+
},
|
| 154 |
+
"actions": {
|
| 155 |
+
"share": {
|
| 156 |
+
"title": "Deel link naar chat",
|
| 157 |
+
"button": "Delen",
|
| 158 |
+
"status": {
|
| 159 |
+
"copied": "Link gekopieerd",
|
| 160 |
+
"created": "Deellink gemaakt!",
|
| 161 |
+
"unshared": "Delen uitgeschakeld voor dit gesprek"
|
| 162 |
+
},
|
| 163 |
+
"error": {
|
| 164 |
+
"create": "Aanmaken van deellink mislukt",
|
| 165 |
+
"unshare": "Delen van gesprek stoppen mislukt"
|
| 166 |
+
}
|
| 167 |
+
},
|
| 168 |
+
"delete": {
|
| 169 |
+
"title": "Verwijdering bevestigen",
|
| 170 |
+
"description": "Dit zal het gesprek en bijbehorende berichten en elementen verwijderen. Deze actie kan niet ongedaan worden gemaakt",
|
| 171 |
+
"success": "Chat verwijderd",
|
| 172 |
+
"inProgress": "Chat verwijderen"
|
| 173 |
+
},
|
| 174 |
+
"rename": {
|
| 175 |
+
"title": "Gesprek hernoemen",
|
| 176 |
+
"description": "Voer een nieuwe naam in voor dit gesprek",
|
| 177 |
+
"form": {
|
| 178 |
+
"name": {
|
| 179 |
+
"label": "Naam",
|
| 180 |
+
"placeholder": "Voer nieuwe naam in"
|
| 181 |
+
}
|
| 182 |
+
},
|
| 183 |
+
"success": "Gesprek hernoemd!",
|
| 184 |
+
"inProgress": "Gesprek hernoemen"
|
| 185 |
+
}
|
| 186 |
+
}
|
| 187 |
+
}
|
| 188 |
+
},
|
| 189 |
+
"navigation": {
|
| 190 |
+
"header": {
|
| 191 |
+
"chat": "Chat",
|
| 192 |
+
"readme": "Leesmij",
|
| 193 |
+
"theme": {
|
| 194 |
+
"light": "Light Theme",
|
| 195 |
+
"dark": "Dark Theme",
|
| 196 |
+
"system": "Follow System"
|
| 197 |
+
}
|
| 198 |
+
},
|
| 199 |
+
"newChat": {
|
| 200 |
+
"button": "Nieuwe chat",
|
| 201 |
+
"dialog": {
|
| 202 |
+
"title": "Nieuwe chat aanmaken",
|
| 203 |
+
"description": "Dit zal je huidige chatgeschiedenis wissen. Weet je zeker dat je door wilt gaan?",
|
| 204 |
+
"tooltip": "Nieuwe chat"
|
| 205 |
+
}
|
| 206 |
+
},
|
| 207 |
+
"user": {
|
| 208 |
+
"menu": {
|
| 209 |
+
"settings": "Instellingen",
|
| 210 |
+
"settingsKey": "I",
|
| 211 |
+
"apiKeys": "API-sleutels",
|
| 212 |
+
"logout": "Uitloggen"
|
| 213 |
+
}
|
| 214 |
+
}
|
| 215 |
+
},
|
| 216 |
+
"apiKeys": {
|
| 217 |
+
"title": "Vereiste API-sleutels",
|
| 218 |
+
"description": "Om deze app te gebruiken zijn de volgende API-sleutels vereist. De sleutels worden opgeslagen in de lokale opslag van je apparaat.",
|
| 219 |
+
"success": {
|
| 220 |
+
"saved": "Succesvol opgeslagen"
|
| 221 |
+
}
|
| 222 |
+
},
|
| 223 |
+
"alerts": {
|
| 224 |
+
"info": "Info",
|
| 225 |
+
"note": "Note",
|
| 226 |
+
"tip": "Tip",
|
| 227 |
+
"important": "Important",
|
| 228 |
+
"warning": "Warning",
|
| 229 |
+
"caution": "Caution",
|
| 230 |
+
"debug": "Debug",
|
| 231 |
+
"example": "Example",
|
| 232 |
+
"success": "Success",
|
| 233 |
+
"help": "Help",
|
| 234 |
+
"idea": "Idea",
|
| 235 |
+
"pending": "Pending",
|
| 236 |
+
"security": "Security",
|
| 237 |
+
"beta": "Beta",
|
| 238 |
+
"best-practice": "Best Practice"
|
| 239 |
+
},
|
| 240 |
+
"components": {
|
| 241 |
+
"MultiSelectInput": {
|
| 242 |
+
"placeholder": "Selecteer..."
|
| 243 |
+
}
|
| 244 |
+
}
|
| 245 |
+
}
|
.chainlit/translations/ta.json
ADDED
|
@@ -0,0 +1,245 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "\u0bb0\u0ba4\u0bcd\u0ba4\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd",
|
| 5 |
+
"confirm": "\u0b89\u0bb1\u0bc1\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1",
|
| 6 |
+
"continue": "\u0ba4\u0bca\u0b9f\u0bb0\u0bcd\u0b95",
|
| 7 |
+
"goBack": "\u0ba4\u0bbf\u0bb0\u0bc1\u0bae\u0bcd\u0baa\u0bbf\u0b9a\u0bcd \u0b9a\u0bc6\u0bb2\u0bcd",
|
| 8 |
+
"reset": "\u0bae\u0bc0\u0b9f\u0bcd\u0b9f\u0bae\u0bc8",
|
| 9 |
+
"submit": "\u0b9a\u0bae\u0bb0\u0bcd\u0baa\u0bcd\u0baa\u0bbf"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "\u0b8f\u0bb1\u0bcd\u0bb1\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "\u0baa\u0bbf\u0bb4\u0bc8 \u0b8f\u0bb1\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1",
|
| 15 |
+
"serverConnection": "\u0b9a\u0bc7\u0bb5\u0bc8\u0baf\u0b95\u0ba4\u0bcd\u0ba4\u0bc8 \u0b85\u0b9f\u0bc8\u0baf \u0bae\u0bc1\u0b9f\u0bbf\u0baf\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "\u0baa\u0baf\u0ba9\u0bcd\u0baa\u0bbe\u0b9f\u0bcd\u0b9f\u0bc8 \u0b85\u0ba3\u0bc1\u0b95 \u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf\u0bb5\u0bc1\u0bae\u0bcd",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf",
|
| 25 |
+
"required": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0ba4\u0bc7\u0bb5\u0bc8\u0baf\u0bbe\u0ba9 \u0baa\u0bc1\u0bb2\u0bae\u0bcd",
|
| 26 |
+
"placeholder": "me@example.com"
|
| 27 |
+
},
|
| 28 |
+
"password": {
|
| 29 |
+
"label": "\u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd",
|
| 30 |
+
"required": "\u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd \u0ba4\u0bc7\u0bb5\u0bc8\u0baf\u0bbe\u0ba9 \u0baa\u0bc1\u0bb2\u0bae\u0bcd"
|
| 31 |
+
},
|
| 32 |
+
"actions": {
|
| 33 |
+
"signin": "\u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0b95"
|
| 34 |
+
},
|
| 35 |
+
"alternativeText": {
|
| 36 |
+
"or": "\u0b85\u0bb2\u0bcd\u0bb2\u0ba4\u0bc1"
|
| 37 |
+
}
|
| 38 |
+
},
|
| 39 |
+
"errors": {
|
| 40 |
+
"default": "\u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf \u0bae\u0bc1\u0b9f\u0bbf\u0baf\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8",
|
| 41 |
+
"signin": "\u0bb5\u0bc7\u0bb1\u0bc1 \u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bc1\u0b9f\u0ba9\u0bcd \u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf \u0bae\u0bc1\u0baf\u0bb1\u0bcd\u0b9a\u0bbf\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd",
|
| 42 |
+
"oauthSignin": "\u0bb5\u0bc7\u0bb1\u0bc1 \u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bc1\u0b9f\u0ba9\u0bcd \u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf \u0bae\u0bc1\u0baf\u0bb1\u0bcd\u0b9a\u0bbf\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd",
|
| 43 |
+
"redirectUriMismatch": "\u0ba4\u0bbf\u0b9a\u0bc8\u0ba4\u0bbf\u0bb0\u0bc1\u0baa\u0bcd\u0baa\u0bb2\u0bcd URI \u0b93\u0b86\u0ba4\u0bcd \u0baa\u0baf\u0ba9\u0bcd\u0baa\u0bbe\u0b9f\u0bcd\u0b9f\u0bc1 \u0b95\u0b9f\u0bcd\u0b9f\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b9f\u0ba9\u0bcd \u0baa\u0bca\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8",
|
| 44 |
+
"oauthCallback": "\u0bb5\u0bc7\u0bb1\u0bc1 \u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bc1\u0b9f\u0ba9\u0bcd \u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf \u0bae\u0bc1\u0baf\u0bb1\u0bcd\u0b9a\u0bbf\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd",
|
| 45 |
+
"oauthCreateAccount": "\u0bb5\u0bc7\u0bb1\u0bc1 \u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bc1\u0b9f\u0ba9\u0bcd \u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf \u0bae\u0bc1\u0baf\u0bb1\u0bcd\u0b9a\u0bbf\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd",
|
| 46 |
+
"emailCreateAccount": "\u0bb5\u0bc7\u0bb1\u0bc1 \u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bc1\u0b9f\u0ba9\u0bcd \u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf \u0bae\u0bc1\u0baf\u0bb1\u0bcd\u0b9a\u0bbf\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd",
|
| 47 |
+
"callback": "\u0bb5\u0bc7\u0bb1\u0bc1 \u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bc1\u0b9f\u0ba9\u0bcd \u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf \u0bae\u0bc1\u0baf\u0bb1\u0bcd\u0b9a\u0bbf\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd",
|
| 48 |
+
"oauthAccountNotLinked": "\u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b85\u0b9f\u0bc8\u0baf\u0bbe\u0bb3\u0ba4\u0bcd\u0ba4\u0bc8 \u0b89\u0bb1\u0bc1\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4, \u0bae\u0bc1\u0ba4\u0bb2\u0bbf\u0bb2\u0bcd \u0baa\u0baf\u0ba9\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bbf\u0baf \u0b85\u0ba4\u0bc7 \u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bc1\u0b9f\u0ba9\u0bcd \u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf\u0bb5\u0bc1\u0bae\u0bcd",
|
| 49 |
+
"emailSignin": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bc8 \u0b85\u0ba9\u0bc1\u0baa\u0bcd\u0baa \u0bae\u0bc1\u0b9f\u0bbf\u0baf\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8",
|
| 50 |
+
"emailVerify": "\u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bc8 \u0b9a\u0bb0\u0bbf\u0baa\u0bbe\u0bb0\u0bcd\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd, \u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0b85\u0ba9\u0bc1\u0baa\u0bcd\u0baa\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0bc1\u0bb3\u0bcd\u0bb3\u0ba4\u0bc1",
|
| 51 |
+
"credentialsSignin": "\u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0bb5\u0bc1 \u0ba4\u0bcb\u0bb2\u0bcd\u0bb5\u0bbf\u0baf\u0b9f\u0bc8\u0ba8\u0bcd\u0ba4\u0ba4\u0bc1. \u0ba8\u0bc0\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0bb5\u0bb4\u0b99\u0bcd\u0b95\u0bbf\u0baf \u0bb5\u0bbf\u0bb5\u0bb0\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b9a\u0bb0\u0bbf\u0baf\u0bbe\u0ba9\u0bb5\u0bc8 \u0b8e\u0ba9 \u0b9a\u0bb0\u0bbf\u0baa\u0bbe\u0bb0\u0bcd\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd",
|
| 52 |
+
"sessionRequired": "\u0b87\u0ba8\u0bcd\u0ba4\u0baa\u0bcd \u0baa\u0b95\u0bcd\u0b95\u0ba4\u0bcd\u0ba4\u0bc8 \u0b85\u0ba3\u0bc1\u0b95 \u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf\u0bb5\u0bc1\u0bae\u0bcd"
|
| 53 |
+
}
|
| 54 |
+
},
|
| 55 |
+
"provider": {
|
| 56 |
+
"continue": "{{provider}} \u0bae\u0bc2\u0bb2\u0bae\u0bcd \u0ba4\u0bca\u0b9f\u0bb0\u0bb5\u0bc1\u0bae\u0bcd"
|
| 57 |
+
}
|
| 58 |
+
},
|
| 59 |
+
"chat": {
|
| 60 |
+
"input": {
|
| 61 |
+
"placeholder": "\u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b9a\u0bc6\u0baf\u0bcd\u0ba4\u0bbf\u0baf\u0bc8 \u0b87\u0b99\u0bcd\u0b95\u0bc7 \u0ba4\u0b9f\u0bcd\u0b9f\u0b9a\u0bcd\u0b9a\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0baf\u0bb5\u0bc1\u0bae\u0bcd...",
|
| 62 |
+
"actions": {
|
| 63 |
+
"send": "\u0b9a\u0bc6\u0baf\u0bcd\u0ba4\u0bbf \u0b85\u0ba9\u0bc1\u0baa\u0bcd\u0baa\u0bc1",
|
| 64 |
+
"stop": "\u0baa\u0ba3\u0bbf\u0baf\u0bc8 \u0ba8\u0bbf\u0bb1\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1",
|
| 65 |
+
"attachFiles": "\u0b95\u0bcb\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bc8 \u0b87\u0ba3\u0bc8"
|
| 66 |
+
}
|
| 67 |
+
},
|
| 68 |
+
"commands": {
|
| 69 |
+
"button": "\u0b95\u0bb0\u0bc1\u0bb5\u0bbf\u0b95\u0bb3\u0bcd",
|
| 70 |
+
"changeTool": "\u0b95\u0bb0\u0bc1\u0bb5\u0bbf\u0baf\u0bc8 \u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bb5\u0bc1\u0bae\u0bcd",
|
| 71 |
+
"availableTools": "\u0b95\u0bbf\u0b9f\u0bc8\u0b95\u0bcd\u0b95\u0bc1\u0bae\u0bcd \u0b95\u0bb0\u0bc1\u0bb5\u0bbf\u0b95\u0bb3\u0bcd"
|
| 72 |
+
},
|
| 73 |
+
"speech": {
|
| 74 |
+
"start": "\u0baa\u0ba4\u0bbf\u0bb5\u0bc1 \u0ba4\u0bca\u0b9f\u0b99\u0bcd\u0b95\u0bc1",
|
| 75 |
+
"stop": "\u0baa\u0ba4\u0bbf\u0bb5\u0bc8 \u0ba8\u0bbf\u0bb1\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1",
|
| 76 |
+
"connecting": "\u0b87\u0ba3\u0bc8\u0b95\u0bcd\u0b95\u0bbf\u0bb1\u0ba4\u0bc1"
|
| 77 |
+
},
|
| 78 |
+
"fileUpload": {
|
| 79 |
+
"dragDrop": "\u0b95\u0bcb\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bc8 \u0b87\u0b99\u0bcd\u0b95\u0bc7 \u0b87\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1 \u0bb5\u0bbf\u0b9f\u0bb5\u0bc1\u0bae\u0bcd",
|
| 80 |
+
"browse": "\u0b95\u0bcb\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bc8 \u0b89\u0bb2\u0bbe\u0bb5\u0bc1",
|
| 81 |
+
"sizeLimit": "\u0bb5\u0bb0\u0bae\u0bcd\u0baa\u0bc1:",
|
| 82 |
+
"errors": {
|
| 83 |
+
"failed": "\u0baa\u0ba4\u0bbf\u0bb5\u0bc7\u0bb1\u0bcd\u0bb1\u0bae\u0bcd \u0ba4\u0bcb\u0bb2\u0bcd\u0bb5\u0bbf\u0baf\u0b9f\u0bc8\u0ba8\u0bcd\u0ba4\u0ba4\u0bc1",
|
| 84 |
+
"cancelled": "\u0baa\u0ba4\u0bbf\u0bb5\u0bc7\u0bb1\u0bcd\u0bb1\u0bae\u0bcd \u0bb0\u0ba4\u0bcd\u0ba4\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0baf\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"cancelUpload": "\u0bb0\u0ba4\u0bcd\u0ba4\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd",
|
| 88 |
+
"removeAttachment": "\u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc8 \u0b85\u0b95\u0bb1\u0bcd\u0bb1\u0bc1"
|
| 89 |
+
}
|
| 90 |
+
},
|
| 91 |
+
"messages": {
|
| 92 |
+
"status": {
|
| 93 |
+
"using": "\u0baa\u0baf\u0ba9\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1",
|
| 94 |
+
"used": "\u0baa\u0baf\u0ba9\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1"
|
| 95 |
+
},
|
| 96 |
+
"actions": {
|
| 97 |
+
"copy": {
|
| 98 |
+
"button": "\u0b95\u0bbf\u0bb3\u0bbf\u0baa\u0bcd\u0baa\u0bcb\u0bb0\u0bcd\u0b9f\u0bc1\u0b95\u0bcd\u0b95\u0bc1 \u0ba8\u0b95\u0bb2\u0bc6\u0b9f\u0bc1",
|
| 99 |
+
"success": "\u0ba8\u0b95\u0bb2\u0bc6\u0b9f\u0bc1\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1!"
|
| 100 |
+
}
|
| 101 |
+
},
|
| 102 |
+
"feedback": {
|
| 103 |
+
"positive": "\u0baa\u0baf\u0ba9\u0bc1\u0bb3\u0bcd\u0bb3\u0ba4\u0bbe\u0b95 \u0b87\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4\u0ba4\u0bc1",
|
| 104 |
+
"negative": "\u0baa\u0baf\u0ba9\u0bc1\u0bb3\u0bcd\u0bb3\u0ba4\u0bbe\u0b95 \u0b87\u0bb2\u0bcd\u0bb2\u0bc8",
|
| 105 |
+
"edit": "\u0b95\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0bc8 \u0ba4\u0bbf\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1",
|
| 106 |
+
"dialog": {
|
| 107 |
+
"title": "\u0b95\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0bc8\u0b9a\u0bcd \u0b9a\u0bc7\u0bb0\u0bcd",
|
| 108 |
+
"submit": "\u0b95\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0bc8 \u0b9a\u0bae\u0bb0\u0bcd\u0baa\u0bcd\u0baa\u0bbf",
|
| 109 |
+
"yourFeedback": "\u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b95\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1..."
|
| 110 |
+
},
|
| 111 |
+
"status": {
|
| 112 |
+
"updating": "\u0baa\u0bc1\u0ba4\u0bc1\u0baa\u0bcd\u0baa\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb1\u0ba4\u0bc1",
|
| 113 |
+
"updated": "\u0b95\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1 \u0baa\u0bc1\u0ba4\u0bc1\u0baa\u0bcd\u0baa\u0bbf\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1"
|
| 114 |
+
}
|
| 115 |
+
}
|
| 116 |
+
},
|
| 117 |
+
"history": {
|
| 118 |
+
"title": "\u0b95\u0b9f\u0bc8\u0b9a\u0bbf \u0b89\u0bb3\u0bcd\u0bb3\u0bc0\u0b9f\u0bc1\u0b95\u0bb3\u0bcd",
|
| 119 |
+
"empty": "\u0b95\u0bbe\u0bb2\u0bbf\u0baf\u0bbe\u0b95 \u0b89\u0bb3\u0bcd\u0bb3\u0ba4\u0bc1...",
|
| 120 |
+
"show": "\u0bb5\u0bb0\u0bb2\u0bbe\u0bb1\u0bcd\u0bb1\u0bc8\u0b95\u0bcd \u0b95\u0bbe\u0b9f\u0bcd\u0b9f\u0bc1"
|
| 121 |
+
},
|
| 122 |
+
"settings": {
|
| 123 |
+
"title": "\u0b85\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd \u0baa\u0bb2\u0b95\u0bae\u0bcd",
|
| 124 |
+
"customize": "\u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd \u0b85\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bc8 \u0b87\u0b99\u0bcd\u0b95\u0bc7 \u0ba4\u0ba9\u0bbf\u0baa\u0bcd\u0baa\u0baf\u0ba9\u0bbe\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd"
|
| 125 |
+
},
|
| 126 |
+
"watermark": "LLM \u0b95\u0bb3\u0bcd \u0ba4\u0bb5\u0bb1\u0bc1\u0b95\u0bb3\u0bcd \u0b9a\u0bc6\u0baf\u0bcd\u0baf\u0bb2\u0bbe\u0bae\u0bcd. \u0bae\u0bc1\u0b95\u0bcd\u0b95\u0bbf\u0baf\u0bae\u0bbe\u0ba9 \u0ba4\u0b95\u0bb5\u0bb2\u0bcd\u0b95\u0bb3\u0bc8\u0b9a\u0bcd \u0b9a\u0bb0\u0bbf\u0baa\u0bbe\u0bb0\u0bcd\u0baa\u0bcd\u0baa\u0ba4\u0bc8\u0b95\u0bcd \u0b95\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0bbf\u0bb2\u0bcd \u0b95\u0bca\u0bb3\u0bcd\u0bb3\u0bc1\u0b99\u0bcd\u0b95\u0bb3\u0bcd."
|
| 127 |
+
},
|
| 128 |
+
"threadHistory": {
|
| 129 |
+
"sidebar": {
|
| 130 |
+
"title": "\u0b95\u0b9f\u0ba8\u0bcd\u0ba4 \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd\u0b95\u0bb3\u0bcd",
|
| 131 |
+
"filters": {
|
| 132 |
+
"search": "\u0ba4\u0bc7\u0b9f\u0bc1",
|
| 133 |
+
"placeholder": "Search conversations..."
|
| 134 |
+
},
|
| 135 |
+
"timeframes": {
|
| 136 |
+
"today": "\u0b87\u0ba9\u0bcd\u0bb1\u0bc1",
|
| 137 |
+
"yesterday": "\u0ba8\u0bc7\u0bb1\u0bcd\u0bb1\u0bc1",
|
| 138 |
+
"previous7days": "\u0b95\u0b9f\u0ba8\u0bcd\u0ba4 7 \u0ba8\u0bbe\u0b9f\u0bcd\u0b95\u0bb3\u0bcd",
|
| 139 |
+
"previous30days": "\u0b95\u0b9f\u0ba8\u0bcd\u0ba4 30 \u0ba8\u0bbe\u0b9f\u0bcd\u0b95\u0bb3\u0bcd"
|
| 140 |
+
},
|
| 141 |
+
"empty": "\u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd\u0b95\u0bb3\u0bcd \u0b8e\u0ba4\u0bc1\u0bb5\u0bc1\u0bae\u0bcd \u0b87\u0bb2\u0bcd\u0bb2\u0bc8",
|
| 142 |
+
"actions": {
|
| 143 |
+
"close": "\u0baa\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bc8 \u0bae\u0bc2\u0b9f\u0bc1",
|
| 144 |
+
"open": "\u0baa\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bc8 \u0ba4\u0bbf\u0bb1"
|
| 145 |
+
}
|
| 146 |
+
},
|
| 147 |
+
"thread": {
|
| 148 |
+
"untitled": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bbf\u0b9f\u0bbe\u0ba4 \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd",
|
| 149 |
+
"menu": {
|
| 150 |
+
"rename": "\u0baa\u0bc6\u0baf\u0bb0\u0bcd \u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1",
|
| 151 |
+
"share": "\u0baa\u0b95\u0bbf\u0bb0\u0bcd",
|
| 152 |
+
"delete": "\u0b85\u0bb4\u0bbf"
|
| 153 |
+
},
|
| 154 |
+
"actions": {
|
| 155 |
+
"share": {
|
| 156 |
+
"title": "\u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd \u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc8 \u0baa\u0b95\u0bbf\u0bb0\u0bb5\u0bc1\u0bae\u0bcd",
|
| 157 |
+
"button": "\u0baa\u0b95\u0bbf\u0bb0\u0bcd",
|
| 158 |
+
"status": {
|
| 159 |
+
"copied": "\u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc1 \u0ba8\u0b95\u0bb2\u0bc6\u0b9f\u0bc1\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1",
|
| 160 |
+
"created": "\u0baa\u0b95\u0bbf\u0bb0\u0bcd\u0bb5\u0bc1 \u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc1 \u0b89\u0bb0\u0bc1\u0bb5\u0bbe\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1!",
|
| 161 |
+
"unshared": "\u0b87\u0ba8\u0bcd\u0ba4 \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bc1\u0b95\u0bcd\u0b95\u0bc1 \u0baa\u0b95\u0bbf\u0bb0\u0bcd\u0bb5\u0bc1 \u0bae\u0bc1\u0b9f\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1"
|
| 162 |
+
},
|
| 163 |
+
"error": {
|
| 164 |
+
"create": "\u0baa\u0b95\u0bbf\u0bb0\u0bcd\u0bb5\u0bc1 \u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc8 \u0b89\u0bb0\u0bc1\u0bb5\u0bbe\u0b95\u0bcd\u0b95 \u0bae\u0bc1\u0b9f\u0bbf\u0baf\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8",
|
| 165 |
+
"unshare": "\u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd \u0baa\u0b95\u0bbf\u0bb0\u0bcd\u0bb5\u0bc8 \u0ba8\u0bbf\u0bb1\u0bc1\u0ba4\u0bcd\u0ba4 \u0bae\u0bc1\u0b9f\u0bbf\u0baf\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8"
|
| 166 |
+
}
|
| 167 |
+
},
|
| 168 |
+
"delete": {
|
| 169 |
+
"title": "\u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0bc1\u0bb5\u0ba4\u0bc8 \u0b89\u0bb1\u0bc1\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1",
|
| 170 |
+
"description": "\u0b87\u0ba4\u0bc1 \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0b85\u0ba4\u0ba9\u0bcd \u0b9a\u0bc6\u0baf\u0bcd\u0ba4\u0bbf\u0b95\u0bb3\u0bcd, \u0b89\u0bb1\u0bc1\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bc8 \u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0bc1\u0bae\u0bcd. \u0b87\u0ba8\u0bcd\u0ba4 \u0b9a\u0bc6\u0baf\u0bb2\u0bc8 \u0bae\u0bc0\u0b9f\u0bcd\u0b9f\u0bc6\u0b9f\u0bc1\u0b95\u0bcd\u0b95 \u0bae\u0bc1\u0b9f\u0bbf\u0baf\u0bbe\u0ba4\u0bc1",
|
| 171 |
+
"success": "\u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd \u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1",
|
| 172 |
+
"inProgress": "\u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bc8 \u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1"
|
| 173 |
+
},
|
| 174 |
+
"rename": {
|
| 175 |
+
"title": "\u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bc8 \u0bae\u0bb1\u0bc1\u0baa\u0bc6\u0baf\u0bb0\u0bbf\u0b9f\u0bc1",
|
| 176 |
+
"description": "\u0b87\u0ba8\u0bcd\u0ba4 \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bc1\u0b95\u0bcd\u0b95\u0bc1 \u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0baa\u0bc6\u0baf\u0bb0\u0bc8 \u0b89\u0bb3\u0bcd\u0bb3\u0bbf\u0b9f\u0bb5\u0bc1\u0bae\u0bcd",
|
| 177 |
+
"form": {
|
| 178 |
+
"name": {
|
| 179 |
+
"label": "\u0baa\u0bc6\u0baf\u0bb0\u0bcd",
|
| 180 |
+
"placeholder": "\u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0baa\u0bc6\u0baf\u0bb0\u0bc8 \u0b89\u0bb3\u0bcd\u0bb3\u0bbf\u0b9f\u0bb5\u0bc1\u0bae\u0bcd"
|
| 181 |
+
}
|
| 182 |
+
},
|
| 183 |
+
"success": "\u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd \u0bae\u0bb1\u0bc1\u0baa\u0bc6\u0baf\u0bb0\u0bbf\u0b9f\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1!",
|
| 184 |
+
"inProgress": "\u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bc8 \u0bae\u0bb1\u0bc1\u0baa\u0bc6\u0baf\u0bb0\u0bbf\u0b9f\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1"
|
| 185 |
+
}
|
| 186 |
+
}
|
| 187 |
+
}
|
| 188 |
+
},
|
| 189 |
+
"navigation": {
|
| 190 |
+
"header": {
|
| 191 |
+
"chat": "\u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd",
|
| 192 |
+
"readme": "\u0baa\u0b9f\u0bbf\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd",
|
| 193 |
+
"theme": {
|
| 194 |
+
"light": "Light Theme",
|
| 195 |
+
"dark": "Dark Theme",
|
| 196 |
+
"system": "Follow System"
|
| 197 |
+
}
|
| 198 |
+
},
|
| 199 |
+
"newChat": {
|
| 200 |
+
"button": "\u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd",
|
| 201 |
+
"dialog": {
|
| 202 |
+
"title": "\u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bc8 \u0b89\u0bb0\u0bc1\u0bb5\u0bbe\u0b95\u0bcd\u0b95\u0bc1",
|
| 203 |
+
"description": "\u0b87\u0ba4\u0bc1 \u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0ba4\u0bb1\u0bcd\u0baa\u0bcb\u0ba4\u0bc8\u0baf \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd \u0bb5\u0bb0\u0bb2\u0bbe\u0bb1\u0bcd\u0bb1\u0bc8 \u0b85\u0bb4\u0bbf\u0b95\u0bcd\u0b95\u0bc1\u0bae\u0bcd. \u0ba4\u0bca\u0b9f\u0bb0 \u0bb5\u0bbf\u0bb0\u0bc1\u0bae\u0bcd\u0baa\u0bc1\u0b95\u0bbf\u0bb1\u0bc0\u0bb0\u0bcd\u0b95\u0bb3\u0bbe?",
|
| 204 |
+
"tooltip": "\u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd"
|
| 205 |
+
}
|
| 206 |
+
},
|
| 207 |
+
"user": {
|
| 208 |
+
"menu": {
|
| 209 |
+
"settings": "\u0b85\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd",
|
| 210 |
+
"settingsKey": "S",
|
| 211 |
+
"apiKeys": "API \u0bb5\u0bbf\u0b9a\u0bc8\u0b95\u0bb3\u0bcd",
|
| 212 |
+
"logout": "\u0bb5\u0bc6\u0bb3\u0bbf\u0baf\u0bc7\u0bb1\u0bc1"
|
| 213 |
+
}
|
| 214 |
+
}
|
| 215 |
+
},
|
| 216 |
+
"apiKeys": {
|
| 217 |
+
"title": "\u0ba4\u0bc7\u0bb5\u0bc8\u0baf\u0bbe\u0ba9 API \u0bb5\u0bbf\u0b9a\u0bc8\u0b95\u0bb3\u0bcd",
|
| 218 |
+
"description": "\u0b87\u0ba8\u0bcd\u0ba4 \u0baa\u0baf\u0ba9\u0bcd\u0baa\u0bbe\u0b9f\u0bcd\u0b9f\u0bc8\u0baa\u0bcd \u0baa\u0baf\u0ba9\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4, \u0baa\u0bbf\u0ba9\u0bcd\u0bb5\u0bb0\u0bc1\u0bae\u0bcd API \u0bb5\u0bbf\u0b9a\u0bc8\u0b95\u0bb3\u0bcd \u0ba4\u0bc7\u0bb5\u0bc8. \u0bb5\u0bbf\u0b9a\u0bc8\u0b95\u0bb3\u0bcd \u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b9a\u0bbe\u0ba4\u0ba9\u0ba4\u0bcd\u0ba4\u0bbf\u0ba9\u0bcd \u0b89\u0bb3\u0bcd\u0bb3\u0bc2\u0bb0\u0bcd \u0b9a\u0bc7\u0bae\u0bbf\u0baa\u0bcd\u0baa\u0b95\u0ba4\u0bcd\u0ba4\u0bbf\u0bb2\u0bcd \u0b9a\u0bc7\u0bae\u0bbf\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0bae\u0bcd.",
|
| 219 |
+
"success": {
|
| 220 |
+
"saved": "\u0bb5\u0bc6\u0bb1\u0bcd\u0bb1\u0bbf\u0b95\u0bb0\u0bae\u0bbe\u0b95 \u0b9a\u0bc7\u0bae\u0bbf\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1"
|
| 221 |
+
}
|
| 222 |
+
},
|
| 223 |
+
"alerts": {
|
| 224 |
+
"info": "Info",
|
| 225 |
+
"note": "Note",
|
| 226 |
+
"tip": "Tip",
|
| 227 |
+
"important": "Important",
|
| 228 |
+
"warning": "Warning",
|
| 229 |
+
"caution": "Caution",
|
| 230 |
+
"debug": "Debug",
|
| 231 |
+
"example": "Example",
|
| 232 |
+
"success": "Success",
|
| 233 |
+
"help": "Help",
|
| 234 |
+
"idea": "Idea",
|
| 235 |
+
"pending": "Pending",
|
| 236 |
+
"security": "Security",
|
| 237 |
+
"beta": "Beta",
|
| 238 |
+
"best-practice": "Best Practice"
|
| 239 |
+
},
|
| 240 |
+
"components": {
|
| 241 |
+
"MultiSelectInput": {
|
| 242 |
+
"placeholder": "\u0ba4\u0bc7\u0bb0\u0bcd\u0ba8\u0bcd\u0ba4\u0bc6\u0b9f\u0bc1\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd..."
|
| 243 |
+
}
|
| 244 |
+
}
|
| 245 |
+
}
|
.chainlit/translations/te.json
ADDED
|
@@ -0,0 +1,245 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "\u0c30\u0c26\u0c4d\u0c26\u0c41 \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
|
| 5 |
+
"confirm": "\u0c28\u0c3f\u0c30\u0c4d\u0c27\u0c3e\u0c30\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 6 |
+
"continue": "\u0c15\u0c4a\u0c28\u0c38\u0c3e\u0c17\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 7 |
+
"goBack": "\u0c35\u0c46\u0c28\u0c15\u0c4d\u0c15\u0c3f \u0c35\u0c46\u0c33\u0c4d\u0c33\u0c02\u0c21\u0c3f",
|
| 8 |
+
"reset": "\u0c30\u0c40\u0c38\u0c46\u0c1f\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
|
| 9 |
+
"submit": "\u0c38\u0c2e\u0c30\u0c4d\u0c2a\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "\u0c32\u0c4b\u0c21\u0c4d \u0c05\u0c35\u0c41\u0c24\u0c4b\u0c02\u0c26\u0c3f...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "\u0c32\u0c4b\u0c2a\u0c02 \u0c38\u0c02\u0c2d\u0c35\u0c3f\u0c02\u0c1a\u0c3f\u0c02\u0c26\u0c3f",
|
| 15 |
+
"serverConnection": "\u0c38\u0c30\u0c4d\u0c35\u0c30\u0c4d\u200c\u0c28\u0c3f \u0c1a\u0c47\u0c30\u0c41\u0c15\u0c4b\u0c32\u0c47\u0c15\u0c2a\u0c4b\u0c2f\u0c3e\u0c2e\u0c41"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "\u0c2f\u0c3e\u0c2a\u0c4d\u200c\u0c28\u0c3f \u0c09\u0c2a\u0c2f\u0c4b\u0c17\u0c3f\u0c02\u0c1a\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c32\u0c3e\u0c17\u0c3f\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "\u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c1a\u0c3f\u0c30\u0c41\u0c28\u0c3e\u0c2e\u0c3e",
|
| 25 |
+
"required": "\u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c24\u0c2a\u0c4d\u0c2a\u0c28\u0c3f\u0c38\u0c30\u0c3f",
|
| 26 |
+
"placeholder": "me@example.com"
|
| 27 |
+
},
|
| 28 |
+
"password": {
|
| 29 |
+
"label": "\u0c2a\u0c3e\u0c38\u0c4d\u200c\u0c35\u0c30\u0c4d\u0c21\u0c4d",
|
| 30 |
+
"required": "\u0c2a\u0c3e\u0c38\u0c4d\u200c\u0c35\u0c30\u0c4d\u0c21\u0c4d \u0c24\u0c2a\u0c4d\u0c2a\u0c28\u0c3f\u0c38\u0c30\u0c3f"
|
| 31 |
+
},
|
| 32 |
+
"actions": {
|
| 33 |
+
"signin": "\u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f"
|
| 34 |
+
},
|
| 35 |
+
"alternativeText": {
|
| 36 |
+
"or": "\u0c32\u0c47\u0c26\u0c3e"
|
| 37 |
+
}
|
| 38 |
+
},
|
| 39 |
+
"errors": {
|
| 40 |
+
"default": "\u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c32\u0c47\u0c15\u0c2a\u0c4b\u0c2f\u0c3e\u0c2e\u0c41",
|
| 41 |
+
"signin": "\u0c35\u0c47\u0c30\u0c47 \u0c16\u0c3e\u0c24\u0c3e\u0c24\u0c4b \u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c2a\u0c4d\u0c30\u0c2f\u0c24\u0c4d\u0c28\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 42 |
+
"oauthSignin": "\u0c35\u0c47\u0c30\u0c47 \u0c16\u0c3e\u0c24\u0c3e\u0c24\u0c4b \u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c2a\u0c4d\u0c30\u0c2f\u0c24\u0c4d\u0c28\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 43 |
+
"redirectUriMismatch": "\u0c30\u0c40\u0c21\u0c48\u0c30\u0c46\u0c15\u0c4d\u0c1f\u0c4d URI oauth \u0c2f\u0c3e\u0c2a\u0c4d \u0c15\u0c3e\u0c28\u0c4d\u0c2b\u0c3f\u0c17\u0c30\u0c47\u0c37\u0c28\u0c4d\u200c\u0c24\u0c4b \u0c38\u0c30\u0c3f\u0c2a\u0c4b\u0c32\u0c21\u0c02 \u0c32\u0c47\u0c26\u0c41",
|
| 44 |
+
"oauthCallback": "\u0c35\u0c47\u0c30\u0c47 \u0c16\u0c3e\u0c24\u0c3e\u0c24\u0c4b \u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c2a\u0c4d\u0c30\u0c2f\u0c24\u0c4d\u0c28\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 45 |
+
"oauthCreateAccount": "\u0c35\u0c47\u0c30\u0c47 \u0c16\u0c3e\u0c24\u0c3e\u0c24\u0c4b \u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c2a\u0c4d\u0c30\u0c2f\u0c24\u0c4d\u0c28\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 46 |
+
"emailCreateAccount": "\u0c35\u0c47\u0c30\u0c47 \u0c16\u0c3e\u0c24\u0c3e\u0c24\u0c4b \u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c2a\u0c4d\u0c30\u0c2f\u0c24\u0c4d\u0c28\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 47 |
+
"callback": "\u0c35\u0c47\u0c30\u0c47 \u0c16\u0c3e\u0c24\u0c3e\u0c24\u0c4b \u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c2a\u0c4d\u0c30\u0c2f\u0c24\u0c4d\u0c28\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 48 |
+
"oauthAccountNotLinked": "\u0c2e\u0c40 \u0c17\u0c41\u0c30\u0c4d\u0c24\u0c3f\u0c02\u0c2a\u0c41\u0c28\u0c41 \u0c28\u0c3f\u0c30\u0c4d\u0c27\u0c3e\u0c30\u0c3f\u0c02\u0c1a\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f, \u0c2e\u0c40\u0c30\u0c41 \u0c2e\u0c4a\u0c26\u0c1f \u0c09\u0c2a\u0c2f\u0c4b\u0c17\u0c3f\u0c02\u0c1a\u0c3f\u0c28 \u0c05\u0c26\u0c47 \u0c16\u0c3e\u0c24\u0c3e\u0c24\u0c4b \u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
|
| 49 |
+
"emailSignin": "\u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c2a\u0c02\u0c2a\u0c21\u0c02 \u0c38\u0c3e\u0c27\u0c4d\u0c2f\u0c02 \u0c15\u0c3e\u0c32\u0c47\u0c26\u0c41",
|
| 50 |
+
"emailVerify": "\u0c26\u0c2f\u0c1a\u0c47\u0c38\u0c3f \u0c2e\u0c40 \u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d\u200c\u0c28\u0c3f \u0c27\u0c43\u0c35\u0c40\u0c15\u0c30\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f, \u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c2a\u0c02\u0c2a\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f",
|
| 51 |
+
"credentialsSignin": "\u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c35\u0c3f\u0c2b\u0c32\u0c2e\u0c48\u0c02\u0c26\u0c3f. \u0c2e\u0c40\u0c30\u0c41 \u0c05\u0c02\u0c26\u0c3f\u0c02\u0c1a\u0c3f\u0c28 \u0c35\u0c3f\u0c35\u0c30\u0c3e\u0c32\u0c41 \u0c38\u0c30\u0c48\u0c28\u0c35\u0c47\u0c28\u0c3e \u0c05\u0c28\u0c3f \u0c24\u0c28\u0c3f\u0c16\u0c40 \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
|
| 52 |
+
"sessionRequired": "\u0c08 \u0c2a\u0c47\u0c1c\u0c40\u0c28\u0c3f \u0c2f\u0c3e\u0c15\u0c4d\u0c38\u0c46\u0c38\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c26\u0c2f\u0c1a\u0c47\u0c38\u0c3f \u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f"
|
| 53 |
+
}
|
| 54 |
+
},
|
| 55 |
+
"provider": {
|
| 56 |
+
"continue": "{{provider}}\u0c24\u0c4b \u0c15\u0c4a\u0c28\u0c38\u0c3e\u0c17\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f"
|
| 57 |
+
}
|
| 58 |
+
},
|
| 59 |
+
"chat": {
|
| 60 |
+
"input": {
|
| 61 |
+
"placeholder": "\u0c2e\u0c40 \u0c38\u0c02\u0c26\u0c47\u0c36\u0c3e\u0c28\u0c4d\u0c28\u0c3f \u0c07\u0c15\u0c4d\u0c15\u0c21 \u0c1f\u0c48\u0c2a\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f...",
|
| 62 |
+
"actions": {
|
| 63 |
+
"send": "\u0c38\u0c02\u0c26\u0c47\u0c36\u0c02 \u0c2a\u0c02\u0c2a\u0c02\u0c21\u0c3f",
|
| 64 |
+
"stop": "\u0c2a\u0c28\u0c3f \u0c06\u0c2a\u0c02\u0c21\u0c3f",
|
| 65 |
+
"attachFiles": "\u0c2b\u0c48\u0c32\u0c4d\u0c38\u0c4d \u0c1c\u0c4b\u0c21\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f"
|
| 66 |
+
}
|
| 67 |
+
},
|
| 68 |
+
"speech": {
|
| 69 |
+
"start": "\u0c30\u0c3f\u0c15\u0c3e\u0c30\u0c4d\u0c21\u0c3f\u0c02\u0c17\u0c4d \u0c2a\u0c4d\u0c30\u0c3e\u0c30\u0c02\u0c2d\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 70 |
+
"stop": "\u0c30\u0c3f\u0c15\u0c3e\u0c30\u0c4d\u0c21\u0c3f\u0c02\u0c17\u0c4d \u0c06\u0c2a\u0c02\u0c21\u0c3f",
|
| 71 |
+
"connecting": "\u0c05\u0c28\u0c41\u0c38\u0c02\u0c27\u0c3e\u0c28\u0c3f\u0c38\u0c4d\u0c24\u0c4b\u0c02\u0c26\u0c3f"
|
| 72 |
+
},
|
| 73 |
+
"commands": {
|
| 74 |
+
"button": "\u0c2a\u0c30\u0c3f\u0c15\u0c30\u0c3e\u0c32\u0c41",
|
| 75 |
+
"changeTool": "\u0c2a\u0c30\u0c3f\u0c15\u0c30\u0c3e\u0c28\u0c4d\u0c28\u0c3f \u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c02\u0c21\u0c3f",
|
| 76 |
+
"availableTools": "\u0c32\u0c2d\u0c4d\u0c2f\u0c2e\u0c48\u0c28 \u0c2a\u0c30\u0c3f\u0c15\u0c30\u0c3e\u0c32\u0c41"
|
| 77 |
+
},
|
| 78 |
+
"fileUpload": {
|
| 79 |
+
"dragDrop": "\u0c2b\u0c48\u0c32\u0c4d\u0c38\u0c4d\u200c\u0c28\u0c3f \u0c07\u0c15\u0c4d\u0c15\u0c21 \u0c21\u0c4d\u0c30\u0c3e\u0c17\u0c4d \u0c1a\u0c47\u0c38\u0c3f \u0c21\u0c4d\u0c30\u0c3e\u0c2a\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
|
| 80 |
+
"browse": "\u0c2b\u0c48\u0c32\u0c4d\u0c38\u0c4d \u0c2c\u0c4d\u0c30\u0c4c\u0c1c\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
|
| 81 |
+
"sizeLimit": "\u0c2a\u0c30\u0c3f\u0c2e\u0c3f\u0c24\u0c3f:",
|
| 82 |
+
"errors": {
|
| 83 |
+
"failed": "\u0c05\u0c2a\u0c4d\u200c\u0c32\u0c4b\u0c21\u0c4d \u0c35\u0c3f\u0c2b\u0c32\u0c2e\u0c48\u0c02\u0c26\u0c3f",
|
| 84 |
+
"cancelled": "\u0c05\u0c2a\u0c4d\u200c\u0c32\u0c4b\u0c21\u0c4d \u0c30\u0c26\u0c4d\u0c26\u0c41 \u0c1a\u0c47\u0c2f\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"cancelUpload": "\u0c30\u0c26\u0c4d\u0c26\u0c41 \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
|
| 88 |
+
"removeAttachment": "\u0c05\u0c28\u0c41\u0c2c\u0c02\u0c27\u0c3e\u0c28\u0c4d\u0c28\u0c3f \u0c24\u0c4a\u0c32\u0c17\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f"
|
| 89 |
+
}
|
| 90 |
+
},
|
| 91 |
+
"messages": {
|
| 92 |
+
"status": {
|
| 93 |
+
"using": "\u0c09\u0c2a\u0c2f\u0c4b\u0c17\u0c3f\u0c38\u0c4d\u0c24\u0c4b\u0c02\u0c26\u0c3f",
|
| 94 |
+
"used": "\u0c09\u0c2a\u0c2f\u0c4b\u0c17\u0c3f\u0c02\u0c1a\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f"
|
| 95 |
+
},
|
| 96 |
+
"actions": {
|
| 97 |
+
"copy": {
|
| 98 |
+
"button": "\u0c15\u0c4d\u0c32\u0c3f\u0c2a\u0c4d\u200c\u0c2c\u0c4b\u0c30\u0c4d\u0c21\u0c4d\u200c\u0c15\u0c3f \u0c15\u0c3e\u0c2a\u0c40 \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
|
| 99 |
+
"success": "\u0c15\u0c3e\u0c2a\u0c40 \u0c1a\u0c47\u0c2f\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f!"
|
| 100 |
+
}
|
| 101 |
+
},
|
| 102 |
+
"feedback": {
|
| 103 |
+
"positive": "\u0c38\u0c39\u0c3e\u0c2f\u0c15\u0c30\u0c02",
|
| 104 |
+
"negative": "\u0c38\u0c39\u0c3e\u0c2f\u0c15\u0c30\u0c02 \u0c15\u0c3e\u0c26\u0c41",
|
| 105 |
+
"edit": "\u0c05\u0c2d\u0c3f\u0c2a\u0c4d\u0c30\u0c3e\u0c2f\u0c3e\u0c28\u0c4d\u0c28\u0c3f \u0c38\u0c35\u0c30\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 106 |
+
"dialog": {
|
| 107 |
+
"title": "\u0c35\u0c4d\u0c2f\u0c3e\u0c16\u0c4d\u0c2f \u0c1c\u0c4b\u0c21\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 108 |
+
"submit": "\u0c05\u0c2d\u0c3f\u0c2a\u0c4d\u0c30\u0c3e\u0c2f\u0c3e\u0c28\u0c4d\u0c28\u0c3f \u0c38\u0c2e\u0c30\u0c4d\u0c2a\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 109 |
+
"yourFeedback": "\u0c2e\u0c40 \u0c05\u0c2d\u0c3f\u0c2a\u0c4d\u0c30\u0c3e\u0c2f\u0c02..."
|
| 110 |
+
},
|
| 111 |
+
"status": {
|
| 112 |
+
"updating": "\u0c28\u0c35\u0c40\u0c15\u0c30\u0c3f\u0c38\u0c4d\u0c24\u0c4b\u0c02\u0c26\u0c3f",
|
| 113 |
+
"updated": "\u0c05\u0c2d\u0c3f\u0c2a\u0c4d\u0c30\u0c3e\u0c2f\u0c02 \u0c28\u0c35\u0c40\u0c15\u0c30\u0c3f\u0c02\u0c1a\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f"
|
| 114 |
+
}
|
| 115 |
+
}
|
| 116 |
+
},
|
| 117 |
+
"history": {
|
| 118 |
+
"title": "\u0c1a\u0c3f\u0c35\u0c30\u0c3f \u0c07\u0c28\u0c4d\u200c\u0c2a\u0c41\u0c1f\u0c4d\u200c\u0c32\u0c41",
|
| 119 |
+
"empty": "\u0c16\u0c3e\u0c33\u0c40\u0c17\u0c3e \u0c09\u0c02\u0c26\u0c3f...",
|
| 120 |
+
"show": "\u0c1a\u0c30\u0c3f\u0c24\u0c4d\u0c30\u0c28\u0c41 \u0c1a\u0c42\u0c2a\u0c3f\u0c02\u0c1a\u0c41"
|
| 121 |
+
},
|
| 122 |
+
"settings": {
|
| 123 |
+
"title": "\u0c38\u0c46\u0c1f\u0c4d\u0c1f\u0c3f\u0c02\u0c17\u0c4d\u200c\u0c32 \u0c2a\u0c4d\u0c2f\u0c3e\u0c28\u0c46\u0c32\u0c4d",
|
| 124 |
+
"customize": "\u0c2e\u0c40 \u0c1a\u0c3e\u0c1f\u0c4d \u0c38\u0c46\u0c1f\u0c4d\u0c1f\u0c3f\u0c02\u0c17\u0c4d\u200c\u0c32\u0c28\u0c41 \u0c07\u0c15\u0c4d\u0c15\u0c21 \u0c05\u0c28\u0c41\u0c15\u0c42\u0c32\u0c40\u0c15\u0c30\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f"
|
| 125 |
+
},
|
| 126 |
+
"watermark": "LLM\u0c32\u0c41 \u0c24\u0c2a\u0c4d\u0c2a\u0c41\u0c32\u0c41 \u0c1a\u0c47\u0c2f\u0c35\u0c1a\u0c4d\u0c1a\u0c41. \u0c2e\u0c41\u0c16\u0c4d\u0c2f\u0c2e\u0c48\u0c28 \u0c38\u0c2e\u0c3e\u0c1a\u0c3e\u0c30\u0c3e\u0c28\u0c4d\u0c28\u0c3f \u0c24\u0c28\u0c3f\u0c16\u0c40 \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c4d\u0c28\u0c3f \u0c2a\u0c30\u0c3f\u0c17\u0c23\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f."
|
| 127 |
+
},
|
| 128 |
+
"threadHistory": {
|
| 129 |
+
"sidebar": {
|
| 130 |
+
"title": "\u0c17\u0c24 \u0c1a\u0c3e\u0c1f\u0c4d\u200c\u0c32\u0c41",
|
| 131 |
+
"filters": {
|
| 132 |
+
"search": "\u0c35\u0c46\u0c24\u0c15\u0c02\u0c21\u0c3f",
|
| 133 |
+
"placeholder": "Search conversations..."
|
| 134 |
+
},
|
| 135 |
+
"timeframes": {
|
| 136 |
+
"today": "\u0c08\u0c30\u0c4b\u0c1c\u0c41",
|
| 137 |
+
"yesterday": "\u0c28\u0c3f\u0c28\u0c4d\u0c28",
|
| 138 |
+
"previous7days": "\u0c17\u0c24 7 \u0c30\u0c4b\u0c1c\u0c41\u0c32\u0c41",
|
| 139 |
+
"previous30days": "\u0c17\u0c24 30 \u0c30\u0c4b\u0c1c\u0c41\u0c32\u0c41"
|
| 140 |
+
},
|
| 141 |
+
"empty": "\u0c25\u0c4d\u0c30\u0c46\u0c21\u0c4d\u200c\u0c32\u0c41 \u0c15\u0c28\u0c41\u0c17\u0c4a\u0c28\u0c2c\u0c21\u0c32\u0c47\u0c26\u0c41",
|
| 142 |
+
"actions": {
|
| 143 |
+
"close": "\u0c38\u0c48\u0c21\u0c4d\u200c\u0c2c\u0c3e\u0c30\u0c4d \u0c2e\u0c42\u0c38\u0c3f\u0c35\u0c47\u0c2f\u0c02\u0c21\u0c3f",
|
| 144 |
+
"open": "\u0c38\u0c48\u0c21\u0c4d\u200c\u0c2c\u0c3e\u0c30\u0c4d \u0c24\u0c46\u0c30\u0c35\u0c02\u0c21\u0c3f"
|
| 145 |
+
}
|
| 146 |
+
},
|
| 147 |
+
"thread": {
|
| 148 |
+
"untitled": "\u0c2a\u0c47\u0c30\u0c41 \u0c32\u0c47\u0c28\u0c3f \u0c38\u0c02\u0c2d\u0c3e\u0c37\u0c23",
|
| 149 |
+
"menu": {
|
| 150 |
+
"rename": "\u0c2a\u0c47\u0c30\u0c41 \u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c02\u0c21\u0c3f",
|
| 151 |
+
"share": "\u0c37\u0c47\u0c30\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
|
| 152 |
+
"delete": "\u0c24\u0c4a\u0c32\u0c17\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f"
|
| 153 |
+
},
|
| 154 |
+
"actions": {
|
| 155 |
+
"share": {
|
| 156 |
+
"title": "\u0c1a\u0c3e\u0c1f\u0c4d \u0c32\u0c3f\u0c02\u0c15\u0c4d\u200c\u0c28\u0c41 \u0c37\u0c47\u0c30\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
|
| 157 |
+
"button": "\u0c37\u0c47\u0c30\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
|
| 158 |
+
"status": {
|
| 159 |
+
"copied": "\u0c32\u0c3f\u0c02\u0c15\u0c4d \u0c15\u0c3e\u0c2a\u0c40 \u0c1a\u0c47\u0c2f\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f",
|
| 160 |
+
"created": "\u0c37\u0c47\u0c30\u0c4d \u0c32\u0c3f\u0c02\u0c15\u0c4d \u0c38\u0c43\u0c37\u0c4d\u0c1f\u0c3f\u0c02\u0c1a\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f!",
|
| 161 |
+
"unshared": "\u0c08 \u0c25\u0c4d\u0c30\u0c46\u0c21\u0c4d\u200c\u0c15\u0c41 \u0c37\u0c47\u0c30\u0c3f\u0c02\u0c17\u0c4d \u0c06\u0c2a\u0c3f\u0c35\u0c47\u0c2f\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f"
|
| 162 |
+
},
|
| 163 |
+
"error": {
|
| 164 |
+
"create": "\u0c37\u0c47\u0c30\u0c4d \u0c32\u0c3f\u0c02\u0c15\u0c4d \u0c38\u0c43\u0c37\u0c4d\u0c1f\u0c3f\u0c02\u0c1a\u0c21\u0c02 \u0c35\u0c3f\u0c2b\u0c32\u0c2e\u0c48\u0c02\u0c26\u0c3f",
|
| 165 |
+
"unshare": "\u0c25\u0c4d\u0c30\u0c46\u0c21\u0c4d \u0c37\u0c47\u0c30\u0c3f\u0c02\u0c17\u0c4d \u0c28\u0c3f\u0c32\u0c3f\u0c2a\u0c3f\u0c35\u0c47\u0c2f\u0c21\u0c02 \u0c35\u0c3f\u0c2b\u0c32\u0c2e\u0c48\u0c02\u0c26\u0c3f"
|
| 166 |
+
}
|
| 167 |
+
},
|
| 168 |
+
"delete": {
|
| 169 |
+
"title": "\u0c24\u0c4a\u0c32\u0c17\u0c3f\u0c02\u0c2a\u0c41\u0c28\u0c41 \u0c28\u0c3f\u0c30\u0c4d\u0c27\u0c3e\u0c30\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 170 |
+
"description": "\u0c07\u0c26\u0c3f \u0c25\u0c4d\u0c30\u0c46\u0c21\u0c4d\u200c\u0c24\u0c4b \u0c2a\u0c3e\u0c1f\u0c41 \u0c26\u0c3e\u0c28\u0c3f \u0c38\u0c02\u0c26\u0c47\u0c36\u0c3e\u0c32\u0c28\u0c41 \u0c2e\u0c30\u0c3f\u0c2f\u0c41 \u0c05\u0c02\u0c36\u0c3e\u0c32\u0c28\u0c41 \u0c24\u0c4a\u0c32\u0c17\u0c3f\u0c38\u0c4d\u0c24\u0c41\u0c02\u0c26\u0c3f. \u0c08 \u0c1a\u0c30\u0c4d\u0c2f\u0c28\u0c41 \u0c30\u0c26\u0c4d\u0c26\u0c41 \u0c1a\u0c47\u0c2f\u0c32\u0c47\u0c30\u0c41",
|
| 171 |
+
"success": "\u0c1a\u0c3e\u0c1f\u0c4d \u0c24\u0c4a\u0c32\u0c17\u0c3f\u0c02\u0c1a\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f",
|
| 172 |
+
"inProgress": "\u0c1a\u0c3e\u0c1f\u0c4d\u200c\u0c28\u0c3f \u0c24\u0c4a\u0c32\u0c17\u0c3f\u0c38\u0c4d\u0c24\u0c4b\u0c02\u0c26\u0c3f"
|
| 173 |
+
},
|
| 174 |
+
"rename": {
|
| 175 |
+
"title": "\u0c25\u0c4d\u0c30\u0c46\u0c21\u0c4d \u0c2a\u0c47\u0c30\u0c41 \u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c02\u0c21\u0c3f",
|
| 176 |
+
"description": "\u0c08 \u0c25\u0c4d\u0c30\u0c46\u0c21\u0c4d \u0c15\u0c4b\u0c38\u0c02 \u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c2a\u0c47\u0c30\u0c41\u0c28\u0c41 \u0c28\u0c2e\u0c4b\u0c26\u0c41 \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
|
| 177 |
+
"form": {
|
| 178 |
+
"name": {
|
| 179 |
+
"label": "\u0c2a\u0c47\u0c30\u0c41",
|
| 180 |
+
"placeholder": "\u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c2a\u0c47\u0c30\u0c41\u0c28\u0c41 \u0c28\u0c2e\u0c4b\u0c26\u0c41 \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f"
|
| 181 |
+
}
|
| 182 |
+
},
|
| 183 |
+
"success": "\u0c25\u0c4d\u0c30\u0c46\u0c21\u0c4d \u0c2a\u0c47\u0c30\u0c41 \u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f!",
|
| 184 |
+
"inProgress": "\u0c25\u0c4d\u0c30\u0c46\u0c21\u0c4d \u0c2a\u0c47\u0c30\u0c41 \u0c2e\u0c3e\u0c30\u0c41\u0c38\u0c4d\u0c24\u0c4b\u0c02\u0c26\u0c3f"
|
| 185 |
+
}
|
| 186 |
+
}
|
| 187 |
+
}
|
| 188 |
+
},
|
| 189 |
+
"navigation": {
|
| 190 |
+
"header": {
|
| 191 |
+
"chat": "\u0c1a\u0c3e\u0c1f\u0c4d",
|
| 192 |
+
"readme": "\u0c1a\u0c26\u0c35\u0c02\u0c21\u0c3f",
|
| 193 |
+
"theme": {
|
| 194 |
+
"light": "Light Theme",
|
| 195 |
+
"dark": "Dark Theme",
|
| 196 |
+
"system": "Follow System"
|
| 197 |
+
}
|
| 198 |
+
},
|
| 199 |
+
"newChat": {
|
| 200 |
+
"button": "\u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c1a\u0c3e\u0c1f\u0c4d",
|
| 201 |
+
"dialog": {
|
| 202 |
+
"title": "\u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c1a\u0c3e\u0c1f\u0c4d \u0c38\u0c43\u0c37\u0c4d\u0c1f\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 203 |
+
"description": "\u0c07\u0c26\u0c3f \u0c2e\u0c40 \u0c2a\u0c4d\u0c30\u0c38\u0c4d\u0c24\u0c41\u0c24 \u0c1a\u0c3e\u0c1f\u0c4d \u0c1a\u0c30\u0c3f\u0c24\u0c4d\u0c30\u0c28\u0c41 \u0c24\u0c41\u0c21\u0c3f\u0c1a\u0c3f\u0c35\u0c47\u0c38\u0c4d\u0c24\u0c41\u0c02\u0c26\u0c3f. \u0c2e\u0c40\u0c30\u0c41 \u0c15\u0c4a\u0c28\u0c38\u0c3e\u0c17\u0c3f\u0c02\u0c1a\u0c3e\u0c32\u0c28\u0c41\u0c15\u0c41\u0c02\u0c1f\u0c41\u0c28\u0c4d\u0c28\u0c3e\u0c30\u0c3e?",
|
| 204 |
+
"tooltip": "\u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c1a\u0c3e\u0c1f\u0c4d"
|
| 205 |
+
}
|
| 206 |
+
},
|
| 207 |
+
"user": {
|
| 208 |
+
"menu": {
|
| 209 |
+
"settings": "\u0c38\u0c46\u0c1f\u0c4d\u0c1f\u0c3f\u0c02\u0c17\u0c4d\u200c\u0c32\u0c41",
|
| 210 |
+
"settingsKey": "S",
|
| 211 |
+
"apiKeys": "API \u0c15\u0c40\u0c32\u0c41",
|
| 212 |
+
"logout": "\u0c32\u0c3e\u0c17\u0c4d \u0c05\u0c35\u0c41\u0c1f\u0c4d"
|
| 213 |
+
}
|
| 214 |
+
}
|
| 215 |
+
},
|
| 216 |
+
"apiKeys": {
|
| 217 |
+
"title": "\u0c05\u0c35\u0c38\u0c30\u0c2e\u0c48\u0c28 API \u0c15\u0c40\u0c32\u0c41",
|
| 218 |
+
"description": "\u0c08 \u0c2f\u0c3e\u0c2a\u0c4d\u200c\u0c28\u0c3f \u0c09\u0c2a\u0c2f\u0c4b\u0c17\u0c3f\u0c02\u0c1a\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f, \u0c15\u0c3f\u0c02\u0c26\u0c3f API \u0c15\u0c40\u0c32\u0c41 \u0c05\u0c35\u0c38\u0c30\u0c02. \u0c15\u0c40\u0c32\u0c41 \u0c2e\u0c40 \u0c2a\u0c30\u0c3f\u0c15\u0c30\u0c02 \u0c2f\u0c4a\u0c15\u0c4d\u0c15 \u0c38\u0c4d\u0c25\u0c3e\u0c28\u0c3f\u0c15 \u0c28\u0c3f\u0c32\u0c4d\u0c35\u0c32\u0c4b \u0c28\u0c3f\u0c32\u0c4d\u0c35 \u0c1a\u0c47\u0c2f\u0c2c\u0c21\u0c24\u0c3e\u0c2f\u0c3f.",
|
| 219 |
+
"success": {
|
| 220 |
+
"saved": "\u0c35\u0c3f\u0c1c\u0c2f\u0c35\u0c02\u0c24\u0c02\u0c17\u0c3e \u0c38\u0c47\u0c35\u0c4d \u0c1a\u0c47\u0c2f\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f"
|
| 221 |
+
}
|
| 222 |
+
},
|
| 223 |
+
"alerts": {
|
| 224 |
+
"info": "Info",
|
| 225 |
+
"note": "Note",
|
| 226 |
+
"tip": "Tip",
|
| 227 |
+
"important": "Important",
|
| 228 |
+
"warning": "Warning",
|
| 229 |
+
"caution": "Caution",
|
| 230 |
+
"debug": "Debug",
|
| 231 |
+
"example": "Example",
|
| 232 |
+
"success": "Success",
|
| 233 |
+
"help": "Help",
|
| 234 |
+
"idea": "Idea",
|
| 235 |
+
"pending": "Pending",
|
| 236 |
+
"security": "Security",
|
| 237 |
+
"beta": "Beta",
|
| 238 |
+
"best-practice": "Best Practice"
|
| 239 |
+
},
|
| 240 |
+
"components": {
|
| 241 |
+
"MultiSelectInput": {
|
| 242 |
+
"placeholder": "\u0c0e\u0c02\u0c1a\u0c41\u0c15\u0c4b\u0c02\u0c21\u0c3f..."
|
| 243 |
+
}
|
| 244 |
+
}
|
| 245 |
+
}
|
.chainlit/translations/zh-CN.json
ADDED
|
@@ -0,0 +1,245 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "\u53d6\u6d88",
|
| 5 |
+
"confirm": "\u786e\u8ba4",
|
| 6 |
+
"continue": "\u7ee7\u7eed",
|
| 7 |
+
"goBack": "\u8fd4\u56de",
|
| 8 |
+
"reset": "\u91cd\u7f6e",
|
| 9 |
+
"submit": "\u63d0\u4ea4"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "\u52a0\u8f7d\u4e2d...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "\u53d1\u751f\u9519\u8bef",
|
| 15 |
+
"serverConnection": "\u65e0\u6cd5\u8fde\u63a5\u5230\u670d\u52a1\u5668"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "\u767b\u5f55\u4ee5\u8bbf\u95ee\u5e94\u7528",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "\u7535\u5b50\u90ae\u7bb1",
|
| 25 |
+
"required": "\u90ae\u7bb1\u662f\u5fc5\u586b\u9879",
|
| 26 |
+
"placeholder": "me@example.com"
|
| 27 |
+
},
|
| 28 |
+
"password": {
|
| 29 |
+
"label": "\u5bc6\u7801",
|
| 30 |
+
"required": "\u5bc6\u7801\u662f\u5fc5\u586b\u9879"
|
| 31 |
+
},
|
| 32 |
+
"actions": {
|
| 33 |
+
"signin": "\u767b\u5f55"
|
| 34 |
+
},
|
| 35 |
+
"alternativeText": {
|
| 36 |
+
"or": "\u6216"
|
| 37 |
+
}
|
| 38 |
+
},
|
| 39 |
+
"errors": {
|
| 40 |
+
"default": "\u65e0\u6cd5\u767b\u5f55",
|
| 41 |
+
"signin": "\u8bf7\u5c1d\u8bd5\u4f7f\u7528\u5176\u4ed6\u8d26\u53f7\u767b\u5f55",
|
| 42 |
+
"oauthSignin": "\u8bf7\u5c1d\u8bd5\u4f7f\u7528\u5176\u4ed6\u8d26\u53f7\u767b\u5f55",
|
| 43 |
+
"redirectUriMismatch": "\u91cd\u5b9a\u5411URI\u4e0eOAuth\u5e94\u7528\u914d\u7f6e\u4e0d\u5339\u914d",
|
| 44 |
+
"oauthCallback": "\u8bf7\u5c1d\u8bd5\u4f7f\u7528\u5176\u4ed6\u8d26\u53f7\u767b\u5f55",
|
| 45 |
+
"oauthCreateAccount": "\u8bf7\u5c1d\u8bd5\u4f7f\u7528\u5176\u4ed6\u8d26\u53f7\u767b\u5f55",
|
| 46 |
+
"emailCreateAccount": "\u8bf7\u5c1d\u8bd5\u4f7f\u7528\u5176\u4ed6\u8d26\u53f7\u767b\u5f55",
|
| 47 |
+
"callback": "\u8bf7\u5c1d\u8bd5\u4f7f\u7528\u5176\u4ed6\u8d26\u53f7\u767b\u5f55",
|
| 48 |
+
"oauthAccountNotLinked": "\u4e3a\u786e\u8ba4\u60a8\u7684\u8eab\u4efd\uff0c\u8bf7\u4f7f\u7528\u539f\u59cb\u8d26\u53f7\u767b\u5f55",
|
| 49 |
+
"emailSignin": "\u90ae\u4ef6\u53d1\u9001\u5931\u8d25",
|
| 50 |
+
"emailVerify": "\u8bf7\u9a8c\u8bc1\u60a8\u7684\u90ae\u7bb1\uff0c\u65b0\u7684\u9a8c\u8bc1\u90ae\u4ef6\u5df2\u53d1\u9001",
|
| 51 |
+
"credentialsSignin": "\u767b\u5f55\u5931\u8d25\u3002\u8bf7\u68c0\u67e5\u60a8\u63d0\u4f9b\u7684\u4fe1\u606f\u662f\u5426\u6b63\u786e",
|
| 52 |
+
"sessionRequired": "\u8bf7\u767b\u5f55\u4ee5\u8bbf\u95ee\u6b64\u9875\u9762"
|
| 53 |
+
}
|
| 54 |
+
},
|
| 55 |
+
"provider": {
|
| 56 |
+
"continue": "\u7ee7\u7eed\u4f7f\u7528{{provider}}"
|
| 57 |
+
}
|
| 58 |
+
},
|
| 59 |
+
"chat": {
|
| 60 |
+
"input": {
|
| 61 |
+
"placeholder": "\u5728\u6b64\u8f93\u5165\u60a8\u7684\u6d88\u606f...",
|
| 62 |
+
"actions": {
|
| 63 |
+
"send": "\u53d1\u9001\u6d88\u606f",
|
| 64 |
+
"stop": "\u505c\u6b62\u4efb\u52a1",
|
| 65 |
+
"attachFiles": "\u9644\u52a0\u6587\u4ef6"
|
| 66 |
+
}
|
| 67 |
+
},
|
| 68 |
+
"speech": {
|
| 69 |
+
"start": "\u5f00\u59cb\u5f55\u97f3",
|
| 70 |
+
"stop": "\u505c\u6b62\u5f55\u97f3",
|
| 71 |
+
"connecting": "\u8fde\u63a5\u4e2d"
|
| 72 |
+
},
|
| 73 |
+
"fileUpload": {
|
| 74 |
+
"dragDrop": "\u5c06\u6587\u4ef6\u62d6\u653e\u5230\u8fd9\u91cc",
|
| 75 |
+
"browse": "\u6d4f\u89c8\u6587\u4ef6",
|
| 76 |
+
"sizeLimit": "\u9650\u5236\uff1a",
|
| 77 |
+
"errors": {
|
| 78 |
+
"failed": "\u4e0a\u4f20\u5931\u8d25",
|
| 79 |
+
"cancelled": "\u5df2\u53d6\u6d88\u4e0a\u4f20"
|
| 80 |
+
},
|
| 81 |
+
"actions": {
|
| 82 |
+
"cancelUpload": "\u53d6\u6d88\u4e0a\u4f20",
|
| 83 |
+
"removeAttachment": "\u79fb\u9664\u9644\u4ef6"
|
| 84 |
+
}
|
| 85 |
+
},
|
| 86 |
+
"commands": {
|
| 87 |
+
"button": "\u5de5\u5177",
|
| 88 |
+
"changeTool": "\u66f4\u6362\u5de5\u5177",
|
| 89 |
+
"availableTools": "\u53ef\u7528\u5de5\u5177"
|
| 90 |
+
},
|
| 91 |
+
"messages": {
|
| 92 |
+
"status": {
|
| 93 |
+
"using": "\u4f7f\u7528\u4e2d",
|
| 94 |
+
"used": "\u5df2\u4f7f\u7528"
|
| 95 |
+
},
|
| 96 |
+
"actions": {
|
| 97 |
+
"copy": {
|
| 98 |
+
"button": "\u590d\u5236\u5230\u526a\u8d34\u677f",
|
| 99 |
+
"success": "\u5df2\u590d\u5236\uff01"
|
| 100 |
+
}
|
| 101 |
+
},
|
| 102 |
+
"feedback": {
|
| 103 |
+
"positive": "\u6709\u5e2e\u52a9",
|
| 104 |
+
"negative": "\u6ca1\u6709\u5e2e\u52a9",
|
| 105 |
+
"edit": "\u7f16\u8f91\u53cd\u9988",
|
| 106 |
+
"dialog": {
|
| 107 |
+
"title": "\u6dfb\u52a0\u8bc4\u8bba",
|
| 108 |
+
"submit": "\u63d0\u4ea4\u53cd\u9988",
|
| 109 |
+
"yourFeedback": "\u60a8\u7684\u53cd\u9988..."
|
| 110 |
+
},
|
| 111 |
+
"status": {
|
| 112 |
+
"updating": "\u66f4\u65b0\u4e2d",
|
| 113 |
+
"updated": "\u53cd\u9988\u5df2\u66f4\u65b0"
|
| 114 |
+
}
|
| 115 |
+
}
|
| 116 |
+
},
|
| 117 |
+
"history": {
|
| 118 |
+
"title": "\u6700\u8fd1\u8f93\u5165",
|
| 119 |
+
"empty": "\u7a7a\u7a7a\u5982\u4e5f...",
|
| 120 |
+
"show": "\u663e\u793a\u5386\u53f2"
|
| 121 |
+
},
|
| 122 |
+
"settings": {
|
| 123 |
+
"title": "\u8bbe\u7f6e\u9762\u677f",
|
| 124 |
+
"customize": "\u5728\u6b64\u81ea\u5b9a\u4e49\u60a8\u7684\u804a\u5929\u8bbe\u7f6e"
|
| 125 |
+
},
|
| 126 |
+
"watermark": "\u5927\u8bed\u8a00\u6a21\u578b\u53ef\u80fd\u4f1a\u72af\u9519\u3002\u8bf7\u6838\u5b9e\u91cd\u8981\u4fe1\u606f\u3002"
|
| 127 |
+
},
|
| 128 |
+
"threadHistory": {
|
| 129 |
+
"sidebar": {
|
| 130 |
+
"title": "\u5386\u53f2\u5bf9\u8bdd",
|
| 131 |
+
"filters": {
|
| 132 |
+
"search": "\u641c\u7d22",
|
| 133 |
+
"placeholder": "\u641c\u7d22\u4f1a\u8bdd..."
|
| 134 |
+
},
|
| 135 |
+
"timeframes": {
|
| 136 |
+
"today": "\u4eca\u5929",
|
| 137 |
+
"yesterday": "\u6628\u5929",
|
| 138 |
+
"previous7days": "\u8fc7\u53bb7\u5929",
|
| 139 |
+
"previous30days": "\u8fc7\u53bb30\u5929"
|
| 140 |
+
},
|
| 141 |
+
"empty": "\u672a\u627e\u5230\u5bf9\u8bdd",
|
| 142 |
+
"actions": {
|
| 143 |
+
"close": "\u5173\u95ed\u4fa7\u8fb9\u680f",
|
| 144 |
+
"open": "\u6253\u5f00\u4fa7\u8fb9\u680f"
|
| 145 |
+
}
|
| 146 |
+
},
|
| 147 |
+
"thread": {
|
| 148 |
+
"untitled": "\u672a\u547d\u540d\u5bf9\u8bdd",
|
| 149 |
+
"menu": {
|
| 150 |
+
"rename": "\u91cd\u547d\u540d",
|
| 151 |
+
"share": "\u5206\u4eab",
|
| 152 |
+
"delete": "\u5220\u9664"
|
| 153 |
+
},
|
| 154 |
+
"actions": {
|
| 155 |
+
"share": {
|
| 156 |
+
"title": "\u5206\u4eab\u804a\u5929\u94fe\u63a5",
|
| 157 |
+
"button": "\u5206\u4eab",
|
| 158 |
+
"status": {
|
| 159 |
+
"copied": "\u94fe\u63a5\u5df2\u590d\u5236",
|
| 160 |
+
"created": "\u5206\u4eab\u94fe\u63a5\u5df2\u521b\u5efa\uff01",
|
| 161 |
+
"unshared": "\u5df2\u7981\u7528\u6b64\u5bf9\u8bdd\u7684\u5206\u4eab"
|
| 162 |
+
},
|
| 163 |
+
"error": {
|
| 164 |
+
"create": "\u521b\u5efa\u5206\u4eab\u94fe\u63a5\u5931\u8d25",
|
| 165 |
+
"unshare": "\u53d6\u6d88\u5bf9\u8bdd\u5206\u4eab\u5931\u8d25"
|
| 166 |
+
}
|
| 167 |
+
},
|
| 168 |
+
"delete": {
|
| 169 |
+
"title": "\u786e\u8ba4\u5220\u9664",
|
| 170 |
+
"description": "\u8fd9\u5c06\u5220\u9664\u8be5\u5bf9\u8bdd\u53ca\u5176\u6240\u6709\u6d88\u606f\u548c\u5143\u7d20\u3002\u6b64\u64cd\u4f5c\u65e0\u6cd5\u64a4\u9500",
|
| 171 |
+
"success": "\u5bf9\u8bdd\u5df2\u5220\u9664",
|
| 172 |
+
"inProgress": "\u6b63\u5728\u5220\u9664\u5bf9\u8bdd"
|
| 173 |
+
},
|
| 174 |
+
"rename": {
|
| 175 |
+
"title": "\u91cd\u547d\u540d\u5bf9\u8bdd",
|
| 176 |
+
"description": "\u4e3a\u6b64\u5bf9\u8bdd\u8f93\u5165\u65b0\u540d\u79f0",
|
| 177 |
+
"form": {
|
| 178 |
+
"name": {
|
| 179 |
+
"label": "\u540d\u79f0",
|
| 180 |
+
"placeholder": "\u8f93\u5165\u65b0\u540d\u79f0"
|
| 181 |
+
}
|
| 182 |
+
},
|
| 183 |
+
"success": "\u5bf9\u8bdd\u5df2\u91cd\u547d\u540d\uff01",
|
| 184 |
+
"inProgress": "\u6b63\u5728\u91cd\u547d\u540d\u5bf9\u8bdd"
|
| 185 |
+
}
|
| 186 |
+
}
|
| 187 |
+
}
|
| 188 |
+
},
|
| 189 |
+
"navigation": {
|
| 190 |
+
"header": {
|
| 191 |
+
"chat": "\u804a\u5929",
|
| 192 |
+
"readme": "\u8bf4\u660e",
|
| 193 |
+
"theme": {
|
| 194 |
+
"light": "\u6d45\u8272\u4e3b\u9898",
|
| 195 |
+
"dark": "\u6df1\u8272\u4e3b\u9898",
|
| 196 |
+
"system": "\u8ddf\u968f\u7cfb\u7edf"
|
| 197 |
+
}
|
| 198 |
+
},
|
| 199 |
+
"newChat": {
|
| 200 |
+
"button": "\u65b0\u5efa\u5bf9\u8bdd",
|
| 201 |
+
"dialog": {
|
| 202 |
+
"title": "\u521b\u5efa\u65b0\u5bf9\u8bdd",
|
| 203 |
+
"description": "\u8fd9\u5c06\u6e05\u9664\u60a8\u5f53\u524d\u7684\u804a\u5929\u8bb0\u5f55\u3002\u786e\u5b9a\u8981\u7ee7\u7eed\u5417\uff1f",
|
| 204 |
+
"tooltip": "\u65b0\u5efa\u5bf9\u8bdd"
|
| 205 |
+
}
|
| 206 |
+
},
|
| 207 |
+
"user": {
|
| 208 |
+
"menu": {
|
| 209 |
+
"settings": "\u8bbe\u7f6e",
|
| 210 |
+
"settingsKey": "S",
|
| 211 |
+
"apiKeys": "API\u5bc6\u94a5",
|
| 212 |
+
"logout": "\u9000\u51fa\u767b\u5f55"
|
| 213 |
+
}
|
| 214 |
+
}
|
| 215 |
+
},
|
| 216 |
+
"apiKeys": {
|
| 217 |
+
"title": "\u6240\u9700API\u5bc6\u94a5",
|
| 218 |
+
"description": "\u4f7f\u7528\u6b64\u5e94\u7528\u9700\u8981\u4ee5\u4e0bAPI\u5bc6\u94a5\u3002\u8fd9\u4e9b\u5bc6\u94a5\u5b58\u50a8\u5728\u60a8\u8bbe\u5907\u7684\u672c\u5730\u5b58\u50a8\u4e2d\u3002",
|
| 219 |
+
"success": {
|
| 220 |
+
"saved": "\u4fdd\u5b58\u6210\u529f"
|
| 221 |
+
}
|
| 222 |
+
},
|
| 223 |
+
"alerts": {
|
| 224 |
+
"info": "\u4fe1\u606f",
|
| 225 |
+
"note": "\u6ce8\u91ca",
|
| 226 |
+
"tip": "\u63d0\u793a",
|
| 227 |
+
"important": "\u91cd\u8981",
|
| 228 |
+
"warning": "\u8b66\u544a",
|
| 229 |
+
"caution": "\u6ce8\u610f",
|
| 230 |
+
"debug": "\u8c03\u8bd5",
|
| 231 |
+
"example": "\u793a\u4f8b",
|
| 232 |
+
"success": "\u6210\u529f",
|
| 233 |
+
"help": "\u5e2e\u52a9",
|
| 234 |
+
"idea": "\u60f3\u6cd5",
|
| 235 |
+
"pending": "\u5f85\u5904\u7406",
|
| 236 |
+
"security": "\u5b89\u5168",
|
| 237 |
+
"beta": "\u6d4b\u8bd5",
|
| 238 |
+
"best-practice": "\u6700\u4f73\u5b9e\u8df5"
|
| 239 |
+
},
|
| 240 |
+
"components": {
|
| 241 |
+
"MultiSelectInput": {
|
| 242 |
+
"placeholder": "\u9009\u62e9..."
|
| 243 |
+
}
|
| 244 |
+
}
|
| 245 |
+
}
|
.chainlit/translations/zh-TW.json
ADDED
|
@@ -0,0 +1,245 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "\u53d6\u6d88",
|
| 5 |
+
"confirm": "\u78ba\u8a8d",
|
| 6 |
+
"continue": "\u7e7c\u7e8c",
|
| 7 |
+
"goBack": "\u8fd4\u56de",
|
| 8 |
+
"reset": "\u91cd\u8a2d",
|
| 9 |
+
"submit": "\u9001\u51fa"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "\u8f09\u5165\u4e2d...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "\u767c\u751f\u932f\u8aa4",
|
| 15 |
+
"serverConnection": "\u7121\u6cd5\u9023\u7dda\u5230\u4f3a\u670d\u5668"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "\u767b\u5165\u4ee5\u5b58\u53d6\u61c9\u7528\u7a0b\u5f0f",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "\u96fb\u5b50\u4fe1\u7bb1",
|
| 25 |
+
"required": "\u4fe1\u7bb1\u662f\u5fc5\u586b\u9805\u76ee",
|
| 26 |
+
"placeholder": "me@example.com"
|
| 27 |
+
},
|
| 28 |
+
"password": {
|
| 29 |
+
"label": "\u5bc6\u78bc",
|
| 30 |
+
"required": "\u5bc6\u78bc\u662f\u5fc5\u586b\u9805\u76ee"
|
| 31 |
+
},
|
| 32 |
+
"actions": {
|
| 33 |
+
"signin": "\u767b\u5165"
|
| 34 |
+
},
|
| 35 |
+
"alternativeText": {
|
| 36 |
+
"or": "\u6216"
|
| 37 |
+
}
|
| 38 |
+
},
|
| 39 |
+
"errors": {
|
| 40 |
+
"default": "\u7121\u6cd5\u767b\u5165",
|
| 41 |
+
"signin": "\u8acb\u5617\u8a66\u4f7f\u7528\u5176\u5b83\u5e33\u865f\u767b\u5165",
|
| 42 |
+
"oauthSignin": "\u8acb\u5617\u8a66\u4f7f\u7528\u5176\u5b83\u5e33\u865f\u767b\u5165",
|
| 43 |
+
"redirectUriMismatch": "\u91cd\u65b0\u5c0e\u5411URI\u8207OAuth App\u8a2d\u5b9a\u4e0d\u76f8\u7b26",
|
| 44 |
+
"oauthCallback": "\u8acb\u5617\u8a66\u4f7f\u7528\u5176\u5b83\u5e33\u865f\u767b\u5165",
|
| 45 |
+
"oauthCreateAccount": "\u8acb\u5617\u8a66\u4f7f\u7528\u5176\u5b83\u5e33\u865f\u767b\u5165",
|
| 46 |
+
"emailCreateAccount": "\u8acb\u5617\u8a66\u4f7f\u7528\u5176\u5b83\u5e33\u865f\u767b\u5165",
|
| 47 |
+
"callback": "\u8acb\u5617\u8a66\u4f7f\u7528\u5176\u5b83\u5e33\u865f\u767b\u5165",
|
| 48 |
+
"oauthAccountNotLinked": "\u70ba\u78ba\u8a8d\u60a8\u7684\u8eab\u4efd\uff0c\u8acb\u4ee5\u539f\u672c\u4f7f\u7528\u7684\u5e33\u865f\u767b\u5165",
|
| 49 |
+
"emailSignin": "\u96fb\u5b50\u90f5\u4ef6\u767c\u9001\u5931\u6557",
|
| 50 |
+
"emailVerify": "\u8acb\u9a57\u8b49\u60a8\u7684\u96fb\u5b50\u4fe1\u7bb1\uff0c\u65b0\u7684\u9a57\u8b49\u90f5\u4ef6\u5df2\u767c\u9001",
|
| 51 |
+
"credentialsSignin": "\u767b\u5165\u5931\u6557\u3002\u8acb\u6aa2\u67e5\u60a8\u63d0\u4f9b\u7684\u8cc7\u8a0a\u662f\u5426\u6b63\u78ba",
|
| 52 |
+
"sessionRequired": "\u8acb\u767b\u5165\u4ee5\u5b58\u53d6\u6b64\u9801\u9762"
|
| 53 |
+
}
|
| 54 |
+
},
|
| 55 |
+
"provider": {
|
| 56 |
+
"continue": "\u7e7c\u7e8c\u4f7f\u7528{{provider}}"
|
| 57 |
+
}
|
| 58 |
+
},
|
| 59 |
+
"chat": {
|
| 60 |
+
"input": {
|
| 61 |
+
"placeholder": "\u5728\u6b64\u8f38\u5165\u60a8\u7684\u8a0a\u606f...",
|
| 62 |
+
"actions": {
|
| 63 |
+
"send": "\u767c\u9001\u8a0a\u606f",
|
| 64 |
+
"stop": "\u505c\u6b62\u4efb\u52d9",
|
| 65 |
+
"attachFiles": "\u9644\u52a0\u6a94\u6848"
|
| 66 |
+
}
|
| 67 |
+
},
|
| 68 |
+
"speech": {
|
| 69 |
+
"start": "\u958b\u59cb\u9304\u97f3",
|
| 70 |
+
"stop": "\u505c\u6b62\u9304\u97f3",
|
| 71 |
+
"connecting": "\u9023\u7dda\u4e2d"
|
| 72 |
+
},
|
| 73 |
+
"fileUpload": {
|
| 74 |
+
"dragDrop": "\u62d6\u66f3\u6a94\u6848\u5230\u9019\u88e1",
|
| 75 |
+
"browse": "\u700f\u89bd\u6a94\u6848",
|
| 76 |
+
"sizeLimit": "\u9650\u5236\uff1a",
|
| 77 |
+
"errors": {
|
| 78 |
+
"failed": "\u4e0a\u50b3\u5931\u6557",
|
| 79 |
+
"cancelled": "\u5df2\u53d6\u6d88\u4e0a\u50b3"
|
| 80 |
+
},
|
| 81 |
+
"actions": {
|
| 82 |
+
"cancelUpload": "\u53d6\u6d88\u4e0a\u50b3",
|
| 83 |
+
"removeAttachment": "\u79fb\u9664\u9644\u4ef6"
|
| 84 |
+
}
|
| 85 |
+
},
|
| 86 |
+
"commands": {
|
| 87 |
+
"button": "\u5de5\u5177",
|
| 88 |
+
"changeTool": "\u66f4\u63db\u5de5\u5177",
|
| 89 |
+
"availableTools": "\u53ef\u7528\u5de5\u5177"
|
| 90 |
+
},
|
| 91 |
+
"messages": {
|
| 92 |
+
"status": {
|
| 93 |
+
"using": "\u6b63\u5728\u4f7f\u7528",
|
| 94 |
+
"used": "\u5df2\u4f7f\u7528"
|
| 95 |
+
},
|
| 96 |
+
"actions": {
|
| 97 |
+
"copy": {
|
| 98 |
+
"button": "\u8907\u88fd\u5230\u526a\u8cbc\u7c3f",
|
| 99 |
+
"success": "\u5df2\u8907\u88fd\uff01"
|
| 100 |
+
}
|
| 101 |
+
},
|
| 102 |
+
"feedback": {
|
| 103 |
+
"positive": "\u6709\u5e6b\u52a9",
|
| 104 |
+
"negative": "\u6c92\u6709\u5e6b\u52a9",
|
| 105 |
+
"edit": "\u7de8\u8f2f\u56de\u994b",
|
| 106 |
+
"dialog": {
|
| 107 |
+
"title": "\u65b0\u589e\u8a55\u8ad6",
|
| 108 |
+
"submit": "\u9001\u51fa\u56de\u994b",
|
| 109 |
+
"yourFeedback": "\u60a8\u7684\u56de\u994b..."
|
| 110 |
+
},
|
| 111 |
+
"status": {
|
| 112 |
+
"updating": "\u66f4\u65b0\u4e2d",
|
| 113 |
+
"updated": "\u56de\u994b\u5df2\u66f4\u65b0"
|
| 114 |
+
}
|
| 115 |
+
}
|
| 116 |
+
},
|
| 117 |
+
"history": {
|
| 118 |
+
"title": "\u6700\u8fd1\u8f38\u5165",
|
| 119 |
+
"empty": "\u7a7a\u7a7a\u5982\u4e5f...",
|
| 120 |
+
"show": "\u986f\u793a\u6b77\u53f2"
|
| 121 |
+
},
|
| 122 |
+
"settings": {
|
| 123 |
+
"title": "\u8a2d\u5b9a\u9762\u677f",
|
| 124 |
+
"customize": "\u5728\u6b64\u81ea\u5b9a\u7fa9\u60a8\u7684\u804a\u5929\u8a2d\u5b9a"
|
| 125 |
+
},
|
| 126 |
+
"watermark": "\u5927\u578b\u8a9e\u8a00\u6a21\u578b\u53ef\u80fd\u6703\u72af\u932f\u3002\u8acb\u6838\u5be6\u91cd\u8981\u8cc7\u8a0a\u3002"
|
| 127 |
+
},
|
| 128 |
+
"threadHistory": {
|
| 129 |
+
"sidebar": {
|
| 130 |
+
"title": "\u6b77\u53f2\u5c0d\u8a71",
|
| 131 |
+
"filters": {
|
| 132 |
+
"search": "\u641c\u5c0b",
|
| 133 |
+
"placeholder": "\u641c\u5c0b\u5c0d\u8a71..."
|
| 134 |
+
},
|
| 135 |
+
"timeframes": {
|
| 136 |
+
"today": "\u4eca\u5929",
|
| 137 |
+
"yesterday": "\u6628\u5929",
|
| 138 |
+
"previous7days": "\u904e\u53bb7\u5929",
|
| 139 |
+
"previous30days": "\u904e\u53bb30\u5929"
|
| 140 |
+
},
|
| 141 |
+
"empty": "\u672a\u627e\u5230\u5c0d\u8a71",
|
| 142 |
+
"actions": {
|
| 143 |
+
"close": "\u95dc\u9589\u5074\u908a\u6b04",
|
| 144 |
+
"open": "\u6253\u958b\u5074\u908a\u6b04"
|
| 145 |
+
}
|
| 146 |
+
},
|
| 147 |
+
"thread": {
|
| 148 |
+
"untitled": "\u672a\u547d\u540d\u5c0d\u8a71",
|
| 149 |
+
"menu": {
|
| 150 |
+
"rename": "\u91cd\u65b0\u547d\u540d",
|
| 151 |
+
"share": "\u5206\u4eab",
|
| 152 |
+
"delete": "\u522a\u9664"
|
| 153 |
+
},
|
| 154 |
+
"actions": {
|
| 155 |
+
"share": {
|
| 156 |
+
"title": "\u5206\u4eab\u804a\u5929\u9023\u7d50",
|
| 157 |
+
"button": "\u5206\u4eab",
|
| 158 |
+
"status": {
|
| 159 |
+
"copied": "\u9023\u7d50\u5df2\u8907\u88fd",
|
| 160 |
+
"created": "\u5206\u4eab\u9023\u7d50\u5df2\u5efa\u7acb\uff01",
|
| 161 |
+
"unshared": "\u5df2\u505c\u7528\u6b64\u5c0d\u8a71\u7684\u5206\u4eab"
|
| 162 |
+
},
|
| 163 |
+
"error": {
|
| 164 |
+
"create": "\u5efa\u7acb\u5206\u4eab\u9023\u7d50\u5931\u6557",
|
| 165 |
+
"unshare": "\u53d6\u6d88\u5c0d\u8a71\u5206\u4eab\u5931\u6557"
|
| 166 |
+
}
|
| 167 |
+
},
|
| 168 |
+
"delete": {
|
| 169 |
+
"title": "\u78ba\u8a8d\u522a\u9664",
|
| 170 |
+
"description": "\u9019\u5c07\u522a\u9664\u8a72\u5c0d\u8a71\u53ca\u5176\u6240\u6709\u8a0a\u606f\u548c\u5143\u4ef6\u3002\u6b64\u64cd\u4f5c\u7121\u6cd5\u5fa9\u539f\u3002",
|
| 171 |
+
"success": "\u5c0d\u8a71\u5df2\u522a\u9664",
|
| 172 |
+
"inProgress": "\u6b63\u5728\u522a\u9664\u5c0d\u8a71"
|
| 173 |
+
},
|
| 174 |
+
"rename": {
|
| 175 |
+
"title": "\u91cd\u65b0\u547d\u540d\u5c0d\u8a71",
|
| 176 |
+
"description": "\u70ba\u6b64\u5c0d\u8a71\u8f38\u5165\u65b0\u540d\u7a31",
|
| 177 |
+
"form": {
|
| 178 |
+
"name": {
|
| 179 |
+
"label": "\u540d\u7a31",
|
| 180 |
+
"placeholder": "\u8f38\u5165\u65b0\u540d\u7a31"
|
| 181 |
+
}
|
| 182 |
+
},
|
| 183 |
+
"success": "\u5c0d\u8a71\u5df2\u91cd\u65b0\u547d\u540d\uff01",
|
| 184 |
+
"inProgress": "\u6b63\u5728\u91cd\u65b0\u547d\u540d\u5c0d\u8a71"
|
| 185 |
+
}
|
| 186 |
+
}
|
| 187 |
+
}
|
| 188 |
+
},
|
| 189 |
+
"navigation": {
|
| 190 |
+
"header": {
|
| 191 |
+
"chat": "\u804a\u5929",
|
| 192 |
+
"readme": "\u8aaa\u660e",
|
| 193 |
+
"theme": {
|
| 194 |
+
"light": "\u6dfa\u8272\u4e3b\u984c",
|
| 195 |
+
"dark": "\u6df1\u8272\u4e3b\u984c",
|
| 196 |
+
"system": "\u8ddf\u96a8\u7cfb\u7d71"
|
| 197 |
+
}
|
| 198 |
+
},
|
| 199 |
+
"newChat": {
|
| 200 |
+
"button": "\u65b0\u5efa\u5c0d\u8a71",
|
| 201 |
+
"dialog": {
|
| 202 |
+
"title": "\u5275\u5efa\u65b0\u5c0d\u8a71",
|
| 203 |
+
"description": "\u9019\u5c07\u6e05\u9664\u60a8\u7576\u524d\u7684\u804a\u5929\u8a18\u9304\u3002\u78ba\u5b9a\u8981\u7e7c\u7e8c\u55ce\uff1f",
|
| 204 |
+
"tooltip": "\u65b0\u5efa\u5c0d\u8a71"
|
| 205 |
+
}
|
| 206 |
+
},
|
| 207 |
+
"user": {
|
| 208 |
+
"menu": {
|
| 209 |
+
"settings": "\u8a2d\u5b9a",
|
| 210 |
+
"settingsKey": "S",
|
| 211 |
+
"apiKeys": "API\u91d1\u9470",
|
| 212 |
+
"logout": "\u767b\u51fa"
|
| 213 |
+
}
|
| 214 |
+
}
|
| 215 |
+
},
|
| 216 |
+
"apiKeys": {
|
| 217 |
+
"title": "\u6240\u9700API\u91d1\u9470",
|
| 218 |
+
"description": "\u4f7f\u7528\u6b64\u61c9\u7528\u7a0b\u5f0f\u9700\u8981\u4ee5\u4e0bAPI\u91d1\u9470\u3002\u9019\u4e9b\u91d1\u9470\u5132\u5b58\u5728\u60a8\u8a2d\u5099\u7684\u672c\u5730\u5132\u5b58\u7a7a\u9593\u4e2d\u3002",
|
| 219 |
+
"success": {
|
| 220 |
+
"saved": "\u5132\u5b58\u6210\u529f"
|
| 221 |
+
}
|
| 222 |
+
},
|
| 223 |
+
"alerts": {
|
| 224 |
+
"info": "\u8cc7\u8a0a",
|
| 225 |
+
"note": "\u6ce8\u91cb",
|
| 226 |
+
"tip": "\u63d0\u793a",
|
| 227 |
+
"important": "\u91cd\u8981",
|
| 228 |
+
"warning": "\u8b66\u544a",
|
| 229 |
+
"caution": "\u6ce8\u610f",
|
| 230 |
+
"debug": "\u9664\u932f",
|
| 231 |
+
"example": "\u7bc4\u4f8b",
|
| 232 |
+
"success": "\u6210\u529f",
|
| 233 |
+
"help": "\u5e6b\u52a9",
|
| 234 |
+
"idea": "\u60f3\u6cd5",
|
| 235 |
+
"pending": "\u5f85\u8655\u7406",
|
| 236 |
+
"security": "\u5b89\u5168",
|
| 237 |
+
"beta": "\u6e2c\u8a66",
|
| 238 |
+
"best-practice": "\u6700\u4f73\u5be6\u8e10"
|
| 239 |
+
},
|
| 240 |
+
"components": {
|
| 241 |
+
"MultiSelectInput": {
|
| 242 |
+
"placeholder": "\u9078\u64c7..."
|
| 243 |
+
}
|
| 244 |
+
}
|
| 245 |
+
}
|
.dockerignore
CHANGED
|
@@ -51,8 +51,8 @@ Thumbs.db
|
|
| 51 |
# =========================================
|
| 52 |
data/
|
| 53 |
outputs/
|
| 54 |
-
runs/
|
| 55 |
artifacts/
|
|
|
|
| 56 |
*.pt
|
| 57 |
*.pth
|
| 58 |
*.ckpt
|
|
|
|
| 51 |
# =========================================
|
| 52 |
data/
|
| 53 |
outputs/
|
|
|
|
| 54 |
artifacts/
|
| 55 |
+
trained_models/
|
| 56 |
*.pt
|
| 57 |
*.pth
|
| 58 |
*.ckpt
|
.gitignore
CHANGED
|
@@ -50,13 +50,13 @@ Thumbs.db
|
|
| 50 |
# =========================================
|
| 51 |
# Machine Learning artifacts
|
| 52 |
# =========================================
|
| 53 |
-
data/
|
| 54 |
-
|
|
|
|
| 55 |
runs/
|
| 56 |
artifacts/
|
| 57 |
-
trained_models/
|
| 58 |
!trained_models/README.md
|
| 59 |
-
.chainlit/
|
| 60 |
*.pt
|
| 61 |
*.pth
|
| 62 |
*.ckpt
|
|
|
|
| 50 |
# =========================================
|
| 51 |
# Machine Learning artifacts
|
| 52 |
# =========================================
|
| 53 |
+
data/*
|
| 54 |
+
!data/README.md
|
| 55 |
+
outputs/*
|
| 56 |
runs/
|
| 57 |
artifacts/
|
| 58 |
+
trained_models/*
|
| 59 |
!trained_models/README.md
|
|
|
|
| 60 |
*.pt
|
| 61 |
*.pth
|
| 62 |
*.ckpt
|
.pre-commit-config.yaml
CHANGED
|
@@ -1,17 +1,26 @@
|
|
| 1 |
repos:
|
| 2 |
-
- repo: https://github.com/astral-sh/ruff-pre-commit
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
- repo: https://github.com/pre-commit/
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
repos:
|
| 2 |
+
- repo: https://github.com/astral-sh/ruff-pre-commit
|
| 3 |
+
rev: v0.12.12
|
| 4 |
+
hooks:
|
| 5 |
+
- id: ruff
|
| 6 |
+
args: ["--fix"]
|
| 7 |
+
- id: ruff-format
|
| 8 |
+
- repo: https://github.com/psf/black-pre-commit-mirror
|
| 9 |
+
rev: 24.10.0
|
| 10 |
+
hooks:
|
| 11 |
+
- id: black
|
| 12 |
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
| 13 |
+
rev: v6.0.0
|
| 14 |
+
hooks:
|
| 15 |
+
- id: end-of-file-fixer
|
| 16 |
+
- id: trailing-whitespace
|
| 17 |
+
- repo: https://github.com/pycqa/isort
|
| 18 |
+
rev: 5.13.2
|
| 19 |
+
hooks:
|
| 20 |
+
- id: isort
|
| 21 |
+
- repo: https://github.com/pre-commit/mirrors-mypy
|
| 22 |
+
rev: v1.17.1
|
| 23 |
+
hooks:
|
| 24 |
+
- id: mypy
|
| 25 |
+
args: ["--config-file=pyproject.toml"]
|
| 26 |
+
additional_dependencies: [pydantic>=2]
|
CONTRIBUTING.md
CHANGED
|
@@ -1,27 +1,40 @@
|
|
| 1 |
# Contributing to mini_transformer
|
| 2 |
|
| 3 |
-
Thanks for your interest in contributing!
|
| 4 |
|
| 5 |
-
1.
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
|
|
|
|
|
|
|
|
|
| 9 |
|
| 10 |
-
2.
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 17 |
|
| 18 |
-
3.
|
|
|
|
|
|
|
|
|
|
|
|
|
| 19 |
|
| 20 |
-
4.
|
| 21 |
-
|
| 22 |
-
|
| 23 |
|
| 24 |
-
5.
|
| 25 |
-
|
|
|
|
|
|
|
| 26 |
|
| 27 |
-
Feel free to open
|
|
|
|
| 1 |
# Contributing to mini_transformer
|
| 2 |
|
| 3 |
+
Thanks for your interest in contributing! The project mirrors the published package, so keeping the repo healthy benefits everyone who installs `mini-transformer`.
|
| 4 |
|
| 5 |
+
## 1. Environment
|
| 6 |
+
```bash
|
| 7 |
+
make create-env # creates/updates the conda env and installs extras
|
| 8 |
+
# or, if you prefer pip/venv:
|
| 9 |
+
python -m pip install -e .[dev,notebook,viz]
|
| 10 |
+
pre-commit install # optional but recommended
|
| 11 |
+
```
|
| 12 |
|
| 13 |
+
## 2. Quality Checklist
|
| 14 |
+
Run these commands before opening a pull request (they are quick and automated):
|
| 15 |
+
```bash
|
| 16 |
+
make fmt # ruff format + black
|
| 17 |
+
make lint-check # ruff lint (no auto-fix)
|
| 18 |
+
make type # mypy
|
| 19 |
+
make test # pytest (currently 130+ unit tests)
|
| 20 |
+
pre-commit run --all-files
|
| 21 |
+
```
|
| 22 |
+
- Notebook edits: clear execution outputs or re-run cells so they execute top-to-bottom.
|
| 23 |
+
- If you touch attention introspection or training, add/extend tests under `tests/units/`.
|
| 24 |
|
| 25 |
+
## 3. Working Style
|
| 26 |
+
- Prefer existing helper utilities (`mini_transformer.utils.*`, `model_loader`, etc.) instead of re-implementing logic.
|
| 27 |
+
- Keep imports sorted/compact; `ruff` handles this automatically.
|
| 28 |
+
- Default to strict type hints. If you need `Any`, document why in a short comment.
|
| 29 |
+
- For new configuration values, update both the dataclass in `mini_transformer/configs.py` and the YAML in `configs/`.
|
| 30 |
|
| 31 |
+
## 4. Documentation
|
| 32 |
+
- Update `README.md`, relevant notebooks, or in-repo docs when behaviour or flags change.
|
| 33 |
+
- Add docstrings for new public APIs and CLI options.
|
| 34 |
|
| 35 |
+
## 5. Pull Requests
|
| 36 |
+
- Describe the motivation, summarize the change, and list the verification steps you ran.
|
| 37 |
+
- Link any related issues or design discussions.
|
| 38 |
+
- Large or speculative changes? Please open an issue or discussion first so we can align on direction.
|
| 39 |
|
| 40 |
+
Thanks again for helping keep mini-transformer robust! Feel free to open issues for questions, proposals, or clarifications.
|
Dockerfile.dev
CHANGED
|
@@ -1,6 +1,5 @@
|
|
| 1 |
# syntax=docker/dockerfile:1
|
| 2 |
-
FROM python:3.
|
| 3 |
-
# FROM = choose a base OS + language runtime (Debian slim with Python 3.11)
|
| 4 |
|
| 5 |
ENV DEBIAN_FRONTEND=noninteractive \
|
| 6 |
PIP_NO_CACHE_DIR=1 \
|
|
@@ -10,18 +9,13 @@ ENV DEBIAN_FRONTEND=noninteractive \
|
|
| 10 |
RUN apt-get update && apt-get install -y --no-install-recommends \
|
| 11 |
git build-essential && \
|
| 12 |
rm -rf /var/lib/apt/lists/*
|
| 13 |
-
# RUN = execute at build time
|
| 14 |
-
# apt-get update -> refresh package index
|
| 15 |
-
# apt-get install -> install tools you might need (git, compilers)
|
| 16 |
-
# --no-install-recommends -> fewer extra packages
|
| 17 |
-
# rm -rf ... -> clean apt cache to shrink the layer
|
| 18 |
|
| 19 |
WORKDIR /app
|
| 20 |
|
| 21 |
COPY pyproject.toml README.md LICENSE ./
|
| 22 |
COPY src ./src
|
| 23 |
|
| 24 |
-
RUN pip install -U pip && pip install -e .[dev
|
| 25 |
|
| 26 |
COPY . .
|
| 27 |
|
|
|
|
| 1 |
# syntax=docker/dockerfile:1
|
| 2 |
+
FROM python:3.10-slim
|
|
|
|
| 3 |
|
| 4 |
ENV DEBIAN_FRONTEND=noninteractive \
|
| 5 |
PIP_NO_CACHE_DIR=1 \
|
|
|
|
| 9 |
RUN apt-get update && apt-get install -y --no-install-recommends \
|
| 10 |
git build-essential && \
|
| 11 |
rm -rf /var/lib/apt/lists/*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 12 |
|
| 13 |
WORKDIR /app
|
| 14 |
|
| 15 |
COPY pyproject.toml README.md LICENSE ./
|
| 16 |
COPY src ./src
|
| 17 |
|
| 18 |
+
RUN pip install -U pip && pip install -e .[dev]
|
| 19 |
|
| 20 |
COPY . .
|
| 21 |
|
Dockerfile.infer
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# syntax=docker/dockerfile:1
|
| 2 |
+
FROM python:3.10-slim
|
| 3 |
+
|
| 4 |
+
ENV DEBIAN_FRONTEND=noninteractive \
|
| 5 |
+
PIP_NO_CACHE_DIR=1 \
|
| 6 |
+
PYTHONDONTWRITEBYTECODE=1 \
|
| 7 |
+
PYTHONUNBUFFERED=1
|
| 8 |
+
|
| 9 |
+
RUN apt-get update && apt-get install -y --no-install-recommends \
|
| 10 |
+
git build-essential && \
|
| 11 |
+
rm -rf /var/lib/apt/lists/*
|
| 12 |
+
|
| 13 |
+
WORKDIR /app
|
| 14 |
+
|
| 15 |
+
COPY pyproject.toml README.md LICENSE ./
|
| 16 |
+
COPY src ./src
|
| 17 |
+
|
| 18 |
+
RUN pip install -U pip && pip install -e .[server,viz,notebook]
|
| 19 |
+
|
| 20 |
+
RUN mkdir -p trained_models
|
| 21 |
+
|
| 22 |
+
CMD ["mini-transformer-ui", "--host", "0.0.0.0", "--port", "8000"]
|
Makefile
CHANGED
|
@@ -2,7 +2,7 @@ ENV?=mini-transformer
|
|
| 2 |
CONDA_RUN=conda run -n $(ENV)
|
| 3 |
PYTHON?=python
|
| 4 |
|
| 5 |
-
.PHONY: help create-env install precommit lint lint-check fmt fmt-check type test cov fetch-test fetch-small infer serve ui clean clean-all docker-build docker-run
|
| 6 |
|
| 7 |
help:
|
| 8 |
@echo "Available targets:"
|
|
@@ -23,8 +23,10 @@ help:
|
|
| 23 |
@echo " ui - Launch the Chainlit UI"
|
| 24 |
@echo " clean - Remove build/test caches"
|
| 25 |
@echo " clean-all - Clean caches plus notebooks outputs"
|
| 26 |
-
@echo " docker-build - Build the development Docker image"
|
| 27 |
-
@echo " docker-run - Drop into the development container"
|
|
|
|
|
|
|
| 28 |
|
| 29 |
create-env:
|
| 30 |
conda env create -n $(ENV) -f environment.yml || conda env update -n $(ENV) -f environment.yml
|
|
@@ -81,8 +83,14 @@ clean:
|
|
| 81 |
clean-all: clean
|
| 82 |
rm -rf notebooks/.ipynb_checkpoints outputs/*
|
| 83 |
|
| 84 |
-
docker-build:
|
| 85 |
docker compose build dev --no-cache
|
| 86 |
|
| 87 |
-
docker-run:
|
| 88 |
docker compose run --rm dev bash
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2 |
CONDA_RUN=conda run -n $(ENV)
|
| 3 |
PYTHON?=python
|
| 4 |
|
| 5 |
+
.PHONY: help create-env install precommit lint lint-check fmt fmt-check type test cov fetch-test fetch-small infer serve ui clean clean-all docker-build-dev docker-run-dev docker-build-infer docker-run-infer
|
| 6 |
|
| 7 |
help:
|
| 8 |
@echo "Available targets:"
|
|
|
|
| 23 |
@echo " ui - Launch the Chainlit UI"
|
| 24 |
@echo " clean - Remove build/test caches"
|
| 25 |
@echo " clean-all - Clean caches plus notebooks outputs"
|
| 26 |
+
@echo " docker-build-dev - Build the development Docker image"
|
| 27 |
+
@echo " docker-run-dev - Drop into the development container"
|
| 28 |
+
@echo " docker-build-infer - Build the inference Docker image"
|
| 29 |
+
@echo " docker-run-infer - Run the inference container exposing the Chainlit UI"
|
| 30 |
|
| 31 |
create-env:
|
| 32 |
conda env create -n $(ENV) -f environment.yml || conda env update -n $(ENV) -f environment.yml
|
|
|
|
| 83 |
clean-all: clean
|
| 84 |
rm -rf notebooks/.ipynb_checkpoints outputs/*
|
| 85 |
|
| 86 |
+
docker-build-dev:
|
| 87 |
docker compose build dev --no-cache
|
| 88 |
|
| 89 |
+
docker-run-dev:
|
| 90 |
docker compose run --rm dev bash
|
| 91 |
+
|
| 92 |
+
docker-build-infer:
|
| 93 |
+
docker compose build infer --no-cache
|
| 94 |
+
|
| 95 |
+
docker-run-infer:
|
| 96 |
+
docker compose run --rm --service-ports infer
|
README.md
CHANGED
|
@@ -27,6 +27,14 @@ pip install "mini-transformer[server,viz]"
|
|
| 27 |
- `tests/` – unit and smoke tests.
|
| 28 |
- Supporting files: `pyproject.toml`, `Makefile`, `Dockerfile.dev`, `environment.yml`, etc.
|
| 29 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 30 |
## Preparing Models
|
| 31 |
Download the demo models hosted on Hugging Face:
|
| 32 |
```bash
|
|
@@ -75,6 +83,7 @@ Follow these steps to spin up the bundled Chainlit chat UI for a local inference
|
|
| 75 |
mini-transformer-ui --model AlaBoussoffara__transformer_small --host 0.0.0.0 --port 8000
|
| 76 |
```
|
| 77 |
4. Open http://localhost:8000 in your browser, send a prompt, and use `/model` in chat to switch between downloaded checkpoints.
|
|
|
|
| 78 |
|
| 79 |
### Environment Variables
|
| 80 |
- `MINI_TRANSFORMER_MODELS` – override the models root directory.
|
|
@@ -83,6 +92,14 @@ Follow these steps to spin up the bundled Chainlit chat UI for a local inference
|
|
| 83 |
- `MINI_TRANSFORMER_UI_HOST` / `MINI_TRANSFORMER_UI_PORT` – defaults for Chainlit binding.
|
| 84 |
- Optional overrides: `MINI_TRANSFORMER_CHECKPOINT_BEST`, `MINI_TRANSFORMER_TOKENIZER_PATH`, `MINI_TRANSFORMER_OUTPUT_DIR`, etc.
|
| 85 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 86 |
## Programmatic Inference
|
| 87 |
```python
|
| 88 |
from mini_transformer.model_loader import compose_model_config
|
|
@@ -99,8 +116,14 @@ make create-env
|
|
| 99 |
make lint
|
| 100 |
make type
|
| 101 |
make test
|
|
|
|
| 102 |
```
|
| 103 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 104 |
## Makefile Shortcuts
|
| 105 |
```bash
|
| 106 |
make help # list common tasks
|
|
@@ -108,6 +131,7 @@ make create-env # create/update the conda env and install extras
|
|
| 108 |
make lint # format + lint (ruff + black)
|
| 109 |
make lint-check # lint without auto-fixes
|
| 110 |
make fmt # format code
|
|
|
|
| 111 |
make type # mypy
|
| 112 |
make test # pytest
|
| 113 |
make cov # pytest with coverage
|
|
@@ -116,8 +140,10 @@ make fetch-small # download AlaBoussoffara/transformer_small
|
|
| 116 |
make infer # quick demo inference
|
| 117 |
make serve # run FastAPI server (reload mode)
|
| 118 |
make ui # launch Chainlit UI
|
| 119 |
-
make docker-build
|
| 120 |
-
make docker-run
|
|
|
|
|
|
|
| 121 |
```
|
| 122 |
|
| 123 |
## Full Workflow At A Glance
|
|
|
|
| 27 |
- `tests/` – unit and smoke tests.
|
| 28 |
- Supporting files: `pyproject.toml`, `Makefile`, `Dockerfile.dev`, `environment.yml`, etc.
|
| 29 |
|
| 30 |
+
## Training Notebook
|
| 31 |
+
`notebooks/train.ipynb` demonstrates the Hydra-driven training loop used during development.
|
| 32 |
+
- All hyper-parameters come from the composed config (see `configs/train_mode.yaml`); the key knobs live under `trainer.*`.
|
| 33 |
+
- Checkpoint cadence is controlled by `trainer.save_interval` (in optimizer steps) and always saves on epoch boundaries.
|
| 34 |
+
- Dataloader behaviour (workers, pinned memory) can be tuned via `trainer.num_workers` and `trainer.pin_memory`.
|
| 35 |
+
- Gradient accumulation is respected even for partial micro-batch sets, so you can safely mix different batch counts.
|
| 36 |
+
For long-running jobs consider exporting the notebook to a script (`jupyter nbconvert --to script`) or reusing the same logic inside a CLI tool.
|
| 37 |
+
|
| 38 |
## Preparing Models
|
| 39 |
Download the demo models hosted on Hugging Face:
|
| 40 |
```bash
|
|
|
|
| 83 |
mini-transformer-ui --model AlaBoussoffara__transformer_small --host 0.0.0.0 --port 8000
|
| 84 |
```
|
| 85 |
4. Open http://localhost:8000 in your browser, send a prompt, and use `/model` in chat to switch between downloaded checkpoints.
|
| 86 |
+
Use `/config temperature=0.7 top_k=50` (or `/config reset`) to tweak generation settings on the fly.
|
| 87 |
|
| 88 |
### Environment Variables
|
| 89 |
- `MINI_TRANSFORMER_MODELS` – override the models root directory.
|
|
|
|
| 92 |
- `MINI_TRANSFORMER_UI_HOST` / `MINI_TRANSFORMER_UI_PORT` – defaults for Chainlit binding.
|
| 93 |
- Optional overrides: `MINI_TRANSFORMER_CHECKPOINT_BEST`, `MINI_TRANSFORMER_TOKENIZER_PATH`, `MINI_TRANSFORMER_OUTPUT_DIR`, etc.
|
| 94 |
|
| 95 |
+
## Docker Inference UI
|
| 96 |
+
Build the lean inference image and launch the Chainlit UI in a container:
|
| 97 |
+
```bash
|
| 98 |
+
make docker-build-infer
|
| 99 |
+
make docker-run-infer # press Ctrl+C to stop
|
| 100 |
+
```
|
| 101 |
+
Models stay outside the container under `trained_models/`, mounted at runtime with docker compose.
|
| 102 |
+
|
| 103 |
## Programmatic Inference
|
| 104 |
```python
|
| 105 |
from mini_transformer.model_loader import compose_model_config
|
|
|
|
| 116 |
make lint
|
| 117 |
make type
|
| 118 |
make test
|
| 119 |
+
pre-commit run --all-files # optional: run all hooks locally
|
| 120 |
```
|
| 121 |
|
| 122 |
+
## Testing & QA
|
| 123 |
+
- Unit tests live under `tests/units/`; run them with `make test` or `python -m pytest`.
|
| 124 |
+
- The suite covers core building blocks (attention math, masking, sampling), CLI flows, and attention-debug utilities—including both pre- and post-layernorm configurations.
|
| 125 |
+
- Add tests alongside new features; keeping coverage high ensures `mini-transformer` behaves the same whether it runs from the repo or as an installed package.
|
| 126 |
+
|
| 127 |
## Makefile Shortcuts
|
| 128 |
```bash
|
| 129 |
make help # list common tasks
|
|
|
|
| 131 |
make lint # format + lint (ruff + black)
|
| 132 |
make lint-check # lint without auto-fixes
|
| 133 |
make fmt # format code
|
| 134 |
+
make precommit # run the configured pre-commit hooks (auto-fixes where possible)
|
| 135 |
make type # mypy
|
| 136 |
make test # pytest
|
| 137 |
make cov # pytest with coverage
|
|
|
|
| 140 |
make infer # quick demo inference
|
| 141 |
make serve # run FastAPI server (reload mode)
|
| 142 |
make ui # launch Chainlit UI
|
| 143 |
+
make docker-build-dev # build the development container
|
| 144 |
+
make docker-run-dev # open an interactive shell in the development container
|
| 145 |
+
make docker-build-infer # build the inference/UI container
|
| 146 |
+
make docker-run-infer # run the inference service (Ctrl+C to stop)
|
| 147 |
```
|
| 148 |
|
| 149 |
## Full Workflow At A Glance
|
configs/generation/generation.yaml
CHANGED
|
@@ -2,8 +2,8 @@ max_new_tokens: 128
|
|
| 2 |
temperature: 1
|
| 3 |
top_k: 10
|
| 4 |
top_p: 0.6
|
| 5 |
-
do_sample:
|
| 6 |
presence_penalty: 0.6
|
| 7 |
frequency_penalty: 0.2
|
| 8 |
no_repeat_ngram: 4
|
| 9 |
-
min_steps_before_eos:
|
|
|
|
| 2 |
temperature: 1
|
| 3 |
top_k: 10
|
| 4 |
top_p: 0.6
|
| 5 |
+
do_sample: false
|
| 6 |
presence_penalty: 0.6
|
| 7 |
frequency_penalty: 0.2
|
| 8 |
no_repeat_ngram: 4
|
| 9 |
+
min_steps_before_eos: 20
|
configs/optim/Adamw.yaml
CHANGED
|
@@ -3,4 +3,3 @@ lr: 8e-4
|
|
| 3 |
betas: [0.9, 0.98]
|
| 4 |
eps: 1e-8
|
| 5 |
weight_decay: 0.08
|
| 6 |
-
no_decay_on_bias_norm_embed: true
|
|
|
|
| 3 |
betas: [0.9, 0.98]
|
| 4 |
eps: 1e-8
|
| 5 |
weight_decay: 0.08
|
|
|
configs/train_mode.yaml
CHANGED
|
@@ -1,5 +1,5 @@
|
|
| 1 |
defaults:
|
| 2 |
-
- model:
|
| 3 |
- tokenizer: bpe_16k
|
| 4 |
- dataset: medium_dataset
|
| 5 |
- optim: Adamw
|
|
|
|
| 1 |
defaults:
|
| 2 |
+
- model: medium_model
|
| 3 |
- tokenizer: bpe_16k
|
| 4 |
- dataset: medium_dataset
|
| 5 |
- optim: Adamw
|
configs/trainer/default.yaml
CHANGED
|
@@ -1,11 +1,11 @@
|
|
| 1 |
-
epochs:
|
| 2 |
batch_size: 128
|
| 3 |
shuffle: true
|
| 4 |
precision: "bf16"
|
| 5 |
gradient_accumulation: 2
|
| 6 |
clip_grad_norm: 0.5
|
| 7 |
eval_interval: 1
|
| 8 |
-
save_interval:
|
| 9 |
debug_interval: 1000
|
| 10 |
mixed_precision: true
|
| 11 |
gradient_checkpointing: true
|
|
|
|
| 1 |
+
epochs: 10
|
| 2 |
batch_size: 128
|
| 3 |
shuffle: true
|
| 4 |
precision: "bf16"
|
| 5 |
gradient_accumulation: 2
|
| 6 |
clip_grad_norm: 0.5
|
| 7 |
eval_interval: 1
|
| 8 |
+
save_interval: 50
|
| 9 |
debug_interval: 1000
|
| 10 |
mixed_precision: true
|
| 11 |
gradient_checkpointing: true
|
data/README.md
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Data Folder
|
| 2 |
+
|
| 3 |
+
This `data` folder contains datasets and resources used for the Mini-Transformer project.
|
| 4 |
+
|
| 5 |
+
## Structure
|
| 6 |
+
- **corpus/**: Text corpora for training and evaluation.
|
| 7 |
+
- **raw/**: Original, unprocessed datasets.
|
| 8 |
+
- **processed/**: Cleaned and preprocessed data ready for model training.
|
| 9 |
+
- **README.md**: Documentation for the data folder.
|
| 10 |
+
|
| 11 |
+
## Usage
|
| 12 |
+
|
| 13 |
+
Place your datasets in the appropriate subfolders. Ensure data is properly formatted before use.
|
| 14 |
+
## Used Datasets:
|
| 15 |
+
- small dataset: "ahazeemi/iwslt14-en-fr"
|
| 16 |
+
- medium dataset: "Helsinki-NLP/europarl", "en-fr"
|
| 17 |
+
- large dataset: "wmt/wmt14", "fr-en"
|
| 18 |
+
|
| 19 |
+
## Notes
|
| 20 |
+
|
| 21 |
+
- Do not commit sensitive or proprietary data.
|
| 22 |
+
- Update this README if the folder structure changes.
|
| 23 |
+
- For questions about data formats, refer to the main project documentation.
|
docker-compose.yml
CHANGED
|
@@ -19,3 +19,22 @@ services:
|
|
| 19 |
command: bash
|
| 20 |
ports:
|
| 21 |
- "8000:8000"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 19 |
command: bash
|
| 20 |
ports:
|
| 21 |
- "8000:8000"
|
| 22 |
+
|
| 23 |
+
infer:
|
| 24 |
+
build:
|
| 25 |
+
context: .
|
| 26 |
+
dockerfile: Dockerfile.infer
|
| 27 |
+
image: mini-transformer:infer
|
| 28 |
+
container_name: mini_transformer_infer
|
| 29 |
+
working_dir: /app
|
| 30 |
+
volumes:
|
| 31 |
+
- ./outputs:/app/outputs
|
| 32 |
+
- ./trained_models:/app/trained_models
|
| 33 |
+
environment:
|
| 34 |
+
MINI_TRANSFORMER_MODELS: /app/trained_models
|
| 35 |
+
MINI_TRANSFORMER_UI_HOST: 0.0.0.0
|
| 36 |
+
MINI_TRANSFORMER_UI_PORT: 8000
|
| 37 |
+
stdin_open: true
|
| 38 |
+
tty: true
|
| 39 |
+
ports:
|
| 40 |
+
- "8000:8000"
|
notebooks/load_data.ipynb
CHANGED
|
@@ -19,7 +19,7 @@
|
|
| 19 |
"\n",
|
| 20 |
"_ = load_dataset(\"ahazeemi/iwslt14-en-fr\", cache_dir=\"./data/raw\")\n",
|
| 21 |
"_ = load_dataset(\"Helsinki-NLP/europarl\", \"en-fr\", cache_dir=\"./data/raw\")\n",
|
| 22 |
-
"
|
| 23 |
]
|
| 24 |
},
|
| 25 |
{
|
|
@@ -32,29 +32,16 @@
|
|
| 32 |
},
|
| 33 |
{
|
| 34 |
"cell_type": "code",
|
| 35 |
-
"execution_count":
|
| 36 |
"id": "2e0838f5",
|
| 37 |
"metadata": {},
|
| 38 |
-
"outputs": [
|
| 39 |
-
{
|
| 40 |
-
"name": "stderr",
|
| 41 |
-
"output_type": "stream",
|
| 42 |
-
"text": [
|
| 43 |
-
"/home/ala-boussoffara/miniconda3/envs/mini-transformer/lib/python3.12/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
|
| 44 |
-
" from .autonotebook import tqdm as notebook_tqdm\n",
|
| 45 |
-
"Generating train split: 179435 examples [00:00, 1366541.45 examples/s]\n",
|
| 46 |
-
"Generating validation split: 903 examples [00:00, 558869.19 examples/s]\n",
|
| 47 |
-
"Generating test split: 3666 examples [00:00, 876193.43 examples/s]\n",
|
| 48 |
-
"Generating train split: 2051014 examples [00:01, 2040864.91 examples/s]\n"
|
| 49 |
-
]
|
| 50 |
-
}
|
| 51 |
-
],
|
| 52 |
"source": [
|
| 53 |
"from datasets import load_dataset\n",
|
| 54 |
"\n",
|
| 55 |
"small_dataset = load_dataset(\"./data/raw/ahazeemi___iwslt14-en-fr\")\n",
|
| 56 |
"medium_dataset = load_dataset(\"./data/raw/Helsinki-NLP___europarl\")\n",
|
| 57 |
-
"
|
| 58 |
]
|
| 59 |
},
|
| 60 |
{
|
|
@@ -67,31 +54,10 @@
|
|
| 67 |
},
|
| 68 |
{
|
| 69 |
"cell_type": "code",
|
| 70 |
-
"execution_count":
|
| 71 |
"id": "ca4d1867",
|
| 72 |
"metadata": {},
|
| 73 |
-
"outputs": [
|
| 74 |
-
{
|
| 75 |
-
"name": "stderr",
|
| 76 |
-
"output_type": "stream",
|
| 77 |
-
"text": [
|
| 78 |
-
"Map: 100%|██████████| 179435/179435 [00:12<00:00, 14545.45 examples/s]\n",
|
| 79 |
-
"Map: 100%|██████████| 903/903 [00:00<00:00, 13155.18 examples/s]\n",
|
| 80 |
-
"Map: 100%|██████████| 3666/3666 [00:00<00:00, 14699.07 examples/s]\n",
|
| 81 |
-
"Filter: 100%|██████████| 179435/179435 [00:01<00:00, 163853.20 examples/s]\n",
|
| 82 |
-
"Filter: 100%|██████████| 885/885 [00:00<00:00, 123014.38 examples/s]\n",
|
| 83 |
-
"Filter: 100%|██████████| 3620/3620 [00:00<00:00, 142652.68 examples/s]\n",
|
| 84 |
-
"Map: 100%|██████████| 2051014/2051014 [02:27<00:00, 13892.40 examples/s]\n",
|
| 85 |
-
"Filter: 100%|██████████| 2028907/2028907 [00:12<00:00, 163723.53 examples/s]\n",
|
| 86 |
-
"Saving the dataset (1/1 shards): 100%|██████████| 179435/179435 [00:00<00:00, 186519.65 examples/s]\n",
|
| 87 |
-
"Saving the dataset (1/1 shards): 100%|██████████| 885/885 [00:00<00:00, 142866.56 examples/s]\n",
|
| 88 |
-
"Saving the dataset (1/1 shards): 100%|██████████| 3620/3620 [00:00<00:00, 170674.57 examples/s]\n",
|
| 89 |
-
"Saving the dataset (3/3 shards): 100%|██████████| 1826016/1826016 [00:11<00:00, 159762.08 examples/s]\n",
|
| 90 |
-
"Saving the dataset (1/1 shards): 100%|██████████| 101445/101445 [00:00<00:00, 193029.72 examples/s]\n",
|
| 91 |
-
"Saving the dataset (1/1 shards): 100%|██████████| 101446/101446 [00:00<00:00, 191733.84 examples/s]\n"
|
| 92 |
-
]
|
| 93 |
-
}
|
| 94 |
-
],
|
| 95 |
"source": [
|
| 96 |
"import re\n",
|
| 97 |
"\n",
|
|
@@ -171,7 +137,7 @@
|
|
| 171 |
"\n",
|
| 172 |
"processed_small_dataset = small_dataset.map(preprocess_data).filter(lambda x: x is not None)\n",
|
| 173 |
"processed_medium_dataset = medium_dataset.map(preprocess_data).filter(lambda x: x is not None)\n",
|
| 174 |
-
"
|
| 175 |
"\n",
|
| 176 |
"splits = processed_medium_dataset[\"train\"].train_test_split(test_size=0.1, seed=seed)\n",
|
| 177 |
"train_split = splits[\"train\"]\n",
|
|
@@ -202,8 +168,8 @@
|
|
| 202 |
"import numpy as np\n",
|
| 203 |
"from hydra import compose, initialize\n",
|
| 204 |
"from hydra.core.global_hydra import GlobalHydra\n",
|
| 205 |
-
"from mini_transformers import PreTrainedTokenizerFast\n",
|
| 206 |
"from omegaconf import OmegaConf\n",
|
|
|
|
| 207 |
"\n",
|
| 208 |
"from mini_transformer.configs import TokenizerCfg\n",
|
| 209 |
"\n",
|
|
@@ -362,11 +328,23 @@
|
|
| 362 |
"show_top_k_tokens(processed_medium_dataset, tokenizers, k=20, sample_size=2000)\n",
|
| 363 |
"plot_token_length_barchart(processed_medium_dataset, tokenizers, sample_size=2000)"
|
| 364 |
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 365 |
}
|
| 366 |
],
|
| 367 |
"metadata": {
|
| 368 |
"kernelspec": {
|
| 369 |
-
"display_name": "transformer",
|
| 370 |
"language": "python",
|
| 371 |
"name": "python3"
|
| 372 |
},
|
|
@@ -380,7 +358,7 @@
|
|
| 380 |
"name": "python",
|
| 381 |
"nbconvert_exporter": "python",
|
| 382 |
"pygments_lexer": "ipython3",
|
| 383 |
-
"version": "3.
|
| 384 |
}
|
| 385 |
},
|
| 386 |
"nbformat": 4,
|
|
|
|
| 19 |
"\n",
|
| 20 |
"_ = load_dataset(\"ahazeemi/iwslt14-en-fr\", cache_dir=\"./data/raw\")\n",
|
| 21 |
"_ = load_dataset(\"Helsinki-NLP/europarl\", \"en-fr\", cache_dir=\"./data/raw\")\n",
|
| 22 |
+
"_ = load_dataset(\"wmt/wmt14\", \"fr-en\", cache_dir=\"./data/raw\")"
|
| 23 |
]
|
| 24 |
},
|
| 25 |
{
|
|
|
|
| 32 |
},
|
| 33 |
{
|
| 34 |
"cell_type": "code",
|
| 35 |
+
"execution_count": null,
|
| 36 |
"id": "2e0838f5",
|
| 37 |
"metadata": {},
|
| 38 |
+
"outputs": [],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 39 |
"source": [
|
| 40 |
"from datasets import load_dataset\n",
|
| 41 |
"\n",
|
| 42 |
"small_dataset = load_dataset(\"./data/raw/ahazeemi___iwslt14-en-fr\")\n",
|
| 43 |
"medium_dataset = load_dataset(\"./data/raw/Helsinki-NLP___europarl\")\n",
|
| 44 |
+
"large_dataset = load_dataset(\"./data/raw/wmt___wmt14\")"
|
| 45 |
]
|
| 46 |
},
|
| 47 |
{
|
|
|
|
| 54 |
},
|
| 55 |
{
|
| 56 |
"cell_type": "code",
|
| 57 |
+
"execution_count": null,
|
| 58 |
"id": "ca4d1867",
|
| 59 |
"metadata": {},
|
| 60 |
+
"outputs": [],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 61 |
"source": [
|
| 62 |
"import re\n",
|
| 63 |
"\n",
|
|
|
|
| 137 |
"\n",
|
| 138 |
"processed_small_dataset = small_dataset.map(preprocess_data).filter(lambda x: x is not None)\n",
|
| 139 |
"processed_medium_dataset = medium_dataset.map(preprocess_data).filter(lambda x: x is not None)\n",
|
| 140 |
+
"processed_large_dataset = large_dataset.map(preprocess_data).filter(lambda x: x is not None)\n",
|
| 141 |
"\n",
|
| 142 |
"splits = processed_medium_dataset[\"train\"].train_test_split(test_size=0.1, seed=seed)\n",
|
| 143 |
"train_split = splits[\"train\"]\n",
|
|
|
|
| 168 |
"import numpy as np\n",
|
| 169 |
"from hydra import compose, initialize\n",
|
| 170 |
"from hydra.core.global_hydra import GlobalHydra\n",
|
|
|
|
| 171 |
"from omegaconf import OmegaConf\n",
|
| 172 |
+
"from transformers import PreTrainedTokenizerFast\n",
|
| 173 |
"\n",
|
| 174 |
"from mini_transformer.configs import TokenizerCfg\n",
|
| 175 |
"\n",
|
|
|
|
| 328 |
"show_top_k_tokens(processed_medium_dataset, tokenizers, k=20, sample_size=2000)\n",
|
| 329 |
"plot_token_length_barchart(processed_medium_dataset, tokenizers, sample_size=2000)"
|
| 330 |
]
|
| 331 |
+
},
|
| 332 |
+
{
|
| 333 |
+
"cell_type": "code",
|
| 334 |
+
"execution_count": null,
|
| 335 |
+
"id": "16332b57",
|
| 336 |
+
"metadata": {},
|
| 337 |
+
"outputs": [],
|
| 338 |
+
"source": [
|
| 339 |
+
"# Large dataset statistics\n",
|
| 340 |
+
"show_top_k_tokens(processed_large_dataset, tokenizers, k=20, sample_size=2000)\n",
|
| 341 |
+
"plot_token_length_barchart(processed_large_dataset, tokenizers, sample_size=2000)"
|
| 342 |
+
]
|
| 343 |
}
|
| 344 |
],
|
| 345 |
"metadata": {
|
| 346 |
"kernelspec": {
|
| 347 |
+
"display_name": "mini-transformer",
|
| 348 |
"language": "python",
|
| 349 |
"name": "python3"
|
| 350 |
},
|
|
|
|
| 358 |
"name": "python",
|
| 359 |
"nbconvert_exporter": "python",
|
| 360 |
"pygments_lexer": "ipython3",
|
| 361 |
+
"version": "3.11.13"
|
| 362 |
}
|
| 363 |
},
|
| 364 |
"nbformat": 4,
|
notebooks/tokenizer.ipynb
CHANGED
|
@@ -10,19 +10,10 @@
|
|
| 10 |
},
|
| 11 |
{
|
| 12 |
"cell_type": "code",
|
| 13 |
-
"execution_count":
|
| 14 |
"id": "47d34b96",
|
| 15 |
"metadata": {},
|
| 16 |
-
"outputs": [
|
| 17 |
-
{
|
| 18 |
-
"name": "stderr",
|
| 19 |
-
"output_type": "stream",
|
| 20 |
-
"text": [
|
| 21 |
-
"/home/ala-boussoffara/miniconda3/envs/mini-transformer/lib/python3.12/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
|
| 22 |
-
" from .autonotebook import tqdm as notebook_tqdm\n"
|
| 23 |
-
]
|
| 24 |
-
}
|
| 25 |
-
],
|
| 26 |
"source": [
|
| 27 |
"from datasets import concatenate_datasets, load_from_disk\n",
|
| 28 |
"from hydra import compose, initialize\n",
|
|
@@ -44,7 +35,7 @@
|
|
| 44 |
},
|
| 45 |
{
|
| 46 |
"cell_type": "code",
|
| 47 |
-
"execution_count":
|
| 48 |
"id": "8f13dc2b",
|
| 49 |
"metadata": {},
|
| 50 |
"outputs": [],
|
|
@@ -66,7 +57,7 @@
|
|
| 66 |
},
|
| 67 |
{
|
| 68 |
"cell_type": "code",
|
| 69 |
-
"execution_count":
|
| 70 |
"id": "d880e59e",
|
| 71 |
"metadata": {},
|
| 72 |
"outputs": [],
|
|
@@ -94,7 +85,7 @@
|
|
| 94 |
},
|
| 95 |
{
|
| 96 |
"cell_type": "code",
|
| 97 |
-
"execution_count":
|
| 98 |
"id": "f60ac4b2",
|
| 99 |
"metadata": {},
|
| 100 |
"outputs": [],
|
|
@@ -118,27 +109,26 @@
|
|
| 118 |
},
|
| 119 |
{
|
| 120 |
"cell_type": "code",
|
| 121 |
-
"execution_count":
|
| 122 |
"id": "29fc0f7e",
|
| 123 |
"metadata": {},
|
| 124 |
-
"outputs": [
|
| 125 |
-
{
|
| 126 |
-
"name": "stdout",
|
| 127 |
-
"output_type": "stream",
|
| 128 |
-
"text": [
|
| 129 |
-
"\n",
|
| 130 |
-
"\n",
|
| 131 |
-
"\n"
|
| 132 |
-
]
|
| 133 |
-
}
|
| 134 |
-
],
|
| 135 |
"source": [
|
| 136 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 137 |
"tokenizer.pre_tokenizer = pre_tokenizers.Sequence(\n",
|
| 138 |
" [pre_tokenizers.Whitespace(), pre_tokenizers.Punctuation()]\n",
|
| 139 |
")\n",
|
| 140 |
"trainer = trainers.BpeTrainer(\n",
|
| 141 |
-
" vocab_size=tokenizer_cfg.vocab_size,
|
|
|
|
|
|
|
| 142 |
")\n",
|
| 143 |
"tokenizer.train([tokenizer_cfg.corpus], trainer)\n",
|
| 144 |
"tokenizer.post_processor = TemplateProcessing(\n",
|
|
@@ -161,22 +151,10 @@
|
|
| 161 |
},
|
| 162 |
{
|
| 163 |
"cell_type": "code",
|
| 164 |
-
"execution_count":
|
| 165 |
"id": "443ed7ee",
|
| 166 |
"metadata": {},
|
| 167 |
-
"outputs": [
|
| 168 |
-
{
|
| 169 |
-
"name": "stdout",
|
| 170 |
-
"output_type": "stream",
|
| 171 |
-
"text": [
|
| 172 |
-
"['i', 'here', 'by', 'an', 'n', 'ou', 'ce', 'you', 'as', 'the', 'next', 'presi', 'dent']\n",
|
| 173 |
-
"PAD: 0\n",
|
| 174 |
-
"BOS: 1\n",
|
| 175 |
-
"EOS: 2\n",
|
| 176 |
-
"UNK: 3\n"
|
| 177 |
-
]
|
| 178 |
-
}
|
| 179 |
-
],
|
| 180 |
"source": [
|
| 181 |
"from tokenizers import Tokenizer\n",
|
| 182 |
"\n",
|
|
@@ -195,7 +173,7 @@
|
|
| 195 |
],
|
| 196 |
"metadata": {
|
| 197 |
"kernelspec": {
|
| 198 |
-
"display_name": "transformer",
|
| 199 |
"language": "python",
|
| 200 |
"name": "python3"
|
| 201 |
},
|
|
@@ -209,7 +187,7 @@
|
|
| 209 |
"name": "python",
|
| 210 |
"nbconvert_exporter": "python",
|
| 211 |
"pygments_lexer": "ipython3",
|
| 212 |
-
"version": "3.
|
| 213 |
}
|
| 214 |
},
|
| 215 |
"nbformat": 4,
|
|
|
|
| 10 |
},
|
| 11 |
{
|
| 12 |
"cell_type": "code",
|
| 13 |
+
"execution_count": null,
|
| 14 |
"id": "47d34b96",
|
| 15 |
"metadata": {},
|
| 16 |
+
"outputs": [],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 17 |
"source": [
|
| 18 |
"from datasets import concatenate_datasets, load_from_disk\n",
|
| 19 |
"from hydra import compose, initialize\n",
|
|
|
|
| 35 |
},
|
| 36 |
{
|
| 37 |
"cell_type": "code",
|
| 38 |
+
"execution_count": null,
|
| 39 |
"id": "8f13dc2b",
|
| 40 |
"metadata": {},
|
| 41 |
"outputs": [],
|
|
|
|
| 57 |
},
|
| 58 |
{
|
| 59 |
"cell_type": "code",
|
| 60 |
+
"execution_count": null,
|
| 61 |
"id": "d880e59e",
|
| 62 |
"metadata": {},
|
| 63 |
"outputs": [],
|
|
|
|
| 85 |
},
|
| 86 |
{
|
| 87 |
"cell_type": "code",
|
| 88 |
+
"execution_count": null,
|
| 89 |
"id": "f60ac4b2",
|
| 90 |
"metadata": {},
|
| 91 |
"outputs": [],
|
|
|
|
| 109 |
},
|
| 110 |
{
|
| 111 |
"cell_type": "code",
|
| 112 |
+
"execution_count": null,
|
| 113 |
"id": "29fc0f7e",
|
| 114 |
"metadata": {},
|
| 115 |
+
"outputs": [],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 116 |
"source": [
|
| 117 |
+
"CONTINUING_SUBWORD_PREFIX = \"##\"\n",
|
| 118 |
+
"\n",
|
| 119 |
+
"tokenizer = Tokenizer(\n",
|
| 120 |
+
" models.BPE(\n",
|
| 121 |
+
" unk_token=tokenizer_cfg.unk_token,\n",
|
| 122 |
+
" continuing_subword_prefix=CONTINUING_SUBWORD_PREFIX,\n",
|
| 123 |
+
" )\n",
|
| 124 |
+
")\n",
|
| 125 |
"tokenizer.pre_tokenizer = pre_tokenizers.Sequence(\n",
|
| 126 |
" [pre_tokenizers.Whitespace(), pre_tokenizers.Punctuation()]\n",
|
| 127 |
")\n",
|
| 128 |
"trainer = trainers.BpeTrainer(\n",
|
| 129 |
+
" vocab_size=tokenizer_cfg.vocab_size,\n",
|
| 130 |
+
" special_tokens=tokenizer_cfg.special_tokens,\n",
|
| 131 |
+
" continuing_subword_prefix=CONTINUING_SUBWORD_PREFIX,\n",
|
| 132 |
")\n",
|
| 133 |
"tokenizer.train([tokenizer_cfg.corpus], trainer)\n",
|
| 134 |
"tokenizer.post_processor = TemplateProcessing(\n",
|
|
|
|
| 151 |
},
|
| 152 |
{
|
| 153 |
"cell_type": "code",
|
| 154 |
+
"execution_count": null,
|
| 155 |
"id": "443ed7ee",
|
| 156 |
"metadata": {},
|
| 157 |
+
"outputs": [],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 158 |
"source": [
|
| 159 |
"from tokenizers import Tokenizer\n",
|
| 160 |
"\n",
|
|
|
|
| 173 |
],
|
| 174 |
"metadata": {
|
| 175 |
"kernelspec": {
|
| 176 |
+
"display_name": "mini-transformer",
|
| 177 |
"language": "python",
|
| 178 |
"name": "python3"
|
| 179 |
},
|
|
|
|
| 187 |
"name": "python",
|
| 188 |
"nbconvert_exporter": "python",
|
| 189 |
"pygments_lexer": "ipython3",
|
| 190 |
+
"version": "3.11.13"
|
| 191 |
}
|
| 192 |
},
|
| 193 |
"nbformat": 4,
|
notebooks/train.ipynb
CHANGED
|
@@ -10,10 +10,19 @@
|
|
| 10 |
},
|
| 11 |
{
|
| 12 |
"cell_type": "code",
|
| 13 |
-
"execution_count":
|
| 14 |
"id": "5a9e6fb4",
|
| 15 |
"metadata": {},
|
| 16 |
-
"outputs": [
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 17 |
"source": [
|
| 18 |
"import contextlib\n",
|
| 19 |
"import json\n",
|
|
@@ -30,11 +39,11 @@
|
|
| 30 |
"from hydra import compose, initialize\n",
|
| 31 |
"from hydra.core.global_hydra import GlobalHydra\n",
|
| 32 |
"from hydra.utils import to_absolute_path\n",
|
| 33 |
-
"from mini_transformers import PreTrainedTokenizerFast\n",
|
| 34 |
"from omegaconf import OmegaConf\n",
|
| 35 |
"from torch.nn.utils import clip_grad_norm_\n",
|
| 36 |
"from torch.utils.data import DataLoader\n",
|
| 37 |
"from tqdm import tqdm\n",
|
|
|
|
| 38 |
"\n",
|
| 39 |
"from mini_transformer import BasicEncoderDecoderTransformer\n",
|
| 40 |
"from mini_transformer.configs import ModelCfg, TokenizerCfg, TrainAppCfg\n",
|
|
@@ -56,10 +65,18 @@
|
|
| 56 |
},
|
| 57 |
{
|
| 58 |
"cell_type": "code",
|
| 59 |
-
"execution_count":
|
| 60 |
"id": "d1c043be",
|
| 61 |
"metadata": {},
|
| 62 |
-
"outputs": [
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 63 |
"source": [
|
| 64 |
"project_root = Path(__file__).resolve().parent if \"__file__\" in globals() else Path.cwd()\n",
|
| 65 |
"os.chdir(project_root)\n",
|
|
@@ -76,7 +93,7 @@
|
|
| 76 |
},
|
| 77 |
{
|
| 78 |
"cell_type": "code",
|
| 79 |
-
"execution_count":
|
| 80 |
"id": "2bd6dd82",
|
| 81 |
"metadata": {},
|
| 82 |
"outputs": [],
|
|
@@ -86,12 +103,12 @@
|
|
| 86 |
"cfg = compose(\n",
|
| 87 |
" config_name=\"train_mode\",\n",
|
| 88 |
" overrides=[\n",
|
| 89 |
-
" \"model=
|
| 90 |
-
" \"tokenizer=
|
| 91 |
" \"dataset=medium_dataset\",\n",
|
| 92 |
-
" \"trainer.batch_size=
|
| 93 |
-
" \"trainer.gradient_accumulation=
|
| 94 |
-
" \"trainer.epochs=
|
| 95 |
" ],\n",
|
| 96 |
")\n",
|
| 97 |
"scfg_temp = OmegaConf.merge(OmegaConf.structured(TrainAppCfg), cfg)\n",
|
|
@@ -114,14 +131,23 @@
|
|
| 114 |
},
|
| 115 |
{
|
| 116 |
"cell_type": "code",
|
| 117 |
-
"execution_count":
|
| 118 |
"id": "8d60e085",
|
| 119 |
"metadata": {},
|
| 120 |
-
"outputs": [
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 121 |
"source": [
|
| 122 |
"dataset = load_from_disk(cfg.dataset.path)\n",
|
| 123 |
"\n",
|
| 124 |
-
"train_dataset = dataset[\"train\"]
|
| 125 |
"validation_dataset = dataset[\"validation\"]\n",
|
| 126 |
"test_dataset = dataset[\"test\"]\n",
|
| 127 |
"\n",
|
|
@@ -135,6 +161,9 @@
|
|
| 135 |
"\n",
|
| 136 |
"dataloader_generator = torch.Generator().manual_seed(scfg.runtime.seed)\n",
|
| 137 |
"worker_init = make_worker_init_fn(scfg.runtime.seed)\n",
|
|
|
|
|
|
|
|
|
|
| 138 |
"\n",
|
| 139 |
"train_dataloader = DataLoader(\n",
|
| 140 |
" train_dataset,\n",
|
|
@@ -143,6 +172,9 @@
|
|
| 143 |
" collate_fn=tuple_collate_fn,\n",
|
| 144 |
" generator=dataloader_generator,\n",
|
| 145 |
" worker_init_fn=worker_init,\n",
|
|
|
|
|
|
|
|
|
|
| 146 |
")\n",
|
| 147 |
"validation_dataloader = DataLoader(\n",
|
| 148 |
" validation_dataset,\n",
|
|
@@ -151,6 +183,9 @@
|
|
| 151 |
" collate_fn=tuple_collate_fn,\n",
|
| 152 |
" generator=dataloader_generator,\n",
|
| 153 |
" worker_init_fn=worker_init,\n",
|
|
|
|
|
|
|
|
|
|
| 154 |
")\n",
|
| 155 |
"test_dataloader = DataLoader(\n",
|
| 156 |
" test_dataset,\n",
|
|
@@ -159,6 +194,9 @@
|
|
| 159 |
" collate_fn=tuple_collate_fn,\n",
|
| 160 |
" generator=dataloader_generator,\n",
|
| 161 |
" worker_init_fn=worker_init,\n",
|
|
|
|
|
|
|
|
|
|
| 162 |
")\n",
|
| 163 |
"\n",
|
| 164 |
"print(\"Number of training samples:\", len(train_dataset))\n",
|
|
@@ -175,10 +213,18 @@
|
|
| 175 |
},
|
| 176 |
{
|
| 177 |
"cell_type": "code",
|
| 178 |
-
"execution_count":
|
| 179 |
"id": "f9da0dab",
|
| 180 |
"metadata": {},
|
| 181 |
-
"outputs": [
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 182 |
"source": [
|
| 183 |
"device = torch.device(scfg.runtime.device)\n",
|
| 184 |
"model = BasicEncoderDecoderTransformer(model_cfg).to(device)\n",
|
|
@@ -225,7 +271,7 @@
|
|
| 225 |
},
|
| 226 |
{
|
| 227 |
"cell_type": "code",
|
| 228 |
-
"execution_count":
|
| 229 |
"id": "372dea7e",
|
| 230 |
"metadata": {},
|
| 231 |
"outputs": [],
|
|
@@ -297,7 +343,7 @@
|
|
| 297 |
},
|
| 298 |
{
|
| 299 |
"cell_type": "code",
|
| 300 |
-
"execution_count":
|
| 301 |
"id": "4ad52841",
|
| 302 |
"metadata": {},
|
| 303 |
"outputs": [],
|
|
@@ -335,7 +381,7 @@
|
|
| 335 |
},
|
| 336 |
{
|
| 337 |
"cell_type": "code",
|
| 338 |
-
"execution_count":
|
| 339 |
"id": "479390a8",
|
| 340 |
"metadata": {},
|
| 341 |
"outputs": [],
|
|
@@ -390,10 +436,18 @@
|
|
| 390 |
},
|
| 391 |
{
|
| 392 |
"cell_type": "code",
|
| 393 |
-
"execution_count":
|
| 394 |
"id": "a9843809",
|
| 395 |
"metadata": {},
|
| 396 |
-
"outputs": [
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 397 |
"source": [
|
| 398 |
"output_root = Path(to_absolute_path(scfg.runtime.output_dir))\n",
|
| 399 |
"output_root.mkdir(parents=True, exist_ok=True)\n",
|
|
@@ -468,7 +522,7 @@
|
|
| 468 |
" loaded_checkpoint = torch.load(resume_checkpoint_path, map_location=\"cpu\", weights_only=False)\n",
|
| 469 |
" model_state = loaded_checkpoint.get(\"model_state_dict\")\n",
|
| 470 |
" if model_state is not None:\n",
|
| 471 |
-
" model.load_state_dict(model_state)\n",
|
| 472 |
" optim_state = loaded_checkpoint.get(\"optimizer_state_dict\")\n",
|
| 473 |
" if optim_state is not None:\n",
|
| 474 |
" optimizer.load_state_dict(optim_state)\n",
|
|
@@ -596,10 +650,21 @@
|
|
| 596 |
},
|
| 597 |
{
|
| 598 |
"cell_type": "code",
|
| 599 |
-
"execution_count":
|
| 600 |
"id": "ab23bf3c",
|
| 601 |
"metadata": {},
|
| 602 |
-
"outputs": [
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 603 |
"source": [
|
| 604 |
"# src,tgt=next(iter(train_dataloader))\n",
|
| 605 |
"src = [\"it can be a very complicated thing, the ocean\"]\n",
|
|
@@ -621,15 +686,15 @@
|
|
| 621 |
},
|
| 622 |
{
|
| 623 |
"cell_type": "code",
|
| 624 |
-
"execution_count":
|
| 625 |
"id": "689fe371",
|
| 626 |
"metadata": {},
|
| 627 |
"outputs": [],
|
| 628 |
"source": [
|
| 629 |
"# Optional transformer debugging / attention capture\n",
|
| 630 |
"debug_forward_options = {\n",
|
| 631 |
-
" \"enabled\":
|
| 632 |
-
" \"show_attention\":
|
| 633 |
" \"save_attention\": False, # persist attention artefacts\n",
|
| 634 |
" \"attention_layers\": None, # e.g. [0, 1] to restrict encoder/decoder layers\n",
|
| 635 |
" \"attention_heads\": None, # e.g. [0, 3] to filter heads\n",
|
|
@@ -653,7 +718,7 @@
|
|
| 653 |
},
|
| 654 |
{
|
| 655 |
"cell_type": "code",
|
| 656 |
-
"execution_count":
|
| 657 |
"id": "af2e9c6a",
|
| 658 |
"metadata": {},
|
| 659 |
"outputs": [],
|
|
@@ -695,11 +760,22 @@
|
|
| 695 |
"execution_count": null,
|
| 696 |
"id": "439d4094",
|
| 697 |
"metadata": {},
|
| 698 |
-
"outputs": [
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 699 |
"source": [
|
| 700 |
"model.to(device)\n",
|
| 701 |
"model.enable_gradient_checkpointing(cfg.trainer.gradient_checkpointing)\n",
|
| 702 |
"\n",
|
|
|
|
|
|
|
|
|
|
| 703 |
"optimizer.zero_grad(set_to_none=True)\n",
|
| 704 |
"\n",
|
| 705 |
"optimizer_step = completed_optimizer_steps\n",
|
|
@@ -711,6 +787,7 @@
|
|
| 711 |
" running_loss = current_resume_running_loss if epoch == start_epoch else 0.0\n",
|
| 712 |
" batches_processed = 0\n",
|
| 713 |
" last_batch_idx = -1\n",
|
|
|
|
| 714 |
" for batch_idx, (src, tgt) in enumerate(\n",
|
| 715 |
" tqdm(train_dataloader, desc=f\"Epoch {epoch + 1} [train]\")\n",
|
| 716 |
" ):\n",
|
|
@@ -749,11 +826,12 @@
|
|
| 749 |
" loss = criterion(logits.reshape(-1, logits.size(-1)), labels.reshape(-1))\n",
|
| 750 |
"\n",
|
| 751 |
" running_loss += loss.item()\n",
|
| 752 |
-
" loss = loss /
|
| 753 |
" scaled_loss = scaler.scale(loss)\n",
|
| 754 |
" scaled_loss.backward()\n",
|
|
|
|
| 755 |
"\n",
|
| 756 |
-
" if
|
| 757 |
" scaler.unscale_(optimizer)\n",
|
| 758 |
" clip_grad_norm_(model.parameters(), cfg.trainer.clip_grad_norm)\n",
|
| 759 |
" scaler.step(optimizer)\n",
|
|
@@ -761,27 +839,37 @@
|
|
| 761 |
" optimizer.zero_grad(set_to_none=True)\n",
|
| 762 |
" scheduler.step()\n",
|
| 763 |
" optimizer_step += 1\n",
|
| 764 |
-
"
|
| 765 |
-
"
|
| 766 |
-
"
|
| 767 |
-
"
|
| 768 |
-
"
|
| 769 |
-
"
|
|
|
|
|
|
|
| 770 |
"\n",
|
| 771 |
-
" if
|
| 772 |
" scaler.unscale_(optimizer)\n",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 773 |
" clip_grad_norm_(model.parameters(), cfg.trainer.clip_grad_norm)\n",
|
| 774 |
" scaler.step(optimizer)\n",
|
| 775 |
" scaler.update()\n",
|
| 776 |
" optimizer.zero_grad(set_to_none=True)\n",
|
| 777 |
" scheduler.step()\n",
|
| 778 |
" optimizer_step += 1\n",
|
| 779 |
-
"
|
| 780 |
-
"
|
| 781 |
-
"
|
| 782 |
-
"
|
| 783 |
-
"
|
| 784 |
-
"
|
|
|
|
|
|
|
| 785 |
"\n",
|
| 786 |
" avg_train_loss = running_loss / len(train_dataloader)\n",
|
| 787 |
" print(f\"Epoch [{epoch + 1}/{scfg.trainer.epochs}] Train Loss: {avg_train_loss:.4f}\")\n",
|
|
@@ -814,7 +902,7 @@
|
|
| 814 |
" tgt_ids = encoded_tgt[\"input_ids\"].to(device)\n",
|
| 815 |
" decoder_in = tgt_ids[:, :-1]\n",
|
| 816 |
" labels = tgt_ids[:, 1:]\n",
|
| 817 |
-
" tgt_padd_mask = decoder_in.eq(scfg.tokenizer.pad_id)\n",
|
| 818 |
"\n",
|
| 819 |
" logits = model(src_ids, decoder_in, src_padd_mask, tgt_padd_mask)\n",
|
| 820 |
" loss = criterion(logits.reshape(-1, logits.size(-1)), labels.reshape(-1))\n",
|
|
@@ -940,6 +1028,60 @@
|
|
| 940 |
" print(\"No training history available to plot.\")"
|
| 941 |
]
|
| 942 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 943 |
{
|
| 944 |
"cell_type": "markdown",
|
| 945 |
"id": "f8652b1c",
|
|
@@ -965,7 +1107,7 @@
|
|
| 965 |
],
|
| 966 |
"metadata": {
|
| 967 |
"kernelspec": {
|
| 968 |
-
"display_name": "transformer",
|
| 969 |
"language": "python",
|
| 970 |
"name": "python3"
|
| 971 |
},
|
|
@@ -979,7 +1121,7 @@
|
|
| 979 |
"name": "python",
|
| 980 |
"nbconvert_exporter": "python",
|
| 981 |
"pygments_lexer": "ipython3",
|
| 982 |
-
"version": "3.
|
| 983 |
}
|
| 984 |
},
|
| 985 |
"nbformat": 4,
|
|
|
|
| 10 |
},
|
| 11 |
{
|
| 12 |
"cell_type": "code",
|
| 13 |
+
"execution_count": 1,
|
| 14 |
"id": "5a9e6fb4",
|
| 15 |
"metadata": {},
|
| 16 |
+
"outputs": [
|
| 17 |
+
{
|
| 18 |
+
"name": "stderr",
|
| 19 |
+
"output_type": "stream",
|
| 20 |
+
"text": [
|
| 21 |
+
"/home/ala-boussoffara/miniconda3/envs/mini-transformer/lib/python3.11/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
|
| 22 |
+
" from .autonotebook import tqdm as notebook_tqdm\n"
|
| 23 |
+
]
|
| 24 |
+
}
|
| 25 |
+
],
|
| 26 |
"source": [
|
| 27 |
"import contextlib\n",
|
| 28 |
"import json\n",
|
|
|
|
| 39 |
"from hydra import compose, initialize\n",
|
| 40 |
"from hydra.core.global_hydra import GlobalHydra\n",
|
| 41 |
"from hydra.utils import to_absolute_path\n",
|
|
|
|
| 42 |
"from omegaconf import OmegaConf\n",
|
| 43 |
"from torch.nn.utils import clip_grad_norm_\n",
|
| 44 |
"from torch.utils.data import DataLoader\n",
|
| 45 |
"from tqdm import tqdm\n",
|
| 46 |
+
"from transformers import PreTrainedTokenizerFast\n",
|
| 47 |
"\n",
|
| 48 |
"from mini_transformer import BasicEncoderDecoderTransformer\n",
|
| 49 |
"from mini_transformer.configs import ModelCfg, TokenizerCfg, TrainAppCfg\n",
|
|
|
|
| 65 |
},
|
| 66 |
{
|
| 67 |
"cell_type": "code",
|
| 68 |
+
"execution_count": 2,
|
| 69 |
"id": "d1c043be",
|
| 70 |
"metadata": {},
|
| 71 |
+
"outputs": [
|
| 72 |
+
{
|
| 73 |
+
"name": "stdout",
|
| 74 |
+
"output_type": "stream",
|
| 75 |
+
"text": [
|
| 76 |
+
"Working directory set to: /mnt/shared/Local/Projets/Mini-Transformer\n"
|
| 77 |
+
]
|
| 78 |
+
}
|
| 79 |
+
],
|
| 80 |
"source": [
|
| 81 |
"project_root = Path(__file__).resolve().parent if \"__file__\" in globals() else Path.cwd()\n",
|
| 82 |
"os.chdir(project_root)\n",
|
|
|
|
| 93 |
},
|
| 94 |
{
|
| 95 |
"cell_type": "code",
|
| 96 |
+
"execution_count": 3,
|
| 97 |
"id": "2bd6dd82",
|
| 98 |
"metadata": {},
|
| 99 |
"outputs": [],
|
|
|
|
| 103 |
"cfg = compose(\n",
|
| 104 |
" config_name=\"train_mode\",\n",
|
| 105 |
" overrides=[\n",
|
| 106 |
+
" \"model=medium_model\",\n",
|
| 107 |
+
" \"tokenizer=bpe_16k\",\n",
|
| 108 |
" \"dataset=medium_dataset\",\n",
|
| 109 |
+
" \"trainer.batch_size=32\",\n",
|
| 110 |
+
" \"trainer.gradient_accumulation=16\",\n",
|
| 111 |
+
" \"trainer.epochs=10\",\n",
|
| 112 |
" ],\n",
|
| 113 |
")\n",
|
| 114 |
"scfg_temp = OmegaConf.merge(OmegaConf.structured(TrainAppCfg), cfg)\n",
|
|
|
|
| 131 |
},
|
| 132 |
{
|
| 133 |
"cell_type": "code",
|
| 134 |
+
"execution_count": 4,
|
| 135 |
"id": "8d60e085",
|
| 136 |
"metadata": {},
|
| 137 |
+
"outputs": [
|
| 138 |
+
{
|
| 139 |
+
"name": "stdout",
|
| 140 |
+
"output_type": "stream",
|
| 141 |
+
"text": [
|
| 142 |
+
"Number of training samples: 1826016\n",
|
| 143 |
+
"Number of training batches: 57063\n"
|
| 144 |
+
]
|
| 145 |
+
}
|
| 146 |
+
],
|
| 147 |
"source": [
|
| 148 |
"dataset = load_from_disk(cfg.dataset.path)\n",
|
| 149 |
"\n",
|
| 150 |
+
"train_dataset = dataset[\"train\"]\n",
|
| 151 |
"validation_dataset = dataset[\"validation\"]\n",
|
| 152 |
"test_dataset = dataset[\"test\"]\n",
|
| 153 |
"\n",
|
|
|
|
| 161 |
"\n",
|
| 162 |
"dataloader_generator = torch.Generator().manual_seed(scfg.runtime.seed)\n",
|
| 163 |
"worker_init = make_worker_init_fn(scfg.runtime.seed)\n",
|
| 164 |
+
"num_workers = int(getattr(scfg.trainer, \"num_workers\", 0))\n",
|
| 165 |
+
"pin_memory = bool(getattr(scfg.trainer, \"pin_memory\", scfg.runtime.device.startswith(\"cuda\")))\n",
|
| 166 |
+
"persistent_workers = num_workers > 0\n",
|
| 167 |
"\n",
|
| 168 |
"train_dataloader = DataLoader(\n",
|
| 169 |
" train_dataset,\n",
|
|
|
|
| 172 |
" collate_fn=tuple_collate_fn,\n",
|
| 173 |
" generator=dataloader_generator,\n",
|
| 174 |
" worker_init_fn=worker_init,\n",
|
| 175 |
+
" num_workers=num_workers,\n",
|
| 176 |
+
" pin_memory=pin_memory,\n",
|
| 177 |
+
" persistent_workers=persistent_workers,\n",
|
| 178 |
")\n",
|
| 179 |
"validation_dataloader = DataLoader(\n",
|
| 180 |
" validation_dataset,\n",
|
|
|
|
| 183 |
" collate_fn=tuple_collate_fn,\n",
|
| 184 |
" generator=dataloader_generator,\n",
|
| 185 |
" worker_init_fn=worker_init,\n",
|
| 186 |
+
" num_workers=num_workers,\n",
|
| 187 |
+
" pin_memory=pin_memory,\n",
|
| 188 |
+
" persistent_workers=persistent_workers,\n",
|
| 189 |
")\n",
|
| 190 |
"test_dataloader = DataLoader(\n",
|
| 191 |
" test_dataset,\n",
|
|
|
|
| 194 |
" collate_fn=tuple_collate_fn,\n",
|
| 195 |
" generator=dataloader_generator,\n",
|
| 196 |
" worker_init_fn=worker_init,\n",
|
| 197 |
+
" num_workers=num_workers,\n",
|
| 198 |
+
" pin_memory=pin_memory,\n",
|
| 199 |
+
" persistent_workers=persistent_workers,\n",
|
| 200 |
")\n",
|
| 201 |
"\n",
|
| 202 |
"print(\"Number of training samples:\", len(train_dataset))\n",
|
|
|
|
| 213 |
},
|
| 214 |
{
|
| 215 |
"cell_type": "code",
|
| 216 |
+
"execution_count": 5,
|
| 217 |
"id": "f9da0dab",
|
| 218 |
"metadata": {},
|
| 219 |
+
"outputs": [
|
| 220 |
+
{
|
| 221 |
+
"name": "stdout",
|
| 222 |
+
"output_type": "stream",
|
| 223 |
+
"text": [
|
| 224 |
+
"Total number of parameters: 184705024\n"
|
| 225 |
+
]
|
| 226 |
+
}
|
| 227 |
+
],
|
| 228 |
"source": [
|
| 229 |
"device = torch.device(scfg.runtime.device)\n",
|
| 230 |
"model = BasicEncoderDecoderTransformer(model_cfg).to(device)\n",
|
|
|
|
| 271 |
},
|
| 272 |
{
|
| 273 |
"cell_type": "code",
|
| 274 |
+
"execution_count": 6,
|
| 275 |
"id": "372dea7e",
|
| 276 |
"metadata": {},
|
| 277 |
"outputs": [],
|
|
|
|
| 343 |
},
|
| 344 |
{
|
| 345 |
"cell_type": "code",
|
| 346 |
+
"execution_count": 7,
|
| 347 |
"id": "4ad52841",
|
| 348 |
"metadata": {},
|
| 349 |
"outputs": [],
|
|
|
|
| 381 |
},
|
| 382 |
{
|
| 383 |
"cell_type": "code",
|
| 384 |
+
"execution_count": 8,
|
| 385 |
"id": "479390a8",
|
| 386 |
"metadata": {},
|
| 387 |
"outputs": [],
|
|
|
|
| 436 |
},
|
| 437 |
{
|
| 438 |
"cell_type": "code",
|
| 439 |
+
"execution_count": 9,
|
| 440 |
"id": "a9843809",
|
| 441 |
"metadata": {},
|
| 442 |
+
"outputs": [
|
| 443 |
+
{
|
| 444 |
+
"name": "stdout",
|
| 445 |
+
"output_type": "stream",
|
| 446 |
+
"text": [
|
| 447 |
+
"Starting fresh (no resume checkpoint provided).\n"
|
| 448 |
+
]
|
| 449 |
+
}
|
| 450 |
+
],
|
| 451 |
"source": [
|
| 452 |
"output_root = Path(to_absolute_path(scfg.runtime.output_dir))\n",
|
| 453 |
"output_root.mkdir(parents=True, exist_ok=True)\n",
|
|
|
|
| 522 |
" loaded_checkpoint = torch.load(resume_checkpoint_path, map_location=\"cpu\", weights_only=False)\n",
|
| 523 |
" model_state = loaded_checkpoint.get(\"model_state_dict\")\n",
|
| 524 |
" if model_state is not None:\n",
|
| 525 |
+
" model.load_state_dict(model_state, strict=False)\n",
|
| 526 |
" optim_state = loaded_checkpoint.get(\"optimizer_state_dict\")\n",
|
| 527 |
" if optim_state is not None:\n",
|
| 528 |
" optimizer.load_state_dict(optim_state)\n",
|
|
|
|
| 650 |
},
|
| 651 |
{
|
| 652 |
"cell_type": "code",
|
| 653 |
+
"execution_count": 10,
|
| 654 |
"id": "ab23bf3c",
|
| 655 |
"metadata": {},
|
| 656 |
+
"outputs": [
|
| 657 |
+
{
|
| 658 |
+
"data": {
|
| 659 |
+
"text/plain": [
|
| 660 |
+
"'src_ids = torch.randint(0, scfg.tokenizer.vocab_size, (2, 50)).to(device, dtype=torch.long)\\ntgt_ids = torch.randint(0, scfg.tokenizer.vocab_size, (2, 50)).to(device, dtype=torch.long)\\nsrc_padd_mask = (src_ids == scfg.tokenizer.pad_id).to(device, dtype=torch.bool)\\ntgt_padd_mask = (tgt_ids == scfg.tokenizer.pad_id).to(device, dtype=torch.bool)'"
|
| 661 |
+
]
|
| 662 |
+
},
|
| 663 |
+
"execution_count": 10,
|
| 664 |
+
"metadata": {},
|
| 665 |
+
"output_type": "execute_result"
|
| 666 |
+
}
|
| 667 |
+
],
|
| 668 |
"source": [
|
| 669 |
"# src,tgt=next(iter(train_dataloader))\n",
|
| 670 |
"src = [\"it can be a very complicated thing, the ocean\"]\n",
|
|
|
|
| 686 |
},
|
| 687 |
{
|
| 688 |
"cell_type": "code",
|
| 689 |
+
"execution_count": 11,
|
| 690 |
"id": "689fe371",
|
| 691 |
"metadata": {},
|
| 692 |
"outputs": [],
|
| 693 |
"source": [
|
| 694 |
"# Optional transformer debugging / attention capture\n",
|
| 695 |
"debug_forward_options = {\n",
|
| 696 |
+
" \"enabled\": False, # flip to True to run debug_transformer_forward\n",
|
| 697 |
+
" \"show_attention\": True, # show attention plots interactively\n",
|
| 698 |
" \"save_attention\": False, # persist attention artefacts\n",
|
| 699 |
" \"attention_layers\": None, # e.g. [0, 1] to restrict encoder/decoder layers\n",
|
| 700 |
" \"attention_heads\": None, # e.g. [0, 3] to filter heads\n",
|
|
|
|
| 718 |
},
|
| 719 |
{
|
| 720 |
"cell_type": "code",
|
| 721 |
+
"execution_count": 12,
|
| 722 |
"id": "af2e9c6a",
|
| 723 |
"metadata": {},
|
| 724 |
"outputs": [],
|
|
|
|
| 760 |
"execution_count": null,
|
| 761 |
"id": "439d4094",
|
| 762 |
"metadata": {},
|
| 763 |
+
"outputs": [
|
| 764 |
+
{
|
| 765 |
+
"name": "stderr",
|
| 766 |
+
"output_type": "stream",
|
| 767 |
+
"text": [
|
| 768 |
+
"Epoch 1 [train]: 2%|▏ | 1380/57063 [10:36<6:56:33, 2.23it/s]"
|
| 769 |
+
]
|
| 770 |
+
}
|
| 771 |
+
],
|
| 772 |
"source": [
|
| 773 |
"model.to(device)\n",
|
| 774 |
"model.enable_gradient_checkpointing(cfg.trainer.gradient_checkpointing)\n",
|
| 775 |
"\n",
|
| 776 |
+
"grad_accum = max(1, int(scfg.trainer.gradient_accumulation))\n",
|
| 777 |
+
"save_every_steps = max(1, int(getattr(scfg.trainer, \"save_interval\", 1)))\n",
|
| 778 |
+
"\n",
|
| 779 |
"optimizer.zero_grad(set_to_none=True)\n",
|
| 780 |
"\n",
|
| 781 |
"optimizer_step = completed_optimizer_steps\n",
|
|
|
|
| 787 |
" running_loss = current_resume_running_loss if epoch == start_epoch else 0.0\n",
|
| 788 |
" batches_processed = 0\n",
|
| 789 |
" last_batch_idx = -1\n",
|
| 790 |
+
" accum_counter = 0\n",
|
| 791 |
" for batch_idx, (src, tgt) in enumerate(\n",
|
| 792 |
" tqdm(train_dataloader, desc=f\"Epoch {epoch + 1} [train]\")\n",
|
| 793 |
" ):\n",
|
|
|
|
| 826 |
" loss = criterion(logits.reshape(-1, logits.size(-1)), labels.reshape(-1))\n",
|
| 827 |
"\n",
|
| 828 |
" running_loss += loss.item()\n",
|
| 829 |
+
" loss = loss / grad_accum\n",
|
| 830 |
" scaled_loss = scaler.scale(loss)\n",
|
| 831 |
" scaled_loss.backward()\n",
|
| 832 |
+
" accum_counter += 1\n",
|
| 833 |
"\n",
|
| 834 |
+
" if accum_counter == grad_accum:\n",
|
| 835 |
" scaler.unscale_(optimizer)\n",
|
| 836 |
" clip_grad_norm_(model.parameters(), cfg.trainer.clip_grad_norm)\n",
|
| 837 |
" scaler.step(optimizer)\n",
|
|
|
|
| 839 |
" optimizer.zero_grad(set_to_none=True)\n",
|
| 840 |
" scheduler.step()\n",
|
| 841 |
" optimizer_step += 1\n",
|
| 842 |
+
" if optimizer_step % save_every_steps == 0:\n",
|
| 843 |
+
" save_checkpoint(\n",
|
| 844 |
+
" epoch,\n",
|
| 845 |
+
" optimizer_step,\n",
|
| 846 |
+
" batch_idx=batch_idx + 1,\n",
|
| 847 |
+
" running_loss_value=running_loss,\n",
|
| 848 |
+
" )\n",
|
| 849 |
+
" accum_counter = 0\n",
|
| 850 |
"\n",
|
| 851 |
+
" if accum_counter > 0:\n",
|
| 852 |
" scaler.unscale_(optimizer)\n",
|
| 853 |
+
" if accum_counter < grad_accum:\n",
|
| 854 |
+
" adjust_factor = grad_accum / accum_counter\n",
|
| 855 |
+
" for group in optimizer.param_groups:\n",
|
| 856 |
+
" for param in group[\"params\"]:\n",
|
| 857 |
+
" if param.grad is not None:\n",
|
| 858 |
+
" param.grad.mul_(adjust_factor)\n",
|
| 859 |
" clip_grad_norm_(model.parameters(), cfg.trainer.clip_grad_norm)\n",
|
| 860 |
" scaler.step(optimizer)\n",
|
| 861 |
" scaler.update()\n",
|
| 862 |
" optimizer.zero_grad(set_to_none=True)\n",
|
| 863 |
" scheduler.step()\n",
|
| 864 |
" optimizer_step += 1\n",
|
| 865 |
+
" if optimizer_step % save_every_steps == 0:\n",
|
| 866 |
+
" save_checkpoint(\n",
|
| 867 |
+
" epoch,\n",
|
| 868 |
+
" optimizer_step,\n",
|
| 869 |
+
" batch_idx=last_batch_idx + 1,\n",
|
| 870 |
+
" running_loss_value=running_loss,\n",
|
| 871 |
+
" )\n",
|
| 872 |
+
" accum_counter = 0\n",
|
| 873 |
"\n",
|
| 874 |
" avg_train_loss = running_loss / len(train_dataloader)\n",
|
| 875 |
" print(f\"Epoch [{epoch + 1}/{scfg.trainer.epochs}] Train Loss: {avg_train_loss:.4f}\")\n",
|
|
|
|
| 902 |
" tgt_ids = encoded_tgt[\"input_ids\"].to(device)\n",
|
| 903 |
" decoder_in = tgt_ids[:, :-1]\n",
|
| 904 |
" labels = tgt_ids[:, 1:]\n",
|
| 905 |
+
" tgt_padd_mask = decoder_in.eq(scfg.tokenizer.pad_id).to(device)\n",
|
| 906 |
"\n",
|
| 907 |
" logits = model(src_ids, decoder_in, src_padd_mask, tgt_padd_mask)\n",
|
| 908 |
" loss = criterion(logits.reshape(-1, logits.size(-1)), labels.reshape(-1))\n",
|
|
|
|
| 1028 |
" print(\"No training history available to plot.\")"
|
| 1029 |
]
|
| 1030 |
},
|
| 1031 |
+
{
|
| 1032 |
+
"cell_type": "markdown",
|
| 1033 |
+
"id": "17bf7bc8",
|
| 1034 |
+
"metadata": {},
|
| 1035 |
+
"source": [
|
| 1036 |
+
"Test Dataset"
|
| 1037 |
+
]
|
| 1038 |
+
},
|
| 1039 |
+
{
|
| 1040 |
+
"cell_type": "code",
|
| 1041 |
+
"execution_count": null,
|
| 1042 |
+
"id": "39f61da8",
|
| 1043 |
+
"metadata": {},
|
| 1044 |
+
"outputs": [],
|
| 1045 |
+
"source": [
|
| 1046 |
+
"# test the model\n",
|
| 1047 |
+
"model.eval()\n",
|
| 1048 |
+
"test_loss = 0.0\n",
|
| 1049 |
+
"with torch.no_grad(), autocast_ctx:\n",
|
| 1050 |
+
" for src, tgt in tqdm(test_dataloader, desc=\"Testing\"):\n",
|
| 1051 |
+
" encoded_src = tokenizer(\n",
|
| 1052 |
+
" src,\n",
|
| 1053 |
+
" padding=True,\n",
|
| 1054 |
+
" truncation=True,\n",
|
| 1055 |
+
" return_tensors=\"pt\",\n",
|
| 1056 |
+
" add_special_tokens=False,\n",
|
| 1057 |
+
" )\n",
|
| 1058 |
+
" encoded_tgt = tokenizer(\n",
|
| 1059 |
+
" tgt,\n",
|
| 1060 |
+
" padding=True,\n",
|
| 1061 |
+
" truncation=True,\n",
|
| 1062 |
+
" return_tensors=\"pt\",\n",
|
| 1063 |
+
" )\n",
|
| 1064 |
+
"\n",
|
| 1065 |
+
" src_ids = encoded_src[\"input_ids\"].to(device)\n",
|
| 1066 |
+
" src_padd_mask = (encoded_src[\"attention_mask\"] == 0).to(device)\n",
|
| 1067 |
+
" tgt_ids = encoded_tgt[\"input_ids\"].to(device)\n",
|
| 1068 |
+
" decoder_in = tgt_ids[:, :-1]\n",
|
| 1069 |
+
" labels = tgt_ids[:, 1:]\n",
|
| 1070 |
+
" tgt_padd_mask = decoder_in.eq(scfg.tokenizer.pad_id)\n",
|
| 1071 |
+
"\n",
|
| 1072 |
+
" logits = model(src_ids, decoder_in, src_padd_mask, tgt_padd_mask)\n",
|
| 1073 |
+
" loss = criterion(logits.reshape(-1, logits.size(-1)), labels.reshape(-1))\n",
|
| 1074 |
+
" test_loss += loss.item()\n",
|
| 1075 |
+
"avg_test_loss = test_loss / max(1, len(test_dataloader))\n",
|
| 1076 |
+
"print(f\"Test Loss: {avg_test_loss:.4f}\")\n",
|
| 1077 |
+
"# save test loss to the manifest\n",
|
| 1078 |
+
"manifest_data[\"test\"] = {\n",
|
| 1079 |
+
" \"test_loss\": avg_test_loss,\n",
|
| 1080 |
+
" \"timestamp\": datetime.now().isoformat(),\n",
|
| 1081 |
+
"}\n",
|
| 1082 |
+
"manifest_path.write_text(json.dumps(manifest_data, indent=2))"
|
| 1083 |
+
]
|
| 1084 |
+
},
|
| 1085 |
{
|
| 1086 |
"cell_type": "markdown",
|
| 1087 |
"id": "f8652b1c",
|
|
|
|
| 1107 |
],
|
| 1108 |
"metadata": {
|
| 1109 |
"kernelspec": {
|
| 1110 |
+
"display_name": "mini-transformer",
|
| 1111 |
"language": "python",
|
| 1112 |
"name": "python3"
|
| 1113 |
},
|
|
|
|
| 1121 |
"name": "python",
|
| 1122 |
"nbconvert_exporter": "python",
|
| 1123 |
"pygments_lexer": "ipython3",
|
| 1124 |
+
"version": "3.11.13"
|
| 1125 |
}
|
| 1126 |
},
|
| 1127 |
"nbformat": 4,
|
pyproject.toml
CHANGED
|
@@ -31,6 +31,8 @@ dev = [
|
|
| 31 |
"fastapi",
|
| 32 |
"uvicorn[standard]",
|
| 33 |
"chainlit",
|
|
|
|
|
|
|
| 34 |
]
|
| 35 |
server = [
|
| 36 |
"fastapi",
|
|
@@ -89,3 +91,9 @@ ignore_missing_imports = true
|
|
| 89 |
files = ["src"]
|
| 90 |
mypy_path = ["src"]
|
| 91 |
explicit_package_bases = true
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 31 |
"fastapi",
|
| 32 |
"uvicorn[standard]",
|
| 33 |
"chainlit",
|
| 34 |
+
"matplotlib",
|
| 35 |
+
"jupyterlab"
|
| 36 |
]
|
| 37 |
server = [
|
| 38 |
"fastapi",
|
|
|
|
| 91 |
files = ["src"]
|
| 92 |
mypy_path = ["src"]
|
| 93 |
explicit_package_bases = true
|
| 94 |
+
|
| 95 |
+
[tool.isort]
|
| 96 |
+
profile = "black"
|
| 97 |
+
line_length = 100
|
| 98 |
+
known_first_party = ["mini_transformer", "tests"]
|
| 99 |
+
combine_as_imports = true
|
src/mini_transformer/apps/chainlit_app.py
CHANGED
|
@@ -1,6 +1,7 @@
|
|
| 1 |
from __future__ import annotations
|
| 2 |
|
| 3 |
import os
|
|
|
|
| 4 |
from typing import Any
|
| 5 |
|
| 6 |
import chainlit as cl
|
|
@@ -17,6 +18,7 @@ from mini_transformer.model_loader import (
|
|
| 17 |
|
| 18 |
JOB_NAME = "chainlit_app"
|
| 19 |
MODEL_SESSION_KEY = "selected_model"
|
|
|
|
| 20 |
HAS_ACTION_PROMPT = hasattr(cl, "AskActionMessage") and hasattr(cl, "Action")
|
| 21 |
|
| 22 |
|
|
@@ -32,6 +34,86 @@ def _discover_action_fields() -> set[str]:
|
|
| 32 |
|
| 33 |
|
| 34 |
ACTION_FIELDS = _discover_action_fields()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 35 |
|
| 36 |
|
| 37 |
class ModelOption:
|
|
@@ -140,6 +222,11 @@ def build_config(user_input: str, model: ModelOption) -> DictConfig:
|
|
| 140 |
if GlobalHydra.instance().is_initialized():
|
| 141 |
GlobalHydra.instance().clear()
|
| 142 |
cfg = compose_model_config(model.name, job_name=model.job_name)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 143 |
cfg.input_text = user_input
|
| 144 |
return cfg
|
| 145 |
|
|
@@ -181,6 +268,56 @@ async def handle_model_command(content: str) -> None:
|
|
| 181 |
).send()
|
| 182 |
|
| 183 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 184 |
@cl.on_chat_start
|
| 185 |
async def on_chat_start() -> None:
|
| 186 |
model = await ensure_model_selected()
|
|
@@ -189,6 +326,7 @@ async def on_chat_start() -> None:
|
|
| 189 |
await cl.Message(
|
| 190 |
content=(
|
| 191 |
f"Using trained model `{model.name}`. Send text for generation, or type `/model` to switch models."
|
|
|
|
| 192 |
)
|
| 193 |
).send()
|
| 194 |
|
|
@@ -200,6 +338,9 @@ async def on_message(message: cl.Message) -> None:
|
|
| 200 |
if user_input.lower().startswith("/model"):
|
| 201 |
await handle_model_command(user_input)
|
| 202 |
return
|
|
|
|
|
|
|
|
|
|
| 203 |
|
| 204 |
if not user_input:
|
| 205 |
await cl.Message(content="Please provide some text for the model.").send()
|
|
|
|
| 1 |
from __future__ import annotations
|
| 2 |
|
| 3 |
import os
|
| 4 |
+
import shlex
|
| 5 |
from typing import Any
|
| 6 |
|
| 7 |
import chainlit as cl
|
|
|
|
| 18 |
|
| 19 |
JOB_NAME = "chainlit_app"
|
| 20 |
MODEL_SESSION_KEY = "selected_model"
|
| 21 |
+
GENERATION_SESSION_KEY = "generation_overrides"
|
| 22 |
HAS_ACTION_PROMPT = hasattr(cl, "AskActionMessage") and hasattr(cl, "Action")
|
| 23 |
|
| 24 |
|
|
|
|
| 34 |
|
| 35 |
|
| 36 |
ACTION_FIELDS = _discover_action_fields()
|
| 37 |
+
GENERATION_FIELD_ORDER = [
|
| 38 |
+
"max_new_tokens",
|
| 39 |
+
"temperature",
|
| 40 |
+
"top_k",
|
| 41 |
+
"top_p",
|
| 42 |
+
"do_sample",
|
| 43 |
+
"presence_penalty",
|
| 44 |
+
"frequency_penalty",
|
| 45 |
+
"no_repeat_ngram",
|
| 46 |
+
"min_steps_before_eos",
|
| 47 |
+
]
|
| 48 |
+
OPTIONAL_KEYS = {"top_k", "top_p", "no_repeat_ngram"}
|
| 49 |
+
BOOL_KEYS = {"do_sample"}
|
| 50 |
+
|
| 51 |
+
|
| 52 |
+
def _parse_bool(value: str) -> bool:
|
| 53 |
+
candidates = {"true", "1", "yes", "y", "on"}
|
| 54 |
+
anti_candidates = {"false", "0", "no", "n", "off"}
|
| 55 |
+
lower = value.lower()
|
| 56 |
+
if lower in candidates:
|
| 57 |
+
return True
|
| 58 |
+
if lower in anti_candidates:
|
| 59 |
+
return False
|
| 60 |
+
raise ValueError("expected a boolean (true/false)")
|
| 61 |
+
|
| 62 |
+
|
| 63 |
+
def _parse_optional(value: str) -> str | None:
|
| 64 |
+
lower = value.lower()
|
| 65 |
+
if lower in {"none", "null", "default"}:
|
| 66 |
+
return None
|
| 67 |
+
return value
|
| 68 |
+
|
| 69 |
+
|
| 70 |
+
def _parse_generation_value(key: str, raw: str) -> Any:
|
| 71 |
+
parsed = _parse_optional(raw) if key in OPTIONAL_KEYS else raw
|
| 72 |
+
if parsed is None:
|
| 73 |
+
return None
|
| 74 |
+
if key in BOOL_KEYS:
|
| 75 |
+
return _parse_bool(parsed)
|
| 76 |
+
if key in {"max_new_tokens", "top_k", "no_repeat_ngram", "min_steps_before_eos"}:
|
| 77 |
+
return int(parsed)
|
| 78 |
+
return float(parsed)
|
| 79 |
+
|
| 80 |
+
|
| 81 |
+
def _get_generation_overrides() -> dict[str, Any]:
|
| 82 |
+
overrides: dict[str, Any] | None = cl.user_session.get(GENERATION_SESSION_KEY)
|
| 83 |
+
return dict(overrides) if overrides else {}
|
| 84 |
+
|
| 85 |
+
|
| 86 |
+
def _set_generation_overrides(overrides: dict[str, Any]) -> None:
|
| 87 |
+
cl.user_session.set(GENERATION_SESSION_KEY, overrides)
|
| 88 |
+
|
| 89 |
+
|
| 90 |
+
def _format_generation_overrides(overrides: dict[str, Any]) -> str:
|
| 91 |
+
if not overrides:
|
| 92 |
+
return " (none)"
|
| 93 |
+
lines: list[str] = []
|
| 94 |
+
for key in GENERATION_FIELD_ORDER:
|
| 95 |
+
if key not in overrides:
|
| 96 |
+
continue
|
| 97 |
+
value = overrides[key]
|
| 98 |
+
if isinstance(value, bool):
|
| 99 |
+
display = "true" if value else "false"
|
| 100 |
+
else:
|
| 101 |
+
display = "None" if value is None else str(value)
|
| 102 |
+
lines.append(f"- {key} = {display}")
|
| 103 |
+
return "\n".join(lines) if lines else " (none)"
|
| 104 |
+
|
| 105 |
+
|
| 106 |
+
def _render_generation_help(overrides: dict[str, Any]) -> str:
|
| 107 |
+
allowed = ", ".join(GENERATION_FIELD_ORDER)
|
| 108 |
+
summary = _format_generation_overrides(overrides)
|
| 109 |
+
return (
|
| 110 |
+
"Current generation overrides:\n"
|
| 111 |
+
f"{summary}\n\n"
|
| 112 |
+
"Usage: /config key=value [key=value ...]\n"
|
| 113 |
+
"Set optional fields to 'none' to restore default values.\n"
|
| 114 |
+
"Run `/config reset` to clear all overrides.\n"
|
| 115 |
+
f"Allowed keys: {allowed}"
|
| 116 |
+
)
|
| 117 |
|
| 118 |
|
| 119 |
class ModelOption:
|
|
|
|
| 222 |
if GlobalHydra.instance().is_initialized():
|
| 223 |
GlobalHydra.instance().clear()
|
| 224 |
cfg = compose_model_config(model.name, job_name=model.job_name)
|
| 225 |
+
overrides = _get_generation_overrides()
|
| 226 |
+
if overrides:
|
| 227 |
+
for key, value in overrides.items():
|
| 228 |
+
if key in cfg.generation:
|
| 229 |
+
cfg.generation[key] = value
|
| 230 |
cfg.input_text = user_input
|
| 231 |
return cfg
|
| 232 |
|
|
|
|
| 268 |
).send()
|
| 269 |
|
| 270 |
|
| 271 |
+
async def handle_generation_command(content: str) -> None:
|
| 272 |
+
tokens = shlex.split(content)
|
| 273 |
+
overrides = _get_generation_overrides()
|
| 274 |
+
|
| 275 |
+
if len(tokens) == 1:
|
| 276 |
+
await cl.Message(content=_render_generation_help(overrides)).send()
|
| 277 |
+
return
|
| 278 |
+
|
| 279 |
+
first = tokens[1].lower()
|
| 280 |
+
if first == "reset":
|
| 281 |
+
_set_generation_overrides({})
|
| 282 |
+
await cl.Message(
|
| 283 |
+
content="Generation overrides cleared. Using model defaults for all parameters."
|
| 284 |
+
).send()
|
| 285 |
+
return
|
| 286 |
+
|
| 287 |
+
updates: dict[str, Any] = {}
|
| 288 |
+
errors: list[str] = []
|
| 289 |
+
for token in tokens[1:]:
|
| 290 |
+
if "=" not in token:
|
| 291 |
+
errors.append(f"Missing '=' in '{token}'. Use key=value format.")
|
| 292 |
+
continue
|
| 293 |
+
key, raw_value = token.split("=", 1)
|
| 294 |
+
normalized_key = key.strip().lower()
|
| 295 |
+
if normalized_key not in GENERATION_FIELD_ORDER:
|
| 296 |
+
errors.append(f"Unknown parameter '{key}'.")
|
| 297 |
+
continue
|
| 298 |
+
try:
|
| 299 |
+
value = _parse_generation_value(normalized_key, raw_value.strip())
|
| 300 |
+
except ValueError as exc:
|
| 301 |
+
errors.append(f"Invalid value for '{key}': {exc}")
|
| 302 |
+
continue
|
| 303 |
+
updates[normalized_key] = value
|
| 304 |
+
|
| 305 |
+
if updates:
|
| 306 |
+
overrides.update(updates)
|
| 307 |
+
_set_generation_overrides(overrides)
|
| 308 |
+
|
| 309 |
+
parts: list[str] = []
|
| 310 |
+
if updates:
|
| 311 |
+
parts.append("Updated generation overrides:\n" + _format_generation_overrides(overrides))
|
| 312 |
+
if errors:
|
| 313 |
+
formatted_errors = "\n".join(f"- {msg}" for msg in errors)
|
| 314 |
+
parts.append(f"Issues detected:\n{formatted_errors}")
|
| 315 |
+
if not parts:
|
| 316 |
+
parts.append(_render_generation_help(overrides))
|
| 317 |
+
|
| 318 |
+
await cl.Message(content="\n\n".join(parts)).send()
|
| 319 |
+
|
| 320 |
+
|
| 321 |
@cl.on_chat_start
|
| 322 |
async def on_chat_start() -> None:
|
| 323 |
model = await ensure_model_selected()
|
|
|
|
| 326 |
await cl.Message(
|
| 327 |
content=(
|
| 328 |
f"Using trained model `{model.name}`. Send text for generation, or type `/model` to switch models."
|
| 329 |
+
" Use `/config` to tweak generation settings."
|
| 330 |
)
|
| 331 |
).send()
|
| 332 |
|
|
|
|
| 338 |
if user_input.lower().startswith("/model"):
|
| 339 |
await handle_model_command(user_input)
|
| 340 |
return
|
| 341 |
+
if user_input.lower().startswith("/config"):
|
| 342 |
+
await handle_generation_command(user_input)
|
| 343 |
+
return
|
| 344 |
|
| 345 |
if not user_input:
|
| 346 |
await cl.Message(content="Please provide some text for the model.").send()
|
src/mini_transformer/configs.py
CHANGED
|
@@ -50,7 +50,6 @@ class OptimCfg:
|
|
| 50 |
betas: tuple[float, float]
|
| 51 |
weight_decay: float
|
| 52 |
eps: float
|
| 53 |
-
no_decay_on_bias_norm_embed: bool
|
| 54 |
|
| 55 |
|
| 56 |
@dataclass
|
|
|
|
| 50 |
betas: tuple[float, float]
|
| 51 |
weight_decay: float
|
| 52 |
eps: float
|
|
|
|
| 53 |
|
| 54 |
|
| 55 |
@dataclass
|
src/mini_transformer/utils.py
CHANGED
|
@@ -165,7 +165,8 @@ def _attention_with_probs(
|
|
| 165 |
full_mask_rows = None
|
| 166 |
if mask is not None:
|
| 167 |
mask = mask.to(scores.device)
|
| 168 |
-
|
|
|
|
| 169 |
full_mask_rows = mask.all(dim=-1, keepdim=True)
|
| 170 |
if full_mask_rows.any():
|
| 171 |
scores = scores.masked_fill(full_mask_rows, 0.0)
|
|
@@ -494,9 +495,10 @@ def extract_all_attention_maps(
|
|
| 494 |
cur = x
|
| 495 |
for layer in enc_layers:
|
| 496 |
mha = layer.attention_layer
|
| 497 |
-
|
| 498 |
-
|
| 499 |
-
|
|
|
|
| 500 |
mask = create_qk_padding_mask(src_pad_b, src_pad_b)
|
| 501 |
_, probs = calculate_attention(q, k, v, mask, dropout_p=0.0, return_probs=True)
|
| 502 |
enc_self_maps.append(probs)
|
|
@@ -506,10 +508,13 @@ def extract_all_attention_maps(
|
|
| 506 |
|
| 507 |
y_in = y
|
| 508 |
for layer in dec_layers:
|
|
|
|
|
|
|
| 509 |
self_mha = layer.self_attention_layer
|
| 510 |
-
|
| 511 |
-
|
| 512 |
-
|
|
|
|
| 513 |
pad = create_qk_padding_mask(tgt_pad_b, tgt_pad_b)
|
| 514 |
combined_mask = combine_masks(tgt_causal, pad)
|
| 515 |
self_ctx, self_probs = calculate_attention(
|
|
@@ -517,11 +522,17 @@ def extract_all_attention_maps(
|
|
| 517 |
)
|
| 518 |
dec_self_maps.append(self_probs)
|
| 519 |
|
| 520 |
-
|
| 521 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 522 |
|
| 523 |
cross_mha = layer.cross_attention_layer
|
| 524 |
-
cq = split_heads(cross_mha.query_linear(
|
| 525 |
ck = split_heads(cross_mha.key_linear(mem_full), cross_mha.num_heads)
|
| 526 |
cv = split_heads(cross_mha.value_linear(mem_full), cross_mha.num_heads)
|
| 527 |
cmask = create_qk_padding_mask(tgt_pad_b, src_pad_b)
|
|
|
|
| 165 |
full_mask_rows = None
|
| 166 |
if mask is not None:
|
| 167 |
mask = mask.to(scores.device)
|
| 168 |
+
fill_value = torch.finfo(scores.dtype).min
|
| 169 |
+
scores = scores.masked_fill(mask, fill_value)
|
| 170 |
full_mask_rows = mask.all(dim=-1, keepdim=True)
|
| 171 |
if full_mask_rows.any():
|
| 172 |
scores = scores.masked_fill(full_mask_rows, 0.0)
|
|
|
|
| 495 |
cur = x
|
| 496 |
for layer in enc_layers:
|
| 497 |
mha = layer.attention_layer
|
| 498 |
+
attn_input = layer.norm1(cur) if getattr(layer, "pre_norm", False) else cur
|
| 499 |
+
q = split_heads(mha.query_linear(attn_input), mha.num_heads)
|
| 500 |
+
k = split_heads(mha.key_linear(attn_input), mha.num_heads)
|
| 501 |
+
v = split_heads(mha.value_linear(attn_input), mha.num_heads)
|
| 502 |
mask = create_qk_padding_mask(src_pad_b, src_pad_b)
|
| 503 |
_, probs = calculate_attention(q, k, v, mask, dropout_p=0.0, return_probs=True)
|
| 504 |
enc_self_maps.append(probs)
|
|
|
|
| 508 |
|
| 509 |
y_in = y
|
| 510 |
for layer in dec_layers:
|
| 511 |
+
pre_norm = getattr(layer, "pre_norm", False)
|
| 512 |
+
|
| 513 |
self_mha = layer.self_attention_layer
|
| 514 |
+
self_attn_input = layer.norm1(y_in) if pre_norm else y_in
|
| 515 |
+
q = split_heads(self_mha.query_linear(self_attn_input), self_mha.num_heads)
|
| 516 |
+
k = split_heads(self_mha.key_linear(self_attn_input), self_mha.num_heads)
|
| 517 |
+
v = split_heads(self_mha.value_linear(self_attn_input), self_mha.num_heads)
|
| 518 |
pad = create_qk_padding_mask(tgt_pad_b, tgt_pad_b)
|
| 519 |
combined_mask = combine_masks(tgt_causal, pad)
|
| 520 |
self_ctx, self_probs = calculate_attention(
|
|
|
|
| 522 |
)
|
| 523 |
dec_self_maps.append(self_probs)
|
| 524 |
|
| 525 |
+
self_ctx_merged = join_heads(self_ctx)
|
| 526 |
+
self_projected = self_mha.output_linear(self_ctx_merged)
|
| 527 |
+
self_residual = y_in + layer.dropout1(self_projected)
|
| 528 |
+
|
| 529 |
+
if pre_norm:
|
| 530 |
+
cross_query_input = layer.norm2(self_residual)
|
| 531 |
+
else:
|
| 532 |
+
cross_query_input = layer.norm1(self_residual)
|
| 533 |
|
| 534 |
cross_mha = layer.cross_attention_layer
|
| 535 |
+
cq = split_heads(cross_mha.query_linear(cross_query_input), cross_mha.num_heads)
|
| 536 |
ck = split_heads(cross_mha.key_linear(mem_full), cross_mha.num_heads)
|
| 537 |
cv = split_heads(cross_mha.value_linear(mem_full), cross_mha.num_heads)
|
| 538 |
cmask = create_qk_padding_mask(tgt_pad_b, src_pad_b)
|
tests/units/test_utils.py
CHANGED
|
@@ -1,601 +1,686 @@
|
|
| 1 |
-
import math
|
| 2 |
-
|
| 3 |
-
import pytest
|
| 4 |
-
import torch
|
| 5 |
-
import torch.nn.functional as F
|
| 6 |
-
|
| 7 |
-
from mini_transformer
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
|
| 71 |
-
|
| 72 |
-
|
| 73 |
-
|
| 74 |
-
|
| 75 |
-
|
| 76 |
-
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
|
| 80 |
-
|
| 81 |
-
|
| 82 |
-
(
|
| 83 |
-
|
| 84 |
-
)
|
| 85 |
-
|
| 86 |
-
|
| 87 |
-
|
| 88 |
-
|
| 89 |
-
|
| 90 |
-
|
| 91 |
-
assert
|
| 92 |
-
|
| 93 |
-
|
| 94 |
-
|
| 95 |
-
|
| 96 |
-
|
| 97 |
-
|
| 98 |
-
|
| 99 |
-
|
| 100 |
-
|
| 101 |
-
|
| 102 |
-
|
| 103 |
-
|
| 104 |
-
|
| 105 |
-
|
| 106 |
-
|
| 107 |
-
|
| 108 |
-
|
| 109 |
-
|
| 110 |
-
|
| 111 |
-
|
| 112 |
-
|
| 113 |
-
|
| 114 |
-
|
| 115 |
-
|
| 116 |
-
|
| 117 |
-
|
| 118 |
-
|
| 119 |
-
|
| 120 |
-
|
| 121 |
-
|
| 122 |
-
|
| 123 |
-
|
| 124 |
-
|
| 125 |
-
|
| 126 |
-
|
| 127 |
-
|
| 128 |
-
|
| 129 |
-
|
| 130 |
-
|
| 131 |
-
|
| 132 |
-
|
| 133 |
-
|
| 134 |
-
|
| 135 |
-
|
| 136 |
-
|
| 137 |
-
|
| 138 |
-
#
|
| 139 |
-
|
| 140 |
-
|
| 141 |
-
|
| 142 |
-
|
| 143 |
-
|
| 144 |
-
|
| 145 |
-
|
| 146 |
-
|
| 147 |
-
|
| 148 |
-
|
| 149 |
-
|
| 150 |
-
|
| 151 |
-
|
| 152 |
-
|
| 153 |
-
|
| 154 |
-
|
| 155 |
-
|
| 156 |
-
|
| 157 |
-
|
| 158 |
-
assert
|
| 159 |
-
|
| 160 |
-
|
| 161 |
-
|
| 162 |
-
|
| 163 |
-
|
| 164 |
-
|
| 165 |
-
q =
|
| 166 |
-
|
| 167 |
-
|
| 168 |
-
|
| 169 |
-
|
| 170 |
-
|
| 171 |
-
|
| 172 |
-
|
| 173 |
-
|
| 174 |
-
|
| 175 |
-
|
| 176 |
-
|
| 177 |
-
|
| 178 |
-
|
| 179 |
-
|
| 180 |
-
|
| 181 |
-
|
| 182 |
-
|
| 183 |
-
|
| 184 |
-
|
| 185 |
-
|
| 186 |
-
|
| 187 |
-
|
| 188 |
-
|
| 189 |
-
|
| 190 |
-
|
| 191 |
-
|
| 192 |
-
|
| 193 |
-
|
| 194 |
-
|
| 195 |
-
|
| 196 |
-
|
| 197 |
-
|
| 198 |
-
|
| 199 |
-
|
| 200 |
-
|
| 201 |
-
|
| 202 |
-
|
| 203 |
-
|
| 204 |
-
|
| 205 |
-
|
| 206 |
-
|
| 207 |
-
|
| 208 |
-
|
| 209 |
-
|
| 210 |
-
|
| 211 |
-
|
| 212 |
-
|
| 213 |
-
|
| 214 |
-
|
| 215 |
-
|
| 216 |
-
|
| 217 |
-
|
| 218 |
-
|
| 219 |
-
|
| 220 |
-
|
| 221 |
-
|
| 222 |
-
|
| 223 |
-
|
| 224 |
-
|
| 225 |
-
|
| 226 |
-
|
| 227 |
-
|
| 228 |
-
|
| 229 |
-
|
| 230 |
-
|
| 231 |
-
|
| 232 |
-
|
| 233 |
-
|
| 234 |
-
|
| 235 |
-
|
| 236 |
-
|
| 237 |
-
|
| 238 |
-
|
| 239 |
-
|
| 240 |
-
|
| 241 |
-
|
| 242 |
-
|
| 243 |
-
|
| 244 |
-
|
| 245 |
-
|
| 246 |
-
|
| 247 |
-
|
| 248 |
-
|
| 249 |
-
|
| 250 |
-
|
| 251 |
-
for
|
| 252 |
-
assert
|
| 253 |
-
|
| 254 |
-
|
| 255 |
-
|
| 256 |
-
|
| 257 |
-
|
| 258 |
-
|
| 259 |
-
|
| 260 |
-
|
| 261 |
-
|
| 262 |
-
|
| 263 |
-
|
| 264 |
-
#
|
| 265 |
-
|
| 266 |
-
|
| 267 |
-
|
| 268 |
-
|
| 269 |
-
|
| 270 |
-
|
| 271 |
-
|
| 272 |
-
|
| 273 |
-
|
| 274 |
-
|
| 275 |
-
|
| 276 |
-
|
| 277 |
-
|
| 278 |
-
|
| 279 |
-
|
| 280 |
-
|
| 281 |
-
|
| 282 |
-
|
| 283 |
-
|
| 284 |
-
|
| 285 |
-
|
| 286 |
-
|
| 287 |
-
|
| 288 |
-
|
| 289 |
-
|
| 290 |
-
|
| 291 |
-
# ----------------------------
|
| 292 |
-
|
| 293 |
-
|
| 294 |
-
|
| 295 |
-
|
| 296 |
-
|
| 297 |
-
|
| 298 |
-
|
| 299 |
-
|
| 300 |
-
|
| 301 |
-
|
| 302 |
-
|
| 303 |
-
|
| 304 |
-
|
| 305 |
-
|
| 306 |
-
|
| 307 |
-
|
| 308 |
-
|
| 309 |
-
|
| 310 |
-
|
| 311 |
-
|
| 312 |
-
|
| 313 |
-
|
| 314 |
-
|
| 315 |
-
|
| 316 |
-
|
| 317 |
-
|
| 318 |
-
|
| 319 |
-
|
| 320 |
-
|
| 321 |
-
|
| 322 |
-
|
| 323 |
-
|
| 324 |
-
|
| 325 |
-
|
| 326 |
-
|
| 327 |
-
|
| 328 |
-
|
| 329 |
-
|
| 330 |
-
|
| 331 |
-
|
| 332 |
-
|
| 333 |
-
|
| 334 |
-
|
| 335 |
-
|
| 336 |
-
|
| 337 |
-
|
| 338 |
-
|
| 339 |
-
|
| 340 |
-
def
|
| 341 |
-
B, H, Sq, Sk, D = 2, 3, 4, 5, 8
|
| 342 |
-
q, k, v = _rand(B, H, Sq, Sk, D)
|
| 343 |
-
|
| 344 |
-
|
| 345 |
-
|
| 346 |
-
|
| 347 |
-
|
| 348 |
-
|
| 349 |
-
|
| 350 |
-
|
| 351 |
-
|
| 352 |
-
|
| 353 |
-
|
| 354 |
-
|
| 355 |
-
|
| 356 |
-
|
| 357 |
-
|
| 358 |
-
|
| 359 |
-
|
| 360 |
-
|
| 361 |
-
|
| 362 |
-
|
| 363 |
-
|
| 364 |
-
|
| 365 |
-
|
| 366 |
-
|
| 367 |
-
|
| 368 |
-
|
| 369 |
-
|
| 370 |
-
|
| 371 |
-
|
| 372 |
-
|
| 373 |
-
|
| 374 |
-
|
| 375 |
-
|
| 376 |
-
|
| 377 |
-
|
| 378 |
-
|
| 379 |
-
|
| 380 |
-
|
| 381 |
-
|
| 382 |
-
|
| 383 |
-
|
| 384 |
-
|
| 385 |
-
|
| 386 |
-
|
| 387 |
-
|
| 388 |
-
|
| 389 |
-
|
| 390 |
-
|
| 391 |
-
|
| 392 |
-
|
| 393 |
-
|
| 394 |
-
|
| 395 |
-
|
| 396 |
-
|
| 397 |
-
|
| 398 |
-
|
| 399 |
-
|
| 400 |
-
|
| 401 |
-
|
| 402 |
-
|
| 403 |
-
|
| 404 |
-
|
| 405 |
-
|
| 406 |
-
|
| 407 |
-
|
| 408 |
-
|
| 409 |
-
|
| 410 |
-
|
| 411 |
-
|
| 412 |
-
|
| 413 |
-
|
| 414 |
-
|
| 415 |
-
|
| 416 |
-
|
| 417 |
-
|
| 418 |
-
|
| 419 |
-
|
| 420 |
-
|
| 421 |
-
|
| 422 |
-
|
| 423 |
-
|
| 424 |
-
|
| 425 |
-
|
| 426 |
-
|
| 427 |
-
|
| 428 |
-
|
| 429 |
-
|
| 430 |
-
|
| 431 |
-
|
| 432 |
-
|
| 433 |
-
|
| 434 |
-
|
| 435 |
-
|
| 436 |
-
|
| 437 |
-
|
| 438 |
-
|
| 439 |
-
|
| 440 |
-
|
| 441 |
-
|
| 442 |
-
|
| 443 |
-
|
| 444 |
-
|
| 445 |
-
|
| 446 |
-
|
| 447 |
-
|
| 448 |
-
|
| 449 |
-
|
| 450 |
-
|
| 451 |
-
|
| 452 |
-
|
| 453 |
-
|
| 454 |
-
|
| 455 |
-
|
| 456 |
-
|
| 457 |
-
|
| 458 |
-
|
| 459 |
-
|
| 460 |
-
|
| 461 |
-
|
| 462 |
-
|
| 463 |
-
|
| 464 |
-
|
| 465 |
-
|
| 466 |
-
|
| 467 |
-
|
| 468 |
-
|
| 469 |
-
|
| 470 |
-
|
| 471 |
-
|
| 472 |
-
|
| 473 |
-
|
| 474 |
-
|
| 475 |
-
|
| 476 |
-
|
| 477 |
-
|
| 478 |
-
|
| 479 |
-
|
| 480 |
-
|
| 481 |
-
|
| 482 |
-
|
| 483 |
-
|
| 484 |
-
|
| 485 |
-
|
| 486 |
-
|
| 487 |
-
|
| 488 |
-
|
| 489 |
-
def
|
| 490 |
-
|
| 491 |
-
|
| 492 |
-
|
| 493 |
-
|
| 494 |
-
|
| 495 |
-
|
| 496 |
-
|
| 497 |
-
|
| 498 |
-
|
| 499 |
-
|
| 500 |
-
|
| 501 |
-
|
| 502 |
-
|
| 503 |
-
|
| 504 |
-
|
| 505 |
-
|
| 506 |
-
|
| 507 |
-
|
| 508 |
-
|
| 509 |
-
assert torch.
|
| 510 |
-
|
| 511 |
-
|
| 512 |
-
|
| 513 |
-
|
| 514 |
-
|
| 515 |
-
|
| 516 |
-
|
| 517 |
-
|
| 518 |
-
|
| 519 |
-
|
| 520 |
-
|
| 521 |
-
|
| 522 |
-
|
| 523 |
-
|
| 524 |
-
|
| 525 |
-
|
| 526 |
-
|
| 527 |
-
|
| 528 |
-
|
| 529 |
-
|
| 530 |
-
|
| 531 |
-
|
| 532 |
-
|
| 533 |
-
|
| 534 |
-
|
| 535 |
-
|
| 536 |
-
assert torch.equal(
|
| 537 |
-
|
| 538 |
-
|
| 539 |
-
|
| 540 |
-
|
| 541 |
-
|
| 542 |
-
|
| 543 |
-
|
| 544 |
-
|
| 545 |
-
assert torch.equal(
|
| 546 |
-
|
| 547 |
-
|
| 548 |
-
def
|
| 549 |
-
|
| 550 |
-
|
| 551 |
-
|
| 552 |
-
|
| 553 |
-
|
| 554 |
-
|
| 555 |
-
|
| 556 |
-
|
| 557 |
-
|
| 558 |
-
|
| 559 |
-
|
| 560 |
-
|
| 561 |
-
|
| 562 |
-
|
| 563 |
-
#
|
| 564 |
-
|
| 565 |
-
|
| 566 |
-
|
| 567 |
-
|
| 568 |
-
|
| 569 |
-
|
| 570 |
-
|
| 571 |
-
|
| 572 |
-
|
| 573 |
-
|
| 574 |
-
def
|
| 575 |
-
|
| 576 |
-
|
| 577 |
-
|
| 578 |
-
|
| 579 |
-
|
| 580 |
-
|
| 581 |
-
|
| 582 |
-
|
| 583 |
-
|
| 584 |
-
|
| 585 |
-
)
|
| 586 |
-
|
| 587 |
-
|
| 588 |
-
|
| 589 |
-
|
| 590 |
-
def
|
| 591 |
-
|
| 592 |
-
|
| 593 |
-
|
| 594 |
-
|
| 595 |
-
|
| 596 |
-
|
| 597 |
-
|
| 598 |
-
|
| 599 |
-
|
| 600 |
-
|
| 601 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import math
|
| 2 |
+
|
| 3 |
+
import pytest
|
| 4 |
+
import torch
|
| 5 |
+
import torch.nn.functional as F
|
| 6 |
+
|
| 7 |
+
from mini_transformer import BasicEncoderDecoderTransformer
|
| 8 |
+
from mini_transformer.configs import ModelCfg
|
| 9 |
+
from mini_transformer.utils import (
|
| 10 |
+
calculate_attention,
|
| 11 |
+
combine_masks,
|
| 12 |
+
create_causal_mask,
|
| 13 |
+
extract_all_attention_maps,
|
| 14 |
+
join_heads,
|
| 15 |
+
sample_from_logits,
|
| 16 |
+
sinusoidal_positional_encoding,
|
| 17 |
+
split_heads,
|
| 18 |
+
)
|
| 19 |
+
|
| 20 |
+
###___split_heads___###
|
| 21 |
+
|
| 22 |
+
|
| 23 |
+
def test_happy_path_shape_dtype_device_cpu():
|
| 24 |
+
x = torch.randn(2, 10, 16) # B=2, S=10, D=16
|
| 25 |
+
out = split_heads(x, num_heads=4)
|
| 26 |
+
assert out.shape == (2, 4, 10, 4)
|
| 27 |
+
assert out.dtype == x.dtype
|
| 28 |
+
assert out.device == x.device
|
| 29 |
+
|
| 30 |
+
|
| 31 |
+
def test_smallest_valid():
|
| 32 |
+
x = torch.randn(1, 1, 4)
|
| 33 |
+
out = split_heads(x, num_heads=2)
|
| 34 |
+
assert out.shape == (1, 2, 1, 2)
|
| 35 |
+
|
| 36 |
+
|
| 37 |
+
def test_zero_length_seq_allowed():
|
| 38 |
+
x = torch.randn(2, 0, 8)
|
| 39 |
+
out = split_heads(x, num_heads=2)
|
| 40 |
+
assert out.shape == (2, 2, 0, 4)
|
| 41 |
+
|
| 42 |
+
|
| 43 |
+
def test_non_3d_input_raises_value_error():
|
| 44 |
+
x2 = torch.randn(10, 16)
|
| 45 |
+
with pytest.raises(ValueError) as ei2:
|
| 46 |
+
split_heads(x2, 4)
|
| 47 |
+
assert "(B, S, D)" in str(ei2.value)
|
| 48 |
+
|
| 49 |
+
x4 = torch.randn(2, 3, 4, 5)
|
| 50 |
+
with pytest.raises(ValueError) as ei4:
|
| 51 |
+
split_heads(x4, 4)
|
| 52 |
+
assert "(B, S, D)" in str(ei4.value)
|
| 53 |
+
|
| 54 |
+
|
| 55 |
+
def test_invalid_num_heads_type_raises_type_error():
|
| 56 |
+
x = torch.randn(2, 10, 16)
|
| 57 |
+
with pytest.raises(TypeError):
|
| 58 |
+
split_heads(x, 4.0) # float
|
| 59 |
+
with pytest.raises(TypeError):
|
| 60 |
+
split_heads(x, torch.tensor(4)) # Tensor
|
| 61 |
+
|
| 62 |
+
|
| 63 |
+
def test_num_heads_leq_zero_raises_value_error():
|
| 64 |
+
x = torch.randn(2, 10, 16)
|
| 65 |
+
with pytest.raises(ValueError):
|
| 66 |
+
split_heads(x, 0)
|
| 67 |
+
with pytest.raises(ValueError):
|
| 68 |
+
split_heads(x, -2)
|
| 69 |
+
|
| 70 |
+
|
| 71 |
+
def test_non_divisible_d_model_raises_value_error_message_has_values():
|
| 72 |
+
x = torch.randn(2, 5, 10)
|
| 73 |
+
with pytest.raises(ValueError) as e:
|
| 74 |
+
split_heads(x, 3)
|
| 75 |
+
msg = str(e.value)
|
| 76 |
+
assert "d_model (10)" in msg and "num_heads (3)" in msg
|
| 77 |
+
|
| 78 |
+
|
| 79 |
+
@pytest.mark.parametrize(
|
| 80 |
+
"B,S,D,H",
|
| 81 |
+
[
|
| 82 |
+
(1, 1, 8, 1),
|
| 83 |
+
(2, 3, 12, 3),
|
| 84 |
+
(4, 7, 32, 8),
|
| 85 |
+
(3, 0, 24, 6),
|
| 86 |
+
],
|
| 87 |
+
)
|
| 88 |
+
def test_invariants_random_valid(B, S, D, H):
|
| 89 |
+
x = torch.randn(B, S, D)
|
| 90 |
+
out = split_heads(x, H)
|
| 91 |
+
assert out.shape[0] == B
|
| 92 |
+
assert out.shape[2] == S
|
| 93 |
+
assert (H * (D // H)) == D
|
| 94 |
+
assert x.numel() == out.numel()
|
| 95 |
+
|
| 96 |
+
|
| 97 |
+
def test_grad_propagates():
|
| 98 |
+
x = torch.randn(2, 10, 16, requires_grad=True)
|
| 99 |
+
out = split_heads(x, 4)
|
| 100 |
+
# Do a simple scalar reduction to make grad non-trivial
|
| 101 |
+
loss = out.square().mean()
|
| 102 |
+
loss.backward()
|
| 103 |
+
assert x.grad is not None
|
| 104 |
+
assert x.grad.shape == x.shape
|
| 105 |
+
|
| 106 |
+
|
| 107 |
+
def test_non_contiguous_input():
|
| 108 |
+
# Create a non-contiguous view by transposing and slicing
|
| 109 |
+
base = torch.randn(10, 2, 16)
|
| 110 |
+
x = base.transpose(0, 1)[:, :8, :] # shape (2, 8, 16), likely non-contiguous
|
| 111 |
+
assert not x.is_contiguous()
|
| 112 |
+
out = split_heads(x, 4)
|
| 113 |
+
assert out.shape == (2, 4, 8, 4)
|
| 114 |
+
|
| 115 |
+
|
| 116 |
+
@pytest.mark.skipif(not torch.cuda.is_available(), reason="CUDA not available")
|
| 117 |
+
def test_device_preserved_cuda():
|
| 118 |
+
x = torch.randn(2, 10, 16, device="cuda")
|
| 119 |
+
out = split_heads(x, 4)
|
| 120 |
+
assert out.device.type == "cuda"
|
| 121 |
+
|
| 122 |
+
|
| 123 |
+
@pytest.mark.skipif(not torch.cuda.is_available(), reason="CUDA not available")
|
| 124 |
+
def test_dtype_half_bfloat_on_gpu():
|
| 125 |
+
x_half = torch.randn(2, 10, 16, device="cuda", dtype=torch.float16)
|
| 126 |
+
out_half = split_heads(x_half, 4)
|
| 127 |
+
assert out_half.dtype == torch.float16
|
| 128 |
+
|
| 129 |
+
# bfloat16 may not be available on all GPUs; guard with try
|
| 130 |
+
try:
|
| 131 |
+
x_bf16 = torch.randn(2, 10, 16, device="cuda", dtype=torch.bfloat16)
|
| 132 |
+
out_bf16 = split_heads(x_bf16, 4)
|
| 133 |
+
assert out_bf16.dtype == torch.bfloat16
|
| 134 |
+
except RuntimeError:
|
| 135 |
+
pytest.skip("bfloat16 not supported on this device")
|
| 136 |
+
|
| 137 |
+
|
| 138 |
+
###___calculate_attention___###
|
| 139 |
+
|
| 140 |
+
|
| 141 |
+
# ----------------------------
|
| 142 |
+
# Helpers
|
| 143 |
+
# ----------------------------
|
| 144 |
+
def _rand(B=2, H=3, Sq=4, Sk=5, D=8, device="cpu", dtype=torch.float32):
|
| 145 |
+
q = torch.randn(B, H, Sq, D, device=device, dtype=dtype)
|
| 146 |
+
k = torch.randn(B, H, Sk, D, device=device, dtype=dtype)
|
| 147 |
+
v = torch.randn(B, H, Sk, D, device=device, dtype=dtype)
|
| 148 |
+
return q, k, v
|
| 149 |
+
|
| 150 |
+
|
| 151 |
+
# ----------------------------
|
| 152 |
+
# A. Basic correctness
|
| 153 |
+
# ----------------------------
|
| 154 |
+
def test_basic_shapes_and_row_sums():
|
| 155 |
+
B, H, Sq, Sk, D = 2, 3, 4, 5, 8
|
| 156 |
+
q, k, v = _rand(B, H, Sq, Sk, D)
|
| 157 |
+
attn, probs = calculate_attention(q, k, v, mask=None, return_probs=True)
|
| 158 |
+
assert attn.shape == (B, H, Sq, D)
|
| 159 |
+
assert probs.shape == (B, H, Sq, Sk)
|
| 160 |
+
# softmax rows sum to 1
|
| 161 |
+
assert torch.allclose(probs.sum(-1), torch.ones(B, H, Sq), atol=1e-6)
|
| 162 |
+
|
| 163 |
+
|
| 164 |
+
def test_identity_prefers_diagonal():
|
| 165 |
+
# q == k == v as orthogonal-ish basis to encourage diagonal peak
|
| 166 |
+
Sq = Sk = D = 4
|
| 167 |
+
base = torch.eye(D).view(1, 1, Sk, D).expand(1, 1, Sk, D).contiguous()
|
| 168 |
+
q = base.clone()
|
| 169 |
+
k = base.clone()
|
| 170 |
+
v = base.clone()
|
| 171 |
+
_, probs = calculate_attention(q, k, v, mask=None, return_probs=True)
|
| 172 |
+
assert torch.equal(probs[0, 0].argmax(-1), torch.arange(Sq))
|
| 173 |
+
|
| 174 |
+
|
| 175 |
+
# ----------------------------
|
| 176 |
+
# B. Mask behavior (boolean & causal)
|
| 177 |
+
# ----------------------------
|
| 178 |
+
def test_padding_mask_boolean_last_two_keys():
|
| 179 |
+
B, H, Sq, Sk, D = 2, 3, 4, 5, 8
|
| 180 |
+
q, k, v = _rand(B, H, Sq, Sk, D)
|
| 181 |
+
mask = torch.zeros(B, H, Sq, Sk, dtype=torch.bool)
|
| 182 |
+
mask[:, :, :, -2:] = True # mask last two keys
|
| 183 |
+
_, probs = calculate_attention(q, k, v, mask=mask, return_probs=True)
|
| 184 |
+
assert (probs[:, :, :, -2:] < 1e-6).all()
|
| 185 |
+
# After zeroing masked entries, rows renormalize to ~1
|
| 186 |
+
assert torch.allclose(probs.masked_fill(mask, 0).sum(-1), torch.ones(B, H, Sq), atol=1e-6)
|
| 187 |
+
|
| 188 |
+
|
| 189 |
+
def test_causal_mask_upper_triangle_zero():
|
| 190 |
+
B, H, S, D = 2, 3, 6, 8
|
| 191 |
+
q, k, v = _rand(B, H, S, S, D)
|
| 192 |
+
causal = torch.ones(B, H, S, S, dtype=torch.bool).triu(1) # True above diagonal
|
| 193 |
+
_, probs = calculate_attention(q, k, v, mask=causal, return_probs=True)
|
| 194 |
+
assert (probs.triu(1) < 1e-6).all()
|
| 195 |
+
|
| 196 |
+
|
| 197 |
+
def test_fully_masked_row_zero_probs_and_output():
|
| 198 |
+
B, H, Sq, Sk, D = 2, 3, 4, 5, 8
|
| 199 |
+
q, k, v = _rand(B, H, Sq, Sk, D)
|
| 200 |
+
mask = torch.zeros(B, H, Sq, Sk, dtype=torch.bool)
|
| 201 |
+
mask[:, :, 1, :] = True # fully mask a query row
|
| 202 |
+
attn, probs = calculate_attention(q, k, v, mask=mask, return_probs=True)
|
| 203 |
+
assert torch.allclose(probs[:, :, 1, :], torch.zeros(B, H, Sk))
|
| 204 |
+
assert torch.allclose(attn[:, :, 1, :], torch.zeros(B, H, D))
|
| 205 |
+
|
| 206 |
+
|
| 207 |
+
###___extract_all_attention_maps___###
|
| 208 |
+
|
| 209 |
+
|
| 210 |
+
def _make_model_cfg(num_layers: int, layer_norm_style: str | None = None) -> ModelCfg:
|
| 211 |
+
return ModelCfg(
|
| 212 |
+
name="test",
|
| 213 |
+
best_checkpoint_path="/tmp/best.ckpt",
|
| 214 |
+
latest_checkpoint_path="/tmp/latest.ckpt",
|
| 215 |
+
tokenizer="demo",
|
| 216 |
+
d_model=16,
|
| 217 |
+
num_layers=num_layers,
|
| 218 |
+
num_heads=4,
|
| 219 |
+
d_ff=32,
|
| 220 |
+
dropout_rate=0.0,
|
| 221 |
+
max_seq_len=32,
|
| 222 |
+
vocab_size=64,
|
| 223 |
+
pad_id=0,
|
| 224 |
+
bos_id=1,
|
| 225 |
+
eos_id=2,
|
| 226 |
+
layer_norm_style=layer_norm_style,
|
| 227 |
+
)
|
| 228 |
+
|
| 229 |
+
|
| 230 |
+
def _run_attention_maps(
|
| 231 |
+
*,
|
| 232 |
+
num_layers: int,
|
| 233 |
+
layer_norm_style: str | None,
|
| 234 |
+
) -> tuple[ModelCfg, BasicEncoderDecoderTransformer, dict, torch.Tensor, torch.Tensor]:
|
| 235 |
+
cfg = _make_model_cfg(num_layers=num_layers, layer_norm_style=layer_norm_style)
|
| 236 |
+
model = BasicEncoderDecoderTransformer(cfg)
|
| 237 |
+
batch, src_len, tgt_len = 2, 5, 4
|
| 238 |
+
src_ids = torch.randint(0, cfg.vocab_size, (batch, src_len), dtype=torch.long)
|
| 239 |
+
tgt_ids = torch.randint(0, cfg.vocab_size, (batch, tgt_len), dtype=torch.long)
|
| 240 |
+
src_pad = torch.zeros(batch, src_len, dtype=torch.bool)
|
| 241 |
+
tgt_pad = torch.zeros(batch, tgt_len, dtype=torch.bool)
|
| 242 |
+
maps = extract_all_attention_maps(model, src_ids, tgt_ids, src_pad, tgt_pad)
|
| 243 |
+
return cfg, model, maps, src_ids, tgt_ids
|
| 244 |
+
|
| 245 |
+
|
| 246 |
+
def _assert_attention_shapes(maps, *, batch: int, heads: int, src_len: int, tgt_len: int) -> None:
|
| 247 |
+
for layer_map in maps["enc_self"]:
|
| 248 |
+
assert layer_map.shape == (batch, heads, src_len, src_len)
|
| 249 |
+
assert torch.isfinite(layer_map).all()
|
| 250 |
+
assert torch.allclose(layer_map.sum(-1), torch.ones(batch, heads, src_len), atol=1e-5)
|
| 251 |
+
for layer_map in maps["dec_self"]:
|
| 252 |
+
assert layer_map.shape == (batch, heads, tgt_len, tgt_len)
|
| 253 |
+
assert torch.isfinite(layer_map).all()
|
| 254 |
+
assert torch.allclose(layer_map.sum(-1), torch.ones(batch, heads, tgt_len), atol=1e-5)
|
| 255 |
+
for layer_map in maps["dec_cross"]:
|
| 256 |
+
assert layer_map.shape == (batch, heads, tgt_len, src_len)
|
| 257 |
+
assert torch.isfinite(layer_map).all()
|
| 258 |
+
assert torch.allclose(layer_map.sum(-1), torch.ones(batch, heads, tgt_len), atol=1e-5)
|
| 259 |
+
|
| 260 |
+
|
| 261 |
+
@pytest.mark.parametrize(
|
| 262 |
+
"layer_norm_style, expected_pre_norm",
|
| 263 |
+
[
|
| 264 |
+
(None, True), # auto-selects pre-LN when num_layers > 4
|
| 265 |
+
("post", False),
|
| 266 |
+
("pre", True),
|
| 267 |
+
],
|
| 268 |
+
)
|
| 269 |
+
def test_extract_attention_maps_handles_layer_norm_styles(layer_norm_style, expected_pre_norm):
|
| 270 |
+
cfg, model, maps, src_ids, tgt_ids = _run_attention_maps(
|
| 271 |
+
num_layers=6, layer_norm_style=layer_norm_style
|
| 272 |
+
)
|
| 273 |
+
batch, src_len = src_ids.shape
|
| 274 |
+
tgt_len = tgt_ids.shape[1]
|
| 275 |
+
assert len(maps["enc_self"]) == cfg.num_layers
|
| 276 |
+
assert len(maps["dec_self"]) == cfg.num_layers
|
| 277 |
+
assert len(maps["dec_cross"]) == cfg.num_layers
|
| 278 |
+
_assert_attention_shapes(
|
| 279 |
+
maps,
|
| 280 |
+
batch=batch,
|
| 281 |
+
heads=cfg.num_heads,
|
| 282 |
+
src_len=src_len,
|
| 283 |
+
tgt_len=tgt_len,
|
| 284 |
+
)
|
| 285 |
+
assert all(layer.pre_norm is expected_pre_norm for layer in model.encoder.layers)
|
| 286 |
+
assert all(layer.pre_norm is expected_pre_norm for layer in model.decoder.layers)
|
| 287 |
+
|
| 288 |
+
|
| 289 |
+
# ----------------------------
|
| 290 |
+
# C. Numerical stability
|
| 291 |
+
# ----------------------------
|
| 292 |
+
def test_extreme_logits_no_nans_or_infs():
|
| 293 |
+
B, H, Sq, Sk, D = 2, 3, 4, 5, 8
|
| 294 |
+
q, k, v = _rand(B, H, Sq, Sk, D)
|
| 295 |
+
q = q * 1000
|
| 296 |
+
k = k * 1000
|
| 297 |
+
attn, probs = calculate_attention(q, k, v, mask=None, return_probs=True)
|
| 298 |
+
assert not (torch.isnan(probs).any() or torch.isinf(probs).any())
|
| 299 |
+
assert attn.shape == (B, H, Sq, D)
|
| 300 |
+
|
| 301 |
+
|
| 302 |
+
def test_half_precision_close_to_fp32_or_skip():
|
| 303 |
+
if not torch.cuda.is_available():
|
| 304 |
+
pytest.skip("CUDA not available")
|
| 305 |
+
B, H, Sq, Sk, D = 2, 3, 4, 5, 8
|
| 306 |
+
q32, k32, v32 = _rand(B, H, Sq, Sk, D, device="cuda", dtype=torch.float32)
|
| 307 |
+
q16, k16, v16 = q32.half(), k32.half(), v32.half()
|
| 308 |
+
a16 = calculate_attention(q16, k16, v16, mask=None)
|
| 309 |
+
a32 = calculate_attention(q32, k32, v32, mask=None)
|
| 310 |
+
# looser tolerance for fp16
|
| 311 |
+
assert torch.allclose(a16.float(), a32.float(), atol=5e-2, rtol=5e-2)
|
| 312 |
+
|
| 313 |
+
|
| 314 |
+
# ----------------------------
|
| 315 |
+
# D. Edge cases
|
| 316 |
+
# ----------------------------
|
| 317 |
+
def test_singleton_softmax_is_one():
|
| 318 |
+
q = torch.randn(1, 1, 1, 1)
|
| 319 |
+
k = torch.randn(1, 1, 1, 1)
|
| 320 |
+
v = torch.randn(1, 1, 1, 1)
|
| 321 |
+
_, p = calculate_attention(q, k, v, mask=None, return_probs=True)
|
| 322 |
+
assert torch.allclose(p, torch.ones_like(p), atol=1e-6)
|
| 323 |
+
|
| 324 |
+
|
| 325 |
+
# ----------------------------
|
| 326 |
+
# E. Autograd & determinism
|
| 327 |
+
# ----------------------------
|
| 328 |
+
def test_gradients_flow_no_inplace_breakage():
|
| 329 |
+
B, H, Sq, Sk, D = 2, 3, 4, 5, 8
|
| 330 |
+
q = torch.randn(B, H, Sq, D, requires_grad=True)
|
| 331 |
+
k = torch.randn(B, H, Sk, D, requires_grad=True)
|
| 332 |
+
v = torch.randn(B, H, Sk, D, requires_grad=True)
|
| 333 |
+
out = calculate_attention(q, k, v, mask=None)
|
| 334 |
+
loss = out.pow(2).sum()
|
| 335 |
+
loss.backward()
|
| 336 |
+
for t in (q, k, v):
|
| 337 |
+
assert t.grad is not None and torch.isfinite(t.grad).all()
|
| 338 |
+
|
| 339 |
+
|
| 340 |
+
def test_repeated_calls_consistent_without_dropout():
|
| 341 |
+
B, H, Sq, Sk, D = 2, 3, 4, 5, 8
|
| 342 |
+
q, k, v = _rand(B, H, Sq, Sk, D)
|
| 343 |
+
a1 = calculate_attention(q, k, v, mask=None)
|
| 344 |
+
a2 = calculate_attention(q, k, v, mask=None)
|
| 345 |
+
assert torch.allclose(a1, a2)
|
| 346 |
+
|
| 347 |
+
|
| 348 |
+
# ----------------------------
|
| 349 |
+
# F. Parity with PyTorch SDPA (when available)
|
| 350 |
+
# ----------------------------
|
| 351 |
+
def test_sdpa_parity_if_available():
|
| 352 |
+
B, H, Sq, Sk, D = 2, 3, 4, 5, 8
|
| 353 |
+
q, k, v = _rand(B, H, Sq, Sk, D)
|
| 354 |
+
try:
|
| 355 |
+
sdpa = F.scaled_dot_product_attention(
|
| 356 |
+
q, k, v, dropout_p=0.0, attn_mask=None, is_causal=False
|
| 357 |
+
)
|
| 358 |
+
manual = calculate_attention(q, k, v, mask=None)
|
| 359 |
+
assert torch.allclose(sdpa, manual, atol=1e-5, rtol=1e-4)
|
| 360 |
+
except Exception:
|
| 361 |
+
# Older PyTorch: skip
|
| 362 |
+
pass
|
| 363 |
+
|
| 364 |
+
|
| 365 |
+
# ----------------------------
|
| 366 |
+
# G. Performance smoke (sanity only)
|
| 367 |
+
# ----------------------------
|
| 368 |
+
def test_perf_smoke_runs_reasonably():
|
| 369 |
+
# Not asserting timing; just ensure no OOM or pathological slowdowns
|
| 370 |
+
q, k, v = _rand(B=1, H=8, Sq=1024, Sk=1024, D=64)
|
| 371 |
+
_ = calculate_attention(q, k, v, mask=None, return_probs=False)
|
| 372 |
+
q, k, v = _rand(B=2, H=8, Sq=1536, Sk=1536, D=64)
|
| 373 |
+
_ = calculate_attention(q, k, v, mask=None, return_probs=False)
|
| 374 |
+
|
| 375 |
+
|
| 376 |
+
# ----------------------------
|
| 377 |
+
# H. Device behavior
|
| 378 |
+
# ----------------------------
|
| 379 |
+
def test_mask_on_cpu_qkv_on_gpu_autofix_or_skip():
|
| 380 |
+
if not torch.cuda.is_available():
|
| 381 |
+
pytest.skip("CUDA not available")
|
| 382 |
+
|
| 383 |
+
prev = torch.are_deterministic_algorithms_enabled()
|
| 384 |
+
try:
|
| 385 |
+
# Disable determinism *only for this test*
|
| 386 |
+
if prev:
|
| 387 |
+
torch.use_deterministic_algorithms(False)
|
| 388 |
+
|
| 389 |
+
q, k, v = _rand(device="cuda")
|
| 390 |
+
mask = torch.zeros(q.shape[0], 1, 1, k.shape[2], dtype=torch.bool) # CPU
|
| 391 |
+
attn, probs = calculate_attention(q, k, v, mask, return_probs=True)
|
| 392 |
+
assert attn.device.type == "cuda"
|
| 393 |
+
assert probs.device.type == "cuda"
|
| 394 |
+
finally:
|
| 395 |
+
# restore whatever the global setting was
|
| 396 |
+
torch.use_deterministic_algorithms(prev)
|
| 397 |
+
|
| 398 |
+
|
| 399 |
+
def test_qkv_device_mismatch_raises_clear_error():
|
| 400 |
+
if not torch.cuda.is_available():
|
| 401 |
+
pytest.skip("CUDA not available")
|
| 402 |
+
|
| 403 |
+
prev = torch.are_deterministic_algorithms_enabled()
|
| 404 |
+
try:
|
| 405 |
+
if prev:
|
| 406 |
+
torch.use_deterministic_algorithms(False)
|
| 407 |
+
|
| 408 |
+
q, k, v = _rand(device="cuda")
|
| 409 |
+
k = k.cpu() # force mismatch
|
| 410 |
+
with pytest.raises(RuntimeError) as ei:
|
| 411 |
+
_ = calculate_attention(q, k, v, mask=None)
|
| 412 |
+
msg = str(ei.value)
|
| 413 |
+
assert (
|
| 414 |
+
"q/k/v must be on the same device" in msg # our explicit check
|
| 415 |
+
or "Expected all tensors to be on the same device" in msg # PyTorch matmul
|
| 416 |
+
or "query, key, value must be on the same device" in msg # updated error wording
|
| 417 |
+
)
|
| 418 |
+
finally:
|
| 419 |
+
torch.use_deterministic_algorithms(prev)
|
| 420 |
+
|
| 421 |
+
|
| 422 |
+
# ----------------------------
|
| 423 |
+
# I. Mask broadcastability
|
| 424 |
+
# ----------------------------
|
| 425 |
+
def test_boolean_mask_broadcast_variants_equivalent():
|
| 426 |
+
B, H, Sq, Sk, D = 2, 3, 4, 5, 8
|
| 427 |
+
q, k, v = _rand(B, H, Sq, Sk, D)
|
| 428 |
+
m_exact = torch.zeros(B, H, Sq, Sk, dtype=torch.bool)
|
| 429 |
+
m_B1_1Sk = torch.zeros(B, 1, 1, Sk, dtype=torch.bool)
|
| 430 |
+
m_11SqSk = torch.zeros(1, 1, Sq, Sk, dtype=torch.bool)
|
| 431 |
+
|
| 432 |
+
a_exact, p_exact = calculate_attention(q, k, v, m_exact, return_probs=True)
|
| 433 |
+
a1, p1 = calculate_attention(q, k, v, m_B1_1Sk, return_probs=True)
|
| 434 |
+
a2, p2 = calculate_attention(q, k, v, m_11SqSk, return_probs=True)
|
| 435 |
+
|
| 436 |
+
assert torch.allclose(a1, a_exact, atol=1e-6, rtol=1e-5)
|
| 437 |
+
assert torch.allclose(p1, p_exact, atol=1e-6, rtol=1e-5)
|
| 438 |
+
assert torch.allclose(a2, a_exact, atol=1e-6, rtol=1e-5)
|
| 439 |
+
assert torch.allclose(p2, p_exact, atol=1e-6, rtol=1e-5)
|
| 440 |
+
|
| 441 |
+
|
| 442 |
+
def test_non_broadcastable_mask_raises_value_error():
|
| 443 |
+
B, H, Sq, Sk, D = 2, 3, 4, 5, 8
|
| 444 |
+
q, k, v = _rand(B, H, Sq, Sk, D)
|
| 445 |
+
bad = torch.zeros(
|
| 446 |
+
B, H, Sq, dtype=torch.bool
|
| 447 |
+
) # missing last dim => not broadcastable to (B,H,Sq,Sk)
|
| 448 |
+
with pytest.raises(ValueError) as ei:
|
| 449 |
+
_ = calculate_attention(q, k, v, bad)
|
| 450 |
+
assert "not broadcastable" in str(ei.value)
|
| 451 |
+
|
| 452 |
+
|
| 453 |
+
###___join_heads___###
|
| 454 |
+
|
| 455 |
+
|
| 456 |
+
def test_join_heads_type_error():
|
| 457 |
+
with pytest.raises(TypeError):
|
| 458 |
+
join_heads([1, 2, 3]) # not a tensor
|
| 459 |
+
|
| 460 |
+
|
| 461 |
+
def test_join_heads_dim_error():
|
| 462 |
+
with pytest.raises(ValueError):
|
| 463 |
+
join_heads(torch.randn(2, 3, 4)) # only 3D
|
| 464 |
+
|
| 465 |
+
|
| 466 |
+
def test_join_heads_shape_values():
|
| 467 |
+
x = torch.randn(2, 0, 4, 5) # zero heads
|
| 468 |
+
y = join_heads(x)
|
| 469 |
+
assert y.shape == (2, 4, 0)
|
| 470 |
+
|
| 471 |
+
|
| 472 |
+
def test_join_heads_roundtrip():
|
| 473 |
+
B, H, T, Dh = 2, 3, 5, 7
|
| 474 |
+
x = torch.randn(B, H, T, Dh)
|
| 475 |
+
y = join_heads(x)
|
| 476 |
+
assert y.shape == (B, T, H * Dh)
|
| 477 |
+
# Check element mapping correctness
|
| 478 |
+
for b in range(B):
|
| 479 |
+
for h in range(H):
|
| 480 |
+
for t in range(T):
|
| 481 |
+
for d in range(Dh):
|
| 482 |
+
assert torch.allclose(y[b, t, h * Dh + d], x[b, h, t, d])
|
| 483 |
+
|
| 484 |
+
|
| 485 |
+
###___sinusoidal_positional_encoding___###
|
| 486 |
+
|
| 487 |
+
|
| 488 |
+
@pytest.mark.parametrize("seq_len,dim", [(1, 1), (1, 2), (7, 4), (17, 33)])
|
| 489 |
+
def test_sinusoidal_shapes_and_dtype(seq_len, dim):
|
| 490 |
+
pe = sinusoidal_positional_encoding(seq_len, dim)
|
| 491 |
+
assert pe.shape == (seq_len, dim)
|
| 492 |
+
assert pe.dtype == torch.float32
|
| 493 |
+
assert pe.requires_grad is False
|
| 494 |
+
|
| 495 |
+
|
| 496 |
+
def test_sinusoidal_matches_reference_small_case():
|
| 497 |
+
seq_len, dim = 4, 6
|
| 498 |
+
pe = sinusoidal_positional_encoding(seq_len, dim)
|
| 499 |
+
|
| 500 |
+
ref = torch.zeros_like(pe)
|
| 501 |
+
base = 10_000.0
|
| 502 |
+
for pos in range(seq_len):
|
| 503 |
+
for i in range(0, dim // 2):
|
| 504 |
+
denom = base ** (2 * i / dim)
|
| 505 |
+
ref[pos, 2 * i] = math.sin(pos / denom)
|
| 506 |
+
ref[pos, 2 * i + 1] = math.cos(pos / denom)
|
| 507 |
+
|
| 508 |
+
paired = (dim // 2) * 2
|
| 509 |
+
assert torch.allclose(pe[:, :paired], ref[:, :paired], atol=1e-6, rtol=1e-6)
|
| 510 |
+
|
| 511 |
+
|
| 512 |
+
def test_sinusoidal_deterministic():
|
| 513 |
+
a = sinusoidal_positional_encoding(8, 16)
|
| 514 |
+
b = sinusoidal_positional_encoding(8, 16)
|
| 515 |
+
assert torch.allclose(a, b)
|
| 516 |
+
|
| 517 |
+
|
| 518 |
+
def test_sinusoidal_invalid_inputs():
|
| 519 |
+
with pytest.raises(ValueError):
|
| 520 |
+
sinusoidal_positional_encoding(0, 8)
|
| 521 |
+
with pytest.raises(ValueError):
|
| 522 |
+
sinusoidal_positional_encoding(-1, 8)
|
| 523 |
+
with pytest.raises(ValueError):
|
| 524 |
+
sinusoidal_positional_encoding(1, 0)
|
| 525 |
+
|
| 526 |
+
|
| 527 |
+
###___combine_masks___###
|
| 528 |
+
|
| 529 |
+
|
| 530 |
+
def test_both_none_returns_none():
|
| 531 |
+
assert combine_masks(None, None) is None
|
| 532 |
+
|
| 533 |
+
|
| 534 |
+
def test_one_none_returns_other():
|
| 535 |
+
m = torch.tensor([[True, False]])
|
| 536 |
+
assert torch.equal(combine_masks(m, None), m)
|
| 537 |
+
assert torch.equal(combine_masks(None, m), m)
|
| 538 |
+
|
| 539 |
+
|
| 540 |
+
def test_or_combination():
|
| 541 |
+
m1 = torch.tensor([[True, False]])
|
| 542 |
+
m2 = torch.tensor([[False, True]])
|
| 543 |
+
expected = torch.tensor([[True, True]])
|
| 544 |
+
out = combine_masks(m1, m2)
|
| 545 |
+
assert torch.equal(out, expected)
|
| 546 |
+
|
| 547 |
+
|
| 548 |
+
def test_shape_mismatch_error():
|
| 549 |
+
m1 = torch.ones(2, 2, dtype=torch.bool)
|
| 550 |
+
m2 = torch.ones(3, 3, dtype=torch.bool)
|
| 551 |
+
with pytest.raises(ValueError):
|
| 552 |
+
combine_masks(m1, m2)
|
| 553 |
+
|
| 554 |
+
|
| 555 |
+
def test_broadcastable_masks():
|
| 556 |
+
m1 = torch.tensor([[True, False, True]])
|
| 557 |
+
m2 = torch.tensor([[False]]) # broadcast across
|
| 558 |
+
out = combine_masks(m1, m2)
|
| 559 |
+
assert torch.equal(out, m1 | m2)
|
| 560 |
+
|
| 561 |
+
|
| 562 |
+
def test_dtype_conversion():
|
| 563 |
+
# Non-bool masks still should work if they are 0/1 ints
|
| 564 |
+
m1 = torch.tensor([[1, 0]], dtype=torch.int32)
|
| 565 |
+
m2 = torch.tensor([[0, 1]], dtype=torch.int32)
|
| 566 |
+
out = combine_masks(m1.bool(), m2.bool())
|
| 567 |
+
expected = torch.tensor([[True, True]])
|
| 568 |
+
assert torch.equal(out, expected)
|
| 569 |
+
|
| 570 |
+
|
| 571 |
+
###___sample_from_logits___###
|
| 572 |
+
|
| 573 |
+
|
| 574 |
+
def test_greedy_equals_argmax():
|
| 575 |
+
torch.manual_seed(0)
|
| 576 |
+
logits = torch.randn(4, 7)
|
| 577 |
+
ids = sample_from_logits(logits) # greedy
|
| 578 |
+
ref = torch.argmax(F.softmax(logits, dim=-1), dim=-1)
|
| 579 |
+
assert torch.equal(ids, ref)
|
| 580 |
+
|
| 581 |
+
|
| 582 |
+
def test_temperature_effect_no_sampling():
|
| 583 |
+
# Greedy with temperature should leave argmax unchanged (monotonic transform)
|
| 584 |
+
logits = torch.tensor([[0.1, 1.2, 0.3]], dtype=torch.float32)
|
| 585 |
+
ids_t1 = sample_from_logits(logits, do_sample=False, temperature=1.0)
|
| 586 |
+
ids_t05 = sample_from_logits(logits, do_sample=False, temperature=0.5)
|
| 587 |
+
assert torch.equal(ids_t1, ids_t05) # argmax unchanged
|
| 588 |
+
|
| 589 |
+
|
| 590 |
+
def test_top_k_limits_candidates():
|
| 591 |
+
logits = torch.tensor([[1.0, 0.9, 0.1, -1.0]], dtype=torch.float32)
|
| 592 |
+
# with top_k=1 greedy must select the max (index 0)
|
| 593 |
+
ids = sample_from_logits(logits, do_sample=False, top_k=1)
|
| 594 |
+
assert torch.equal(ids, torch.tensor([0]))
|
| 595 |
+
# with sampling, and top_k=1, the only candidate is index 0
|
| 596 |
+
gen = torch.Generator().manual_seed(123)
|
| 597 |
+
ids_s = sample_from_logits(logits, do_sample=True, top_k=1, rng=gen)
|
| 598 |
+
assert torch.equal(ids_s, torch.tensor([0]))
|
| 599 |
+
|
| 600 |
+
|
| 601 |
+
def test_top_p_nucleus_filters_tail():
|
| 602 |
+
logits = torch.tensor([[5.0, 4.0, 3.0, -5.0]], dtype=torch.float32) # probs heavily skewed
|
| 603 |
+
ids = sample_from_logits(logits, do_sample=False, top_p=0.6) # should keep a minimal head
|
| 604 |
+
assert ids.item() in (0, 1) # greediest is 0 anyway; check no crash
|
| 605 |
+
|
| 606 |
+
|
| 607 |
+
def test_min_tokens_to_keep_safety():
|
| 608 |
+
logits = torch.tensor([[0.0, 0.0, 0.0, 0.0]], dtype=torch.float32)
|
| 609 |
+
# Even with very small top_p, we keep at least 1 token
|
| 610 |
+
ids = sample_from_logits(logits, do_sample=False, top_p=0.01, min_tokens_to_keep=1)
|
| 611 |
+
assert ids.numel() == 1
|
| 612 |
+
|
| 613 |
+
|
| 614 |
+
def test_allow_and_deny_lists():
|
| 615 |
+
logits = torch.tensor([[0.1, 2.0, 0.3, 3.0]], dtype=torch.float32) # best is idx=3
|
| 616 |
+
# Allow only {0,2} → best among those is 2
|
| 617 |
+
ids = sample_from_logits(logits, do_sample=False, allowed_tokens=[0, 2])
|
| 618 |
+
assert torch.equal(ids, torch.tensor([2]))
|
| 619 |
+
# Deny {3} → next best is 1
|
| 620 |
+
ids = sample_from_logits(logits, do_sample=False, disallowed_tokens=[3])
|
| 621 |
+
assert torch.equal(ids, torch.tensor([1]))
|
| 622 |
+
|
| 623 |
+
|
| 624 |
+
def test_rng_reproducibility_sampling():
|
| 625 |
+
logits = torch.tensor([[1.0, 1.0, 1.0, 1.0]], dtype=torch.float32) # uniform
|
| 626 |
+
g1 = torch.Generator().manual_seed(42)
|
| 627 |
+
g2 = torch.Generator().manual_seed(42)
|
| 628 |
+
s1 = sample_from_logits(logits, do_sample=True, rng=g1)
|
| 629 |
+
s2 = sample_from_logits(logits, do_sample=True, rng=g2)
|
| 630 |
+
assert torch.equal(s1, s2)
|
| 631 |
+
|
| 632 |
+
|
| 633 |
+
def test_device_is_preserved_cpu_cuda():
|
| 634 |
+
target_device = torch.device("cuda:0") if torch.cuda.is_available() else torch.device("cpu")
|
| 635 |
+
logits = torch.randn(3, 5, device=target_device)
|
| 636 |
+
out = sample_from_logits(logits) # greedy by default
|
| 637 |
+
assert out.device == target_device
|
| 638 |
+
assert out.dtype == torch.long
|
| 639 |
+
|
| 640 |
+
|
| 641 |
+
def test_handles_higher_rank_logits_flattening():
|
| 642 |
+
# [B, T, V] -> flattened internally; here we just ensure no crash and correct shape
|
| 643 |
+
logits = torch.randn(2, 3, 7)
|
| 644 |
+
out = sample_from_logits(logits) # returns [B*T]
|
| 645 |
+
assert out.shape == (2 * 3,)
|
| 646 |
+
|
| 647 |
+
|
| 648 |
+
###___create_causal_mask___###
|
| 649 |
+
|
| 650 |
+
|
| 651 |
+
def test_causal_mask_shape_and_dtype_cpu():
|
| 652 |
+
x = torch.zeros(2, 5, dtype=torch.long)
|
| 653 |
+
mask = create_causal_mask(x, num_heads=3)
|
| 654 |
+
assert mask.shape == (2, 3, 5, 5)
|
| 655 |
+
assert mask.dtype == torch.bool
|
| 656 |
+
assert mask.device == x.device
|
| 657 |
+
|
| 658 |
+
|
| 659 |
+
def test_causal_mask_is_upper_triangular():
|
| 660 |
+
x = torch.zeros(1, 4, dtype=torch.long)
|
| 661 |
+
mask = create_causal_mask(x, num_heads=2)
|
| 662 |
+
tri = mask[0, 0].to(torch.int)
|
| 663 |
+
expected = torch.tensor(
|
| 664 |
+
[
|
| 665 |
+
[0, 1, 1, 1],
|
| 666 |
+
[0, 0, 1, 1],
|
| 667 |
+
[0, 0, 0, 1],
|
| 668 |
+
[0, 0, 0, 0],
|
| 669 |
+
]
|
| 670 |
+
)
|
| 671 |
+
assert torch.equal(tri, expected)
|
| 672 |
+
|
| 673 |
+
|
| 674 |
+
@pytest.mark.skipif(not torch.cuda.is_available(), reason="CUDA not available")
|
| 675 |
+
def test_causal_mask_tracks_device():
|
| 676 |
+
x = torch.zeros(1, 3, dtype=torch.long, device="cuda")
|
| 677 |
+
mask = create_causal_mask(x, num_heads=4)
|
| 678 |
+
assert mask.device.type == "cuda"
|
| 679 |
+
|
| 680 |
+
|
| 681 |
+
def test_causal_mask_rejects_invalid_inputs():
|
| 682 |
+
with pytest.raises(ValueError):
|
| 683 |
+
create_causal_mask(torch.zeros(2, 0, dtype=torch.long), num_heads=2)
|
| 684 |
+
|
| 685 |
+
with pytest.raises(ValueError):
|
| 686 |
+
create_causal_mask(torch.zeros(2, 3, dtype=torch.long), num_heads=0)
|
tokenizer/bpe_16k.json
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|
tokenizer/bpe_32k.json
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|
tokenizer/bpe_4k.json
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|
tokenizer/bpe_8k.json
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|
trained_models/README.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Trained Models
|
| 2 |
+
|
| 3 |
+
Place model folders here, one directory per model. You can populate this directory via the CLI:
|
| 4 |
+
```
|
| 5 |
+
mini-transformer-fetch AlaBoussoffara/transformer_test # tiny demo
|
| 6 |
+
mini-transformer-fetch AlaBoussoffara/transformer_small # larger example
|
| 7 |
+
```
|
| 8 |
+
or copy your own exported checkpoints using the layout below:
|
| 9 |
+
|
| 10 |
+
```
|
| 11 |
+
trained_models/
|
| 12 |
+
my-model/
|
| 13 |
+
configs/
|
| 14 |
+
config_inference.yaml
|
| 15 |
+
checkpoints/
|
| 16 |
+
best.pt
|
| 17 |
+
tokenizer/
|
| 18 |
+
tokenizer.json
|
| 19 |
+
```
|
| 20 |
+
|
| 21 |
+
The CLI (`mini-transformer-infer`) and apps will look for `configs/config_inference.yaml` inside each folder. Relative paths in that config should point to files inside the same model directory.
|