@burdenoff/microfe-proserviceworld 2026.1028.1 → 2026.1031.2
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/generated/global-types.d.ts +9699 -583
- package/dist/generated/global-types.d.ts.map +1 -1
- package/dist/generated/wspace-types.d.ts +18076 -2999
- package/dist/generated/wspace-types.d.ts.map +1 -1
- package/dist/proserviceworld/__tests__/schemaStub.d.ts +20 -0
- package/dist/proserviceworld/__tests__/schemaStub.d.ts.map +1 -0
- package/dist/proserviceworld/components/CredentialDirectory.js +44 -43
- package/dist/proserviceworld/components/CredentialDirectory.js.map +1 -1
- package/dist/proserviceworld/components/CredentialReminderPanel.js +5 -4
- package/dist/proserviceworld/components/CredentialReminderPanel.js.map +1 -1
- package/dist/proserviceworld/components/ui.d.ts +7 -3
- package/dist/proserviceworld/components/ui.d.ts.map +1 -1
- package/dist/proserviceworld/components/ui.js +135 -121
- package/dist/proserviceworld/components/ui.js.map +1 -1
- package/dist/proserviceworld/hooks/useProServiceWorldApi.d.ts.map +1 -1
- package/dist/proserviceworld/hooks/useProServiceWorldApi.js.map +1 -1
- package/dist/proserviceworld/hooks/useTr.d.ts +49 -8
- package/dist/proserviceworld/hooks/useTr.d.ts.map +1 -1
- package/dist/proserviceworld/hooks/useTr.js +45 -21
- package/dist/proserviceworld/hooks/useTr.js.map +1 -1
- package/dist/proserviceworld/i18n/catalog/analytics.d.ts +5 -0
- package/dist/proserviceworld/i18n/catalog/analytics.d.ts.map +1 -0
- package/dist/proserviceworld/i18n/catalog/analytics.js +271 -0
- package/dist/proserviceworld/i18n/catalog/analytics.js.map +1 -0
- package/dist/proserviceworld/i18n/catalog/common.d.ts +9 -0
- package/dist/proserviceworld/i18n/catalog/common.d.ts.map +1 -0
- package/dist/proserviceworld/i18n/catalog/common.js +163 -0
- package/dist/proserviceworld/i18n/catalog/common.js.map +1 -0
- package/dist/proserviceworld/i18n/catalog/compliance.d.ts +5 -0
- package/dist/proserviceworld/i18n/catalog/compliance.d.ts.map +1 -0
- package/dist/proserviceworld/i18n/catalog/compliance.js +157 -0
- package/dist/proserviceworld/i18n/catalog/compliance.js.map +1 -0
- package/dist/proserviceworld/i18n/catalog/conflicts.d.ts +5 -0
- package/dist/proserviceworld/i18n/catalog/conflicts.d.ts.map +1 -0
- package/dist/proserviceworld/i18n/catalog/conflicts.js +145 -0
- package/dist/proserviceworld/i18n/catalog/conflicts.js.map +1 -0
- package/dist/proserviceworld/i18n/catalog/documents.d.ts +5 -0
- package/dist/proserviceworld/i18n/catalog/documents.d.ts.map +1 -0
- package/dist/proserviceworld/i18n/catalog/documents.js +157 -0
- package/dist/proserviceworld/i18n/catalog/documents.js.map +1 -0
- package/dist/proserviceworld/i18n/catalog/enums.d.ts +10 -0
- package/dist/proserviceworld/i18n/catalog/enums.d.ts.map +1 -0
- package/dist/proserviceworld/i18n/catalog/enums.js +481 -0
- package/dist/proserviceworld/i18n/catalog/enums.js.map +1 -0
- package/dist/proserviceworld/i18n/catalog/index.d.ts +9 -0
- package/dist/proserviceworld/i18n/catalog/index.d.ts.map +1 -0
- package/dist/proserviceworld/i18n/catalog/index.js +25 -0
- package/dist/proserviceworld/i18n/catalog/index.js.map +1 -0
- package/dist/proserviceworld/i18n/catalog/invoices.d.ts +5 -0
- package/dist/proserviceworld/i18n/catalog/invoices.d.ts.map +1 -0
- package/dist/proserviceworld/i18n/catalog/invoices.js +247 -0
- package/dist/proserviceworld/i18n/catalog/invoices.js.map +1 -0
- package/dist/proserviceworld/i18n/catalog/practiceAreas.d.ts +5 -0
- package/dist/proserviceworld/i18n/catalog/practiceAreas.d.ts.map +1 -0
- package/dist/proserviceworld/i18n/catalog/practiceAreas.js +97 -0
- package/dist/proserviceworld/i18n/catalog/practiceAreas.js.map +1 -0
- package/dist/proserviceworld/i18n/catalog/time.d.ts +5 -0
- package/dist/proserviceworld/i18n/catalog/time.d.ts.map +1 -0
- package/dist/proserviceworld/i18n/catalog/time.js +301 -0
- package/dist/proserviceworld/i18n/catalog/time.js.map +1 -0
- package/dist/proserviceworld/i18n/index.d.ts +10 -9
- package/dist/proserviceworld/i18n/index.d.ts.map +1 -1
- package/dist/proserviceworld/i18n/index.js +16 -12
- package/dist/proserviceworld/i18n/index.js.map +1 -1
- package/dist/proserviceworld/i18n/types.d.ts +13 -0
- package/dist/proserviceworld/i18n/types.d.ts.map +1 -0
- package/dist/proserviceworld/i18n/types.js +18 -0
- package/dist/proserviceworld/i18n/types.js.map +1 -0
- package/dist/proserviceworld/pages/AnalyticsPage.d.ts.map +1 -1
- package/dist/proserviceworld/pages/AnalyticsPage.js +209 -197
- package/dist/proserviceworld/pages/AnalyticsPage.js.map +1 -1
- package/dist/proserviceworld/pages/ClientDetailPage.js +99 -98
- package/dist/proserviceworld/pages/ClientDetailPage.js.map +1 -1
- package/dist/proserviceworld/pages/ClientsPage.d.ts.map +1 -1
- package/dist/proserviceworld/pages/ClientsPage.js +181 -181
- package/dist/proserviceworld/pages/ClientsPage.js.map +1 -1
- package/dist/proserviceworld/pages/CompliancePage.d.ts.map +1 -1
- package/dist/proserviceworld/pages/CompliancePage.js +210 -209
- package/dist/proserviceworld/pages/CompliancePage.js.map +1 -1
- package/dist/proserviceworld/pages/ConflictsPage.d.ts.map +1 -1
- package/dist/proserviceworld/pages/ConflictsPage.js +139 -138
- package/dist/proserviceworld/pages/ConflictsPage.js.map +1 -1
- package/dist/proserviceworld/pages/DocumentsPage.d.ts.map +1 -1
- package/dist/proserviceworld/pages/DocumentsPage.js +150 -149
- package/dist/proserviceworld/pages/DocumentsPage.js.map +1 -1
- package/dist/proserviceworld/pages/EngagementDetailPage.js +105 -104
- package/dist/proserviceworld/pages/EngagementDetailPage.js.map +1 -1
- package/dist/proserviceworld/pages/EngagementsPage.d.ts.map +1 -1
- package/dist/proserviceworld/pages/EngagementsPage.js +137 -137
- package/dist/proserviceworld/pages/EngagementsPage.js.map +1 -1
- package/dist/proserviceworld/pages/InvoicesPage.d.ts.map +1 -1
- package/dist/proserviceworld/pages/InvoicesPage.js +257 -256
- package/dist/proserviceworld/pages/InvoicesPage.js.map +1 -1
- package/dist/proserviceworld/pages/MattersPage.d.ts.map +1 -1
- package/dist/proserviceworld/pages/MattersPage.js +166 -166
- package/dist/proserviceworld/pages/MattersPage.js.map +1 -1
- package/dist/proserviceworld/pages/PracticeAreasPage.d.ts.map +1 -1
- package/dist/proserviceworld/pages/PracticeAreasPage.js +100 -99
- package/dist/proserviceworld/pages/PracticeAreasPage.js.map +1 -1
- package/dist/proserviceworld/pages/PractitionerCredentialsPage.js +30 -29
- package/dist/proserviceworld/pages/PractitionerCredentialsPage.js.map +1 -1
- package/dist/proserviceworld/pages/TimePage.d.ts.map +1 -1
- package/dist/proserviceworld/pages/TimePage.js +343 -350
- package/dist/proserviceworld/pages/TimePage.js.map +1 -1
- package/dist/proserviceworld/utils/humanize.d.ts +3 -0
- package/dist/proserviceworld/utils/humanize.d.ts.map +1 -0
- package/dist/proserviceworld/utils/humanize.js +6 -0
- package/dist/proserviceworld/utils/humanize.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
//#region src/proserviceworld/i18n/catalog/time.ts
|
|
2
|
+
var e = {
|
|
3
|
+
en: {
|
|
4
|
+
"psw.time.title": "Time",
|
|
5
|
+
"psw.time.subtitle": "Capture expert effort against engagements and matters — the raw material of billing and utilization.",
|
|
6
|
+
"psw.time.startTimer": "Start timer",
|
|
7
|
+
"psw.time.logTime": "Log time",
|
|
8
|
+
"psw.time.logging": "Logging…",
|
|
9
|
+
"psw.time.metricEntries": "Entries",
|
|
10
|
+
"psw.time.metricTotalHours": "Total hours",
|
|
11
|
+
"psw.time.metricBillableHours": "Billable hours",
|
|
12
|
+
"psw.time.utilizationHint": "{{pct}}% utilization",
|
|
13
|
+
"psw.time.billable": "Billable",
|
|
14
|
+
"psw.time.nonBillable": "Non-billable",
|
|
15
|
+
"psw.time.searchPlaceholder": "Search time entries…",
|
|
16
|
+
"psw.time.emptyTitle": "No time logged",
|
|
17
|
+
"psw.time.emptyDescription": "Log your first time entry against an engagement or matter.",
|
|
18
|
+
"psw.time.entriesTitle": "Time entries",
|
|
19
|
+
"psw.time.narrative": "Narrative",
|
|
20
|
+
"psw.time.hours": "Hours",
|
|
21
|
+
"psw.time.minutes": "Minutes",
|
|
22
|
+
"psw.time.rate": "Rate",
|
|
23
|
+
"psw.time.ratePerHour": "Rate (per hour)",
|
|
24
|
+
"psw.time.submit": "Submit",
|
|
25
|
+
"psw.time.submitted": "Time entry submitted.",
|
|
26
|
+
"psw.time.approve": "Approve",
|
|
27
|
+
"psw.time.approved": "Time entry approved.",
|
|
28
|
+
"psw.time.reject": "Reject",
|
|
29
|
+
"psw.time.logged": "Time logged.",
|
|
30
|
+
"psw.time.timerStarted": "Timer started.",
|
|
31
|
+
"psw.time.stop": "Stop",
|
|
32
|
+
"psw.time.discardTimer": "Discard timer",
|
|
33
|
+
"psw.time.editTitle": "Edit time entry",
|
|
34
|
+
"psw.time.positiveMinutes": "Enter positive minutes.",
|
|
35
|
+
"psw.time.saveFailed": "Failed to save.",
|
|
36
|
+
"psw.time.rejectTitle": "Reject time entry",
|
|
37
|
+
"psw.time.reason": "Reason",
|
|
38
|
+
"psw.time.reasonPlaceholder": "Explain what needs correction.",
|
|
39
|
+
"psw.time.reasonRequired": "Enter a rejection reason.",
|
|
40
|
+
"psw.time.rejectFailed": "Failed to reject.",
|
|
41
|
+
"psw.time.against": "Against",
|
|
42
|
+
"psw.time.engagement": "Engagement",
|
|
43
|
+
"psw.time.matter": "Matter",
|
|
44
|
+
"psw.time.selectEngagementOption": "Select an engagement…",
|
|
45
|
+
"psw.time.selectMatterOption": "Select a matter…",
|
|
46
|
+
"psw.time.selectEngagement": "Select an engagement.",
|
|
47
|
+
"psw.time.selectMatter": "Select a matter.",
|
|
48
|
+
"psw.time.timeRequired": "Enter the time spent.",
|
|
49
|
+
"psw.time.narrativePlaceholder": "Reviewed working papers and drafted findings memo…",
|
|
50
|
+
"psw.time.narrativePlaceholderShort": "Describe the work…"
|
|
51
|
+
},
|
|
52
|
+
es: {
|
|
53
|
+
"psw.time.title": "Tiempo",
|
|
54
|
+
"psw.time.subtitle": "Registre el esfuerzo experto en compromisos y asuntos: la materia prima de la facturación y la utilización.",
|
|
55
|
+
"psw.time.startTimer": "Iniciar temporizador",
|
|
56
|
+
"psw.time.logTime": "Registrar tiempo",
|
|
57
|
+
"psw.time.logging": "Registrando…",
|
|
58
|
+
"psw.time.metricEntries": "Registros",
|
|
59
|
+
"psw.time.metricTotalHours": "Horas totales",
|
|
60
|
+
"psw.time.metricBillableHours": "Horas facturables",
|
|
61
|
+
"psw.time.utilizationHint": "{{pct}}% de utilización",
|
|
62
|
+
"psw.time.billable": "Facturable",
|
|
63
|
+
"psw.time.nonBillable": "No facturable",
|
|
64
|
+
"psw.time.searchPlaceholder": "Buscar registros de tiempo…",
|
|
65
|
+
"psw.time.emptyTitle": "No hay tiempo registrado",
|
|
66
|
+
"psw.time.emptyDescription": "Registre su primera entrada de tiempo en un compromiso o asunto.",
|
|
67
|
+
"psw.time.entriesTitle": "Registros de tiempo",
|
|
68
|
+
"psw.time.narrative": "Descripción del trabajo",
|
|
69
|
+
"psw.time.hours": "Horas",
|
|
70
|
+
"psw.time.minutes": "Minutos",
|
|
71
|
+
"psw.time.rate": "Tarifa",
|
|
72
|
+
"psw.time.ratePerHour": "Tarifa (por hora)",
|
|
73
|
+
"psw.time.submit": "Enviar",
|
|
74
|
+
"psw.time.submitted": "Registro de tiempo enviado.",
|
|
75
|
+
"psw.time.approve": "Aprobar",
|
|
76
|
+
"psw.time.approved": "Registro de tiempo aprobado.",
|
|
77
|
+
"psw.time.reject": "Rechazar",
|
|
78
|
+
"psw.time.logged": "Tiempo registrado.",
|
|
79
|
+
"psw.time.timerStarted": "Temporizador iniciado.",
|
|
80
|
+
"psw.time.stop": "Detener",
|
|
81
|
+
"psw.time.discardTimer": "Descartar temporizador",
|
|
82
|
+
"psw.time.editTitle": "Editar registro de tiempo",
|
|
83
|
+
"psw.time.positiveMinutes": "Introduzca un número positivo de minutos.",
|
|
84
|
+
"psw.time.saveFailed": "No se pudo guardar.",
|
|
85
|
+
"psw.time.rejectTitle": "Rechazar registro de tiempo",
|
|
86
|
+
"psw.time.reason": "Motivo",
|
|
87
|
+
"psw.time.reasonPlaceholder": "Explique qué debe corregirse.",
|
|
88
|
+
"psw.time.reasonRequired": "Introduzca un motivo de rechazo.",
|
|
89
|
+
"psw.time.rejectFailed": "No se pudo rechazar.",
|
|
90
|
+
"psw.time.against": "Imputar a",
|
|
91
|
+
"psw.time.engagement": "Compromiso",
|
|
92
|
+
"psw.time.matter": "Asunto",
|
|
93
|
+
"psw.time.selectEngagementOption": "Seleccione un compromiso…",
|
|
94
|
+
"psw.time.selectMatterOption": "Seleccione un asunto…",
|
|
95
|
+
"psw.time.selectEngagement": "Seleccione un compromiso.",
|
|
96
|
+
"psw.time.selectMatter": "Seleccione un asunto.",
|
|
97
|
+
"psw.time.timeRequired": "Introduzca el tiempo dedicado.",
|
|
98
|
+
"psw.time.narrativePlaceholder": "Revisé los papeles de trabajo y redacté el memorando de hallazgos…",
|
|
99
|
+
"psw.time.narrativePlaceholderShort": "Describa el trabajo…"
|
|
100
|
+
},
|
|
101
|
+
hi: {
|
|
102
|
+
"psw.time.title": "समय",
|
|
103
|
+
"psw.time.subtitle": "एंगेजमेंट और मामलों पर विशेषज्ञ प्रयास दर्ज करें — बिलिंग और उपयोगिता का मूल आधार।",
|
|
104
|
+
"psw.time.startTimer": "टाइमर शुरू करें",
|
|
105
|
+
"psw.time.logTime": "समय दर्ज करें",
|
|
106
|
+
"psw.time.logging": "दर्ज किया जा रहा है…",
|
|
107
|
+
"psw.time.metricEntries": "प्रविष्टियाँ",
|
|
108
|
+
"psw.time.metricTotalHours": "कुल घंटे",
|
|
109
|
+
"psw.time.metricBillableHours": "बिल योग्य घंटे",
|
|
110
|
+
"psw.time.utilizationHint": "{{pct}}% उपयोगिता",
|
|
111
|
+
"psw.time.billable": "बिल योग्य",
|
|
112
|
+
"psw.time.nonBillable": "गैर-बिल योग्य",
|
|
113
|
+
"psw.time.searchPlaceholder": "समय प्रविष्टियाँ खोजें…",
|
|
114
|
+
"psw.time.emptyTitle": "कोई समय दर्ज नहीं",
|
|
115
|
+
"psw.time.emptyDescription": "किसी एंगेजमेंट या मामले पर अपनी पहली समय प्रविष्टि दर्ज करें।",
|
|
116
|
+
"psw.time.entriesTitle": "समय प्रविष्टियाँ",
|
|
117
|
+
"psw.time.narrative": "कार्य विवरण",
|
|
118
|
+
"psw.time.hours": "घंटे",
|
|
119
|
+
"psw.time.minutes": "मिनट",
|
|
120
|
+
"psw.time.rate": "दर",
|
|
121
|
+
"psw.time.ratePerHour": "दर (प्रति घंटा)",
|
|
122
|
+
"psw.time.submit": "जमा करें",
|
|
123
|
+
"psw.time.submitted": "समय प्रविष्टि जमा की गई।",
|
|
124
|
+
"psw.time.approve": "स्वीकृत करें",
|
|
125
|
+
"psw.time.approved": "समय प्रविष्टि स्वीकृत की गई।",
|
|
126
|
+
"psw.time.reject": "अस्वीकार करें",
|
|
127
|
+
"psw.time.logged": "समय दर्ज किया गया।",
|
|
128
|
+
"psw.time.timerStarted": "टाइमर शुरू हुआ।",
|
|
129
|
+
"psw.time.stop": "रोकें",
|
|
130
|
+
"psw.time.discardTimer": "टाइमर हटाएँ",
|
|
131
|
+
"psw.time.editTitle": "समय प्रविष्टि संपादित करें",
|
|
132
|
+
"psw.time.positiveMinutes": "धनात्मक मिनट दर्ज करें।",
|
|
133
|
+
"psw.time.saveFailed": "सहेजा नहीं जा सका।",
|
|
134
|
+
"psw.time.rejectTitle": "समय प्रविष्टि अस्वीकार करें",
|
|
135
|
+
"psw.time.reason": "कारण",
|
|
136
|
+
"psw.time.reasonPlaceholder": "बताएँ कि क्या सुधारना है।",
|
|
137
|
+
"psw.time.reasonRequired": "अस्वीकृति का कारण दर्ज करें।",
|
|
138
|
+
"psw.time.rejectFailed": "अस्वीकार नहीं किया जा सका।",
|
|
139
|
+
"psw.time.against": "किस पर",
|
|
140
|
+
"psw.time.engagement": "एंगेजमेंट",
|
|
141
|
+
"psw.time.matter": "मामला",
|
|
142
|
+
"psw.time.selectEngagementOption": "एक एंगेजमेंट चुनें…",
|
|
143
|
+
"psw.time.selectMatterOption": "एक मामला चुनें…",
|
|
144
|
+
"psw.time.selectEngagement": "एक एंगेजमेंट चुनें।",
|
|
145
|
+
"psw.time.selectMatter": "एक मामला चुनें।",
|
|
146
|
+
"psw.time.timeRequired": "लगाया गया समय दर्ज करें।",
|
|
147
|
+
"psw.time.narrativePlaceholder": "कार्य-पत्रों की समीक्षा की और निष्कर्ष ज्ञापन का मसौदा तैयार किया…",
|
|
148
|
+
"psw.time.narrativePlaceholderShort": "कार्य का वर्णन करें…"
|
|
149
|
+
},
|
|
150
|
+
ta: {
|
|
151
|
+
"psw.time.title": "நேரம்",
|
|
152
|
+
"psw.time.subtitle": "ஈடுபாடுகள் மற்றும் விவகாரங்களில் செலவிட்ட நிபுணர் உழைப்பைப் பதிவு செய்யுங்கள் — பில்லிங் மற்றும் பயன்பாட்டின் அடிப்படை.",
|
|
153
|
+
"psw.time.startTimer": "டைமரைத் தொடங்கு",
|
|
154
|
+
"psw.time.logTime": "நேரத்தைப் பதிவு செய்",
|
|
155
|
+
"psw.time.logging": "பதிவு செய்யப்படுகிறது…",
|
|
156
|
+
"psw.time.metricEntries": "பதிவுகள்",
|
|
157
|
+
"psw.time.metricTotalHours": "மொத்த மணிநேரம்",
|
|
158
|
+
"psw.time.metricBillableHours": "பில் செய்யக்கூடிய மணிநேரம்",
|
|
159
|
+
"psw.time.utilizationHint": "{{pct}}% பயன்பாடு",
|
|
160
|
+
"psw.time.billable": "பில் செய்யக்கூடியது",
|
|
161
|
+
"psw.time.nonBillable": "பில் செய்ய இயலாதது",
|
|
162
|
+
"psw.time.searchPlaceholder": "நேரப் பதிவுகளைத் தேடு…",
|
|
163
|
+
"psw.time.emptyTitle": "நேரம் எதுவும் பதிவு செய்யப்படவில்லை",
|
|
164
|
+
"psw.time.emptyDescription": "ஒரு ஈடுபாடு அல்லது விவகாரத்திற்கு உங்கள் முதல் நேரப் பதிவைச் சேர்க்கவும்.",
|
|
165
|
+
"psw.time.entriesTitle": "நேரப் பதிவுகள்",
|
|
166
|
+
"psw.time.narrative": "பணி விவரம்",
|
|
167
|
+
"psw.time.hours": "மணிநேரம்",
|
|
168
|
+
"psw.time.minutes": "நிமிடங்கள்",
|
|
169
|
+
"psw.time.rate": "கட்டண விகிதம்",
|
|
170
|
+
"psw.time.ratePerHour": "கட்டண விகிதம் (மணிக்கு)",
|
|
171
|
+
"psw.time.submit": "சமர்ப்பி",
|
|
172
|
+
"psw.time.submitted": "நேரப் பதிவு சமர்ப்பிக்கப்பட்டது.",
|
|
173
|
+
"psw.time.approve": "அங்கீகரி",
|
|
174
|
+
"psw.time.approved": "நேரப் பதிவு அங்கீகரிக்கப்பட்டது.",
|
|
175
|
+
"psw.time.reject": "நிராகரி",
|
|
176
|
+
"psw.time.logged": "நேரம் பதிவு செய்யப்பட்டது.",
|
|
177
|
+
"psw.time.timerStarted": "டைமர் தொடங்கியது.",
|
|
178
|
+
"psw.time.stop": "நிறுத்து",
|
|
179
|
+
"psw.time.discardTimer": "டைமரை நீக்கு",
|
|
180
|
+
"psw.time.editTitle": "நேரப் பதிவைத் திருத்து",
|
|
181
|
+
"psw.time.positiveMinutes": "நேர்மறை நிமிடங்களை உள்ளிடவும்.",
|
|
182
|
+
"psw.time.saveFailed": "சேமிக்க முடியவில்லை.",
|
|
183
|
+
"psw.time.rejectTitle": "நேரப் பதிவை நிராகரி",
|
|
184
|
+
"psw.time.reason": "காரணம்",
|
|
185
|
+
"psw.time.reasonPlaceholder": "எதைச் சரிசெய்ய வேண்டும் என்பதை விளக்கவும்.",
|
|
186
|
+
"psw.time.reasonRequired": "நிராகரிப்புக்கான காரணத்தை உள்ளிடவும்.",
|
|
187
|
+
"psw.time.rejectFailed": "நிராகரிக்க முடியவில்லை.",
|
|
188
|
+
"psw.time.against": "எதற்கு எதிராக",
|
|
189
|
+
"psw.time.engagement": "ஈடுபாடு",
|
|
190
|
+
"psw.time.matter": "விவகாரம்",
|
|
191
|
+
"psw.time.selectEngagementOption": "ஒரு ஈடுபாட்டைத் தேர்ந்தெடுக்கவும்…",
|
|
192
|
+
"psw.time.selectMatterOption": "ஒரு விவகாரத்தைத் தேர்ந்தெடுக்கவும்…",
|
|
193
|
+
"psw.time.selectEngagement": "ஒரு ஈடுபாட்டைத் தேர்ந்தெடுக்கவும்.",
|
|
194
|
+
"psw.time.selectMatter": "ஒரு விவகாரத்தைத் தேர்ந்தெடுக்கவும்.",
|
|
195
|
+
"psw.time.timeRequired": "செலவிட்ட நேரத்தை உள்ளிடவும்.",
|
|
196
|
+
"psw.time.narrativePlaceholder": "பணித் தாள்களை மதிப்பாய்வு செய்து கண்டறிதல் குறிப்பை வரைவு செய்தேன்…",
|
|
197
|
+
"psw.time.narrativePlaceholderShort": "பணியை விவரிக்கவும்…"
|
|
198
|
+
},
|
|
199
|
+
zh: {
|
|
200
|
+
"psw.time.title": "工时",
|
|
201
|
+
"psw.time.subtitle": "按业务约定和事项记录专业投入——这是计费与利用率的原始数据。",
|
|
202
|
+
"psw.time.startTimer": "开始计时",
|
|
203
|
+
"psw.time.logTime": "记录工时",
|
|
204
|
+
"psw.time.logging": "记录中…",
|
|
205
|
+
"psw.time.metricEntries": "记录数",
|
|
206
|
+
"psw.time.metricTotalHours": "总工时",
|
|
207
|
+
"psw.time.metricBillableHours": "可计费工时",
|
|
208
|
+
"psw.time.utilizationHint": "利用率 {{pct}}%",
|
|
209
|
+
"psw.time.billable": "可计费",
|
|
210
|
+
"psw.time.nonBillable": "不可计费",
|
|
211
|
+
"psw.time.searchPlaceholder": "搜索工时记录…",
|
|
212
|
+
"psw.time.emptyTitle": "尚无工时记录",
|
|
213
|
+
"psw.time.emptyDescription": "针对某个业务约定或事项记录第一条工时。",
|
|
214
|
+
"psw.time.entriesTitle": "工时记录",
|
|
215
|
+
"psw.time.narrative": "工作说明",
|
|
216
|
+
"psw.time.hours": "小时",
|
|
217
|
+
"psw.time.minutes": "分钟",
|
|
218
|
+
"psw.time.rate": "费率",
|
|
219
|
+
"psw.time.ratePerHour": "费率(每小时)",
|
|
220
|
+
"psw.time.submit": "提交",
|
|
221
|
+
"psw.time.submitted": "工时记录已提交。",
|
|
222
|
+
"psw.time.approve": "批准",
|
|
223
|
+
"psw.time.approved": "工时记录已批准。",
|
|
224
|
+
"psw.time.reject": "驳回",
|
|
225
|
+
"psw.time.logged": "工时已记录。",
|
|
226
|
+
"psw.time.timerStarted": "计时已开始。",
|
|
227
|
+
"psw.time.stop": "停止",
|
|
228
|
+
"psw.time.discardTimer": "放弃计时",
|
|
229
|
+
"psw.time.editTitle": "编辑工时记录",
|
|
230
|
+
"psw.time.positiveMinutes": "请输入大于零的分钟数。",
|
|
231
|
+
"psw.time.saveFailed": "保存失败。",
|
|
232
|
+
"psw.time.rejectTitle": "驳回工时记录",
|
|
233
|
+
"psw.time.reason": "原因",
|
|
234
|
+
"psw.time.reasonPlaceholder": "说明需要更正的内容。",
|
|
235
|
+
"psw.time.reasonRequired": "请输入驳回原因。",
|
|
236
|
+
"psw.time.rejectFailed": "驳回失败。",
|
|
237
|
+
"psw.time.against": "计入",
|
|
238
|
+
"psw.time.engagement": "业务约定",
|
|
239
|
+
"psw.time.matter": "事项",
|
|
240
|
+
"psw.time.selectEngagementOption": "选择业务约定…",
|
|
241
|
+
"psw.time.selectMatterOption": "选择事项…",
|
|
242
|
+
"psw.time.selectEngagement": "请选择业务约定。",
|
|
243
|
+
"psw.time.selectMatter": "请选择事项。",
|
|
244
|
+
"psw.time.timeRequired": "请输入所用时间。",
|
|
245
|
+
"psw.time.narrativePlaceholder": "审阅了工作底稿并起草了发现备忘录…",
|
|
246
|
+
"psw.time.narrativePlaceholderShort": "描述所做工作…"
|
|
247
|
+
},
|
|
248
|
+
ar: {
|
|
249
|
+
"psw.time.title": "الوقت",
|
|
250
|
+
"psw.time.subtitle": "سجّل جهد الخبراء على الالتزامات والقضايا — المادة الخام للفوترة ومعدل الاستغلال.",
|
|
251
|
+
"psw.time.startTimer": "بدء المؤقت",
|
|
252
|
+
"psw.time.logTime": "تسجيل الوقت",
|
|
253
|
+
"psw.time.logging": "جارٍ التسجيل…",
|
|
254
|
+
"psw.time.metricEntries": "الإدخالات",
|
|
255
|
+
"psw.time.metricTotalHours": "إجمالي الساعات",
|
|
256
|
+
"psw.time.metricBillableHours": "الساعات القابلة للفوترة",
|
|
257
|
+
"psw.time.utilizationHint": "معدل الاستغلال {{pct}}%",
|
|
258
|
+
"psw.time.billable": "قابل للفوترة",
|
|
259
|
+
"psw.time.nonBillable": "غير قابل للفوترة",
|
|
260
|
+
"psw.time.searchPlaceholder": "ابحث في إدخالات الوقت…",
|
|
261
|
+
"psw.time.emptyTitle": "لم يُسجَّل أي وقت",
|
|
262
|
+
"psw.time.emptyDescription": "سجّل أول إدخال وقت على التزام أو قضية.",
|
|
263
|
+
"psw.time.entriesTitle": "إدخالات الوقت",
|
|
264
|
+
"psw.time.narrative": "وصف العمل",
|
|
265
|
+
"psw.time.hours": "الساعات",
|
|
266
|
+
"psw.time.minutes": "الدقائق",
|
|
267
|
+
"psw.time.rate": "السعر",
|
|
268
|
+
"psw.time.ratePerHour": "السعر (للساعة)",
|
|
269
|
+
"psw.time.submit": "إرسال",
|
|
270
|
+
"psw.time.submitted": "تم إرسال إدخال الوقت.",
|
|
271
|
+
"psw.time.approve": "اعتماد",
|
|
272
|
+
"psw.time.approved": "تم اعتماد إدخال الوقت.",
|
|
273
|
+
"psw.time.reject": "رفض",
|
|
274
|
+
"psw.time.logged": "تم تسجيل الوقت.",
|
|
275
|
+
"psw.time.timerStarted": "بدأ المؤقت.",
|
|
276
|
+
"psw.time.stop": "إيقاف",
|
|
277
|
+
"psw.time.discardTimer": "تجاهل المؤقت",
|
|
278
|
+
"psw.time.editTitle": "تعديل إدخال الوقت",
|
|
279
|
+
"psw.time.positiveMinutes": "أدخل عددًا موجبًا من الدقائق.",
|
|
280
|
+
"psw.time.saveFailed": "تعذّر الحفظ.",
|
|
281
|
+
"psw.time.rejectTitle": "رفض إدخال الوقت",
|
|
282
|
+
"psw.time.reason": "السبب",
|
|
283
|
+
"psw.time.reasonPlaceholder": "وضّح ما يحتاج إلى تصحيح.",
|
|
284
|
+
"psw.time.reasonRequired": "أدخل سبب الرفض.",
|
|
285
|
+
"psw.time.rejectFailed": "تعذّر الرفض.",
|
|
286
|
+
"psw.time.against": "مُحمَّل على",
|
|
287
|
+
"psw.time.engagement": "الالتزام",
|
|
288
|
+
"psw.time.matter": "القضية",
|
|
289
|
+
"psw.time.selectEngagementOption": "اختر التزامًا…",
|
|
290
|
+
"psw.time.selectMatterOption": "اختر قضية…",
|
|
291
|
+
"psw.time.selectEngagement": "اختر التزامًا.",
|
|
292
|
+
"psw.time.selectMatter": "اختر قضية.",
|
|
293
|
+
"psw.time.timeRequired": "أدخل الوقت المستغرق.",
|
|
294
|
+
"psw.time.narrativePlaceholder": "راجعتُ أوراق العمل وصغتُ مذكرة النتائج…",
|
|
295
|
+
"psw.time.narrativePlaceholderShort": "صِف العمل…"
|
|
296
|
+
}
|
|
297
|
+
};
|
|
298
|
+
//#endregion
|
|
299
|
+
export { e as timeCatalog };
|
|
300
|
+
|
|
301
|
+
//# sourceMappingURL=time.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time.js","names":[],"sources":["../../../../src/proserviceworld/i18n/catalog/time.ts"],"sourcesContent":["import type { LocaleCatalog } from '../types';\n\n/** Time page: entries table, timer, log/edit/reject modals. */\nexport const timeCatalog: LocaleCatalog = {\n en: {\n 'psw.time.title': 'Time',\n 'psw.time.subtitle':\n 'Capture expert effort against engagements and matters — the raw material of billing and utilization.',\n 'psw.time.startTimer': 'Start timer',\n 'psw.time.logTime': 'Log time',\n 'psw.time.logging': 'Logging…',\n 'psw.time.metricEntries': 'Entries',\n 'psw.time.metricTotalHours': 'Total hours',\n 'psw.time.metricBillableHours': 'Billable hours',\n 'psw.time.utilizationHint': '{{pct}}% utilization',\n 'psw.time.billable': 'Billable',\n 'psw.time.nonBillable': 'Non-billable',\n 'psw.time.searchPlaceholder': 'Search time entries…',\n 'psw.time.emptyTitle': 'No time logged',\n 'psw.time.emptyDescription': 'Log your first time entry against an engagement or matter.',\n 'psw.time.entriesTitle': 'Time entries',\n 'psw.time.narrative': 'Narrative',\n 'psw.time.hours': 'Hours',\n 'psw.time.minutes': 'Minutes',\n 'psw.time.rate': 'Rate',\n 'psw.time.ratePerHour': 'Rate (per hour)',\n 'psw.time.submit': 'Submit',\n 'psw.time.submitted': 'Time entry submitted.',\n 'psw.time.approve': 'Approve',\n 'psw.time.approved': 'Time entry approved.',\n 'psw.time.reject': 'Reject',\n 'psw.time.logged': 'Time logged.',\n 'psw.time.timerStarted': 'Timer started.',\n 'psw.time.stop': 'Stop',\n 'psw.time.discardTimer': 'Discard timer',\n 'psw.time.editTitle': 'Edit time entry',\n 'psw.time.positiveMinutes': 'Enter positive minutes.',\n 'psw.time.saveFailed': 'Failed to save.',\n 'psw.time.rejectTitle': 'Reject time entry',\n 'psw.time.reason': 'Reason',\n 'psw.time.reasonPlaceholder': 'Explain what needs correction.',\n 'psw.time.reasonRequired': 'Enter a rejection reason.',\n 'psw.time.rejectFailed': 'Failed to reject.',\n 'psw.time.against': 'Against',\n 'psw.time.engagement': 'Engagement',\n 'psw.time.matter': 'Matter',\n 'psw.time.selectEngagementOption': 'Select an engagement…',\n 'psw.time.selectMatterOption': 'Select a matter…',\n 'psw.time.selectEngagement': 'Select an engagement.',\n 'psw.time.selectMatter': 'Select a matter.',\n 'psw.time.timeRequired': 'Enter the time spent.',\n 'psw.time.narrativePlaceholder': 'Reviewed working papers and drafted findings memo…',\n 'psw.time.narrativePlaceholderShort': 'Describe the work…',\n },\n es: {\n 'psw.time.title': 'Tiempo',\n 'psw.time.subtitle':\n 'Registre el esfuerzo experto en compromisos y asuntos: la materia prima de la facturación y la utilización.',\n 'psw.time.startTimer': 'Iniciar temporizador',\n 'psw.time.logTime': 'Registrar tiempo',\n 'psw.time.logging': 'Registrando…',\n 'psw.time.metricEntries': 'Registros',\n 'psw.time.metricTotalHours': 'Horas totales',\n 'psw.time.metricBillableHours': 'Horas facturables',\n 'psw.time.utilizationHint': '{{pct}}% de utilización',\n 'psw.time.billable': 'Facturable',\n 'psw.time.nonBillable': 'No facturable',\n 'psw.time.searchPlaceholder': 'Buscar registros de tiempo…',\n 'psw.time.emptyTitle': 'No hay tiempo registrado',\n 'psw.time.emptyDescription': 'Registre su primera entrada de tiempo en un compromiso o asunto.',\n 'psw.time.entriesTitle': 'Registros de tiempo',\n 'psw.time.narrative': 'Descripción del trabajo',\n 'psw.time.hours': 'Horas',\n 'psw.time.minutes': 'Minutos',\n 'psw.time.rate': 'Tarifa',\n 'psw.time.ratePerHour': 'Tarifa (por hora)',\n 'psw.time.submit': 'Enviar',\n 'psw.time.submitted': 'Registro de tiempo enviado.',\n 'psw.time.approve': 'Aprobar',\n 'psw.time.approved': 'Registro de tiempo aprobado.',\n 'psw.time.reject': 'Rechazar',\n 'psw.time.logged': 'Tiempo registrado.',\n 'psw.time.timerStarted': 'Temporizador iniciado.',\n 'psw.time.stop': 'Detener',\n 'psw.time.discardTimer': 'Descartar temporizador',\n 'psw.time.editTitle': 'Editar registro de tiempo',\n 'psw.time.positiveMinutes': 'Introduzca un número positivo de minutos.',\n 'psw.time.saveFailed': 'No se pudo guardar.',\n 'psw.time.rejectTitle': 'Rechazar registro de tiempo',\n 'psw.time.reason': 'Motivo',\n 'psw.time.reasonPlaceholder': 'Explique qué debe corregirse.',\n 'psw.time.reasonRequired': 'Introduzca un motivo de rechazo.',\n 'psw.time.rejectFailed': 'No se pudo rechazar.',\n 'psw.time.against': 'Imputar a',\n 'psw.time.engagement': 'Compromiso',\n 'psw.time.matter': 'Asunto',\n 'psw.time.selectEngagementOption': 'Seleccione un compromiso…',\n 'psw.time.selectMatterOption': 'Seleccione un asunto…',\n 'psw.time.selectEngagement': 'Seleccione un compromiso.',\n 'psw.time.selectMatter': 'Seleccione un asunto.',\n 'psw.time.timeRequired': 'Introduzca el tiempo dedicado.',\n 'psw.time.narrativePlaceholder':\n 'Revisé los papeles de trabajo y redacté el memorando de hallazgos…',\n 'psw.time.narrativePlaceholderShort': 'Describa el trabajo…',\n },\n hi: {\n 'psw.time.title': 'समय',\n 'psw.time.subtitle':\n 'एंगेजमेंट और मामलों पर विशेषज्ञ प्रयास दर्ज करें — बिलिंग और उपयोगिता का मूल आधार।',\n 'psw.time.startTimer': 'टाइमर शुरू करें',\n 'psw.time.logTime': 'समय दर्ज करें',\n 'psw.time.logging': 'दर्ज किया जा रहा है…',\n 'psw.time.metricEntries': 'प्रविष्टियाँ',\n 'psw.time.metricTotalHours': 'कुल घंटे',\n 'psw.time.metricBillableHours': 'बिल योग्य घंटे',\n 'psw.time.utilizationHint': '{{pct}}% उपयोगिता',\n 'psw.time.billable': 'बिल योग्य',\n 'psw.time.nonBillable': 'गैर-बिल योग्य',\n 'psw.time.searchPlaceholder': 'समय प्रविष्टियाँ खोजें…',\n 'psw.time.emptyTitle': 'कोई समय दर्ज नहीं',\n 'psw.time.emptyDescription': 'किसी एंगेजमेंट या मामले पर अपनी पहली समय प्रविष्टि दर्ज करें।',\n 'psw.time.entriesTitle': 'समय प्रविष्टियाँ',\n 'psw.time.narrative': 'कार्य विवरण',\n 'psw.time.hours': 'घंटे',\n 'psw.time.minutes': 'मिनट',\n 'psw.time.rate': 'दर',\n 'psw.time.ratePerHour': 'दर (प्रति घंटा)',\n 'psw.time.submit': 'जमा करें',\n 'psw.time.submitted': 'समय प्रविष्टि जमा की गई।',\n 'psw.time.approve': 'स्वीकृत करें',\n 'psw.time.approved': 'समय प्रविष्टि स्वीकृत की गई।',\n 'psw.time.reject': 'अस्वीकार करें',\n 'psw.time.logged': 'समय दर्ज किया गया।',\n 'psw.time.timerStarted': 'टाइमर शुरू हुआ।',\n 'psw.time.stop': 'रोकें',\n 'psw.time.discardTimer': 'टाइमर हटाएँ',\n 'psw.time.editTitle': 'समय प्रविष्टि संपादित करें',\n 'psw.time.positiveMinutes': 'धनात्मक मिनट दर्ज करें।',\n 'psw.time.saveFailed': 'सहेजा नहीं जा सका।',\n 'psw.time.rejectTitle': 'समय प्रविष्टि अस्वीकार करें',\n 'psw.time.reason': 'कारण',\n 'psw.time.reasonPlaceholder': 'बताएँ कि क्या सुधारना है।',\n 'psw.time.reasonRequired': 'अस्वीकृति का कारण दर्ज करें।',\n 'psw.time.rejectFailed': 'अस्वीकार नहीं किया जा सका।',\n 'psw.time.against': 'किस पर',\n 'psw.time.engagement': 'एंगेजमेंट',\n 'psw.time.matter': 'मामला',\n 'psw.time.selectEngagementOption': 'एक एंगेजमेंट चुनें…',\n 'psw.time.selectMatterOption': 'एक मामला चुनें…',\n 'psw.time.selectEngagement': 'एक एंगेजमेंट चुनें।',\n 'psw.time.selectMatter': 'एक मामला चुनें।',\n 'psw.time.timeRequired': 'लगाया गया समय दर्ज करें।',\n 'psw.time.narrativePlaceholder':\n 'कार्य-पत्रों की समीक्षा की और निष्कर्ष ज्ञापन का मसौदा तैयार किया…',\n 'psw.time.narrativePlaceholderShort': 'कार्य का वर्णन करें…',\n },\n ta: {\n 'psw.time.title': 'நேரம்',\n 'psw.time.subtitle':\n 'ஈடுபாடுகள் மற்றும் விவகாரங்களில் செலவிட்ட நிபுணர் உழைப்பைப் பதிவு செய்யுங்கள் — பில்லிங் மற்றும் பயன்பாட்டின் அடிப்படை.',\n 'psw.time.startTimer': 'டைமரைத் தொடங்கு',\n 'psw.time.logTime': 'நேரத்தைப் பதிவு செய்',\n 'psw.time.logging': 'பதிவு செய்யப்படுகிறது…',\n 'psw.time.metricEntries': 'பதிவுகள்',\n 'psw.time.metricTotalHours': 'மொத்த மணிநேரம்',\n 'psw.time.metricBillableHours': 'பில் செய்யக்கூடிய மணிநேரம்',\n 'psw.time.utilizationHint': '{{pct}}% பயன்பாடு',\n 'psw.time.billable': 'பில் செய்யக்கூடியது',\n 'psw.time.nonBillable': 'பில் செய்ய இயலாதது',\n 'psw.time.searchPlaceholder': 'நேரப் பதிவுகளைத் தேடு…',\n 'psw.time.emptyTitle': 'நேரம் எதுவும் பதிவு செய்யப்படவில்லை',\n 'psw.time.emptyDescription':\n 'ஒரு ஈடுபாடு அல்லது விவகாரத்திற்கு உங்கள் முதல் நேரப் பதிவைச் சேர்க்கவும்.',\n 'psw.time.entriesTitle': 'நேரப் பதிவுகள்',\n 'psw.time.narrative': 'பணி விவரம்',\n 'psw.time.hours': 'மணிநேரம்',\n 'psw.time.minutes': 'நிமிடங்கள்',\n 'psw.time.rate': 'கட்டண விகிதம்',\n 'psw.time.ratePerHour': 'கட்டண விகிதம் (மணிக்கு)',\n 'psw.time.submit': 'சமர்ப்பி',\n 'psw.time.submitted': 'நேரப் பதிவு சமர்ப்பிக்கப்பட்டது.',\n 'psw.time.approve': 'அங்கீகரி',\n 'psw.time.approved': 'நேரப் பதிவு அங்கீகரிக்கப்பட்டது.',\n 'psw.time.reject': 'நிராகரி',\n 'psw.time.logged': 'நேரம் பதிவு செய்யப்பட்டது.',\n 'psw.time.timerStarted': 'டைமர் தொடங்கியது.',\n 'psw.time.stop': 'நிறுத்து',\n 'psw.time.discardTimer': 'டைமரை நீக்கு',\n 'psw.time.editTitle': 'நேரப் பதிவைத் திருத்து',\n 'psw.time.positiveMinutes': 'நேர்மறை நிமிடங்களை உள்ளிடவும்.',\n 'psw.time.saveFailed': 'சேமிக்க முடியவில்லை.',\n 'psw.time.rejectTitle': 'நேரப் பதிவை நிராகரி',\n 'psw.time.reason': 'காரணம்',\n 'psw.time.reasonPlaceholder': 'எதைச் சரிசெய்ய வேண்டும் என்பதை விளக்கவும்.',\n 'psw.time.reasonRequired': 'நிராகரிப்புக்கான காரணத்தை உள்ளிடவும்.',\n 'psw.time.rejectFailed': 'நிராகரிக்க முடியவில்லை.',\n 'psw.time.against': 'எதற்கு எதிராக',\n 'psw.time.engagement': 'ஈடுபாடு',\n 'psw.time.matter': 'விவகாரம்',\n 'psw.time.selectEngagementOption': 'ஒரு ஈடுபாட்டைத் தேர்ந்தெடுக்கவும்…',\n 'psw.time.selectMatterOption': 'ஒரு விவகாரத்தைத் தேர்ந்தெடுக்கவும்…',\n 'psw.time.selectEngagement': 'ஒரு ஈடுபாட்டைத் தேர்ந்தெடுக்கவும்.',\n 'psw.time.selectMatter': 'ஒரு விவகாரத்தைத் தேர்ந்தெடுக்கவும்.',\n 'psw.time.timeRequired': 'செலவிட்ட நேரத்தை உள்ளிடவும்.',\n 'psw.time.narrativePlaceholder':\n 'பணித் தாள்களை மதிப்பாய்வு செய்து கண்டறிதல் குறிப்பை வரைவு செய்தேன்…',\n 'psw.time.narrativePlaceholderShort': 'பணியை விவரிக்கவும்…',\n },\n zh: {\n 'psw.time.title': '工时',\n 'psw.time.subtitle': '按业务约定和事项记录专业投入——这是计费与利用率的原始数据。',\n 'psw.time.startTimer': '开始计时',\n 'psw.time.logTime': '记录工时',\n 'psw.time.logging': '记录中…',\n 'psw.time.metricEntries': '记录数',\n 'psw.time.metricTotalHours': '总工时',\n 'psw.time.metricBillableHours': '可计费工时',\n 'psw.time.utilizationHint': '利用率 {{pct}}%',\n 'psw.time.billable': '可计费',\n 'psw.time.nonBillable': '不可计费',\n 'psw.time.searchPlaceholder': '搜索工时记录…',\n 'psw.time.emptyTitle': '尚无工时记录',\n 'psw.time.emptyDescription': '针对某个业务约定或事项记录第一条工时。',\n 'psw.time.entriesTitle': '工时记录',\n 'psw.time.narrative': '工作说明',\n 'psw.time.hours': '小时',\n 'psw.time.minutes': '分钟',\n 'psw.time.rate': '费率',\n 'psw.time.ratePerHour': '费率(每小时)',\n 'psw.time.submit': '提交',\n 'psw.time.submitted': '工时记录已提交。',\n 'psw.time.approve': '批准',\n 'psw.time.approved': '工时记录已批准。',\n 'psw.time.reject': '驳回',\n 'psw.time.logged': '工时已记录。',\n 'psw.time.timerStarted': '计时已开始。',\n 'psw.time.stop': '停止',\n 'psw.time.discardTimer': '放弃计时',\n 'psw.time.editTitle': '编辑工时记录',\n 'psw.time.positiveMinutes': '请输入大于零的分钟数。',\n 'psw.time.saveFailed': '保存失败。',\n 'psw.time.rejectTitle': '驳回工时记录',\n 'psw.time.reason': '原因',\n 'psw.time.reasonPlaceholder': '说明需要更正的内容。',\n 'psw.time.reasonRequired': '请输入驳回原因。',\n 'psw.time.rejectFailed': '驳回失败。',\n 'psw.time.against': '计入',\n 'psw.time.engagement': '业务约定',\n 'psw.time.matter': '事项',\n 'psw.time.selectEngagementOption': '选择业务约定…',\n 'psw.time.selectMatterOption': '选择事项…',\n 'psw.time.selectEngagement': '请选择业务约定。',\n 'psw.time.selectMatter': '请选择事项。',\n 'psw.time.timeRequired': '请输入所用时间。',\n 'psw.time.narrativePlaceholder': '审阅了工作底稿并起草了发现备忘录…',\n 'psw.time.narrativePlaceholderShort': '描述所做工作…',\n },\n ar: {\n 'psw.time.title': 'الوقت',\n 'psw.time.subtitle':\n 'سجّل جهد الخبراء على الالتزامات والقضايا — المادة الخام للفوترة ومعدل الاستغلال.',\n 'psw.time.startTimer': 'بدء المؤقت',\n 'psw.time.logTime': 'تسجيل الوقت',\n 'psw.time.logging': 'جارٍ التسجيل…',\n 'psw.time.metricEntries': 'الإدخالات',\n 'psw.time.metricTotalHours': 'إجمالي الساعات',\n 'psw.time.metricBillableHours': 'الساعات القابلة للفوترة',\n 'psw.time.utilizationHint': 'معدل الاستغلال {{pct}}%',\n 'psw.time.billable': 'قابل للفوترة',\n 'psw.time.nonBillable': 'غير قابل للفوترة',\n 'psw.time.searchPlaceholder': 'ابحث في إدخالات الوقت…',\n 'psw.time.emptyTitle': 'لم يُسجَّل أي وقت',\n 'psw.time.emptyDescription': 'سجّل أول إدخال وقت على التزام أو قضية.',\n 'psw.time.entriesTitle': 'إدخالات الوقت',\n 'psw.time.narrative': 'وصف العمل',\n 'psw.time.hours': 'الساعات',\n 'psw.time.minutes': 'الدقائق',\n 'psw.time.rate': 'السعر',\n 'psw.time.ratePerHour': 'السعر (للساعة)',\n 'psw.time.submit': 'إرسال',\n 'psw.time.submitted': 'تم إرسال إدخال الوقت.',\n 'psw.time.approve': 'اعتماد',\n 'psw.time.approved': 'تم اعتماد إدخال الوقت.',\n 'psw.time.reject': 'رفض',\n 'psw.time.logged': 'تم تسجيل الوقت.',\n 'psw.time.timerStarted': 'بدأ المؤقت.',\n 'psw.time.stop': 'إيقاف',\n 'psw.time.discardTimer': 'تجاهل المؤقت',\n 'psw.time.editTitle': 'تعديل إدخال الوقت',\n 'psw.time.positiveMinutes': 'أدخل عددًا موجبًا من الدقائق.',\n 'psw.time.saveFailed': 'تعذّر الحفظ.',\n 'psw.time.rejectTitle': 'رفض إدخال الوقت',\n 'psw.time.reason': 'السبب',\n 'psw.time.reasonPlaceholder': 'وضّح ما يحتاج إلى تصحيح.',\n 'psw.time.reasonRequired': 'أدخل سبب الرفض.',\n 'psw.time.rejectFailed': 'تعذّر الرفض.',\n 'psw.time.against': 'مُحمَّل على',\n 'psw.time.engagement': 'الالتزام',\n 'psw.time.matter': 'القضية',\n 'psw.time.selectEngagementOption': 'اختر التزامًا…',\n 'psw.time.selectMatterOption': 'اختر قضية…',\n 'psw.time.selectEngagement': 'اختر التزامًا.',\n 'psw.time.selectMatter': 'اختر قضية.',\n 'psw.time.timeRequired': 'أدخل الوقت المستغرق.',\n 'psw.time.narrativePlaceholder': 'راجعتُ أوراق العمل وصغتُ مذكرة النتائج…',\n 'psw.time.narrativePlaceholderShort': 'صِف العمل…',\n },\n};\n"],"mappings":"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"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
+
import { LocaleCatalog, SupportedLocale } from './types';
|
|
2
|
+
|
|
3
|
+
export type { LocaleCatalog, SupportedLocale } from './types';
|
|
4
|
+
export { SUPPORTED_LOCALES, toSupportedLocale } from './types';
|
|
1
5
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* This lightweight module provides fallback translations for MFE-owned UI
|
|
6
|
-
* strings (page titles, empty states, form labels) so the MFE can be mounted
|
|
7
|
-
* standalone (dev harness, tests) and still render in all supported locales.
|
|
8
|
-
* When running inside the shell, the shell's `useI18n` translations take
|
|
9
|
-
* precedence via the `useTr` hook.
|
|
6
|
+
* Core keys (dashboard, clients, engagements, matters, common, tags) merged
|
|
7
|
+
* with the per-area page catalogs. Every catalog must ship all six locales;
|
|
8
|
+
* `i18n/__tests__/catalog.test.ts` enforces key parity and placeholders.
|
|
10
9
|
*/
|
|
11
|
-
export
|
|
10
|
+
export declare const translations: LocaleCatalog;
|
|
11
|
+
/** Strict lookup: the bundled string for exactly this locale, or undefined. */
|
|
12
|
+
export declare function lookup(key: string, locale: SupportedLocale): string | undefined;
|
|
12
13
|
export declare function t(key: string, fallback?: string, locale?: SupportedLocale): string;
|
|
13
14
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/proserviceworld/i18n/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/proserviceworld/i18n/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,eAAe,EACrB,MAAM,SAAS,CAAC;AAGjB,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAo8B/D;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,aAST,CAAC;AAOnB,+EAA+E;AAC/E,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS,CAG/E;AAED,wBAAgB,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,MAAM,CAGlF"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { SUPPORTED_LOCALES as e, toSupportedLocale as t } from "./types.js";
|
|
2
|
+
import { PAGE_CATALOGS as n } from "./catalog/index.js";
|
|
1
3
|
//#region src/proserviceworld/i18n/index.ts
|
|
2
|
-
var
|
|
4
|
+
var r = {
|
|
3
5
|
en: {
|
|
4
6
|
"psw.dashboard.title": "Practice overview",
|
|
5
7
|
"psw.dashboard.subtitle": "One governed view of clients, engagements, matters, time and billing across your firm.",
|
|
@@ -304,7 +306,7 @@ var e = {
|
|
|
304
306
|
"psw.dashboard.totalClients": "{{count}} कुल",
|
|
305
307
|
"psw.dashboard.activeEngagements": "सक्रिय एंगेजमेंट",
|
|
306
308
|
"psw.dashboard.openMatters": "खुले मामले",
|
|
307
|
-
"psw.dashboard.unbilledHours": "
|
|
309
|
+
"psw.dashboard.unbilledHours": "बिल न किए गए घंटे",
|
|
308
310
|
"psw.dashboard.billedHours": "{{count}} बिल किए गए",
|
|
309
311
|
"psw.dashboard.outstanding": "बकाया",
|
|
310
312
|
"psw.dashboard.outstandingHint": "भेजे गए + अतिदेय",
|
|
@@ -313,7 +315,7 @@ var e = {
|
|
|
313
315
|
"psw.dashboard.trustAccounts": "{{count}} सक्रिय खाता",
|
|
314
316
|
"psw.dashboard.trustAccountsPlural": "{{count}} सक्रिय खाते",
|
|
315
317
|
"psw.dashboard.complianceDue": "अनुपालन बकाया",
|
|
316
|
-
"psw.dashboard.openConflicts": "खुले
|
|
318
|
+
"psw.dashboard.openConflicts": "खुले हित-संघर्ष",
|
|
317
319
|
"psw.dashboard.engagementsByStatus": "स्थिति के अनुसार एंगेजमेंट",
|
|
318
320
|
"psw.dashboard.mattersByStatus": "स्थिति के अनुसार मामले",
|
|
319
321
|
"psw.dashboard.revenue": "राजस्व",
|
|
@@ -881,7 +883,7 @@ var e = {
|
|
|
881
883
|
"psw.common.of": "من",
|
|
882
884
|
"psw.common.required": "مطلوب",
|
|
883
885
|
"psw.common.saving": "جارٍ الحفظ…",
|
|
884
|
-
"psw.common.creating": "
|
|
886
|
+
"psw.common.creating": "جارٍ الإنشاء…",
|
|
885
887
|
"psw.common.opening": "جارٍ الفتح…",
|
|
886
888
|
"psw.common.close": "إغلاق",
|
|
887
889
|
"psw.common.error": "حدث خطأ ما.",
|
|
@@ -890,16 +892,18 @@ var e = {
|
|
|
890
892
|
"psw.tags.title": "الوسوم",
|
|
891
893
|
"psw.tags.add": "إضافة وسم"
|
|
892
894
|
}
|
|
893
|
-
};
|
|
894
|
-
function
|
|
895
|
-
|
|
896
|
-
let t = (navigator.language ?? "en").split("-")[0].toLowerCase();
|
|
897
|
-
return t in e ? t : "en";
|
|
895
|
+
}, i = Object.fromEntries(e.map((e) => [e, Object.assign({}, r[e], ...n.map((t) => t[e]))]));
|
|
896
|
+
function a() {
|
|
897
|
+
return typeof navigator > "u" ? "en" : t(navigator.language) ?? "en";
|
|
898
898
|
}
|
|
899
|
-
function
|
|
900
|
-
|
|
899
|
+
function o(e, t) {
|
|
900
|
+
let n = i[t];
|
|
901
|
+
return Object.prototype.hasOwnProperty.call(n, e) ? n[e] : void 0;
|
|
902
|
+
}
|
|
903
|
+
function s(e, t, n) {
|
|
904
|
+
return o(e, n ?? a()) ?? o(e, "en") ?? t ?? e;
|
|
901
905
|
}
|
|
902
906
|
//#endregion
|
|
903
|
-
export {
|
|
907
|
+
export { o as lookup, s as t, t as toSupportedLocale, i as translations };
|
|
904
908
|
|
|
905
909
|
//# sourceMappingURL=index.js.map
|