Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/2096-screen-titles.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'hotcrm': patch
---

Three screen-flow dialogs no longer repeat their own name as the step title in Chinese, Spanish and Japanese. The small line above the dialog's title names the flow, and the title names the step, as it already did in English: **Convert Lead** now opens on **转化详情** / **Detalles de la Conversión** / **変換詳細** (Conversion Details), **Generate Quote** on **报价单详情** / **Detalles de la Cotización** / **見積詳細** (Quote Details), and **Enroll Members** on **加入条件** / **Criterios de Inscripción** / **登録条件** (Enrollment Criteria). Each wording reuses the term the app already uses for that object or action. Before this change, all three dialogs showed the flow's name twice, for example **线索转化流程** on both lines.
14 changes: 9 additions & 5 deletions src/sales/translations/es-ES/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -594,8 +594,12 @@ export const appSurface: Omit<TranslationData, 'objects'> = {
// `screens.<node>.title` and `screens.<node>.fields.<field>.{label,placeholder}`
// — the keys `os lint`'s `i18n/missing-flow` names, read by the console's
// flow runner since @objectstack 17.7.0 (the spec's `flows` liveness row is
// `live` there). A screen with no authored `title` shows its flow's label in
// every locale, so each `screen_1.title` repeats the flow label. Since
// `live` there). A screen with no authored `title` is headed by its node
// `label` (the executor's `config.title ?? node.label`, measured on
// 18.0.0-next.0), so each `screens.<node>.title` translates that node label,
// never the flow label: the dialog shows the flow label as its eyebrow above
// the title, and the two differ on `lead_conversion`, `quote_generation` and
// `campaign_enrollment` (#2096). Since
// 18.0.0-next.0 three more surfaces are keys the engine reads in the run's
// locale, and `i18n/missing-flow` names each missing one: a select field's
// `options.<value>` (worded as the object field's own option in this pack),
Expand All @@ -609,7 +613,7 @@ export const appSurface: Omit<TranslationData, 'objects'> = {
label: 'Inscribir miembros en la campaña',
screens: {
screen_1: {
title: 'Inscribir miembros en la campaña',
title: 'Criterios de Inscripción',
fields: {
memberSource: { label: 'Tipo de miembro a inscribir', options: { leads: 'Prospectos', contacts: 'Contactos' } },
leadStatus: { label: 'Inscribir prospectos con estado', options: { new: 'Nuevo', contacted: 'Contactado', qualified: 'Calificado' } },
Expand Down Expand Up @@ -655,7 +659,7 @@ export const appSurface: Omit<TranslationData, 'objects'> = {
label: 'Proceso de conversión de prospecto',
screens: {
screen_1: {
title: 'Proceso de conversión de prospecto',
title: 'Detalles de la Conversión',
// The duplicate warning's text is a variable the flow assigns; this
// key can only carry the hole that shows it.
description: '{{duplicateWarning}}',
Expand Down Expand Up @@ -706,7 +710,7 @@ export const appSurface: Omit<TranslationData, 'objects'> = {
refusals: { refuse_held: { message: 'Primero va la aprobación de calificación: marque Solicitar Aprobación de Calificación. No se creó nada.' } },
screens: {
screen_1: {
title: 'Generar cotización desde la oportunidad',
title: 'Detalles de la Cotización',
fields: {
quoteName: { label: 'Nombre de Cotización' },
expirationDays: { label: 'Válida por (días)' },
Expand Down
14 changes: 9 additions & 5 deletions src/sales/translations/ja-JP/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -596,8 +596,12 @@ export const appSurface: Omit<TranslationData, 'objects'> = {
// `screens.<node>.title` and `screens.<node>.fields.<field>.{label,placeholder}`
// — the keys `os lint`'s `i18n/missing-flow` names, read by the console's
// flow runner since @objectstack 17.7.0 (the spec's `flows` liveness row is
// `live` there). A screen with no authored `title` shows its flow's label in
// every locale, so each `screen_1.title` repeats the flow label. Since
// `live` there). A screen with no authored `title` is headed by its node
// `label` (the executor's `config.title ?? node.label`, measured on
// 18.0.0-next.0), so each `screens.<node>.title` translates that node label,
// never the flow label: the dialog shows the flow label as its eyebrow above
// the title, and the two differ on `lead_conversion`, `quote_generation` and
// `campaign_enrollment` (#2096). Since
// 18.0.0-next.0 three more surfaces are keys the engine reads in the run's
// locale, and `i18n/missing-flow` names each missing one: a select field's
// `options.<value>` (worded as the object field's own option in this pack),
Expand All @@ -611,7 +615,7 @@ export const appSurface: Omit<TranslationData, 'objects'> = {
label: 'キャンペーンにメンバーを登録',
screens: {
screen_1: {
title: 'キャンペーンにメンバーを登録',
title: '登録条件',
fields: {
memberSource: { label: '登録するメンバーの種類', options: { leads: 'リード', contacts: '取引先責任者' } },
leadStatus: { label: '登録するリードのステータス', options: { new: '新規', contacted: 'コンタクト済み', qualified: '適格' } },
Expand Down Expand Up @@ -657,7 +661,7 @@ export const appSurface: Omit<TranslationData, 'objects'> = {
label: 'リード変換プロセス',
screens: {
screen_1: {
title: 'リード変換プロセス',
title: '変換詳細',
// The duplicate warning's text is a variable the flow assigns; this
// key can only carry the hole that shows it.
description: '{{duplicateWarning}}',
Expand Down Expand Up @@ -708,7 +712,7 @@ export const appSurface: Omit<TranslationData, 'objects'> = {
refusals: { refuse_held: { message: '先に案件化承認が必要です。「案件化承認を申請」にチェックを入れてください。何も作成されていません。' } },
screens: {
screen_1: {
title: '商談から見積を作成',
title: '見積詳細',
fields: {
quoteName: { label: '見積名' },
expirationDays: { label: '有効期間(日)' },
Expand Down
14 changes: 9 additions & 5 deletions src/sales/translations/zh-CN/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -595,8 +595,12 @@ export const appSurface: Omit<TranslationData, 'objects'> = {
// `screens.<node>.title` and `screens.<node>.fields.<field>.{label,placeholder}`
// — the keys `os lint`'s `i18n/missing-flow` names, read by the console's
// flow runner since @objectstack 17.7.0 (the spec's `flows` liveness row is
// `live` there). A screen with no authored `title` shows its flow's label in
// every locale, so each `screen_1.title` repeats the flow label. Since
// `live` there). A screen with no authored `title` is headed by its node
// `label` (the executor's `config.title ?? node.label`, measured on
// 18.0.0-next.0), so each `screens.<node>.title` translates that node label,
// never the flow label: the dialog shows the flow label as its eyebrow above
// the title, and the two differ on `lead_conversion`, `quote_generation` and
// `campaign_enrollment` (#2096). Since
// 18.0.0-next.0 three more surfaces are keys the engine reads in the run's
// locale, and `i18n/missing-flow` names each missing one: a select field's
// `options.<value>` (worded as the object field's own option in this pack),
Expand All @@ -610,7 +614,7 @@ export const appSurface: Omit<TranslationData, 'objects'> = {
label: '将成员加入营销活动',
screens: {
screen_1: {
title: '将成员加入营销活动',
title: '加入条件',
fields: {
memberSource: { label: '加入的成员类型', options: { leads: '线索', contacts: '联系人' } },
leadStatus: { label: '加入以下状态的线索', options: { new: '新建', contacted: '已联系', qualified: '已确认' } },
Expand Down Expand Up @@ -656,7 +660,7 @@ export const appSurface: Omit<TranslationData, 'objects'> = {
label: '线索转化流程',
screens: {
screen_1: {
title: '线索转化流程',
title: '转化详情',
// The duplicate warning's text is a variable the flow assigns; this
// key can only carry the hole that shows it.
description: '{{duplicateWarning}}',
Expand Down Expand Up @@ -707,7 +711,7 @@ export const appSurface: Omit<TranslationData, 'objects'> = {
refusals: { refuse_held: { message: '需先完成立项审批:请勾选「申请立项审批」。尚未创建任何内容。' } },
screens: {
screen_1: {
title: '从商机生成报价单',
title: '报价单详情',
fields: {
quoteName: { label: '报价名称' },
expirationDays: { label: '有效期(天)' },
Expand Down
Loading