diff --git a/src/common/constants.js b/src/common/constants.js
index 005a84b2d..8fe00cb37 100644
--- a/src/common/constants.js
+++ b/src/common/constants.js
@@ -2,7 +2,8 @@ import packageJson from '../../package.json';
export const LANGUAGES = [
{locale: 'en', name: 'English'},
- {locale: 'es', name: "Español"}
+ {locale: 'es', name: "Español"},
+ {locale: 'pt-BR', name: "Português (Brasil)"}
]
diff --git a/src/components/common/Events.jsx b/src/components/common/Events.jsx
index 547d3dc83..06fd09452 100644
--- a/src/components/common/Events.jsx
+++ b/src/components/common/Events.jsx
@@ -18,6 +18,7 @@ import Link from '../common/Link'
import UserIcon from '../users/UserIcon'
const EventDescription = ({ event, isFirst, isLast, isJoined }) => {
+ const { t } = useTranslation()
const { event_type, description, referenced_object} = event;
const getDescription = () => {
let eventDescription = description
@@ -25,7 +26,9 @@ const EventDescription = ({ event, isFirst, isLast, isJoined }) => {
eventDescription += ' ' + getSiteTitle()
let rel;
if(event_type && !isEmpty(referenced_object)) {
- eventDescription = `${event_type} ${referenced_object.type} `
+ const translatedEventType = t(`common.event_types.${event_type.toLowerCase()}`, { defaultValue: event_type });
+ const translatedObjectType = referenced_object.type ? t(`common.event_object_types.${referenced_object.type}`, { defaultValue: referenced_object.type }) : '';
+ eventDescription = `${translatedEventType} ${translatedObjectType} `
if(['Source Version', 'Collection Version'].includes(referenced_object.type)) {
rel = `${referenced_object.short_code}/${referenced_object.id}`
} else
@@ -105,7 +108,7 @@ const Events = ({ user, events, onLoadMore, showAvatar, maxHeight, dashboard })
showAvatar &&
}
- {`${isSelf ? t('user.your') : (user.name + "'s")} ${t('user.recent_activity')}`}
+ {isSelf ? t('user.own_recent_activity') : t('user.recent_activity_of', {name: user.name})}
{
const { t } = useTranslation()
const getTitle = (event, object, includeSubtitle) => {
let title = object?.id || object?.username || object?.name
- let subTitle = event?.event_type?.toLowerCase()
- if(event?.referenced_object?.type === 'Organization')
- subTitle += ` ${t('common.an')} ${event.referenced_object?.type?.toLowerCase()}`
- else if(event?.referenced_object?.type)
- subTitle += ` ${t('common.a')} ${event.referenced_object?.type?.toLowerCase()}`
+ const eventType = event?.event_type?.toLowerCase()
+ const translatedEventType = t(`common.event_types.${eventType}`, { defaultValue: eventType });
+ let subTitle
+ if(event?.referenced_object?.type)
+ subTitle = t(`common.event_object_types.${event.referenced_object.type}`, { defaultValue: event.referenced_object.type.toLowerCase() })
else
- subTitle += ` ${getSiteTitle()}`
+ subTitle = getSiteTitle()
return (
@@ -40,7 +40,7 @@ const EventCard = ({ event, highlight }) => {
{
includeSubtitle &&
- {subTitle}
+ {translatedEventType} {subTitle}
}
diff --git a/src/components/dashboard/EventsButtonGroup.jsx b/src/components/dashboard/EventsButtonGroup.jsx
index 78dc98905..3c46222b1 100644
--- a/src/components/dashboard/EventsButtonGroup.jsx
+++ b/src/components/dashboard/EventsButtonGroup.jsx
@@ -1,6 +1,5 @@
import React from 'react'
import { useTranslation } from 'react-i18next';
-import startCase from 'lodash/startCase'
import DoneIcon from '@mui/icons-material/Done';
import ButtonGroup from '@mui/material/ButtonGroup'
import Button from '@mui/material/Button'
@@ -29,7 +28,7 @@ const EventsButtonGroup = ({ onClick, selected }) => {
onClick('all')} />
onClick('following')} />
- onClick('orgs')} />
+ onClick('orgs')} />
)
}
diff --git a/src/i18n/config.js b/src/i18n/config.js
index d84ca3348..6fc2b425c 100644
--- a/src/i18n/config.js
+++ b/src/i18n/config.js
@@ -3,10 +3,34 @@ import { initReactI18next } from 'react-i18next';
import en from './locales/en/translations.json'
import es from './locales/es/translations.json'
import zh from './locales/zh/translations.json'
+import ptBR from './locales/pt-BR/translations.json'
+
+const LANGUAGE_STORAGE_KEY = 'ocl.language'
+const SUPPORTED_LANGUAGES = ['en', 'es', 'zh', 'pt-BR']
+
+const getInitialLanguage = () => {
+ if(typeof window === 'undefined')
+ return 'en'
+
+ try {
+ const storedLanguage = window.localStorage.getItem(LANGUAGE_STORAGE_KEY)
+ return SUPPORTED_LANGUAGES.includes(storedLanguage) ? storedLanguage : 'en'
+ } catch(_) {
+ return 'en'
+ }
+}
+
+const persistLanguage = language => {
+ try {
+ window.localStorage.setItem(LANGUAGE_STORAGE_KEY, language)
+ } catch(_) {
+ // Keep i18n usable when browser storage is unavailable.
+ }
+}
i18n.use(initReactI18next).init({
fallbackLng: 'en',
- lng: 'en',
+ lng: getInitialLanguage(),
resources: {
en: {
translations: en
@@ -16,12 +40,16 @@ i18n.use(initReactI18next).init({
},
zh: {
translations: zh
+ },
+ 'pt-BR': {
+ translations: ptBR
}
},
ns: ['translations'],
defaultNS: 'translations'
});
-i18n.languages = ['en', 'es', 'zh'];
+i18n.languages = SUPPORTED_LANGUAGES;
+i18n.on('languageChanged', persistLanguage)
export default i18n;
diff --git a/src/i18n/locales/en/translations.json b/src/i18n/locales/en/translations.json
index ec08b2d7e..039177b61 100644
--- a/src/i18n/locales/en/translations.json
+++ b/src/i18n/locales/en/translations.json
@@ -48,6 +48,36 @@
"create_from_ocl_url": "Create from OCL URL",
"created_on": "Created On",
"created_by": "Created By",
+ "event_types": {
+ "created": "Created",
+ "updated": "Updated",
+ "released": "Released",
+ "deleted": "Deleted",
+ "followed": "Followed",
+ "unfollowed": "Unfollowed",
+ "joined": "Joined",
+ "source": "Source"
+ },
+ "object_types": {
+ "Source": "Source",
+ "Collection": "Collection",
+ "Source Version": "Source Version",
+ "Collection Version": "Collection Version",
+ "Organization": "Organization",
+ "Concept": "Concept",
+ "Mapping": "Mapping",
+ "Repository": "Repository"
+ },
+ "event_object_types": {
+ "Source": "a Source",
+ "Collection": "a Collection",
+ "Source Version": "a Source Version",
+ "Collection Version": "a Collection Version",
+ "Organization": "an Organization",
+ "Concept": "a Concept",
+ "Mapping": "a Mapping",
+ "Repository": "a Repository"
+ },
"version": "Version",
"versions": "Versions",
"summary": "Summary",
@@ -891,7 +921,9 @@
"about_me": "About me",
"about_me_description": "Create an introduction for visiting your profile (200 characters).",
"user_has_not_created_public_repos_suffix": "has not created any public repositories",
- "recent_activity": "recent activity"
+ "recent_activity": "recent activity",
+ "own_recent_activity": "Your recent activity",
+ "recent_activity_of": "{{name}}'s recent activity"
},
"search": {
"filters": "Filters",
diff --git a/src/i18n/locales/es/translations.json b/src/i18n/locales/es/translations.json
index 4a0eef83a..d15152bba 100644
--- a/src/i18n/locales/es/translations.json
+++ b/src/i18n/locales/es/translations.json
@@ -467,7 +467,9 @@
"location": "Ubicación",
"website": "Sitio web",
"last_login": "Último inicio de sesión",
- "name_and_description": "Nombre y descripción"
+ "name_and_description": "Nombre y descripción",
+ "own_recent_activity": "Tu actividad reciente",
+ "recent_activity_of": "Actividad reciente de {{name}}"
},
"search": {
"filters": "Filtros",
diff --git a/src/i18n/locales/pt-BR/translations.json b/src/i18n/locales/pt-BR/translations.json
new file mode 100644
index 000000000..434570a71
--- /dev/null
+++ b/src/i18n/locales/pt-BR/translations.json
@@ -0,0 +1,1173 @@
+{
+ "common": {
+ "error_details": "Detalhes do erro",
+ "or": "ou",
+ "of": "de",
+ "language": "Idioma",
+ "languages": "Idiomas",
+ "preferred_language": "Idioma preferido",
+ "help_and_documentation": "Ajuda e documentação",
+ "community_website": "Site da comunidade OCL",
+ "chat": "Chat do OCL",
+ "clear": "Limpar",
+ "apply": "Aplicar",
+ "exclude": "Excluir",
+ "include": "Incluir",
+ "excluded": "excluído",
+ "updated_on": "Última atualização",
+ "last_updated_on": "Última atualização em",
+ "last_updated": "Última atualização",
+ "updated_by": "Atualizado por",
+ "owner": "Proprietário",
+ "show": "Mostrar",
+ "hide": "Ocultar",
+ "more": "Mais",
+ "less": "Menos",
+ "read_more": "Ler mais",
+ "read_less": "Ler menos",
+ "refresh": "atualizar",
+ "reset": "Redefinir",
+ "go_to": "ir para",
+ "go_to_your": "ir para seu ",
+ "go_back_or_to_your_dashboard": "Ir <0/> ou para seu <1/>.",
+ "for_a_new_account": "para uma nova conta",
+ "back": "voltar",
+ "retired": "Aposentado",
+ "retire": "Aposentar",
+ "unretire": "Reativar",
+ "id": "ID",
+ "uid": "UID",
+ "name": "Nome",
+ "full_name": "Nome completo",
+ "description": "Descrição",
+ "true": "Verdadeiro",
+ "false": "Falso",
+ "update": "Atualizar",
+ "create": "Criar",
+ "created": "Criado",
+ "create_from_ocl_url": "Criar a partir de URL do OCL",
+ "created_on": "Criado em",
+ "created_by": "Criado por",
+ "event_types": {
+ "created": "Criou",
+ "updated": "Atualizou",
+ "released": "Publicou",
+ "deleted": "Excluiu",
+ "followed": "Passou a seguir",
+ "unfollowed": "Deixou de seguir",
+ "joined": "Entrou",
+ "source": "Source"
+ },
+ "object_types": {
+ "Source": "Source",
+ "Collection": "Coleção",
+ "Source Version": "Versão do Source",
+ "Collection Version": "Versão da Coleção",
+ "Organization": "Organização",
+ "Concept": "Conceito",
+ "Mapping": "Mapeamento",
+ "Repository": "Repositório"
+ },
+ "event_object_types": {
+ "Source": "um Source",
+ "Collection": "uma Coleção",
+ "Source Version": "uma Versão do Source",
+ "Collection Version": "uma Versão da Coleção",
+ "Organization": "uma Organização",
+ "Concept": "um Conceito",
+ "Mapping": "um Mapeamento",
+ "Repository": "um Repositório"
+ },
+ "version": "Versão",
+ "versions": "Versões",
+ "summary": "Resumo",
+ "about": "Sobre",
+ "about_page": "Página Sobre",
+ "view_all_attributes": "Ver todos os atributos",
+ "view_attributes": "Ver atributos",
+ "all": "Todos",
+ "actions": "Ações",
+ "selected": "selecionados",
+ "eligible": "elegíveis",
+ "skipped": "ignorados",
+ "status": "Status",
+ "metadata": "Metadados",
+ "details": "Detalhes",
+ "copied_to_clipboard": "Copiado para a área de transferência",
+ "navigate": "Navegar",
+ "select": "Selecionar",
+ "search": "Buscar",
+ "match": "Correspondência",
+ "content_summary": "Resumo do conteúdo",
+ "for": "para",
+ "please": "Por favor",
+ "save": "Salvar",
+ "manage": "Gerenciar",
+ "overview": "Visão geral",
+ "quick_links": "Links rápidos",
+ "resolve": "Resolver",
+ "result": "Resultado",
+ "settings": "Configurações",
+ "add": "Adicionar",
+ "remove": "Remover",
+ "cancel": "Cancelar",
+ "upload": "Carregar",
+ "logo": "Logotipo",
+ "custom_attributes": "Atributos personalizados",
+ "public": "Público",
+ "private": "Privado",
+ "close": "Fechar",
+ "compare": "Comparar",
+ "something_went_wrong": "Algo deu errado",
+ "no_results": "Nenhum resultado",
+ "json_helper_text": "Formato JSON ex.: {\"chave\": \"valor\"}",
+ "format_json": "Formatar JSON",
+ "content": "Conteúdo",
+ "short_code": "Código curto",
+ "attribute": "Atributo",
+ "attributes": "Atributos",
+ "value": "Valor",
+ "by": "por",
+ "statistics": "Estatísticas",
+ "subscribed": "Inscrito",
+ "following": "Seguindo",
+ "follow": "Seguir",
+ "unfollow": "Deixar de seguir",
+ "a": "um",
+ "an": "um",
+ "with": "com",
+ "to_concepts_in": "para conceitos em",
+ "json": "JSON",
+ "draft": "Rascunho",
+ "released": "Publicado",
+ "highlights": "Destaques",
+ "click_to_copy": "Clique para copiar",
+ "submit": "Enviar",
+ "external_id": "ID externo",
+ "access_level": "Nível de acesso",
+ "history": "Histórico",
+ "from": "De",
+ "target": "Destino",
+ "properties": "Propriedades",
+ "view_raw": "Ver bruto",
+ "custom": "Personalizado",
+ "delete_label": "Excluir",
+ "edit": "Editar",
+ "visibility": "Visibilidade",
+ "website": "Site",
+ "your_url_will_be": "Sua URL será",
+ "proceed": "Prosseguir",
+ "loading": "Carregando...",
+ "none": "Nenhum",
+ "default": "Padrão",
+ "processing": "Processando",
+ "processed": "Processado",
+ "load_more": "Carregar mais",
+ "generate_with_ai": "Gerar com IA",
+ "release": "Publicar",
+ "unrelease": "Despublicar",
+ "reason": "Motivo",
+ "success_update": "Atualizado com sucesso",
+ "generic_error": "Algo deu errado.",
+ "company": "Empresa",
+ "location": "Localização",
+ "hierarchy": "Hierarquia",
+ "change": "Alteração",
+ "type_of_change": "Tipo de alteração",
+ "toggle_attributes": "Alternar atributos",
+ "delete": {
+ "warning": "Coisas ruins inesperadas acontecerão se você não ler isto!",
+ "title": "Excluir {{resourceType}}: {{resourceId}}",
+ "message": "Esta ação <0>não pode0> ser desfeita! Isso excluirá o {{resourceType}} inteiro e todos os seus {{relationship}} {{associationsLabel}} (se houver).",
+ "confirmation_title": "Tem certeza de que deseja excluir permanentemente este {{resourceType}}?",
+ "confirmation_message": "Digite <0>{{resourceId}}0> para confirmar.",
+ "confirmation_button_label": "Entendo as consequências, excluir este {{resourceType}}"
+ },
+ "checking_auth": "Verificando autenticação...",
+ "using_ocl_semantic_search": "usando Busca Semântica do OCL",
+ "run_match": "Executar $match usando Busca Semântica do OCL",
+ "view_resource_version": "Ver versão do recurso",
+ "copy_api_url": "Copiar URL da API",
+ "api_url": "URL da API",
+ "copy_standard_checksum": "Copiar checksum padrão",
+ "copy_smart_checksum": "Copiar checksum inteligente",
+ "committed": "confirmado",
+ "results": "Resultados",
+ "suggested": "Sugeridos",
+ "rest": "Restante",
+ "click_here": "clique aqui",
+ "classic_termbrowser": "Ver no TBv2",
+ "back_to_classic_termbrowser": "Voltar para o TermBrowser clássico",
+ "already_exists": "Já existe",
+ "comment": "Comentário",
+ "update_comment": "Comentário de atualização",
+ "undo": "Desfazer",
+ "advanced": "Avançado",
+ "type_to_search": "Digite para buscar"
+ },
+ "errors": {
+ "404": "Desculpe, sua página não pôde ser encontrada.",
+ "401": "Login é necessário",
+ "403": "Acesso a esta página não é autorizado",
+ "mandatory_field": "Este campo não pode ficar em branco",
+ "already_queued": "Já na fila",
+ "invalid_json": "Por favor, insira JSON válido",
+ "generic": "Algo falhou, por favor tente novamente mais tarde.",
+ "network_error": "Erro de rede",
+ "concept_404": "Desculpe, este conceito não pôde ser encontrado.",
+ "mapping_404": "Desculpe, este mapeamento não pôde ser encontrado.",
+ "reference_404": "Desculpe, esta referência não pôde ser encontrada."
+ },
+ "success": {
+ "queued": "Enfileirado com sucesso"
+ },
+ "dashboard": {
+ "name": "Painel",
+ "my": "Meu Painel",
+ "welcome_line": "Bem-vindo ao OCL.",
+ "take_a_tour": "Ver notas de versão e fazer um tour",
+ "hello": "Olá",
+ "create_repository": "Criar Repositório",
+ "anonymous_heading": "O que há de novo?",
+ "community_blog": "Blog da Comunidade",
+ "events_scope_sign_in": "Você precisa estar conectado para ver conteúdo de publicadores que segue",
+ "no_events": "Não há atualizações para mostrar ainda."
+ },
+ "bookmarks": {
+ "name": "Favoritos",
+ "pinned": "Fixados",
+ "pinned_repos": "Repositórios fixados",
+ "pin": "Fixar",
+ "unpin": "Remover fixação",
+ "max_pins_reached": "Máximo de 4 itens podem ser fixados"
+ },
+ "auth": {
+ "sign_in": "Entrar",
+ "sign_out": "Sair",
+ "register": "Cadastrar",
+ "signing_in": "Entrando...",
+ "sign_in_success": "Entrada realizada com sucesso.",
+ "sign_in_error": "Não foi possível entrar no momento.",
+ "email_verified_sign_in": "Seu e-mail foi verificado. Entre para continuar.",
+ "sign_in_to_continue": "Entre para continuar.",
+ "update_password": "Atualizar senha",
+ "session_expired": "Sua sessão expirou. Faça login para continuar."
+ },
+ "custom_attributes": {
+ "label": "Atributos personalizados",
+ "key": "Nome do atributo",
+ "value": "Valor do atributo",
+ "add": "Adicionar um Atributo Personalizado"
+ },
+ "concept": {
+ "concept": "Conceito",
+ "concepts": "Conceitos",
+ "retired_concepts": "Conceitos Aposentados",
+ "display_name": "Nome de exibição",
+ "concept_class": "Classe do Conceito",
+ "datatype": "Tipo de Dado",
+ "datatypes": "Tipos de Dado",
+ "name_and_synonyms": "Nome e sinônimos",
+ "descriptions": "Descrições",
+ "copied_name": "Nome do conceito e URL copiados para a área de transferência",
+ "copied_description": "Descrição do conceito e URL copiados para a área de transferência",
+ "associations": "Associações",
+ "namespace": "Namespace",
+ "namespace_associations": "Associações de Namespace",
+ "concept_classes": "Classes de Conceito",
+ "name_type": "Tipo de Nome",
+ "name_types": "Tipos de Nome",
+ "form": {
+ "id": "ID do Conceito",
+ "external_id": "ID Externo",
+ "concept_class": "Classe do Conceito",
+ "datatype": "Tipo de dado",
+ "datatype_metadata": {
+ "numeric_header": "Detalhes numéricos",
+ "text_header": "Detalhes de texto",
+ "units": "Unidades de medida",
+ "allow_decimal": "Permitir decimais",
+ "low_absolute": "Mínimo absoluto",
+ "hi_absolute": "Máximo absoluto",
+ "low_critical": "Crítico baixo",
+ "hi_critical": "Crítico alto",
+ "low_normal": "Normal baixo",
+ "hi_normal": "Normal alto",
+ "text_format": "Formato de texto",
+ "plain": "Texto simples",
+ "structured": "Estruturado (ex.: JSON)"
+ },
+ "locale": "Localidade",
+ "name": "Nome",
+ "description": "Descrição",
+ "type": "Tipo",
+ "locale_preferred": "Preferido",
+ "id_auto_assign": "ID do conceito será atribuído automaticamente",
+ "id_auto_assign_override": "para substituir com entrada manual",
+ "concept_details": {
+ "header": "Detalhes do conceito"
+ },
+ "names": {
+ "header": "Nome e sinônimos"
+ },
+ "descriptions": {
+ "header": "Descrições"
+ },
+ "parent_concepts_header": "Conceitos pai",
+ "parent_concepts": "Conceitos Pai",
+ "parent_concepts_placeholder": "Buscar conceitos neste Source",
+ "parent_concepts_help": "Conceitos sob os quais este conceito se situa na hierarquia. Uma URL completa de conceito também pode ser colada."
+ },
+ "edit_concept": "Editar Conceito",
+ "ai_assistant_not_configured": "Assistente de IA não está configurado para este ambiente.",
+ "try_again_in_a_moment": "Tente novamente em um momento.",
+ "make_change_before_generating": "Faça uma alteração no conceito antes de gerar um comentário.",
+ "generate_comment_aria": "Gerar comentário com IA",
+ "select_two_versions_to_compare": "Selecione 2 versões para comparar",
+ "success_create": "Conceito criado com sucesso",
+ "success_update": "Conceito atualizado com sucesso",
+ "error_create": "Não foi possível criar o conceito",
+ "error_update": "Não foi possível atualizar o conceito",
+ "view_in_source": "Ver conceito em seu Source"
+ },
+ "mapping": {
+ "mapping": "Mapeamento",
+ "mappings": "Mapeamentos",
+ "same_as_mappings": "Mapeamentos (SAME-AS)",
+ "retired_mappings": "Mapeamentos Aposentados",
+ "fromConcept": "Conceito de origem",
+ "toConcept": "Conceito de destino",
+ "fromConceptName": "Nome do conceito de origem",
+ "toConceptName": "Nome do conceito de destino",
+ "target_source": "Source de destino",
+ "type": "Tipo",
+ "map_types": "Tipos de Mapeamento",
+ "map_type": "Tipo de mapeamento",
+ "from_concept_sources": "Sources do Conceito de Origem",
+ "to_concept_sources": "Sources do Conceito de Destino",
+ "relationship": "Relacionamento",
+ "code": "Código",
+ "inverse_mappings": "Mapeamentos Inversos",
+ "self_mappings": "Mapeamentos Próprios",
+ "direct_mappings": "Mapeamentos Diretos",
+ "from_concept_not_defined": "Conceito de origem não está definido no OCL",
+ "from_concept_defined": "Conceito de origem está definido no OCL",
+ "to_concept_not_defined": "Conceito de destino não está definido no OCL",
+ "to_concept_defined": "Conceito de destino está definido no OCL",
+ "sort_weight": "Peso de Ordenação",
+ "fromAndTargetSource": "Origem e Source de destino",
+ "edit_mapping": "Editar Mapeamento",
+ "from_source_url": "URL do Source de Origem",
+ "from_source_version": "Versão do Source de Origem",
+ "from_concept_url": "URL do Conceito de Origem",
+ "from_concept_name": "Nome do Conceito de Origem",
+ "from_concept_code": "Código do Conceito de Origem",
+ "to_source_url": "URL do Source de Destino",
+ "to_source_version": "Versão do Source de Destino",
+ "from_source": "Source de Origem",
+ "to_source": "Source de Destino",
+ "from_concept": "Conceito de Origem",
+ "to_concept": "Conceito de Destino",
+ "to_concept_url": "URL do Conceito de Destino",
+ "to_concept_name": "Nome do Conceito de Destino",
+ "to_concept_code": "Código do Conceito de Destino",
+ "concept_ref_required": "Forneça uma URL de Conceito, ou tanto o Código do Conceito quanto o Nome do Conceito.",
+ "concept_required": "Por favor, selecione um conceito.",
+ "source_required": "Por favor, selecione um Source.",
+ "success_create": "Mapeamento criado com sucesso",
+ "success_update": "Mapeamento atualizado com sucesso",
+ "error_create": "Não foi possível criar o mapeamento",
+ "error_update": "Não foi possível atualizar o mapeamento",
+ "include_retired": "Incluir Aposentados",
+ "associations_info": "A seção Associações lista associações de hierarquia e mapeamento para este conceito.",
+ "has_child": "Tem filho",
+ "has_parent": "Tem pai",
+ "open_mapping_details": "Abrir Detalhes do Mapeamento",
+ "open_from_concept": "Abrir Conceito de Origem",
+ "open_to_concept": "Abrir Conceito de Destino",
+ "compare_concepts": "Comparar Conceitos",
+ "retire_mapping": "Aposentar mapeamento",
+ "reactivate_mapping": "Reativar mapeamento",
+ "success_retired": "Mapeamento aposentado",
+ "success_unretired": "Mapeamento reativado",
+ "add_new_mapping": "Adicionar Novo Mapeamento",
+ "add_a_mapping": "Adicionar um mapeamento",
+ "add_new_map_type_mapping": "Adicionar novo mapeamento {{mapType}}",
+ "relationship_type": "Tipo de Relacionamento",
+ "assign_sort_weight": "Atribuir Peso de Ordenação",
+ "clear_sort_weight": "Limpar Peso de Ordenação",
+ "custom_sorting_applied": "Ordenação personalizada foi aplicada",
+ "custom_sorting_applied_partial": "Ordenação personalizada foi aplicada a {{total}} mapeamentos.",
+ "no_sort_weight": "Mapeamento não tem peso de ordenação aplicado",
+ "sort_changes_warning": "{{total}} alteração(ões) feita(s). Salvar criará uma nova Versão de Mapeamento.",
+ "sort_success": "Mapeamentos atualizados com sucesso.",
+ "form": {
+ "id": "ID do Mapeamento",
+ "mapping_details": {
+ "header": "Detalhes do Mapeamento"
+ },
+ "from_concept": {
+ "header": "Conceito de Origem"
+ },
+ "to_concept": {
+ "header": "Conceito de Destino"
+ }
+ },
+ "create_mapping": "Criar Mapeamento",
+ "view_in_source": "Ver mapeamento em seu Source"
+ },
+ "reference": {
+ "expression": "Expressão",
+ "references": "Referências",
+ "reference": "Referência",
+ "source": "Source",
+ "sources": "Sources",
+ "type": "Tipo de Referência",
+ "last_resolved_at": "Última resolução em",
+ "details": "Detalhes da Referência",
+ "expansion_results": "Resultados da Expansão",
+ "concepts_and_mappings": "Conceitos e Mapeamentos resolvidos por esta referência",
+ "copy_expression": "Copiar Expressão da Referência",
+ "copy_url": "Copiar URL da Referência",
+ "reference_type": "Tipo de Ref",
+ "exclude": "Excluir",
+ "intensional": "Intensional",
+ "extensional": "Extensional",
+ "cascade": "Cascata",
+ "source_mappings": "Mapeamentos do Source",
+ "all_source_concepts_and_mappings": "Todos os Conceitos e Mapeamentos do Source",
+ "versioned_repo": "Versionado (Repo)",
+ "versioned_resource": "Versionado (Recurso)",
+ "resolved_repo": "Repo Resolvido",
+ "group_by_source": "Agrupar por Source",
+ "ungrouped": "Não agrupados",
+ "mixed": "Misto",
+ "source_to_concepts": "Source para Conceitos",
+ "source_to_mappings": "Source para Mapeamentos",
+ "raw": "Bruto",
+ "translation": "Tradução",
+ "transform": "Transformar",
+ "remove_selected": "Remover Selecionados",
+ "remove_confirm_title": "Remover {{count}} {{reference}}?",
+ "remove_confirm_body": "Isso removerá {{summary}} da expansão da coleção.",
+ "remove_confirm_body_selected": "Isso removerá a(s) referência(s) selecionada(s) da expansão da coleção.",
+ "not_available_in_version": "Não disponível em versões salvas. Mude para HEAD para editar.",
+ "remove_success": "Referências removidas com sucesso.",
+ "actions": "Ações",
+ "transform_to_non_versioned": "Transformar em referência não versionada",
+ "transform_confirm_title": "Transformar {{count}} referência(s)?",
+ "transform_confirm_body": "Isso adicionará primeiro referências de substituição não versionadas, então removerá as referências fixadas antigas após a adição ter sucesso.",
+ "transform_references": "Transformar referências",
+ "transform_success": "{{count}} referência(s) transformada(s) com sucesso.",
+ "transform_partial_success": "{{transformed}} referência(s) transformada(s). {{failed}} referência(s) não puderam ser transformadas e foram deixadas inalteradas.",
+ "transform_no_eligible": "Nenhuma das referências selecionadas pode ser transformada em referências não versionadas.",
+ "transform_no_references_changed": "Nenhuma referência foi transformada.",
+ "transform_delete_failed": "{{count}} referência(s) não versionada(s) foram adicionadas, mas as referências fixadas antigas não puderam ser removidas. Atualize e revise a lista de referências para duplicatas.",
+ "already_non_versioned": "Já não versionado",
+ "unsupported_transform": "Não suportado",
+ "new_expression": "Nova Expressão",
+ "brought_in_by": "Trazido por",
+ "brought_in_by_tooltip": "Este {{resource}} aparece nesta expansão de coleção como resultado destas referências.",
+ "no_references_found": "Nenhuma referência encontrada.",
+ "remove_from_collection": "Remover da coleção",
+ "remove_concept_confirm_title": "Remover conceito da coleção?",
+ "remove_concept_confirm_body": "Este conceito é trazido pela(s) seguinte(s) referência(s). Removê-lo excluirá essas referências da coleção.",
+ "remove_mapping_confirm_title": "Remover mapeamento da coleção?",
+ "remove_mapping_confirm_body": "Este mapeamento é trazido pela(s) seguinte(s) referência(s). Removê-lo excluirá essas referências da coleção.",
+ "advanced": "Avançado",
+ "hide_advanced": "Ocultar avançado",
+ "transform_tooltip": "Converte a referência em referência(s) extensional(is). Referências para conceitos ou mapeamentos resolvidos serão armazenadas como referências extensional(is) individuais em vez de referência(s) intensional(is).",
+ "add_references": "Adicionar Referências",
+ "add_reference": "Adicionar Referência",
+ "source_or_collection": "Source / Coleção",
+ "search_sources_collections": "Buscar sources e coleções...",
+ "group_collections": "Coleções",
+ "group_sources": "Sources",
+ "type_to_search": "Digite pelo menos 2 caracteres para buscar",
+ "open_repo": "Abrir {{name}}",
+ "resolves_to": "Resolve para {{version}}.",
+ "latest_released": "última versão publicada",
+ "pin_to_version": "Fixar em uma versão específica",
+ "include_exclude": "Incluir / Excluir",
+ "include": "Incluir",
+ "add_by_ids": "Adicionar por ID(s)",
+ "concept_ids": "IDs de Conceitos",
+ "mapping_ids": "IDs de Mapeamentos",
+ "select_source_first": "Selecione um Source ou coleção acima para usar Adicionar por ID(s)",
+ "id_helper": "Cada ID se torna {{path}}{id}/",
+ "expression_hint": "Expressão completa da referência. Preenchida a partir do seletor de Source/coleção acima; edite conforme necessário.",
+ "adding_references": "Adicionando referências…",
+ "request_failed": "Requisição falhou — verifique sua conexão de rede e tente novamente."
+ },
+ "checksums": {
+ "standard": "Checksum Padrão",
+ "smart": "Checksum Inteligente"
+ },
+ "repo": {
+ "repos": "Repositórios",
+ "repo": "Repositório",
+ "new_repo": "Novo Repositório",
+ "repo_type": "Tipo de Repositório",
+ "source_type": "Tipo de Source",
+ "collection_type": "Tipo de Coleção",
+ "edit_version": "Editar Versão",
+ "repo_id": "ID do Repositório",
+ "repo_version": "Versão do Repo",
+ "latest_version": "Última versão",
+ "add_concept": "Adicionar Conceito",
+ "add_mapping": "Adicionar Mapeamento",
+ "source": "Source",
+ "collection": "Coleção",
+ "release_status": "Status de Publicação",
+ "release_version": "Publicar Versão",
+ "unrelease_version": "Despublicar Versão",
+ "compare_versions": "Comparar versões",
+ "compare_versions_and_expansions": "Comparar versões + expansões",
+ "compare_expansions_of_version": "Comparar expansões desta versão",
+ "compare": "Comparar",
+ "visibility": "Visibilidade",
+ "locales": "Localidades",
+ "locale": "Localidade",
+ "identifier": "Identificador",
+ "contact": "Contato",
+ "jurisdiction": "Jurisdição",
+ "publisher": "Publicador",
+ "purpose": "Finalidade",
+ "copyright": "Direitos autorais",
+ "content_type": "Tipo de Conteúdo",
+ "revision_date": "Data de Revisão",
+ "experimental": "Experimental",
+ "case_sensitive": "Diferencia maiúsculas/minúsculas",
+ "hierarchy_meaning": "Significado da Hierarquia",
+ "hierarchy": "Hierarquia",
+ "hierarchy_description": "Opcionalmente declare o conceito que é a raiz da hierarquia deste Source e o que o relacionamento pai/filho significa.",
+ "hierarchy_root": "Raiz da Hierarquia",
+ "hierarchy_root_help": "Deve ser um conceito neste Source",
+ "hierarchy_root_after_create_help": "Pode ser definido depois que este Source tiver conceitos",
+ "hierarchy_meaning_help": "Como o relacionamento pai/filho dos conceitos deste Source deve ser interpretado",
+ "compositional": "Composicional",
+ "version_needed": "Versão Necessária",
+ "meta": "Meta",
+ "short_code": "Código Curto",
+ "full_name": "Nome Completo",
+ "short_name": "Nome Curto",
+ "default_locale": "Localidade Padrão",
+ "supported_locales": "Localidades Suportadas",
+ "additional_meta_data": "Metadados Adicionais",
+ "publisher_information": "Informações do Publicador",
+ "autoid_concept_mnemonic": "Atribuição Automática de ID de Conceito",
+ "autoid_concept_external_id": "Atribuição Automática de ID Externo de Conceito",
+ "autoid_concept_name_external_id": "Atribuição Automática de ID Externo de Nome de Conceito",
+ "autoid_concept_description_external_id": "Atribuição Automática de ID Externo de Descrição de Conceito",
+ "autoid_mapping_mnemonic": "Atribuição Automática de ID de Mapeamento",
+ "autoid_mapping_external_id": "Atribuição Automática de ID Externo de Mapeamento",
+ "custom_validation_schema": "Schema de Validação Personalizado",
+ "compare_origin_version_disabled_tooltip": "Você deve selecionar uma versão mais antiga para comparar",
+ "compare_destination_version_disabled_tooltip": "Você deve selecionar uma versão mais nova para comparar",
+ "summary_active_concepts_from_total": "{{active}} conceitos ativos ({{retired}} aposentados)",
+ "summary_active_mappings_from_total": "{{active}} mapeamentos ativos ({{retired}} aposentados)",
+ "summary_released_versions_from_total": "{{released}} versões publicadas ({{unreleased}} não publicadas)",
+ "summary_concepts_references": "{{count}} referências de conceitos",
+ "summary_mappings_references": "{{count}} referências de mapeamentos",
+ "refresh_summary": "Atualizar resumo",
+ "repo_version_summary": "Resumo da Versão do Repositório",
+ "repo_summary_is_calculando": "Resumo do repositório está sendo calculado, por favor verifique novamente após algum tempo.",
+ "no_overview": "O proprietário não criou uma página de Visão Geral para este repositório",
+ "create_a_repo": "Criar um repositório",
+ "create_a_repo_description": "Repositórios são contêineres ou pastas para seu conteúdo. <0>Saiba mais.0>",
+ "create_source_description": "Um Source é usado para criar e editar conceitos e mapeamentos.",
+ "create_source_subtext": "Criar e editar conceitos e mapeamentos",
+ "create_collection_description": "Uma Coleção é um conjunto curado de conceitos e mapeamentos de um ou mais Sources.",
+ "create_collection_subtext": "Curar conjuntos de conceitos de um ou mais Sources",
+ "create_code_system_description": "Um Code System é uma representação compatível com FHIR de um Source.",
+ "create_code_system_subtext": "Code system compatível com FHIR",
+ "create_value_set_description": "Um Value Set é uma representação compatível com FHIR de uma coleção.",
+ "create_valueset_subtext": "Value set compatível com FHIR",
+ "create_concept_map_description": "Um Concept Map é um conjunto compatível com FHIR de mapeamentos de conceitos.",
+ "create_concept_map_subtext": "Concept map compatível com FHIR",
+ "code_system": "Code System",
+ "valueset": "Value Set",
+ "concept_map": "Concept Map",
+ "locked_date": "Data Travada",
+ "edit_repo": "Editar Repositório",
+ "error_update": "Não foi possível atualizar o repo",
+ "error_create": "Não foi possível criar o repo",
+ "success_update": "Repo atualizado com sucesso",
+ "success_create": "Repo criado com sucesso",
+ "success_delete": "Repo excluído com sucesso",
+ "success_delete_version": "Versão do repo excluída com sucesso",
+ "success_version_create": "Versão criada com sucesso",
+ "success_version_update": "Versão atualizada com sucesso",
+ "error_version_create": "Não foi possível criar a versão",
+ "error_version_update": "Não foi possível atualizar a versão",
+ "versions_expansions": "Versões + Expansões",
+ "versions": "Versões",
+ "unreleased": "Não Publicado",
+ "explore_version": "Explorar Versão",
+ "export_version": "Exportar Versão",
+ "external_exports": "Exportações Externas",
+ "changelog": "Changelog",
+ "compare_with_previous": "Comparar com Anterior",
+ "recompute_summary": "Recalcular Resumo",
+ "summary_request_queued": "Solicitação de resumo enfileirada.",
+ "summary_request_submitted": "Solicitação de resumo enviada.",
+ "reindex_concepts": "Reindexar Conceitos",
+ "reindex_mappings": "Reindexar Mapeamentos",
+ "reindex_dialog_title": "{{label}}: {{repoId}}",
+ "reindex_confirm_message": "Tem certeza de que deseja reindexar {{contentType}} para {{repoId}}?",
+ "reindex_scheduled": "Tarefa {{id}} foi agendada.",
+ "reindex_scheduled_no_id": "Solicitação de reindexação enviada.",
+ "reindex_already_in_progress": "Uma reindexação já está em andamento para esta versão. Por favor, aguarde.",
+ "reindex_in_progress_tooltip_with_id": "Reindexação em andamento (ID da Tarefa: {{id}})",
+ "reindex_in_progress_tooltip": "Reindexação já em andamento. Por favor, aguarde.",
+ "no_versions_found": "Nenhuma versão encontrada.",
+ "source_version_count": "{{count}} versão de Source",
+ "source_versions_count": "{{count}} versões de Source",
+ "mapper": "Mapper",
+ "export_source_version_title": "Exportar Versão do Source: {{repo}} / {{version}}",
+ "export_collection_version_title": "Exportar Versão da Coleção: {{repo}} / {{version}}",
+ "could_not_check_export": "Não foi possível verificar a exportação.",
+ "could_not_queue_export": "Não foi possível enfileirar a exportação.",
+ "export_already_exists": "Uma exportação já existe para esta versão.",
+ "export_request_queued": "Solicitação de exportação enfileirada.",
+ "checking_export_status": "Verificando status da exportação...",
+ "downloaded_cached_export": "Exportação em cache baixada.",
+ "cached_export_generating": "Uma exportação em cache está sendo gerada. Verifique novamente mais tarde.",
+ "export_request_queued_check_later": "Solicitação de exportação enfileirada. Verifique novamente mais tarde.",
+ "export_already_exists_try_again": "Uma exportação já existe. Tente baixar novamente.",
+ "no_cached_export": "Não há exportação em cache para esta versão de Source.",
+ "queue_export": "Enfileirar Exportação",
+ "could_not_download_external_export": "Não foi possível baixar a exportação externa.",
+ "external_export_required": "Nome e arquivo da exportação externa são obrigatórios.",
+ "external_export_uploaded": "Exportação externa carregada.",
+ "could_not_upload_external_export": "Não foi possível carregar a exportação externa.",
+ "external_export_deleted": "Exportação externa excluída.",
+ "could_not_delete_external_export": "Não foi possível excluir a exportação externa.",
+ "confirm_delete_external_export_title": "Excluir Exportação Externa",
+ "confirm_delete_external_export_message": "Tem certeza de que deseja excluir \"{{key}}\"? Isso não pode ser desfeito.",
+ "existing_external_export": "Exportação Externa Existente",
+ "external_exports_title": "Exportações Externas: {{repo}} / {{version}}",
+ "no_external_exports": "Nenhuma exportação externa foi carregada para esta versão.",
+ "upload_external_export": "Carregar Exportação Externa",
+ "choose_file": "Escolher Arquivo",
+ "external_export_file_types": "sql, zip, pdf, csv",
+ "uploading": "Carregando...",
+ "could_not_load_changelog": "Não foi possível carregar o changelog.",
+ "large_sources_take_a_while": "Sources grandes podem levar um tempo para processar.",
+ "copied_version_url": "URL da versão copiada.",
+ "expansion": "Expansão",
+ "expansions": "Expansões",
+ "versions_expansions_subtitle": "HEAD, versões publicadas e suas expansões",
+ "autoexpand": "Auto-expandir",
+ "expansion_url": "URL da Expansão",
+ "version_url": "URL da Versão",
+ "previous_version_url": "URL da Versão Anterior",
+ "canonical_url": "URL Canônica",
+ "autoexpand_head": "AutoExpandir HEAD",
+ "immutable": "Imutável",
+ "ocl_repo_url": "URL do Repo OCL",
+ "ocl_repo_url_help": "Uma URL de repo de qualquer servidor OCL (ex.: https://app.openconceptlab.org/#{{example}}) ou uma URL relativa deste servidor (ex.: {{example}})",
+ "invalid_repo_url": "Insira uma URL de repo OCL válida",
+ "create_version": "Criar Versão",
+ "new_version": "Nova Versão",
+ "new_expansion": "Nova Expansão",
+ "show_expansions": "Mostrar expansões ({{count}})",
+ "expansions_processing": "Expansões processando ({{count}})",
+ "hide_expansions": "Ocultar expansões",
+ "default_expansion_label": "Padrão: {{expansion}}",
+ "expansion_dropdown_label": "Expansão: {{mnemonic}}",
+ "expansion_already_selected_other_side": "Já selecionado no outro lado",
+ "edit_description": "Editar descrição",
+ "stale": "Desatualizado",
+ "stale_count": "{{count}} desatualizado(s)",
+ "expansions_for_version": "Para a versão {{version}}",
+ "no_description": "Sem descrição",
+ "no_expansions_yet": "Nenhuma expansão ainda",
+ "no_expansions_message": "Esta versão de coleção não tem expansões ainda.",
+ "create_first_expansion": "Criar Primeira Expansão",
+ "set_as_default": "Definir como padrão",
+ "update_metadata": "Atualizar metadados",
+ "create_similar": "Criar similar",
+ "create_similar_disclaimer": "Apenas os metadados do repositório são copiados. Conceitos, mapeamentos e versões não são copiados.",
+ "id_auto_assignment": "Atribuição Automática de ID",
+ "id_auto_assignment_description": "Configure a atribuição de ID para Conceitos e Mapeamentos",
+ "id_auto_assignment_openmrs_hint": "OpenMRS recomenda selecionar 'Sequencial' para IDs e 'UUID' para IDs Externos",
+ "ids": "IDs",
+ "external_ids": "IDs Externos",
+ "auto_id_manual": "Inserir Manualmente",
+ "auto_id_manual_description": "O ID deve ser inserido manualmente cada vez que você criar um novo recurso.",
+ "auto_id_uuid": "UUID",
+ "auto_id_uuid_description": "O ID é atribuído automaticamente no formato UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
+ "auto_id_sequential": "Sequencial",
+ "auto_id_sequential_description": "O ID é atribuído automaticamente em formato numérico, aumentando em 1 para cada novo recurso. Você pode escolher com qual número começar.",
+ "auto_id_start_from": "Começar De",
+ "autoid_concept_mnemonic_help": "Isto determina se um ID é atribuído automaticamente a novos conceitos.",
+ "autoid_mapping_mnemonic_help": "Isto determina se um ID é atribuído automaticamente a novos mapeamentos.",
+ "autoid_concept_external_id_help": "Isto determina se um ID externo é atribuído automaticamente a novos conceitos. IDs Externos são opcionais mas podem ser úteis para IDs de outros sistemas.",
+ "autoid_mapping_external_id_help": "Isto determina se um ID externo é atribuído automaticamente a novos mapeamentos. IDs Externos são opcionais mas podem ser úteis para IDs de outros sistemas.",
+ "autoid_concept_name_external_id_help": "Isto determina se um ID externo é atribuído automaticamente a novos nomes de conceito. IDs Externos são opcionais mas podem ser úteis para IDs de outros sistemas.",
+ "autoid_concept_description_external_id_help": "Isto determina se um ID externo é atribuído automaticamente a novas descrições de conceito. IDs Externos são opcionais mas podem ser úteis para IDs de outros sistemas.",
+ "rebuild": "Reconstruir",
+ "rebuild_expansion": "Reconstruir Expansão",
+ "rebuild_expansion_message": "Isso reavaliará todas as referências nesta versão da coleção. Isso não pode ser desfeito.",
+ "rebuild_expansion_compare_message": "Você também pode criar uma expansão similar primeiro se quiser comparar resultados lado a lado.",
+ "collection_version_updated": "Versão da coleção atualizada.",
+ "unable_update_version_metadata": "Não foi possível atualizar metadados da versão.",
+ "default_expansion_updated": "Expansão padrão atualizada.",
+ "unable_set_default_expansion": "Não foi possível definir expansão padrão.",
+ "expansion_deleted": "Expansão excluída.",
+ "unable_delete_expansion": "Não foi possível excluir a expansão.",
+ "expansion_rebuild_accepted": "Reconstrução de expansão aceita.",
+ "unable_rebuild_expansion": "Não foi possível reconstruir a expansão.",
+ "opened_dependency_expansion": "Aberto a partir de uma notificação de dependência. Mostrando {{expansion}} na versão {{version}}.",
+ "opened_dependency_version": "Aberto a partir de uma notificação de dependência. Mostrando versão {{version}}.",
+ "created_by_at": "Criado",
+ "updated_by_at": "Atualizado",
+ "last_built_by": "Última construção por",
+ "collection_expansion": "Expansão de Coleção",
+ "concepts_and_mappings": "conceitos e mapeamentos",
+ "expansion_details_title": "Expansão: {{mnemonic}}",
+ "explicit_repo_versions": "Versões de Repo Explícitas",
+ "evaluated_repo_versions": "Versões de Repo Avaliadas",
+ "unresolved_repo_versions": "Versões de Repo Não Resolvidas",
+ "resolved_repo_versions": "Versões de Repo Resolvidas",
+ "resolved_repo_updates_available": "Novas versões estão disponíveis para algumas versões de repo resolvidas nesta expansão:",
+ "version": {
+ "vectorized_for_mapper": "Vetorização de conceitos está habilitada para esta versão do repositório",
+ "form": {
+ "id": {
+ "label": "ID",
+ "helper_text": "Caracteres alfanuméricos, @, hífens, pontos e sublinhados são permitidos."
+ },
+ "new_title": "Nova Versão de {{resourceType}}: {{version}}",
+ "edit_title": "Editar Versão de {{resourceType}}: {{version}}"
+ },
+ "update_dialog": {
+ "title": "Atualizar {{resourceType}}: {{resourceId}}",
+ "message": "Tem certeza de que deseja {{action}} este {{resourceType}} {{repoId}}?"
+ },
+ "expansion_form": {
+ "new_title": "Nova Expansão: {{version}}",
+ "edit_title": "Editar Expansão: {{mnemonic}}",
+ "select_version": "Selecionar versão",
+ "collection_version": "Versão da Coleção",
+ "parameters": "Parâmetros",
+ "id_required": "ID é obrigatório",
+ "version_required": "Por favor, selecione uma versão de coleção.",
+ "created": "Expansão criada.",
+ "updated": "Expansão atualizada.",
+ "cleaned_values": "Valores limpos: {{values}}",
+ "format_hint": "Formato: {{format}}",
+ "parameters_fields": {
+ "filter": {
+ "label": "filtro",
+ "tooltip": "Adicionar critérios de busca"
+ },
+ "activeOnly": {
+ "label": "activeOnly",
+ "tooltip": "Selecione isto para incluir apenas conceitos e mapeamentos não aposentados"
+ },
+ "date": {
+ "label": "data",
+ "tooltip": "O filtro de data de revisão. Formato: AAAA, AAAA-MM, AAAA-MM-DD, ou timestamp completo"
+ },
+ "count": {
+ "label": "contagem",
+ "tooltip": "Este parâmetro ainda não é suportado."
+ },
+ "offset": {
+ "label": "deslocamento",
+ "tooltip": "Este parâmetro ainda não é suportado."
+ },
+ "includeDesignations": {
+ "label": "includeDesignations",
+ "tooltip": "Este parâmetro ainda não é suportado."
+ },
+ "includeDefinition": {
+ "label": "includeDefinition",
+ "tooltip": "Este parâmetro ainda não é suportado."
+ },
+ "excludeNested": {
+ "label": "excludeNested",
+ "tooltip": "Este parâmetro ainda não é suportado."
+ },
+ "excludeNotForUI": {
+ "label": "excludeNotForUI",
+ "tooltip": "Este parâmetro ainda não é suportado."
+ },
+ "excludePostCoordinated": {
+ "label": "excludePostCoordinated",
+ "tooltip": "Este parâmetro ainda não é suportado."
+ },
+ "exclude-system": {
+ "label": "exclude-system",
+ "tooltip": "URL canônica com versão opcional para excluir da expansão"
+ },
+ "system-version": {
+ "label": "system-version",
+ "tooltip": "URL canônica com versão opcional para forçar ao resolver um sistema"
+ },
+ "check-system-version": {
+ "label": "check-system-version",
+ "tooltip": "Este parâmetro ainda não é suportado."
+ },
+ "force-system-version": {
+ "label": "force-system-version",
+ "tooltip": "Este parâmetro ainda não é suportado."
+ }
+ }
+ }
+ },
+ "delete_repo": "Excluir Repo",
+ "delete_accepted": "Exclusão de Repo Aceita. Isso pode levar alguns minutos.",
+ "delete_repo_version": "Excluir Versão do Repo",
+ "delete_accepted_version": "Exclusão de Versão do Repo Aceita. Isso pode levar alguns minutos.",
+ "properties": "Propriedades",
+ "property": "Propriedade",
+ "filters": "Filtros",
+ "version_changelog_request_accepted": "Solicitação de comparação de versões aceita, por favor volte em alguns minutos.",
+ "select_expansions_to_compare": "Selecione uma expansão para ambas as versões para comparar conteúdo.",
+ "select_different_version_or_expansion": "Esta versão e expansão são idênticas em ambos os lados. Escolha uma expansão ou versão diferente para ver uma comparação.",
+ "select_different_version": "Esta versão é idêntica em ambos os lados. Escolha uma versão diferente para ver uma comparação.",
+ "no_content_differences": "Nenhuma diferença foi encontrada entre estas duas versões.",
+ "properties_filters_subheader": "Propriedades do Repositório",
+ "additional_metadata_filters_subheader": "Metadados Adicionais",
+ "stage_seeded_concepts": "Conceitos semeados",
+ "stage_seeded_mappings": "Mapeamentos semeados",
+ "stage_indexed_concepts": "Conceitos indexados",
+ "stage_indexed_mappings": "Mapeamentos indexados",
+ "stage_exported": "Exportado",
+ "stage_changelog": "Changelog",
+ "export_time": "Tempo de exportação",
+ "copy_task_id": "Copiar ID da tarefa",
+ "copied_task_id": "ID da tarefa copiado para a área de transferência",
+ "processing_summary": "Processando — {{completed}} de {{total}} concluído",
+ "processing_failed_summary": "Processamento falhou — {{completed}} de {{total}} concluído",
+ "processing_progress_short": "Processando {{completed}}/{{total}}",
+ "processing_stage_caption": "{{stage}} · {{completed}}/{{total}}",
+ "processing_flag_tooltip": "Clique para ver estágios de processamento e IDs de tarefas",
+ "processing_listing_warning": "Esta versão ainda está processando. {{resource}} mostrado aqui pode estar incompleto.",
+ "processing_listing_failed": "Processamento falhou para esta versão. {{resource}} mostrado aqui pode estar incompleto.",
+ "view_processing_details": "Ver detalhes",
+ "action_disabled_while_processing": "Indisponível enquanto esta versão está processando",
+ "action_disabled_until_seeded": "Disponível quando conceitos e mapeamentos terminarem de semear",
+ "action_disabled_until_changelog_ready": "Disponível quando o changelog terminar de calcular",
+ "clear_processing": "Limpar Processamento",
+ "clear_processing_title": "{{resourceType}}: {{resourceId}}",
+ "clear_processing_confirmation": "Tem certeza de que deseja limpar o estado de processamento para esta versão?",
+ "clear_processing_message": "Isso apenas limpa os IDs de tarefas em segundo plano que a versão está rastreando. Não para nenhuma tarefa que esteja genuinamente ainda em execução, e não muda o conteúdo da versão.",
+ "clear_processing_not_processing": "Esta versão não está atualmente marcada como processando.",
+ "clear_processing_confirm_button": "Limpar estado de processamento",
+ "processing_cleared": "Estado de processamento limpo",
+ "could_not_clear_processing": "Não foi possível limpar o estado de processamento",
+ "export_not_ready_tooltip": "Exportação ainda está sendo gerada para esta versão",
+ "expansion_processing_tooltip": "Esta expansão ainda está sendo construída",
+ "suggested_sources": "Sources Sugeridos"
+ },
+ "org": {
+ "my": "Minhas Organizações",
+ "orgs": "Organizações",
+ "org": "Organização",
+ "about_the_org": "Sobre a Organização",
+ "members": "Membros",
+ "member": "Membro",
+ "edit_members": "Editar Membros",
+ "updated_members": "Membros Atualizados",
+ "member_add_failed": "Não foi possível adicionar {{user}}: {{detail}}",
+ "member_remove_failed": "Não foi possível remover {{user}}: {{detail}}",
+ "org_have_not_created_public_repos_suffix": "não criaram nenhum repositório público",
+ "browse_members": "Navegar membros",
+ "member_of": "Membro de",
+ "create_an_org": "Criar uma Organização",
+ "create_an_org_description": "Organize seu conteúdo e colaboradores. <0> Saiba mais sobre Organizações no OCL.0>",
+ "edit_org": "Editar Organização",
+ "error_update": "Não foi possível atualizar a organização",
+ "error_create": "Não foi possível criar a organização",
+ "success_update": "Organização atualizada com sucesso",
+ "success_create": "Organização criada com sucesso",
+ "delete_org": "Excluir Organização",
+ "delete_accepted": "Exclusão de Organização Aceita. Isso pode levar alguns minutos."
+ },
+ "user": {
+ "users": "Usuários",
+ "user": "Usuário",
+ "my_profile": "Meu Perfil",
+ "my_repositories": "Meus Repositórios",
+ "my_organizations": "Minhas Organizações",
+ "my_bookmarks": "Meus Favoritos",
+ "my_mapping_projects": "Meus Projetos de Mapeamento",
+ "username": "Nome de usuário",
+ "password": "Senha",
+ "joined_on": "Entrou em",
+ "email": "E-mail",
+ "company_name": "Nome da Empresa",
+ "location": "Localização",
+ "last_login": "Último Login",
+ "edit_my_profile": "Editar meu perfil",
+ "name_and_description": "Nome e descrição",
+ "login_and_security": "Login e segurança",
+ "first_name": "Primeiro Nome",
+ "last_name": "Último Nome",
+ "company": "Empresa",
+ "email_address": "Endereço de E-mail",
+ "profile_update_success": "Perfil atualizado com sucesso",
+ "profile_update_failure": "Ocorreu um erro ao atualizar o perfil.",
+ "copy_api_token": "Copiar token da API",
+ "copy_token_success": "Token copiado para sua área de transferência",
+ "your": "Seu",
+ "avatar": "Avatar",
+ "update_avatar": "Atualizar seu avatar",
+ "bio": "Bio curta",
+ "about_me": "Sobre mim",
+ "about_me_description": "Crie uma introdução para quem visita seu perfil (200 caracteres).",
+ "user_has_not_created_public_repos_suffix": "não criou nenhum repositório público",
+ "recent_activity": "atividade recente",
+ "own_recent_activity": "Sua atividade recente",
+ "recent_activity_of": "Atividade recente de {{name}}"
+ },
+ "search": {
+ "filters": "Filtros",
+ "concepts": "Conceitos",
+ "mappings": "Mapeamentos",
+ "references": "Referências",
+ "repos": "Repositórios",
+ "orgs": "Organizações",
+ "users": "Usuários",
+ "sort_by": "Ordenar por",
+ "display": "Exibir",
+ "loading": "Refinando seus resultados de busca...",
+ "no_results": "Não encontramos correspondências para ",
+ "input_placeholder_drawer": "Digite um termo de busca ou toque / para opções",
+ "input_placeholder": "Buscar no OCL...",
+ "select_a_filter": "Selecione um filtro com as teclas /",
+ "filter": "Filtrar",
+ "filtered_by": "filtrado por",
+ "class": "Classe",
+ "map_type": "Tipo de Mapeamento",
+ "bookmarked_organizations": "Organizações favoritas",
+ "following_organizations": "Organizações que segue",
+ "no_organizations_found": "Nenhuma organização encontrada",
+ "bookmarked_repositories": "Repositórios favoritos",
+ "following_repositories": "Repositórios que segue",
+ "no_repositories_found": "Nenhum repositório encontrado",
+ "bookmarked_users": "Usuários favoritos",
+ "following_users": "Usuários que segue",
+ "no_users_found": "Nenhum usuário encontrado",
+ "table": "Tabela",
+ "card": "Cartão",
+ "hierarchy": "Hierarquia",
+ "search_all_site": "Buscar em todo o OCL para ",
+ "search_this_repository": "Buscar neste repositório",
+ "search_this_url_registry": "Buscar neste registro de URL para ",
+ "search_all_concepts": "Buscar todos os conceitos",
+ "url_registry": "entradas",
+ "confidence": "Confiança",
+ "score": "Pontuação",
+ "search_highlight": "Destaque da Busca",
+ "save_default_filters": "Salvar como Filtros Padrão",
+ "reset_default_filters": "Redefinir para Filtros Padrão",
+ "reset_default_filters_tooltip": "Descartar filtros aplicados e voltar aos filtros padrão salvos",
+ "default_filters_menu_tooltip": "Opções de filtro padrão",
+ "clear_filters_tooltip": "Remover todos os filtros aplicados",
+ "clear_filters_with_defaults_tooltip": "Remover todos os filtros aplicados incluindo os filtros padrão",
+ "select_all": "Selecionar todos",
+ "select_all_concepts": "Selecionar todos os conceitos",
+ "select_all_mappings": "Selecionar todos os mapeamentos",
+ "select_all_references": "Selecionar todas as referências",
+ "select_all_repos": "Selecionar todos os repositórios",
+ "select_all_orgs": "Selecionar todas as organizações",
+ "select_all_users": "Selecionar todos os usuários"
+ },
+ "url_registry": {
+ "url_registry": "Registro de URL Canônica",
+ "registry_owner": "Proprietário do Registro",
+ "global": "Global",
+ "global_registry": "Registro Global",
+ "test_canonical_url": "Testar uma URL Canônica",
+ "add_entry": "Adicionar URL Canônica",
+ "test_canonical_url_description": "Digite uma URL canônica para testar como o OCL a resolverá em um namespace específico, como seu espaço de trabalho de usuário ou uma organização da qual você é membro. Use isso para simular como o OCL avaliará referências e mapeamentos em seus repositórios. <0>Saiba mais no OCL Docs0>",
+ "canonical_url": "URL Canônica",
+ "resolve_success_with_entry": "{{url}} resolvido para <0/> em <1/> usando uma entrada no <2/> Registro",
+ "resolve_success_without_entry": "{{url}} resolvido para <0/> em <1/> por correspondência com um repositório no <2/>",
+ "resolve_failed_with_entry": "{{url}} correspondeu a uma entrada no <0/> Registro mas não resolveu para um repositório",
+ "resolve_failed_without_entry": "{{url}} não correspondeu a uma entrada no <0/> Registro ou no Registro Global e não resolveu para um repositório",
+ "resolve_failed_without_entry_global": "{{url}} não correspondeu a uma entrada no Registro Global",
+ "target_owner": "Proprietário de Destino",
+ "view_canonical_url_registry": "Ver Registro de URL Canônica"
+ },
+ "addToCollection": {
+ "title": "Adicionar à Coleção",
+ "adding_single": "Adicionando: {{name}} de {{source}}",
+ "adding_multiple": "Adicionando {{count}} conceitos",
+ "target_collection": "Coleção de Destino",
+ "no_editable_collections": "Nenhuma coleção editável encontrada",
+ "adding_reference": "Adicionando referência…",
+ "request_accepted": "Sua solicitação foi aceita e referências serão adicionadas em breve.",
+ "add_button": "Adicionar Referência",
+ "reference_header": "Referência",
+ "error_header": "Erro",
+ "no_references_added": "Nenhuma referência adicionada",
+ "add_to_collection": "Adicionar à Coleção"
+ },
+ "import": {
+ "upload_file_tooltip": "Carregar Arquivo JSON/CSV/ZIP",
+ "upload_file_no_zip_tooltip": "Carregar Arquivo JSON/CSV",
+ "json_data_tooltip": "Enviar Dados JSON",
+ "url_tooltip": "Colar URL de Arquivo JSON/CSV/ZIP",
+ "npm_tooltip": "Importar pacote NPM",
+ "queue_id_label": "ID da Fila",
+ "queue_id_placeholder": "ex.: minha-fila",
+ "queue_id_helper_text": "Imports que compartilham o mesmo ID da fila são processados em sequência",
+ "update_if_exists_label": "Atualizar se Existir",
+ "update_if_exists_helper_text": "Atualizar se conceito/mapeamento existente encontrado",
+ "hierarchy_helper_text": "Importante marcar isto se o conteúdo da importação tem hierarquia",
+ "file_url_label": "URL do Arquivo JSON/CSV/ZIP",
+ "owner_helper_text": "Determina o namespace onde os recursos importados devem ser criados",
+ "npm_package_name": "Nome do Pacote NPM",
+ "npm_package_version": "Versão do Pacote NPM",
+ "or_upload_package_file": "Ou carregar arquivo do pacote:",
+ "json_data_label": "Dados JSON",
+ "size_limit_helper": "Até {{limit}} por importação",
+ "file_too_large": "Este arquivo é maior que seu limite de importação de {{limit}}.",
+ "new_import_footer": "OCL processa importação em massa assincronamente. Uma importação em massa pode incluir criações, atualizações ou exclusões para múltiplos proprietários e repositórios. <0>Leia Mais...0>",
+ "provide_npm_name_and_version": "Forneça nome e versão do pacote NPM para ser buscado no <0>Registro de Pacotes FHIR0>:",
+ "existing_imports": "Importações Existentes",
+ "result_expiry_message": "Resultados expirarão após <0>72 horas0> a partir do horário de início da tarefa",
+ "filter_tooltip": "Filtrar por fila ou status",
+ "refresh_list_tooltip": "Atualizar Lista",
+ "search_placeholder": "Buscar por ID da tarefa, status ou nome da fila...",
+ "filter_by_date_tooltip": "Filtrar por data",
+ "statuses": "Status",
+ "queues": "Filas",
+ "result_expired": "Resultado Expirado",
+ "received": "Recebido",
+ "queue": "Fila",
+ "download_report": "Baixar Relatório",
+ "task_id": "ID da Tarefa",
+ "started": "Iniciado",
+ "runtime": "Tempo de Execução",
+ "failed": "Falhou",
+ "retries": "Tentativas",
+ "revoked": "Revogado",
+ "exception": "Exceção",
+ "result": "Resultado",
+ "args": "Args",
+ "sub_tasks": "Sub-tarefas"
+ },
+ "cloneToSource": {
+ "title": "Clonar Conceito(s) para Source",
+ "clone_to_source": "Clonar para Source",
+ "description": "Esta operação clonará o(s) conceito(s) selecionado(s), mais quaisquer respostas ou membros de conjunto, seguindo recursivamente os mapeamentos especificados. Conceitos já presentes no Source de destino são ignorados.",
+ "target_source": "Source de Destino",
+ "no_sources": "Nenhum Source encontrado",
+ "advanced_settings": "Configurações avançadas",
+ "advanced_caution": "Cuidado: alterar estas configurações pode resultar em uma clonagem incompleta (ex.: respostas ou membros de conjunto faltando).",
+ "origination_sources": "Source(s) de Originação",
+ "destination_source": "Source de Destino",
+ "summary": "{{count}} conceito(s) selecionado(s) serão clonados em",
+ "cloning": "Clonando conceito(s)…",
+ "clone_button": "Clonar",
+ "clone_finished": "Clonagem finalizada. Veja a coluna de resultados para detalhes.",
+ "preview_api_call": "Visualizar chamada da API",
+ "hide_api_call": "Ocultar chamada da API",
+ "same_source_warning": "Mesmo Source do destino. Nada será clonado.",
+ "preview_header": "Visualização",
+ "results_header": "Resultados",
+ "preview_title": "Visualização",
+ "preview_tooltip": "Visualizar o que será clonado",
+ "preview_result_tooltip": "Visualizar conceito clonado",
+ "concepts_count": "Conceitos ({{count}})",
+ "mappings_count": "Mapeamentos ({{count}})",
+ "no_concepts": "Nenhum conceito",
+ "no_mappings": "Nenhum mapeamento",
+ "cloned_count": "{{count}} clonado(s)",
+ "nothing_cloned": "Nada clonado",
+ "failed": "Falhou",
+ "back": "Voltar",
+ "cascade_levels": "Níveis de Cascata",
+ "map_types": "Tipos de Mapeamento",
+ "exclude_map_types": "Excluir Tipos de Mapeamento",
+ "return_map_types": "Retornar Tipos de Mapeamento",
+ "equivalency_map_type": "Tipo de Mapeamento de Equivalência",
+ "map_types_placeholder": "ex.: Q-AND-A,CONCEPT-SET",
+ "equivalency_map_type_placeholder": "ex.: SAME-AS,CONCEPT-SET"
+ },
+ "sort": {
+ "source": "Source",
+ "most_relevant": "Mais relevantes",
+ "newest_first": "Mais recentes primeiro",
+ "oldest_first": "Mais antigos primeiro",
+ "recently_joined": "Ingressaram recentemente",
+ "longest_member": "Membro mais antigo",
+ "a_z": "A-Z",
+ "z_a": "Z-A",
+ "num_asc": "0-9",
+ "num_desc": "9-0",
+ "tooltip_a_z": "Ordenar por {{field}}, A a Z",
+ "tooltip_z_a": "Ordenar por {{field}}, Z a A",
+ "tooltip_num_asc": "Ordenar por {{field}}, menor número primeiro",
+ "tooltip_num_desc": "Ordenar por {{field}}, maior número primeiro",
+ "clear": "Limpar Ordenação"
+ },
+ "announcement": {
+ "title": "Bem-vindo à prévia pública do novo OCL TermBrowser v3!",
+ "text": "Seu conteúdo já está aqui, e você pode voltar para o TBv2 a qualquer momento.",
+ "link_label": "Saiba mais",
+ "dismiss": "Dispensar"
+ },
+ "quota": {
+ "title_quota": "Você atingiu sua cota",
+ "title_cap": "Você atingiu seu limite",
+ "title_limit": "Isso está acima do seu limite",
+ "your_plan": "Seu plano",
+ "used_of": "{{used}} de {{limit}} usado(s)",
+ "requested_of": {
+ "generic": "{{requested}} solicitado(s), limite {{limit}}",
+ "import_file_size": "{{requested}} KB, limite {{limit}} KB",
+ "clone_resources": "Mais de {{limit}} conceitos e mapeamentos"
+ },
+ "period_one_time": "Permissão de prévia única",
+ "request_more_access": "Solicitar mais acesso",
+ "view_pricing": "Ver preços",
+ "meter": {
+ "match_operations": "Operações de correspondência",
+ "ai_assistant_calls": "Chamadas do Assistente de IA do OCL",
+ "ai_assistant_change_comments": "Comentários de atualização do Assistente de IA do OCL",
+ "projects": "Projetos de Mapeamento",
+ "rows": "Linhas por projeto",
+ "import_file_size": "Tamanho da importação",
+ "clone_resources": "Conceitos e mapeamentos por clonagem",
+ "generic": "Uso"
+ },
+ "consequence": {
+ "generic": "Alguns recursos estão pausados até que sua permissão seja aumentada.",
+ "ai_assistant_calls": {
+ "default": "Recursos que usam o Assistente de IA do OCL estão pausados.",
+ "auto_match": "Correspondência Automática continuará rodando sem recomendações do Assistente de IA do OCL."
+ },
+ "ai_assistant_change_comments": {
+ "default": "Você ainda pode escrever o comentário de atualização sozinho, sem um rascunho do Assistente de IA do OCL.",
+ "tbv3_change_comment": "Você ainda pode escrever o comentário de atualização sozinho, sem um rascunho do Assistente de IA do OCL."
+ },
+ "match_operations": {
+ "default": "Correspondência está pausada.",
+ "auto_match": "Você ainda pode revisar, editar e exportar seus projetos, mas a Correspondência Automática está pausada.",
+ "tbv3_match": "Busca continuará funcionando, mas $match com Busca Semântica do OCL está pausado."
+ },
+ "projects": {
+ "default": "Seus projetos existentes permanecem abertos; delete um para liberar um espaço para um novo.",
+ "new_project": "Seus projetos existentes permanecem abertos; delete um para liberar um espaço para um novo."
+ },
+ "rows": {
+ "default": "Linhas além do seu limite permanecem no projeto mas não são correspondidas.",
+ "import": "Linhas além do seu limite permanecem no projeto mas não são correspondidas."
+ },
+ "import_file_size": {
+ "default": "Divida o arquivo em importações menores, ou solicite mais acesso."
+ },
+ "clone_resources": {
+ "default": "Clone um conceito mais estreito ou menos níveis de cascata, ou solicite mais acesso."
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/i18n/locales/zh/translations.json b/src/i18n/locales/zh/translations.json
index abe4d43b3..de5626299 100644
--- a/src/i18n/locales/zh/translations.json
+++ b/src/i18n/locales/zh/translations.json
@@ -544,7 +544,9 @@
"about_me": "关于我",
"about_me_description": "创建用于他人访问您的个人资料时阅读的简介(200 个字符)。",
"user_has_not_created_public_repos_suffix": "尚未创建任何公开的存储库",
- "recent_activity": "最近的活动"
+ "recent_activity": "最近的活动",
+ "own_recent_activity": "您的近期活动",
+ "recent_activity_of": "{{name}} 的近期活动"
},
"reference": {
"actions": "操作",