mirror of
https://gh.wpcy.net/https://github.com/discourse/discourse.git
synced 2026-06-19 03:23:50 +08:00
Expand post listing filters to support regular/all post types, action posts, whispers, and additional topic statuses while preserving guardian visibility. Allow AI agent workflow nodes to choose an LLM override, fall back to agent/site defaults, and respect agents that force their default LLM. --------- Co-authored-by: Joffrey JAFFEUX <j.jaffeux@gmail.com>
1025 lines
58 KiB
YAML
Vendored
1025 lines
58 KiB
YAML
Vendored
en:
|
|
activerecord:
|
|
attributes:
|
|
llm_model:
|
|
name: "Model ID"
|
|
max_prompt_tokens: "Context window"
|
|
dashboard:
|
|
problem:
|
|
ai_llm_status:
|
|
one: "<a href='%{base_path}/admin/plugins/discourse-ai/ai-llms/%{target}/edit'>%{model_name}</a> needs attention. In the past hour, it failed to respond %{failed_calls} out of %{total_calls} times."
|
|
other: "<a href='%{base_path}/admin/plugins/discourse-ai/ai-llms/%{target}/edit'>%{model_name}</a> needs attention. Over the last %{count} hours, it failed to respond %{failed_calls} out of %{total_calls} times."
|
|
ai_credit_soft_limit: "%{model_name} has only %{percentage_remaining}% of credits remaining. Credits will reset at %{reset_date}. <a href='%{url}'>View AI models</a>"
|
|
ai_credit_hard_limit: "You have run out of AI credits for %{model_name}. AI features will be unavailable until %{reset_date}. <a href='%{url}'>View AI models</a>"
|
|
discourse_automation:
|
|
ai:
|
|
flag_types:
|
|
review: "Add post to review queue"
|
|
review_hide: "Add post to review queue and hide post"
|
|
review_delete: "Add post to review queue and delete post"
|
|
review_delete_silence: "Add post to review queue, delete post and silence user"
|
|
spam: "Flag as spam and hide post"
|
|
spam_silence: "Flag as spam, hide post and silence user"
|
|
scriptables:
|
|
ai_tool_action:
|
|
title: AI Tool Action
|
|
description: Execute an AI tool when the automation triggers
|
|
llm_agent_triage:
|
|
title: Triage posts using AI Agent
|
|
description: "Respond to posts using a specific AI agent"
|
|
llm_triage:
|
|
title: Triage posts using AI
|
|
description: "Triage posts using a large language model"
|
|
flagged_post: |
|
|
<div>Response from the model:</div>
|
|
<p>%{llm_response}</p>
|
|
<b>Triggered by the <a href="%{base_path}/admin/plugins/automation/%{automation_id}">%{automation_name}</a> rule.</b>
|
|
notify_author_pm:
|
|
subject: "Your post was temporarily removed for review"
|
|
body: |
|
|
Hi @%{username},
|
|
|
|
Your post in “%{topic_title}” was temporarily removed and placed in our review queue for a moderator to look at. If approved, it will be restored automatically.
|
|
|
|
Reference: %{post_url}
|
|
llm_report:
|
|
title: Periodic report using AI
|
|
description: "Periodic report based on a large language model"
|
|
llm_tagger:
|
|
title: Tag topics using AI
|
|
description: "Automatically tag topics using AI"
|
|
site_settings:
|
|
discourse_ai_enabled: "Enable the discourse AI plugin."
|
|
enable_ai_bot_starred_conversations: "Allow users to star AI bot conversations and show them in a Starred sidebar section."
|
|
ai_default_llm_model: "The default LLM model to use for all AI features"
|
|
ai_artifact_security: "The AI artifact system generates IFRAMEs with runnable code. Strict mode forces an extra click to run code. Lax mode runs code immediately. Hybrid mode allows user to supply data-ai-artifact-autorun to show right away. Disabled mode disables the artifact system."
|
|
ai_toxicity_enabled: "Enable the toxicity module."
|
|
ai_toxicity_inference_service_api_endpoint: "URL where the API is running for the toxicity module"
|
|
ai_toxicity_inference_service_api_key: "API key for the toxicity API"
|
|
ai_toxicity_inference_service_api_model: "Model to use for inference. Multilingual model works with Italian, French, Russian, Portuguese, Spanish and Turkish."
|
|
ai_toxicity_flag_automatically: "Automatically flag posts / chat messages that are above the configured thresholds."
|
|
ai_toxicity_flag_threshold_toxicity: "Toxicity: a rude, disrespectful, or unreasonable comment that is somewhat likely to make you leave a discussion or give up on sharing your perspective"
|
|
ai_toxicity_flag_threshold_severe_toxicity: "Severe Toxicity: a very hateful, aggressive, or disrespectful comment that is very likely to make you leave a discussion or give up on sharing your perspective"
|
|
ai_toxicity_flag_threshold_obscene: "Obscene"
|
|
ai_toxicity_flag_threshold_identity_attack: "Identity Attack"
|
|
ai_toxicity_flag_threshold_insult: "Insult"
|
|
ai_toxicity_flag_threshold_threat: "Threat"
|
|
ai_toxicity_flag_threshold_sexual_explicit: "Sexual Explicit"
|
|
ai_toxicity_groups_bypass: "Users on those groups will not have their posts classified by the toxicity module."
|
|
|
|
ai_sentiment_enabled: "Enable the sentiment module."
|
|
ai_sentiment_inference_service_api_endpoint: "URL where the API is running for the sentiment module"
|
|
ai_sentiment_inference_service_api_key: "API key for the sentiment API"
|
|
ai_sentiment_model_configs: "Classification model endpoints to use for inference. Sentiment classifies posts as positive, neutral, or negative. Emotion classifies posts across supported emotion labels."
|
|
ai_sentiment_models: "Classification model endpoints to use for inference. Sentiment classifies posts as positive, neutral, or negative. Emotion classifies posts across supported emotion labels."
|
|
ai_sentiment_sentiment_classification_strategy: "Sentiment classification backend."
|
|
ai_sentiment_sentiment_agent: "Agent to use for sentiment classification when the sentiment backend is agent."
|
|
ai_sentiment_emotion_classification_strategy: "Emotion classification backend."
|
|
ai_sentiment_emotion_agent: "Agent to use for emotion classification when the emotion backend is agent."
|
|
|
|
ai_nsfw_detection_enabled: "Enable the NSFW module."
|
|
ai_nsfw_inference_service_api_endpoint: "URL where the API is running for the NSFW module"
|
|
ai_nsfw_inference_service_api_key: "API key for the NSFW API"
|
|
ai_nsfw_flag_automatically: "Automatically flag NSFW posts that are above the configured thresholds."
|
|
ai_nsfw_flag_threshold_general: "General Threshold for an image to be considered NSFW."
|
|
ai_nsfw_flag_threshold_drawings: "Threshold for a drawing to be considered NSFW."
|
|
ai_nsfw_flag_threshold_hentai: "Threshold for an image classified as hentai to be considered NSFW."
|
|
ai_nsfw_flag_threshold_porn: "Threshold for an image classified as porn to be considered NSFW."
|
|
ai_nsfw_flag_threshold_sexy: "Threshold for an image classified as sexy to be considered NSFW."
|
|
ai_nsfw_models: "Models to use for NSFW inference."
|
|
|
|
ai_spam_detection_enabled: "Enable the AI spam detection module"
|
|
ai_spam_detection_max_post_count: "Maximum number of posts a user can have before they are no longer scanned for spam"
|
|
ai_spam_detection_max_trust_level: "Maximum trust level of users to scan for spam"
|
|
|
|
ai_openai_api_key: "API key for OpenAI API. ONLY used for Image creation and edits. For GPT use the LLM config tab"
|
|
|
|
ai_helper_enabled: "Enable the AI helper."
|
|
composer_ai_helper_allowed_groups: "Users on these groups will see the AI helper button in the composer."
|
|
ai_helper_allowed_in_pm: "Enable the composer's AI helper in PMs."
|
|
ai_helper_automatic_chat_thread_title_delay: "Delay in minutes before the AI helper automatically sets the chat thread title."
|
|
ai_helper_automatic_chat_thread_title: "Automatically set the chat thread titles based on thread contents."
|
|
ai_helper_enabled_features: "Select the features to enable in the AI helper."
|
|
post_ai_helper_allowed_groups: "User groups allowed to access AI Helper features in posts"
|
|
ai_helper_post_illustrator_agent: "The agent to use for the AI helper's illustrate post feature. Note: you must also create an image generation tool (Admin > Plugins > Discourse AI > Tools) for this feature to work."
|
|
ai_helper_chat_thread_title_agent: "The agent to use for generating chat thread titles."
|
|
|
|
ai_embeddings_selected_model: "Use the selected model for generating embeddings."
|
|
ai_embeddings_generate_for_pms: "Generate embeddings for personal messages."
|
|
ai_embeddings_semantic_related_topics_enabled: "Use Semantic Search for related topics."
|
|
ai_embeddings_semantic_related_topics: "Maximum number of topics to show in related topic section."
|
|
ai_embeddings_backfill_batch_size: "Number of embeddings to backfill every 15 minutes."
|
|
ai_embeddings_semantic_search_enabled: "Enable full-page semantic search."
|
|
ai_embeddings_semantic_search_use_hyde: "Use HyDE for semantic full page search. Uses an LLM to create an hypothetical post from the user search term to help with matches."
|
|
ai_embeddings_semantic_quick_search_enabled: "Enable semantic search option in search menu popup."
|
|
ai_embeddings_semantic_related_include_closed_topics: "Include closed topics in semantic search results"
|
|
ai_embeddings_semantic_related_age_penalty: "Apply exponential age penalty to topics in semantic search results. 0.0 = no penalty, 0.3 = gentle bias toward recently active content, 1.0+ = strong recency bias."
|
|
ai_embeddings_semantic_related_age_time_scale: "Time scale in days for age penalty calculation. Topics inactive this many days receive ~50% penalty with penalty=1.0. Use 365 for yearly scale, 90 for quarterly scale."
|
|
ai_embeddings_per_post_enabled: Generate embeddings for each post
|
|
|
|
ai_admin_dashboard_enabled: "Enable AI features on the admin dashboard."
|
|
ai_admin_dashboard_highlights_agent: "Agent that explains notable community shifts on the admin dashboard."
|
|
ai_summarization_enabled: "Enable the summarize feature"
|
|
ai_summarization_agent: "Agent to use for summarize feature"
|
|
ai_pm_summarization_allowed_groups: "Groups allowed to create and view summaries in PMs."
|
|
ai_summary_gists_enabled: "Generate brief summaries of latest replies in topics automatically"
|
|
ai_summary_backfill_maximum_topics_per_hour: "Number of topic summaries to backfill per hour."
|
|
|
|
ai_bot_enabled: "Enable the AI Bot module."
|
|
ai_bot_enabled_llms: "LLMs available to select for AI bot conversations"
|
|
ai_bot_enable_chat_warning: "Display a warning when PM chat is initiated. Can be overridden by editing the translation string: discourse_ai.ai_bot.pm_warning"
|
|
ai_bot_allowed_groups: "When the GPT Bot has access to the PM, it will reply to members of these groups."
|
|
ai_bot_debugging_allowed_groups: "Allow these groups to see a debug button on posts which displays the raw AI request and response"
|
|
ai_bot_public_sharing_allowed_groups: "Allow these groups to share AI personal messages with the public via a unique publicly available link. Note: if your site requires login, shares will also require login."
|
|
ai_bot_add_to_header: "Display a button in the header to start a PM with an AI Bot"
|
|
ai_bot_add_to_community_section: "Display a link in the sidebar community section to start a PM with an AI Bot"
|
|
ai_bot_github_access_token: "GitHub access token for use with GitHub AI tools (required for search support)"
|
|
ai_bot_enable_docked_composer: "Enable the docked chat-style composer for AI bot conversations instead of the standard floating composer."
|
|
|
|
ai_discover_enabled: "Enable the discovery search feature"
|
|
ai_discover_agent: "Agent to use for discovery search feature"
|
|
|
|
ai_google_custom_search_api_key: "API key for the Google Custom Search API see: https://developers.google.com/custom-search"
|
|
ai_google_custom_search_cx: "CX for Google Custom Search API"
|
|
|
|
ai_discord_search_enabled: "Enables the Discord search feature"
|
|
ai_discord_app_id: "The ID of the Discord application you would like to connect Discord search to"
|
|
ai_discord_app_public_key: "The public key of the Discord application you would like to connect Discord search to"
|
|
ai_discord_search_mode: "Select the search mode to use for Discord search"
|
|
ai_discord_search_agent: "The agent to use for Discord search."
|
|
ai_discord_allowed_guilds: "Discord guilds (servers) where the bot is allowed to search"
|
|
|
|
ai_translation_enabled: "Enable the AI translation feature"
|
|
ai_translation_excluded_categories: "Content in these categories will not be translated. Leave empty to translate content in all categories, including private categories."
|
|
ai_translation_personal_messages: "Controls which personal messages are translated. 'none' disables PM translation. 'group' translates only group PMs. 'all' translates all PMs."
|
|
ai_translation_include_bot_content: "When enabled, content written by bots (user IDs below 0) will also be sent for translation."
|
|
ai_translation_max_post_length: "The maximum number of characters for a post to be translated. Posts longer than this will not be translated."
|
|
ai_translation_backfill_max_age_days: "The maximum age of a post and topic to be translated. Posts and topics older than this will not be translated. 0 disables backfilling, but will not disable translation of new posts."
|
|
ai_translation_backfill_hourly_rate: "The number of posts and topics to translate per hour during backfill operations. Set to 0 to disable automatic backfilling of translations for existing content."
|
|
ai_translation_backfill_parallel_jobs: "The number of parallel post localization jobs to run per backfill cycle. Higher values increase throughput but consume more resources."
|
|
ai_usage_rollup_after_days: "Number of days to keep per-request AI usage stats before rolling them into daily aggregates. Set to 0 to disable rollups."
|
|
ai_audit_logs_purge_after_days: "Delete AI API audit logs older than this many days. Defaults to about 6 months. Set to 0 to keep indefinitely."
|
|
|
|
reviewables:
|
|
reasons:
|
|
flagged_by_toxicity: The AI plugin flagged this after classifying it as toxic.
|
|
flagged_by_nsfw: The AI plugin flagged this after classifying at least one of the attached images as NSFW.
|
|
|
|
reports:
|
|
sentiment_analysis:
|
|
title: "Sentiment analysis"
|
|
description: "This report provides sentiment analysis for posts, grouped by category, with positive, negative, and neutral scores for each post and category."
|
|
overall_sentiment:
|
|
title: "Overall sentiment"
|
|
description: 'The chart compares the number of posts classified as either positive or negative. These are calculated when positive or negative scores > the set threshold score. This means neutral posts are not shown. Personal messages (PMs) are also excluded. Classified with "cardiffnlp/twitter-roberta-base-sentiment-latest"'
|
|
xaxis: "Positive(%)"
|
|
yaxis: "Date"
|
|
emotion_admiration:
|
|
title: 🤩 Admiration
|
|
description: "Posts classified with the emotion admiration via AI, using the model 'SamLowe/roberta-base-go_emotions'."
|
|
emotion_amusement:
|
|
title: 😄 Amusement
|
|
description: "Posts classified with the emotion amusement via AI, using the model 'SamLowe/roberta-base-go_emotions'."
|
|
emotion_anger:
|
|
title: 😠 Anger
|
|
description: "Posts classified with the emotion anger via AI, using the model 'SamLowe/roberta-base-go_emotions'."
|
|
emotion_annoyance:
|
|
title: 😒 Annoyance
|
|
description: "Posts classified with the emotion annoyance via AI, using the model 'SamLowe/roberta-base-go_emotions'."
|
|
emotion_approval:
|
|
title: 👍 Approval
|
|
description: "Posts classified with the emotion approval via AI, using the model 'SamLowe/roberta-base-go_emotions'."
|
|
emotion_caring:
|
|
title: 🤗 Caring
|
|
description: "Posts classified with the emotion caring via AI, using the model 'SamLowe/roberta-base-go_emotions'."
|
|
emotion_confusion:
|
|
title: 😕 Confusion
|
|
description: "Posts classified with the emotion confusion via AI, using the model 'SamLowe/roberta-base-go_emotions'."
|
|
emotion_curiosity:
|
|
title: 🤔 Curiosity
|
|
description: "Posts classified with the emotion curiosity via AI, using the model 'SamLowe/roberta-base-go_emotions'."
|
|
emotion_desire:
|
|
title: 😍 Desire
|
|
description: "Posts classified with the emotion desire via AI, using the model 'SamLowe/roberta-base-go_emotions'."
|
|
emotion_disappointment:
|
|
title: 😞 Disappointment
|
|
description: "Posts classified with the emotion disappointment via AI, using the model 'SamLowe/roberta-base-go_emotions'."
|
|
emotion_disapproval:
|
|
title: 👎 Disapproval
|
|
description: "Posts classified with the emotion disapproval via AI, using the model 'SamLowe/roberta-base-go_emotions'."
|
|
emotion_disgust:
|
|
title: 🤢 Disgust
|
|
description: "Posts classified with the emotion disgust via AI, using the model 'SamLowe/roberta-base-go_emotions'."
|
|
emotion_embarrassment:
|
|
title: 😳 Embarrassment
|
|
description: "Posts classified with the emotion embarrassment via AI, using the model 'SamLowe/roberta-base-go_emotions'."
|
|
emotion_excitement:
|
|
title: 🤪 Excitement
|
|
description: "Posts classified with the emotion excitement via AI, using the model 'SamLowe/roberta-base-go_emotions'."
|
|
emotion_fear:
|
|
title: 😨 Fear
|
|
description: "Posts classified with the emotion fear via AI, using the model 'SamLowe/roberta-base-go_emotions'."
|
|
emotion_gratitude:
|
|
title: 🙏 Gratitude
|
|
description: "Posts classified with the emotion gratitude via AI, using the model 'SamLowe/roberta-base-go_emotions'."
|
|
emotion_grief:
|
|
title: 😢 Grief
|
|
description: "Posts classified with the emotion grief via AI, using the model 'SamLowe/roberta-base-go_emotions'."
|
|
emotion_joy:
|
|
title: 😊 Joy
|
|
description: "Posts classified with the emotion joy via AI, using the model 'SamLowe/roberta-base-go_emotions'."
|
|
emotion_love:
|
|
title: ❤️ Love
|
|
description: "Posts classified with the emotion love via AI, using the model 'SamLowe/roberta-base-go_emotions'."
|
|
emotion_nervousness:
|
|
title: 😰 Nervousness
|
|
description: "Posts classified with the emotion nervousness via AI, using the model 'SamLowe/roberta-base-go_emotions'."
|
|
emotion_neutral:
|
|
title: 😐 Neutral
|
|
description: "Posts classified with the emotion neutral via AI, using the model 'SamLowe/roberta-base-go_emotions'."
|
|
emotion_optimism:
|
|
title: 🌟 Optimism
|
|
description: "Posts classified with the emotion optimism via AI, using the model 'SamLowe/roberta-base-go_emotions'."
|
|
emotion_pride:
|
|
title: 🦁 Pride
|
|
description: "Posts classified with the emotion pride via AI, using the model 'SamLowe/roberta-base-go_emotions'."
|
|
emotion_realization:
|
|
title: 💡 Realization
|
|
description: "Posts classified with the emotion realization via AI, using the model 'SamLowe/roberta-base-go_emotions'."
|
|
emotion_relief:
|
|
title: 😌 Relief
|
|
description: "Posts classified with the emotion relief via AI, using the model 'SamLowe/roberta-base-go_emotions'."
|
|
emotion_remorse:
|
|
title: 😔 Remorse
|
|
description: "Posts classified with the emotion remorse via AI, using the model 'SamLowe/roberta-base-go_emotions'."
|
|
emotion_sadness:
|
|
title: 😭 Sadness
|
|
description: "Posts classified with the emotion sadness via AI, using the model 'SamLowe/roberta-base-go_emotions'."
|
|
emotion_surprise:
|
|
title: 😲 Surprise
|
|
description: "Posts classified with the emotion surprise via AI, using the model 'SamLowe/roberta-base-go_emotions'."
|
|
|
|
discourse_ai:
|
|
ai_artifact:
|
|
errors:
|
|
max_keys_exceeded:
|
|
one: "You can only have %{count} key in the artifact."
|
|
other: "You can only have %{count} keys in the artifact."
|
|
link: "Show in new tab"
|
|
copy_embed: "Copy embed"
|
|
view_source: "View Source"
|
|
view_changes: "View Changes"
|
|
change_description: "Change Description"
|
|
copied: "Copied to clipboard"
|
|
unknown_model: "Unknown AI model"
|
|
|
|
discourse_workflows:
|
|
ai_agent:
|
|
errors:
|
|
locked_default_llm_missing: "Agent '%{agent}' is locked to its default LLM, but no valid default LLM is configured"
|
|
llm_not_found: "LLM model with id %{llm_model_id} not found"
|
|
no_llm_configured: "No LLM is configured for agent '%{agent}'. Select an LLM model or configure an agent/site default LLM."
|
|
|
|
tools:
|
|
custom_name: "%{name} (custom)"
|
|
presets:
|
|
browse_web_jina:
|
|
name: "Browse web (jina.ai)"
|
|
exchange_rate:
|
|
name: "Exchange rate"
|
|
stock_quote:
|
|
name: "Stock quote (AlphaVantage)"
|
|
image_generation_category:
|
|
name: "Image generation..."
|
|
image_generation_custom:
|
|
name: "Custom"
|
|
image_generation_openai:
|
|
name: "OpenAI"
|
|
image_generation_gemini:
|
|
name: "Nano Banana"
|
|
image_generation_flux:
|
|
name: "FLUX 1.1 Pro"
|
|
image_generation_flux2:
|
|
name: "FLUX 2 Pro"
|
|
empty_tool:
|
|
name: "Start from blank..."
|
|
name:
|
|
characters: "must only include numbers, letters, and underscores"
|
|
secret_contracts:
|
|
invalid_payload: "Secret contracts must be an array."
|
|
invalid_contract: "Secret contract at index %{index} is invalid."
|
|
alias_required: "Secret contract at index %{index} must include an alias."
|
|
alias_too_long: "Secret alias `%{alias}` is too long."
|
|
alias_invalid: "Secret alias `%{alias}` must only include numbers, letters, and underscores."
|
|
alias_not_unique: "Secret alias `%{alias}` is duplicated."
|
|
secret_bindings:
|
|
invalid_payload: "Secret bindings must be an array."
|
|
secret_not_found: "The selected credential does not exist."
|
|
alias_not_declared: "Alias `%{alias}` is not declared in this tool."
|
|
secret_runtime:
|
|
alias_not_declared: "Credential alias `%{alias}` is not declared for this tool."
|
|
missing_binding: "Credential alias `%{alias}` is required but not bound."
|
|
missing_required_aliases: "Missing required credential bindings for aliases: %{aliases}."
|
|
secret_not_found: "Credential alias `%{alias}` is bound to a missing credential."
|
|
unknown_error: "Unable to resolve the requested credential."
|
|
|
|
mcp_servers:
|
|
secret_not_found: "The selected credential does not exist."
|
|
invalid_url_not_https: "must be a valid HTTPS URL"
|
|
invalid_url_not_reachable: "must resolve to a publicly accessible address"
|
|
oauth_client_id_required: "OAuth client ID is required for manual client registration."
|
|
errors:
|
|
invalid_response: "The MCP server returned an invalid response."
|
|
request_failed: "The MCP server request failed with status %{status}."
|
|
session_expired: "The MCP session expired."
|
|
timeout: "The MCP server request timed out."
|
|
oauth_authorization_required: "OAuth authorization is required before this MCP server can be used. Connect it to %{issuer} from the admin UI."
|
|
oauth_discovery_failed: "Unable to discover OAuth authorization details for this MCP server."
|
|
oauth_discovery_failed_with_status: "OAuth discovery failed with status %{status}."
|
|
oauth_not_configured: "OAuth is not configured for this MCP server."
|
|
oauth_refresh_token_missing: "The OAuth refresh token is missing. Reconnect this MCP server."
|
|
oauth_save_before_connect: "Save the MCP server before testing the OAuth connection."
|
|
oauth_state_invalid: "The OAuth authorization state is invalid or has expired. Start the connection again."
|
|
oauth_token_exchange_failed: "The OAuth token exchange failed with status %{status}."
|
|
oauth_https_required: "OAuth requires your site to be served over HTTPS."
|
|
oauth_callback_failed: "OAuth connection failed: %{message}"
|
|
oauth_refresh_token_required: "The OAuth authorization server did not return a refresh token. Adjust the advanced OAuth options and reconnect this MCP server."
|
|
oauth_client_metadata_public_https_required: "Client metadata document registration requires a public HTTPS site URL. Current client metadata URL: %{url}"
|
|
oauth_registration_endpoint_missing: "The OAuth authorization server does not advertise a registration endpoint."
|
|
oauth_manual_client_registration_required: "The OAuth authorization server %{issuer} does not advertise dynamic client registration. Switch this MCP server to Manual client credentials and provide a registered OAuth client ID."
|
|
oauth_client_secret_required: "The OAuth authorization server %{issuer} requires token endpoint client authentication (%{methods}). Configure manual client credentials with a client secret."
|
|
oauth_token_endpoint_auth_method_unsupported: "The OAuth authorization server %{issuer} only advertises unsupported token endpoint client authentication methods (%{methods}). This MCP server currently supports none, client_secret_basic, and client_secret_post."
|
|
oauth_client_registration_failed: "Dynamic client registration failed with status %{status}."
|
|
oauth_client_registration_failed_no_id: "Dynamic client registration succeeded but no client_id was returned."
|
|
oauth_authorization_params_invalid: "OAuth authorization params must be a JSON object."
|
|
oauth_token_params_invalid: "OAuth token params must be a JSON object."
|
|
|
|
ai_helper:
|
|
errors:
|
|
completion_request_failed: "Something went wrong while trying to provide suggestions. Please, try again."
|
|
no_illustrator_agent: "Post Illustrator agent is not configured. Please check your site settings."
|
|
no_image_generation_tool: "Post Illustrator agent must have an image generation tool attached. Please configure an image generation tool for this agent in the admin panel."
|
|
no_image_generated: "Failed to generate image. Please try again or check your tool configuration."
|
|
llm_model_not_configured: "No language model is configured for image generation. Please configure a default language model in your site settings."
|
|
unknown_error: "An unexpected error occurred while generating thumbnails. Please try again."
|
|
prompts:
|
|
translate: Translate to %{language}
|
|
generate_titles: Suggest topic titles
|
|
proofread: Proofread text
|
|
markdown_table: Generate Markdown table
|
|
custom_prompt: "Custom Prompt"
|
|
explain: "Explain"
|
|
illustrate_post: "Illustrate Post"
|
|
replace_dates: "Smart dates"
|
|
image_caption:
|
|
attribution: "Captioned by AI"
|
|
|
|
share_ai:
|
|
read_more: "Read full transcript"
|
|
onebox_title: "AI Conversation with %{llm_name}"
|
|
formatted_excerpt: "AI Conversation with %{llm_name}:\n %{excerpt}"
|
|
title: "%{title} - AI Conversation - %{site_name}"
|
|
errors:
|
|
not_allowed: "You are not allowed to share this topic"
|
|
other_people_in_pm: "Personal messages with other humans cannot be shared publicly"
|
|
other_content_in_pm: "Personal messages containing posts from other people cannot be shared publicly"
|
|
failed_to_share: "Failed to share the conversation"
|
|
conversation_deleted: "Conversation share deleted successfully"
|
|
spam_detection:
|
|
flag_reason: "Flagged as spam by <a href='%{url}'>Discourse AI</a>"
|
|
silence_reason: "User silenced automatically by <a href='%{url}'>Discourse AI</a>"
|
|
invalid_error_type: "Invalid error type provided"
|
|
unexpected: "An unexpected error occurred"
|
|
bot_user_update_failed: "Failed to update the spam scanning bot user"
|
|
configuration_missing: "The AI spam detection configuration is missing. Add configuration in the 'Admin > Plugins > Discourse AI > Spam' before enabling."
|
|
logging_subject: "Spam detection"
|
|
|
|
ai_bot:
|
|
reply_error: "Sorry, it looks like our system encountered an unexpected issue while trying to reply.\n\n[details='Error details']\n%{details}\n[/details]"
|
|
default_pm_prefix: "[Untitled AI bot PM]"
|
|
thinking: "Thinking"
|
|
tool_pending_approval: "This action requires moderator approval before it can be executed."
|
|
agents:
|
|
default_llm_required: "Default LLM model is required prior to enabling Chat"
|
|
cannot_delete_system_agent: "System agents cannot be deleted, please disable it instead"
|
|
cannot_edit_system_agent: "System agents can only be renamed, you may not edit tools or system prompt, instead disable and make a copy"
|
|
cannot_have_duplicate_tools: "Can not have duplicate tools"
|
|
native_tool_requires_forced_llm: "Provider-native tools require a default LLM with \"Force default LLM\" enabled"
|
|
native_tool_unsupported_by_llm: "The selected default LLM does not support one of the enabled provider-native tools"
|
|
admin_dashboard_highlights:
|
|
name: "Admin Dashboard Highlights"
|
|
description: "Writes the brief readout shown at the top of the admin dashboard, explaining what changed and what deserves attention this period"
|
|
github_helper:
|
|
name: "GitHub Helper"
|
|
description: "AI Bot specialized in assisting with GitHub-related tasks and questions"
|
|
general:
|
|
name: Forum Helper
|
|
description: "General purpose AI Bot capable of performing various tasks"
|
|
artist:
|
|
name: Artist
|
|
description: "AI Bot specialized in generating images"
|
|
designer:
|
|
name: Designer
|
|
description: "AI Bot specialized in generating and editing images"
|
|
forum_researcher:
|
|
name: Forum Researcher
|
|
description: "AI Bot specialized in deep research for the forum"
|
|
sql_helper:
|
|
name: SQL Helper
|
|
description: "AI Bot specialized in helping craft SQL queries on this Discourse instance"
|
|
settings_explorer:
|
|
name: Settings Explorer
|
|
description: "AI Bot specialized in helping explore Discourse site settings"
|
|
researcher:
|
|
name: Web Researcher
|
|
description: "AI Bot with Google access that can both search and read web pages"
|
|
creative:
|
|
name: Creative
|
|
description: "AI Bot with no external integrations specialized in creative tasks"
|
|
dall_e3:
|
|
name: "DALL-E 3"
|
|
description: "AI Bot specialized in generating images using DALL-E 3"
|
|
discourse_helper:
|
|
name: "Discourse Helper"
|
|
description: "AI Bot specialized in helping with Discourse related tasks"
|
|
web_artifact_creator:
|
|
name: "Web Artifact Creator"
|
|
description: "AI Bot specialized in creating interactive web artifacts"
|
|
summarizer:
|
|
name: "Summarizer"
|
|
description: "Default agent used to power AI summaries"
|
|
short_summarizer:
|
|
name: "Summarizer (short form)"
|
|
description: "Default agent used to power AI short summaries for topic lists' items"
|
|
concept_finder:
|
|
name: "Concept Finder"
|
|
description: "AI Bot specialized in identifying concepts and themes in content"
|
|
concept_matcher:
|
|
name: "Concept Matcher"
|
|
description: "AI Bot specialized in matching content against existing concepts"
|
|
concept_deduplicator:
|
|
name: "Concept Deduplicator"
|
|
description: "AI Bot specialized in deduplicating concepts"
|
|
custom_prompt:
|
|
name: "Custom prompt"
|
|
description: "Default agent powering the Helper's custom prompt feature"
|
|
smart_dates:
|
|
name: "Smart dates"
|
|
description: "Default agent powering the Helper's smart dates feature"
|
|
markdown_table_generator:
|
|
name: "Markdown table generator"
|
|
description: "Default agent powering the Helper's generate Markdown table feature"
|
|
post_illustrator:
|
|
name: "Post illustrator"
|
|
description: "Generates images to illustrate posts using available image generation tools"
|
|
proofreader:
|
|
name: "Proofreader"
|
|
description: "Default agent powering the Helper's proofread text feature"
|
|
titles_generator:
|
|
name: "Titles generator"
|
|
description: "Default agent powering the Helper's suggest topic titles feature"
|
|
tutor:
|
|
name: "Tutor"
|
|
description: "Default agent powering the Helper's explain feature"
|
|
translator:
|
|
name: "Translator"
|
|
description: "Default agent powering the Helper's translator feature"
|
|
image_captioner:
|
|
name: "Image captions"
|
|
description: "Default agent powering the Helper's image caption feature"
|
|
locale_detector:
|
|
name: "Locale detector"
|
|
description: "Powers the translation feature by detecting the locale of a given text (posts, titles, etc.)"
|
|
post_raw_translator:
|
|
name: "Post translator"
|
|
description: "Powers the translation feature by translating posts containing Discourse Markdown"
|
|
topic_title_translator:
|
|
name: "Topic title translator"
|
|
description: "Powers the translation feature by translating topic titles"
|
|
short_text_translator:
|
|
name: "Short text translator"
|
|
description: "Powers the translation feature by as a generic text translator, used for short texts like category names or tags"
|
|
spam_detector:
|
|
name: "Spam detector"
|
|
description: "Default agent powering our Spam detection feature"
|
|
content_creator:
|
|
name: "Content creator"
|
|
description: "Default agent powering HyDE search"
|
|
report_runner:
|
|
name: "Report runner"
|
|
description: "Default agent used in the report automation script"
|
|
discover:
|
|
name: "Discover"
|
|
description: "Default agent used in the discoveries feature (complimentary search)"
|
|
chat_thread_titler:
|
|
name: "Chat Thread Titler"
|
|
description: "Default agent powering automatic chat thread title generation"
|
|
sentiment_classifier:
|
|
name: "Sentiment classifier"
|
|
description: "Default agent powering sentiment classification"
|
|
emotion_classifier:
|
|
name: "Emotion classifier"
|
|
description: "Default agent powering emotion classification"
|
|
|
|
topic_not_found: "Summary unavailable, topic not found!"
|
|
summarizing: "Summarizing topic"
|
|
searching: "Searching for: '%{query}'"
|
|
tool_options:
|
|
researcher:
|
|
researcher_llm:
|
|
name: "LLM"
|
|
description: "Language model to use for research (default to current agent's LLM)"
|
|
max_tokens_per_batch:
|
|
name: "Maximum tokens per batch"
|
|
description: "Maximum number of tokens to use for each batch in the research"
|
|
max_tokens_per_post:
|
|
name: "Maximum tokens per post"
|
|
description: "Maximum number of tokens to use for each post in the research"
|
|
max_results:
|
|
name: "Maximum number of results"
|
|
description: "Maximum number of results to include in a filter"
|
|
include_private:
|
|
name: "Include private"
|
|
description: "Include private topics in the filters"
|
|
create_artifact:
|
|
creator_llm:
|
|
name: "LLM"
|
|
description: "Language model to use for artifact creation"
|
|
update_artifact:
|
|
editor_llm:
|
|
name: "LLM"
|
|
description: "Language model to use for artifact edits"
|
|
update_algorithm:
|
|
name: "Update Algorithm"
|
|
description: "Ask LLM to fully replace, or use diff to update"
|
|
do_not_echo_artifact:
|
|
name: "Do Not Echo Artifact"
|
|
description: "Will limit costs however effectiveness of Artifact updates will be reduced"
|
|
google:
|
|
base_query:
|
|
name: "Base Search Query"
|
|
description: "Base query to use when searching. Examples: 'site:example.com' will only include results from example.com, before:2022-01-01 will only includes results from 2021 and earlier. This text is prepended to the search query."
|
|
read:
|
|
read_private:
|
|
name: "Read Private"
|
|
description: "Allow access to all topics user has access to (by default only public topics are included)"
|
|
search:
|
|
search_private:
|
|
name: "Search Private"
|
|
description: "Include all topics user has access to in search results (by default only public topics are included)"
|
|
max_results:
|
|
name: "Maximum number of results"
|
|
description: "Maximum number of results to include in the search - if empty default rules will be used and count will be scaled depending on model used. Highest value is 100."
|
|
base_query:
|
|
name: "Base Search Query"
|
|
description: "Base query to use when searching. Example: '#urgent' will prepend '#urgent' to the search query and only include topics with the urgent category or tag."
|
|
flag_post:
|
|
flag_type:
|
|
name: "Flag Type"
|
|
description: "Controls whether the post is reviewed, hidden, deleted, or treated as spam."
|
|
native_tools:
|
|
web_search:
|
|
name: "Web Search (native)"
|
|
help: "Lets the model search the web using the provider's built-in search, when the agent is forced to a supported LLM."
|
|
web_fetch:
|
|
name: "Web Fetch (native)"
|
|
help: "Lets the model open and read web pages using the provider's built-in web access, when the agent is forced to a supported LLM."
|
|
tool_summary:
|
|
read_artifact: "Read a web artifact"
|
|
search_uploaded_documents: "Search uploaded documents"
|
|
update_artifact: "Update a web artifact"
|
|
create_artifact: "Create web artifact"
|
|
web_browser: "Browse Web"
|
|
github_search_files: "GitHub search files"
|
|
github_search_code: "GitHub code search"
|
|
github_file_content: "GitHub file content"
|
|
github_diff: "GitHub diff"
|
|
random_picker: "Random Picker"
|
|
categories: "List categories"
|
|
flag_post: "Flag post"
|
|
close_topic: "Close topic"
|
|
unlist_topic: "Unlist topic"
|
|
lock_post: "Lock post"
|
|
delete_topic: "Delete topic"
|
|
edit_post: "Edit post"
|
|
edit_tags: "Edit tags"
|
|
edit_category: "Edit category"
|
|
set_topic_timer: "Set topic timer"
|
|
set_slow_mode: "Set slow mode"
|
|
move_posts: "Move posts"
|
|
grant_badge: "Grant badge"
|
|
list_reviewables: "List review queue"
|
|
perform_reviewable_action: "Review queue action"
|
|
add_reviewable_note: "Add review queue note"
|
|
assign: "Assign topic"
|
|
mark_as_solved: "Mark as solved"
|
|
search: "Search"
|
|
tags: "List tags"
|
|
time: "Time"
|
|
summarize: "Summarize"
|
|
image: "Generate image"
|
|
google: "Search Google"
|
|
read: "Read topic"
|
|
setting_context: "Look up site setting context"
|
|
schema: "Look up database schema"
|
|
search_settings: "Searching site settings"
|
|
dall_e: "Generate image"
|
|
search_meta_discourse: "Search Meta Discourse"
|
|
javascript_evaluator: "Evaluate JavaScript"
|
|
create_image: "Creating image"
|
|
edit_image: "Editing image"
|
|
researcher: "Researching"
|
|
researcher_dry_run: "Preparing research"
|
|
tool_help:
|
|
read_artifact: "Read a web artifact using the AI Bot"
|
|
search_uploaded_documents: "Search documents uploaded to this agent"
|
|
update_artifact: "Update a web artifact using the AI Bot"
|
|
create_artifact: "Create a web artifact using the AI Bot"
|
|
web_browser: "Browse web page using the AI Bot"
|
|
github_search_code: "Search for code in a GitHub repository"
|
|
github_search_files: "Search for files in a GitHub repository"
|
|
github_file_content: "Retrieve content of files from a GitHub repository"
|
|
github_diff: "Retrieve a GitHub pull request or commit diff"
|
|
random_picker: "Pick a random number or a random element of a list"
|
|
categories: "List all publicly visible categories on the forum"
|
|
flag_post: "Flag the current post for staff review"
|
|
close_topic: "Close or open a topic"
|
|
unlist_topic: "List or unlist a topic"
|
|
lock_post: "Lock or unlock a post"
|
|
delete_topic: "Delete a topic"
|
|
edit_post: "Edit the content of a post"
|
|
edit_tags: "Edit the tags on a topic"
|
|
edit_category: "Move a topic to a different category"
|
|
set_topic_timer: "Set a timer on a topic to close, open, delete, or bump it"
|
|
set_slow_mode: "Enable or disable slow mode on a topic"
|
|
move_posts: "Move posts to a new or existing topic"
|
|
grant_badge: "Grant a badge to a user"
|
|
list_reviewables: "List pending review queue items with optional filtering"
|
|
perform_reviewable_action: "Perform an action on a review queue item"
|
|
add_reviewable_note: "Add a note to a review queue item"
|
|
assign: "Assign or unassign a topic to a user or group"
|
|
mark_as_solved: "Mark or unmark a post as the accepted solution"
|
|
search: "Search all public topics on the forum"
|
|
tags: "List all tags on the forum"
|
|
time: "Find time in various time zones"
|
|
summary: "Summarize a topic"
|
|
image: "Generate image using Stable Diffusion"
|
|
create_image: "Generate image using Open AI GPT image model"
|
|
edit_image: "Edit image using Open AI GPT image model"
|
|
google: "Search Google for a query"
|
|
read: "Read public topic on the forum"
|
|
setting_context: "Look up site setting context"
|
|
schema: "Look up database schema"
|
|
search_settings: "Search site settings"
|
|
dall_e: "Generate image using DALL-E 3"
|
|
search_meta_discourse: "Search Meta Discourse"
|
|
javascript_evaluator: "Evaluate JavaScript"
|
|
researcher: "Research forum information using the AI Bot"
|
|
tool_description:
|
|
read_artifact: "Read a web artifact using the AI Bot"
|
|
search_uploaded_documents:
|
|
one: "Found %{count} uploaded document excerpt for '%{query}'"
|
|
other: "Found %{count} uploaded document excerpts for '%{query}'"
|
|
update_artifact: "Updated a web artifact using the AI Bot"
|
|
create_artifact: "Created a web artifact: %{name} - %{specification}"
|
|
web_browser: "Reading <a href='%{url}'>%{url}</a>"
|
|
github_search_files: "Searched for '%{keywords}' in %{repo}/%{branch}"
|
|
github_search_code: "Searched for '%{query}' in %{repo}"
|
|
github_diff: "<a href='%{url}'>%{repo} %{ref}</a>"
|
|
github_file_content: "Retrieved content of %{file_paths} from %{repo_name}@%{branch}"
|
|
random_picker: "Picking from %{options}, picked: %{result}"
|
|
flag_post: "Flagging post %{post_id} (flag_post: %{flag_post})"
|
|
close_topic: "Closing topic %{topic_id} (closed: %{closed})"
|
|
unlist_topic: "Unlisting topic %{topic_id} (unlisted: %{unlisted})"
|
|
lock_post: "Locking post %{post_id} (locked: %{locked})"
|
|
delete_topic: "Deleting topic %{topic_id} (deleted: %{deleted})"
|
|
edit_post: "Editing post %{post_id}"
|
|
edit_tags: "Editing tags on topic %{topic_id}: %{tags}"
|
|
edit_category: "Moving topic %{topic_id} to category %{category_id}"
|
|
set_topic_timer: "Setting %{timer_type} timer on topic %{topic_id} (%{duration_hours}h)"
|
|
set_slow_mode: "Setting slow mode on topic %{topic_id} (%{slow_mode_seconds}s)"
|
|
move_posts: "Moving posts %{post_ids} from topic %{topic_id}"
|
|
grant_badge: "Granting badge '%{badge_name}' to %{username}"
|
|
list_reviewables: "Listing review queue items (type: %{type})"
|
|
perform_reviewable_action: "Performing %{action} on reviewable %{reviewable_id}"
|
|
add_reviewable_note: "Adding note to reviewable %{reviewable_id}"
|
|
assign: "Assigning topic %{topic_id} (assigned: %{assigned})"
|
|
mark_as_solved: "Marking post %{post_id} as solved (solved: %{solved})"
|
|
read: "Reading: <a href='%{url}'>%{title}</a>"
|
|
time: "Time in %{timezone} is %{time}"
|
|
summarize: "Summarized <a href='%{url}'>%{title}</a>"
|
|
dall_e: "%{prompt}"
|
|
create_image: "%{prompt}"
|
|
edit_image: "%{prompt}"
|
|
image: "%{prompt}"
|
|
categories:
|
|
one: "Found %{count} category"
|
|
other: "Found %{count} categories"
|
|
tags:
|
|
one: "Found %{count} tag"
|
|
other: "Found %{count} tags"
|
|
search:
|
|
one: "Found %{count} <a href='%{url}'>result</a> for '%{query}'"
|
|
other: "Found %{count} <a href='%{url}'>results</a> for '%{query}'"
|
|
search_meta_discourse:
|
|
one: "Found %{count} <a href='%{url}'>result</a> for '%{query}'"
|
|
other: "Found %{count} <a href='%{url}'>results</a> for '%{query}'"
|
|
google:
|
|
one: "Found %{count} <a href='%{url}'>result</a> for '%{query}'"
|
|
other: "Found %{count} <a href='%{url}'>results</a> for '%{query}'"
|
|
setting_context: "Reading context for: %{setting_name}"
|
|
schema: "%{tables}"
|
|
researcher_dry_run:
|
|
one: "Proposed goals: %{goals}\n\nFound %{count} post matching '%{filter}'"
|
|
other: "Proposed goals: %{goals}\n\nFound %{count} posts matching '%{filter}'"
|
|
researcher:
|
|
one: "Researching: %{goals}\n\nFound %{count} post matching '%{filter}'"
|
|
other: "Researching: %{goals}\n\nFound %{count} posts matching '%{filter}'"
|
|
search_settings:
|
|
one: "Found %{count} result for '%{query}'"
|
|
other: "Found %{count} results for '%{query}'"
|
|
discoveries:
|
|
continue_conversation:
|
|
title: "Discovery conversation: Search for %{query}"
|
|
raw: "In my search for %{query}, you showed me the following information:\n\n%{context}\n\nLet's continue the conversation."
|
|
|
|
flag_post:
|
|
errors:
|
|
no_context: "No post context available for flagging."
|
|
no_reason: "A reason is required to flag a post."
|
|
invalid_flag_type: "Invalid flag type."
|
|
skipped: "Verdict was false; no flag was created."
|
|
already_flagged: "Post is already flagged for review."
|
|
flagged: "Post flagged for review."
|
|
reason: "AI bot flagged this post.\n\nReason: %{reason}"
|
|
|
|
close_topic:
|
|
errors:
|
|
not_found: "Topic not found."
|
|
not_allowed: "You are not allowed to close or open this topic."
|
|
no_reason: "A reason is required to close or open a topic."
|
|
success: "Topic updated successfully."
|
|
|
|
unlist_topic:
|
|
errors:
|
|
not_found: "Topic not found."
|
|
not_allowed: "You are not allowed to unlist or list this topic."
|
|
no_reason: "A reason is required to unlist or list a topic."
|
|
success: "Topic updated successfully."
|
|
|
|
lock_post:
|
|
errors:
|
|
not_found: "Post not found."
|
|
not_allowed: "You are not allowed to lock or unlock this post."
|
|
no_reason: "A reason is required to lock or unlock a post."
|
|
success: "Post updated successfully."
|
|
|
|
delete_topic:
|
|
errors:
|
|
not_found: "Topic not found."
|
|
not_allowed: "You are not allowed to delete or recover this topic."
|
|
no_reason: "A reason is required to delete or recover a topic."
|
|
success: "Topic updated successfully."
|
|
|
|
edit_post:
|
|
errors:
|
|
not_found: "Post not found."
|
|
not_allowed: "You are not allowed to edit this post."
|
|
nothing_to_edit: "Either raw or title must be provided."
|
|
no_reason: "An edit reason is required."
|
|
revision_failed: "Failed to revise the post."
|
|
success: "Post edited successfully."
|
|
|
|
edit_tags:
|
|
errors:
|
|
not_found: "Topic not found."
|
|
not_allowed: "You are not allowed to edit tags on this topic."
|
|
no_reason: "A reason is required to edit tags."
|
|
tagging_disabled: "Tagging is not enabled on this site."
|
|
success: "Tags updated successfully."
|
|
|
|
edit_category:
|
|
errors:
|
|
not_found: "Topic not found."
|
|
not_allowed: "You are not allowed to move this topic."
|
|
category_not_found: "Category not found."
|
|
no_reason: "A reason is required to move a topic."
|
|
revision_failed: "Failed to move the topic."
|
|
success: "Topic moved successfully."
|
|
|
|
set_topic_timer:
|
|
errors:
|
|
not_found: "Topic not found."
|
|
not_allowed: "You are not allowed to set a timer on this topic."
|
|
no_reason: "A reason is required to set a topic timer."
|
|
invalid_timer_type: "Invalid timer type. Must be one of: close, open, delete, silent_close, bump."
|
|
success: "Topic timer updated successfully."
|
|
|
|
set_slow_mode:
|
|
errors:
|
|
not_found: "Topic not found."
|
|
not_allowed: "You are not allowed to set slow mode on this topic."
|
|
no_reason: "A reason is required to set slow mode."
|
|
success: "Slow mode updated successfully."
|
|
|
|
move_posts:
|
|
errors:
|
|
not_found: "Topic not found."
|
|
not_allowed: "You are not allowed to move posts in this topic."
|
|
no_reason: "A reason is required to move posts."
|
|
no_posts: "No post IDs provided."
|
|
no_destination: "Either destination_topic_id or new_title must be provided."
|
|
move_failed: "Failed to move posts."
|
|
success: "Posts moved successfully."
|
|
|
|
grant_badge:
|
|
errors:
|
|
user_not_found: "User not found."
|
|
badge_not_found: "Badge not found."
|
|
not_allowed: "You are not allowed to grant badges."
|
|
no_reason: "A reason is required to grant a badge."
|
|
badge_disabled: "Badge is not enabled."
|
|
grant_failed: "Failed to grant badge."
|
|
success: "Badge granted successfully."
|
|
|
|
assign:
|
|
errors:
|
|
plugin_not_installed: "The discourse-assign plugin is not installed."
|
|
not_found: "Topic not found."
|
|
not_allowed: "You are not allowed to assign this topic."
|
|
no_reason: "A reason is required to assign or unassign a topic."
|
|
assignee_not_found: "User or group not found."
|
|
assign_failed: "Failed to assign topic."
|
|
success: "Topic assignment updated successfully."
|
|
|
|
mark_as_solved:
|
|
errors:
|
|
plugin_not_installed: "The discourse-solved plugin is not installed."
|
|
no_reason: "A reason is required to mark or unmark a post as solved."
|
|
action_failed: "Failed to update the solved status."
|
|
success: "Solved status updated successfully."
|
|
|
|
list_reviewables:
|
|
errors:
|
|
not_allowed: "You are not allowed to view the review queue"
|
|
invalid_type: "Invalid reviewable type"
|
|
invalid_status: "Invalid status. Must be one of: pending, approved, rejected, ignored, deleted, reviewed, all."
|
|
empty: "No review queue items found matching the given filters"
|
|
found:
|
|
one: "Found %{count} review queue item"
|
|
other: "Found %{count} review queue items"
|
|
|
|
perform_reviewable_action:
|
|
errors:
|
|
not_allowed: "You are not allowed to access the review queue"
|
|
not_found: "Review queue item not found"
|
|
no_reason: "A reason is required to perform an action on a review queue item"
|
|
invalid_action: "Invalid action '%{action}'. Available actions: %{available}"
|
|
conflict: "This review queue item was updated by someone else. Please try again"
|
|
action_failed: "Failed to perform the action"
|
|
success: "Successfully performed '%{action}' on review queue item %{reviewable_id}"
|
|
|
|
add_reviewable_note:
|
|
errors:
|
|
not_allowed: "You are not allowed to access the review queue"
|
|
not_found: "Review queue item not found"
|
|
no_note: "A note is required to add a note to a review queue item"
|
|
failed: "Failed to add the note"
|
|
success: "Successfully added a note to review queue item %{reviewable_id}"
|
|
|
|
reviewables:
|
|
ai_tool_action:
|
|
title: "AI Tool Action"
|
|
approve:
|
|
title: "Approve"
|
|
reject:
|
|
title: "Reject"
|
|
target_missing: "The tool action target no longer exists."
|
|
tool_not_found: "Tool '%{tool_name}' is no longer available."
|
|
bot_user_missing: "The bot user no longer exists."
|
|
execution_error: "Tool execution failed: %{error}"
|
|
|
|
summarization:
|
|
configuration_hint:
|
|
one: "Configure the `%{setting}` setting first."
|
|
other: "Configure these settings first: %{settings}"
|
|
chat:
|
|
no_targets: "There were no messages during the selected period."
|
|
|
|
sentiment:
|
|
reports:
|
|
overall_sentiment: "Overall sentiment (Positive - Negative)"
|
|
post_emotion:
|
|
sadness: "Sadness 😢"
|
|
surprise: "Surprise 😱"
|
|
neutral: "Neutral 😐"
|
|
fear: "Fear 😨"
|
|
anger: "Anger 😡"
|
|
joy: "Joy 😀"
|
|
disgust: "Disgust 🤢"
|
|
sentiment_analysis:
|
|
positive: "Positive"
|
|
negative: "Negative"
|
|
neutral: "Neutral"
|
|
|
|
discord:
|
|
configuration:
|
|
agent_user_required: "The Discord search agent must have an associated user before Discord agent mode can be enabled."
|
|
|
|
llm:
|
|
configuration:
|
|
create_llm: "You need to setup an LLM before enabling this feature"
|
|
disable_modules_first: "You must disable these modules first: %{settings}"
|
|
set_llm_first: "Set %{setting} first"
|
|
model_unreachable: "We couldn't get a response from this model. Check your settings first."
|
|
empty_response: "The model returned an empty response."
|
|
invalid_seeded_model: "You can't use this model with this feature"
|
|
invalid_agent_response_format: "The selected agent must have a response format with a boolean field names \"spam\""
|
|
must_select_model: "You must select a LLM first"
|
|
invalid_llm_id: "The selected LLM model is not valid"
|
|
endpoints:
|
|
not_configured: "%{display_name} (not configured)"
|
|
configuration_hint:
|
|
one: "Make sure the `%{settings}` setting was configured."
|
|
other: "Make sure these settings were configured: %{settings}"
|
|
|
|
delete_failed:
|
|
one: "We couldn't delete this model because %{settings} is using it. Update the setting and try again."
|
|
other: "We couldn't delete this model because %{settings} are using it. Update the settings and try again."
|
|
cannot_edit_builtin: "You can't edit a built-in model."
|
|
|
|
agents:
|
|
malformed_examples: "The given examples have the wrong format."
|
|
|
|
embeddings:
|
|
delete_failed: "This model is currently in use. Update the `ai embeddings selected model` first."
|
|
cannot_edit_builtin: "You can't edit a built-in model."
|
|
secret_required: "A credential must be selected"
|
|
secret_not_found: "The selected credential does not exist"
|
|
configuration:
|
|
disable_embeddings: "You have to disable 'ai embeddings enabled' first."
|
|
choose_model: "Set 'ai embeddings selected model' first."
|
|
model_test_failed: "We failed to generate a test embedding with this model. Check it's correctly configured."
|
|
|
|
secrets:
|
|
delete_failed_in_use: "This credential is currently in use by one or more LLMs, embeddings, or tools and cannot be deleted."
|
|
|
|
llm_models:
|
|
missing_provider_param: "%{param} can't be blank"
|
|
secret_required: "A credential must be selected"
|
|
secret_not_found: "The selected credential does not exist"
|
|
bedrock_invalid_url: "Please complete all the fields to use this model."
|
|
bedrock_missing_auth: "AWS Bedrock requires either Access Key ID or Role ARN to be configured"
|
|
|
|
ai_staff_action_logger:
|
|
updated: "updated"
|
|
set: "set"
|
|
removed: "removed"
|
|
|
|
translation:
|
|
errors:
|
|
disabled: "The AI translation feature is not fully configured."
|
|
all_posts_translated: "All posts in this topic are already translated."
|
|
|
|
llm_credit_allocation:
|
|
limit_exceeded_user: "This community has reached its AI credit limit for today. Please try again after %{reset_time} or contact your site administrator for more information."
|
|
limit_exceeded_admin: "You have reached your AI credit limit. Please try again after %{reset_time}."
|
|
|
|
errors:
|
|
quota_exceeded: "You have exceeded the quota for this model. Please try again in %{relative_time}."
|
|
quota_required: "You must specify maximum tokens or usages for this model"
|
|
no_query_specified: The query parameter is required, please specify it.
|
|
no_user_for_agent: The agent specified does not have a user associated with it.
|
|
agent_not_found: "The agent specified does not exist. Check the agent_name or agent_id params (legacy: persona_name or persona_id)."
|
|
no_user_specified: The username or the user_unique_id parameter is required, please specify it.
|
|
user_not_found: The user specified does not exist. Check the username param.
|
|
agent_disabled: "The agent specified is disabled. Check the agent_name or agent_id params (legacy: persona_name or persona_id)."
|
|
no_default_llm: The agent must have a default_llm defined.
|
|
user_not_allowed: The user is not allowed to participate in the topic.
|
|
invalid_stream_resume_token: The resume_token is invalid or has expired.
|
|
no_tool_results_specified: The tool_results parameter is required when resuming a stream.
|
|
invalid_custom_tools: "The custom_tools parameter is invalid: %{details}"
|
|
duplicate_custom_tools: "The custom_tools parameter contains duplicate tool names: %{names}"
|
|
too_many_custom_tools: "The custom_tools parameter can include at most %{max} tools."
|
|
custom_tool_definition_too_large: "Each custom tool definition must be at most %{max} bytes."
|
|
invalid_stream_param: "The %{key} parameter is invalid: %{details}"
|
|
expected_array: "expected an array"
|
|
expected_object: "expected an object"
|
|
ambiguous_tool_results: "Specify either tool_results or tool_result, not both."
|
|
invalid_tool_results: "The tool_results parameter is invalid: %{details}"
|
|
too_many_tool_results: "The tool_results parameter can include at most %{max} items."
|
|
no_pending_tool_calls: There are no pending tool calls for this resume token.
|
|
missing_tool_results: "Missing tool results for tool_call_id(s): %{ids}"
|
|
unexpected_tool_results: "Unexpected tool results for tool_call_id(s): %{ids}"
|
|
invalid_tool_result_content: "The tool result for %{id} must include content"
|
|
tool_result_content_too_large: "Each tool result content payload must be at most %{max} bytes."
|
|
stream_reply_max_resume_rounds_reached: Reached maximum custom tool resume rounds (%{max}).
|
|
stream_reply_state_too_large: "The stream state is too large to persist (max %{max} bytes)."
|
|
stream_reply_unexpected_error: An unexpected error occurred while streaming the reply.
|
|
prompt_message_length: The message %{idx} is over the 1000 character limit.
|
|
agent_already_exists: Agent with the name %{name} already exists.
|
|
custom_tool_exists:
|
|
one: "Custom tool with the name %{names} already exists."
|
|
other: "Custom tools with the names %{names} already exist."
|
|
mcp_server_missing: "The following MCP servers are not configured on this site: %{names}."
|
|
mcp_server_tools_not_found: "No matching tools from MCP server %{name} are available on this site."
|