Feat: Support for Portuguese language #4557 (#4558)

### What problem does this PR solve?

Feat: Support for Portuguese language #4557

### Type of change


- [x] New Feature (non-breaking change which adds functionality)
This commit is contained in:
balibabu 2025-01-21 11:32:47 +08:00 committed by GitHub
parent 5632613eb5
commit 21052b2972
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 104 additions and 66 deletions

View File

@ -20,7 +20,7 @@ const resources = {
ja: translation_ja, ja: translation_ja,
es: translation_es, es: translation_es,
vi: translation_vi, vi: translation_vi,
'pt-br': translation_pt_br, 'pt-BR': translation_pt_br,
}; };
const enFlattened = flattenObject(translation_en); const enFlattened = flattenObject(translation_en);
const viFlattened = flattenObject(translation_vi); const viFlattened = flattenObject(translation_vi);
@ -39,7 +39,7 @@ export const translationTable = createTranslationTable(
jaFlattened, jaFlattened,
pt_brFlattened, pt_brFlattened,
], ],
['English', 'Vietnamese', 'Spanish', 'zh', 'zh-TRADITIONAL', 'ja', 'pt-br'], ['English', 'Vietnamese', 'Spanish', 'zh', 'zh-TRADITIONAL', 'ja', 'pt-BR'],
); );
i18n i18n
.use(initReactI18next) .use(initReactI18next)
@ -48,7 +48,16 @@ i18n
detection: { detection: {
lookupLocalStorage: 'lng', lookupLocalStorage: 'lng',
}, },
supportedLngs: ['en', 'zh', 'zh-TRADITIONAL', 'id', 'es', 'vi', 'ja', 'pt-br'], supportedLngs: [
'en',
'zh',
'zh-TRADITIONAL',
'id',
'es',
'vi',
'ja',
'pt-BR',
],
resources, resources,
fallbackLng: 'en', fallbackLng: 'en',
interpolation: { interpolation: {

View File

@ -15,7 +15,7 @@ export default {
edit: 'Edit', edit: 'Edit',
upload: 'Upload', upload: 'Upload',
english: 'English', english: 'English',
portugeseBr: 'Portuguese (Brazil)', portugueseBr: 'Portuguese (Brazil)',
chinese: 'Simplified Chinese', chinese: 'Simplified Chinese',
traditionalChinese: 'Traditional Chinese', traditionalChinese: 'Traditional Chinese',
language: 'Language', language: 'Language',

View File

@ -16,7 +16,7 @@ export default {
upload: 'Subir', upload: 'Subir',
english: 'Ingles', english: 'Ingles',
spanish: 'Español', spanish: 'Español',
portugeseBr: 'Portugués (Brasil)', portugueseBr: 'Portugués (Brasil)',
chinese: 'Chino simplificado', chinese: 'Chino simplificado',
traditionalChinese: 'Chino tradicional', traditionalChinese: 'Chino tradicional',
language: 'Idioma', language: 'Idioma',

View File

@ -16,7 +16,7 @@ export default {
edit: 'Ubah', edit: 'Ubah',
upload: 'Unggah', upload: 'Unggah',
english: 'Inggris', english: 'Inggris',
portugeseBr: 'Portugis (Brasil)', portugueseBr: 'Portugis (Brasil)',
chinese: 'Cina', chinese: 'Cina',
traditionalChinese: 'Cina Tradisional', traditionalChinese: 'Cina Tradisional',
language: 'Bahasa', language: 'Bahasa',

View File

@ -15,7 +15,7 @@ export default {
edit: '編集', edit: '編集',
upload: 'アップロード', upload: 'アップロード',
english: '英語', english: '英語',
portugeseBr: 'ポルトガル語 (ブラジル)', portugueseBr: 'ポルトガル語 (ブラジル)',
chinese: '中国語(簡体字)', chinese: '中国語(簡体字)',
traditionalChinese: '中国語(繁体字)', traditionalChinese: '中国語(繁体字)',
language: '言語', language: '言語',

View File

@ -15,7 +15,7 @@ export default {
edit: 'Editar', edit: 'Editar',
upload: 'Carregar', upload: 'Carregar',
english: 'Inglês', english: 'Inglês',
portugeseBr: 'Português (Brasil)', portugueseBr: 'Português (Brasil)',
chinese: 'Chinês Simplificado', chinese: 'Chinês Simplificado',
traditionalChinese: 'Chinês Tradicional', traditionalChinese: 'Chinês Tradicional',
language: 'Idioma', language: 'Idioma',
@ -36,7 +36,7 @@ export default {
submit: 'Enviar', submit: 'Enviar',
embedIntoSite: 'Incorporar no site', embedIntoSite: 'Incorporar no site',
previousPage: 'Anterior', previousPage: 'Anterior',
nextPage: 'Próxima' nextPage: 'Próxima',
}, },
login: { login: {
login: 'Entrar', login: 'Entrar',
@ -55,8 +55,9 @@ export default {
register: 'Criar uma conta', register: 'Criar uma conta',
continue: 'Continuar', continue: 'Continuar',
title: 'Comece a construir seus assistentes inteligentes.', title: 'Comece a construir seus assistentes inteligentes.',
description: 'Inscreva-se gratuitamente para explorar a tecnologia RAG de ponta. Crie bases de conhecimento e IAs para capacitar seu negócio.', description:
review: 'de 500+ avaliações' 'Inscreva-se gratuitamente para explorar a tecnologia RAG de ponta. Crie bases de conhecimento e IAs para capacitar seu negócio.',
review: 'de 500+ avaliações',
}, },
header: { header: {
knowledgeBase: 'Base de Conhecimento', knowledgeBase: 'Base de Conhecimento',
@ -68,7 +69,7 @@ export default {
logout: 'Sair', logout: 'Sair',
fileManager: 'Gerenciamento de Arquivos', fileManager: 'Gerenciamento de Arquivos',
flow: 'Agente', flow: 'Agente',
search: 'Buscar' search: 'Buscar',
}, },
knowledgeList: { knowledgeList: {
welcome: 'Bem-vindo de volta', welcome: 'Bem-vindo de volta',
@ -78,7 +79,7 @@ export default {
namePlaceholder: 'Por favor, insira o nome!', namePlaceholder: 'Por favor, insira o nome!',
doc: 'Documentos', doc: 'Documentos',
searchKnowledgePlaceholder: 'Buscar', searchKnowledgePlaceholder: 'Buscar',
noMoreData: 'Isso é tudo. Nada mais.' noMoreData: 'Isso é tudo. Nada mais.',
}, },
knowledgeDetail: { knowledgeDetail: {
dataset: 'Conjunto de dados', dataset: 'Conjunto de dados',
@ -88,7 +89,8 @@ export default {
name: 'Nome', name: 'Nome',
namePlaceholder: 'Por favor, insira o nome!', namePlaceholder: 'Por favor, insira o nome!',
doc: 'Documentos', doc: 'Documentos',
datasetDescription: '😉 Por favor, aguarde o término da análise do seu arquivo antes de iniciar um chat com IA.', datasetDescription:
'😉 Por favor, aguarde o término da análise do seu arquivo antes de iniciar um chat com IA.',
addFile: 'Adicionar arquivo', addFile: 'Adicionar arquivo',
searchFiles: 'Buscar seus arquivos', searchFiles: 'Buscar seus arquivos',
localFiles: 'Arquivos locais', localFiles: 'Arquivos locais',
@ -104,11 +106,14 @@ export default {
processBeginAt: 'Início em', processBeginAt: 'Início em',
processDuration: 'Duração', processDuration: 'Duração',
progressMsg: 'Progresso', progressMsg: 'Progresso',
testingDescription: 'Realize um teste de recuperação para verificar se o RAGFlow pode recuperar o conteúdo pretendido para o LLM.', testingDescription:
'Realize um teste de recuperação para verificar se o RAGFlow pode recuperar o conteúdo pretendido para o LLM.',
similarityThreshold: 'Limite de similaridade', similarityThreshold: 'Limite de similaridade',
similarityThresholdTip: 'O RAGFlow emprega uma combinação de similaridade de palavras-chave ponderada e similaridade de cosseno vetorial ponderada, ou uma combinação de similaridade de palavras-chave ponderada e pontuação de reranking ponderada durante a recuperação. Este parâmetro define o limite para similaridades entre a consulta do usuário e os fragmentos. Qualquer fragmento com uma pontuação de similaridade abaixo deste limite será excluído dos resultados.', similarityThresholdTip:
'O RAGFlow emprega uma combinação de similaridade de palavras-chave ponderada e similaridade de cosseno vetorial ponderada, ou uma combinação de similaridade de palavras-chave ponderada e pontuação de reranking ponderada durante a recuperação. Este parâmetro define o limite para similaridades entre a consulta do usuário e os fragmentos. Qualquer fragmento com uma pontuação de similaridade abaixo deste limite será excluído dos resultados.',
vectorSimilarityWeight: 'Peso da similaridade de palavras-chave', vectorSimilarityWeight: 'Peso da similaridade de palavras-chave',
vectorSimilarityWeightTip: 'Define o peso da similaridade de palavras-chave na pontuação de similaridade combinada, usada com a similaridade de cosseno vetorial ou com a pontuação de reranking. O total dos dois pesos deve ser igual a 1.0.', vectorSimilarityWeightTip:
'Define o peso da similaridade de palavras-chave na pontuação de similaridade combinada, usada com a similaridade de cosseno vetorial ou com a pontuação de reranking. O total dos dois pesos deve ser igual a 1.0.',
testText: 'Texto de teste', testText: 'Texto de teste',
testTextPlaceholder: 'Insira sua pergunta aqui!', testTextPlaceholder: 'Insira sua pergunta aqui!',
testingLabel: 'Testando', testingLabel: 'Testando',
@ -126,37 +131,46 @@ export default {
runningStatus3: 'Sucesso', runningStatus3: 'Sucesso',
runningStatus4: 'Falha', runningStatus4: 'Falha',
pageRanges: 'Intervalos de páginas', pageRanges: 'Intervalos de páginas',
pageRangesTip: 'Intervalo de páginas a serem analisadas; páginas fora deste intervalo não serão processadas.', pageRangesTip:
'Intervalo de páginas a serem analisadas; páginas fora deste intervalo não serão processadas.',
fromPlaceholder: 'de', fromPlaceholder: 'de',
fromMessage: 'Página inicial ausente', fromMessage: 'Página inicial ausente',
toPlaceholder: 'até', toPlaceholder: 'até',
toMessage: 'Página final ausente (excluída)', toMessage: 'Página final ausente (excluída)',
layoutRecognize: 'Reconhecimento de layout', layoutRecognize: 'Reconhecimento de layout',
layoutRecognizeTip: 'Use modelos visuais para análise de layout para entender melhor a estrutura do documento e localizar efetivamente títulos, blocos de texto, imagens e tabelas. Se desativado, apenas o texto simples no PDF será recuperado.', layoutRecognizeTip:
'Use modelos visuais para análise de layout para entender melhor a estrutura do documento e localizar efetivamente títulos, blocos de texto, imagens e tabelas. Se desativado, apenas o texto simples no PDF será recuperado.',
taskPageSize: 'Tamanho da página da tarefa', taskPageSize: 'Tamanho da página da tarefa',
taskPageSizeMessage: 'Por favor, insira o tamanho da página da tarefa!', taskPageSizeMessage: 'Por favor, insira o tamanho da página da tarefa!',
taskPageSizeTip: 'Durante o reconhecimento de layout, um arquivo PDF é dividido em fragmentos e processado em paralelo para aumentar a velocidade de processamento. Este parâmetro define o tamanho de cada fragmento. Um tamanho de fragmento maior reduz a probabilidade de dividir texto contínuo entre páginas.', taskPageSizeTip:
'Durante o reconhecimento de layout, um arquivo PDF é dividido em fragmentos e processado em paralelo para aumentar a velocidade de processamento. Este parâmetro define o tamanho de cada fragmento. Um tamanho de fragmento maior reduz a probabilidade de dividir texto contínuo entre páginas.',
addPage: 'Adicionar página', addPage: 'Adicionar página',
greaterThan: 'O valor atual deve ser maior que!', greaterThan: 'O valor atual deve ser maior que!',
greaterThanPrevious: 'O valor atual deve ser maior que o anterior!', greaterThanPrevious: 'O valor atual deve ser maior que o anterior!',
selectFiles: 'Selecionar arquivos', selectFiles: 'Selecionar arquivos',
changeSpecificCategory: 'Alterar categoria específica', changeSpecificCategory: 'Alterar categoria específica',
uploadTitle: 'Clique ou arraste o arquivo para esta área para fazer o upload', uploadTitle:
uploadDescription: 'Suporte para upload único ou em massa. Estritamente proibido fazer upload de dados da empresa ou outros arquivos proibidos.', 'Clique ou arraste o arquivo para esta área para fazer o upload',
uploadDescription:
'Suporte para upload único ou em massa. Estritamente proibido fazer upload de dados da empresa ou outros arquivos proibidos.',
chunk: 'Fragmento', chunk: 'Fragmento',
bulk: 'Em massa', bulk: 'Em massa',
cancel: 'Cancelar', cancel: 'Cancelar',
rerankModel: 'Modelo de reranking', rerankModel: 'Modelo de reranking',
rerankPlaceholder: 'Por favor, selecione', rerankPlaceholder: 'Por favor, selecione',
rerankTip: 'Se deixado vazio, o RAGFlow usará uma combinação de similaridade de palavras-chave ponderada e similaridade de cosseno vetorial ponderada; se um modelo de reranking for selecionado, uma pontuação de reranking ponderada substituirá a similaridade de cosseno vetorial ponderada. Esteja ciente de que usar um modelo de reranking aumentará significativamente o tempo de resposta do sistema.', rerankTip:
'Se deixado vazio, o RAGFlow usará uma combinação de similaridade de palavras-chave ponderada e similaridade de cosseno vetorial ponderada; se um modelo de reranking for selecionado, uma pontuação de reranking ponderada substituirá a similaridade de cosseno vetorial ponderada. Esteja ciente de que usar um modelo de reranking aumentará significativamente o tempo de resposta do sistema.',
topK: 'Top-K', topK: 'Top-K',
topKTip: 'K fragmentos serão alimentados em modelos de reranking.', topKTip: 'K fragmentos serão alimentados em modelos de reranking.',
delimiter: 'Delimitador', delimiter: 'Delimitador',
delimiterTip: 'Um delimitador ou separador pode consistir em um ou vários caracteres especiais. Se for múltiplos caracteres, certifique-se de que estejam entre crases (``). Por exemplo, se você configurar seus delimitadores assim: \n`##`;, seus textos serão separados em quebras de linha, símbolos de hash duplo (##) ou ponto e vírgula.', delimiterTip:
'Um delimitador ou separador pode consistir em um ou vários caracteres especiais. Se for múltiplos caracteres, certifique-se de que estejam entre crases (``). Por exemplo, se você configurar seus delimitadores assim: \n`##`;, seus textos serão separados em quebras de linha, símbolos de hash duplo (##) ou ponto e vírgula.',
html4excel: 'Excel para HTML', html4excel: 'Excel para HTML',
html4excelTip: 'Quando ativado, a planilha será analisada em tabelas HTML, com no máximo 256 linhas por tabela. Caso contrário, será analisada em pares chave-valor por linha.', html4excelTip:
'Quando ativado, a planilha será analisada em tabelas HTML, com no máximo 256 linhas por tabela. Caso contrário, será analisada em pares chave-valor por linha.',
autoKeywords: 'Palavras-chave automáticas', autoKeywords: 'Palavras-chave automáticas',
autoKeywordsTip: 'Extraia automaticamente N palavras-chave para cada fragmento para aumentar sua classificação para consultas que contenham essas palavras-chave. Você pode verificar ou atualizar as palavras-chave adicionadas para um fragmento na lista de fragmentos. Esteja ciente de que tokens extras serão consumidos pelo LLM especificado nas "Configurações do modelo do sistema".', autoKeywordsTip:
'Extraia automaticamente N palavras-chave para cada fragmento para aumentar sua classificação para consultas que contenham essas palavras-chave. Você pode verificar ou atualizar as palavras-chave adicionadas para um fragmento na lista de fragmentos. Esteja ciente de que tokens extras serão consumidos pelo LLM especificado nas "Configurações do modelo do sistema".',
autoQuestions: 'Perguntas automáticas', autoQuestions: 'Perguntas automáticas',
autoQuestionsTip: `Extraia automaticamente N perguntas para cada fragmento para aumentar sua relevância em consultas que contenham essas perguntas. Você pode verificar ou atualizar as perguntas adicionadas a um fragmento na lista de fragmentos. Essa funcionalidade não interromperá o processo de fragmentação em caso de erro, exceto pelo fato de que pode adicionar um resultado vazio ao fragmento original. Esteja ciente de que tokens extras serão consumidos pelo LLM especificado nas 'Configurações do modelo do sistema'.`, autoQuestionsTip: `Extraia automaticamente N perguntas para cada fragmento para aumentar sua relevância em consultas que contenham essas perguntas. Você pode verificar ou atualizar as perguntas adicionadas a um fragmento na lista de fragmentos. Essa funcionalidade não interromperá o processo de fragmentação em caso de erro, exceto pelo fato de que pode adicionar um resultado vazio ao fragmento original. Esteja ciente de que tokens extras serão consumidos pelo LLM especificado nas 'Configurações do modelo do sistema'.`,
redo: 'Deseja limpar os {{chunkNum}} fragmentos existentes?', redo: 'Deseja limpar os {{chunkNum}} fragmentos existentes?',
@ -207,7 +221,8 @@ export default {
upload: 'Enviar', upload: 'Enviar',
english: 'Inglês', english: 'Inglês',
chinese: 'Chinês', chinese: 'Chinês',
embeddingModelPlaceholder: 'Por favor, selecione um modelo de incorporação', embeddingModelPlaceholder:
'Por favor, selecione um modelo de incorporação',
chunkMethodPlaceholder: 'Por favor, selecione um método de fragmentação', chunkMethodPlaceholder: 'Por favor, selecione um método de fragmentação',
save: 'Salvar', save: 'Salvar',
me: 'Somente eu', me: 'Somente eu',
@ -376,7 +391,8 @@ export default {
maxTokens: 'Máximo de tokens', maxTokens: 'Máximo de tokens',
maxTokensMessage: 'O máximo de tokens é obrigatório', maxTokensMessage: 'O máximo de tokens é obrigatório',
maxTokensTip: `Define o comprimento máximo da saída do modelo, medido pelo número de tokens (palavras ou partes de palavras). O padrão é 512. Se desativado, você remove o limite máximo de tokens, permitindo que o modelo determine o número de tokens em suas respostas.`, maxTokensTip: `Define o comprimento máximo da saída do modelo, medido pelo número de tokens (palavras ou partes de palavras). O padrão é 512. Se desativado, você remove o limite máximo de tokens, permitindo que o modelo determine o número de tokens em suas respostas.`,
maxTokensInvalidMessage: 'Por favor, insira um número válido para o máximo de tokens.', maxTokensInvalidMessage:
'Por favor, insira um número válido para o máximo de tokens.',
maxTokensMinMessage: 'O máximo de tokens não pode ser menor que 0.', maxTokensMinMessage: 'O máximo de tokens não pode ser menor que 0.',
quote: 'Mostrar citação', quote: 'Mostrar citação',
quoteTip: 'Exibir ou não o texto original como referência.', quoteTip: 'Exibir ou não o texto original como referência.',
@ -432,7 +448,8 @@ export default {
maxTokens: 'Máximo de Tokens', maxTokens: 'Máximo de Tokens',
maxTokensMessage: 'Máximo de Tokens é obrigatório', maxTokensMessage: 'Máximo de Tokens é obrigatório',
maxTokensTip: `Isso define o comprimento máximo da saída do modelo, medido em número de tokens (palavras ou partes de palavras). O padrão é 512. Se desativado, você remove o limite máximo de tokens, permitindo que o modelo determine o número de tokens em suas respostas.`, maxTokensTip: `Isso define o comprimento máximo da saída do modelo, medido em número de tokens (palavras ou partes de palavras). O padrão é 512. Se desativado, você remove o limite máximo de tokens, permitindo que o modelo determine o número de tokens em suas respostas.`,
maxTokensInvalidMessage: 'Por favor, insira um número válido para Máximo de Tokens.', maxTokensInvalidMessage:
'Por favor, insira um número válido para Máximo de Tokens.',
maxTokensMinMessage: 'O Máximo de Tokens não pode ser menor que 0.', maxTokensMinMessage: 'O Máximo de Tokens não pode ser menor que 0.',
password: 'Senha', password: 'Senha',
passwordDescription: 'Digite sua senha atual para alterá-la.', passwordDescription: 'Digite sua senha atual para alterá-la.',
@ -463,31 +480,41 @@ export default {
newPasswordDescription: 'Sua nova senha deve ter mais de 8 caracteres.', newPasswordDescription: 'Sua nova senha deve ter mais de 8 caracteres.',
confirmPassword: 'Confirmar nova senha', confirmPassword: 'Confirmar nova senha',
confirmPasswordMessage: 'Por favor, confirme sua senha!', confirmPasswordMessage: 'Por favor, confirme sua senha!',
confirmPasswordNonMatchMessage: 'A nova senha que você inseriu não corresponde!', confirmPasswordNonMatchMessage:
'A nova senha que você inseriu não corresponde!',
cancel: 'Cancelar', cancel: 'Cancelar',
addedModels: 'Modelos adicionados', addedModels: 'Modelos adicionados',
modelsToBeAdded: 'Modelos a serem adicionados', modelsToBeAdded: 'Modelos a serem adicionados',
addTheModel: 'Adicionar o modelo', addTheModel: 'Adicionar o modelo',
apiKey: 'Chave da API', apiKey: 'Chave da API',
apiKeyMessage: 'Por favor, insira a chave da API (para modelos implantados localmente, ignore isso).', apiKeyMessage:
apiKeyTip: 'A chave da API pode ser obtida registrando-se no fornecedor correspondente do LLM.', 'Por favor, insira a chave da API (para modelos implantados localmente, ignore isso).',
apiKeyTip:
'A chave da API pode ser obtida registrando-se no fornecedor correspondente do LLM.',
showMoreModels: 'Mostrar mais modelos', showMoreModels: 'Mostrar mais modelos',
baseUrl: 'URL Base', baseUrl: 'URL Base',
baseUrlTip: 'Se sua chave da API for do OpenAI, ignore isso. Outros provedores intermediários fornecerão essa URL base com a chave da API.', baseUrlTip:
'Se sua chave da API for do OpenAI, ignore isso. Outros provedores intermediários fornecerão essa URL base com a chave da API.',
modify: 'Modificar', modify: 'Modificar',
systemModelSettings: 'Configurações do Modelo do Sistema', systemModelSettings: 'Configurações do Modelo do Sistema',
chatModel: 'Modelo de chat', chatModel: 'Modelo de chat',
chatModelTip: 'O modelo LLM padrão que todos os novos bancos de conhecimento usarão.', chatModelTip:
'O modelo LLM padrão que todos os novos bancos de conhecimento usarão.',
embeddingModel: 'Modelo de incorporação', embeddingModel: 'Modelo de incorporação',
embeddingModelTip: 'O modelo de incorporação padrão que todos os novos bancos de conhecimento usarão.', embeddingModelTip:
'O modelo de incorporação padrão que todos os novos bancos de conhecimento usarão.',
img2txtModel: 'Modelo Img2Txt', img2txtModel: 'Modelo Img2Txt',
img2txtModelTip: 'O modelo multimodal padrão que todos os novos bancos de conhecimento usarão. Ele pode descrever uma imagem ou vídeo.', img2txtModelTip:
'O modelo multimodal padrão que todos os novos bancos de conhecimento usarão. Ele pode descrever uma imagem ou vídeo.',
sequence2txtModel: 'Modelo Sequence2Txt', sequence2txtModel: 'Modelo Sequence2Txt',
sequence2txtModelTip: 'O modelo ASR padrão que todos os novos bancos de conhecimento usarão. Use este modelo para converter vozes em texto correspondente.', sequence2txtModelTip:
'O modelo ASR padrão que todos os novos bancos de conhecimento usarão. Use este modelo para converter vozes em texto correspondente.',
rerankModel: 'Modelo de Reordenação', rerankModel: 'Modelo de Reordenação',
rerankModelTip: 'O modelo de reordenação padrão usado para reordenar os fragmentos recuperados pelas perguntas dos usuários.', rerankModelTip:
'O modelo de reordenação padrão usado para reordenar os fragmentos recuperados pelas perguntas dos usuários.',
ttsModel: 'Modelo TTS', ttsModel: 'Modelo TTS',
ttsModelTip: 'O modelo TTS padrão será usado para gerar fala durante as conversas sob demanda.', ttsModelTip:
'O modelo TTS padrão será usado para gerar fala durante as conversas sob demanda.',
workspace: 'Área de trabalho', workspace: 'Área de trabalho',
upgrade: 'Atualizar', upgrade: 'Atualizar',
addLlmTitle: 'Adicionar LLM', addLlmTitle: 'Adicionar LLM',
@ -544,11 +571,13 @@ export default {
yiyanAKMessage: 'Por favor, insira sua chave da API', yiyanAKMessage: 'Por favor, insira sua chave da API',
addyiyanSK: 'Chave secreta yiyan', addyiyanSK: 'Chave secreta yiyan',
yiyanSKMessage: 'Por favor, insira sua chave secreta', yiyanSKMessage: 'Por favor, insira sua chave secreta',
FishAudioModelNameMessage: 'Por favor, dê um nome ao seu modelo de síntese de voz', FishAudioModelNameMessage:
'Por favor, dê um nome ao seu modelo de síntese de voz',
addFishAudioAK: 'Chave da API Fish Audio', addFishAudioAK: 'Chave da API Fish Audio',
addFishAudioAKMessage: 'Por favor, insira sua chave da API', addFishAudioAKMessage: 'Por favor, insira sua chave da API',
addFishAudioRefID: 'ID de referência do FishAudio', addFishAudioRefID: 'ID de referência do FishAudio',
addFishAudioRefIDMessage: 'Por favor, insira o ID de referência (deixe em branco para usar o modelo padrão).', addFishAudioRefIDMessage:
'Por favor, insira o ID de referência (deixe em branco para usar o modelo padrão).',
modelProvidersWarn: `Por favor, adicione tanto o modelo de incorporação quanto o LLM em <b>Configurações > Provedores de Modelo</b> primeiro. Depois, defina-os nas 'Configurações do modelo do sistema'.`, modelProvidersWarn: `Por favor, adicione tanto o modelo de incorporação quanto o LLM em <b>Configurações > Provedores de Modelo</b> primeiro. Depois, defina-os nas 'Configurações do modelo do sistema'.`,
apiVersion: 'Versão da API', apiVersion: 'Versão da API',
apiVersionMessage: 'Por favor, insira a versão da API', apiVersionMessage: 'Por favor, insira a versão da API',
@ -610,7 +639,8 @@ export default {
file: 'Arquivo', file: 'Arquivo',
uploadFile: 'Carregar Arquivo', uploadFile: 'Carregar Arquivo',
directory: 'Diretório', directory: 'Diretório',
uploadTitle: 'Clique ou arraste o arquivo para esta área para fazer o upload', uploadTitle:
'Clique ou arraste o arquivo para esta área para fazer o upload',
uploadDescription: uploadDescription:
'Suporta upload de um único arquivo ou múltiplos arquivos. É estritamente proibido o upload de dados da empresa ou outros arquivos proibidos.', 'Suporta upload de um único arquivo ou múltiplos arquivos. É estritamente proibido o upload de dados da empresa ou outros arquivos proibidos.',
local: 'Uploads locais', local: 'Uploads locais',
@ -785,17 +815,17 @@ export default {
cht: 'Chinês tradicional', cht: 'Chinês tradicional',
vie: 'Vietnamita', vie: 'Vietnamita',
}, },
qWeather: 'QWeather', qWeather: 'QWeather',
qWeatherDescription: qWeatherDescription:
'Um componente que recupera informações meteorológicas, como temperatura e qualidade do ar, de https://www.qweather.com.', 'Um componente que recupera informações meteorológicas, como temperatura e qualidade do ar, de https://www.qweather.com.',
lang: 'Idioma', lang: 'Idioma',
type: 'Tipo', type: 'Tipo',
webApiKey: 'Chave de API da Web', webApiKey: 'Chave de API da Web',
userType: 'Tipo de usuário', userType: 'Tipo de usuário',
timePeriod: 'Período de tempo', timePeriod: 'Período de tempo',
qWeatherLangOptions: { qWeatherLangOptions: {
zh: 'Chinês simplificado', zh: 'Chinês simplificado',
'zh-hant': 'Chinês tradicional', 'zh-hant': 'Chinês tradicional',
@ -829,7 +859,7 @@ export default {
is: 'Islandês', is: 'Islandês',
nb: 'Norueguês', nb: 'Norueguês',
}, },
qWeatherTypeOptions: { qWeatherTypeOptions: {
weather: 'Previsão do tempo', weather: 'Previsão do tempo',
indices: 'Índice de qualidade de vida relacionado ao clima', indices: 'Índice de qualidade de vida relacionado ao clima',
@ -839,7 +869,7 @@ export default {
free: 'Assinante gratuito', free: 'Assinante gratuito',
paid: 'Assinante pago', paid: 'Assinante pago',
}, },
qWeatherTimePeriodOptions: { qWeatherTimePeriodOptions: {
now: 'Agora', now: 'Agora',
'3d': '3 dias', '3d': '3 dias',
@ -848,12 +878,12 @@ export default {
'15d': '12 dias', '15d': '12 dias',
'30d': '30 dias', '30d': '30 dias',
}, },
publish: 'API', publish: 'API',
exeSQL: 'ExeSQL', exeSQL: 'ExeSQL',
exeSQLDescription: exeSQLDescription:
'Um componente que executa consultas SQL em um banco de dados relacional, suportando consultas de MySQL, PostgreSQL ou MariaDB.', 'Um componente que executa consultas SQL em um banco de dados relacional, suportando consultas de MySQL, PostgreSQL ou MariaDB.',
dbType: 'Tipo de banco de dados', dbType: 'Tipo de banco de dados',
database: 'Banco de dados', database: 'Banco de dados',
username: 'Nome de usuário', username: 'Nome de usuário',
@ -876,12 +906,12 @@ export default {
empty: 'Vazio', empty: 'Vazio',
notEmpty: 'Não vazio', notEmpty: 'Não vazio',
}, },
switchLogicOperatorOptions: { switchLogicOperatorOptions: {
and: 'E', and: 'E',
or: 'Ou', or: 'Ou',
}, },
operator: 'Operador', operator: 'Operador',
value: 'Valor', value: 'Valor',
useTemplate: 'Usar este modelo', useTemplate: 'Usar este modelo',
@ -889,7 +919,7 @@ export default {
queryType: 'Tipo de consulta', queryType: 'Tipo de consulta',
wenCaiDescription: wenCaiDescription:
'Um componente que obtém informações financeiras, incluindo preços de ações e notícias de financiamento, de uma ampla variedade de sites financeiros.', 'Um componente que obtém informações financeiras, incluindo preços de ações e notícias de financiamento, de uma ampla variedade de sites financeiros.',
wenCaiQueryTypeOptions: { wenCaiQueryTypeOptions: {
stock: 'Ação', stock: 'Ação',
zhishu: 'Índice', zhishu: 'Índice',
@ -903,26 +933,26 @@ export default {
lccp: 'Financiamento', lccp: 'Financiamento',
foreign_exchange: 'Câmbio', foreign_exchange: 'Câmbio',
}, },
akShare: 'AkShare', akShare: 'AkShare',
akShareDescription: akShareDescription:
'Um componente que obtém notícias sobre ações de https://www.eastmoney.com/.', 'Um componente que obtém notícias sobre ações de https://www.eastmoney.com/.',
yahooFinance: 'YahooFinance', yahooFinance: 'YahooFinance',
yahooFinanceDescription: yahooFinanceDescription:
'Um componente que consulta informações sobre uma empresa de capital aberto usando seu símbolo de ticker.', 'Um componente que consulta informações sobre uma empresa de capital aberto usando seu símbolo de ticker.',
crawler: 'Rastreador Web', crawler: 'Rastreador Web',
crawlerDescription: crawlerDescription:
'Um componente que rastreia o código-fonte HTML de um URL especificado.', 'Um componente que rastreia o código-fonte HTML de um URL especificado.',
proxy: 'Proxy', proxy: 'Proxy',
crawlerResultOptions: { crawlerResultOptions: {
html: 'Html', html: 'Html',
markdown: 'Markdown', markdown: 'Markdown',
content: 'Conteúdo', content: 'Conteúdo',
}, },
extractType: 'Tipo de extração', extractType: 'Tipo de extração',
info: 'Informações', info: 'Informações',
history: 'Histórico', history: 'Histórico',
@ -932,7 +962,7 @@ export default {
jin10: 'Jin10', jin10: 'Jin10',
jin10Description: jin10Description:
'Um componente que obtém informações financeiras da Plataforma Aberta Jin10, incluindo notícias, calendários, cotações e referências.', 'Um componente que obtém informações financeiras da Plataforma Aberta Jin10, incluindo notícias, calendários, cotações e referências.',
flashType: 'Tipo de Flash', flashType: 'Tipo de Flash',
filter: 'Filtro', filter: 'Filtro',
contain: 'Contém', contain: 'Contém',
@ -946,7 +976,7 @@ export default {
symbols: 'Cotações', symbols: 'Cotações',
news: 'Referência', news: 'Referência',
}, },
jin10FlashTypeOptions: { jin10FlashTypeOptions: {
'1': 'Notícias do Mercado', '1': 'Notícias do Mercado',
'2': 'Notícias de Futuros', '2': 'Notícias de Futuros',
@ -954,27 +984,27 @@ export default {
'4': 'Notícias A-Share', '4': 'Notícias A-Share',
'5': 'Notícias de Commodities & Forex', '5': 'Notícias de Commodities & Forex',
}, },
jin10CalendarTypeOptions: { jin10CalendarTypeOptions: {
cj: 'Calendário de dados macroeconômicos', cj: 'Calendário de dados macroeconômicos',
qh: 'Calendário de Futuros', qh: 'Calendário de Futuros',
hk: 'Calendário do mercado de ações de Hong Kong', hk: 'Calendário do mercado de ações de Hong Kong',
us: 'Calendário do mercado de ações dos EUA', us: 'Calendário do mercado de ações dos EUA',
}, },
jin10CalendarDatashapeOptions: { jin10CalendarDatashapeOptions: {
data: 'Dados', data: 'Dados',
event: 'Evento', event: 'Evento',
holiday: 'Feriado', holiday: 'Feriado',
}, },
jin10SymbolsTypeOptions: { jin10SymbolsTypeOptions: {
GOODS: 'Cotações de commodities', GOODS: 'Cotações de commodities',
FOREX: 'Cotações de Forex', FOREX: 'Cotações de Forex',
FUTURE: 'Cotações do mercado internacional', FUTURE: 'Cotações do mercado internacional',
CRYPTO: 'Cotações de criptomoedas', CRYPTO: 'Cotações de criptomoedas',
}, },
jin10SymbolsDatatypeOptions: { jin10SymbolsDatatypeOptions: {
symbols: 'Lista de commodities', symbols: 'Lista de commodities',
quotes: 'Últimas cotações do mercado', quotes: 'Últimas cotações do mercado',
@ -1096,4 +1126,3 @@ export default {
}, },
}, },
}; };

View File

@ -15,7 +15,7 @@ export default {
edit: '編輯', edit: '編輯',
upload: '上傳', upload: '上傳',
english: '英語', english: '英語',
portugeseBr: '葡萄牙語 (巴西)', portugueseBr: '葡萄牙語 (巴西)',
chinese: '簡體中文', chinese: '簡體中文',
traditionalChinese: '繁體中文', traditionalChinese: '繁體中文',
language: '語言', language: '語言',

View File

@ -15,7 +15,7 @@ export default {
edit: '编辑', edit: '编辑',
upload: '上传', upload: '上传',
english: '英文', english: '英文',
portugeseBr: '葡萄牙语 (巴西)', portugueseBr: '葡萄牙语 (巴西)',
chinese: '简体中文', chinese: '简体中文',
traditionalChinese: '繁体中文', traditionalChinese: '繁体中文',
language: '语言', language: '语言',