Skip to content
Open
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
2 changes: 1 addition & 1 deletion packages/questions/src/data/pt-br/questions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -414,7 +414,7 @@ const questions = [
},
{
id: '956f3e17-ff17-4af5-a52f-9222b8968106',
text: 'Tomo decisões difíceis',
text: 'Adio tomar decisões difíceis',
keyed: 'minus',
domain: 'C',
facet: 6
Expand Down
13 changes: 4 additions & 9 deletions packages/results/src/data/pt-br/agreeableness.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { type TemplateDomain } from '../../types'
const agreeableness: TemplateDomain = {
domain: 'A',
title: 'Afabilidade',
shortDescription: 'Pessoas agradáveis aos outros, simpáticos. Se preocupam com a cooperação e a harmonia social e facilmente se dão bem com outras pessoas.',
shortDescription: 'Pessoas agradáveis, simpáticas. Se preocupam com a cooperação e a harmonia social e facilmente se dão bem com outras pessoas.',
description: `São atenciosos, amigáveis, generosos e se comprometem com os
interesses do próximo. Pessoas com esse perfil também têm uma visão otimista
sobre a humanidade. Eles acreditam que as pessoas são honestas, decentes,
Expand All @@ -21,9 +21,7 @@ ações agradem a maioria.`,
results: [
{
score: 'low', // do not translate this line
text: `Sua pontuação para "afabilidade" é baixa, indicando que você se
preocupa mais com as próprias necessidades do que com a dos outros.
As pessoas podem te considerar rigoroso, crítico, e inflexível.`
text: 'Sua pontuação para "afabilidade" é baixa, indicando que você se preocupa mais com as próprias necessidades do que com a dos outros. As pessoas podem te considerar rigoroso, crítico e inflexível.'
},
{
score: 'neutral', // do not translate this line
Expand All @@ -50,10 +48,7 @@ desonestos e perigosos.`
{
facet: 2,
title: 'Moralidade',
text: `Pessoas que se baseiam na ética e justiça, indivíduo sincero e franco.
Esse grupo têm facilidade em lidar com outras pessoas e normalmente não gostam de
manipulações nas relações. Pontuação baixa caracteriza pessoas que acreditam que
é necessário ou comum que as relações sociais causam decepções.`
text: 'Pessoas que se baseiam na ética e justiça, indivíduo sincero e franco. Esse grupo têm facilidade em lidar com outras pessoas e normalmente não gostam de manipulações nas relações. Pessoas com baixa pontuação aqui podem ser vistas como mais dispostas a usar de astúcia ou a ocultar a verdade para atingir seus próprios objetivos, e podem não hesitar em manipular os outros se acharem vantajoso.'
},
{
facet: 3,
Expand All @@ -76,7 +71,7 @@ conseguir o que querem.`
{
facet: 5,
title: 'Modéstia',
text: `Pesssoas que falam de realizações próprias com bastante humildade.
text: `Pessoas que falam de realizações próprias com bastante humildade.
Não gostam de ser considerados superiores ou melhores do que os outros. Em alguns
casos essa atitude pode ocasionar baixa autoconfiança/autoestima. Os que têm
pontuação baixa se consideram superiores e podem ser vistos como arrogante
Expand Down
6 changes: 2 additions & 4 deletions packages/results/src/data/pt-br/conscientiousness.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { type TemplateDomain } from '../../types'

const conscientiousness: TemplateDomain = {
domain: 'C',
title: 'Consciência',
title: 'Conscienciosidade',
shortDescription: 'Diz respeito à forma como controlamos, conduzimos e direcionamos nossos impulsos.',
description: `Consciência gira em torno da ideia de organização e perseverança.
Indivíduos conscientes normalmente são considerados inteligentes, pois idealizam
Expand Down Expand Up @@ -41,9 +41,7 @@ desorganizado e costumam te avaliar como descuidado.`
},
{
score: 'high', // do not translate this line
text: `"Sua pontuação em Consciência" é alta. Você é uma pessoa
que define bem seus objetivos e os realiza com determinação. Te consideram
confiável e trabalhador."`
text: "Sua pontuação em Conscienciosidade é alta. Você é uma pessoa que define bem seus objetivos e os realiza com determinação. Te consideram confiável e trabalhador."
}
],
facets: [
Expand Down
7 changes: 2 additions & 5 deletions packages/results/src/data/pt-br/extraversion.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ const extraversion: TemplateDomain = {
de energia, e normalmente seus dias são carregados de emoções positivas. Eles
tendem a ser animados, orientados para a ação. Provavelmente você vai escutar
deles palavras motivadoras, como 'Bora!' e 'Vamos? Vamos!' Quando estão em
grupos eles gostam de falar, se destacar e chamar a atenção. Ao contrátio, os
grupos eles gostam de falar, se destacar e chamar a atenção. Ao contrário, os
introvertidos tendem a ser discretos e mais quietos, gostam de passar o tempo
sozinhos. Sua falta de envolvimento social não deve ser interpretado como timidez
ou depressão. O introvertido simplesmente precisa de menos estímulo do que um
Expand All @@ -19,10 +19,7 @@ que não busca ajuda de outros, mas será bastante simpático e solicito quando
results: [
{
score: 'low', // do not translate this line
text: `Sua pontuação para "extroversão" é baixa, indicando que
você tende a ser mais introvertido, reservado e tranquilo. Você curte
a solidão e atividades individuais. Ter alguns amigos próximos pra
você já é um grande nível de socialização.`
text: 'Sua pontuação para "extroversão" é baixa, indicando que você tende a ser mais introvertido, reservado e tranquilo. Você curte a solidão e atividades individuais. Ter alguns amigos próximos para você já é um grande nível de socialização.'
},
{
score: 'neutral', // do not translate this line
Expand Down
10 changes: 3 additions & 7 deletions packages/results/src/data/pt-br/neuroticism.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ const neuroticism: TemplateDomain = {
shortDescription: 'Neuroticismo: tendência a sentir emoções negativas.',
description: `O termo neurose foi utilizado por Freud para descrever
uma condição marcada por sofrimento mental e emocional, e pela incapacidade
de lidar com as circunstâncias normais da vida. O pscicanalista defendia
de lidar com as circunstâncias normais da vida. O psicanalista defendia
a ideia de que todos os seres humanos mostram alguns sinais de neurose,
mas que cada indivíduo lida de maneira diferente ao sofrimento e tem sintomas
específicos quando "em sitações de perigo". Hoje a psicologia retrata o
Expand Down Expand Up @@ -74,18 +74,14 @@ tendem a não sentir esses sentimentos depressivos.`
{
facet: 4,
title: 'Autoconsciência',
text: `Pessoas impulsivas são incapazes de controlar desejos ou impulsos. Sentem
dificuldade em resistir a vontades. Eles tendem a sanar seus prazeres e buscam recompensas
instantâneas ao invés de longo-prazo. Já pessoas pouco impulsivas não passam por situações
exageradas em relação a seus desejos, pois conseguem resistir. Por esse motivo costumam
ser mais moderados.`
text: 'Esta faceta descreve a tendência a sentir constrangimento, vergonha ou desconforto em situações sociais. Pessoas com alta autoconsciência são muito sensíveis ao que os outros pensam delas, temem o ridículo e podem se sentir ansiosas ou tensas na presença de outros. Aqueles com baixa autoconsciência, por outro lado, raramente se sentem intimidados socialmente e não se preocupam excessivamente com a opinião alheia.'
},
{
facet: 5,
title: 'Impulsividade',
text: `Pessoas impulsivas são incapazes de controlar desejos ou impulsos.
Sentem dificuldade em resistir a vontades. Eles tendem a sanar seus prazeres e
buscam recompensas instantâneas ao invês de longo-prazo. Já pessoas pouco impulsivas
buscam recompensas instantâneas ao invés de longo-prazo. Já pessoas pouco impulsivas
não experimentam necessidades exageradas ou desejos que são impossíveis de resistir,
por esse motivo costumam ser mais moderados. `
},
Expand Down
4 changes: 2 additions & 2 deletions packages/results/src/data/pt-br/openness_to_experience.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ de maneira individualista. A abertura à Experiência está ligada ao intelecto,
pessoas consideradas intelectuais. Outra característica dessa categoria é a facilidade
para assimilação de símbolos e ao abstrato. Habilidades intelectuais (pensamento matemático,
lógico ou geométrico, uso artístico e metafórico da linguagem, performance musical e da
arte visual). Pessoas com notas baixas para "Abertura para Experiência" tendem a se
arte visual). Pessoas com notas baixas em "Abertura à Experiência" tendem a se
interessar pelo comum. Eles preferem o simples, direto e óbvio, são conservadores e
resistentes à mudança. Pessoas nessa categoria, abertas à experiências, são normalmente
consideradas mais maduras, que se adaptam com mais facilidade. No entanto, estilos de
Expand Down Expand Up @@ -59,7 +59,7 @@ tem pouca ou nenhuma sensibilidade estética e interesse pela arte.`
facet: 3,
title: 'Emotividade',
text: `Receptivos e conscientes de seus próprios sentimentos e emoções.
Sentem emoções fortes e tendem a expressá-las abertamente. As pessaos pouco emotivas
Sentem emoções fortes e tendem a expressá-las abertamente. As pessoas pouco emotivas
tendem a não expressar suas emoções abertamente.`
},
{
Expand Down
2 changes: 1 addition & 1 deletion web/src/app/[locale]/compare/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ export default function ComparePage({
<br />
<br />
<span className='mt-2'>{t('description1')}</span>
<Suspense fallback='loading...'>
<Suspense fallback={t('loadingText')}>
<ComparePeople
addPersonText={t('addPerson')}
comparePeopleText={t('comparePeople')}
Expand Down
5 changes: 3 additions & 2 deletions web/src/app/[locale]/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ export async function generateMetadata({
}): Promise<Metadata> {
const t = await getTranslations({ locale, namespace: 'frontpage' });
const s = await getTranslations({ locale, namespace: 'seo' });
const tMeta = await getTranslations({ locale, namespace: 'metadata' });
const alternatesLang = locales.reduce((a, v) => ({ ...a, [v]: `/${v}` }), {});
return {
title: {
Expand All @@ -52,7 +53,7 @@ export async function generateMetadata({
description: t('seo.description'),
images: {
url: `${basePath}/og-image.png`,
alt: 'People comparing personality tests'
alt: tMeta('ogImageAlt')
}
},
twitter: {
Expand All @@ -63,7 +64,7 @@ export async function generateMetadata({
creator: siteConfig.creator,
images: {
url: `${basePath}/og-image.png`,
alt: 'People comparing personality tests'
alt: tMeta('twitterImageAlt')
}
}
};
Expand Down
16 changes: 12 additions & 4 deletions web/src/app/[locale]/result/[id]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -36,19 +36,27 @@ export default async function ResultPage({
searchParams
}: ResultPageParams) {
let report;
const tErrors = await getTranslations({
locale: params.locale,
namespace: 'resultPage'
});

try {
report = await getTestResult(params.id.substring(0, 24), searchParams.lang);
} catch (error) {
throw new Error('Could not retrieve report');
// throw new Error('Could not retrieve report');
// Instead of throwing, we'll let the !report block handle it
// This allows us to show a translated error message
}

if (!report)
return (
<Alert title='Could not retrive report'>
<Alert title={tErrors('errorAlertTitle')}>
<>
<p>We could not retrive the following id {params.id}.</p>
<p>Please check that it is correct or contact us at {supportEmail}</p>
<p>{tErrors('errorAlertIdText', { id: params.id })}</p>
<p>
{tErrors('errorAlertContactText', { email: supportEmail })}
</p>
</>
</Alert>
);
Expand Down
25 changes: 12 additions & 13 deletions web/src/components/cookie-consent-settings.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import {
} from '@nextui-org/modal';
import { Switch } from '@nextui-org/switch';
import { CookieIcon } from './icons';
import { useTranslations } from 'next-intl';
import { useEffect, useState } from 'react';

interface CookieConsentSettingsProps {
Expand All @@ -18,6 +19,7 @@ interface CookieConsentSettingsProps {
}

export const CookieConsentSettings = (props: CookieConsentSettingsProps) => {
const t = useTranslations('cookieConsent');
const [isAnalyticsSelected, setIsAnalyticsSelected] = useState(true);
const [isMarketingSelected, setIsMarketingSelected] = useState(true);

Expand Down Expand Up @@ -46,7 +48,7 @@ export const CookieConsentSettings = (props: CookieConsentSettingsProps) => {
setIsAnalyticsSelected(false);
}
if (storedMarketingCookieConsent === 'false') {
setIsAnalyticsSelected(false);
setIsMarketingSelected(false);
}
}, []);

Expand All @@ -63,21 +65,19 @@ export const CookieConsentSettings = (props: CookieConsentSettingsProps) => {
<div className='flex items-center'>
<CookieIcon className='mr-2' />
<span className='whitespace-nowrap text-2xl font-semibold leading-none tracking-tight'>
Cookie Preferences
{t('settingsTitle')}
</span>
</div>
<div className='text-sm text-gray-500 font-normal m-4'>
Manage your cookie settings. You can enable or disable different
types of cookies below.
{t('settingsDescription')}
</div>
</ModalHeader>
<ModalBody className='space-y-4 pt-4'>
<div className='flex justify-between items-start space-y-2'>
<div>
<label>Essential Cookies</label>
<label>{t('essentialCookiesLabel')}</label>
<p className='text-dark-gray-500 text-sm'>
These cookies are necessary for the website to function and
cannot be switched off.
{t('essentialCookiesDescription')}
</p>
</div>
<Switch
Expand All @@ -89,10 +89,9 @@ export const CookieConsentSettings = (props: CookieConsentSettingsProps) => {
</div>
<div className='flex justify-between items-start space-y-2'>
<div>
<label>Analytics Cookies</label>
<label>{t('analyticsCookiesLabel')}</label>
<p className='text-dark-gray-500 text-sm'>
These cookies allow us to count visits and traffic sources, so
we can measure and improve the performance of our site.
{t('analyticsCookiesDescription')}
</p>
</div>
<Switch
Expand All @@ -104,9 +103,9 @@ export const CookieConsentSettings = (props: CookieConsentSettingsProps) => {
</div>
<div className='flex justify-between items-start space-y-2'>
<div>
<label>Marketing Cookies</label>
<label>{t('marketingCookiesLabel')}</label>
<p className='text-dark-gray-500 text-sm'>
These cookies help us show you relevant ads.
{t('marketingCookiesDescription')}
</p>
</div>
<Switch
Expand All @@ -124,7 +123,7 @@ export const CookieConsentSettings = (props: CookieConsentSettingsProps) => {
type='submit'
onPress={handleSavePreferences}
>
Save Preferences
{t('savePreferencesButton')}
</Button>
</ModalFooter>
</ModalContent>
Expand Down
15 changes: 9 additions & 6 deletions web/src/components/cookie-consent.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,13 @@ import { Link } from '@nextui-org/link';
import { useEffect, useState } from 'react';
import { SettingsIcon } from './icons';
import { CookieConsentSettings } from './cookie-consent-settings';
import { useTranslations } from 'next-intl';

export default function CookieBanner() {
const [showBanner, setShowBanner] = useState(false);
const [showCookieConsentSettings, setShowCookieConsentSettings] =
useState(false);
const t = useTranslations('cookieConsent');

useEffect(() => {
const storedCookieConsent = localStorage.getItem('cookie_consent');
Expand Down Expand Up @@ -53,12 +55,13 @@ export default function CookieBanner() {
>
<ModalContent>
<ModalHeader className='flex flex-col gap-1'>
Cookie consent
{t('bannerTitle')}
</ModalHeader>
<ModalBody>
<p>We use cookies on our site.</p>
<p>{t('bannerDescription')}</p>
<p>
Read more in our <Link href='/privacy'>privacy policy</Link>.
{t('readMore')}
<Link href='/privacy'>{t('privacyPolicyLinkText')}</Link>.
</p>
</ModalBody>
<ModalFooter className='justify-start'>
Expand All @@ -68,18 +71,18 @@ export default function CookieBanner() {
startContent={<SettingsIcon />}
onPress={handleSettings}
>
Preferences
{t('preferencesButton')}
</Button>
</div>
<Button
color='danger'
variant='light'
onPress={handleDeclineCookies}
>
Decline
{t('declineButton')}
</Button>
<Button color='primary' onPress={handleAllowCookies}>
Accept all
{t('acceptAllButton')}
</Button>
</ModalFooter>
</ModalContent>
Expand Down
Loading