From 26040a55601bfcf5d31bb47adac935f05e378116 Mon Sep 17 00:00:00 2001
From: feng <1304903146@qq.com>
Date: Thu, 12 Dec 2024 14:38:10 +0800
Subject: [PATCH] perf: pt_br translate

---
 apps/i18n/core/pt_BR/LC_MESSAGES/django.po |  12 +--
 apps/i18n/koko/pt_br.json                  |   2 +-
 apps/i18n/lina/pt_br.json                  |  16 +--
 apps/i18n/lion/pt_br.json                  |   4 +-
 apps/i18n/luna/pt_br.json                  |   2 +-
 apps/settings/api/chat.py                  |   3 +
 apps/settings/prompt.py                    | 116 ++++++++++++++++++++-
 7 files changed, 135 insertions(+), 20 deletions(-)

diff --git a/apps/i18n/core/pt_BR/LC_MESSAGES/django.po b/apps/i18n/core/pt_BR/LC_MESSAGES/django.po
index 262977f00..0ec257036 100644
--- a/apps/i18n/core/pt_BR/LC_MESSAGES/django.po
+++ b/apps/i18n/core/pt_BR/LC_MESSAGES/django.po
@@ -4778,7 +4778,7 @@ msgstr ""
 
 #: labels/apps.py:8
 msgid "App Labels"
-msgstr "管理标签"
+msgstr "Gerenciar tags"
 
 #: labels/models.py:15
 msgid "Color"
@@ -4810,7 +4810,7 @@ msgstr "Tipo de recurso"
 
 #: notifications/apps.py:7
 msgid "App Notifications"
-msgstr "管理通知"
+msgstr "Gerenciar notificações"
 
 #: notifications/backends/__init__.py:13
 msgid "Site message"
@@ -5364,7 +5364,7 @@ msgid ""
 msgstr ""
 "Verifique se cada componente está offline a cada hora, cpu, memória, se a "
 "taxa de uso do disco rígido ultrapassa o limite, e envie mensagens de alerta"
-" para o 管理员"
+" para o administrador"
 
 #: ops/tasks.py:160
 msgid "Clean up unexpected jobs"
@@ -8811,7 +8811,7 @@ msgstr "Desconexão por inatividade"
 
 #: terminal/session_lifecycle.py:156
 msgid "admin terminated"
-msgstr "管理员终断连接"
+msgstr "Administrador encerra conexão"
 
 #: terminal/session_lifecycle.py:157
 msgid "maximum session time has been reached"
@@ -8954,7 +8954,7 @@ msgstr "Solicitante"
 
 #: tickets/apps.py:7
 msgid "App Tickets"
-msgstr "管理"
+msgstr "Gerenciar ordens de serviço"
 
 #: tickets/const.py:10
 msgid "Apply for asset"
@@ -9279,7 +9279,7 @@ msgstr ""
 
 #: users/apps.py:9
 msgid "App Users"
-msgstr "用户管理"
+msgstr "Gerenciamento de usuários"
 
 #: users/const.py:10
 msgid "System administrator"
diff --git a/apps/i18n/koko/pt_br.json b/apps/i18n/koko/pt_br.json
index e7c880aea..6114abe6b 100644
--- a/apps/i18n/koko/pt_br.json
+++ b/apps/i18n/koko/pt_br.json
@@ -24,7 +24,7 @@
     "InputVerifyCode": "Por favor, insira o código de verificação",
     "JoinShare": "Junte-se ao compartilhamento",
     "JoinedWithSuccess": "Adicionado com sucesso",
-    "KubernetesManagement": "Kubernetes 管理",
+    "KubernetesManagement": "Kubernetes gerenciar",
     "LeaveShare": "Sair do compartilhamento",
     "LeftArrow": "Seta para trás",
     "LinkAddr": "Endereço do link",
diff --git a/apps/i18n/lina/pt_br.json b/apps/i18n/lina/pt_br.json
index 51ca26f71..d55edbd69 100644
--- a/apps/i18n/lina/pt_br.json
+++ b/apps/i18n/lina/pt_br.json
@@ -70,7 +70,7 @@
     "Address": "Endereço",
     "AdhocCreate": "Criar Comando",
     "AdhocDetail": "Detalhes do comando",
-    "AdhocManage": "脚本管理",
+    "AdhocManage": "Gerenciamento de script",
     "AdhocUpdate": "Atualizar script",
     "Advanced": "Configurações avançadas",
     "AfterChange": "Após a alteração",
@@ -104,7 +104,7 @@
     "AppletHosts": "Máquina de publicação de aplicativos",
     "Applets": "Aplicativo Remoto",
     "Applicant": "Requerente",
-    "Applications": "Aplicativo 管理",
+    "Applications": "Aplicativo gerenciar",
     "ApplyAsset": "Solicitar Ativos",
     "ApplyFromCMDFilterRule": "Regras de filtragem de comandos",
     "ApplyFromSession": "Sessão",
@@ -152,7 +152,7 @@
     "AssetPermsAmount": "Quantidade de ativos autorizados",
     "AssetProtocolHelpText": "As restrições de protocolo suportadas pelos recursos são limitadas pela plataforma, clicar no botão de configurações permite visualizar as configurações do protocolo. Se necessário, atualize a plataforma",
     "AssetTree": "Árvore de ativos",
-    "Assets": "管理",
+    "Assets": "Gestão de ativos",
     "AssetsAmount": "Número de ativos",
     "AssetsOfNumber": "Número de ativos",
     "AssetsTotal": "Total de ativos",
@@ -745,9 +745,9 @@
     "MenuAccountTemplates": "Modelo de conta",
     "MenuAccounts": "Gerenciamento de Conta",
     "MenuAcls": "Controle de acesso",
-    "MenuAssets": "资产管理",
+    "MenuAssets": "Gestão de ativos",
     "MenuMore": "Outros",
-    "MenuPermissions": "管理",
+    "MenuPermissions": "Gerenciar",
     "MenuUsers": "Gestão de usuários",
     "Message": "Mensagens",
     "MessageType": "Tipo de mensagem",
@@ -762,7 +762,7 @@
     "More": "Mais",
     "MoreActions": "Mais ações",
     "MoveAssetToNode": "Mover ativos para o nó",
-    "MsgSubscribe": " Assinatura de mensagem",
+    "MsgSubscribe": "Assinatura de mensagem",
     "MyAssets": "Meus ativos",
     "MyTickets": "Iniciados por Mim",
     "NUMBER_REQUIRED": "Deve conter números",
@@ -848,7 +848,7 @@
     "OrgUser": "Usuários da organização",
     "OrganizationCreate": "Criar organização",
     "OrganizationDetail": " Detalhes da organização ",
-    "OrganizationList": "组织管理",
+    "OrganizationList": "Gestão organizacional",
     "OrganizationManage": "Organização",
     "OrganizationUpdate": " Atualizar organização ",
     "OrgsAndRoles": "Organização e Papéis",
@@ -897,7 +897,7 @@
     "PlatformProtocolConfig": "Configuração do protocolo da plataforma",
     "PlatformUpdate": "Atualizar plataforma",
     "PlaybookDetail": " Detalhes do Playbook ",
-    "PlaybookManage": "Playbook管理",
+    "PlaybookManage": "Playbook gerenciar",
     "PlaybookUpdate": "Atualizar Playbook",
     "PleaseAgreeToTheTerms": "Por favor, concorde com os termos",
     "PleaseSelect": "Por favor, selecione",
diff --git a/apps/i18n/lion/pt_br.json b/apps/i18n/lion/pt_br.json
index 75a158616..8b38b6927 100644
--- a/apps/i18n/lion/pt_br.json
+++ b/apps/i18n/lion/pt_br.json
@@ -14,7 +14,7 @@
     "Display": "Exibir",
     "ErrTitle": "Conexão anormal",
     "ExpiredTime": "Período de validade",
-    "Files": "文件管理",
+    "Files": "Gerenciamento de arquivos",
     "GetShareUser": "Digite o nome de usuário",
     "GuaErrClientUnauthorized": "Erro de autenticação de nome de usuário e senha, falha no login",
     "GuaErrSessionConflict": "Devido a um conflito com outra conexão, o servidor de area de trabalho remota fechou esta conexão. Por favor, tente novamente mais tarde.",
@@ -53,7 +53,7 @@
     "JMSErrPermission": "Sem permissão para conexão",
     "JMSErrPermissionExpired": "A autorização expirou, desconectando",
     "JMSErrRemoveShareUser": "Você foi removido da sessão compartilhada",
-    "JMSErrTerminatedByAdmin": "管理 terminou a sessão",
+    "JMSErrTerminatedByAdmin": "Gerenciar terminou a sessão",
     "JoinShare": "Participar do compartilhamento",
     "LeaveShare": "Deixar compartilhamento",
     "LinkAddr": "Link do endereço",
diff --git a/apps/i18n/luna/pt_br.json b/apps/i18n/luna/pt_br.json
index 6293d8972..a9720df93 100644
--- a/apps/i18n/luna/pt_br.json
+++ b/apps/i18n/luna/pt_br.json
@@ -72,7 +72,7 @@
     "Expire time": "Tempo de Expiração",
     "Failed to open address": "Falha ao abrir o endereço",
     "Favorite": "Favoritos",
-    "File Manager": "Arquivo 管理",
+    "File Manager": "Arquivo gerenciar",
     "Fold": "Dobrar",
     "Fold all": "Dobrar tudo",
     "Force refresh": " Atualização Forçada",
diff --git a/apps/settings/api/chat.py b/apps/settings/api/chat.py
index 68a80f013..14e21d68f 100644
--- a/apps/settings/api/chat.py
+++ b/apps/settings/api/chat.py
@@ -101,6 +101,9 @@ class ChatPromptViewSet(JMSModelViewSet):
     def filter_default_prompts(self):
         lang = self.request.LANGUAGE_CODE
         default_prompts = DefaultChatPrompt.get_prompts(lang)
+        if not default_prompts:
+            return []
+
         search_query = self.request.query_params.get('search')
         search_query = search_query or self.request.query_params.get('name')
         if not search_query:
diff --git a/apps/settings/prompt.py b/apps/settings/prompt.py
index 5e2b72c96..861860805 100644
--- a/apps/settings/prompt.py
+++ b/apps/settings/prompt.py
@@ -1,6 +1,6 @@
 class DefaultChatPrompt:
     DEFAULT = {
-        'zh': [
+        'zh-hans': [
             {
                 'name': '周报生成器',
                 'content': '使用下面提供的文本作为中文周报的基础,生成一个简洁的摘要,突出最重要的内容。该报告应以 markdown 格式编写,'
@@ -56,6 +56,62 @@ class DefaultChatPrompt:
                            '保持意思不变,但使它们更具文学性,在《自然》杂志风格中提高我的表达水平。',
             },
         ],
+        'zh-hant': [
+            {
+                'name': '週報產生器',
+                'content': '使用下面提供的文本作為中文週報的基礎,產生一個簡潔的摘要,突出最重要的內容。該報告應以 markdown 格式編寫,'
+                           '並應易於閱讀和理解,以滿足一般受眾的需要。特別是要注重提供對利害關係人和決策者有用的見解和分析。 '
+                           '你也可以根據需要使用任何額外的資訊或來源。 ',
+            },
+            {
+                'name': '資料庫專家',
+                'content': '我希望你充當一個資料庫專家的角色,當我問你與 sql 相關的問題時,'
+                           '我需要你轉換為標準的 sql 語句,當我的描述不夠精準時,請給予合適的回饋',
+            },
+            {
+                'name': '全端程式設計師',
+                'content': '我希望你能扮演一個軟體開發者的角色。我將提供一些關於網絡應用需求的具體信息,'
+                           '而你的工作是提出一個架構和程式碼,用 Golang 和 Angular 開發安全的應用。 ',
+            },
+            {
+                'name': '前端開發',
+                'content': '我希望你能擔任高級前端開發員。我將描述一個項目的細節,你將用這些工具來編碼項目。 '
+                           'Create React App, yarn, Ant Design, List, Redux Toolkit, createSlice, thunk, axios. '
+                           '你應該將文件合併到單一的 index.js 檔案中,而不是其他。不要寫解釋。 ',
+            },
+            {
+                'name': '架構師 IT',
+                'content': '我希望你能扮演一個 IT 架構師的角色。我將提供一些關於應用程式或其他數位產品功能的細節,'
+                           '而你的工作是想出將其整合到 IT 環境中的方法。這可能涉及到分析業務需求,進行差距分析,'
+                           '並將新系統的功能對應到現有的 IT 環境。接下來的步驟是創建一個解決方案設計,'
+                           '一個實體網路藍圖,定義系統整合的介面和部署環境的藍圖。 ',
+            },
+            {
+                'name': '代碼釋義器',
+                'content': '我希望你能充當程式碼解釋者,闡明程式碼的語法和語義。 ',
+            },
+            {
+                'name': 'IT 程式設計問題',
+                'content': '我想讓你充當 Stackoverflow 的貼文。我將提出與程式設計有關的問題,你將回答答案是什麼。 '
+                           '我希望你只回答給定的答案,在沒有足夠的細節時寫出解釋。當我需要用英文告訴你一些事情時,我會把文字放在大括號裡{像這樣}。 '
+            },
+            {
+                'name': '小紅書風格',
+                'content': '請使用 Emoji 風格編輯以下段落,該風格以引人入勝的標題、'
+                           '每個段落中包含表情符號和在末尾添加相關標籤為特徵。請確保保持原文的意思。 ',
+            },
+            {
+                'name': '寫作助理',
+                'content': '作為一名中文寫作改進助理,你的任務是改進所提供文本的拼寫、語法、清晰、簡潔和整體可讀性,'
+                           '同時分解長句,減少重複,並提供改進建議。請只提供文本的更正版本,避免包括解釋。 ',
+            },
+            {
+                'name': 'Nature 風格潤飾',
+                'content': '我希望你能充當專業的拼字和文法校對者,並改進我的文章。 '
+                           '我想讓你用更美麗、優雅、高級的英語單字和句子替換我的簡化 A0 級別的單字和句子,'
+                           '保持意思不變,但使它們更具文學性,在《自然》雜誌風格中提高我的表達水平。 ',
+            },
+        ],
         'en': [
             {
                 "name": "Weekly Report Generator",
@@ -189,9 +245,65 @@ class DefaultChatPrompt:
                            "私の簡素化されたA0レベルの単語や文章を、より美しく、優雅で、"
                            "高度な英語の単語や文章に置き換えて、文学的な要素を加え、「自然」誌スタイルで表現レベルを高めてください。"
             },
+        ],
+        'pt-br': [
+            {
+                'name': 'Gerador de Relatório Semanal',
+                'content': 'Use o texto fornecido abaixo como base para o relatório semanal chinês, gerando um resumo conciso que destaca o conteúdo mais importante. O relatório deve ser escrito em formato de desconto,'
+                           'e deve ser fácil de ler e compreender para atender às necessidades do público em geral. Em particular, concentre-se em fornecer insights e análises que sejam úteis para as partes interessadas e os tomadores de decisão. '
+                           'Você também pode usar qualquer informação ou fonte adicional, se desejar. ',
+            },
+            {
+                'name': 'Especialista em Banco de Dados',
+                'content': 'Espero que você atue como um especialista em banco de dados quando eu fizer perguntas relacionadas a SQL,'
+                           'Preciso que você converta em uma instrução sql padrão. Quando minha descrição não for precisa o suficiente, forneça um feedback apropriado',
+            },
+            {
+                'name': 'Programador full stack',
+                'content': 'Quero que você desempenhe o papel de desenvolvedor de software. Fornecerei algumas informações específicas sobre os requisitos de aplicativos da web,'
+                           'E seu trabalho é criar uma arquitetura e código para desenvolver aplicativos seguros usando Golang e Angular. ',
+            },
+            {
+                'name': 'Desenvolvimento front-end',
+                'content': 'Espero que você possa atuar como desenvolvedor front-end sênior. Descreverei os detalhes de um projeto que você usará para codificar essas ferramentas. '
+                           'Criar aplicativo React, fio, Ant Design, Lista, Redux Toolkit, createSlice, thunk, axios'
+                           'Você deve mesclar os arquivos em um único arquivo index.js e nada mais. Não escreva uma explicação. ',
+            },
+            {
+                'name': 'Arquiteto de TI',
+                'content': 'Quero que você desempenhe o papel de um arquiteto de TI. Fornecerei alguns detalhes sobre a funcionalidade do aplicativo ou outro produto digital,'
+                           'E seu trabalho é descobrir como integrá-lo ao ambiente de TI. Isto pode envolver a análise das necessidades do negócio, a realização de uma análise de lacunas,'
+                           'e mapear a funcionalidade do novo sistema no ambiente de TI existente. Os próximos passos são criar um design de solução'
+                           'Um modelo de rede física que define as interfaces para integração do sistema e o modelo para o ambiente de implantação. ',
+            },
+            {
+                'name': 'Intérprete de código',
+                'content': 'Espero que você possa atuar como intérprete de código e esclarecer a sintaxe e a semântica do código. ',
+            },
+            {
+                'name': 'Pergunta de programação de TI',
+                'content': 'Quero que você seja um post do Stackoverflow. Farei perguntas relacionadas à programação e você responderá quais são as respostas. '
+                           'Quero que você responda apenas as respostas dadas e escreva explicações quando não houver detalhes suficientes. Quando preciso te contar algo em inglês, coloco o texto entre chaves {assim}. '
+            },
+            {
+                'name': 'Estilo Pequeno Livro Vermelho',
+                'content': 'Por favor edite o seguinte parágrafo usando o estilo Emoji com um título envolvente,'
+                           'Cada parágrafo apresenta emoticons e tags relevantes adicionadas no final. Por favor, certifique-se de manter o significado do texto original. ',
+            },
+            {
+                'name': 'Assistente de Redação',
+                'content': 'Como Assistente de Melhoria da Escrita Chinesa, você terá a tarefa de melhorar a ortografia, gramática, clareza, concisão e legibilidade geral do texto fornecido,'
+                           'Ta1mbém divide frases longas, reduz a repetição e fornece sugestões de melhorias. Forneça apenas uma versão corrigida do texto e evite incluir explicações. ',
+            },
+            {
+                'name': 'Polimento de estilo natural',
+                'content': 'Gostaria que você atuasse como revisor ortográfico e gramatical profissional e melhorasse meus artigos. '
+                           'Quero que você substitua minhas palavras e frases simplificadas do nível A0 por palavras e frases em inglês mais bonitas, elegantes e avançadas'
+                           'Manter os significados iguais, mas torná-los mais literários, melhorando meu nível de expressão no estilo Natureza. ',
+            }
         ]
     }
 
     @classmethod
     def get_prompts(cls, lang: str) -> list:
-        return cls.DEFAULT.get(lang[:2], 'zh')
+        return cls.DEFAULT.get(lang)