@hed-hog/operations 0.0.332 → 0.0.338
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/controllers/operations-collaborators.controller.d.ts +0 -54
- package/dist/controllers/operations-collaborators.controller.d.ts.map +1 -1
- package/dist/controllers/operations-collaborators.controller.js +0 -100
- package/dist/controllers/operations-collaborators.controller.js.map +1 -1
- package/dist/controllers/operations-contracts.controller.d.ts +12 -12
- package/dist/operations.service.d.ts +0 -76
- package/dist/operations.service.d.ts.map +1 -1
- package/dist/operations.service.js +7 -230
- package/dist/operations.service.js.map +1 -1
- package/dist/operations.service.spec.js +6 -0
- package/dist/operations.service.spec.js.map +1 -1
- package/hedhog/data/menu.yaml +8 -27
- package/hedhog/data/route.yaml +0 -72
- package/hedhog/frontend/app/_components/collaborator-details-screen.tsx.ejs +476 -0
- package/hedhog/frontend/app/_components/collaborator-form-screen.tsx.ejs +3 -39
- package/hedhog/frontend/app/_components/collaborator-select-with-create.tsx.ejs +261 -0
- package/hedhog/frontend/app/_components/collaborator-tasks-tab.tsx.ejs +358 -358
- package/hedhog/frontend/app/_components/collaborator-timesheets-tab.tsx.ejs +6 -6
- package/hedhog/frontend/app/_components/contract-content-editor.tsx.ejs +258 -0
- package/hedhog/frontend/app/_components/my-project-summary-screen.tsx.ejs +5 -4
- package/hedhog/frontend/app/_components/person-select-with-create.tsx.ejs +1 -0
- package/hedhog/frontend/app/_components/project-assignments-tab.tsx.ejs +10 -218
- package/hedhog/frontend/app/_components/project-cost-report-screen.tsx.ejs +23 -23
- package/hedhog/frontend/app/_components/project-details-screen.tsx.ejs +24 -708
- package/hedhog/frontend/app/_components/project-form-screen.tsx.ejs +38 -158
- package/hedhog/frontend/app/_components/task-detail-sheet.tsx.ejs +1 -5
- package/hedhog/frontend/app/_components/task-form-sheet.tsx.ejs +629 -629
- package/hedhog/frontend/app/_lib/api.ts.ejs +0 -151
- package/hedhog/frontend/app/_lib/types.ts.ejs +0 -1
- package/hedhog/frontend/app/_lib/utils/task-ui.ts.ejs +0 -18
- package/hedhog/frontend/app/my-projects/page.tsx.ejs +2 -16
- package/hedhog/frontend/app/my-tasks/page.tsx.ejs +86 -24
- package/hedhog/frontend/app/projects/page.tsx.ejs +6 -42
- package/hedhog/frontend/messages/en.json +2 -96
- package/hedhog/frontend/messages/operations/operations/en.json +2100 -0
- package/hedhog/frontend/messages/operations/operations/pt.json +2111 -0
- package/hedhog/frontend/messages/pt.json +2 -96
- package/hedhog/frontend/widgets/capacity-distribution.tsx.ejs +16 -16
- package/hedhog/frontend/widgets/effort-by-project.tsx.ejs +16 -16
- package/hedhog/frontend/widgets/headcount-by-area.tsx.ejs +16 -16
- package/hedhog/frontend/widgets/index.ts.ejs +25 -25
- package/hedhog/frontend/widgets/managed-projects-status.tsx.ejs +16 -16
- package/hedhog/frontend/widgets/my-hours-period-kpi.tsx.ejs +16 -16
- package/hedhog/frontend/widgets/my-open-requests-kpi.tsx.ejs +16 -16
- package/hedhog/frontend/widgets/my-pending-requests-list.tsx.ejs +16 -16
- package/hedhog/frontend/widgets/my-project-allocations-kpi.tsx.ejs +16 -16
- package/hedhog/frontend/widgets/my-quick-actions.tsx.ejs +16 -16
- package/hedhog/frontend/widgets/my-relevant-deadlines.tsx.ejs +16 -16
- package/hedhog/frontend/widgets/my-timesheet-status-kpi.tsx.ejs +16 -16
- package/hedhog/frontend/widgets/my-weekly-journey.tsx.ejs +16 -16
- package/hedhog/frontend/widgets/portfolio-costs-kpi.tsx.ejs +16 -16
- package/hedhog/frontend/widgets/portfolio-effort-kpi.tsx.ejs +16 -16
- package/hedhog/frontend/widgets/portfolio-projects-kpi.tsx.ejs +16 -16
- package/hedhog/frontend/widgets/portfolio-risk-kpi.tsx.ejs +16 -16
- package/hedhog/frontend/widgets/project-status-overview.tsx.ejs +16 -16
- package/hedhog/frontend/widgets/shared-operations-widget.tsx.ejs +169 -169
- package/hedhog/frontend/widgets/strategic-deadlines.tsx.ejs +16 -16
- package/hedhog/frontend/widgets/team-approval-queue.tsx.ejs +16 -16
- package/hedhog/frontend/widgets/team-capacity-kpi.tsx.ejs +16 -16
- package/hedhog/frontend/widgets/team-headcount-kpi.tsx.ejs +16 -16
- package/hedhog/frontend/widgets/team-hours-kpi.tsx.ejs +16 -16
- package/hedhog/frontend/widgets/team-pending-approvals-kpi.tsx.ejs +16 -16
- package/hedhog/frontend/widgets/team-utilization-overview.tsx.ejs +16 -16
- package/hedhog/frontend/widgets/team-workload-alerts.tsx.ejs +16 -16
- package/hedhog/table/operations_collaborator.yaml +8 -8
- package/hedhog/table/operations_task.yaml +76 -76
- package/hedhog/table/operations_task_activity.yaml +51 -51
- package/package.json +6 -6
- package/src/controllers/operations-collaborators.controller.ts +8 -117
- package/src/controllers/operations-tasks.controller.ts +156 -156
- package/src/dashboard/widgets/MyQuickActions.tsx +22 -22
- package/src/dto/create-collaborator.dto.ts +4 -4
- package/src/operations.service.spec.ts +1006 -988
- package/src/operations.service.ts +7 -323
- package/dist/dto/create-collaborator-invoice.dto.d.ts +0 -11
- package/dist/dto/create-collaborator-invoice.dto.d.ts.map +0 -1
- package/dist/dto/create-collaborator-invoice.dto.js +0 -55
- package/dist/dto/create-collaborator-invoice.dto.js.map +0 -1
- package/dist/dto/create-collaborator-payment.dto.d.ts +0 -10
- package/dist/dto/create-collaborator-payment.dto.d.ts.map +0 -1
- package/dist/dto/create-collaborator-payment.dto.js +0 -50
- package/dist/dto/create-collaborator-payment.dto.js.map +0 -1
- package/dist/dto/list-collaborator-invoice.dto.d.ts +0 -4
- package/dist/dto/list-collaborator-invoice.dto.d.ts.map +0 -1
- package/dist/dto/list-collaborator-invoice.dto.js +0 -8
- package/dist/dto/list-collaborator-invoice.dto.js.map +0 -1
- package/dist/dto/list-collaborator-payment.dto.d.ts +0 -4
- package/dist/dto/list-collaborator-payment.dto.d.ts.map +0 -1
- package/dist/dto/list-collaborator-payment.dto.js +0 -8
- package/dist/dto/list-collaborator-payment.dto.js.map +0 -1
- package/dist/dto/update-collaborator-invoice.dto.d.ts +0 -6
- package/dist/dto/update-collaborator-invoice.dto.d.ts.map +0 -1
- package/dist/dto/update-collaborator-invoice.dto.js +0 -9
- package/dist/dto/update-collaborator-invoice.dto.js.map +0 -1
- package/dist/dto/update-collaborator-payment.dto.d.ts +0 -6
- package/dist/dto/update-collaborator-payment.dto.d.ts.map +0 -1
- package/dist/dto/update-collaborator-payment.dto.js +0 -9
- package/dist/dto/update-collaborator-payment.dto.js.map +0 -1
- package/hedhog/frontend/app/_components/collaborator-invoices-tab.tsx.ejs +0 -443
- package/hedhog/frontend/app/_components/collaborator-payment-history-tab.tsx.ejs +0 -429
- package/hedhog/frontend/app/tasks-gantt/page.tsx.ejs +0 -953
- package/hedhog/table/operations_collaborator_invoice.yaml +0 -35
- package/hedhog/table/operations_collaborator_payment.yaml +0 -32
- package/src/dto/create-collaborator-invoice.dto.ts +0 -39
- package/src/dto/create-collaborator-payment.dto.ts +0 -35
- package/src/dto/list-collaborator-invoice.dto.ts +0 -3
- package/src/dto/list-collaborator-payment.dto.ts +0 -3
- package/src/dto/update-collaborator-invoice.dto.ts +0 -6
- package/src/dto/update-collaborator-payment.dto.ts +0 -6
|
@@ -0,0 +1,2111 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Common": {
|
|
3
|
+
"actions": {
|
|
4
|
+
"refresh": "Atualizar",
|
|
5
|
+
"create": "Criar",
|
|
6
|
+
"back": "Voltar",
|
|
7
|
+
"edit": "Editar",
|
|
8
|
+
"openContract": "Abrir contrato",
|
|
9
|
+
"activate": "Ativar",
|
|
10
|
+
"deactivate": "Desativar",
|
|
11
|
+
"save": "Salvar",
|
|
12
|
+
"delete": "Excluir",
|
|
13
|
+
"archive": "Arquivar",
|
|
14
|
+
"unarchive": "Desarquivar",
|
|
15
|
+
"addLine": "Adicionar linha",
|
|
16
|
+
"approve": "Aprovar",
|
|
17
|
+
"reject": "Rejeitar",
|
|
18
|
+
"submit": "Enviar",
|
|
19
|
+
"cancel": "Cancelar",
|
|
20
|
+
"loadMore": "Carregar mais",
|
|
21
|
+
"clearSelection": "Limpar seleção",
|
|
22
|
+
"manageDepartments": "Gerenciar departamentos",
|
|
23
|
+
"manageCollaboratorTypes": "Gerenciar tipos de colaborador",
|
|
24
|
+
"manageTemplates": "Gerenciar templates",
|
|
25
|
+
"useTemplate": "Usar template"
|
|
26
|
+
},
|
|
27
|
+
"filters": {
|
|
28
|
+
"allStatuses": "Todos os status",
|
|
29
|
+
"allTypes": "Todos os tipos",
|
|
30
|
+
"dateFrom": "De",
|
|
31
|
+
"dateTo": "Até"
|
|
32
|
+
},
|
|
33
|
+
"labels": {
|
|
34
|
+
"notAvailable": "Não informado",
|
|
35
|
+
"notAssigned": "Não atribuído",
|
|
36
|
+
"collaborator": "Colaborador",
|
|
37
|
+
"collaborators": "Colaboradores",
|
|
38
|
+
"collaboratorType": "Tipo",
|
|
39
|
+
"department": "Departamento",
|
|
40
|
+
"supervisor": "Supervisor",
|
|
41
|
+
"weeklyCapacity": "Capacidade semanal",
|
|
42
|
+
"joinedAt": "Entrada",
|
|
43
|
+
"leftAt": "Saída",
|
|
44
|
+
"actions": "Ações",
|
|
45
|
+
"name": "Nome",
|
|
46
|
+
"status": "Status",
|
|
47
|
+
"task": "Tarefa",
|
|
48
|
+
"project": "Projeto",
|
|
49
|
+
"contract": "Contrato",
|
|
50
|
+
"contractStatus": "Status do contrato",
|
|
51
|
+
"contractCategory": "Categoria do contrato",
|
|
52
|
+
"contractType": "Tipo do contrato",
|
|
53
|
+
"signatureStatus": "Status da assinatura",
|
|
54
|
+
"manager": "Gestor",
|
|
55
|
+
"progress": "Progresso",
|
|
56
|
+
"timeline": "Período",
|
|
57
|
+
"budget": "Orçamento",
|
|
58
|
+
"code": "Código",
|
|
59
|
+
"deliveryModel": "Modelo de entrega",
|
|
60
|
+
"allocationPercent": "Alocação %",
|
|
61
|
+
"teamSize": "Tamanho da equipe",
|
|
62
|
+
"client": "Cliente",
|
|
63
|
+
"billingModel": "Modelo de faturamento",
|
|
64
|
+
"accountManager": "Responsável pela conta",
|
|
65
|
+
"projectCount": "Qtd. de projetos",
|
|
66
|
+
"entries": "Lançamentos",
|
|
67
|
+
"totalHours": "Total de horas",
|
|
68
|
+
"approver": "Aprovador",
|
|
69
|
+
"noNotes": "Sem observações",
|
|
70
|
+
"decisionNote": "Nota da decisão",
|
|
71
|
+
"lines": "linhas",
|
|
72
|
+
"unassigned": "Sem vinculação",
|
|
73
|
+
"viewOnly": "Somente leitura",
|
|
74
|
+
"week": "Semana",
|
|
75
|
+
"weekStart": "Início da semana",
|
|
76
|
+
"weekEnd": "Fim da semana",
|
|
77
|
+
"notes": "Observações",
|
|
78
|
+
"projectAssignment": "Alocação do projeto",
|
|
79
|
+
"activity": "Tarefa / atividade",
|
|
80
|
+
"description": "Descrição",
|
|
81
|
+
"deadline": "Prazo",
|
|
82
|
+
"workDate": "Data trabalhada",
|
|
83
|
+
"hours": "Horas",
|
|
84
|
+
"days": "Dias",
|
|
85
|
+
"reason": "Motivo",
|
|
86
|
+
"requestType": "Tipo de solicitação",
|
|
87
|
+
"requestScope": "Escopo da solicitação",
|
|
88
|
+
"schedule": "Horário",
|
|
89
|
+
"weeklySchedule": "Horário semanal",
|
|
90
|
+
"workingDay": "Dia útil",
|
|
91
|
+
"dayOff": "Folga",
|
|
92
|
+
"requester": "Solicitante",
|
|
93
|
+
"submittedAt": "Enviado em",
|
|
94
|
+
"noteOptional": "Observação opcional",
|
|
95
|
+
"activeAssignments": "Alocações ativas",
|
|
96
|
+
"pendingApprovals": "Aprovações pendentes",
|
|
97
|
+
"startDate": "Data inicial",
|
|
98
|
+
"endDate": "Data final",
|
|
99
|
+
"monthlyHourCap": "Limite mensal de horas",
|
|
100
|
+
"title": "Cargo",
|
|
101
|
+
"role": "Papel",
|
|
102
|
+
"total": "Total",
|
|
103
|
+
"pending": "Pendentes",
|
|
104
|
+
"approved": "Aprovadas",
|
|
105
|
+
"searchCollaborator": "Buscar colaborador...",
|
|
106
|
+
"noCollaboratorsFound": "Nenhum colaborador encontrado.",
|
|
107
|
+
"searchTemplate": "Buscar template...",
|
|
108
|
+
"noTemplatesFound": "Nenhum template encontrado.",
|
|
109
|
+
"loading": "Carregando..."
|
|
110
|
+
},
|
|
111
|
+
"states": {
|
|
112
|
+
"emptyTitle": "Nenhum registro encontrado",
|
|
113
|
+
"emptyDescription": "Ajuste os filtros atuais ou crie um novo registro.",
|
|
114
|
+
"noAccessTitle": "Acesso necessário"
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
"DashboardPage": {
|
|
118
|
+
"title": "Dashboard de Operações",
|
|
119
|
+
"description": "Monitore entrega, solicitações e aprovações da equipe em um único lugar.",
|
|
120
|
+
"breadcrumb": "Dashboard",
|
|
121
|
+
"cards": {
|
|
122
|
+
"projects": "Projetos visíveis",
|
|
123
|
+
"projectsDescription": "{active} ativos no momento",
|
|
124
|
+
"timesheets": "Timesheets visíveis",
|
|
125
|
+
"timesheetsDescription": "{pending} aguardando aprovação",
|
|
126
|
+
"timeOff": "Solicitações de ausência",
|
|
127
|
+
"timeOffDescription": "Solicitações aprovadas, pendentes e rejeitadas",
|
|
128
|
+
"approvals": "Aprovações pendentes",
|
|
129
|
+
"approvalsDescription": "Itens que ainda dependem de decisão do supervisor"
|
|
130
|
+
},
|
|
131
|
+
"actions": {
|
|
132
|
+
"openTimesheets": "Abrir timesheets"
|
|
133
|
+
},
|
|
134
|
+
"scope": {
|
|
135
|
+
"title": "Escopo de acesso",
|
|
136
|
+
"description": "O dashboard respeita automaticamente a visão de colaborador, supervisor ou diretor.",
|
|
137
|
+
"roleScope": "Escopo",
|
|
138
|
+
"collaborator": "Colaborador vinculado",
|
|
139
|
+
"teamSize": "Liderados diretos"
|
|
140
|
+
},
|
|
141
|
+
"recentTimesheets": {
|
|
142
|
+
"title": "Timesheets recentes",
|
|
143
|
+
"description": "Últimos registros semanais visíveis para o seu papel.",
|
|
144
|
+
"empty": "Ainda não existem timesheets disponíveis."
|
|
145
|
+
},
|
|
146
|
+
"nextSteps": {
|
|
147
|
+
"title": "Próximas ações",
|
|
148
|
+
"description": "Ações operacionais mais comuns disponíveis neste módulo.",
|
|
149
|
+
"submitTimesheet": "Criar ou enviar sua timesheet semanal para revisão.",
|
|
150
|
+
"requestTimeOff": "Abrir uma nova solicitação de férias ou ausência.",
|
|
151
|
+
"adjustSchedule": "Enviar um ajuste de horário semanal para aprovação."
|
|
152
|
+
},
|
|
153
|
+
"team": {
|
|
154
|
+
"title": "Resumo da equipe",
|
|
155
|
+
"description": "Visibilidade de liderados diretos para supervisores e diretores.",
|
|
156
|
+
"members": "Membros da equipe",
|
|
157
|
+
"projects": "Projetos visíveis",
|
|
158
|
+
"pendingApprovals": "Aprovações pendentes",
|
|
159
|
+
"assignments": "Alocações",
|
|
160
|
+
"awaitingReview": "Aguardando revisão",
|
|
161
|
+
"empty": "Ainda não existem liderados diretos vinculados a este supervisor.",
|
|
162
|
+
"collaboratorMessage": "Os papéis de supervisor e diretor liberam a visão operacional da equipe."
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
"CollaboratorsPage": {
|
|
166
|
+
"title": "Colaboradores",
|
|
167
|
+
"description": "Mantenha perfis operacionais, linhas de reporte e capacidade da equipe.",
|
|
168
|
+
"breadcrumb": "Colaboradores",
|
|
169
|
+
"searchPlaceholder": "Buscar colaborador, código, departamento ou cargo...",
|
|
170
|
+
"profileTitle": "Meu perfil operacional",
|
|
171
|
+
"profileDescription": "Visão de autoatendimento do perfil operacional vinculado ao seu usuário.",
|
|
172
|
+
"emptyDescription": "Nenhum colaborador corresponde aos filtros atuais.",
|
|
173
|
+
"viewMode": "Visualização",
|
|
174
|
+
"viewModeTable": "Tabela",
|
|
175
|
+
"viewModeCards": "Grade",
|
|
176
|
+
"cards": {
|
|
177
|
+
"total": "Total de colaboradores",
|
|
178
|
+
"totalDescription": "Todos os colaboradores registrados.",
|
|
179
|
+
"totalTooltip": "Inclui todos os colaboradores operacionais cadastrados no sistema, independente do status.",
|
|
180
|
+
"active": "Colaboradores ativos",
|
|
181
|
+
"activeDescription": "Com status operacional ativo.",
|
|
182
|
+
"activeTooltip": "Colaboradores em atividade com status ativo no momento da consulta.",
|
|
183
|
+
"onLeave": "Em afastamento",
|
|
184
|
+
"onLeaveDescription": "Afastados temporariamente.",
|
|
185
|
+
"onLeaveTooltip": "Temporariamente afastados — contabilizados na capacidade, mas não disponíveis para alocação.",
|
|
186
|
+
"withContracts": "Com contrato",
|
|
187
|
+
"withContractsDescription": "Vinculados a ao menos um contrato.",
|
|
188
|
+
"withContractsTooltip": "Colaboradores com pelo menos um contrato ativo ou histórico registrado.",
|
|
189
|
+
"totalSalary": "Total de salários",
|
|
190
|
+
"totalSalaryDescription": "Soma das remunerações base (todos).",
|
|
191
|
+
"totalSalaryTooltip": "Soma do valor de remuneração base do contrato principal de cada colaborador ativo no sistema.",
|
|
192
|
+
"totalCosts": "Total de custos",
|
|
193
|
+
"totalCostsDescription": "Soma dos custos adicionais (todos).",
|
|
194
|
+
"totalCostsTooltip": "Soma de todos os custos extras cadastrados (benefícios, encargos, equipamentos etc.) para todos os colaboradores.",
|
|
195
|
+
"avgSalaryPlusCosts": "Total salário + custos",
|
|
196
|
+
"avgSalaryPlusCostsDescription": "Remunerações + custos combinados (todos).",
|
|
197
|
+
"avgSalaryPlusCostsTooltip": "Soma global de remunerações base e custos adicionais de todos os colaboradores do sistema.",
|
|
198
|
+
"avgSalaryPlusCostsPerCollaborator": "Médio por colaborador",
|
|
199
|
+
"avgSalaryPlusCostsPerCollaboratorDescription": "Custo médio total por colaborador (todos).",
|
|
200
|
+
"avgSalaryPlusCostsPerCollaboratorTooltip": "Média de (salário + custos) dividida pelo total de colaboradores do sistema."
|
|
201
|
+
},
|
|
202
|
+
"sheet": {
|
|
203
|
+
"createTitle": "Criar colaborador",
|
|
204
|
+
"editTitle": "Editar colaborador",
|
|
205
|
+
"description": "Crie ou atualize o perfil de workforce usado em projetos, contratos e aprovações."
|
|
206
|
+
},
|
|
207
|
+
"form": {
|
|
208
|
+
"userId": "ID do usuário",
|
|
209
|
+
"code": "Código",
|
|
210
|
+
"displayName": "Nome exibido",
|
|
211
|
+
"department": "Departamento",
|
|
212
|
+
"title": "Cargo",
|
|
213
|
+
"levelLabel": "Nível",
|
|
214
|
+
"weeklyCapacityHours": "Horas semanais",
|
|
215
|
+
"notes": "Observações"
|
|
216
|
+
},
|
|
217
|
+
"messages": {
|
|
218
|
+
"userRequired": "Um ID de usuário é obrigatório para novos colaboradores.",
|
|
219
|
+
"requiredFields": "Código e nome exibido são obrigatórios.",
|
|
220
|
+
"saveSuccess": "Colaborador salvo com sucesso.",
|
|
221
|
+
"saveError": "Não foi possível salvar o colaborador.",
|
|
222
|
+
"statusSuccess": "Status do colaborador atualizado com sucesso.",
|
|
223
|
+
"statusError": "Não foi possível atualizar o status do colaborador."
|
|
224
|
+
}
|
|
225
|
+
},
|
|
226
|
+
"DepartmentsPage": {
|
|
227
|
+
"title": "Departamentos",
|
|
228
|
+
"description": "Gerencie os departamentos operacionais usados nos perfis de colaboradores e na estrutura de reporte.",
|
|
229
|
+
"breadcrumb": "Departamentos",
|
|
230
|
+
"searchPlaceholder": "Buscar departamento, código ou descrição...",
|
|
231
|
+
"emptyDescription": "Nenhum departamento corresponde aos filtros atuais.",
|
|
232
|
+
"noAccessDescription": "Permissões de diretor são necessárias para gerenciar departamentos.",
|
|
233
|
+
"cards": {
|
|
234
|
+
"total": "Total de departamentos",
|
|
235
|
+
"active": "Departamentos ativos",
|
|
236
|
+
"linkedCollaborators": "Colaboradores vinculados",
|
|
237
|
+
"inactive": "Departamentos inativos"
|
|
238
|
+
},
|
|
239
|
+
"columns": {
|
|
240
|
+
"name": "Nome",
|
|
241
|
+
"code": "Código",
|
|
242
|
+
"description": "Descrição",
|
|
243
|
+
"collaborators": "Colaboradores"
|
|
244
|
+
},
|
|
245
|
+
"sheet": {
|
|
246
|
+
"createTitle": "Criar departamento",
|
|
247
|
+
"editTitle": "Editar departamento",
|
|
248
|
+
"description": "Mantenha o catálogo de departamentos de operações organizado e pronto para vinculação dos colaboradores."
|
|
249
|
+
},
|
|
250
|
+
"form": {
|
|
251
|
+
"name": "Nome do departamento",
|
|
252
|
+
"code": "Código",
|
|
253
|
+
"description": "Descrição",
|
|
254
|
+
"status": "Status"
|
|
255
|
+
},
|
|
256
|
+
"viewMode": "Visualização",
|
|
257
|
+
"viewModeTable": "Tabela",
|
|
258
|
+
"viewModeCards": "Grade",
|
|
259
|
+
"messages": {
|
|
260
|
+
"requiredFields": "O nome do departamento é obrigatório.",
|
|
261
|
+
"saveSuccess": "Departamento salvo com sucesso.",
|
|
262
|
+
"saveError": "Não foi possível salvar o departamento.",
|
|
263
|
+
"statusSuccess": "Status do departamento atualizado com sucesso.",
|
|
264
|
+
"statusError": "Não foi possível atualizar o status do departamento."
|
|
265
|
+
}
|
|
266
|
+
},
|
|
267
|
+
"CollaboratorFormPage": {
|
|
268
|
+
"newTitle": "Novo Colaborador",
|
|
269
|
+
"editTitle": "Editar Colaborador",
|
|
270
|
+
"breadcrumb": "Cadastro de Colaborador",
|
|
271
|
+
"description": "Cadastre colaboradores com o perfil de contratação correto e gere um contrato rascunho a partir da origem de admissão quando necessário.",
|
|
272
|
+
"noAccessDescription": "Permissões de diretor são necessárias para cadastrar ou editar colaboradores.",
|
|
273
|
+
"loading": "Carregando dados do colaborador...",
|
|
274
|
+
"tabs": {
|
|
275
|
+
"profile": "Cadastro",
|
|
276
|
+
"contract": "Contrato",
|
|
277
|
+
"schedule": "Agenda",
|
|
278
|
+
"activity": "Atividade",
|
|
279
|
+
"details": "Detalhes",
|
|
280
|
+
"costs": "Custos",
|
|
281
|
+
"defaultSchedule": "Horário Padrão",
|
|
282
|
+
"projects": "Projetos",
|
|
283
|
+
"tasks": "Tarefas",
|
|
284
|
+
"timesheets": "Apontamentos"
|
|
285
|
+
},
|
|
286
|
+
"sections": {
|
|
287
|
+
"basicInfo": "Informações básicas",
|
|
288
|
+
"basicInfoDescription": "Dados principais de identificação usados em toda a operação.",
|
|
289
|
+
"employmentInfo": "Informações de contratação",
|
|
290
|
+
"employmentInfoDescription": "Defina o tipo do colaborador, o status do ciclo e as datas principais.",
|
|
291
|
+
"employmentInfoCreateDescription": "Escolha o tipo de vínculo e as datas iniciais. Capacidade semanal e remuneração podem ser ajustadas após a criação.",
|
|
292
|
+
"equity": "Detalhes de participação societária",
|
|
293
|
+
"equityDescription": "Preencha esta seção apenas quando a relação selecionada exigir dados de propriedade ou governança.",
|
|
294
|
+
"supervisor": "Vínculo de supervisor",
|
|
295
|
+
"supervisorDescription": "Associe o supervisor direto usado para visão de equipe e aprovações.",
|
|
296
|
+
"contract": "Remuneração e contrato",
|
|
297
|
+
"contractDescription": "Defina a remuneração base e vincule ou crie o contrato relacionado a este colaborador.",
|
|
298
|
+
"costs": "Custos do colaborador",
|
|
299
|
+
"costsDescription": "Gerencie custos recorrentes e avulsos associados a este colaborador.",
|
|
300
|
+
"costsSaveBefore": "Salve o colaborador antes de adicionar custos.",
|
|
301
|
+
"schedule": "Horário semanal padrão",
|
|
302
|
+
"scheduleDescription": "Defina o horário recorrente esperado para uso operacional e nos fluxos de aprovação."
|
|
303
|
+
},
|
|
304
|
+
"fields": {
|
|
305
|
+
"person": "Pessoa",
|
|
306
|
+
"personEntityLabel": "pessoa",
|
|
307
|
+
"personDescription": "Selecione uma pessoa existente ou cadastre uma nova sem sair desta tela.",
|
|
308
|
+
"userId": "Usuário do sistema",
|
|
309
|
+
"userIdOptional": "Usuário do sistema (opcional)",
|
|
310
|
+
"userIdDescription": "Vincule a conta da plataforma que este colaborador vai usar para login, apontamentos e ações de autosserviço.",
|
|
311
|
+
"code": "Código",
|
|
312
|
+
"displayName": "Nome exibido",
|
|
313
|
+
"department": "Departamento",
|
|
314
|
+
"departmentDescription": "Selecione um departamento existente ou cadastre um novo para este colaborador.",
|
|
315
|
+
"title": "Cargo / função",
|
|
316
|
+
"titleDescription": "Selecione um cargo existente ou cadastre um novo para reutilizar nos próximos colaboradores.",
|
|
317
|
+
"levelLabel": "Nível",
|
|
318
|
+
"notes": "Observações",
|
|
319
|
+
"collaboratorType": "Tipo de colaborador",
|
|
320
|
+
"collaboratorTypeDescription": "Selecione a natureza da relação com a empresa. Função e participação societária permanecem separadas.",
|
|
321
|
+
"weeklyCapacityHours": "Carga horária semanal",
|
|
322
|
+
"compensationAmount": "Valor da remuneração",
|
|
323
|
+
"contract": "Contrato",
|
|
324
|
+
"contractPlaceholder": "Pesquisar ou selecionar contrato…",
|
|
325
|
+
"contractEmpty": "Nenhum contrato vinculado",
|
|
326
|
+
"contractCreateTitle": "Novo contrato",
|
|
327
|
+
"contractCreateDescription": "Crie um novo contrato e vincule a este colaborador.",
|
|
328
|
+
"contractNameField": "Nome do contrato",
|
|
329
|
+
"equityParticipationType": "Tipo de participação",
|
|
330
|
+
"equityPercentage": "Percentual societário",
|
|
331
|
+
"votingPower": "Poder de voto (%)",
|
|
332
|
+
"equityNotes": "Observações societárias",
|
|
333
|
+
"startTime": "Início",
|
|
334
|
+
"endTime": "Fim",
|
|
335
|
+
"breakMinutes": "Intervalo (min)",
|
|
336
|
+
"breakMinutesDescription": "O último campo numérico define o intervalo/pausa diária em minutos. Ex.: 60 = 1 hora de almoço.",
|
|
337
|
+
"autoGenerateContractDraft": "Gerar contrato rascunho automaticamente",
|
|
338
|
+
"autoGenerateContractDraftDescription": "Cria um contrato rascunho relacionado, classificado pelo tipo de colaborador e vinculado à origem de contratação.",
|
|
339
|
+
"createUserDescription": "Informe as credenciais do novo usuário do sistema. A conta será criada imediatamente e vinculada a este colaborador.",
|
|
340
|
+
"createUserName": "Nome completo",
|
|
341
|
+
"createUserEmail": "E-mail",
|
|
342
|
+
"createUserPassword": "Senha"
|
|
343
|
+
},
|
|
344
|
+
"options": {
|
|
345
|
+
"collaboratorTypes": {
|
|
346
|
+
"clt": "CLT",
|
|
347
|
+
"pj": "PJ",
|
|
348
|
+
"freelancer": "Freelancer",
|
|
349
|
+
"intern": "Estagiário",
|
|
350
|
+
"other": "Outro"
|
|
351
|
+
},
|
|
352
|
+
"levels": {
|
|
353
|
+
"junior": "Júnior",
|
|
354
|
+
"mid": "Pleno",
|
|
355
|
+
"senior": "Sênior",
|
|
356
|
+
"coordinator": "Coordenador",
|
|
357
|
+
"manager": "Gerente"
|
|
358
|
+
},
|
|
359
|
+
"equityParticipationTypes": {
|
|
360
|
+
"partner_quota_holder": "Sócio quotista",
|
|
361
|
+
"common_shareholder": "Acionista ordinário",
|
|
362
|
+
"preferred_shareholder": "Acionista preferencial",
|
|
363
|
+
"administrator": "Administrador",
|
|
364
|
+
"other": "Outro"
|
|
365
|
+
},
|
|
366
|
+
"statuses": {
|
|
367
|
+
"active": "Ativo",
|
|
368
|
+
"on_leave": "Em afastamento",
|
|
369
|
+
"inactive": "Inativo",
|
|
370
|
+
"draft": "Rascunho"
|
|
371
|
+
}
|
|
372
|
+
},
|
|
373
|
+
"placeholders": {
|
|
374
|
+
"person": "Selecione ou cadastre uma pessoa",
|
|
375
|
+
"department": "Selecione ou cadastre um departamento",
|
|
376
|
+
"departmentCreate": "Nome do departamento",
|
|
377
|
+
"title": "Selecione ou cadastre um cargo / função",
|
|
378
|
+
"titleCreate": "Nome do cargo / função",
|
|
379
|
+
"collaboratorType": "Selecione o tipo de colaborador",
|
|
380
|
+
"equityPercentage": "Ex.: 25",
|
|
381
|
+
"votingPower": "Ex.: 50",
|
|
382
|
+
"equityNotes": "Observações sobre cotas, ações, prazo ou poderes",
|
|
383
|
+
"levelLabel": "Selecione um nível",
|
|
384
|
+
"supervisor": "Busque um colaborador",
|
|
385
|
+
"userIdOptional": "Selecione um usuário do sistema",
|
|
386
|
+
"createUserName": "Nome completo",
|
|
387
|
+
"createUserEmail": "usuario@exemplo.com",
|
|
388
|
+
"createUserPassword": "Senha forte"
|
|
389
|
+
},
|
|
390
|
+
"actions": {
|
|
391
|
+
"createUser": "Criar usuário do sistema",
|
|
392
|
+
"editPersonCrm": "Editar cadastro de pessoa (CRM)"
|
|
393
|
+
},
|
|
394
|
+
"states": {
|
|
395
|
+
"loadingCollaboratorTypes": "Carregando tipos de colaborador..."
|
|
396
|
+
},
|
|
397
|
+
"messages": {
|
|
398
|
+
"userRequired": "O vínculo com usuário pode ser feito depois do cadastro inicial.",
|
|
399
|
+
"personRequired": "Selecione ou cadastre uma pessoa para o colaborador.",
|
|
400
|
+
"collaboratorTypeRequired": "Selecione um tipo de colaborador.",
|
|
401
|
+
"requiredFields": "O código do colaborador é obrigatório.",
|
|
402
|
+
"createSuccess": "Colaborador criado com sucesso.",
|
|
403
|
+
"createError": "Não foi possível criar o colaborador.",
|
|
404
|
+
"updateSuccess": "Colaborador atualizado com sucesso.",
|
|
405
|
+
"updateError": "Não foi possível atualizar o colaborador.",
|
|
406
|
+
"createUserSuccess": "Usuário criado e vinculado com sucesso.",
|
|
407
|
+
"createUserError": "Não foi possível criar o usuário do sistema."
|
|
408
|
+
}
|
|
409
|
+
},
|
|
410
|
+
"CollaboratorTypesPage": {
|
|
411
|
+
"title": "Tipos de colaborador",
|
|
412
|
+
"description": "Gerencie o catálogo de tipos de colaborador usado nos registros de colaboradores e nas regras operacionais.",
|
|
413
|
+
"breadcrumb": "Tipos de colaborador",
|
|
414
|
+
"searchPlaceholder": "Buscar tipo de colaborador, slug, categoria ou descrição...",
|
|
415
|
+
"emptyDescription": "Nenhum tipo de colaborador corresponde aos filtros atuais.",
|
|
416
|
+
"noAccessDescription": "Permissões de diretor são necessárias para gerenciar tipos de colaborador.",
|
|
417
|
+
"cards": {
|
|
418
|
+
"total": "Total de tipos",
|
|
419
|
+
"active": "Tipos ativos",
|
|
420
|
+
"linkedCollaborators": "Colaboradores vinculados",
|
|
421
|
+
"inactive": "Tipos inativos"
|
|
422
|
+
},
|
|
423
|
+
"columns": {
|
|
424
|
+
"drag": "Mover",
|
|
425
|
+
"name": "Nome",
|
|
426
|
+
"slug": "Slug",
|
|
427
|
+
"category": "Categoria",
|
|
428
|
+
"description": "Descrição",
|
|
429
|
+
"sortOrder": "Ordem",
|
|
430
|
+
"collaborators": "Colaboradores"
|
|
431
|
+
},
|
|
432
|
+
"reorder": {
|
|
433
|
+
"description": "Arraste as linhas da tabela para salvar a ordem automaticamente.",
|
|
434
|
+
"filtered": "A reordenação fica disponível na visualização em tabela, sem busca, sem filtros e com todos os itens carregados na página."
|
|
435
|
+
},
|
|
436
|
+
"sheet": {
|
|
437
|
+
"createTitle": "Criar tipo de colaborador",
|
|
438
|
+
"editTitle": "Editar tipo de colaborador",
|
|
439
|
+
"description": "Mantenha o catálogo de tipos de colaborador organizado para os registros de colaboradores e regras operacionais."
|
|
440
|
+
},
|
|
441
|
+
"form": {
|
|
442
|
+
"name": "Nome",
|
|
443
|
+
"slug": "Slug",
|
|
444
|
+
"category": "Categoria",
|
|
445
|
+
"description": "Descrição",
|
|
446
|
+
"sortOrder": "Ordem de exibição",
|
|
447
|
+
"status": "Status"
|
|
448
|
+
},
|
|
449
|
+
"viewMode": "Visualização",
|
|
450
|
+
"viewModeTable": "Tabela",
|
|
451
|
+
"viewModeCards": "Grade",
|
|
452
|
+
"messages": {
|
|
453
|
+
"requiredFields": "O nome do tipo de colaborador é obrigatório.",
|
|
454
|
+
"saveSuccess": "Tipo de colaborador salvo com sucesso.",
|
|
455
|
+
"saveError": "Não foi possível salvar o tipo de colaborador.",
|
|
456
|
+
"reorderSuccess": "Ordem atualizada com sucesso.",
|
|
457
|
+
"reorderError": "Não foi possível salvar a nova ordem.",
|
|
458
|
+
"statusSuccess": "Status do tipo de colaborador atualizado com sucesso.",
|
|
459
|
+
"statusError": "Não foi possível atualizar o status do tipo de colaborador."
|
|
460
|
+
}
|
|
461
|
+
},
|
|
462
|
+
"CollaboratorDetailsPage": {
|
|
463
|
+
"title": "Detalhes do Colaborador",
|
|
464
|
+
"breadcrumb": "Detalhes do Colaborador",
|
|
465
|
+
"description": "Consulte informações operacionais do colaborador, contratos relacionados, alocações, horário e resumos de solicitações.",
|
|
466
|
+
"notFound": "O colaborador solicitado não foi encontrado ou não está visível no seu escopo de acesso.",
|
|
467
|
+
"cards": {
|
|
468
|
+
"timesheets": "Timesheets",
|
|
469
|
+
"timesheetsDescription": "{pending} pendentes de revisão",
|
|
470
|
+
"loggedHours": "Horas lançadas",
|
|
471
|
+
"loggedHoursDescription": "Total de horas registradas até o momento.",
|
|
472
|
+
"timeOff": "Solicitações de ausência",
|
|
473
|
+
"timeOffDescription": "{pending} solicitação(ões) pendente(s)",
|
|
474
|
+
"assignments": "Alocações em projetos",
|
|
475
|
+
"assignmentsDescription": "Vínculos ativos e históricos em projetos."
|
|
476
|
+
},
|
|
477
|
+
"sections": {
|
|
478
|
+
"profile": "Perfil",
|
|
479
|
+
"primaryContract": "Contratos relacionados",
|
|
480
|
+
"projects": "Projetos vinculados",
|
|
481
|
+
"projectsDescription": "Projetos atualmente ou anteriormente ligados a este colaborador.",
|
|
482
|
+
"schedule": "Horário semanal",
|
|
483
|
+
"scheduleDescription": "Horário padrão atualmente registrado para este colaborador.",
|
|
484
|
+
"timeOff": "Resumo de ausências",
|
|
485
|
+
"timeOffDescription": "Contagem de solicitações visíveis no histórico do colaborador.",
|
|
486
|
+
"scheduleAdjustments": "Ajustes de horário",
|
|
487
|
+
"scheduleAdjustmentsDescription": "Solicitações recentes de ajuste de horário criadas por este colaborador.",
|
|
488
|
+
"compensationHistory": "Histórico de salário",
|
|
489
|
+
"compensationHistoryDescription": "Registro histórico das alterações de salário deste colaborador."
|
|
490
|
+
},
|
|
491
|
+
"noContracts": "Ainda não existem contratos relacionados a este colaborador.",
|
|
492
|
+
"noProjects": "Ainda não existem projetos vinculados a este colaborador.",
|
|
493
|
+
"addProject": "Adicionar projeto",
|
|
494
|
+
"searchProject": "Buscar projeto...",
|
|
495
|
+
"createProject": "Criar projeto",
|
|
496
|
+
"createProjectDescription": "Crie um novo projeto e vincule este colaborador automaticamente.",
|
|
497
|
+
"noScheduleAdjustments": "Nenhuma solicitação de ajuste de horário foi encontrada.",
|
|
498
|
+
"noCompensationHistory": "Nenhuma alteração de salário foi registrada para este colaborador ainda.",
|
|
499
|
+
"compensationHistory": {
|
|
500
|
+
"amount": "Valor",
|
|
501
|
+
"effectiveDate": "Data de vigência",
|
|
502
|
+
"recordedAt": "Registrado em",
|
|
503
|
+
"changedBy": "Alterado por",
|
|
504
|
+
"notes": "Observações"
|
|
505
|
+
}
|
|
506
|
+
},
|
|
507
|
+
"ProjectsPage": {
|
|
508
|
+
"title": "Projetos",
|
|
509
|
+
"description": "Acompanhe projetos de clientes e serviços conectados a alocação, entrega e contratos.",
|
|
510
|
+
"breadcrumb": "Projetos",
|
|
511
|
+
"searchPlaceholder": "Buscar projeto, cliente, gestor ou contrato...",
|
|
512
|
+
"emptyDescription": "Nenhum projeto corresponde aos filtros atuais.",
|
|
513
|
+
"cards": {
|
|
514
|
+
"total": "Projetos",
|
|
515
|
+
"totalDescription": "Todos os projetos de entrega visíveis para o seu escopo de acesso.",
|
|
516
|
+
"active": "Ativos",
|
|
517
|
+
"activeDescription": "Abertos para lançamentos de timesheet e trabalho da equipe.",
|
|
518
|
+
"atRisk": "Em risco",
|
|
519
|
+
"atRiskDescription": "Sinalizados por problemas de entrega, equipe ou orçamento.",
|
|
520
|
+
"upcomingDeliveries": "Com prazo",
|
|
521
|
+
"upcomingDeliveriesDescription": "Projetos com data de entrega definida."
|
|
522
|
+
},
|
|
523
|
+
"viewMode": "Visualização",
|
|
524
|
+
"viewModeTable": "Tabela",
|
|
525
|
+
"viewModeCards": "Cards",
|
|
526
|
+
"actions": {
|
|
527
|
+
"archive": "Arquivar"
|
|
528
|
+
},
|
|
529
|
+
"sheet": {
|
|
530
|
+
"createTitle": "Criar projeto",
|
|
531
|
+
"editTitle": "Editar projeto",
|
|
532
|
+
"description": "Crie ou atualize um projeto de entrega usado por timesheets e pela visibilidade da equipe."
|
|
533
|
+
},
|
|
534
|
+
"form": {
|
|
535
|
+
"code": "Código",
|
|
536
|
+
"name": "Nome do projeto",
|
|
537
|
+
"clientName": "Nome do cliente",
|
|
538
|
+
"deliveryModel": "Modelo de entrega",
|
|
539
|
+
"summary": "Resumo"
|
|
540
|
+
},
|
|
541
|
+
"messages": {
|
|
542
|
+
"requiredFields": "Código e nome do projeto são obrigatórios.",
|
|
543
|
+
"saveSuccess": "Projeto salvo com sucesso.",
|
|
544
|
+
"saveError": "Não foi possível salvar o projeto.",
|
|
545
|
+
"statusSuccess": "Status do projeto atualizado com sucesso.",
|
|
546
|
+
"statusError": "Não foi possível atualizar o status do projeto."
|
|
547
|
+
}
|
|
548
|
+
},
|
|
549
|
+
"MyProjectsPage": {
|
|
550
|
+
"title": "Meus Projetos",
|
|
551
|
+
"description": "Projetos dos quais você faz parte.",
|
|
552
|
+
"breadcrumb": "Meus Projetos",
|
|
553
|
+
"searchPlaceholder": "Buscar projeto, cliente ou contrato...",
|
|
554
|
+
"emptyDescription": "Você ainda não está alocado em nenhum projeto.",
|
|
555
|
+
"cards": {
|
|
556
|
+
"total": "Meus Projetos",
|
|
557
|
+
"totalDescription": "Projetos em que você tem alocação.",
|
|
558
|
+
"active": "Ativos",
|
|
559
|
+
"activeDescription": "Projetos abertos para lançamentos de timesheet.",
|
|
560
|
+
"atRisk": "Em risco",
|
|
561
|
+
"atRiskDescription": "Projetos sinalizados com problemas.",
|
|
562
|
+
"upcomingDeliveries": "Com prazo",
|
|
563
|
+
"upcomingDeliveriesDescription": "Projetos com data de entrega definida."
|
|
564
|
+
},
|
|
565
|
+
"viewMode": "Visualização",
|
|
566
|
+
"viewModeTable": "Tabela",
|
|
567
|
+
"viewModeCards": "Cards"
|
|
568
|
+
},
|
|
569
|
+
"MyTasksPage": {
|
|
570
|
+
"title": "Minhas Tarefas",
|
|
571
|
+
"description": "Suas tarefas em todos os projetos.",
|
|
572
|
+
"breadcrumb": "Minhas Tarefas",
|
|
573
|
+
"searchPlaceholder": "Buscar tarefa ou projeto...",
|
|
574
|
+
"viewMode": "Visualização",
|
|
575
|
+
"viewModeTable": "Tabela",
|
|
576
|
+
"viewModeCards": "Cards",
|
|
577
|
+
"viewModeBoard": "Board",
|
|
578
|
+
"emptyDescription": "Você não possui tarefas atribuídas no momento.",
|
|
579
|
+
"collections": {
|
|
580
|
+
"active": "Ativas",
|
|
581
|
+
"archived": "Arquivadas"
|
|
582
|
+
},
|
|
583
|
+
"actions": {
|
|
584
|
+
"create": "Nova tarefa"
|
|
585
|
+
},
|
|
586
|
+
"dialogs": {
|
|
587
|
+
"createTitle": "Criar nova tarefa",
|
|
588
|
+
"createProjectPlaceholder": "Selecione um projeto",
|
|
589
|
+
"createNameLabel": "Nome",
|
|
590
|
+
"createNamePlaceholder": "Nome da tarefa",
|
|
591
|
+
"createDescriptionLabel": "Descrição",
|
|
592
|
+
"createDescriptionPlaceholder": "Descrição opcional",
|
|
593
|
+
"archiveTitle": "Arquivar tarefa",
|
|
594
|
+
"archiveDescription": "A tarefa sairá da lista principal e irá para a lista de arquivadas. Se preferir, você também pode excluí-la agora.",
|
|
595
|
+
"deleteTitle": "Excluir tarefa",
|
|
596
|
+
"deleteDescription": "Tem certeza que deseja excluir esta tarefa de forma permanente? Esta ação não pode ser desfeita."
|
|
597
|
+
},
|
|
598
|
+
"cards": {
|
|
599
|
+
"total": "Tarefas",
|
|
600
|
+
"totalDescription": "Total de tarefas atribuídas a você.",
|
|
601
|
+
"doing": "Em andamento",
|
|
602
|
+
"doingDescription": "Tarefas que estão sendo executadas.",
|
|
603
|
+
"review": "Em revisão",
|
|
604
|
+
"reviewDescription": "Tarefas aguardando revisão.",
|
|
605
|
+
"done": "Concluídas",
|
|
606
|
+
"doneDescription": "Tarefas finalizadas."
|
|
607
|
+
},
|
|
608
|
+
"status": {
|
|
609
|
+
"todo": "A fazer",
|
|
610
|
+
"doing": "Em andamento",
|
|
611
|
+
"review": "Em revisão",
|
|
612
|
+
"done": "Concluída"
|
|
613
|
+
}
|
|
614
|
+
},
|
|
615
|
+
"ProjectFormPage": {
|
|
616
|
+
"newTitle": "Novo Projeto",
|
|
617
|
+
"editTitle": "Editar Projeto",
|
|
618
|
+
"breadcrumb": "Cadastro de Projeto",
|
|
619
|
+
"description": "Crie o projeto primeiro com as informações essenciais de cliente e entrega. Equipe, contrato e controles podem ser concluídos após salvar.",
|
|
620
|
+
"noAccessDescription": "Permissões de diretor são necessárias para gerenciar projetos.",
|
|
621
|
+
"loading": "Carregando dados do projeto...",
|
|
622
|
+
"sections": {
|
|
623
|
+
"basicInfo": "Informações básicas do projeto",
|
|
624
|
+
"basicInfoDescription": "Defina o engajamento com o cliente e o resumo operacional.",
|
|
625
|
+
"basicInfoCreateDescription": "Comece apenas com o essencial para abrir o projeto e continue a configuração depois de salvar.",
|
|
626
|
+
"governance": "Responsável e datas",
|
|
627
|
+
"governanceDescription": "Defina o responsável, o status do ciclo e o período do projeto.",
|
|
628
|
+
"governanceCreateDescription": "Se quiser, defina agora o gestor e a data inicial. Progresso e controles do ciclo podem ser ajustados depois.",
|
|
629
|
+
"team": "Alocação inicial da equipe",
|
|
630
|
+
"teamDescription": "{count} colaboradores selecionados para a equipe inicial. Você pode refinar as alocações depois de salvar.",
|
|
631
|
+
"financials": "Base financeira e contratual",
|
|
632
|
+
"financialsDescription": "Dados financeiros, faturamento e contrato podem ser preenchidos depois que o projeto for salvo.",
|
|
633
|
+
"contract": "Configurações do contrato",
|
|
634
|
+
"contractDescription": "Vincule um contrato existente ou configure a geração de rascunho após o primeiro salvamento do projeto.",
|
|
635
|
+
"nextSteps": "Continue após salvar",
|
|
636
|
+
"nextStepsDescription": "Depois de criar o projeto, você pode montar a equipe, conectar um contrato ou template e acompanhar controles detalhados de entrega pela tela do projeto."
|
|
637
|
+
},
|
|
638
|
+
"fields": {
|
|
639
|
+
"code": "Código do projeto",
|
|
640
|
+
"name": "Nome do projeto",
|
|
641
|
+
"clientName": "Nome do cliente",
|
|
642
|
+
"deliveryModel": "Modelo de entrega",
|
|
643
|
+
"summary": "Resumo operacional",
|
|
644
|
+
"progressPercent": "Progresso %",
|
|
645
|
+
"roleLabel": "Papel / responsabilidade",
|
|
646
|
+
"weeklyHours": "Horas semanais",
|
|
647
|
+
"allocationPercent": "Alocação %",
|
|
648
|
+
"isBillable": "Faturável",
|
|
649
|
+
"isBillableDescription": "Inclui esta alocação na capacidade faturável.",
|
|
650
|
+
"assignmentStartDate": "Data de alocação",
|
|
651
|
+
"assignmentEndDate": "Data de término",
|
|
652
|
+
"contractCode": "Código do contrato rascunho",
|
|
653
|
+
"contractName": "Nome do contrato rascunho",
|
|
654
|
+
"contractDescription": "Observações do contrato rascunho",
|
|
655
|
+
"contractTemplate": "Template do contrato",
|
|
656
|
+
"autoGenerateContractDraft": "Gerar contrato rascunho automaticamente",
|
|
657
|
+
"autoGenerateContractDraftDescription": "Cria um contrato rascunho de cliente/serviço com base nos dados deste projeto e vincula como contrato relacionado.",
|
|
658
|
+
"existingContractSelected": "Já existe um contrato selecionado para este projeto."
|
|
659
|
+
},
|
|
660
|
+
"labels": {
|
|
661
|
+
"enabled": "Ativado",
|
|
662
|
+
"disabled": "Desativado",
|
|
663
|
+
"templateSelected": "Template selecionado para novos rascunhos"
|
|
664
|
+
},
|
|
665
|
+
"hints": {
|
|
666
|
+
"summary": "Seja breve: escopo, objetivo e contexto principal da entrega.",
|
|
667
|
+
"progressPercent": "Use uma estimativa simples de 0 a 100.",
|
|
668
|
+
"monthlyHourCap": "Limite opcional usado no planejamento e na geração do contrato rascunho.",
|
|
669
|
+
"contract": "Ao selecionar um contrato existente, a geração automática do rascunho é desativada.",
|
|
670
|
+
"contractTemplate": "Use um template para pré-preencher o novo contrato ou o rascunho automático deste projeto.",
|
|
671
|
+
"contractCode": "Usado apenas se um contrato rascunho for gerado a partir deste projeto.",
|
|
672
|
+
"contractName": "Título visível para o contrato rascunho gerado.",
|
|
673
|
+
"contractDescription": "Observações comerciais ou cláusulas opcionais para o rascunho."
|
|
674
|
+
},
|
|
675
|
+
"placeholders": {
|
|
676
|
+
"code": "Ex: PRJ-2026-001",
|
|
677
|
+
"name": "Informe o nome do projeto",
|
|
678
|
+
"clientName": "Selecione ou cadastre a empresa/conta cliente",
|
|
679
|
+
"summary": "Descreva escopo, objetivos e contexto da entrega",
|
|
680
|
+
"progressPercent": "0 a 100",
|
|
681
|
+
"managerSearch": "Buscar gestor...",
|
|
682
|
+
"assignmentSearch": "Buscar colaborador por nome, departamento ou cargo",
|
|
683
|
+
"contractSearch": "Buscar contrato existente...",
|
|
684
|
+
"contractTemplateSearch": "Buscar template de contrato...",
|
|
685
|
+
"monthlyHourCap": "Limite mensal de horas",
|
|
686
|
+
"contractCode": "Usado apenas ao criar contrato rascunho",
|
|
687
|
+
"contractName": "Nome visível do contrato gerado",
|
|
688
|
+
"contractDescription": "Adicione observações comerciais ou cláusulas da entrega",
|
|
689
|
+
"roleLabel": "Selecione ou informe o papel...",
|
|
690
|
+
"roleLabelCreate": "Novo papel ou responsabilidade"
|
|
691
|
+
},
|
|
692
|
+
"options": {
|
|
693
|
+
"deliveryModels": {
|
|
694
|
+
"project_delivery": "Entrega de projeto",
|
|
695
|
+
"dedicated_team": "Time dedicado",
|
|
696
|
+
"shared_team": "Time compartilhado",
|
|
697
|
+
"support": "Suporte"
|
|
698
|
+
},
|
|
699
|
+
"statuses": {
|
|
700
|
+
"planning": "Planejamento",
|
|
701
|
+
"active": "Ativo",
|
|
702
|
+
"at_risk": "Em risco",
|
|
703
|
+
"paused": "Pausado",
|
|
704
|
+
"completed": "Concluído",
|
|
705
|
+
"archived": "Arquivado"
|
|
706
|
+
},
|
|
707
|
+
"billingModels": {
|
|
708
|
+
"time_and_material": "Tempo e material",
|
|
709
|
+
"monthly_retainer": "Mensalidade fixa",
|
|
710
|
+
"fixed_price": "Preço fechado"
|
|
711
|
+
}
|
|
712
|
+
},
|
|
713
|
+
"messages": {
|
|
714
|
+
"requiredFields": "Somente código, nome do projeto e nome do cliente são obrigatórios para criar o projeto.",
|
|
715
|
+
"roleRequired": "Selecione ou informe um papel para cada colaborador alocado.",
|
|
716
|
+
"createSuccess": "Projeto criado com sucesso.",
|
|
717
|
+
"createError": "Não foi possível criar o projeto.",
|
|
718
|
+
"updateSuccess": "Projeto atualizado com sucesso.",
|
|
719
|
+
"updateError": "Não foi possível atualizar o projeto.",
|
|
720
|
+
"currentContractStatus": "Status atual do contrato relacionado: {status}"
|
|
721
|
+
}
|
|
722
|
+
},
|
|
723
|
+
"ProjectDetailsPage": {
|
|
724
|
+
"title": "Detalhes do Projeto",
|
|
725
|
+
"breadcrumb": "Detalhes do Projeto",
|
|
726
|
+
"description": "Consulte dados de entrega, equipe, contrato relacionado, atividade de timesheets e indicadores operacionais do projeto.",
|
|
727
|
+
"notFound": "O projeto solicitado não foi encontrado ou não está visível no seu escopo de acesso.",
|
|
728
|
+
"cards": {
|
|
729
|
+
"teamSize": "Tamanho da equipe",
|
|
730
|
+
"teamSizeDescription": "Colaboradores atualmente vinculados a este projeto.",
|
|
731
|
+
"timesheets": "Timesheets",
|
|
732
|
+
"timesheetsDescription": "{pending} pendentes de revisão",
|
|
733
|
+
"loggedHours": "Horas lançadas",
|
|
734
|
+
"loggedHoursDescription": "Total de horas vinculadas a este projeto.",
|
|
735
|
+
"allocation": "Alocação média",
|
|
736
|
+
"allocationDescription": "Média de alocação das atribuições do projeto.",
|
|
737
|
+
"lateTasks": "Tasks atrasadas",
|
|
738
|
+
"lateTasksDescription": "Tarefas abertas com prazo vencido.",
|
|
739
|
+
"weeklyVelocity": "Velocidade semanal",
|
|
740
|
+
"weeklyVelocityDescription": "Horas recentes ou planejadas na semana.",
|
|
741
|
+
"projectHealth": "Saúde do projeto",
|
|
742
|
+
"pendingTasks": "Tasks pendentes",
|
|
743
|
+
"pendingTasksDescription": "{overdue} tarefa(s) atrasada(s) no momento.",
|
|
744
|
+
"activeCollaborators": "Colaboradores ativos",
|
|
745
|
+
"activeCollaboratorsDescription": "Pessoas com alocação ativa neste projeto."
|
|
746
|
+
},
|
|
747
|
+
"kpi": {
|
|
748
|
+
"indicator": "Indicador",
|
|
749
|
+
"subtitles": {
|
|
750
|
+
"health": "Composição visual de progresso, pendências e alocação."
|
|
751
|
+
},
|
|
752
|
+
"trends": {
|
|
753
|
+
"hours": "{count} timesheet(s)",
|
|
754
|
+
"health": {
|
|
755
|
+
"good": "Positivo",
|
|
756
|
+
"warning": "Warning",
|
|
757
|
+
"danger": "Crítico"
|
|
758
|
+
},
|
|
759
|
+
"velocity": {
|
|
760
|
+
"active": "Em movimento",
|
|
761
|
+
"empty": "Sem ritmo recente"
|
|
762
|
+
},
|
|
763
|
+
"allocation": {
|
|
764
|
+
"good": "Equilibrada",
|
|
765
|
+
"warning": "Alta",
|
|
766
|
+
"critical": "Sobrecarga"
|
|
767
|
+
},
|
|
768
|
+
"tasks": {
|
|
769
|
+
"good": "Sem pendências",
|
|
770
|
+
"warning": "Backlog ativo",
|
|
771
|
+
"critical": "{count} atrasada(s)"
|
|
772
|
+
},
|
|
773
|
+
"collaborators": {
|
|
774
|
+
"active": "Equipe ativa",
|
|
775
|
+
"empty": "Sem equipe"
|
|
776
|
+
}
|
|
777
|
+
}
|
|
778
|
+
},
|
|
779
|
+
"quickActions": {
|
|
780
|
+
"timesheet": "Timesheet",
|
|
781
|
+
"reports": "Relatórios",
|
|
782
|
+
"more": "Mais ações"
|
|
783
|
+
},
|
|
784
|
+
"executive": {
|
|
785
|
+
"team": "Equipe",
|
|
786
|
+
"activeTasks": "Tasks ativas",
|
|
787
|
+
"completedTasks": "Concluídas",
|
|
788
|
+
"fallbackDescription": "Acompanhe entrega, equipe, contrato e sinais operacionais deste projeto.",
|
|
789
|
+
"membersCount": "{count} membro(s)"
|
|
790
|
+
},
|
|
791
|
+
"breadcrumbTrail": {
|
|
792
|
+
"operations": "Operations",
|
|
793
|
+
"projects": "Projetos"
|
|
794
|
+
},
|
|
795
|
+
"health": {
|
|
796
|
+
"good": "Saudável",
|
|
797
|
+
"warning": "Atenção",
|
|
798
|
+
"danger": "Crítico"
|
|
799
|
+
},
|
|
800
|
+
"indicators": {
|
|
801
|
+
"activeAssignments": "Atribuições ativas",
|
|
802
|
+
"completedAssignments": "Atribuições concluídas",
|
|
803
|
+
"averageAllocation": "Alocação média",
|
|
804
|
+
"totalWeeklyHours": "Total de horas semanais"
|
|
805
|
+
},
|
|
806
|
+
"noContract": "Ainda não existe contrato relacionado a este projeto.",
|
|
807
|
+
"noAssignments": "Ainda não existem colaboradores vinculados a este projeto.",
|
|
808
|
+
"costs": {
|
|
809
|
+
"emptyTitle": "Sem custos registrados",
|
|
810
|
+
"emptyDescription": "Adicione custos ao projeto para visualizar o resumo financeiro aqui.",
|
|
811
|
+
"totalCost": "Custo total",
|
|
812
|
+
"realized": "Realizado",
|
|
813
|
+
"budgetUsed": "Orçamento usado",
|
|
814
|
+
"remaining": "Restante",
|
|
815
|
+
"noBudget": "Orçamento não definido",
|
|
816
|
+
"extraCosts": "Outros custos",
|
|
817
|
+
"categories": "categorias",
|
|
818
|
+
"topCategory": "Maior categoria",
|
|
819
|
+
"budgetProgress": "Progresso do orçamento",
|
|
820
|
+
"chartByCategory": "Custo por categoria",
|
|
821
|
+
"chartByMonth": "Evolução mensal",
|
|
822
|
+
"budgetWarning": "Orçamento atingiu {pct}% do limite. Atenção com novos custos.",
|
|
823
|
+
"budgetExceeded": "Orçamento ultrapassado! Uso atual: {pct}% do limite definido."
|
|
824
|
+
},
|
|
825
|
+
"sections": {
|
|
826
|
+
"overview": "Visão geral",
|
|
827
|
+
"contract": "Contrato relacionado",
|
|
828
|
+
"team": "Colaboradores vinculados",
|
|
829
|
+
"teamDescription": "Equipe inicial e alocações em andamento associadas ao projeto.",
|
|
830
|
+
"indicators": "Indicadores operacionais",
|
|
831
|
+
"indicatorsDescription": "Métricas atuais de equipe e entrega do projeto.",
|
|
832
|
+
"deliveryHealth": "Saúde da entrega",
|
|
833
|
+
"deliveryHealthDescription": "Leitura visual de alocação e ritmo operacional da equipe.",
|
|
834
|
+
"costDashboard": "Custos do Projeto",
|
|
835
|
+
"costDashboardDescription": "Visão consolidada de custos extras, uso de orçamento e evolução mensal.",
|
|
836
|
+
"quickRadar": "Radar rápido",
|
|
837
|
+
"quickRadarDescription": "Sinais para tomada de decisão no curto prazo.",
|
|
838
|
+
"timeline": "Timeline operacional",
|
|
839
|
+
"timelineDescription": "Atividade recente agrupada por dia, preparada para filtros e carregamento incremental.",
|
|
840
|
+
"taskBoard": "Quadro de tarefas",
|
|
841
|
+
"taskBoardDescription": "Board estilo Kanban com arraste entre colunas e detalhe lateral da tarefa.",
|
|
842
|
+
"archivedTasks": "Tarefas arquivadas",
|
|
843
|
+
"archivedTasksDescription": "Consulte tarefas arquivadas do projeto, veja detalhes, desarquive ou exclua definitivamente."
|
|
844
|
+
},
|
|
845
|
+
"charts": {
|
|
846
|
+
"projectProgress": "Progresso",
|
|
847
|
+
"burnup": "Burnup / progresso",
|
|
848
|
+
"burnupDescription": "Evolução acumulada de horas lançadas contra o ritmo planejado.",
|
|
849
|
+
"allocationByCollaborator": "Alocação por colaborador",
|
|
850
|
+
"allocationDescription": "Distribuição de capacidade entre os colaboradores do projeto.",
|
|
851
|
+
"weeklyVelocity": "Velocidade semanal",
|
|
852
|
+
"weeklyVelocityDescription": "Ritmo recente de horas registradas pela equipe.",
|
|
853
|
+
"taskDistribution": "Distribuição de tasks",
|
|
854
|
+
"taskDistributionDescription": "Volume de tarefas por etapa do quadro.",
|
|
855
|
+
"operationalHealth": "Saúde operacional",
|
|
856
|
+
"operationalHealthDescription": "Score visual calculado a partir de progresso, pendências e alocação.",
|
|
857
|
+
"healthScore": "Score operacional",
|
|
858
|
+
"start": "Início",
|
|
859
|
+
"current": "Atual",
|
|
860
|
+
"emptyTitle": "Sem dados suficientes",
|
|
861
|
+
"emptyBurnup": "O burnup aparecerá quando houver progresso ou horas registradas.",
|
|
862
|
+
"emptyVelocity": "Ainda não há velocidade semanal retornada para este projeto.",
|
|
863
|
+
"emptyAllocation": "A alocação aparecerá quando colaboradores forem vinculados.",
|
|
864
|
+
"emptyTasks": "As tarefas aparecerão quando o quadro tiver itens."
|
|
865
|
+
},
|
|
866
|
+
"kanban": {
|
|
867
|
+
"items": "itens",
|
|
868
|
+
"progress": "Progresso",
|
|
869
|
+
"searchPlaceholder": "Buscar task, tag, responsável...",
|
|
870
|
+
"filters": "Filtros",
|
|
871
|
+
"allPriorities": "Todas prioridades",
|
|
872
|
+
"groupStatus": "Agrupar por status",
|
|
873
|
+
"noEstimate": "Sem estim.",
|
|
874
|
+
"emptyColumn": "Nenhuma task nesta coluna.",
|
|
875
|
+
"noFilteredTasks": "Nenhuma task corresponde aos filtros."
|
|
876
|
+
},
|
|
877
|
+
"timeline": {
|
|
878
|
+
"projectStarted": "Projeto iniciado",
|
|
879
|
+
"projectStartedDescription": "{project} entrou em execução.",
|
|
880
|
+
"taskCreated": "Task criada",
|
|
881
|
+
"taskCompleted": "Task concluída",
|
|
882
|
+
"commentAdded": "Comentário registrado",
|
|
883
|
+
"timesheetLogged": "Timesheet lançado",
|
|
884
|
+
"timesheetLoggedDescription": "{count} timesheet(s), totalizando {hours}.",
|
|
885
|
+
"approvalPending": "Aprovação pendente",
|
|
886
|
+
"approvalPendingDescription": "{count} item(ns) aguardando revisão.",
|
|
887
|
+
"completedTasks": "Tarefas concluídas",
|
|
888
|
+
"completedTasksDescription": "{count} tarefa(s) já concluída(s)",
|
|
889
|
+
"pendingTimesheets": "Timesheets pendentes",
|
|
890
|
+
"pendingTimesheetsDescription": "{count} timesheet(s) aguardando revisão",
|
|
891
|
+
"targetDate": "Data alvo",
|
|
892
|
+
"targetDateDescription": "Deadline operacional do projeto.",
|
|
893
|
+
"loadMore": "Carregar mais eventos",
|
|
894
|
+
"emptyTitle": "Sem atividade para exibir",
|
|
895
|
+
"empty": "Ainda não há eventos operacionais suficientes para montar uma timeline.",
|
|
896
|
+
"filters": {
|
|
897
|
+
"all": "Todos eventos",
|
|
898
|
+
"task": "Tasks",
|
|
899
|
+
"status": "Status",
|
|
900
|
+
"timesheet": "Timesheets",
|
|
901
|
+
"approval": "Aprovações",
|
|
902
|
+
"comment": "Comentários"
|
|
903
|
+
},
|
|
904
|
+
"types": {
|
|
905
|
+
"task": "Task",
|
|
906
|
+
"timesheet": "Timesheet",
|
|
907
|
+
"approval": "Aprovação",
|
|
908
|
+
"comment": "Comentário",
|
|
909
|
+
"status": "Status"
|
|
910
|
+
}
|
|
911
|
+
},
|
|
912
|
+
"teamPanel": {
|
|
913
|
+
"available": "Disponíveis",
|
|
914
|
+
"highAllocation": "Alocação alta",
|
|
915
|
+
"overload": "Sobrecarga",
|
|
916
|
+
"usedHours": "Horas utilizadas",
|
|
917
|
+
"availability": "Disponibilidade",
|
|
918
|
+
"overloadWarning": "{value}% acima da capacidade recomendada.",
|
|
919
|
+
"status": {
|
|
920
|
+
"available": "Disponível",
|
|
921
|
+
"high": "Alta carga",
|
|
922
|
+
"overload": "Sobrecarga"
|
|
923
|
+
}
|
|
924
|
+
},
|
|
925
|
+
"quickRadar": {
|
|
926
|
+
"activeAssignments": "Atribuições ativas",
|
|
927
|
+
"timesheetPendencies": "Pendências de timesheet",
|
|
928
|
+
"plannedWeeklyHours": "Horas semanais planejadas"
|
|
929
|
+
},
|
|
930
|
+
"taskForm": {
|
|
931
|
+
"titleNew": "Nova tarefa",
|
|
932
|
+
"titleEdit": "Editar tarefa",
|
|
933
|
+
"nameLabel": "Nome",
|
|
934
|
+
"namePlaceholder": "Nome da tarefa",
|
|
935
|
+
"descriptionLabel": "Descrição",
|
|
936
|
+
"descriptionPlaceholder": "Descrição opcional",
|
|
937
|
+
"priorityLabel": "Prioridade",
|
|
938
|
+
"columnLabel": "Coluna",
|
|
939
|
+
"deadlineLabel": "Prazo",
|
|
940
|
+
"estimateLabel": "Estimativa (h)",
|
|
941
|
+
"tagsLabel": "Etiquetas",
|
|
942
|
+
"tagsPlaceholder": "planejamento, cliente, design (separadas por vírgula)",
|
|
943
|
+
"attachmentsLabel": "Anexos",
|
|
944
|
+
"saving": "Salvando..."
|
|
945
|
+
},
|
|
946
|
+
"dialogs": {
|
|
947
|
+
"archiveTitle": "Arquivar tarefa",
|
|
948
|
+
"archiveDescription": "A tarefa será movida para a lista de arquivadas. Se quiser, você também pode excluí-la definitivamente agora.",
|
|
949
|
+
"deleteTitle": "Excluir tarefa",
|
|
950
|
+
"deleteDescription": "Tem certeza que deseja excluir esta tarefa de forma permanente? Esta ação não pode ser desfeita."
|
|
951
|
+
},
|
|
952
|
+
"emptyArchivedDescription": "Nenhuma tarefa arquivada neste projeto."
|
|
953
|
+
},
|
|
954
|
+
"ContractsPage": {
|
|
955
|
+
"title": "Contratos",
|
|
956
|
+
"description": "Gestão enxuta de contratos com nome, arquivo, status e acesso rápido à prévia.",
|
|
957
|
+
"breadcrumb": "Contratos",
|
|
958
|
+
"searchPlaceholder": "Buscar contrato por nome ou arquivo...",
|
|
959
|
+
"emptyDescription": "Nenhum contrato corresponde aos filtros atuais.",
|
|
960
|
+
"cards": {
|
|
961
|
+
"total": "Total de contratos",
|
|
962
|
+
"active": "Contratos ativos",
|
|
963
|
+
"inactive": "Contratos inativos",
|
|
964
|
+
"withFile": "Com arquivo"
|
|
965
|
+
},
|
|
966
|
+
"viewMode": "Visualização",
|
|
967
|
+
"viewModeTable": "Tabela",
|
|
968
|
+
"viewModeCards": "Cards",
|
|
969
|
+
"columns": {
|
|
970
|
+
"title": "Título",
|
|
971
|
+
"file": "Arquivo",
|
|
972
|
+
"code": "Código",
|
|
973
|
+
"type": "Tipo",
|
|
974
|
+
"origin": "Origem",
|
|
975
|
+
"template": "Template",
|
|
976
|
+
"party": "Parte principal",
|
|
977
|
+
"signatureStatus": "Status da assinatura",
|
|
978
|
+
"active": "Ativo",
|
|
979
|
+
"financials": "Resumo financeiro"
|
|
980
|
+
},
|
|
981
|
+
"actions": {
|
|
982
|
+
"preview": "Visualizar",
|
|
983
|
+
"downloadPdf": "Baixar PDF",
|
|
984
|
+
"uploadPdf": "Enviar PDF",
|
|
985
|
+
"duplicate": "Duplicar",
|
|
986
|
+
"archive": "Arquivar",
|
|
987
|
+
"delete": "Excluir"
|
|
988
|
+
},
|
|
989
|
+
"filters": {
|
|
990
|
+
"originType": "Tipo de origem"
|
|
991
|
+
},
|
|
992
|
+
"sheet": {
|
|
993
|
+
"createTitle": "Novo Contrato",
|
|
994
|
+
"editTitle": "Editar Contrato",
|
|
995
|
+
"duplicateTitle": "Duplicar Contrato",
|
|
996
|
+
"description": "Gerencie o contrato em uma lateral, sem sair da lista principal."
|
|
997
|
+
},
|
|
998
|
+
"wizard": {
|
|
999
|
+
"title": "Assistente de criação de contrato",
|
|
1000
|
+
"description": "Escolha como deseja iniciar: enviar um documento existente, usar um template salvo ou criar do zero.",
|
|
1001
|
+
"options": {
|
|
1002
|
+
"upload": {
|
|
1003
|
+
"title": "Já tenho um PDF ou Word",
|
|
1004
|
+
"description": "Envie um contrato existente para extrair dados e revisar antes de salvar."
|
|
1005
|
+
},
|
|
1006
|
+
"template": {
|
|
1007
|
+
"title": "Quero usar um template",
|
|
1008
|
+
"description": "Comece com um modelo salvo e ajuste os campos conforme necessário."
|
|
1009
|
+
},
|
|
1010
|
+
"blank": {
|
|
1011
|
+
"title": "Quero criar do zero",
|
|
1012
|
+
"description": "Abra o formulário em branco para montar um contrato totalmente personalizado."
|
|
1013
|
+
}
|
|
1014
|
+
},
|
|
1015
|
+
"upload": {
|
|
1016
|
+
"title": "Enviar contrato existente",
|
|
1017
|
+
"description": "Adicione um PDF ou DOCX. A IA pode sugerir um rascunho, mas você sempre revisa antes de salvar.",
|
|
1018
|
+
"selectFile": "Selecionar arquivo",
|
|
1019
|
+
"supportedFiles": "Formatos aceitos: PDF, DOC e DOCX.",
|
|
1020
|
+
"aiReady": "Extração assistida pronta com {provider}.",
|
|
1021
|
+
"aiUnavailable": "Nenhum provedor de IA está configurado. Você ainda pode continuar manualmente com o arquivo anexado.",
|
|
1022
|
+
"promptMessage": "Analyze the attached contract and extract a structured draft for the contract form."
|
|
1023
|
+
},
|
|
1024
|
+
"template": {
|
|
1025
|
+
"title": "Começar com um template",
|
|
1026
|
+
"description": "Selecione um template salvo para abrir o formulário já preenchido com estrutura inicial.",
|
|
1027
|
+
"placeholder": "Selecione um template",
|
|
1028
|
+
"noDescription": "Este template ainda não possui descrição."
|
|
1029
|
+
},
|
|
1030
|
+
"blank": {
|
|
1031
|
+
"title": "Criação personalizada",
|
|
1032
|
+
"description": "Abra um formulário vazio e preencha manualmente todas as informações do contrato.",
|
|
1033
|
+
"helper": "Ideal para contratos novos, cenários fora do padrão ou quando você quer controlar cada detalhe desde o início."
|
|
1034
|
+
},
|
|
1035
|
+
"review": {
|
|
1036
|
+
"title": "Revisão obrigatória antes de salvar",
|
|
1037
|
+
"description": "Confira os dados sugeridos pela IA no formulário antes de concluir o contrato.",
|
|
1038
|
+
"missingFields": "Campos que ainda precisam de atenção",
|
|
1039
|
+
"warnings": "Alertas da extração"
|
|
1040
|
+
},
|
|
1041
|
+
"actions": {
|
|
1042
|
+
"extractWithAi": "Extrair dados com IA",
|
|
1043
|
+
"reviewInForm": "Revisar no formulário",
|
|
1044
|
+
"continueManual": "Continuar manualmente",
|
|
1045
|
+
"skipToBlank": "Pular para formulário em branco",
|
|
1046
|
+
"useTemplate": "Usar template",
|
|
1047
|
+
"startBlank": "Abrir formulário em branco"
|
|
1048
|
+
},
|
|
1049
|
+
"messages": {
|
|
1050
|
+
"missingFile": "Selecione um arquivo PDF, DOC ou DOCX para continuar.",
|
|
1051
|
+
"missingAiConfiguration": "Configure OpenAI ou Gemini para usar a extração assistida.",
|
|
1052
|
+
"extractSuccess": "Rascunho extraído com sucesso usando {provider}.",
|
|
1053
|
+
"extractError": "Não foi possível extrair os dados do documento. Você ainda pode continuar manualmente."
|
|
1054
|
+
}
|
|
1055
|
+
},
|
|
1056
|
+
"messages": {
|
|
1057
|
+
"statusSuccess": "Status do contrato atualizado com sucesso.",
|
|
1058
|
+
"statusError": "Não foi possível atualizar o status do contrato.",
|
|
1059
|
+
"uploadSuccess": "PDF do contrato enviado com sucesso.",
|
|
1060
|
+
"uploadError": "Não foi possível enviar o PDF do contrato.",
|
|
1061
|
+
"noPdf": "Nenhum PDF está disponível para este contrato.",
|
|
1062
|
+
"deleteSuccess": "Contrato excluído com sucesso.",
|
|
1063
|
+
"deleteError": "Não foi possível excluir o contrato.",
|
|
1064
|
+
"confirmDeleteTitle": "Excluir contrato?",
|
|
1065
|
+
"confirmDeleteDescription": "Essa ação removerá \"{name}\" da lista de contratos."
|
|
1066
|
+
}
|
|
1067
|
+
},
|
|
1068
|
+
"ContractTemplatesPage": {
|
|
1069
|
+
"title": "Templates de Contrato",
|
|
1070
|
+
"description": "Gerencie modelos reutilizáveis com conteúdo RichText, metadados padrão e apoio de IA.",
|
|
1071
|
+
"breadcrumb": "Templates de Contrato",
|
|
1072
|
+
"searchPlaceholder": "Buscar template, código, descrição ou tipo...",
|
|
1073
|
+
"emptyDescription": "Nenhum template corresponde aos filtros atuais.",
|
|
1074
|
+
"noAccessDescription": "Permissões de diretor são necessárias para gerenciar templates de contrato.",
|
|
1075
|
+
"cards": {
|
|
1076
|
+
"total": "Total de templates",
|
|
1077
|
+
"active": "Templates ativos",
|
|
1078
|
+
"draft": "Em rascunho",
|
|
1079
|
+
"archived": "Arquivados"
|
|
1080
|
+
},
|
|
1081
|
+
"columns": {
|
|
1082
|
+
"name": "Template",
|
|
1083
|
+
"code": "Código",
|
|
1084
|
+
"type": "Tipo",
|
|
1085
|
+
"usageCount": "Uso",
|
|
1086
|
+
"updatedAt": "Atualizado em"
|
|
1087
|
+
},
|
|
1088
|
+
"filters": {
|
|
1089
|
+
"type": "Tipo do contrato"
|
|
1090
|
+
},
|
|
1091
|
+
"sheet": {
|
|
1092
|
+
"createTitle": "Novo Template de Contrato",
|
|
1093
|
+
"editTitle": "Editar Template de Contrato",
|
|
1094
|
+
"description": "Mantenha modelos reutilizáveis para acelerar novos contratos e rascunhos de projeto."
|
|
1095
|
+
},
|
|
1096
|
+
"viewMode": "Visualização",
|
|
1097
|
+
"viewModeTable": "Tabela",
|
|
1098
|
+
"viewModeCards": "Grade",
|
|
1099
|
+
"messages": {
|
|
1100
|
+
"statusSuccess": "Status do template atualizado com sucesso.",
|
|
1101
|
+
"statusError": "Não foi possível atualizar o status do template."
|
|
1102
|
+
}
|
|
1103
|
+
},
|
|
1104
|
+
"ContractTemplateFormPage": {
|
|
1105
|
+
"newTitle": "Novo Template de Contrato",
|
|
1106
|
+
"editTitle": "Editar Template de Contrato",
|
|
1107
|
+
"breadcrumb": "Cadastro de Template de Contrato",
|
|
1108
|
+
"description": "Defina textos base e metadados padrão para acelerar novos contratos de projeto.",
|
|
1109
|
+
"noAccessDescription": "Permissões de diretor são necessárias para gerenciar templates de contrato.",
|
|
1110
|
+
"loading": "Carregando template...",
|
|
1111
|
+
"sections": {
|
|
1112
|
+
"overview": "Dados do template",
|
|
1113
|
+
"overviewDescription": "Metadados padrão aplicados quando um novo contrato nasce a partir deste template.",
|
|
1114
|
+
"editor": "Conteúdo do template",
|
|
1115
|
+
"editorDescription": "Edite o texto base em rich text e mantenha placeholders como client_name e project_name quando fizer sentido.",
|
|
1116
|
+
"preview": "Prévia",
|
|
1117
|
+
"previewDescription": "Prévia em tempo real do conteúdo reutilizável."
|
|
1118
|
+
},
|
|
1119
|
+
"fields": {
|
|
1120
|
+
"code": "Código do template",
|
|
1121
|
+
"name": "Nome do template",
|
|
1122
|
+
"description": "Descrição do template",
|
|
1123
|
+
"contractCategory": "Categoria",
|
|
1124
|
+
"contractType": "Tipo",
|
|
1125
|
+
"signatureStatus": "Status de assinatura padrão",
|
|
1126
|
+
"isActive": "Template ativo",
|
|
1127
|
+
"isActiveDescription": "Desative para retirar o template das seleções sem perder o histórico."
|
|
1128
|
+
},
|
|
1129
|
+
"placeholders": {
|
|
1130
|
+
"code": "Ex: MSA-SAAS",
|
|
1131
|
+
"name": "Ex: Prestação de serviços padrão",
|
|
1132
|
+
"description": "Explique quando usar este template e quais dados ele cobre"
|
|
1133
|
+
},
|
|
1134
|
+
"messages": {
|
|
1135
|
+
"requiredFields": "O nome do template é obrigatório.",
|
|
1136
|
+
"createSuccess": "Template criado com sucesso.",
|
|
1137
|
+
"createError": "Não foi possível criar o template.",
|
|
1138
|
+
"updateSuccess": "Template atualizado com sucesso.",
|
|
1139
|
+
"updateError": "Não foi possível atualizar o template."
|
|
1140
|
+
}
|
|
1141
|
+
},
|
|
1142
|
+
"ContractFormPage": {
|
|
1143
|
+
"newTitle": "Novo Contrato",
|
|
1144
|
+
"editTitle": "Editar Contrato",
|
|
1145
|
+
"duplicateTitle": "Duplicar Contrato",
|
|
1146
|
+
"breadcrumb": "Cadastro de Contrato",
|
|
1147
|
+
"description": "Crie ou atualize contratos com um fluxo direto de nome, arquivo e status.",
|
|
1148
|
+
"noAccessDescription": "Permissões de diretor são necessárias para gerenciar contratos.",
|
|
1149
|
+
"loading": "Carregando dados do contrato...",
|
|
1150
|
+
"tabs": {
|
|
1151
|
+
"preview": "Prévia",
|
|
1152
|
+
"overview": "Visão geral",
|
|
1153
|
+
"parties": "Partes",
|
|
1154
|
+
"signatures": "Assinaturas",
|
|
1155
|
+
"financials": "Financeiro",
|
|
1156
|
+
"documents": "Documentos",
|
|
1157
|
+
"revisions": "Revisões",
|
|
1158
|
+
"editor": "Editor"
|
|
1159
|
+
},
|
|
1160
|
+
"sections": {
|
|
1161
|
+
"overview": "Visão geral",
|
|
1162
|
+
"overviewDescription": "Campos centrais de registro, ciclo de vida, origem e ownership.",
|
|
1163
|
+
"simpleDescription": "Somente nome, arquivo e status ficam editáveis aqui. Relações já existentes do contrato são preservadas ao salvar.",
|
|
1164
|
+
"parties": "Partes",
|
|
1165
|
+
"partiesDescription": "Pessoas e empresas principais relacionadas ao contrato.",
|
|
1166
|
+
"signatures": "Assinaturas",
|
|
1167
|
+
"signaturesDescription": "Signatários e andamento das assinaturas.",
|
|
1168
|
+
"financials": "Termos financeiros",
|
|
1169
|
+
"financialsDescription": "Controle de valores, receitas, pagamentos e multas.",
|
|
1170
|
+
"documents": "Documentos",
|
|
1171
|
+
"documentsDescription": "Envie ou substitua o documento atual do contrato (PDF, DOC ou DOCX).",
|
|
1172
|
+
"revisions": "Aditivos / renovações",
|
|
1173
|
+
"revisionsDescription": "Acompanhe aditivos, emendas e renovações.",
|
|
1174
|
+
"editor": "Editor do contrato",
|
|
1175
|
+
"editorDescription": "Edite o conteúdo do contrato em rich text.",
|
|
1176
|
+
"preview": "Prévia",
|
|
1177
|
+
"previewDescription": "Prévia em tempo real do conteúdo do contrato."
|
|
1178
|
+
},
|
|
1179
|
+
"fields": {
|
|
1180
|
+
"code": "Código",
|
|
1181
|
+
"name": "Título do contrato",
|
|
1182
|
+
"clientName": "Nome do cliente",
|
|
1183
|
+
"relationsPreserved": "Relações preservadas",
|
|
1184
|
+
"contractTemplate": "Template do contrato",
|
|
1185
|
+
"contractTemplateDescription": "Selecione um template reutilizável para preencher metadados e conteúdo iniciais deste contrato.",
|
|
1186
|
+
"contractCategory": "Categoria",
|
|
1187
|
+
"contractType": "Tipo",
|
|
1188
|
+
"originType": "Tipo de origem",
|
|
1189
|
+
"originId": "ID de origem",
|
|
1190
|
+
"signatureStatus": "Status da assinatura",
|
|
1191
|
+
"isActive": "Contrato ativo",
|
|
1192
|
+
"isActiveDescription": "Use isso para desativar ou reativar o contrato sem remover seu registro.",
|
|
1193
|
+
"budgetAmount": "Valor de orçamento",
|
|
1194
|
+
"monthlyHourCap": "Limite mensal de horas",
|
|
1195
|
+
"effectiveDate": "Data de vigência",
|
|
1196
|
+
"signedAt": "Assinado em",
|
|
1197
|
+
"partyDisplayName": "Nome da parte",
|
|
1198
|
+
"partyRole": "Papel da parte",
|
|
1199
|
+
"partyType": "Tipo da parte",
|
|
1200
|
+
"documentNumber": "Número do documento",
|
|
1201
|
+
"email": "Email",
|
|
1202
|
+
"phone": "Telefone",
|
|
1203
|
+
"isPrimaryParty": "Parte principal",
|
|
1204
|
+
"signerName": "Nome do signatário",
|
|
1205
|
+
"signerRole": "Papel do signatário",
|
|
1206
|
+
"signerEmail": "Email do signatário",
|
|
1207
|
+
"signatureItemStatus": "Status da assinatura",
|
|
1208
|
+
"financialLabel": "Rótulo financeiro",
|
|
1209
|
+
"termType": "Tipo financeiro",
|
|
1210
|
+
"amount": "Valor",
|
|
1211
|
+
"recurrence": "Recorrência",
|
|
1212
|
+
"dueDay": "Dia de vencimento",
|
|
1213
|
+
"notes": "Observações",
|
|
1214
|
+
"revisionTitle": "Título da revisão",
|
|
1215
|
+
"revisionType": "Tipo de revisão",
|
|
1216
|
+
"revisionStatus": "Status da revisão",
|
|
1217
|
+
"summary": "Resumo"
|
|
1218
|
+
},
|
|
1219
|
+
"labels": {
|
|
1220
|
+
"projectsCount": "{count} projeto(s)",
|
|
1221
|
+
"partiesCount": "{count} parte(s)",
|
|
1222
|
+
"signaturesCount": "{count} assinatura(s)",
|
|
1223
|
+
"documentsCount": "{count} documento(s)"
|
|
1224
|
+
},
|
|
1225
|
+
"options": {
|
|
1226
|
+
"contractCategories": {
|
|
1227
|
+
"employee": "Funcionário",
|
|
1228
|
+
"contractor": "Contratado",
|
|
1229
|
+
"client": "Cliente",
|
|
1230
|
+
"supplier": "Fornecedor",
|
|
1231
|
+
"vendor": "Vendor",
|
|
1232
|
+
"partner": "Parceiro",
|
|
1233
|
+
"internal": "Interno",
|
|
1234
|
+
"other": "Outro"
|
|
1235
|
+
},
|
|
1236
|
+
"contractTypes": {
|
|
1237
|
+
"clt": "CLT",
|
|
1238
|
+
"pj": "PJ",
|
|
1239
|
+
"freelancer_agreement": "Acordo freelancer",
|
|
1240
|
+
"service_agreement": "Prestação de serviços",
|
|
1241
|
+
"fixed_term": "Prazo determinado",
|
|
1242
|
+
"recurring_service": "Serviço recorrente",
|
|
1243
|
+
"nda": "NDA",
|
|
1244
|
+
"amendment": "Emenda",
|
|
1245
|
+
"addendum": "Aditivo",
|
|
1246
|
+
"other": "Outro"
|
|
1247
|
+
},
|
|
1248
|
+
"signatureStatuses": {
|
|
1249
|
+
"not_started": "Não iniciado",
|
|
1250
|
+
"pending": "Pendente",
|
|
1251
|
+
"partially_signed": "Parcialmente assinado",
|
|
1252
|
+
"signed": "Assinado",
|
|
1253
|
+
"expired": "Expirado",
|
|
1254
|
+
"rejected": "Rejeitado"
|
|
1255
|
+
},
|
|
1256
|
+
"billingModels": {
|
|
1257
|
+
"time_and_material": "Tempo e material",
|
|
1258
|
+
"monthly_retainer": "Mensalidade fixa",
|
|
1259
|
+
"fixed_price": "Preço fechado"
|
|
1260
|
+
},
|
|
1261
|
+
"statuses": {
|
|
1262
|
+
"draft": "Rascunho",
|
|
1263
|
+
"under_review": "Em revisão",
|
|
1264
|
+
"active": "Ativo",
|
|
1265
|
+
"renewal": "Renovação",
|
|
1266
|
+
"expired": "Expirado",
|
|
1267
|
+
"closed": "Encerrado",
|
|
1268
|
+
"archived": "Arquivado"
|
|
1269
|
+
},
|
|
1270
|
+
"partyRoles": {
|
|
1271
|
+
"employee": "Funcionário",
|
|
1272
|
+
"employer": "Empregador",
|
|
1273
|
+
"client": "Cliente",
|
|
1274
|
+
"supplier": "Fornecedor",
|
|
1275
|
+
"vendor": "Vendor",
|
|
1276
|
+
"partner": "Parceiro",
|
|
1277
|
+
"witness": "Testemunha",
|
|
1278
|
+
"internal_owner": "Responsável interno",
|
|
1279
|
+
"other": "Outro"
|
|
1280
|
+
},
|
|
1281
|
+
"financialTermTypes": {
|
|
1282
|
+
"value": "Valor",
|
|
1283
|
+
"payment": "Pagamento",
|
|
1284
|
+
"revenue": "Receita",
|
|
1285
|
+
"fine": "Multa",
|
|
1286
|
+
"other": "Outro"
|
|
1287
|
+
},
|
|
1288
|
+
"recurrences": {
|
|
1289
|
+
"one_time": "Única",
|
|
1290
|
+
"monthly": "Mensal",
|
|
1291
|
+
"quarterly": "Trimestral",
|
|
1292
|
+
"yearly": "Anual",
|
|
1293
|
+
"other": "Outro"
|
|
1294
|
+
},
|
|
1295
|
+
"creationModes": {
|
|
1296
|
+
"blank": "Em branco",
|
|
1297
|
+
"template": "Template",
|
|
1298
|
+
"upload": "Upload",
|
|
1299
|
+
"duplicate": "Duplicado"
|
|
1300
|
+
},
|
|
1301
|
+
"extractionStatuses": {
|
|
1302
|
+
"pending": "Pendente",
|
|
1303
|
+
"processing": "Processando",
|
|
1304
|
+
"completed": "Concluída",
|
|
1305
|
+
"failed": "Falhou",
|
|
1306
|
+
"skipped": "Ignorada"
|
|
1307
|
+
},
|
|
1308
|
+
"documentTypes": {
|
|
1309
|
+
"source_upload": "Documento principal",
|
|
1310
|
+
"generated_pdf": "PDF gerado",
|
|
1311
|
+
"attachment": "Anexo",
|
|
1312
|
+
"other": "Outro"
|
|
1313
|
+
},
|
|
1314
|
+
"historyActions": {
|
|
1315
|
+
"created": "Criado",
|
|
1316
|
+
"updated": "Atualizado",
|
|
1317
|
+
"deleted": "Excluído"
|
|
1318
|
+
}
|
|
1319
|
+
},
|
|
1320
|
+
"messages": {
|
|
1321
|
+
"requiredFields": "O nome do contrato é obrigatório.",
|
|
1322
|
+
"createSuccess": "Contrato criado com sucesso.",
|
|
1323
|
+
"createError": "Não foi possível criar o contrato.",
|
|
1324
|
+
"updateSuccess": "Contrato atualizado com sucesso.",
|
|
1325
|
+
"updateError": "Não foi possível atualizar o contrato.",
|
|
1326
|
+
"pdfHint": "Envie um ou mais arquivos PDF, DOC ou DOCX. O primeiro arquivo vira o documento principal e os demais entram como anexos.",
|
|
1327
|
+
"pdfReady": "Documento pronto para salvar: {name}"
|
|
1328
|
+
}
|
|
1329
|
+
},
|
|
1330
|
+
"ContractContentEditor": {
|
|
1331
|
+
"assistantTitle": "Assistente de conteúdo por IA",
|
|
1332
|
+
"assistantDescription": "Descreva o que precisa e o texto será gerado automaticamente usando {provider}.",
|
|
1333
|
+
"promptPlaceholder": "Ex: Gere um contrato mensal com escopo, pagamento, confidencialidade, SLA e cláusula de rescisão.",
|
|
1334
|
+
"emptyPreview": "Ainda não existe conteúdo para este contrato.",
|
|
1335
|
+
"suggestedPrompt": "Crie um rascunho profissional para {subject}, com linguagem clara e seções objetivas.",
|
|
1336
|
+
"actions": {
|
|
1337
|
+
"useSuggestion": "Sugerir prompt",
|
|
1338
|
+
"generate": "Gerar texto"
|
|
1339
|
+
},
|
|
1340
|
+
"messages": {
|
|
1341
|
+
"missingConfiguration": "Configure um provedor de IA nas settings para usar esta ação.",
|
|
1342
|
+
"missingPrompt": "Digite um prompt antes de gerar o texto.",
|
|
1343
|
+
"generateSuccess": "Conteúdo atualizado com {provider}.",
|
|
1344
|
+
"generateError": "Não foi possível gerar o conteúdo com IA."
|
|
1345
|
+
}
|
|
1346
|
+
},
|
|
1347
|
+
"ContractDetailsPage": {
|
|
1348
|
+
"title": "Detalhes do Contrato",
|
|
1349
|
+
"breadcrumb": "Detalhes do Contrato",
|
|
1350
|
+
"description": "Baixe os arquivos do contrato e acompanhe as relações vinculadas.",
|
|
1351
|
+
"notFound": "O contrato solicitado não foi encontrado ou não está visível no seu escopo de acesso.",
|
|
1352
|
+
"tabs": {
|
|
1353
|
+
"overview": "Visão geral",
|
|
1354
|
+
"parties": "Partes",
|
|
1355
|
+
"signatures": "Assinaturas",
|
|
1356
|
+
"financials": "Financeiro",
|
|
1357
|
+
"documents": "Documentos",
|
|
1358
|
+
"revisions": "Revisões",
|
|
1359
|
+
"history": "Histórico",
|
|
1360
|
+
"preview": "Prévia"
|
|
1361
|
+
},
|
|
1362
|
+
"sections": {
|
|
1363
|
+
"preview": "Prévia do contrato",
|
|
1364
|
+
"overview": "Visão geral",
|
|
1365
|
+
"parties": "Partes",
|
|
1366
|
+
"signatures": "Assinaturas",
|
|
1367
|
+
"financials": "Financeiro",
|
|
1368
|
+
"documents": "Documentos",
|
|
1369
|
+
"revisions": "Aditivos / renovações",
|
|
1370
|
+
"history": "Histórico / Auditoria"
|
|
1371
|
+
},
|
|
1372
|
+
"actions": {
|
|
1373
|
+
"preview": "Visualizar",
|
|
1374
|
+
"downloadPdf": "Baixar PDF",
|
|
1375
|
+
"download": "Baixar"
|
|
1376
|
+
},
|
|
1377
|
+
"labels": {
|
|
1378
|
+
"origin": "Origem",
|
|
1379
|
+
"mainParty": "Parte principal",
|
|
1380
|
+
"contractType": "Tipo de contrato",
|
|
1381
|
+
"signatureStatus": "Status da assinatura",
|
|
1382
|
+
"activeState": "Estado ativo",
|
|
1383
|
+
"active": "Ativo",
|
|
1384
|
+
"inactive": "Inativo",
|
|
1385
|
+
"partyRole": "Papel da parte",
|
|
1386
|
+
"partyType": "Tipo da parte",
|
|
1387
|
+
"documentNumber": "Número do documento",
|
|
1388
|
+
"signer": "Signatário",
|
|
1389
|
+
"signedAt": "Assinado em",
|
|
1390
|
+
"value": "Valor",
|
|
1391
|
+
"payment": "Pagamentos",
|
|
1392
|
+
"revenue": "Receita",
|
|
1393
|
+
"fine": "Multas",
|
|
1394
|
+
"revision": "Revisão"
|
|
1395
|
+
},
|
|
1396
|
+
"states": {
|
|
1397
|
+
"previewUnavailable": "Ainda não existe um PDF disponível para pré-visualização deste contrato.",
|
|
1398
|
+
"noParties": "Ainda não existem partes relacionadas a este contrato.",
|
|
1399
|
+
"noSignatures": "Ainda não existem assinaturas registradas.",
|
|
1400
|
+
"noDocuments": "Ainda não existem documentos para este contrato.",
|
|
1401
|
+
"noRevisions": "Ainda não existem aditivos, renovações ou revisões vinculados.",
|
|
1402
|
+
"noHistory": "Ainda não existe histórico de auditoria."
|
|
1403
|
+
},
|
|
1404
|
+
"historyNotes": {
|
|
1405
|
+
"manualCreated": "Contrato manual criado a partir do cadastro.",
|
|
1406
|
+
"registryUpdated": "Dados do cadastro do contrato atualizados.",
|
|
1407
|
+
"documentsRemoved": "Arquivos do contrato removidos."
|
|
1408
|
+
}
|
|
1409
|
+
},
|
|
1410
|
+
"TimesheetsPage": {
|
|
1411
|
+
"title": "Timesheets",
|
|
1412
|
+
"description": "Lance horas de projeto por dia, mantenha os rascunhos organizados e envie quando estiver pronto.",
|
|
1413
|
+
"breadcrumb": "Timesheets",
|
|
1414
|
+
"searchPlaceholder": "Buscar colaborador, projeto, tarefa, aprovador ou observações...",
|
|
1415
|
+
"emptyDescription": "Nenhuma timesheet corresponde aos filtros atuais.",
|
|
1416
|
+
"sheet": {
|
|
1417
|
+
"createTitle": "Lançamento rápido",
|
|
1418
|
+
"editTitle": "Editar lançamento",
|
|
1419
|
+
"description": "Escolha projeto, tarefa, data e duração para registrar o trabalho com o mínimo de atrito.",
|
|
1420
|
+
"fields": {
|
|
1421
|
+
"project": "Projeto",
|
|
1422
|
+
"task": "Tarefa",
|
|
1423
|
+
"duration": "Duração",
|
|
1424
|
+
"unit": "Unidade",
|
|
1425
|
+
"hours": "Horas",
|
|
1426
|
+
"minutes": "Minutos"
|
|
1427
|
+
},
|
|
1428
|
+
"placeholders": {
|
|
1429
|
+
"project": "Busque por projeto ou cliente...",
|
|
1430
|
+
"projectSearch": "Digite para buscar projetos...",
|
|
1431
|
+
"task": "Busque ou selecione uma tarefa",
|
|
1432
|
+
"taskSearch": "Digite para buscar tarefas...",
|
|
1433
|
+
"duration": "Exemplo: 1.5",
|
|
1434
|
+
"description": "Contexto opcional para este lançamento"
|
|
1435
|
+
},
|
|
1436
|
+
"helper": {
|
|
1437
|
+
"task": "Apenas tarefas da alocação de projeto selecionada aparecem aqui.",
|
|
1438
|
+
"selectProjectFirst": "Selecione um projeto primeiro para carregar ou criar tarefas.",
|
|
1439
|
+
"keepContext": "Manter projeto, tarefa e data após salvar",
|
|
1440
|
+
"keepContextDescription": "Ideal para registrar vários lançamentos do mesmo dia em sequência."
|
|
1441
|
+
},
|
|
1442
|
+
"validation": {
|
|
1443
|
+
"descriptionMaxLength": "A descrição pode ter no máximo 500 caracteres."
|
|
1444
|
+
},
|
|
1445
|
+
"task": {
|
|
1446
|
+
"title": "Tarefa rápida",
|
|
1447
|
+
"description": "Crie uma tarefa para a alocação atual sem sair do fluxo de lançamento.",
|
|
1448
|
+
"projectLabel": "Projeto selecionado",
|
|
1449
|
+
"name": "Nome da tarefa",
|
|
1450
|
+
"descriptionLabel": "Descrição da tarefa",
|
|
1451
|
+
"createAction": "Nova tarefa",
|
|
1452
|
+
"submit": "Criar tarefa",
|
|
1453
|
+
"placeholders": {
|
|
1454
|
+
"name": "Exemplo: Revisão com cliente, correção de bug, deploy",
|
|
1455
|
+
"description": "Detalhes opcionais sobre esta tarefa"
|
|
1456
|
+
},
|
|
1457
|
+
"validation": {
|
|
1458
|
+
"nameMinLength": "Informe ao menos 2 caracteres para o nome da tarefa.",
|
|
1459
|
+
"descriptionMaxLength": "A descrição da tarefa pode ter no máximo 500 caracteres."
|
|
1460
|
+
}
|
|
1461
|
+
}
|
|
1462
|
+
},
|
|
1463
|
+
"entries": {
|
|
1464
|
+
"title": "Detalhes do lançamento",
|
|
1465
|
+
"description": "Vincule cada lançamento a uma alocação de projeto ativa e deixe a descrição como opcional.",
|
|
1466
|
+
"projectHint": "Projetos com alocação ativa aparecem aqui automaticamente.",
|
|
1467
|
+
"activityPlaceholder": "Exemplo: Daily, implementação, QA, alinhamento com cliente"
|
|
1468
|
+
},
|
|
1469
|
+
"details": {
|
|
1470
|
+
"title": "Detalhes da timesheet",
|
|
1471
|
+
"description": "Consulte o resumo enviado e a lista de lançamentos vinculados a este dia.",
|
|
1472
|
+
"period": "Dia",
|
|
1473
|
+
"entriesTitle": "Lançamentos do dia",
|
|
1474
|
+
"noEntries": "Nenhum lançamento foi vinculado a esta timesheet."
|
|
1475
|
+
},
|
|
1476
|
+
"recentEntries": {
|
|
1477
|
+
"title": "Lançamentos recentes",
|
|
1478
|
+
"description": "Seus registros mais recentes aparecem aqui logo após salvar.",
|
|
1479
|
+
"empty": "Seus lançamentos recentes aparecerão aqui.",
|
|
1480
|
+
"loading": "Carregando lançamentos recentes..."
|
|
1481
|
+
},
|
|
1482
|
+
"actions": {
|
|
1483
|
+
"viewDetails": "Ver detalhes"
|
|
1484
|
+
},
|
|
1485
|
+
"cards": {
|
|
1486
|
+
"visible": "Timesheets visíveis",
|
|
1487
|
+
"visibleDescription": "Registros diários visíveis para o seu escopo de acesso.",
|
|
1488
|
+
"pending": "Aguardando revisão",
|
|
1489
|
+
"pendingDescription": "Enviados e aguardando decisão do supervisor.",
|
|
1490
|
+
"hours": "Horas lançadas",
|
|
1491
|
+
"hoursDescription": "Total de horas trabalhadas em todos os timesheets visíveis."
|
|
1492
|
+
},
|
|
1493
|
+
"viewMode": "Visualização",
|
|
1494
|
+
"viewModeTable": "Tabela",
|
|
1495
|
+
"viewModeCards": "Grade",
|
|
1496
|
+
"viewModeCalendar": "Calendário",
|
|
1497
|
+
"messages": {
|
|
1498
|
+
"requiredFields": "Projeto, tarefa, data e duração são obrigatórios.",
|
|
1499
|
+
"collaboratorContextRequired": "Seu usuário precisa estar vinculado a um colaborador para lançar horas.",
|
|
1500
|
+
"entryValidation": "Informe uma duração válida maior que zero.",
|
|
1501
|
+
"selectProjectRequired": "Selecione primeiro uma alocação de projeto.",
|
|
1502
|
+
"selectTaskRequired": "Selecione ou crie uma tarefa primeiro.",
|
|
1503
|
+
"selectProjectFirst": "Selecione um projeto antes de criar uma tarefa.",
|
|
1504
|
+
"projectLoadError": "Não foi possível carregar os projetos disponíveis.",
|
|
1505
|
+
"taskLoadError": "Não foi possível carregar as tarefas disponíveis.",
|
|
1506
|
+
"saveSuccess": "Lançamento salvo com sucesso.",
|
|
1507
|
+
"saveError": "Não foi possível salvar o lançamento.",
|
|
1508
|
+
"updateSuccess": "Lançamento atualizado com sucesso.",
|
|
1509
|
+
"updateError": "Não foi possível atualizar o lançamento.",
|
|
1510
|
+
"deleteSuccess": "Lançamento excluído com sucesso.",
|
|
1511
|
+
"deleteError": "Não foi possível excluir o lançamento.",
|
|
1512
|
+
"confirmDeleteTitle": "Excluir lançamento?",
|
|
1513
|
+
"confirmDeleteDescription": "Isso removerá o lançamento de \"{name}\" do rascunho atual.",
|
|
1514
|
+
"submitSuccess": "Timesheet enviada com sucesso.",
|
|
1515
|
+
"submitError": "Não foi possível enviar a timesheet.",
|
|
1516
|
+
"taskCreateSuccess": "Tarefa criada com sucesso.",
|
|
1517
|
+
"taskCreateError": "Não foi possível criar a tarefa."
|
|
1518
|
+
},
|
|
1519
|
+
"statuses": {
|
|
1520
|
+
"draft": "Rascunho",
|
|
1521
|
+
"submitted": "Aguardando análise",
|
|
1522
|
+
"approved": "Aprovado",
|
|
1523
|
+
"rejected": "Não aprovado"
|
|
1524
|
+
}
|
|
1525
|
+
},
|
|
1526
|
+
"ApprovalsPage": {
|
|
1527
|
+
"title": "Aprovações",
|
|
1528
|
+
"description": "Revise solicitações enviadas e registre decisões do supervisor.",
|
|
1529
|
+
"breadcrumb": "Aprovações",
|
|
1530
|
+
"searchPlaceholder": "Buscar solicitante, alvo, aprovador ou observação...",
|
|
1531
|
+
"noAccessDescription": "Permissões de supervisor ou diretor são necessárias para revisar aprovações.",
|
|
1532
|
+
"emptyDescription": "Nenhuma aprovação corresponde aos filtros atuais.",
|
|
1533
|
+
"cards": {
|
|
1534
|
+
"pending": "Pendentes",
|
|
1535
|
+
"pendingDescription": "Solicitações enviadas aguardando decisão do supervisor.",
|
|
1536
|
+
"approved": "Aprovadas",
|
|
1537
|
+
"approvedDescription": "Solicitações que receberam uma decisão positiva.",
|
|
1538
|
+
"rejected": "Rejeitadas",
|
|
1539
|
+
"rejectedDescription": "Solicitações que não foram aprovadas pelo supervisor."
|
|
1540
|
+
},
|
|
1541
|
+
"dialog": {
|
|
1542
|
+
"approveTitle": "Aprovar solicitação",
|
|
1543
|
+
"rejectTitle": "Rejeitar solicitação",
|
|
1544
|
+
"description": "Adicione uma observação opcional para a solicitação de {requester}: {target}.",
|
|
1545
|
+
"notePlaceholder": "Ex.: Aprovado para o período solicitado. Verifique a disponibilidade da equipe no calendário."
|
|
1546
|
+
},
|
|
1547
|
+
"details": {
|
|
1548
|
+
"title": "Detalhes da aprovação",
|
|
1549
|
+
"description": "Consulte o envio, a data informada e o retorno registrado pelo aprovador.",
|
|
1550
|
+
"period": "Dia",
|
|
1551
|
+
"projects": "Projetos vinculados",
|
|
1552
|
+
"decidedAt": "Decidido em",
|
|
1553
|
+
"timesheetSection": "Detalhes do Timesheet",
|
|
1554
|
+
"timeOffSection": "Detalhes da Ausência",
|
|
1555
|
+
"scheduleSection": "Detalhes do Ajuste de Jornada",
|
|
1556
|
+
"entriesTitle": "Lançamentos",
|
|
1557
|
+
"noEntries": "Nenhum lançamento registrado neste timesheet.",
|
|
1558
|
+
"loadingEntries": "Carregando lançamentos...",
|
|
1559
|
+
"loadingSchedule": "Carregando horários...",
|
|
1560
|
+
"currentSchedule": "Horário atual",
|
|
1561
|
+
"requestedSchedule": "Horário solicitado"
|
|
1562
|
+
},
|
|
1563
|
+
"options": {
|
|
1564
|
+
"statuses": {
|
|
1565
|
+
"pending": "Pendente",
|
|
1566
|
+
"approved": "Aprovado",
|
|
1567
|
+
"rejected": "Rejeitado",
|
|
1568
|
+
"cancelled": "Cancelado"
|
|
1569
|
+
},
|
|
1570
|
+
"targetTypes": {
|
|
1571
|
+
"timesheet": "Timesheet",
|
|
1572
|
+
"time_off_request": "Solicitação de ausência",
|
|
1573
|
+
"schedule_adjustment_request": "Ajuste de horário"
|
|
1574
|
+
},
|
|
1575
|
+
"timeOffTypes": {
|
|
1576
|
+
"vacation": "Férias",
|
|
1577
|
+
"personal_time": "Folga pessoal",
|
|
1578
|
+
"sick_leave": "Licença médica",
|
|
1579
|
+
"unpaid_leave": "Licença sem remuneração",
|
|
1580
|
+
"other": "Outro"
|
|
1581
|
+
},
|
|
1582
|
+
"scheduleScopes": {
|
|
1583
|
+
"temporary": "Temporário",
|
|
1584
|
+
"permanent": "Permanente"
|
|
1585
|
+
}
|
|
1586
|
+
},
|
|
1587
|
+
"actions": {
|
|
1588
|
+
"viewDetails": "Ver detalhes"
|
|
1589
|
+
},
|
|
1590
|
+
"viewMode": "Visualização",
|
|
1591
|
+
"viewModeTable": "Tabela",
|
|
1592
|
+
"viewModeCards": "Grade",
|
|
1593
|
+
"viewModeCalendar": "Calendário",
|
|
1594
|
+
"messages": {
|
|
1595
|
+
"approveSuccess": "Aprovação concluída com sucesso.",
|
|
1596
|
+
"approveError": "Não foi possível aprovar a solicitação.",
|
|
1597
|
+
"rejectSuccess": "Solicitação rejeitada com sucesso.",
|
|
1598
|
+
"rejectError": "Não foi possível rejeitar a solicitação."
|
|
1599
|
+
}
|
|
1600
|
+
},
|
|
1601
|
+
"TimeOffPage": {
|
|
1602
|
+
"title": "Ausências",
|
|
1603
|
+
"description": "Solicite férias ou outras ausências e acompanhe o que está aguardando análise, aprovado ou não aprovado.",
|
|
1604
|
+
"breadcrumb": "Ausências",
|
|
1605
|
+
"searchPlaceholder": "Buscar colaborador, aprovador, motivo ou tipo de solicitação...",
|
|
1606
|
+
"emptyDescription": "Nenhuma solicitação de ausência corresponde aos filtros atuais.",
|
|
1607
|
+
"sheet": {
|
|
1608
|
+
"title": "Criar solicitação de ausência",
|
|
1609
|
+
"description": "As férias continuam neste mesmo fluxo. Escolha as datas, adicione contexto se necessário e o supervisor fará a análise.",
|
|
1610
|
+
"helperTitle": "Use o mesmo fluxo para férias",
|
|
1611
|
+
"helperDescription": "Férias, licença médica, folga pessoal e outras ausências continuam reunidas aqui para manter o histórico simples de acompanhar.",
|
|
1612
|
+
"reasonPlaceholder": "Adicione um contexto curto que ajude o supervisor a revisar esta solicitação."
|
|
1613
|
+
},
|
|
1614
|
+
"details": {
|
|
1615
|
+
"title": "Detalhes da ausência",
|
|
1616
|
+
"description": "Consulte o período solicitado, os dias calculados e o retorno do aprovador.",
|
|
1617
|
+
"period": "Período"
|
|
1618
|
+
},
|
|
1619
|
+
"cards": {
|
|
1620
|
+
"submitted": "Aguardando análise",
|
|
1621
|
+
"submittedDescription": "Solicitações enviadas e pendentes de decisão do supervisor.",
|
|
1622
|
+
"approved": "Solicitações aprovadas",
|
|
1623
|
+
"approvedDescription": "Solicitações aprovadas e contabilizadas na capacidade.",
|
|
1624
|
+
"days": "Dias solicitados",
|
|
1625
|
+
"daysDescription": "Total de dias corridos em todas as solicitações enviadas."
|
|
1626
|
+
},
|
|
1627
|
+
"options": {
|
|
1628
|
+
"requestTypes": {
|
|
1629
|
+
"vacation": "Férias",
|
|
1630
|
+
"personal_time": "Folga pessoal",
|
|
1631
|
+
"sick_leave": "Licença médica",
|
|
1632
|
+
"unpaid_leave": "Licença sem remuneração",
|
|
1633
|
+
"other": "Outro"
|
|
1634
|
+
},
|
|
1635
|
+
"statuses": {
|
|
1636
|
+
"draft": "Rascunho",
|
|
1637
|
+
"submitted": "Aguardando análise",
|
|
1638
|
+
"approved": "Aprovado",
|
|
1639
|
+
"rejected": "Não aprovado",
|
|
1640
|
+
"cancelled": "Cancelado"
|
|
1641
|
+
}
|
|
1642
|
+
},
|
|
1643
|
+
"statusHelp": {
|
|
1644
|
+
"submitted": "Aguardando análise do supervisor.",
|
|
1645
|
+
"approved": "Aprovado e mantido no histórico.",
|
|
1646
|
+
"rejected": "Confira as observações do gestor para os próximos passos."
|
|
1647
|
+
},
|
|
1648
|
+
"viewMode": "Visualização",
|
|
1649
|
+
"viewModeTable": "Tabela",
|
|
1650
|
+
"viewModeCards": "Grade",
|
|
1651
|
+
"actions": {
|
|
1652
|
+
"viewDetails": "Ver detalhes"
|
|
1653
|
+
},
|
|
1654
|
+
"messages": {
|
|
1655
|
+
"requiredFields": "Datas inicial e final são obrigatórias.",
|
|
1656
|
+
"saveSuccess": "Solicitação de ausência enviada com sucesso.",
|
|
1657
|
+
"saveError": "Não foi possível enviar a solicitação de ausência."
|
|
1658
|
+
}
|
|
1659
|
+
},
|
|
1660
|
+
"ScheduleAdjustmentsPage": {
|
|
1661
|
+
"title": "Ajustes de Horário",
|
|
1662
|
+
"description": "Solicite mudanças temporárias ou permanentes no horário semanal e compare com clareza o horário atual e o solicitado.",
|
|
1663
|
+
"breadcrumb": "Ajustes de Horário",
|
|
1664
|
+
"searchPlaceholder": "Buscar colaborador, aprovador, escopo ou motivo...",
|
|
1665
|
+
"emptyDescription": "Nenhuma solicitação de ajuste de horário corresponde aos filtros atuais.",
|
|
1666
|
+
"sheet": {
|
|
1667
|
+
"title": "Criar ajuste de horário",
|
|
1668
|
+
"description": "Informe os dias e horários que deseja ajustar. O supervisor comparará esta solicitação com o seu horário semanal atual.",
|
|
1669
|
+
"reasonPlaceholder": "Explique brevemente por que esta mudança de horário é necessária."
|
|
1670
|
+
},
|
|
1671
|
+
"details": {
|
|
1672
|
+
"title": "Detalhes do ajuste",
|
|
1673
|
+
"description": "Compare o horário atual com o solicitado e consulte o contexto enviado para aprovação."
|
|
1674
|
+
},
|
|
1675
|
+
"cards": {
|
|
1676
|
+
"submitted": "Aguardando análise",
|
|
1677
|
+
"submittedDescription": "Solicitações de ajuste enviadas e aguardando aprovação.",
|
|
1678
|
+
"approved": "Solicitações aprovadas",
|
|
1679
|
+
"approvedDescription": "Ajustes aceitos e aplicados ao horário do colaborador.",
|
|
1680
|
+
"permanent": "Solicitações permanentes",
|
|
1681
|
+
"permanentDescription": "Solicitações de mudança permanente de horário (não apenas temporárias)."
|
|
1682
|
+
},
|
|
1683
|
+
"options": {
|
|
1684
|
+
"requestScopes": {
|
|
1685
|
+
"temporary": "Ajuste temporário",
|
|
1686
|
+
"permanent": "Atualização permanente"
|
|
1687
|
+
},
|
|
1688
|
+
"statuses": {
|
|
1689
|
+
"draft": "Rascunho",
|
|
1690
|
+
"submitted": "Aguardando análise",
|
|
1691
|
+
"approved": "Aprovado",
|
|
1692
|
+
"rejected": "Não aprovado",
|
|
1693
|
+
"cancelled": "Cancelado"
|
|
1694
|
+
}
|
|
1695
|
+
},
|
|
1696
|
+
"table": {
|
|
1697
|
+
"currentSchedule": "Horário atual",
|
|
1698
|
+
"requestedSchedule": "Horário solicitado",
|
|
1699
|
+
"scope": "Escopo"
|
|
1700
|
+
},
|
|
1701
|
+
"scheduleEditor": {
|
|
1702
|
+
"summaryLabel": "Resumo semanal solicitado",
|
|
1703
|
+
"daysPerWeek": "{count} dia(s) úteis selecionado(s)",
|
|
1704
|
+
"helper": "Desative o dia se não houver expediente. Os campos de início, fim e intervalo só valem para dias úteis ativos.",
|
|
1705
|
+
"startTime": "Início",
|
|
1706
|
+
"endTime": "Fim",
|
|
1707
|
+
"breakMinutes": "Intervalo (min)"
|
|
1708
|
+
},
|
|
1709
|
+
"statusHelp": {
|
|
1710
|
+
"submitted": "Aguardando análise do supervisor.",
|
|
1711
|
+
"approved": "Aprovado e mantido no histórico.",
|
|
1712
|
+
"rejected": "Confira as observações do gestor para os próximos passos."
|
|
1713
|
+
},
|
|
1714
|
+
"viewMode": "Visualização",
|
|
1715
|
+
"viewModeTable": "Tabela",
|
|
1716
|
+
"viewModeCards": "Grade",
|
|
1717
|
+
"actions": {
|
|
1718
|
+
"viewDetails": "Ver detalhes"
|
|
1719
|
+
},
|
|
1720
|
+
"messages": {
|
|
1721
|
+
"requiredFields": "Uma data inicial de vigência é obrigatória.",
|
|
1722
|
+
"saveSuccess": "Ajuste de horário enviado com sucesso.",
|
|
1723
|
+
"saveError": "Não foi possível enviar o ajuste de horário."
|
|
1724
|
+
}
|
|
1725
|
+
},
|
|
1726
|
+
"TeamPage": {
|
|
1727
|
+
"title": "Equipe",
|
|
1728
|
+
"description": "Visão do supervisor sobre liderados diretos, alocações e aprovações pendentes.",
|
|
1729
|
+
"breadcrumb": "Equipe",
|
|
1730
|
+
"noAccessDescription": "Permissões de supervisor ou diretor são necessárias para visualizar o painel da equipe.",
|
|
1731
|
+
"emptyDescription": "Ainda não existem liderados diretos vinculados a este supervisor.",
|
|
1732
|
+
"cards": {
|
|
1733
|
+
"members": "Membros da equipe",
|
|
1734
|
+
"membersDescription": "Liderados diretos vinculados a este supervisor.",
|
|
1735
|
+
"projects": "Projetos visíveis",
|
|
1736
|
+
"projectsDescription": "Projetos ativos vinculados a pelo menos um membro da equipe.",
|
|
1737
|
+
"pendingApprovals": "Aprovações pendentes",
|
|
1738
|
+
"pendingApprovalsDescription": "Solicitações aguardando ação do supervisor.",
|
|
1739
|
+
"timeOff": "Fila de ausências",
|
|
1740
|
+
"timeOffDescription": "Solicitações de ausência aguardando revisão.",
|
|
1741
|
+
"scheduleAdjustments": "Fila de horários",
|
|
1742
|
+
"scheduleAdjustmentsDescription": "Solicitações de ajuste de horário aguardando revisão.",
|
|
1743
|
+
"timesheets": "Fila de timesheets",
|
|
1744
|
+
"timesheetsDescription": "Timesheets enviados e aguardando decisão."
|
|
1745
|
+
},
|
|
1746
|
+
"sections": {
|
|
1747
|
+
"requests": "Solicitações em aberto",
|
|
1748
|
+
"pendingApprovals": "Fila de aprovações pendentes",
|
|
1749
|
+
"projects": "Cobertura de projetos da equipe",
|
|
1750
|
+
"timeOff": "Solicitações pendentes de ausência",
|
|
1751
|
+
"scheduleAdjustments": "Solicitações pendentes de mudança de horário"
|
|
1752
|
+
},
|
|
1753
|
+
"labels": {
|
|
1754
|
+
"timeOffRequestsCount": "{count} solicitação(ões) de ausência",
|
|
1755
|
+
"scheduleRequestsCount": "{count} solicitação(ões) de mudança de horário",
|
|
1756
|
+
"projectSummary": "{teamSize} colaborador(es) vinculados • {pendingTimesheets} timesheet(s) pendente(s)"
|
|
1757
|
+
},
|
|
1758
|
+
"states": {
|
|
1759
|
+
"noPendingApprovals": "Não há aprovações pendentes atribuídas a este supervisor no momento.",
|
|
1760
|
+
"noProjects": "Ainda não há projetos ativos vinculados à equipe visíveis.",
|
|
1761
|
+
"noTimeOff": "Nenhuma solicitação pendente de ausência foi encontrada.",
|
|
1762
|
+
"noScheduleAdjustments": "Nenhuma solicitação pendente de ajuste de horário foi encontrada."
|
|
1763
|
+
}
|
|
1764
|
+
},
|
|
1765
|
+
"CollaboratorCostsSection": {
|
|
1766
|
+
"title": "Custos do colaborador",
|
|
1767
|
+
"description": "Custos recorrentes ou avulsos vinculados a este colaborador, além da remuneração base.",
|
|
1768
|
+
"empty": "Nenhum custo registrado para este colaborador.",
|
|
1769
|
+
"confirmDelete": "Remover este custo?",
|
|
1770
|
+
"summary": {
|
|
1771
|
+
"monthlyEstimate": "Custo mensal estimado",
|
|
1772
|
+
"allocatable": "Custos alocáveis",
|
|
1773
|
+
"nonAllocatable": "Custos não alocáveis",
|
|
1774
|
+
"costPerHour": "Custo/hora estimado"
|
|
1775
|
+
},
|
|
1776
|
+
"table": {
|
|
1777
|
+
"type": "Tipo",
|
|
1778
|
+
"amount": "Valor",
|
|
1779
|
+
"recurrence": "Recorrência",
|
|
1780
|
+
"allocatable": "Alocável",
|
|
1781
|
+
"validity": "Vigência",
|
|
1782
|
+
"actions": "Ações"
|
|
1783
|
+
},
|
|
1784
|
+
"fields": {
|
|
1785
|
+
"costType": "Tipo de custo",
|
|
1786
|
+
"costTypeName": "Nome",
|
|
1787
|
+
"costTypeCode": "Código",
|
|
1788
|
+
"costTypeDescription": "Descrição",
|
|
1789
|
+
"category": "Categoria",
|
|
1790
|
+
"description": "Descrição",
|
|
1791
|
+
"amount": "Valor",
|
|
1792
|
+
"recurrence": "Recorrência",
|
|
1793
|
+
"startDate": "Data inicial",
|
|
1794
|
+
"endDate": "Data final",
|
|
1795
|
+
"allocatable": "Alocável (custo de projeto)",
|
|
1796
|
+
"depreciationMonths": "Meses de depreciação",
|
|
1797
|
+
"notes": "Observações"
|
|
1798
|
+
},
|
|
1799
|
+
"placeholders": {
|
|
1800
|
+
"costType": "Selecione ou crie um tipo de custo",
|
|
1801
|
+
"costTypeName": "Nome do tipo de custo",
|
|
1802
|
+
"costTypeCode": "ex: INFRA-001",
|
|
1803
|
+
"costTypeDescription": "Descrição breve (opcional)",
|
|
1804
|
+
"category": "ex: Infraestrutura, Benefícios",
|
|
1805
|
+
"description": "Descrição resumida deste custo",
|
|
1806
|
+
"depreciationMonths": "ex: 12",
|
|
1807
|
+
"notes": "Observações adicionais (opcional)"
|
|
1808
|
+
},
|
|
1809
|
+
"hints": {
|
|
1810
|
+
"depreciationMonths": "O custo avulso será distribuído por este número de meses para o cálculo do custo mensal estimado."
|
|
1811
|
+
},
|
|
1812
|
+
"recurrence": {
|
|
1813
|
+
"one_time": "Avulso",
|
|
1814
|
+
"monthly": "Mensal",
|
|
1815
|
+
"yearly": "Anual"
|
|
1816
|
+
},
|
|
1817
|
+
"validation": {
|
|
1818
|
+
"required": "Este campo é obrigatório.",
|
|
1819
|
+
"greaterThanZero": "O valor deve ser maior que zero.",
|
|
1820
|
+
"endDateAfterStart": "A data final deve ser posterior à data inicial.",
|
|
1821
|
+
"positiveInteger": "Informe um número inteiro maior que zero."
|
|
1822
|
+
},
|
|
1823
|
+
"actions": {
|
|
1824
|
+
"add": "Adicionar custo",
|
|
1825
|
+
"edit": "Editar custo",
|
|
1826
|
+
"saving": "Salvando…",
|
|
1827
|
+
"createCostType": "Criar tipo de custo"
|
|
1828
|
+
},
|
|
1829
|
+
"messages": {
|
|
1830
|
+
"createSuccess": "Custo adicionado com sucesso.",
|
|
1831
|
+
"updateSuccess": "Custo atualizado com sucesso.",
|
|
1832
|
+
"deleteSuccess": "Custo removido com sucesso.",
|
|
1833
|
+
"saveError": "Não foi possível salvar o custo.",
|
|
1834
|
+
"deleteError": "Não foi possível remover o custo.",
|
|
1835
|
+
"loadError": "Não foi possível carregar os custos. Tente novamente."
|
|
1836
|
+
}
|
|
1837
|
+
},
|
|
1838
|
+
"ProjectCostCategoriesPage": {
|
|
1839
|
+
"title": "Categorias de Custo",
|
|
1840
|
+
"description": "Gerencie o catálogo de categorias para classificar os custos de projeto.",
|
|
1841
|
+
"breadcrumb": "Categorias de Custo",
|
|
1842
|
+
"searchPlaceholder": "Buscar categoria, slug ou descrição...",
|
|
1843
|
+
"emptyDescription": "Nenhuma categoria de custo foi encontrada.",
|
|
1844
|
+
"noAccessDescription": "Permissões de diretor são necessárias para gerenciar categorias de custo.",
|
|
1845
|
+
"cards": {
|
|
1846
|
+
"total": "Total de categorias",
|
|
1847
|
+
"active": "Categorias ativas",
|
|
1848
|
+
"inactive": "Categorias inativas"
|
|
1849
|
+
},
|
|
1850
|
+
"columns": {
|
|
1851
|
+
"name": "Nome",
|
|
1852
|
+
"slug": "Slug",
|
|
1853
|
+
"icon": "Ícone",
|
|
1854
|
+
"sortOrder": "Ordem",
|
|
1855
|
+
"active": "Status",
|
|
1856
|
+
"activeYes": "Ativo",
|
|
1857
|
+
"activeNo": "Inativo"
|
|
1858
|
+
},
|
|
1859
|
+
"sheet": {
|
|
1860
|
+
"createTitle": "Criar categoria de custo",
|
|
1861
|
+
"editTitle": "Editar categoria de custo",
|
|
1862
|
+
"description": "Mantenha o catálogo de categorias organizado para classificar os tipos de custo de projeto."
|
|
1863
|
+
},
|
|
1864
|
+
"filters": {
|
|
1865
|
+
"allStatus": "Todos os status",
|
|
1866
|
+
"active": "Ativos",
|
|
1867
|
+
"inactive": "Inativos"
|
|
1868
|
+
},
|
|
1869
|
+
"form": {
|
|
1870
|
+
"name": "Nome",
|
|
1871
|
+
"namePlaceholder": "Ex.: Infraestrutura",
|
|
1872
|
+
"slug": "Slug",
|
|
1873
|
+
"slugPlaceholder": "ex: infrastructure",
|
|
1874
|
+
"description": "Descrição",
|
|
1875
|
+
"descriptionPlaceholder": "Descrição breve desta categoria (opcional)",
|
|
1876
|
+
"icon": "Ícone",
|
|
1877
|
+
"iconPlaceholder": "ex: server",
|
|
1878
|
+
"color": "Cor",
|
|
1879
|
+
"sortOrder": "Ordem de exibição",
|
|
1880
|
+
"isActive": "Ativo"
|
|
1881
|
+
},
|
|
1882
|
+
"deleteDialog": {
|
|
1883
|
+
"title": "Remover categoria de custo?",
|
|
1884
|
+
"description": "Esta ação não pode ser desfeita. Tipos de custo vinculados a esta categoria ficarão sem categoria."
|
|
1885
|
+
},
|
|
1886
|
+
"viewMode": "Visualização",
|
|
1887
|
+
"viewModeTable": "Tabela",
|
|
1888
|
+
"viewModeCards": "Grade",
|
|
1889
|
+
"messages": {
|
|
1890
|
+
"requiredFields": "O nome da categoria é obrigatório.",
|
|
1891
|
+
"saveSuccess": "Categoria salva com sucesso.",
|
|
1892
|
+
"saveError": "Não foi possível salvar a categoria.",
|
|
1893
|
+
"saving": "Salvando…",
|
|
1894
|
+
"deleteSuccess": "Categoria removida com sucesso.",
|
|
1895
|
+
"deleteError": "Não foi possível remover a categoria.",
|
|
1896
|
+
"deleting": "Removendo…"
|
|
1897
|
+
}
|
|
1898
|
+
},
|
|
1899
|
+
"ProjectCostTypesPage": {
|
|
1900
|
+
"title": "Tipos de Custo de Projeto",
|
|
1901
|
+
"description": "Gerencie o catálogo de tipos de custo usados nos projetos.",
|
|
1902
|
+
"breadcrumb": "Tipos de Custo",
|
|
1903
|
+
"searchPlaceholder": "Buscar tipo, código ou descrição...",
|
|
1904
|
+
"emptyDescription": "Nenhum tipo de custo foi encontrado.",
|
|
1905
|
+
"noAccessDescription": "Permissões de diretor são necessárias para gerenciar tipos de custo.",
|
|
1906
|
+
"cards": {
|
|
1907
|
+
"total": "Total de tipos",
|
|
1908
|
+
"active": "Tipos ativos",
|
|
1909
|
+
"inactive": "Tipos inativos"
|
|
1910
|
+
},
|
|
1911
|
+
"columns": {
|
|
1912
|
+
"code": "Código",
|
|
1913
|
+
"name": "Nome",
|
|
1914
|
+
"category": "Categoria",
|
|
1915
|
+
"defaultCalculationType": "Cálculo padrão",
|
|
1916
|
+
"active": "Status",
|
|
1917
|
+
"activeYes": "Ativo",
|
|
1918
|
+
"activeNo": "Inativo"
|
|
1919
|
+
},
|
|
1920
|
+
"filters": {
|
|
1921
|
+
"allCategories": "Todas as categorias",
|
|
1922
|
+
"allCalculationTypes": "Todos os tipos de cálculo"
|
|
1923
|
+
},
|
|
1924
|
+
"calculationType": {
|
|
1925
|
+
"fixed": "Fixo",
|
|
1926
|
+
"unit": "Unitário",
|
|
1927
|
+
"hourly": "Por hora",
|
|
1928
|
+
"monthly": "Mensal",
|
|
1929
|
+
"percentage": "Percentual"
|
|
1930
|
+
},
|
|
1931
|
+
"sheet": {
|
|
1932
|
+
"createTitle": "Criar tipo de custo",
|
|
1933
|
+
"editTitle": "Editar tipo de custo",
|
|
1934
|
+
"description": "Mantenha o catálogo de tipos de custo organizado para uso nos projetos."
|
|
1935
|
+
},
|
|
1936
|
+
"form": {
|
|
1937
|
+
"category": "Categoria",
|
|
1938
|
+
"categoryPlaceholder": "Selecione uma categoria (opcional)",
|
|
1939
|
+
"categoryNone": "Sem categoria",
|
|
1940
|
+
"code": "Código",
|
|
1941
|
+
"codePlaceholder": "Ex.: INFRA-001",
|
|
1942
|
+
"slug": "Slug",
|
|
1943
|
+
"slugPlaceholder": "ex: cloud-hosting",
|
|
1944
|
+
"name": "Nome",
|
|
1945
|
+
"namePlaceholder": "Ex.: Hospedagem em nuvem",
|
|
1946
|
+
"description": "Descrição",
|
|
1947
|
+
"descriptionPlaceholder": "Descrição breve (opcional)",
|
|
1948
|
+
"defaultUnit": "Unidade padrão",
|
|
1949
|
+
"defaultUnitPlaceholder": "Ex.: horas, GB, unidades",
|
|
1950
|
+
"defaultCalculationType": "Tipo de cálculo padrão",
|
|
1951
|
+
"isRecurringAllowed": "Permite recorrência",
|
|
1952
|
+
"sortOrder": "Ordem de exibição",
|
|
1953
|
+
"isActive": "Ativo"
|
|
1954
|
+
},
|
|
1955
|
+
"deleteDialog": {
|
|
1956
|
+
"title": "Remover tipo de custo?",
|
|
1957
|
+
"description": "Esta ação não pode ser desfeita. Custos de projeto vinculados a este tipo ficarão sem tipo."
|
|
1958
|
+
},
|
|
1959
|
+
"viewMode": "Visualização",
|
|
1960
|
+
"viewModeTable": "Tabela",
|
|
1961
|
+
"viewModeCards": "Grade",
|
|
1962
|
+
"messages": {
|
|
1963
|
+
"requiredFields": "O nome e o código do tipo de custo são obrigatórios.",
|
|
1964
|
+
"saveSuccess": "Tipo de custo salvo com sucesso.",
|
|
1965
|
+
"saveError": "Não foi possível salvar o tipo de custo.",
|
|
1966
|
+
"saving": "Salvando…",
|
|
1967
|
+
"deleteSuccess": "Tipo de custo removido com sucesso.",
|
|
1968
|
+
"deleteError": "Não foi possível remover o tipo de custo.",
|
|
1969
|
+
"deleting": "Removendo…"
|
|
1970
|
+
}
|
|
1971
|
+
},
|
|
1972
|
+
"ProjectCostsSection": {
|
|
1973
|
+
"title": "Custos do Projeto",
|
|
1974
|
+
"grandTotal": "Total geral",
|
|
1975
|
+
"empty": "Nenhum custo registrado para este projeto.",
|
|
1976
|
+
"emptyDescription": "Adicione custos planejados, confirmados ou cancelados para acompanhar o orçamento do projeto.",
|
|
1977
|
+
"uncategorized": "Sem categoria",
|
|
1978
|
+
"columns": {
|
|
1979
|
+
"description": "Descrição",
|
|
1980
|
+
"type": "Tipo",
|
|
1981
|
+
"calculationType": "Cálculo",
|
|
1982
|
+
"quantityAmount": "Qtd × Valor",
|
|
1983
|
+
"total": "Total",
|
|
1984
|
+
"status": "Status"
|
|
1985
|
+
},
|
|
1986
|
+
"calculationType": {
|
|
1987
|
+
"fixed": "Fixo",
|
|
1988
|
+
"unit": "Unitário",
|
|
1989
|
+
"hourly": "Por hora",
|
|
1990
|
+
"monthly": "Mensal",
|
|
1991
|
+
"percentage": "Percentual"
|
|
1992
|
+
},
|
|
1993
|
+
"recurrenceType": {
|
|
1994
|
+
"none": "Sem recorrência",
|
|
1995
|
+
"daily": "Diário",
|
|
1996
|
+
"weekly": "Semanal",
|
|
1997
|
+
"monthly": "Mensal",
|
|
1998
|
+
"yearly": "Anual"
|
|
1999
|
+
},
|
|
2000
|
+
"status": {
|
|
2001
|
+
"planned": "Planejado",
|
|
2002
|
+
"approved": "Aprovado",
|
|
2003
|
+
"realized": "Realizado",
|
|
2004
|
+
"cancelled": "Cancelado"
|
|
2005
|
+
},
|
|
2006
|
+
"fields": {
|
|
2007
|
+
"costType": "Tipo de custo",
|
|
2008
|
+
"costTypePlaceholder": "Selecione um tipo (opcional)",
|
|
2009
|
+
"costTypeNone": "Sem tipo",
|
|
2010
|
+
"category": "Categoria",
|
|
2011
|
+
"categoryPlaceholder": "Selecione uma categoria (opcional)",
|
|
2012
|
+
"categoryAutoFilled": "Preenchida automaticamente pelo tipo selecionado",
|
|
2013
|
+
"description": "Descrição",
|
|
2014
|
+
"descriptionPlaceholder": "Descrição resumida do custo",
|
|
2015
|
+
"amount": "Valor",
|
|
2016
|
+
"amountCalculated": "Calculado automaticamente: quantidade \u00d7 valor unit\u00e1rio",
|
|
2017
|
+
"currency": "Moeda",
|
|
2018
|
+
"quantity": "Quantidade",
|
|
2019
|
+
"unitAmount": "Valor unitário",
|
|
2020
|
+
"calculationType": "Tipo de cálculo",
|
|
2021
|
+
"recurrenceType": "Tipo de recorrência",
|
|
2022
|
+
"isBillable": "Faturável",
|
|
2023
|
+
"isReimbursable": "Reembolsável",
|
|
2024
|
+
"status": "Status",
|
|
2025
|
+
"costDate": "Data do custo",
|
|
2026
|
+
"periodStart": "Início do período",
|
|
2027
|
+
"periodEnd": "Fim do período",
|
|
2028
|
+
"notes": "Observações",
|
|
2029
|
+
"notesPlaceholder": "Observações adicionais (opcional)"
|
|
2030
|
+
},
|
|
2031
|
+
"actions": {
|
|
2032
|
+
"add": "Adicionar Custo",
|
|
2033
|
+
"viewReport": "Ver Relatório"
|
|
2034
|
+
},
|
|
2035
|
+
"sheet": {
|
|
2036
|
+
"createTitle": "Adicionar custo ao projeto",
|
|
2037
|
+
"editTitle": "Editar custo do projeto",
|
|
2038
|
+
"description": "Registre um novo custo vinculado a este projeto."
|
|
2039
|
+
},
|
|
2040
|
+
"deleteDialog": {
|
|
2041
|
+
"title": "Remover custo do projeto?",
|
|
2042
|
+
"description": "Esta ação não pode ser desfeita."
|
|
2043
|
+
},
|
|
2044
|
+
"validation": {
|
|
2045
|
+
"amountRequired": "O valor do custo deve ser maior que zero."
|
|
2046
|
+
},
|
|
2047
|
+
"messages": {
|
|
2048
|
+
"createSuccess": "Custo adicionado com sucesso.",
|
|
2049
|
+
"updateSuccess": "Custo atualizado com sucesso.",
|
|
2050
|
+
"deleteSuccess": "Custo removido com sucesso.",
|
|
2051
|
+
"saveError": "Não foi possível salvar o custo.",
|
|
2052
|
+
"deleteError": "Não foi possível remover o custo.",
|
|
2053
|
+
"saving": "Salvando…",
|
|
2054
|
+
"deleting": "Removendo…"
|
|
2055
|
+
},
|
|
2056
|
+
"summary": {
|
|
2057
|
+
"budgetAmount": "Orçamento",
|
|
2058
|
+
"extraCostTotal": "Outros Custos",
|
|
2059
|
+
"totalProjectCost": "Custo Total",
|
|
2060
|
+
"remainingBudget": "Saldo Restante",
|
|
2061
|
+
"budgetUsagePercent": "% do Orçamento",
|
|
2062
|
+
"realizedTotal": "Realizado",
|
|
2063
|
+
"costByCategory": "Custo por Categoria",
|
|
2064
|
+
"costByType": "Top Tipos de Custo",
|
|
2065
|
+
"costByMonth": "Evolução Mensal",
|
|
2066
|
+
"statusBreakdown": "Planejado × Aprovado × Realizado",
|
|
2067
|
+
"noData": "Sem dados suficientes"
|
|
2068
|
+
}
|
|
2069
|
+
},
|
|
2070
|
+
"ProjectCostReport": {
|
|
2071
|
+
"title": "Relatório de Custos do Projeto",
|
|
2072
|
+
"description": "Analise e filtre os custos registrados no projeto.",
|
|
2073
|
+
"exportComingSoon": "Exportar (em breve)",
|
|
2074
|
+
"filters": "Filtros",
|
|
2075
|
+
"dateFrom": "Data inicial",
|
|
2076
|
+
"dateTo": "Data final",
|
|
2077
|
+
"category": "Categoria",
|
|
2078
|
+
"costType": "Tipo de Custo",
|
|
2079
|
+
"status": "Status",
|
|
2080
|
+
"billable": "Faturável",
|
|
2081
|
+
"reimbursable": "Reembolsável",
|
|
2082
|
+
"all": "Todos",
|
|
2083
|
+
"yes": "Sim",
|
|
2084
|
+
"no": "Não",
|
|
2085
|
+
"totalCost": "Custo Total",
|
|
2086
|
+
"planned": "Planejado",
|
|
2087
|
+
"realized": "Realizado",
|
|
2088
|
+
"items": "itens",
|
|
2089
|
+
"chartByMonth": "Planejado × Realizado por Mês",
|
|
2090
|
+
"chartByCategory": "Distribuição por Categoria",
|
|
2091
|
+
"top5Title": "Top 5 Custos",
|
|
2092
|
+
"detailTitle": "Lista Detalhada",
|
|
2093
|
+
"emptyState": "Nenhum custo encontrado para os filtros selecionados.",
|
|
2094
|
+
"colDescription": "Descrição",
|
|
2095
|
+
"colCategory": "Categoria",
|
|
2096
|
+
"colType": "Tipo",
|
|
2097
|
+
"colStatus": "Status",
|
|
2098
|
+
"colDate": "Data",
|
|
2099
|
+
"colAmount": "Valor",
|
|
2100
|
+
"colQuantity": "Qtd",
|
|
2101
|
+
"colTotal": "Total",
|
|
2102
|
+
"colBillable": "Faturável",
|
|
2103
|
+
"colReimbursable": "Reembolsável",
|
|
2104
|
+
"statuses": {
|
|
2105
|
+
"planned": "Planejado",
|
|
2106
|
+
"approved": "Aprovado",
|
|
2107
|
+
"realized": "Realizado",
|
|
2108
|
+
"cancelled": "Cancelado"
|
|
2109
|
+
}
|
|
2110
|
+
}
|
|
2111
|
+
}
|