Skip to content

Commit 36cb3ea

Browse files
hotlongCopilot
andcommitted
chore(crm): fill all i18n field-label gaps across en/zh-CN/ja-JP/es-ES
Patches the four CRM locale bundles to reach 100% translation coverage as reported by 'os i18n check': - en: +165 field labels (previously 56.7% → 100%) - es-ES: +165 field labels (previously 56.7% → 100%) - ja-JP: +165 field labels (previously 56.7% → 100%) - zh-CN: +107 field labels (previously 71.9% → 100%) All 260 translation keys now resolve across all 4 locales (917ms scan). Translations follow standard CRM/Salesforce terminology. Objects without existing 'fields:' blocks (case, contract, product, quote, task, campaign in en/ja/es) had fresh blocks inserted after their pluralLabel. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 5096603 commit 36cb3ea

4 files changed

Lines changed: 638 additions & 0 deletions

File tree

examples/app-crm/src/translations/en.ts

Lines changed: 177 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ export const en: TranslationData = {
3838
description: { label: 'Description' },
3939
is_active: { label: 'Active' },
4040
last_activity_date: { label: 'Last Activity Date' },
41+
brand_color: { label: 'Brand Color' },
4142
},
4243
_views: {
4344
all_accounts: { label: 'All Accounts', description: 'Primary account list with revenue & industry summaries' },
@@ -72,6 +73,17 @@ export const en: TranslationData = {
7273
owner: { label: 'Contact Owner' },
7374
description: { label: 'Description' },
7475
is_primary: { label: 'Primary Contact' },
76+
avatar: { label: 'Profile Picture' },
77+
reports_to: { label: 'Reports To' },
78+
mailing_street: { label: 'Mailing Street' },
79+
mailing_city: { label: 'Mailing City' },
80+
mailing_state: { label: 'Mailing State/Province' },
81+
mailing_postal_code: { label: 'Mailing Postal Code' },
82+
mailing_country: { label: 'Mailing Country' },
83+
birthdate: { label: 'Birthdate' },
84+
lead_source: { label: 'Lead Source' },
85+
do_not_call: { label: 'Do Not Call' },
86+
email_opt_out: { label: 'Email Opt Out' },
7587
},
7688
_views: {
7789
all_contacts: { label: 'All Contacts' },
@@ -117,6 +129,22 @@ export const en: TranslationData = {
117129
owner: { label: 'Lead Owner' },
118130
is_converted: { label: 'Converted' },
119131
description: { label: 'Description' },
132+
salutation: { label: 'Salutation' },
133+
full_name: { label: 'Full Name' },
134+
industry: { label: 'Industry' },
135+
mobile: { label: 'Mobile' },
136+
website: { label: 'Website' },
137+
rating: { label: 'Lead Score' },
138+
converted_account: { label: 'Converted Account' },
139+
converted_contact: { label: 'Converted Contact' },
140+
converted_opportunity: { label: 'Converted Opportunity' },
141+
converted_date: { label: 'Converted Date' },
142+
address: { label: 'Address' },
143+
annual_revenue: { label: 'Annual Revenue' },
144+
number_of_employees: { label: 'Number of Employees' },
145+
notes: { label: 'Notes' },
146+
do_not_call: { label: 'Do Not Call' },
147+
email_opt_out: { label: 'Email Opt Out' },
120148
},
121149
_views: {
122150
all_leads: { label: 'All Leads' },
@@ -177,6 +205,12 @@ export const en: TranslationData = {
177205
},
178206
description: { label: 'Description' },
179207
next_step: { label: 'Next Step' },
208+
created_date: { label: 'Created Date' },
209+
lead_source: { label: 'Lead Source' },
210+
competitors: { label: 'Competitors' },
211+
campaign: { label: 'Campaign' },
212+
days_in_stage: { label: 'Days in Current Stage' },
213+
is_private: { label: 'Private' },
180214
},
181215
_views: {
182216
all_opportunities: { label: 'All Opportunities' },
@@ -201,6 +235,33 @@ export const en: TranslationData = {
201235
case: {
202236
label: 'Case',
203237
pluralLabel: 'Cases',
238+
fields: {
239+
case_number: { label: 'Case Number' },
240+
subject: { label: 'Subject' },
241+
description: { label: 'Description' },
242+
account: { label: 'Account' },
243+
contact: { label: 'Contact' },
244+
status: { label: 'Status' },
245+
priority: { label: 'Priority' },
246+
type: { label: 'Case Type' },
247+
origin: { label: 'Case Origin' },
248+
owner: { label: 'Case Owner' },
249+
created_date: { label: 'Created Date' },
250+
closed_date: { label: 'Closed Date' },
251+
first_response_date: { label: 'First Response Date' },
252+
resolution_time_hours: { label: 'Resolution Time (Hours)' },
253+
sla_due_date: { label: 'SLA Due Date' },
254+
is_sla_violated: { label: 'SLA Violated' },
255+
is_escalated: { label: 'Escalated' },
256+
escalation_reason: { label: 'Escalation Reason' },
257+
parent_case: { label: 'Parent Case' },
258+
resolution: { label: 'Resolution' },
259+
customer_rating: { label: 'Customer Satisfaction' },
260+
customer_feedback: { label: 'Customer Feedback' },
261+
customer_signature: { label: 'Customer Signature' },
262+
internal_notes: { label: 'Internal Notes' },
263+
is_closed: { label: 'Is Closed' },
264+
},
204265
_views: {
205266
all_cases: { label: 'All Cases' },
206267
case_workflow: { label: 'Service Workflow' },
@@ -225,6 +286,29 @@ export const en: TranslationData = {
225286
contract: {
226287
label: 'Contract',
227288
pluralLabel: 'Contracts',
289+
fields: {
290+
contract_number: { label: 'Contract Number' },
291+
account: { label: 'Account' },
292+
contact: { label: 'Primary Contact' },
293+
opportunity: { label: 'Related Opportunity' },
294+
owner: { label: 'Contract Owner' },
295+
status: { label: 'Status' },
296+
contract_term_months: { label: 'Contract Term (Months)' },
297+
start_date: { label: 'Start Date' },
298+
end_date: { label: 'End Date' },
299+
contract_value: { label: 'Contract Value' },
300+
billing_frequency: { label: 'Billing Frequency' },
301+
payment_terms: { label: 'Payment Terms' },
302+
auto_renewal: { label: 'Auto Renewal' },
303+
renewal_notice_days: { label: 'Renewal Notice (Days)' },
304+
contract_type: { label: 'Contract Type' },
305+
signed_date: { label: 'Signed Date' },
306+
signed_by: { label: 'Signed By' },
307+
document_url: { label: 'Contract Document' },
308+
special_terms: { label: 'Special Terms' },
309+
description: { label: 'Description' },
310+
billing_address: { label: 'Billing Address' },
311+
},
228312
_views: {
229313
all_contracts: { label: 'All Contracts' },
230314
renewal_calendar: { label: 'Renewal Calendar' },
@@ -236,6 +320,23 @@ export const en: TranslationData = {
236320
product: {
237321
label: 'Product',
238322
pluralLabel: 'Products',
323+
fields: {
324+
product_code: { label: 'Product Code' },
325+
name: { label: 'Product Name' },
326+
description: { label: 'Description' },
327+
category: { label: 'Category' },
328+
family: { label: 'Product Family' },
329+
list_price: { label: 'List Price' },
330+
cost: { label: 'Cost' },
331+
sku: { label: 'SKU' },
332+
quantity_on_hand: { label: 'Quantity on Hand' },
333+
reorder_point: { label: 'Reorder Point' },
334+
is_active: { label: 'Active' },
335+
is_taxable: { label: 'Taxable' },
336+
product_manager: { label: 'Product Manager' },
337+
image_url: { label: 'Product Image' },
338+
datasheet_url: { label: 'Datasheet URL' },
339+
},
239340
_views: {
240341
all_products: { label: 'All Products' },
241342
product_catalog: { label: 'Product Catalog' },
@@ -246,6 +347,29 @@ export const en: TranslationData = {
246347
quote: {
247348
label: 'Quote',
248349
pluralLabel: 'Quotes',
350+
fields: {
351+
quote_number: { label: 'Quote Number' },
352+
name: { label: 'Quote Name' },
353+
account: { label: 'Account' },
354+
contact: { label: 'Contact' },
355+
opportunity: { label: 'Opportunity' },
356+
owner: { label: 'Quote Owner' },
357+
status: { label: 'Status' },
358+
quote_date: { label: 'Quote Date' },
359+
expiration_date: { label: 'Expiration Date' },
360+
subtotal: { label: 'Subtotal' },
361+
discount: { label: 'Discount %' },
362+
discount_amount: { label: 'Discount Amount' },
363+
tax: { label: 'Tax' },
364+
shipping_handling: { label: 'Shipping & Handling' },
365+
total_price: { label: 'Total Price' },
366+
payment_terms: { label: 'Payment Terms' },
367+
shipping_terms: { label: 'Shipping Terms' },
368+
billing_address: { label: 'Billing Address' },
369+
shipping_address: { label: 'Shipping Address' },
370+
description: { label: 'Description' },
371+
internal_notes: { label: 'Internal Notes' },
372+
},
249373
_views: {
250374
all_quotes: { label: 'All Quotes' },
251375
quote_pipeline: { label: 'Quote Pipeline' },
@@ -256,6 +380,32 @@ export const en: TranslationData = {
256380
task: {
257381
label: 'Task',
258382
pluralLabel: 'Tasks',
383+
fields: {
384+
subject: { label: 'Subject' },
385+
description: { label: 'Description' },
386+
status: { label: 'Status' },
387+
priority: { label: 'Priority' },
388+
type: { label: 'Task Type' },
389+
due_date: { label: 'Due Date' },
390+
reminder_date: { label: 'Reminder Date/Time' },
391+
completed_date: { label: 'Completed Date' },
392+
owner: { label: 'Assigned To' },
393+
related_to_type: { label: 'Related To Type' },
394+
related_to_account: { label: 'Related Account' },
395+
related_to_contact: { label: 'Related Contact' },
396+
related_to_opportunity: { label: 'Related Opportunity' },
397+
related_to_lead: { label: 'Related Lead' },
398+
related_to_case: { label: 'Related Case' },
399+
is_recurring: { label: 'Recurring Task' },
400+
recurrence_type: { label: 'Recurrence Type' },
401+
recurrence_interval: { label: 'Recurrence Interval' },
402+
recurrence_end_date: { label: 'Recurrence End Date' },
403+
is_completed: { label: 'Is Completed' },
404+
is_overdue: { label: 'Is Overdue' },
405+
progress_percent: { label: 'Progress (%)' },
406+
estimated_hours: { label: 'Estimated Hours' },
407+
actual_hours: { label: 'Actual Hours' },
408+
},
259409
_views: {
260410
all_tasks: { label: 'All Tasks' },
261411
task_board: { label: 'Task Board' },
@@ -269,6 +419,33 @@ export const en: TranslationData = {
269419
campaign: {
270420
label: 'Campaign',
271421
pluralLabel: 'Campaigns',
422+
fields: {
423+
campaign_code: { label: 'Campaign Code' },
424+
name: { label: 'Campaign Name' },
425+
description: { label: 'Description' },
426+
type: { label: 'Campaign Type' },
427+
channel: { label: 'Primary Channel' },
428+
status: { label: 'Status' },
429+
start_date: { label: 'Start Date' },
430+
end_date: { label: 'End Date' },
431+
budgeted_cost: { label: 'Budgeted Cost' },
432+
actual_cost: { label: 'Actual Cost' },
433+
expected_revenue: { label: 'Expected Revenue' },
434+
actual_revenue: { label: 'Actual Revenue' },
435+
target_size: { label: 'Target Size' },
436+
num_sent: { label: 'Number Sent' },
437+
num_responses: { label: 'Number of Responses' },
438+
num_leads: { label: 'Number of Leads' },
439+
num_converted_leads: { label: 'Converted Leads' },
440+
num_opportunities: { label: 'Opportunities Created' },
441+
num_won_opportunities: { label: 'Won Opportunities' },
442+
response_rate: { label: 'Response Rate %' },
443+
roi: { label: 'ROI %' },
444+
parent_campaign: { label: 'Parent Campaign' },
445+
owner: { label: 'Campaign Owner' },
446+
landing_page_url: { label: 'Landing Page' },
447+
is_active: { label: 'Active' },
448+
},
272449
_views: {
273450
all_campaigns: { label: 'All Campaigns' },
274451
campaign_gantt: { label: 'Campaign Schedule' },

0 commit comments

Comments
 (0)