@hed-hog/operations 0.0.303 → 0.0.305
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/README.md +200 -43
- package/dist/controllers/operations-approvals.controller.d.ts +9 -0
- package/dist/controllers/operations-approvals.controller.d.ts.map +1 -0
- package/dist/controllers/operations-approvals.controller.js +64 -0
- package/dist/controllers/operations-approvals.controller.js.map +1 -0
- package/dist/controllers/operations-collaborators.controller.d.ts +223 -0
- package/dist/controllers/operations-collaborators.controller.d.ts.map +1 -0
- package/dist/controllers/operations-collaborators.controller.js +96 -0
- package/dist/controllers/operations-collaborators.controller.js.map +1 -0
- package/dist/controllers/operations-contracts.controller.d.ts +683 -0
- package/dist/controllers/operations-contracts.controller.d.ts.map +1 -0
- package/dist/controllers/operations-contracts.controller.js +198 -0
- package/dist/controllers/operations-contracts.controller.js.map +1 -0
- package/dist/controllers/operations-org-structure.controller.d.ts +108 -0
- package/dist/controllers/operations-org-structure.controller.d.ts.map +1 -0
- package/dist/controllers/operations-org-structure.controller.js +143 -0
- package/dist/controllers/operations-org-structure.controller.js.map +1 -0
- package/dist/controllers/operations-projects.controller.d.ts +184 -0
- package/dist/controllers/operations-projects.controller.d.ts.map +1 -0
- package/dist/controllers/operations-projects.controller.js +87 -0
- package/dist/controllers/operations-projects.controller.js.map +1 -0
- package/dist/controllers/operations-tasks.controller.d.ts +85 -0
- package/dist/controllers/operations-tasks.controller.d.ts.map +1 -0
- package/dist/controllers/operations-tasks.controller.js +90 -0
- package/dist/controllers/operations-tasks.controller.js.map +1 -0
- package/dist/controllers/operations-timesheets.controller.d.ts +99 -0
- package/dist/controllers/operations-timesheets.controller.d.ts.map +1 -0
- package/dist/controllers/operations-timesheets.controller.js +154 -0
- package/dist/controllers/operations-timesheets.controller.js.map +1 -0
- package/dist/dto/create-collaborator-type.dto.d.ts +10 -0
- package/dist/dto/create-collaborator-type.dto.d.ts.map +1 -0
- package/dist/dto/create-collaborator-type.dto.js +56 -0
- package/dist/dto/create-collaborator-type.dto.js.map +1 -0
- package/dist/dto/create-collaborator.dto.d.ts +42 -0
- package/dist/dto/create-collaborator.dto.d.ts.map +1 -0
- package/dist/dto/create-collaborator.dto.js +228 -0
- package/dist/dto/create-collaborator.dto.js.map +1 -0
- package/dist/dto/create-schedule-adjustment-request.dto.d.ts +17 -0
- package/dist/dto/create-schedule-adjustment-request.dto.d.ts.map +1 -0
- package/dist/dto/create-schedule-adjustment-request.dto.js +89 -0
- package/dist/dto/create-schedule-adjustment-request.dto.js.map +1 -0
- package/dist/dto/create-task.dto.d.ts +14 -0
- package/dist/dto/create-task.dto.d.ts.map +1 -0
- package/dist/dto/create-task.dto.js +83 -0
- package/dist/dto/create-task.dto.js.map +1 -0
- package/dist/dto/create-time-off-request.dto.d.ts +9 -0
- package/dist/dto/create-time-off-request.dto.d.ts.map +1 -0
- package/dist/dto/create-time-off-request.dto.js +54 -0
- package/dist/dto/create-time-off-request.dto.js.map +1 -0
- package/dist/dto/create-timesheet-entry.dto.d.ts +12 -0
- package/dist/dto/create-timesheet-entry.dto.d.ts.map +1 -0
- package/dist/dto/create-timesheet-entry.dto.js +75 -0
- package/dist/dto/create-timesheet-entry.dto.js.map +1 -0
- package/dist/dto/list-collaborator-types.dto.d.ts +4 -0
- package/dist/dto/list-collaborator-types.dto.d.ts.map +1 -0
- package/dist/dto/list-collaborator-types.dto.js +29 -0
- package/dist/dto/list-collaborator-types.dto.js.map +1 -0
- package/dist/dto/list-collaborators.dto.d.ts +8 -0
- package/dist/dto/list-collaborators.dto.d.ts.map +1 -0
- package/dist/dto/list-collaborators.dto.js +42 -0
- package/dist/dto/list-collaborators.dto.js.map +1 -0
- package/dist/dto/list-project-options.dto.d.ts +4 -0
- package/dist/dto/list-project-options.dto.d.ts.map +1 -0
- package/dist/dto/list-project-options.dto.js +8 -0
- package/dist/dto/list-project-options.dto.js.map +1 -0
- package/dist/dto/list-tasks.dto.d.ts +7 -0
- package/dist/dto/list-tasks.dto.d.ts.map +1 -0
- package/dist/dto/list-tasks.dto.js +38 -0
- package/dist/dto/list-tasks.dto.js.map +1 -0
- package/dist/dto/list-timesheet-entries.dto.d.ts +10 -0
- package/dist/dto/list-timesheet-entries.dto.d.ts.map +1 -0
- package/dist/dto/list-timesheet-entries.dto.js +54 -0
- package/dist/dto/list-timesheet-entries.dto.js.map +1 -0
- package/dist/dto/update-collaborator-type.dto.d.ts +4 -0
- package/dist/dto/update-collaborator-type.dto.d.ts.map +1 -0
- package/dist/dto/update-collaborator-type.dto.js +8 -0
- package/dist/dto/update-collaborator-type.dto.js.map +1 -0
- package/dist/dto/update-collaborator.dto.d.ts +4 -0
- package/dist/dto/update-collaborator.dto.d.ts.map +1 -0
- package/dist/dto/update-collaborator.dto.js +8 -0
- package/dist/dto/update-collaborator.dto.js.map +1 -0
- package/dist/dto/update-task.dto.d.ts +14 -0
- package/dist/dto/update-task.dto.d.ts.map +1 -0
- package/dist/dto/update-task.dto.js +84 -0
- package/dist/dto/update-task.dto.js.map +1 -0
- package/dist/operations.controller.d.ts +0 -1045
- package/dist/operations.controller.d.ts.map +1 -1
- package/dist/operations.controller.js +0 -429
- package/dist/operations.controller.js.map +1 -1
- package/dist/operations.module.d.ts.map +1 -1
- package/dist/operations.module.js +23 -2
- package/dist/operations.module.js.map +1 -1
- package/dist/operations.service.d.ts +429 -8
- package/dist/operations.service.d.ts.map +1 -1
- package/dist/operations.service.js +1931 -165
- package/dist/operations.service.js.map +1 -1
- package/dist/operations.service.spec.js +315 -1
- package/dist/operations.service.spec.js.map +1 -1
- package/dist/services/shared/operations-access.service.d.ts +16 -0
- package/dist/services/shared/operations-access.service.d.ts.map +1 -0
- package/dist/services/shared/operations-access.service.js +48 -0
- package/dist/services/shared/operations-access.service.js.map +1 -0
- package/hedhog/data/dashboard.yaml +20 -0
- package/hedhog/data/dashboard_component.yaml +274 -0
- package/hedhog/data/dashboard_component_role.yaml +174 -0
- package/hedhog/data/dashboard_item.yaml +299 -0
- package/hedhog/data/dashboard_role.yaml +20 -0
- package/hedhog/data/menu.yaml +30 -13
- package/hedhog/data/operations_collaborator_type.yaml +76 -0
- package/hedhog/data/route.yaml +196 -0
- package/hedhog/frontend/app/_components/async-options-combobox.tsx.ejs +231 -0
- package/hedhog/frontend/app/_components/collaborator-details-screen.tsx.ejs +125 -40
- package/hedhog/frontend/app/_components/collaborator-form-screen.tsx.ejs +740 -106
- package/hedhog/frontend/app/_components/collaborator-select-with-create.tsx.ejs +256 -256
- package/hedhog/frontend/app/_components/contract-form-screen.tsx.ejs +7 -7
- package/hedhog/frontend/app/_components/contract-template-form-screen.tsx.ejs +306 -306
- package/hedhog/frontend/app/_components/contract-template-select-with-create.tsx.ejs +247 -247
- package/hedhog/frontend/app/_components/contract-wizard-sheet.tsx.ejs +3520 -3520
- package/hedhog/frontend/app/_components/department-select-with-create.tsx.ejs +38 -16
- package/hedhog/frontend/app/_components/project-details-screen.tsx.ejs +1504 -52
- package/hedhog/frontend/app/_components/project-form-screen.tsx.ejs +1017 -649
- package/hedhog/frontend/app/_components/section-card.tsx.ejs +25 -18
- package/hedhog/frontend/app/_components/system-user-select-with-create.tsx.ejs +609 -0
- package/hedhog/frontend/app/_components/timesheet-task-create-sheet.tsx.ejs +213 -0
- package/hedhog/frontend/app/_lib/api.ts.ejs +30 -1
- package/hedhog/frontend/app/_lib/types.ts.ejs +147 -39
- package/hedhog/frontend/app/_lib/utils/format.ts.ejs +40 -9
- package/hedhog/frontend/app/_lib/utils/forms.ts.ejs +48 -1
- package/hedhog/frontend/app/approvals/page.tsx.ejs +116 -98
- package/hedhog/frontend/app/collaborator-types/page.tsx.ejs +502 -0
- package/hedhog/frontend/app/collaborators/page.tsx.ejs +116 -72
- package/hedhog/frontend/app/contracts/page.tsx.ejs +938 -938
- package/hedhog/frontend/app/contracts/templates/page.tsx.ejs +11 -9
- package/hedhog/frontend/app/departments/page.tsx.ejs +1 -1
- package/hedhog/frontend/app/projects/[id]/edit/page.tsx.ejs +1 -1
- package/hedhog/frontend/app/projects/page.tsx.ejs +364 -133
- package/hedhog/frontend/app/schedule-adjustments/page.tsx.ejs +244 -120
- package/hedhog/frontend/app/team/page.tsx.ejs +15 -2
- package/hedhog/frontend/app/time-off/page.tsx.ejs +158 -82
- package/hedhog/frontend/app/timesheets/page.tsx.ejs +814 -357
- package/hedhog/frontend/messages/en.json +268 -53
- package/hedhog/frontend/messages/pt.json +484 -271
- package/hedhog/table/operations_collaborator.yaml +26 -13
- package/hedhog/table/operations_collaborator_equity_participation.yaml +43 -0
- package/hedhog/table/operations_collaborator_type.yaml +33 -0
- package/hedhog/table/operations_job_title.yaml +24 -0
- package/hedhog/table/operations_project.yaml +9 -0
- package/hedhog/table/operations_project_assignment.yaml +9 -0
- package/hedhog/table/operations_project_role.yaml +39 -0
- package/hedhog/table/operations_task.yaml +69 -0
- package/hedhog/table/operations_timesheet_entry.yaml +12 -0
- package/package.json +6 -6
- package/src/controllers/operations-approvals.controller.ts +24 -0
- package/src/controllers/operations-collaborators.controller.ts +60 -0
- package/src/controllers/operations-contracts.controller.ts +138 -0
- package/src/controllers/operations-org-structure.controller.ts +92 -0
- package/src/controllers/operations-projects.controller.ts +50 -0
- package/src/controllers/operations-tasks.controller.ts +63 -0
- package/src/controllers/operations-timesheets.controller.ts +100 -0
- package/src/dto/create-collaborator-type.dto.ts +43 -0
- package/src/dto/create-collaborator.dto.ts +223 -0
- package/src/dto/create-schedule-adjustment-request.dto.ts +91 -0
- package/src/dto/create-task.dto.ts +75 -0
- package/src/dto/create-time-off-request.dto.ts +53 -0
- package/src/dto/create-timesheet-entry.dto.ts +67 -0
- package/src/dto/list-collaborator-types.dto.ts +15 -0
- package/src/dto/list-collaborators.dto.ts +30 -0
- package/src/dto/list-project-options.dto.ts +3 -0
- package/src/dto/list-tasks.dto.ts +25 -0
- package/src/dto/list-timesheet-entries.dto.ts +40 -0
- package/src/dto/update-collaborator-type.dto.ts +3 -0
- package/src/dto/update-collaborator.dto.ts +3 -0
- package/src/dto/update-task.dto.ts +76 -0
- package/src/operations.controller.ts +1 -278
- package/src/operations.module.ts +23 -2
- package/src/operations.service.spec.ts +450 -0
- package/src/operations.service.ts +4507 -1561
- package/src/services/shared/operations-access.service.ts +52 -0
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
"activate": "Ativar",
|
|
10
10
|
"deactivate": "Desativar",
|
|
11
11
|
"save": "Salvar",
|
|
12
|
+
"delete": "Excluir",
|
|
12
13
|
"addLine": "Adicionar linha",
|
|
13
14
|
"approve": "Aprovar",
|
|
14
15
|
"reject": "Rejeitar",
|
|
@@ -16,6 +17,7 @@
|
|
|
16
17
|
"loadMore": "Carregar mais",
|
|
17
18
|
"clearSelection": "Limpar seleção",
|
|
18
19
|
"manageDepartments": "Gerenciar departamentos",
|
|
20
|
+
"manageCollaboratorTypes": "Gerenciar tipos de colaborador",
|
|
19
21
|
"manageTemplates": "Gerenciar templates",
|
|
20
22
|
"useTemplate": "Usar template"
|
|
21
23
|
},
|
|
@@ -39,10 +41,15 @@
|
|
|
39
41
|
"contract": "Contrato",
|
|
40
42
|
"contractStatus": "Status do contrato",
|
|
41
43
|
"contractCategory": "Categoria do contrato",
|
|
44
|
+
"contractType": "Tipo do contrato",
|
|
45
|
+
"signatureStatus": "Status da assinatura",
|
|
42
46
|
"manager": "Gestor",
|
|
43
47
|
"progress": "Progresso",
|
|
44
48
|
"timeline": "Período",
|
|
45
49
|
"budget": "Orçamento",
|
|
50
|
+
"code": "Código",
|
|
51
|
+
"deliveryModel": "Modelo de entrega",
|
|
52
|
+
"allocationPercent": "Alocação %",
|
|
46
53
|
"teamSize": "Tamanho da equipe",
|
|
47
54
|
"client": "Cliente",
|
|
48
55
|
"billingModel": "Modelo de faturamento",
|
|
@@ -52,6 +59,7 @@
|
|
|
52
59
|
"totalHours": "Total de horas",
|
|
53
60
|
"approver": "Aprovador",
|
|
54
61
|
"noNotes": "Sem observações",
|
|
62
|
+
"decisionNote": "Nota da decisão",
|
|
55
63
|
"lines": "linhas",
|
|
56
64
|
"unassigned": "Sem vinculação",
|
|
57
65
|
"viewOnly": "Somente leitura",
|
|
@@ -94,50 +102,50 @@
|
|
|
94
102
|
},
|
|
95
103
|
"DashboardPage": {
|
|
96
104
|
"title": "Dashboard de Operacoes",
|
|
97
|
-
"description": "Monitore entrega,
|
|
105
|
+
"description": "Monitore entrega, solicitações e aprovações da equipe em um único lugar.",
|
|
98
106
|
"breadcrumb": "Dashboard",
|
|
99
107
|
"cards": {
|
|
100
|
-
"projects": "Projetos
|
|
108
|
+
"projects": "Projetos visíveis",
|
|
101
109
|
"projectsDescription": "{active} ativos no momento",
|
|
102
|
-
"timesheets": "Timesheets
|
|
103
|
-
"timesheetsDescription": "{pending} aguardando
|
|
104
|
-
"timeOff": "
|
|
105
|
-
"timeOffDescription": "
|
|
106
|
-
"approvals": "
|
|
107
|
-
"approvalsDescription": "Itens que ainda dependem de
|
|
110
|
+
"timesheets": "Timesheets visíveis",
|
|
111
|
+
"timesheetsDescription": "{pending} aguardando aprovação",
|
|
112
|
+
"timeOff": "Solicitações de ausência",
|
|
113
|
+
"timeOffDescription": "Solicitações aprovadas, pendentes e rejeitadas",
|
|
114
|
+
"approvals": "Aprovações pendentes",
|
|
115
|
+
"approvalsDescription": "Itens que ainda dependem de decisão do supervisor"
|
|
108
116
|
},
|
|
109
117
|
"actions": {
|
|
110
118
|
"openTimesheets": "Abrir timesheets"
|
|
111
119
|
},
|
|
112
120
|
"scope": {
|
|
113
121
|
"title": "Escopo de acesso",
|
|
114
|
-
"description": "O dashboard respeita automaticamente a
|
|
122
|
+
"description": "O dashboard respeita automaticamente a visão de colaborador, supervisor ou diretor.",
|
|
115
123
|
"roleScope": "Escopo",
|
|
116
124
|
"collaborator": "Colaborador vinculado",
|
|
117
125
|
"teamSize": "Liderados diretos"
|
|
118
126
|
},
|
|
119
127
|
"recentTimesheets": {
|
|
120
128
|
"title": "Timesheets recentes",
|
|
121
|
-
"description": "
|
|
122
|
-
"empty": "Ainda
|
|
129
|
+
"description": "Últimos registros semanais visíveis para o seu papel.",
|
|
130
|
+
"empty": "Ainda não existem timesheets disponíveis."
|
|
123
131
|
},
|
|
124
132
|
"nextSteps": {
|
|
125
|
-
"title": "
|
|
126
|
-
"description": "
|
|
127
|
-
"submitTimesheet": "Criar ou enviar sua timesheet semanal para
|
|
128
|
-
"requestTimeOff": "Abrir uma nova
|
|
129
|
-
"adjustSchedule": "Enviar um ajuste de
|
|
133
|
+
"title": "Próximas ações",
|
|
134
|
+
"description": "Ações operacionais mais comuns disponíveis neste módulo.",
|
|
135
|
+
"submitTimesheet": "Criar ou enviar sua timesheet semanal para revisão.",
|
|
136
|
+
"requestTimeOff": "Abrir uma nova solicitação de férias ou ausência.",
|
|
137
|
+
"adjustSchedule": "Enviar um ajuste de horário semanal para aprovação."
|
|
130
138
|
},
|
|
131
139
|
"team": {
|
|
132
140
|
"title": "Resumo da equipe",
|
|
133
141
|
"description": "Visibilidade de liderados diretos para supervisores e diretores.",
|
|
134
142
|
"members": "Membros da equipe",
|
|
135
|
-
"projects": "Projetos
|
|
136
|
-
"pendingApprovals": "
|
|
137
|
-
"assignments": "
|
|
138
|
-
"awaitingReview": "
|
|
139
|
-
"empty": "Ainda
|
|
140
|
-
"collaboratorMessage": "Os
|
|
143
|
+
"projects": "Projetos visíveis",
|
|
144
|
+
"pendingApprovals": "Aprovações pendentes",
|
|
145
|
+
"assignments": "Alocações",
|
|
146
|
+
"awaitingReview": "Aguardando revisão",
|
|
147
|
+
"empty": "Ainda não existem liderados diretos vinculados a este supervisor.",
|
|
148
|
+
"collaboratorMessage": "Os papéis de supervisor e diretor liberam a visão operacional da equipe."
|
|
141
149
|
}
|
|
142
150
|
},
|
|
143
151
|
"CollaboratorsPage": {
|
|
@@ -153,9 +161,13 @@
|
|
|
153
161
|
"viewModeCards": "Grade",
|
|
154
162
|
"cards": {
|
|
155
163
|
"total": "Total de colaboradores",
|
|
164
|
+
"totalDescription": "Todos os colaboradores operacionais registrados no sistema.",
|
|
156
165
|
"active": "Colaboradores ativos",
|
|
166
|
+
"activeDescription": "Em atividade com status operacional ativo.",
|
|
157
167
|
"onLeave": "Em afastamento",
|
|
158
|
-
"
|
|
168
|
+
"onLeaveDescription": "Temporariamente afastados — incluídos na capacidade, mas não alocáveis.",
|
|
169
|
+
"withContracts": "Com contrato",
|
|
170
|
+
"withContractsDescription": "Colaboradores vinculados a pelo menos um contrato."
|
|
159
171
|
},
|
|
160
172
|
"sheet": {
|
|
161
173
|
"createTitle": "Criar colaborador",
|
|
@@ -237,6 +249,9 @@
|
|
|
237
249
|
"basicInfoDescription": "Dados principais de identificação usados em toda a operação.",
|
|
238
250
|
"employmentInfo": "Informações de contratação",
|
|
239
251
|
"employmentInfoDescription": "Defina o tipo do colaborador, o status do ciclo e as datas principais.",
|
|
252
|
+
"employmentInfoCreateDescription": "Escolha o tipo de vínculo e as datas iniciais. Capacidade semanal e remuneração podem ser ajustadas após a criação.",
|
|
253
|
+
"equity": "Detalhes de participação societária",
|
|
254
|
+
"equityDescription": "Preencha esta seção apenas quando a relação selecionada exigir dados de propriedade ou governança.",
|
|
240
255
|
"supervisor": "Vínculo de supervisor",
|
|
241
256
|
"supervisorDescription": "Associe o supervisor direto usado para visão de equipe e aprovações.",
|
|
242
257
|
"contract": "Remuneração e contrato rascunho",
|
|
@@ -248,26 +263,36 @@
|
|
|
248
263
|
"person": "Pessoa",
|
|
249
264
|
"personEntityLabel": "pessoa",
|
|
250
265
|
"personDescription": "Selecione uma pessoa existente ou cadastre uma nova sem sair desta tela.",
|
|
251
|
-
"userId": "
|
|
252
|
-
"userIdOptional": "
|
|
253
|
-
"userIdDescription": "
|
|
266
|
+
"userId": "Usuário do sistema",
|
|
267
|
+
"userIdOptional": "Usuário do sistema (opcional)",
|
|
268
|
+
"userIdDescription": "Vincule a conta da plataforma que este colaborador vai usar para login, apontamentos e ações de autosserviço.",
|
|
254
269
|
"code": "Código",
|
|
255
270
|
"displayName": "Nome exibido",
|
|
256
271
|
"department": "Departamento",
|
|
257
272
|
"departmentDescription": "Selecione um departamento existente ou cadastre um novo para este colaborador.",
|
|
258
273
|
"title": "Cargo / função",
|
|
274
|
+
"titleDescription": "Selecione um cargo existente ou cadastre um novo para reutilizar nos próximos colaboradores.",
|
|
259
275
|
"levelLabel": "Nível",
|
|
260
276
|
"notes": "Observações",
|
|
261
277
|
"collaboratorType": "Tipo de colaborador",
|
|
278
|
+
"collaboratorTypeDescription": "Selecione a natureza da relação com a empresa. Função e participação societária permanecem separadas.",
|
|
262
279
|
"weeklyCapacityHours": "Carga horária semanal",
|
|
263
280
|
"compensationAmount": "Valor da remuneração",
|
|
264
281
|
"contractDescription": "Observações do contrato rascunho",
|
|
282
|
+
"equityParticipationType": "Tipo de participação",
|
|
283
|
+
"equityPercentage": "Percentual societário",
|
|
284
|
+
"votingPower": "Poder de voto (%)",
|
|
285
|
+
"equityNotes": "Observações societárias",
|
|
265
286
|
"startTime": "Início",
|
|
266
287
|
"endTime": "Fim",
|
|
267
288
|
"breakMinutes": "Intervalo (min)",
|
|
268
289
|
"breakMinutesDescription": "O último campo numérico define o intervalo/pausa diária em minutos. Ex.: 60 = 1 hora de almoço.",
|
|
269
290
|
"autoGenerateContractDraft": "Gerar contrato rascunho automaticamente",
|
|
270
|
-
"autoGenerateContractDraftDescription": "Cria um contrato rascunho relacionado, classificado pelo tipo de colaborador e vinculado à origem de contratação."
|
|
291
|
+
"autoGenerateContractDraftDescription": "Cria um contrato rascunho relacionado, classificado pelo tipo de colaborador e vinculado à origem de contratação.",
|
|
292
|
+
"createUserDescription": "Informe as credenciais do novo usuário do sistema. A conta será criada imediatamente e vinculada a este colaborador.",
|
|
293
|
+
"createUserName": "Nome completo",
|
|
294
|
+
"createUserEmail": "E-mail",
|
|
295
|
+
"createUserPassword": "Senha"
|
|
271
296
|
},
|
|
272
297
|
"options": {
|
|
273
298
|
"collaboratorTypes": {
|
|
@@ -277,6 +302,20 @@
|
|
|
277
302
|
"intern": "Estagiário",
|
|
278
303
|
"other": "Outro"
|
|
279
304
|
},
|
|
305
|
+
"levels": {
|
|
306
|
+
"junior": "Júnior",
|
|
307
|
+
"mid": "Pleno",
|
|
308
|
+
"senior": "Sênior",
|
|
309
|
+
"coordinator": "Coordenador",
|
|
310
|
+
"manager": "Gerente"
|
|
311
|
+
},
|
|
312
|
+
"equityParticipationTypes": {
|
|
313
|
+
"partner_quota_holder": "Sócio quotista",
|
|
314
|
+
"common_shareholder": "Acionista ordinário",
|
|
315
|
+
"preferred_shareholder": "Acionista preferencial",
|
|
316
|
+
"administrator": "Administrador",
|
|
317
|
+
"other": "Outro"
|
|
318
|
+
},
|
|
280
319
|
"statuses": {
|
|
281
320
|
"active": "Ativo",
|
|
282
321
|
"on_leave": "Em afastamento",
|
|
@@ -288,17 +327,78 @@
|
|
|
288
327
|
"person": "Selecione ou cadastre uma pessoa",
|
|
289
328
|
"department": "Selecione ou cadastre um departamento",
|
|
290
329
|
"departmentCreate": "Nome do departamento",
|
|
330
|
+
"title": "Selecione ou cadastre um cargo / função",
|
|
331
|
+
"titleCreate": "Nome do cargo / função",
|
|
332
|
+
"collaboratorType": "Selecione o tipo de colaborador",
|
|
333
|
+
"equityPercentage": "Ex.: 25",
|
|
334
|
+
"votingPower": "Ex.: 50",
|
|
335
|
+
"equityNotes": "Observações sobre cotas, ações, prazo ou poderes",
|
|
336
|
+
"levelLabel": "Selecione um nível",
|
|
291
337
|
"supervisor": "Busque um colaborador",
|
|
292
|
-
"userIdOptional": "
|
|
338
|
+
"userIdOptional": "Selecione um usuário do sistema",
|
|
339
|
+
"createUserName": "Nome completo",
|
|
340
|
+
"createUserEmail": "usuario@exemplo.com",
|
|
341
|
+
"createUserPassword": "Senha forte"
|
|
342
|
+
},
|
|
343
|
+
"actions": {
|
|
344
|
+
"createUser": "Criar usuário do sistema"
|
|
345
|
+
},
|
|
346
|
+
"states": {
|
|
347
|
+
"loadingCollaboratorTypes": "Carregando tipos de colaborador..."
|
|
293
348
|
},
|
|
294
349
|
"messages": {
|
|
295
350
|
"userRequired": "O vínculo com usuário pode ser feito depois do cadastro inicial.",
|
|
296
351
|
"personRequired": "Selecione ou cadastre uma pessoa para o colaborador.",
|
|
352
|
+
"collaboratorTypeRequired": "Selecione um tipo de colaborador.",
|
|
297
353
|
"requiredFields": "O código do colaborador é obrigatório.",
|
|
298
354
|
"createSuccess": "Colaborador criado com sucesso.",
|
|
299
355
|
"createError": "Não foi possível criar o colaborador.",
|
|
300
356
|
"updateSuccess": "Colaborador atualizado com sucesso.",
|
|
301
|
-
"updateError": "Não foi possível atualizar o colaborador."
|
|
357
|
+
"updateError": "Não foi possível atualizar o colaborador.",
|
|
358
|
+
"createUserSuccess": "Usuário criado e vinculado com sucesso.",
|
|
359
|
+
"createUserError": "Não foi possível criar o usuário do sistema."
|
|
360
|
+
}
|
|
361
|
+
},
|
|
362
|
+
"CollaboratorTypesPage": {
|
|
363
|
+
"title": "Tipos de colaborador",
|
|
364
|
+
"description": "Gerencie o catálogo de tipos de colaborador usado nos registros de colaboradores e nas regras operacionais.",
|
|
365
|
+
"breadcrumb": "Tipos de colaborador",
|
|
366
|
+
"searchPlaceholder": "Buscar tipo de colaborador, slug, categoria ou descrição...",
|
|
367
|
+
"emptyDescription": "Nenhum tipo de colaborador corresponde aos filtros atuais.",
|
|
368
|
+
"noAccessDescription": "Permissões de diretor são necessárias para gerenciar tipos de colaborador.",
|
|
369
|
+
"cards": {
|
|
370
|
+
"total": "Total de tipos",
|
|
371
|
+
"active": "Tipos ativos",
|
|
372
|
+
"linkedCollaborators": "Colaboradores vinculados",
|
|
373
|
+
"inactive": "Tipos inativos"
|
|
374
|
+
},
|
|
375
|
+
"columns": {
|
|
376
|
+
"name": "Nome",
|
|
377
|
+
"slug": "Slug",
|
|
378
|
+
"category": "Categoria",
|
|
379
|
+
"description": "Descrição",
|
|
380
|
+
"sortOrder": "Ordem",
|
|
381
|
+
"collaborators": "Colaboradores"
|
|
382
|
+
},
|
|
383
|
+
"sheet": {
|
|
384
|
+
"createTitle": "Criar tipo de colaborador",
|
|
385
|
+
"editTitle": "Editar tipo de colaborador",
|
|
386
|
+
"description": "Mantenha o catálogo de tipos de colaborador organizado para os registros de colaboradores e regras operacionais."
|
|
387
|
+
},
|
|
388
|
+
"form": {
|
|
389
|
+
"name": "Nome",
|
|
390
|
+
"slug": "Slug",
|
|
391
|
+
"category": "Categoria",
|
|
392
|
+
"description": "Descrição",
|
|
393
|
+
"sortOrder": "Ordem de exibição",
|
|
394
|
+
"status": "Status"
|
|
395
|
+
},
|
|
396
|
+
"messages": {
|
|
397
|
+
"requiredFields": "O nome do tipo de colaborador é obrigatório.",
|
|
398
|
+
"saveSuccess": "Tipo de colaborador salvo com sucesso.",
|
|
399
|
+
"saveError": "Não foi possível salvar o tipo de colaborador.",
|
|
400
|
+
"statusSuccess": "Status do tipo de colaborador atualizado com sucesso.",
|
|
401
|
+
"statusError": "Não foi possível atualizar o status do tipo de colaborador."
|
|
302
402
|
}
|
|
303
403
|
},
|
|
304
404
|
"CollaboratorDetailsPage": {
|
|
@@ -340,10 +440,17 @@
|
|
|
340
440
|
"emptyDescription": "Nenhum projeto corresponde aos filtros atuais.",
|
|
341
441
|
"cards": {
|
|
342
442
|
"total": "Projetos",
|
|
443
|
+
"totalDescription": "Todos os projetos de entrega visíveis para o seu escopo de acesso.",
|
|
343
444
|
"active": "Ativos",
|
|
445
|
+
"activeDescription": "Abertos para lançamentos de timesheet e trabalho da equipe.",
|
|
344
446
|
"atRisk": "Em risco",
|
|
345
|
-
"
|
|
447
|
+
"atRiskDescription": "Sinalizados por problemas de entrega, equipe ou orçamento.",
|
|
448
|
+
"upcomingDeliveries": "Com prazo",
|
|
449
|
+
"upcomingDeliveriesDescription": "Projetos com data de entrega definida."
|
|
346
450
|
},
|
|
451
|
+
"viewMode": "Visualização",
|
|
452
|
+
"viewModeTable": "Tabela",
|
|
453
|
+
"viewModeCards": "Cards",
|
|
347
454
|
"actions": {
|
|
348
455
|
"archive": "Arquivar"
|
|
349
456
|
},
|
|
@@ -371,20 +478,24 @@
|
|
|
371
478
|
"newTitle": "Novo Projeto",
|
|
372
479
|
"editTitle": "Editar Projeto",
|
|
373
480
|
"breadcrumb": "Cadastro de Projeto",
|
|
374
|
-
"description": "
|
|
375
|
-
"noAccessDescription": "
|
|
481
|
+
"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.",
|
|
482
|
+
"noAccessDescription": "Permissões de diretor são necessárias para gerenciar projetos.",
|
|
376
483
|
"loading": "Carregando dados do projeto...",
|
|
377
484
|
"sections": {
|
|
378
|
-
"basicInfo": "
|
|
485
|
+
"basicInfo": "Informações básicas do projeto",
|
|
379
486
|
"basicInfoDescription": "Defina o engajamento com o cliente e o resumo operacional.",
|
|
380
|
-
"
|
|
381
|
-
"
|
|
382
|
-
"
|
|
383
|
-
"
|
|
487
|
+
"basicInfoCreateDescription": "Comece apenas com o essencial para abrir o projeto e continue a configuração depois de salvar.",
|
|
488
|
+
"governance": "Responsável e datas",
|
|
489
|
+
"governanceDescription": "Defina o responsável, o status do ciclo e o período do projeto.",
|
|
490
|
+
"governanceCreateDescription": "Se quiser, defina agora o gestor e a data inicial. Progresso e controles do ciclo podem ser ajustados depois.",
|
|
491
|
+
"team": "Alocação inicial da equipe",
|
|
492
|
+
"teamDescription": "{count} colaboradores selecionados para a equipe inicial. Você pode refinar as alocações depois de salvar.",
|
|
384
493
|
"financials": "Base financeira e contratual",
|
|
385
|
-
"financialsDescription": "Dados
|
|
386
|
-
"contract": "
|
|
387
|
-
"contractDescription": "
|
|
494
|
+
"financialsDescription": "Dados financeiros, faturamento e contrato podem ser preenchidos depois que o projeto for salvo.",
|
|
495
|
+
"contract": "Configurações do contrato",
|
|
496
|
+
"contractDescription": "Vincule um contrato existente ou configure a geração de rascunho após o primeiro salvamento do projeto.",
|
|
497
|
+
"nextSteps": "Continue após salvar",
|
|
498
|
+
"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."
|
|
388
499
|
},
|
|
389
500
|
"fields": {
|
|
390
501
|
"code": "Codigo do projeto",
|
|
@@ -395,16 +506,16 @@
|
|
|
395
506
|
"progressPercent": "Progresso %",
|
|
396
507
|
"roleLabel": "Papel / responsabilidade",
|
|
397
508
|
"weeklyHours": "Horas semanais",
|
|
398
|
-
"allocationPercent": "
|
|
399
|
-
"isBillable": "
|
|
400
|
-
"isBillableDescription": "Inclui esta
|
|
401
|
-
"contractCode": "
|
|
509
|
+
"allocationPercent": "Alocação %",
|
|
510
|
+
"isBillable": "Faturável",
|
|
511
|
+
"isBillableDescription": "Inclui esta alocação na capacidade faturável.",
|
|
512
|
+
"contractCode": "Código do contrato rascunho",
|
|
402
513
|
"contractName": "Nome do contrato rascunho",
|
|
403
|
-
"contractDescription": "
|
|
514
|
+
"contractDescription": "Observações do contrato rascunho",
|
|
404
515
|
"contractTemplate": "Template do contrato",
|
|
405
516
|
"autoGenerateContractDraft": "Gerar contrato rascunho automaticamente",
|
|
406
|
-
"autoGenerateContractDraftDescription": "Cria um contrato rascunho de cliente/
|
|
407
|
-
"existingContractSelected": "
|
|
517
|
+
"autoGenerateContractDraftDescription": "Cria um contrato rascunho de cliente/serviço com base nos dados deste projeto e vincula como contrato relacionado.",
|
|
518
|
+
"existingContractSelected": "Já existe um contrato selecionado para este projeto."
|
|
408
519
|
},
|
|
409
520
|
"labels": {
|
|
410
521
|
"enabled": "Ativado",
|
|
@@ -414,17 +525,17 @@
|
|
|
414
525
|
"hints": {
|
|
415
526
|
"summary": "Seja breve: escopo, objetivo e contexto principal da entrega.",
|
|
416
527
|
"progressPercent": "Use uma estimativa simples de 0 a 100.",
|
|
417
|
-
"monthlyHourCap": "Limite opcional usado no planejamento e na
|
|
418
|
-
"contract": "Ao selecionar um contrato existente, a
|
|
419
|
-
"contractTemplate": "Use um template para
|
|
528
|
+
"monthlyHourCap": "Limite opcional usado no planejamento e na geração do contrato rascunho.",
|
|
529
|
+
"contract": "Ao selecionar um contrato existente, a geração automática do rascunho é desativada.",
|
|
530
|
+
"contractTemplate": "Use um template para pré-preencher o novo contrato ou o rascunho automático deste projeto.",
|
|
420
531
|
"contractCode": "Usado apenas se um contrato rascunho for gerado a partir deste projeto.",
|
|
421
|
-
"contractName": "
|
|
422
|
-
"contractDescription": "
|
|
532
|
+
"contractName": "ítulo visível para o contrato rascunho gerado.",
|
|
533
|
+
"contractDescription": "Observações comerciais ou cláusulas opcionais para o rascunho."
|
|
423
534
|
},
|
|
424
535
|
"placeholders": {
|
|
425
536
|
"code": "Ex: PRJ-2026-001",
|
|
426
537
|
"name": "Informe o nome do projeto",
|
|
427
|
-
"clientName": "
|
|
538
|
+
"clientName": "Selecione ou cadastre a empresa/conta cliente",
|
|
428
539
|
"summary": "Descreva escopo, objetivos e contexto da entrega",
|
|
429
540
|
"progressPercent": "0 a 100",
|
|
430
541
|
"managerSearch": "Buscar gestor...",
|
|
@@ -434,7 +545,9 @@
|
|
|
434
545
|
"monthlyHourCap": "Limite mensal de horas",
|
|
435
546
|
"contractCode": "Usado apenas ao criar contrato rascunho",
|
|
436
547
|
"contractName": "Nome visivel do contrato gerado",
|
|
437
|
-
"contractDescription": "Adicione observacoes comerciais ou clausulas da entrega"
|
|
548
|
+
"contractDescription": "Adicione observacoes comerciais ou clausulas da entrega",
|
|
549
|
+
"roleLabel": "Selecione ou informe o papel...",
|
|
550
|
+
"roleLabelCreate": "Novo papel ou responsabilidade"
|
|
438
551
|
},
|
|
439
552
|
"options": {
|
|
440
553
|
"deliveryModels": {
|
|
@@ -448,21 +561,22 @@
|
|
|
448
561
|
"active": "Ativo",
|
|
449
562
|
"at_risk": "Em risco",
|
|
450
563
|
"paused": "Pausado",
|
|
451
|
-
"completed": "
|
|
564
|
+
"completed": "Concluído",
|
|
452
565
|
"archived": "Arquivado"
|
|
453
566
|
},
|
|
454
567
|
"billingModels": {
|
|
455
568
|
"time_and_material": "Tempo e material",
|
|
456
569
|
"monthly_retainer": "Mensalidade fixa",
|
|
457
|
-
"fixed_price": "
|
|
570
|
+
"fixed_price": "Preço fechado"
|
|
458
571
|
}
|
|
459
572
|
},
|
|
460
573
|
"messages": {
|
|
461
|
-
"requiredFields": "
|
|
574
|
+
"requiredFields": "Somente código, nome do projeto e nome do cliente são obrigatórios para criar o projeto.",
|
|
575
|
+
"roleRequired": "Selecione ou informe um papel para cada colaborador alocado.",
|
|
462
576
|
"createSuccess": "Projeto criado com sucesso.",
|
|
463
|
-
"createError": "
|
|
577
|
+
"createError": "Não foi possível criar o projeto.",
|
|
464
578
|
"updateSuccess": "Projeto atualizado com sucesso.",
|
|
465
|
-
"updateError": "
|
|
579
|
+
"updateError": "Não foi possível atualizar o projeto.",
|
|
466
580
|
"currentContractStatus": "Status atual do contrato relacionado: {status}"
|
|
467
581
|
}
|
|
468
582
|
},
|
|
@@ -470,16 +584,16 @@
|
|
|
470
584
|
"title": "Detalhes do Projeto",
|
|
471
585
|
"breadcrumb": "Detalhes do Projeto",
|
|
472
586
|
"description": "Consulte dados de entrega, equipe, contrato relacionado, atividade de timesheets e indicadores operacionais do projeto.",
|
|
473
|
-
"notFound": "O projeto solicitado
|
|
587
|
+
"notFound": "O projeto solicitado não foi encontrado ou não está visível no seu escopo de acesso.",
|
|
474
588
|
"cards": {
|
|
475
589
|
"teamSize": "Tamanho da equipe",
|
|
476
590
|
"teamSizeDescription": "Colaboradores atualmente vinculados a este projeto.",
|
|
477
591
|
"timesheets": "Timesheets",
|
|
478
|
-
"timesheetsDescription": "{pending} pendentes de
|
|
479
|
-
"loggedHours": "Horas
|
|
592
|
+
"timesheetsDescription": "{pending} pendentes de revisão",
|
|
593
|
+
"loggedHours": "Horas lançadas",
|
|
480
594
|
"loggedHoursDescription": "Total de horas vinculadas a este projeto.",
|
|
481
|
-
"allocation": "
|
|
482
|
-
"allocationDescription": "
|
|
595
|
+
"allocation": "Alocação média",
|
|
596
|
+
"allocationDescription": "édia de alocação das atribuições do projeto."
|
|
483
597
|
},
|
|
484
598
|
"sections": {
|
|
485
599
|
"overview": "Visao geral",
|
|
@@ -495,27 +609,27 @@
|
|
|
495
609
|
"averageAllocation": "Alocacao media",
|
|
496
610
|
"totalWeeklyHours": "Total de horas semanais"
|
|
497
611
|
},
|
|
498
|
-
"noContract": "Ainda
|
|
499
|
-
"noAssignments": "Ainda
|
|
612
|
+
"noContract": "Ainda não existe contrato relacionado a este projeto.",
|
|
613
|
+
"noAssignments": "Ainda não existem colaboradores vinculados a este projeto."
|
|
500
614
|
},
|
|
501
615
|
"ContractsPage": {
|
|
502
616
|
"title": "Contratos",
|
|
503
|
-
"description": "Registro central de contratos manuais e com origem de
|
|
617
|
+
"description": "Registro central de contratos manuais e com origem de negócio, com ciclo de vida, documentos e visão financeira.",
|
|
504
618
|
"breadcrumb": "Contratos",
|
|
505
|
-
"searchPlaceholder": "Buscar contrato, parte relacionada, cliente, tipo ou
|
|
619
|
+
"searchPlaceholder": "Buscar contrato, parte relacionada, cliente, tipo ou código...",
|
|
506
620
|
"emptyDescription": "Nenhum contrato corresponde aos filtros atuais.",
|
|
507
621
|
"cards": {
|
|
508
622
|
"total": "Total de contratos",
|
|
509
623
|
"active": "Contratos ativos",
|
|
510
|
-
"underReview": "Em
|
|
624
|
+
"underReview": "Em revisão",
|
|
511
625
|
"withTemplate": "Com template"
|
|
512
626
|
},
|
|
513
|
-
"viewMode": "
|
|
627
|
+
"viewMode": "Visualização",
|
|
514
628
|
"viewModeTable": "Tabela",
|
|
515
629
|
"viewModeCards": "Cards",
|
|
516
630
|
"columns": {
|
|
517
|
-
"title": "
|
|
518
|
-
"code": "
|
|
631
|
+
"title": "Título",
|
|
632
|
+
"code": "Código",
|
|
519
633
|
"type": "Tipo",
|
|
520
634
|
"origin": "Origem",
|
|
521
635
|
"template": "Template",
|
|
@@ -541,82 +655,82 @@
|
|
|
541
655
|
"description": "Gerencie o contrato em uma lateral, sem sair da lista principal."
|
|
542
656
|
},
|
|
543
657
|
"wizard": {
|
|
544
|
-
"title": "Assistente de
|
|
658
|
+
"title": "Assistente de criação de contrato",
|
|
545
659
|
"description": "Escolha como deseja iniciar: enviar um documento existente, usar um template salvo ou criar do zero.",
|
|
546
660
|
"options": {
|
|
547
661
|
"upload": {
|
|
548
|
-
"title": "
|
|
662
|
+
"title": "Já tenho um PDF ou Word",
|
|
549
663
|
"description": "Envie um contrato existente para extrair dados e revisar antes de salvar."
|
|
550
664
|
},
|
|
551
665
|
"template": {
|
|
552
666
|
"title": "Quero usar um template",
|
|
553
|
-
"description": "Comece com um modelo salvo e ajuste os campos conforme
|
|
667
|
+
"description": "Comece com um modelo salvo e ajuste os campos conforme necessário."
|
|
554
668
|
},
|
|
555
669
|
"blank": {
|
|
556
670
|
"title": "Quero criar do zero",
|
|
557
|
-
"description": "Abra o
|
|
671
|
+
"description": "Abra o formulário em branco para montar um contrato totalmente personalizado."
|
|
558
672
|
}
|
|
559
673
|
},
|
|
560
674
|
"upload": {
|
|
561
675
|
"title": "Enviar contrato existente",
|
|
562
|
-
"description": "Adicione um PDF ou DOCX. A IA pode sugerir um rascunho, mas
|
|
676
|
+
"description": "Adicione um PDF ou DOCX. A IA pode sugerir um rascunho, mas você sempre revisa antes de salvar.",
|
|
563
677
|
"selectFile": "Selecionar arquivo",
|
|
564
678
|
"supportedFiles": "Formatos aceitos: PDF, DOC e DOCX.",
|
|
565
|
-
"aiReady": "
|
|
566
|
-
"aiUnavailable": "Nenhum provedor de IA
|
|
679
|
+
"aiReady": "Extração assistida pronta com {provider}.",
|
|
680
|
+
"aiUnavailable": "Nenhum provedor de IA está configurado. Você ainda pode continuar manualmente com o arquivo anexado.",
|
|
567
681
|
"promptMessage": "Analyze the attached contract and extract a structured draft for the contract form."
|
|
568
682
|
},
|
|
569
683
|
"template": {
|
|
570
|
-
"title": "
|
|
571
|
-
"description": "Selecione um template salvo para abrir o
|
|
684
|
+
"title": "Começar com um template",
|
|
685
|
+
"description": "Selecione um template salvo para abrir o formulário já preenchido com estrutura inicial.",
|
|
572
686
|
"placeholder": "Selecione um template",
|
|
573
|
-
"noDescription": "Este template ainda
|
|
687
|
+
"noDescription": "Este template ainda não possui descrição."
|
|
574
688
|
},
|
|
575
689
|
"blank": {
|
|
576
|
-
"title": "
|
|
577
|
-
"description": "Abra um
|
|
578
|
-
"helper": "Ideal para contratos novos,
|
|
690
|
+
"title": "Criação personalizada",
|
|
691
|
+
"description": "Abra um formulário vazio e preencha manualmente todas as informações do contrato.",
|
|
692
|
+
"helper": "Ideal para contratos novos, cenários fora do padrão ou quando você quer controlar cada detalhe desde o início."
|
|
579
693
|
},
|
|
580
694
|
"review": {
|
|
581
|
-
"title": "
|
|
582
|
-
"description": "Confira os dados sugeridos pela IA no
|
|
583
|
-
"missingFields": "Campos que ainda precisam de
|
|
584
|
-
"warnings": "Alertas da
|
|
695
|
+
"title": "Revisão obrigatória antes de salvar",
|
|
696
|
+
"description": "Confira os dados sugeridos pela IA no formulário antes de concluir o contrato.",
|
|
697
|
+
"missingFields": "Campos que ainda precisam de atenção",
|
|
698
|
+
"warnings": "Alertas da extração"
|
|
585
699
|
},
|
|
586
700
|
"actions": {
|
|
587
701
|
"extractWithAi": "Extrair dados com IA",
|
|
588
|
-
"reviewInForm": "Revisar no
|
|
702
|
+
"reviewInForm": "Revisar no formulário",
|
|
589
703
|
"continueManual": "Continuar manualmente",
|
|
590
|
-
"skipToBlank": "Pular para
|
|
704
|
+
"skipToBlank": "Pular para formulário em branco",
|
|
591
705
|
"useTemplate": "Usar template",
|
|
592
|
-
"startBlank": "Abrir
|
|
706
|
+
"startBlank": "Abrir formulário em branco"
|
|
593
707
|
},
|
|
594
708
|
"messages": {
|
|
595
709
|
"missingFile": "Selecione um arquivo PDF, DOC ou DOCX para continuar.",
|
|
596
|
-
"missingAiConfiguration": "Configure OpenAI ou Gemini para usar a
|
|
597
|
-
"extractSuccess": "Rascunho
|
|
598
|
-
"extractError": "
|
|
710
|
+
"missingAiConfiguration": "Configure OpenAI ou Gemini para usar a extração assistida.",
|
|
711
|
+
"extractSuccess": "Rascunho extraído com sucesso usando {provider}.",
|
|
712
|
+
"extractError": "Não foi possível extrair os dados do documento. Você ainda pode continuar manualmente."
|
|
599
713
|
}
|
|
600
714
|
},
|
|
601
715
|
"messages": {
|
|
602
716
|
"statusSuccess": "Status do contrato atualizado com sucesso.",
|
|
603
|
-
"statusError": "
|
|
717
|
+
"statusError": "Não foi possível atualizar o status do contrato.",
|
|
604
718
|
"uploadSuccess": "PDF do contrato enviado com sucesso.",
|
|
605
|
-
"uploadError": "
|
|
606
|
-
"noPdf": "Nenhum PDF
|
|
607
|
-
"deleteSuccess": "Contrato
|
|
608
|
-
"deleteError": "
|
|
719
|
+
"uploadError": "ão foi possível enviar o PDF do contrato.",
|
|
720
|
+
"noPdf": "Nenhum PDF está disponível para este contrato.",
|
|
721
|
+
"deleteSuccess": "Contrato excluído com sucesso.",
|
|
722
|
+
"deleteError": "Não foi possível excluir o contrato.",
|
|
609
723
|
"confirmDeleteTitle": "Excluir contrato?",
|
|
610
|
-
"confirmDeleteDescription": "Essa
|
|
724
|
+
"confirmDeleteDescription": "Essa ação removerá \"{name}\" da lista de contratos."
|
|
611
725
|
}
|
|
612
726
|
},
|
|
613
727
|
"ContractTemplatesPage": {
|
|
614
728
|
"title": "Templates de Contrato",
|
|
615
|
-
"description": "Gerencie modelos
|
|
729
|
+
"description": "Gerencie modelos reutilizáveis com conteúdo RichText, metadados padrão e apoio de IA.",
|
|
616
730
|
"breadcrumb": "Templates de Contrato",
|
|
617
|
-
"searchPlaceholder": "Buscar template,
|
|
731
|
+
"searchPlaceholder": "Buscar template, código, descrição ou tipo...",
|
|
618
732
|
"emptyDescription": "Nenhum template corresponde aos filtros atuais.",
|
|
619
|
-
"noAccessDescription": "
|
|
733
|
+
"noAccessDescription": "Permissões de diretor são necessárias para gerenciar templates de contrato.",
|
|
620
734
|
"cards": {
|
|
621
735
|
"total": "Total de templates",
|
|
622
736
|
"active": "Templates ativos",
|
|
@@ -625,7 +739,7 @@
|
|
|
625
739
|
},
|
|
626
740
|
"columns": {
|
|
627
741
|
"name": "Template",
|
|
628
|
-
"code": "
|
|
742
|
+
"code": "Código",
|
|
629
743
|
"type": "Tipo",
|
|
630
744
|
"usageCount": "Uso",
|
|
631
745
|
"updatedAt": "Atualizado em"
|
|
@@ -636,47 +750,47 @@
|
|
|
636
750
|
"sheet": {
|
|
637
751
|
"createTitle": "Novo Template de Contrato",
|
|
638
752
|
"editTitle": "Editar Template de Contrato",
|
|
639
|
-
"description": "Mantenha modelos
|
|
753
|
+
"description": "Mantenha modelos reutilizáveis para acelerar novos contratos e rascunhos de projeto."
|
|
640
754
|
},
|
|
641
755
|
"messages": {
|
|
642
756
|
"statusSuccess": "Status do template atualizado com sucesso.",
|
|
643
|
-
"statusError": "
|
|
757
|
+
"statusError": "Não foi possível atualizar o status do template."
|
|
644
758
|
}
|
|
645
759
|
},
|
|
646
760
|
"ContractTemplateFormPage": {
|
|
647
761
|
"newTitle": "Novo Template de Contrato",
|
|
648
762
|
"editTitle": "Editar Template de Contrato",
|
|
649
763
|
"breadcrumb": "Cadastro de Template de Contrato",
|
|
650
|
-
"description": "Defina textos base e metadados
|
|
651
|
-
"noAccessDescription": "
|
|
764
|
+
"description": "Defina textos base e metadados padrão para acelerar novos contratos de projeto.",
|
|
765
|
+
"noAccessDescription": "Permissões de diretor são necessárias para gerenciar templates de contrato.",
|
|
652
766
|
"loading": "Carregando template...",
|
|
653
767
|
"sections": {
|
|
654
768
|
"overview": "Dados do template",
|
|
655
|
-
"overviewDescription": "Metadados
|
|
656
|
-
"editor": "
|
|
769
|
+
"overviewDescription": "Metadados padrão aplicados quando um novo contrato nasce a partir deste template.",
|
|
770
|
+
"editor": "Conteúdo do template",
|
|
657
771
|
"editorDescription": "Edite o texto base em rich text e mantenha placeholders como client_name e project_name quando fizer sentido.",
|
|
658
|
-
"preview": "
|
|
659
|
-
"previewDescription": "
|
|
772
|
+
"preview": "Prévia",
|
|
773
|
+
"previewDescription": "Prévia em tempo real do conteúdo reutilizável."
|
|
660
774
|
},
|
|
661
775
|
"fields": {
|
|
662
|
-
"code": "
|
|
776
|
+
"code": "Código do template",
|
|
663
777
|
"name": "Nome do template",
|
|
664
|
-
"description": "
|
|
778
|
+
"description": "Descrição do template",
|
|
665
779
|
"contractCategory": "Categoria",
|
|
666
780
|
"contractType": "Tipo",
|
|
667
|
-
"signatureStatus": "Status de assinatura
|
|
781
|
+
"signatureStatus": "Status de assinatura padrão",
|
|
668
782
|
"isActive": "Template ativo",
|
|
669
|
-
"isActiveDescription": "Desative para retirar o template das
|
|
783
|
+
"isActiveDescription": "Desative para retirar o template das seleções sem perder o histórico."
|
|
670
784
|
},
|
|
671
785
|
"placeholders": {
|
|
672
786
|
"code": "Ex: MSA-SAAS",
|
|
673
|
-
"name": "Ex:
|
|
787
|
+
"name": "Ex: Prestação de serviços padrão",
|
|
674
788
|
"description": "Explique quando usar este template e quais dados ele cobre"
|
|
675
789
|
},
|
|
676
790
|
"messages": {
|
|
677
|
-
"requiredFields": "O nome do template
|
|
791
|
+
"requiredFields": "O nome do template é obrigatório.",
|
|
678
792
|
"createSuccess": "Template criado com sucesso.",
|
|
679
|
-
"createError": "
|
|
793
|
+
"createError": "ão foi possível criar o template.",
|
|
680
794
|
"updateSuccess": "Template atualizado com sucesso.",
|
|
681
795
|
"updateError": "Nao foi possivel atualizar o template."
|
|
682
796
|
}
|
|
@@ -686,42 +800,42 @@
|
|
|
686
800
|
"editTitle": "Editar Contrato",
|
|
687
801
|
"duplicateTitle": "Duplicar Contrato",
|
|
688
802
|
"breadcrumb": "Cadastro de Contrato",
|
|
689
|
-
"description": "Crie ou atualize contratos manualmente gerenciando partes, assinaturas, financeiros,
|
|
690
|
-
"noAccessDescription": "
|
|
803
|
+
"description": "Crie ou atualize contratos manualmente gerenciando partes, assinaturas, financeiros, revisões, documentos e conteúdo editável.",
|
|
804
|
+
"noAccessDescription": "Permissões de diretor são necessárias para gerenciar contratos.",
|
|
691
805
|
"loading": "Carregando dados do contrato...",
|
|
692
806
|
"tabs": {
|
|
693
|
-
"overview": "
|
|
807
|
+
"overview": "Visão geral",
|
|
694
808
|
"parties": "Partes",
|
|
695
809
|
"signatures": "Assinaturas",
|
|
696
810
|
"financials": "Financeiro",
|
|
697
811
|
"documents": "Documentos",
|
|
698
|
-
"revisions": "
|
|
812
|
+
"revisions": "Revisões",
|
|
699
813
|
"editor": "Editor"
|
|
700
814
|
},
|
|
701
815
|
"sections": {
|
|
702
|
-
"overview": "
|
|
816
|
+
"overview": "Visão geral",
|
|
703
817
|
"overviewDescription": "Campos centrais de registro, ciclo de vida, origem e ownership.",
|
|
704
818
|
"parties": "Partes",
|
|
705
819
|
"partiesDescription": "Pessoas e empresas principais relacionadas ao contrato.",
|
|
706
820
|
"signatures": "Assinaturas",
|
|
707
|
-
"signaturesDescription": "
|
|
821
|
+
"signaturesDescription": "Signatários e andamento das assinaturas.",
|
|
708
822
|
"financials": "Termos financeiros",
|
|
709
823
|
"financialsDescription": "Controle de valores, receitas, pagamentos e multas.",
|
|
710
824
|
"documents": "Documentos",
|
|
711
825
|
"documentsDescription": "Envie ou substitua o documento atual do contrato (PDF, DOC ou DOCX).",
|
|
712
|
-
"revisions": "Aditivos /
|
|
713
|
-
"revisionsDescription": "Acompanhe aditivos, emendas e
|
|
826
|
+
"revisions": "Aditivos / renovações",
|
|
827
|
+
"revisionsDescription": "Acompanhe aditivos, emendas e renovações.",
|
|
714
828
|
"editor": "Editor do contrato",
|
|
715
|
-
"editorDescription": "Edite o
|
|
716
|
-
"preview": "
|
|
717
|
-
"previewDescription": "
|
|
829
|
+
"editorDescription": "Edite o conteúdo do contrato em rich text.",
|
|
830
|
+
"preview": "Prévia",
|
|
831
|
+
"previewDescription": "Prévia em tempo real do conteúdo do contrato."
|
|
718
832
|
},
|
|
719
833
|
"fields": {
|
|
720
|
-
"code": "
|
|
721
|
-
"name": "
|
|
834
|
+
"code": "Código",
|
|
835
|
+
"name": "Título do contrato",
|
|
722
836
|
"clientName": "Nome do cliente",
|
|
723
837
|
"contractTemplate": "Template do contrato",
|
|
724
|
-
"contractTemplateDescription": "Selecione um template
|
|
838
|
+
"contractTemplateDescription": "Selecione um template reutilizável para preencher metadados e conteúdo iniciais deste contrato.",
|
|
725
839
|
"contractCategory": "Categoria",
|
|
726
840
|
"contractType": "Tipo",
|
|
727
841
|
"originType": "Tipo de origem",
|
|
@@ -729,35 +843,35 @@
|
|
|
729
843
|
"signatureStatus": "Status da assinatura",
|
|
730
844
|
"isActive": "Contrato ativo",
|
|
731
845
|
"isActiveDescription": "Use isso para desativar ou reativar o contrato sem remover seu registro.",
|
|
732
|
-
"budgetAmount": "Valor de
|
|
846
|
+
"budgetAmount": "Valor de orçamento",
|
|
733
847
|
"monthlyHourCap": "Limite mensal de horas",
|
|
734
|
-
"effectiveDate": "Data de
|
|
848
|
+
"effectiveDate": "Data de vigência",
|
|
735
849
|
"signedAt": "Assinado em",
|
|
736
850
|
"partyDisplayName": "Nome da parte",
|
|
737
851
|
"partyRole": "Papel da parte",
|
|
738
852
|
"partyType": "Tipo da parte",
|
|
739
|
-
"documentNumber": "
|
|
853
|
+
"documentNumber": "Número do documento",
|
|
740
854
|
"email": "Email",
|
|
741
855
|
"phone": "Telefone",
|
|
742
856
|
"isPrimaryParty": "Parte principal",
|
|
743
|
-
"signerName": "Nome do
|
|
744
|
-
"signerRole": "Papel do
|
|
745
|
-
"signerEmail": "Email do
|
|
857
|
+
"signerName": "Nome do signatário",
|
|
858
|
+
"signerRole": "Papel do signatário",
|
|
859
|
+
"signerEmail": "Email do signatário",
|
|
746
860
|
"signatureItemStatus": "Status da assinatura",
|
|
747
|
-
"financialLabel": "
|
|
861
|
+
"financialLabel": "Rótulo financeiro",
|
|
748
862
|
"termType": "Tipo financeiro",
|
|
749
863
|
"amount": "Valor",
|
|
750
|
-
"recurrence": "
|
|
864
|
+
"recurrence": "Recorrência",
|
|
751
865
|
"dueDay": "Dia de vencimento",
|
|
752
|
-
"notes": "
|
|
753
|
-
"revisionTitle": "
|
|
754
|
-
"revisionType": "Tipo de
|
|
755
|
-
"revisionStatus": "Status da
|
|
866
|
+
"notes": "Observações",
|
|
867
|
+
"revisionTitle": "Título da revisão",
|
|
868
|
+
"revisionType": "Tipo de revisão",
|
|
869
|
+
"revisionStatus": "Status da revisão",
|
|
756
870
|
"summary": "Resumo"
|
|
757
871
|
},
|
|
758
872
|
"options": {
|
|
759
873
|
"contractCategories": {
|
|
760
|
-
"employee": "
|
|
874
|
+
"employee": "Funcionário",
|
|
761
875
|
"contractor": "Contratado",
|
|
762
876
|
"client": "Cliente",
|
|
763
877
|
"supplier": "Fornecedor",
|
|
@@ -770,16 +884,16 @@
|
|
|
770
884
|
"clt": "CLT",
|
|
771
885
|
"pj": "PJ",
|
|
772
886
|
"freelancer_agreement": "Acordo freelancer",
|
|
773
|
-
"service_agreement": "
|
|
887
|
+
"service_agreement": "Prestação de serviços",
|
|
774
888
|
"fixed_term": "Prazo determinado",
|
|
775
|
-
"recurring_service": "
|
|
889
|
+
"recurring_service": "Serviço recorrente",
|
|
776
890
|
"nda": "NDA",
|
|
777
891
|
"amendment": "Emenda",
|
|
778
892
|
"addendum": "Aditivo",
|
|
779
893
|
"other": "Outro"
|
|
780
894
|
},
|
|
781
895
|
"signatureStatuses": {
|
|
782
|
-
"not_started": "
|
|
896
|
+
"not_started": "Não iniciado",
|
|
783
897
|
"pending": "Pendente",
|
|
784
898
|
"partially_signed": "Parcialmente assinado",
|
|
785
899
|
"signed": "Assinado",
|
|
@@ -789,26 +903,26 @@
|
|
|
789
903
|
"billingModels": {
|
|
790
904
|
"time_and_material": "Tempo e material",
|
|
791
905
|
"monthly_retainer": "Mensalidade fixa",
|
|
792
|
-
"fixed_price": "
|
|
906
|
+
"fixed_price": "Preço fechado"
|
|
793
907
|
},
|
|
794
908
|
"statuses": {
|
|
795
909
|
"draft": "Rascunho",
|
|
796
|
-
"under_review": "Em
|
|
910
|
+
"under_review": "Em revisão",
|
|
797
911
|
"active": "Ativo",
|
|
798
|
-
"renewal": "
|
|
912
|
+
"renewal": "Renovação",
|
|
799
913
|
"expired": "Expirado",
|
|
800
914
|
"closed": "Encerrado",
|
|
801
915
|
"archived": "Arquivado"
|
|
802
916
|
},
|
|
803
917
|
"partyRoles": {
|
|
804
|
-
"employee": "
|
|
918
|
+
"employee": "Funcionário",
|
|
805
919
|
"employer": "Empregador",
|
|
806
920
|
"client": "Cliente",
|
|
807
921
|
"supplier": "Fornecedor",
|
|
808
922
|
"vendor": "Vendor",
|
|
809
923
|
"partner": "Parceiro",
|
|
810
924
|
"witness": "Testemunha",
|
|
811
|
-
"internal_owner": "
|
|
925
|
+
"internal_owner": "Responsável interno",
|
|
812
926
|
"other": "Outro"
|
|
813
927
|
},
|
|
814
928
|
"financialTermTypes": {
|
|
@@ -840,54 +954,54 @@
|
|
|
840
954
|
}
|
|
841
955
|
},
|
|
842
956
|
"messages": {
|
|
843
|
-
"requiredFields": "Codigo,
|
|
957
|
+
"requiredFields": "Codigo, título do contrato e nome do cliente são obrigatórios.",
|
|
844
958
|
"createSuccess": "Contrato criado com sucesso.",
|
|
845
|
-
"createError": "
|
|
959
|
+
"createError": "Não foi possível criar o contrato.",
|
|
846
960
|
"updateSuccess": "Contrato atualizado com sucesso.",
|
|
847
|
-
"updateError": "
|
|
961
|
+
"updateError": "Não foi possível atualizar o contrato.",
|
|
848
962
|
"pdfHint": "Envie um PDF, DOC ou DOCX para anexar como documento atual do contrato.",
|
|
849
963
|
"pdfReady": "Documento pronto para salvar: {name}"
|
|
850
964
|
}
|
|
851
965
|
},
|
|
852
966
|
"ContractContentEditor": {
|
|
853
|
-
"assistantTitle": "Assistente de
|
|
854
|
-
"assistantDescription": "Descreva o que precisa e o texto
|
|
855
|
-
"promptPlaceholder": "Ex: Gere um contrato mensal com escopo, pagamento, confidencialidade, SLA e
|
|
856
|
-
"emptyPreview": "Ainda
|
|
857
|
-
"suggestedPrompt": "Crie um rascunho profissional para {subject}, com linguagem clara e
|
|
967
|
+
"assistantTitle": "Assistente de conteúdo por IA",
|
|
968
|
+
"assistantDescription": "Descreva o que precisa e o texto será gerado automaticamente usando {provider}.",
|
|
969
|
+
"promptPlaceholder": "Ex: Gere um contrato mensal com escopo, pagamento, confidencialidade, SLA e cláusula de rescisão.",
|
|
970
|
+
"emptyPreview": "Ainda não existe conteúdo para este contrato.",
|
|
971
|
+
"suggestedPrompt": "Crie um rascunho profissional para {subject}, com linguagem clara e seções objetivas.",
|
|
858
972
|
"actions": {
|
|
859
973
|
"useSuggestion": "Sugerir prompt",
|
|
860
974
|
"generate": "Gerar texto"
|
|
861
975
|
},
|
|
862
976
|
"messages": {
|
|
863
|
-
"missingConfiguration": "Configure um provedor de IA nas settings para usar esta
|
|
977
|
+
"missingConfiguration": "Configure um provedor de IA nas settings para usar esta ação.",
|
|
864
978
|
"missingPrompt": "Digite um prompt antes de gerar o texto.",
|
|
865
|
-
"generateSuccess": "
|
|
866
|
-
"generateError": "
|
|
979
|
+
"generateSuccess": "Conteúdo atualizado com {provider}.",
|
|
980
|
+
"generateError": "Não foi possível gerar o conteúdo com IA."
|
|
867
981
|
}
|
|
868
982
|
},
|
|
869
983
|
"ContractDetailsPage": {
|
|
870
984
|
"title": "Detalhes do Contrato",
|
|
871
985
|
"breadcrumb": "Detalhes do Contrato",
|
|
872
|
-
"description": "Consulte o registro do contrato, partes relacionadas, assinaturas, financeiro, documentos,
|
|
873
|
-
"notFound": "O contrato solicitado
|
|
986
|
+
"description": "Consulte o registro do contrato, partes relacionadas, assinaturas, financeiro, documentos, revisões e histórico.",
|
|
987
|
+
"notFound": "O contrato solicitado não foi encontrado ou não está visível no seu escopo de acesso.",
|
|
874
988
|
"tabs": {
|
|
875
|
-
"overview": "
|
|
989
|
+
"overview": "Visão geral",
|
|
876
990
|
"parties": "Partes",
|
|
877
991
|
"signatures": "Assinaturas",
|
|
878
992
|
"financials": "Financeiro",
|
|
879
993
|
"documents": "Documentos",
|
|
880
|
-
"revisions": "
|
|
881
|
-
"history": "
|
|
994
|
+
"revisions": "Revisões",
|
|
995
|
+
"history": "Histórico"
|
|
882
996
|
},
|
|
883
997
|
"sections": {
|
|
884
|
-
"overview": "
|
|
998
|
+
"overview": "Visão geral",
|
|
885
999
|
"parties": "Partes",
|
|
886
1000
|
"signatures": "Assinaturas",
|
|
887
1001
|
"financials": "Financeiro",
|
|
888
1002
|
"documents": "Documentos",
|
|
889
|
-
"revisions": "Aditivos /
|
|
890
|
-
"history": "
|
|
1003
|
+
"revisions": "Aditivos / renovações",
|
|
1004
|
+
"history": "Histórico / Auditoria"
|
|
891
1005
|
},
|
|
892
1006
|
"actions": {
|
|
893
1007
|
"downloadPdf": "Baixar PDF",
|
|
@@ -910,63 +1024,127 @@
|
|
|
910
1024
|
"payment": "Pagamentos",
|
|
911
1025
|
"revenue": "Receita",
|
|
912
1026
|
"fine": "Multas",
|
|
913
|
-
"revision": "
|
|
1027
|
+
"revision": "Revisão"
|
|
914
1028
|
},
|
|
915
1029
|
"states": {
|
|
916
|
-
"noParties": "Ainda
|
|
917
|
-
"noSignatures": "Ainda
|
|
918
|
-
"noDocuments": "Ainda
|
|
919
|
-
"noRevisions": "Ainda
|
|
920
|
-
"noHistory": "Ainda
|
|
1030
|
+
"noParties": "Ainda não existem partes relacionadas a este contrato.",
|
|
1031
|
+
"noSignatures": "Ainda não existem assinaturas registradas.",
|
|
1032
|
+
"noDocuments": "Ainda não existem documentos para este contrato.",
|
|
1033
|
+
"noRevisions": "Ainda não existem aditivos, renovações ou revisões vinculados.",
|
|
1034
|
+
"noHistory": "Ainda não existe histórico de auditoria."
|
|
921
1035
|
}
|
|
922
1036
|
},
|
|
923
1037
|
"TimesheetsPage": {
|
|
924
1038
|
"title": "Timesheets",
|
|
925
|
-
"description": "
|
|
1039
|
+
"description": "Lance horas de projeto em segundos, mantenha os rascunhos semanais organizados e envie quando estiver pronto.",
|
|
926
1040
|
"breadcrumb": "Timesheets",
|
|
927
|
-
"searchPlaceholder": "Buscar colaborador, projeto, aprovador ou
|
|
928
|
-
"emptyDescription": "
|
|
1041
|
+
"searchPlaceholder": "Buscar colaborador, projeto, tarefa, aprovador ou observações...",
|
|
1042
|
+
"emptyDescription": "Nenhuma timesheet corresponde aos filtros atuais.",
|
|
929
1043
|
"sheet": {
|
|
930
|
-
"createTitle": "
|
|
931
|
-
"editTitle": "Editar
|
|
932
|
-
"description": "
|
|
1044
|
+
"createTitle": "Lançamento rápido",
|
|
1045
|
+
"editTitle": "Editar lançamento",
|
|
1046
|
+
"description": "Escolha projeto, tarefa, data e duração para registrar o trabalho com o mínimo de atrito.",
|
|
1047
|
+
"fields": {
|
|
1048
|
+
"project": "Projeto",
|
|
1049
|
+
"task": "Tarefa",
|
|
1050
|
+
"duration": "Duração",
|
|
1051
|
+
"unit": "Unidade",
|
|
1052
|
+
"hours": "Horas",
|
|
1053
|
+
"minutes": "Minutos"
|
|
1054
|
+
},
|
|
1055
|
+
"placeholders": {
|
|
1056
|
+
"project": "Busque por projeto ou cliente...",
|
|
1057
|
+
"projectSearch": "Digite para buscar projetos...",
|
|
1058
|
+
"task": "Busque ou selecione uma tarefa",
|
|
1059
|
+
"taskSearch": "Digite para buscar tarefas...",
|
|
1060
|
+
"duration": "Exemplo: 1.5",
|
|
1061
|
+
"description": "Contexto opcional para este lançamento"
|
|
1062
|
+
},
|
|
1063
|
+
"helper": {
|
|
1064
|
+
"task": "Apenas tarefas da alocação de projeto selecionada aparecem aqui.",
|
|
1065
|
+
"selectProjectFirst": "Selecione um projeto primeiro para carregar ou criar tarefas.",
|
|
1066
|
+
"keepContext": "Manter projeto, tarefa e data após salvar",
|
|
1067
|
+
"keepContextDescription": "Ideal para registrar vários lançamentos em sequência."
|
|
1068
|
+
},
|
|
1069
|
+
"validation": {
|
|
1070
|
+
"descriptionMaxLength": "A descrição pode ter no máximo 500 caracteres."
|
|
1071
|
+
},
|
|
1072
|
+
"task": {
|
|
1073
|
+
"title": "Tarefa rápida",
|
|
1074
|
+
"description": "Crie uma tarefa para a alocação atual sem sair do fluxo de lançamento.",
|
|
1075
|
+
"projectLabel": "Projeto selecionado",
|
|
1076
|
+
"name": "Nome da tarefa",
|
|
1077
|
+
"descriptionLabel": "Descrição da tarefa",
|
|
1078
|
+
"createAction": "Nova tarefa",
|
|
1079
|
+
"submit": "Criar tarefa",
|
|
1080
|
+
"placeholders": {
|
|
1081
|
+
"name": "Exemplo: Revisão com cliente, correção de bug, deploy",
|
|
1082
|
+
"description": "Detalhes opcionais sobre esta tarefa"
|
|
1083
|
+
},
|
|
1084
|
+
"validation": {
|
|
1085
|
+
"nameMinLength": "Informe ao menos 2 caracteres para o nome da tarefa.",
|
|
1086
|
+
"descriptionMaxLength": "A descrição da tarefa pode ter no máximo 500 caracteres."
|
|
1087
|
+
}
|
|
1088
|
+
}
|
|
933
1089
|
},
|
|
934
1090
|
"entries": {
|
|
935
|
-
"title": "
|
|
936
|
-
"description": "
|
|
937
|
-
"projectHint": "Projetos com
|
|
938
|
-
"activityPlaceholder": "Exemplo: Daily,
|
|
1091
|
+
"title": "Detalhes do lançamento",
|
|
1092
|
+
"description": "Vincule cada lançamento a uma alocação de projeto ativa e deixe a descrição como opcional.",
|
|
1093
|
+
"projectHint": "Projetos com alocação ativa aparecem aqui automaticamente.",
|
|
1094
|
+
"activityPlaceholder": "Exemplo: Daily, implementação, QA, alinhamento com cliente"
|
|
1095
|
+
},
|
|
1096
|
+
"recentEntries": {
|
|
1097
|
+
"title": "Lançamentos recentes",
|
|
1098
|
+
"description": "Seus registros mais recentes aparecem aqui logo após salvar.",
|
|
1099
|
+
"empty": "Seus lançamentos recentes aparecerão aqui.",
|
|
1100
|
+
"loading": "Carregando lançamentos recentes..."
|
|
939
1101
|
},
|
|
940
1102
|
"cards": {
|
|
941
|
-
"visible": "Timesheets
|
|
942
|
-
"
|
|
943
|
-
"
|
|
1103
|
+
"visible": "Timesheets visíveis",
|
|
1104
|
+
"visibleDescription": "Registros semanais visíveis para o seu escopo de acesso.",
|
|
1105
|
+
"pending": "Aguardando revisão",
|
|
1106
|
+
"pendingDescription": "Enviados e aguardando decisão do supervisor.",
|
|
1107
|
+
"hours": "Horas lançadas",
|
|
1108
|
+
"hoursDescription": "Total de horas trabalhadas em todos os timesheets visíveis."
|
|
944
1109
|
},
|
|
945
1110
|
"messages": {
|
|
946
|
-
"requiredFields": "
|
|
947
|
-
"entryValidation": "
|
|
948
|
-
"
|
|
949
|
-
"
|
|
1111
|
+
"requiredFields": "Projeto, tarefa, data e duração são obrigatórios.",
|
|
1112
|
+
"entryValidation": "Informe uma duração válida maior que zero.",
|
|
1113
|
+
"selectProjectRequired": "Selecione primeiro uma alocação de projeto.",
|
|
1114
|
+
"selectTaskRequired": "Selecione ou crie uma tarefa primeiro.",
|
|
1115
|
+
"selectProjectFirst": "Selecione um projeto antes de criar uma tarefa.",
|
|
1116
|
+
"saveSuccess": "Lançamento salvo com sucesso.",
|
|
1117
|
+
"saveError": "ão foi possível salvar o lançamento.",
|
|
1118
|
+
"deleteSuccess": "Lançamento excluído com sucesso.",
|
|
1119
|
+
"deleteError": "ão foi possível excluir o lançamento.",
|
|
1120
|
+
"confirmDeleteTitle": "Excluir lançamento?",
|
|
1121
|
+
"confirmDeleteDescription": "Isso removerá o lançamento de \"{name}\" do rascunho semanal atual.",
|
|
950
1122
|
"submitSuccess": "Timesheet enviada com sucesso.",
|
|
951
|
-
"submitError": "
|
|
1123
|
+
"submitError": "Não foi possível enviar a timesheet.",
|
|
1124
|
+
"taskCreateSuccess": "Tarefa criada com sucesso.",
|
|
1125
|
+
"taskCreateError": "Não foi possível criar a tarefa."
|
|
952
1126
|
}
|
|
953
1127
|
},
|
|
954
1128
|
"ApprovalsPage": {
|
|
955
|
-
"title": "
|
|
956
|
-
"description": "Revise
|
|
957
|
-
"breadcrumb": "
|
|
958
|
-
"searchPlaceholder": "Buscar solicitante, alvo, aprovador ou
|
|
959
|
-
"noAccessDescription": "
|
|
960
|
-
"emptyDescription": "Nenhuma
|
|
1129
|
+
"title": "Aprovações",
|
|
1130
|
+
"description": "Revise solicitações enviadas e registre decisões do supervisor.",
|
|
1131
|
+
"breadcrumb": "Aprovações",
|
|
1132
|
+
"searchPlaceholder": "Buscar solicitante, alvo, aprovador ou observação...",
|
|
1133
|
+
"noAccessDescription": "Permissões de supervisor ou diretor são necessárias para revisar aprovações.",
|
|
1134
|
+
"emptyDescription": "Nenhuma aprovação corresponde aos filtros atuais.",
|
|
961
1135
|
"cards": {
|
|
962
1136
|
"pending": "Pendentes",
|
|
1137
|
+
"pendingDescription": "Solicitações enviadas aguardando decisão do supervisor.",
|
|
963
1138
|
"approved": "Aprovadas",
|
|
964
|
-
"
|
|
1139
|
+
"approvedDescription": "Solicitações que receberam uma decisão positiva.",
|
|
1140
|
+
"rejected": "Rejeitadas",
|
|
1141
|
+
"rejectedDescription": "Solicitações que não foram aprovadas pelo supervisor."
|
|
965
1142
|
},
|
|
966
1143
|
"dialog": {
|
|
967
|
-
"approveTitle": "Aprovar
|
|
968
|
-
"rejectTitle": "Rejeitar
|
|
969
|
-
"description": "Adicione uma
|
|
1144
|
+
"approveTitle": "Aprovar solicitação",
|
|
1145
|
+
"rejectTitle": "Rejeitar solicitação",
|
|
1146
|
+
"description": "Adicione uma observação opcional para a solicitação de {requester}: {target}.",
|
|
1147
|
+
"notePlaceholder": "Ex.: Aprovado para o período solicitado. Verifique a disponibilidade da equipe no calendário."
|
|
970
1148
|
},
|
|
971
1149
|
"options": {
|
|
972
1150
|
"statuses": {
|
|
@@ -977,133 +1155,168 @@
|
|
|
977
1155
|
},
|
|
978
1156
|
"targetTypes": {
|
|
979
1157
|
"timesheet": "Timesheet",
|
|
980
|
-
"time_off_request": "
|
|
981
|
-
"schedule_adjustment_request": "Ajuste de
|
|
1158
|
+
"time_off_request": "Solicitação de ausência",
|
|
1159
|
+
"schedule_adjustment_request": "Ajuste de horário"
|
|
982
1160
|
},
|
|
983
1161
|
"timeOffTypes": {
|
|
984
|
-
"vacation": "
|
|
1162
|
+
"vacation": "Férias",
|
|
985
1163
|
"personal_time": "Folga pessoal",
|
|
986
|
-
"sick_leave": "
|
|
987
|
-
"unpaid_leave": "
|
|
1164
|
+
"sick_leave": "Licença médica",
|
|
1165
|
+
"unpaid_leave": "Licença sem remuneração",
|
|
988
1166
|
"other": "Outro"
|
|
989
1167
|
},
|
|
990
1168
|
"scheduleScopes": {
|
|
991
|
-
"temporary": "
|
|
1169
|
+
"temporary": "Temporário",
|
|
992
1170
|
"permanent": "Permanente"
|
|
993
1171
|
}
|
|
994
1172
|
},
|
|
995
1173
|
"messages": {
|
|
996
|
-
"approveSuccess": "
|
|
997
|
-
"approveError": "
|
|
998
|
-
"rejectSuccess": "
|
|
999
|
-
"rejectError": "
|
|
1174
|
+
"approveSuccess": "Aprovação concluída com sucesso.",
|
|
1175
|
+
"approveError": "Não foi possível aprovar a solicitação.",
|
|
1176
|
+
"rejectSuccess": "Solicitação rejeitada com sucesso.",
|
|
1177
|
+
"rejectError": "Não foi possível rejeitar a solicitação."
|
|
1000
1178
|
}
|
|
1001
1179
|
},
|
|
1002
1180
|
"TimeOffPage": {
|
|
1003
|
-
"title": "
|
|
1004
|
-
"description": "
|
|
1005
|
-
"breadcrumb": "
|
|
1006
|
-
"searchPlaceholder": "Buscar colaborador, aprovador, motivo ou tipo de
|
|
1007
|
-
"emptyDescription": "Nenhuma
|
|
1181
|
+
"title": "Ausências",
|
|
1182
|
+
"description": "Solicite férias ou outras ausências e acompanhe o que está aguardando análise, aprovado ou não aprovado.",
|
|
1183
|
+
"breadcrumb": "Ausências",
|
|
1184
|
+
"searchPlaceholder": "Buscar colaborador, aprovador, motivo ou tipo de solicitação...",
|
|
1185
|
+
"emptyDescription": "Nenhuma solicitação de ausência corresponde aos filtros atuais.",
|
|
1008
1186
|
"sheet": {
|
|
1009
|
-
"title": "Criar
|
|
1010
|
-
"description": "
|
|
1187
|
+
"title": "Criar solicitação de ausência",
|
|
1188
|
+
"description": "As férias continuam neste mesmo fluxo. Escolha as datas, adicione contexto se necessário e o supervisor fará a análise.",
|
|
1189
|
+
"helperTitle": "Use o mesmo fluxo para férias",
|
|
1190
|
+
"helperDescription": "Férias, licença médica, folga pessoal e outras ausências continuam reunidas aqui para manter o histórico simples de acompanhar.",
|
|
1191
|
+
"reasonPlaceholder": "Adicione um contexto curto que ajude o supervisor a revisar esta solicitação."
|
|
1011
1192
|
},
|
|
1012
1193
|
"cards": {
|
|
1013
|
-
"submitted": "
|
|
1014
|
-
"
|
|
1015
|
-
"
|
|
1194
|
+
"submitted": "Aguardando análise",
|
|
1195
|
+
"submittedDescription": "Solicitações enviadas e pendentes de decisão do supervisor.",
|
|
1196
|
+
"approved": "Solicitações aprovadas",
|
|
1197
|
+
"approvedDescription": "Solicitações aprovadas e contabilizadas na capacidade.",
|
|
1198
|
+
"days": "Dias solicitados",
|
|
1199
|
+
"daysDescription": "Total de dias corridos em todas as solicitações enviadas."
|
|
1016
1200
|
},
|
|
1017
1201
|
"options": {
|
|
1018
1202
|
"requestTypes": {
|
|
1019
|
-
"vacation": "
|
|
1203
|
+
"vacation": "Férias",
|
|
1020
1204
|
"personal_time": "Folga pessoal",
|
|
1021
|
-
"sick_leave": "
|
|
1022
|
-
"unpaid_leave": "
|
|
1205
|
+
"sick_leave": "Licença médica",
|
|
1206
|
+
"unpaid_leave": "Licença sem remuneração",
|
|
1023
1207
|
"other": "Outro"
|
|
1024
1208
|
},
|
|
1025
1209
|
"statuses": {
|
|
1026
1210
|
"draft": "Rascunho",
|
|
1027
|
-
"submitted": "
|
|
1211
|
+
"submitted": "Aguardando análise",
|
|
1028
1212
|
"approved": "Aprovado",
|
|
1029
|
-
"rejected": "
|
|
1213
|
+
"rejected": "Não aprovado",
|
|
1030
1214
|
"cancelled": "Cancelado"
|
|
1031
1215
|
}
|
|
1032
1216
|
},
|
|
1217
|
+
"statusHelp": {
|
|
1218
|
+
"submitted": "Aguardando análise do supervisor.",
|
|
1219
|
+
"approved": "Aprovado e mantido no histórico.",
|
|
1220
|
+
"rejected": "Confira as observações do gestor para os próximos passos."
|
|
1221
|
+
},
|
|
1033
1222
|
"messages": {
|
|
1034
|
-
"requiredFields": "Datas inicial e final
|
|
1035
|
-
"saveSuccess": "
|
|
1036
|
-
"saveError": "
|
|
1223
|
+
"requiredFields": "Datas inicial e final são obrigatórias.",
|
|
1224
|
+
"saveSuccess": "Solicitação de ausência enviada com sucesso.",
|
|
1225
|
+
"saveError": "Não foi possível enviar a solicitação de ausência."
|
|
1037
1226
|
}
|
|
1038
1227
|
},
|
|
1039
1228
|
"ScheduleAdjustmentsPage": {
|
|
1040
|
-
"title": "Ajustes de
|
|
1041
|
-
"description": "Solicite
|
|
1042
|
-
"breadcrumb": "Ajustes de
|
|
1229
|
+
"title": "Ajustes de Horário",
|
|
1230
|
+
"description": "Solicite mudanças temporárias ou permanentes no horário semanal e compare com clareza o horário atual e o solicitado.",
|
|
1231
|
+
"breadcrumb": "Ajustes de Horário",
|
|
1043
1232
|
"searchPlaceholder": "Buscar colaborador, aprovador, escopo ou motivo...",
|
|
1044
|
-
"emptyDescription": "Nenhuma
|
|
1233
|
+
"emptyDescription": "Nenhuma solicitação de ajuste de horário corresponde aos filtros atuais.",
|
|
1045
1234
|
"sheet": {
|
|
1046
|
-
"title": "Criar ajuste de
|
|
1047
|
-
"description": "
|
|
1235
|
+
"title": "Criar ajuste de horário",
|
|
1236
|
+
"description": "Informe os dias e horários que deseja ajustar. O supervisor comparará esta solicitação com o seu horário semanal atual.",
|
|
1237
|
+
"reasonPlaceholder": "Explique brevemente por que esta mudança de horário é necessária."
|
|
1048
1238
|
},
|
|
1049
1239
|
"cards": {
|
|
1050
|
-
"submitted": "
|
|
1051
|
-
"
|
|
1052
|
-
"
|
|
1240
|
+
"submitted": "Aguardando análise",
|
|
1241
|
+
"submittedDescription": "Solicitações de ajuste enviadas e aguardando aprovação.",
|
|
1242
|
+
"approved": "Solicitações aprovadas",
|
|
1243
|
+
"approvedDescription": "Ajustes aceitos e aplicados ao horário do colaborador.",
|
|
1244
|
+
"permanent": "Solicitações permanentes",
|
|
1245
|
+
"permanentDescription": "Solicitações de mudança permanente de horário (não apenas temporárias)."
|
|
1053
1246
|
},
|
|
1054
1247
|
"options": {
|
|
1055
1248
|
"requestScopes": {
|
|
1056
|
-
"temporary": "
|
|
1057
|
-
"permanent": "
|
|
1249
|
+
"temporary": "Ajuste temporário",
|
|
1250
|
+
"permanent": "Atualização permanente"
|
|
1058
1251
|
},
|
|
1059
1252
|
"statuses": {
|
|
1060
1253
|
"draft": "Rascunho",
|
|
1061
|
-
"submitted": "
|
|
1254
|
+
"submitted": "Aguardando análise",
|
|
1062
1255
|
"approved": "Aprovado",
|
|
1063
|
-
"rejected": "
|
|
1256
|
+
"rejected": "Não aprovado",
|
|
1064
1257
|
"cancelled": "Cancelado"
|
|
1065
1258
|
}
|
|
1066
1259
|
},
|
|
1067
1260
|
"table": {
|
|
1068
|
-
"currentSchedule": "
|
|
1261
|
+
"currentSchedule": "Horário atual",
|
|
1262
|
+
"requestedSchedule": "Horário solicitado"
|
|
1263
|
+
},
|
|
1264
|
+
"scheduleEditor": {
|
|
1265
|
+
"summaryLabel": "Resumo semanal solicitado",
|
|
1266
|
+
"daysPerWeek": "{count} dia(s) úteis selecionado(s)",
|
|
1267
|
+
"helper": "Desative o dia se não houver expediente. Os campos de início, fim e intervalo só valem para dias úteis ativos.",
|
|
1268
|
+
"startTime": "Início",
|
|
1269
|
+
"endTime": "Fim",
|
|
1270
|
+
"breakMinutes": "Intervalo (min)"
|
|
1271
|
+
},
|
|
1272
|
+
"statusHelp": {
|
|
1273
|
+
"submitted": "Aguardando análise do supervisor.",
|
|
1274
|
+
"approved": "Aprovado e mantido no histórico.",
|
|
1275
|
+
"rejected": "Confira as observações do gestor para os próximos passos."
|
|
1069
1276
|
},
|
|
1070
1277
|
"messages": {
|
|
1071
|
-
"requiredFields": "Uma data inicial de
|
|
1072
|
-
"saveSuccess": "Ajuste de
|
|
1073
|
-
"saveError": "
|
|
1278
|
+
"requiredFields": "Uma data inicial de vigência é obrigatória.",
|
|
1279
|
+
"saveSuccess": "Ajuste de horário enviado com sucesso.",
|
|
1280
|
+
"saveError": "Não foi possível enviar o ajuste de horário."
|
|
1074
1281
|
}
|
|
1075
1282
|
},
|
|
1076
1283
|
"TeamPage": {
|
|
1077
1284
|
"title": "Equipe",
|
|
1078
|
-
"description": "
|
|
1285
|
+
"description": "Visão do supervisor sobre liderados diretos, alocações e aprovações pendentes.",
|
|
1079
1286
|
"breadcrumb": "Equipe",
|
|
1080
|
-
"noAccessDescription": "
|
|
1081
|
-
"emptyDescription": "Ainda
|
|
1287
|
+
"noAccessDescription": "Permissões de supervisor ou diretor são necessárias para visualizar o painel da equipe.",
|
|
1288
|
+
"emptyDescription": "Ainda não existem liderados diretos vinculados a este supervisor.",
|
|
1082
1289
|
"cards": {
|
|
1083
1290
|
"members": "Membros da equipe",
|
|
1084
|
-
"
|
|
1085
|
-
"
|
|
1086
|
-
"
|
|
1087
|
-
"
|
|
1088
|
-
"
|
|
1291
|
+
"membersDescription": "Liderados diretos vinculados a este supervisor.",
|
|
1292
|
+
"projects": "Projetos visíveis",
|
|
1293
|
+
"projectsDescription": "Projetos ativos vinculados a pelo menos um membro da equipe.",
|
|
1294
|
+
"pendingApprovals": "Aprovações pendentes",
|
|
1295
|
+
"pendingApprovalsDescription": "Solicitações aguardando ação do supervisor.",
|
|
1296
|
+
"timeOff": "Fila de ausências",
|
|
1297
|
+
"timeOffDescription": "Solicitações de ausência aguardando revisão.",
|
|
1298
|
+
"scheduleAdjustments": "Fila de horários",
|
|
1299
|
+
"scheduleAdjustmentsDescription": "Solicitações de ajuste de horário aguardando revisão.",
|
|
1300
|
+
"timesheets": "Fila de timesheets",
|
|
1301
|
+
"timesheetsDescription": "Timesheets enviados e aguardando decisão."
|
|
1089
1302
|
},
|
|
1090
1303
|
"sections": {
|
|
1091
|
-
"requests": "
|
|
1092
|
-
"pendingApprovals": "Fila de
|
|
1304
|
+
"requests": "Solicitações em aberto",
|
|
1305
|
+
"pendingApprovals": "Fila de aprovações pendentes",
|
|
1093
1306
|
"projects": "Cobertura de projetos da equipe",
|
|
1094
|
-
"timeOff": "
|
|
1095
|
-
"scheduleAdjustments": "
|
|
1307
|
+
"timeOff": "Solicitações pendentes de ausência",
|
|
1308
|
+
"scheduleAdjustments": "Solicitações pendentes de mudança de horário"
|
|
1096
1309
|
},
|
|
1097
1310
|
"labels": {
|
|
1098
|
-
"timeOffRequestsCount": "{count}
|
|
1099
|
-
"scheduleRequestsCount": "{count}
|
|
1311
|
+
"timeOffRequestsCount": "{count} solicitação(ões) de ausência",
|
|
1312
|
+
"scheduleRequestsCount": "{count} solicitação(ões) de mudança de horário",
|
|
1100
1313
|
"projectSummary": "{teamSize} colaborador(es) vinculados • {pendingTimesheets} timesheet(s) pendente(s)"
|
|
1101
1314
|
},
|
|
1102
1315
|
"states": {
|
|
1103
|
-
"noPendingApprovals": "
|
|
1104
|
-
"noProjects": "Ainda
|
|
1105
|
-
"noTimeOff": "Nenhuma
|
|
1106
|
-
"noScheduleAdjustments": "Nenhuma
|
|
1316
|
+
"noPendingApprovals": "Não há aprovações pendentes atribuídas a este supervisor no momento.",
|
|
1317
|
+
"noProjects": "Ainda não há projetos ativos vinculados à equipe visíveis.",
|
|
1318
|
+
"noTimeOff": "Nenhuma solicitação pendente de ausência foi encontrada.",
|
|
1319
|
+
"noScheduleAdjustments": "Nenhuma solicitação pendente de ajuste de horário foi encontrada."
|
|
1107
1320
|
}
|
|
1108
1321
|
}
|
|
1109
1322
|
}
|