en:
  discourse_automation:
    scriptables:
      llm_triage:
        title: Triage posts using AI
        description: "Triage posts using a large language model"
        system_prompt_missing_post_placeholder: "System prompt must contain a placeholder for the post: %%POST%%"
      llm_report:
        title: Periodic report using AI
        description: "Periodic report based on a large language model"
  site_settings:
    discourse_ai_enabled: "Enable the discourse AI plugin."
    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_models: "Models to use for inference. Sentiment classifies post on the positive/neutral/negative space. Emotion classifies on the anger/disgust/fear/joy/neutral/sadness/surprise space."

    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_openai_gpt35_url: "Custom URL used for GPT 3.5 chat completions. (for Azure support)"
    ai_openai_gpt35_16k_url: "Custom URL used for GPT 3.5 16k chat completions. (for Azure support)"
    ai_openai_gpt4_url: "Custom URL used for GPT 4 chat completions. (for Azure support)"
    ai_openai_gpt4o_url: "Custom URL used for GPT 4 Omni chat completions. (for Azure support)"
    ai_openai_gpt4_32k_url: "Custom URL used for GPT 4 32k chat completions. (for Azure support)"
    ai_openai_gpt4_turbo_url: "Custom URL used for GPT 4 Turbo chat completions. (for Azure support)"
    ai_openai_dall_e_3_url: "Custom URL used for DALL-E 3 image generation. (for Azure support)"
    ai_openai_organization: "(Optional, leave empty to omit) Organization id used for the OpenAI API. Passed in using the OpenAI-Organization header."
    ai_openai_embeddings_url: "Custom URL used for the OpenAI embeddings API. (in the case of Azure it can be: https://COMPANY.openai.azure.com/openai/deployments/DEPLOYMENT/embeddings?api-version=2023-05-15)"
    ai_openai_api_key: "API key for OpenAI API"
    ai_anthropic_api_key: "API key for Anthropic API"
    ai_cohere_api_key: "API key for Cohere API"
    ai_hugging_face_api_url: "Custom URL used for OpenSource LLM inference. Compatible with https://github.com/huggingface/text-generation-inference"
    ai_hugging_face_api_key: API key for Hugging Face API
    ai_hugging_face_token_limit: Max tokens Hugging Face API can use per request
    ai_hugging_face_model_display_name: Name displayed for the Hugging Face AI model
    ai_hugging_face_tei_endpoint: URL where the API is running for the Hugging Face text embeddings inference
    ai_hugging_face_tei_api_key: API key for Hugging Face text embeddings inference
    ai_gemini_api_key: API key for Google Gemini API
    ai_vllm_endpoint: URL where the API is running for vLLM
    ai_vllm_api_key: API key for vLLM API
    ai_llava_endpoint: URL where the API is running for llava
    ai_llava_api_key: API key for llava API

    composer_ai_helper_enabled: "Enable the Composer's AI helper."
    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_model: "Model to use for the AI helper."
    ai_helper_custom_prompts_allowed_groups: "Users on these groups will see the custom prompt option in the AI helper."
    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_illustrate_post_model: "Model to use for the composer AI helper's illustrate post feature"
    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_image_caption_model: "Select the model to use for generating image captions"

    ai_embeddings_enabled: "Enable the embeddings module."
    ai_embeddings_discourse_service_api_endpoint: "URL where the API is running for the embeddings module"
    ai_embeddings_discourse_service_api_key: "API key for the embeddings API"
    ai_embeddings_model: "Use all-mpnet-base-v2 for local and fast inference in english, text-embedding-ada-002 to use OpenAI API (need API key) and multilingual-e5-large for local multilingual 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_pg_connection_string: "PostgreSQL connection string for the embeddings module. Needs pgvector extension enabled and a series of tables created. See docs for more info."
    ai_embeddings_semantic_search_enabled: "Enable full-page semantic search."
    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_search_hyde_model: "Model used to expand keywords to get better results during a semantic search"
    ai_embeddings_per_post_enabled: Generate embeddings for each post

    ai_summarization_discourse_service_api_endpoint: "URL where the Discourse summarization API is running."
    ai_summarization_discourse_service_api_key: "API key for the Discourse summarization API."

    ai_bot_enabled: "Enable the AI Bot module."
    ai_bot_enable_chat_warning: "Display a warning when PM chat is initiated. Can be overriden 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"
    ai_bot_enabled_chat_bots: "Available models to act as an AI Bot"
    ai_bot_add_to_header: "Display a button in the header to start a PM with a AI Bot"
    ai_bot_github_access_token: "GitHub access token for use with GitHub AI tools (required for search support)"

    ai_stability_api_key: "API key for the stability.ai API"
    ai_stability_engine: "Image generation engine to use for the stability.ai API"
    ai_stability_api_url: "URL for the stability.ai API"

    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_bedrock_access_key_id: "Access key ID for the Bedrock API"
    ai_bedrock_secret_access_key: "Secret access key for the Bedrock API"
    ai_bedrock_region: "AWS region for the Bedrock API"
    ai_cloudflare_workers_account_id: "Cloudflare account ID for the Cloudflare Workers AI API"
    ai_cloudflare_workers_api_token: "API token for the Cloudflare Workers AI API"

  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.

  errors:
    prompt_message_length: The message %{idx} is over the 1000 character limit.
    invalid_prompt_role: The message %{idx} has an invalid role.

  reports:
    overall_sentiment:
      title: "Overall sentiment"
      description: "This chart compares the number of posts classified either positive or negative."
      xaxis: "Positive(%)"
      yaxis: "Date"
    post_emotion:
      title: "Post emotion"
      description: "Number of posts classified with one of the following emotions, grouped by poster's trust level."
      xaxis:
      yaxis:

  discourse_ai:
    unknown_model: "Unknown AI model"

    ai_helper:
      errors:
        completion_request_failed: "Something went wrong while trying to provide suggestions. Please, try again."
      prompts:
        translate: Translate to English
        generate_titles: Suggest topic titles
        proofread: Proofread text
        markdown_table: Generate Markdown table
        custom_prompt: "Custom Prompt"
        explain: "Explain"
        illustrate_post: "Illustrate Post"
      painter:
        attribution:
          stable_diffusion_xl: "Image by Stable Diffusion XL"
          dall_e_3: "Image by DALL-E 3"
      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"
    ai_bot:
      personas:
        default_llm_required: "Default LLM model is required prior to enabling Chat"
        cannot_delete_system_persona: "System personas cannot be deleted, please disable it instead"
        cannot_edit_system_persona: "System personas can only be renamed, you may not edit commands or system prompt, instead disable and make a copy"
        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"
        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: Researcher
          description: "AI Bot with Google access that can research information for you"
        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"
      topic_not_found: "Summary unavailable, topic not found!"
      summarizing: "Summarizing topic"
      searching: "Searching for: '%{query}'"
      command_options:
        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."
      command_summary:
        web_browser: "Browse Web"
        github_search_code: "GitHub code search"
        github_file_content: "GitHub file content"
        github_pull_request_diff: "GitHub pull request diff"
        random_picker: "Random Picker"
        categories: "List categories"
        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"
      command_help:
        web_browser: "Browse web page using the AI Bot"
        github_search_code: "Search for code in a GitHub repository"
        github_file_content: "Retrieve content of files from a GitHub repository"
        github_pull_request_diff: "Retrieve a GitHub pull request diff"
        random_picker: "Pick a random number or a random element of a list"
        categories: "List all publicly visible categories on the forum"
        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"
        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"
      command_description:
        web_browser: "Reading <a href='%{url}'>%{url}</a>"
        github_search_code: "Searched for '%{query}' in %{repo}"
        github_pull_request_diff: "<a href='%{url}'>%{repo} %{pull_id}</a>"
        github_file_content: "Retrieved content of %{file_paths} from %{repo_name}@%{branch}"
        random_picker: "Picking from %{options}, picked: %{result}"
        read: "Reading: <a href='%{url}'>%{title}</a>"
        time: "Time in %{timezone} is %{time}"
        summarize: "Summarized <a href='%{url}'>%{title}</a>"
        dall_e: "%{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}"
        search_settings:
          one: "Found %{count} result for '%{query}'"
          other: "Found %{count} results for '%{query}'"

    summarization:
      configuration_hint:
        one: "Configure the `%{setting}` setting first."
        other: "Configure these settings first: %{settings}"

    sentiment:
      reports:
        overall_sentiment:
          positive: "Positive"
          negative: "Negative"
        post_emotion:
          tl_01: "Trust levels 0-1"
          tl_234: "Trust levels 2+"
          sadness: "Sadness"
          surprise: "Surprise"
          neutral: "Neutral"
          fear: "Fear"
          anger: "Anger"
          joy: "Joy"
          disgust: "Disgust"

    llm:
      configuration:
        disable_module_first: "You have to disable %{setting} first."
        set_llm_first: "Set %{setting} first."
        model_unreachable: "We couldn't get a response from this model. Check your settings first."
      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}"

    embeddings:
      configuration:
        disable_embeddings: "You have to disable 'ai embeddings enabled' first."
        choose_model: "Set 'ai embeddings model' first."
        model_unreachable: "We failed to generate a test embedding with this model. Check your settings are correct."
        hint:
          one: "Make sure the `%{settings}` setting was configured."
          other: "Make sure the settings of the provider you want were configured. Options are: %{settings}"
