refactor: move onboarding brand form translations out of settings.brand
The onboarding Brand page was reusing settings.brand.* keys, which coupled two unrelated pages: a rename in Settings would silently break onboarding, and the two pages might want to diverge copy later (e.g. more welcoming language during first-run vs terse settings labels). Duplicated the relevant keys (field labels, placeholders, tone options, content language copy) into onboarding.brand.* across en/pt-BR/es. The Settings workspace page keeps using settings.brand.* — they're the source of truth for that page now. No behavior change; just separation of ownership.
This commit is contained in:
parent
a65632d580
commit
9c80b6cfce
4 changed files with 67 additions and 16 deletions
|
|
@ -48,6 +48,23 @@
|
|||
'autofill_error' => 'We could not read that site. Please fill in manually.',
|
||||
'autofill_missing_url' => 'Add your website URL first.',
|
||||
'logo_captured' => 'Logo captured from your site.',
|
||||
|
||||
'website' => 'Website',
|
||||
'website_placeholder' => 'https://yourbrand.com',
|
||||
'brand_description' => 'Description',
|
||||
'brand_description_placeholder' => 'Tell us about your brand, what you do, and who your audience is...',
|
||||
'tone' => 'Tone of voice',
|
||||
'tone_professional' => 'Professional',
|
||||
'tone_casual' => 'Casual',
|
||||
'tone_friendly' => 'Friendly',
|
||||
'tone_bold' => 'Bold',
|
||||
'tone_inspirational' => 'Inspirational',
|
||||
'tone_humorous' => 'Humorous',
|
||||
'tone_educational' => 'Educational',
|
||||
'voice_notes' => 'Voice notes',
|
||||
'voice_notes_placeholder' => 'Additional writing guidelines, words to avoid, style preferences...',
|
||||
'content_language' => 'Content language',
|
||||
'content_language_description' => 'Language used for AI-generated captions, hashtags, and any text inside generated images or videos.',
|
||||
],
|
||||
|
||||
'connect' => [
|
||||
|
|
|
|||
|
|
@ -48,6 +48,23 @@
|
|||
'autofill_error' => 'No pudimos leer ese sitio. Complétalo manualmente.',
|
||||
'autofill_missing_url' => 'Ingresa primero la URL de tu sitio.',
|
||||
'logo_captured' => 'Logo capturado desde tu sitio.',
|
||||
|
||||
'website' => 'Sitio web',
|
||||
'website_placeholder' => 'https://tumarca.com',
|
||||
'brand_description' => 'Descripción',
|
||||
'brand_description_placeholder' => 'Cuéntanos sobre tu marca, lo que haces y quién es tu audiencia...',
|
||||
'tone' => 'Tono de voz',
|
||||
'tone_professional' => 'Profesional',
|
||||
'tone_casual' => 'Casual',
|
||||
'tone_friendly' => 'Amigable',
|
||||
'tone_bold' => 'Audaz',
|
||||
'tone_inspirational' => 'Inspirador',
|
||||
'tone_humorous' => 'Humorístico',
|
||||
'tone_educational' => 'Educativo',
|
||||
'voice_notes' => 'Notas de voz',
|
||||
'voice_notes_placeholder' => 'Directrices adicionales de escritura, palabras a evitar, preferencias de estilo...',
|
||||
'content_language' => 'Idioma del contenido',
|
||||
'content_language_description' => 'Idioma usado en los subtítulos, hashtags y cualquier texto dentro de imágenes o videos generados por IA.',
|
||||
],
|
||||
|
||||
'connect' => [
|
||||
|
|
|
|||
|
|
@ -48,6 +48,23 @@
|
|||
'autofill_error' => 'Não conseguimos ler esse site. Preencha manualmente.',
|
||||
'autofill_missing_url' => 'Informe a URL do seu site primeiro.',
|
||||
'logo_captured' => 'Logo capturado do seu site.',
|
||||
|
||||
'website' => 'Site',
|
||||
'website_placeholder' => 'https://suamarca.com',
|
||||
'brand_description' => 'Descrição',
|
||||
'brand_description_placeholder' => 'Conte sobre sua marca, o que você faz e quem é seu público...',
|
||||
'tone' => 'Tom de voz',
|
||||
'tone_professional' => 'Profissional',
|
||||
'tone_casual' => 'Casual',
|
||||
'tone_friendly' => 'Amigável',
|
||||
'tone_bold' => 'Ousado',
|
||||
'tone_inspirational' => 'Inspirador',
|
||||
'tone_humorous' => 'Bem-humorado',
|
||||
'tone_educational' => 'Educacional',
|
||||
'voice_notes' => 'Notas de voz',
|
||||
'voice_notes_placeholder' => 'Diretrizes adicionais de escrita, palavras a evitar, preferências de estilo...',
|
||||
'content_language' => 'Idioma do conteúdo',
|
||||
'content_language_description' => 'Idioma usado nas legendas, hashtags e em qualquer texto dentro de imagens ou vídeos gerados por AI.',
|
||||
],
|
||||
|
||||
'connect' => [
|
||||
|
|
|
|||
|
|
@ -117,13 +117,13 @@ const runAutofill = async () => {
|
|||
>
|
||||
<form class="flex flex-col gap-5" @submit.prevent="submit">
|
||||
<div class="grid gap-2">
|
||||
<Label for="brand_website">{{ $t('settings.brand.website') }}</Label>
|
||||
<Label for="brand_website">{{ $t('onboarding.brand.website') }}</Label>
|
||||
<div class="flex gap-2">
|
||||
<Input
|
||||
id="brand_website"
|
||||
v-model="form.brand_website"
|
||||
type="url"
|
||||
:placeholder="trans('settings.brand.website_placeholder')"
|
||||
:placeholder="trans('onboarding.brand.website_placeholder')"
|
||||
class="flex-1"
|
||||
/>
|
||||
<Button
|
||||
|
|
@ -145,11 +145,11 @@ const runAutofill = async () => {
|
|||
</div>
|
||||
|
||||
<div class="grid gap-2">
|
||||
<Label for="brand_description">{{ $t('settings.brand.brand_description') }}</Label>
|
||||
<Label for="brand_description">{{ $t('onboarding.brand.brand_description') }}</Label>
|
||||
<Textarea
|
||||
id="brand_description"
|
||||
v-model="form.brand_description"
|
||||
:placeholder="trans('settings.brand.brand_description_placeholder')"
|
||||
:placeholder="trans('onboarding.brand.brand_description_placeholder')"
|
||||
rows="3"
|
||||
/>
|
||||
<InputError :message="form.errors.brand_description" />
|
||||
|
|
@ -157,26 +157,26 @@ const runAutofill = async () => {
|
|||
|
||||
<div class="grid gap-4 sm:grid-cols-2">
|
||||
<div class="grid gap-2">
|
||||
<Label for="brand_tone">{{ $t('settings.brand.tone') }}</Label>
|
||||
<Label for="brand_tone">{{ $t('onboarding.brand.tone') }}</Label>
|
||||
<Select v-model="form.brand_tone">
|
||||
<SelectTrigger id="brand_tone" class="w-full">
|
||||
<SelectValue />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectItem value="professional">{{ $t('settings.brand.tone_professional') }}</SelectItem>
|
||||
<SelectItem value="casual">{{ $t('settings.brand.tone_casual') }}</SelectItem>
|
||||
<SelectItem value="friendly">{{ $t('settings.brand.tone_friendly') }}</SelectItem>
|
||||
<SelectItem value="bold">{{ $t('settings.brand.tone_bold') }}</SelectItem>
|
||||
<SelectItem value="inspirational">{{ $t('settings.brand.tone_inspirational') }}</SelectItem>
|
||||
<SelectItem value="humorous">{{ $t('settings.brand.tone_humorous') }}</SelectItem>
|
||||
<SelectItem value="educational">{{ $t('settings.brand.tone_educational') }}</SelectItem>
|
||||
<SelectItem value="professional">{{ $t('onboarding.brand.tone_professional') }}</SelectItem>
|
||||
<SelectItem value="casual">{{ $t('onboarding.brand.tone_casual') }}</SelectItem>
|
||||
<SelectItem value="friendly">{{ $t('onboarding.brand.tone_friendly') }}</SelectItem>
|
||||
<SelectItem value="bold">{{ $t('onboarding.brand.tone_bold') }}</SelectItem>
|
||||
<SelectItem value="inspirational">{{ $t('onboarding.brand.tone_inspirational') }}</SelectItem>
|
||||
<SelectItem value="humorous">{{ $t('onboarding.brand.tone_humorous') }}</SelectItem>
|
||||
<SelectItem value="educational">{{ $t('onboarding.brand.tone_educational') }}</SelectItem>
|
||||
</SelectContent>
|
||||
</Select>
|
||||
<InputError :message="form.errors.brand_tone" />
|
||||
</div>
|
||||
|
||||
<div class="grid gap-2">
|
||||
<Label for="content_language">{{ $t('settings.brand.content_language') }}</Label>
|
||||
<Label for="content_language">{{ $t('onboarding.brand.content_language') }}</Label>
|
||||
<Select v-model="form.content_language">
|
||||
<SelectTrigger id="content_language" class="w-full">
|
||||
<SelectValue />
|
||||
|
|
@ -192,15 +192,15 @@ const runAutofill = async () => {
|
|||
</div>
|
||||
|
||||
<p class="-mt-2 text-xs text-muted-foreground">
|
||||
{{ $t('settings.brand.content_language_description') }}
|
||||
{{ $t('onboarding.brand.content_language_description') }}
|
||||
</p>
|
||||
|
||||
<div class="grid gap-2">
|
||||
<Label for="brand_voice_notes">{{ $t('settings.brand.voice_notes') }}</Label>
|
||||
<Label for="brand_voice_notes">{{ $t('onboarding.brand.voice_notes') }}</Label>
|
||||
<Textarea
|
||||
id="brand_voice_notes"
|
||||
v-model="form.brand_voice_notes"
|
||||
:placeholder="trans('settings.brand.voice_notes_placeholder')"
|
||||
:placeholder="trans('onboarding.brand.voice_notes_placeholder')"
|
||||
rows="3"
|
||||
/>
|
||||
<InputError :message="form.errors.brand_voice_notes" />
|
||||
|
|
|
|||
Loading…
Reference in a new issue