From 6ad4358d70b944957e11275d5d2bb118a1dad0bc Mon Sep 17 00:00:00 2001 From: Amruth Pillai Date: Fri, 10 Nov 2023 09:07:47 +0100 Subject: [PATCH] feat(i18n): implement localization using LinguiJS --- .gitignore | 7 +- .vscode/settings.json | 5 +- README.md | 1 + apps/client/.eslintrc.json | 22 +- .../client/public/scripts/initialize-theme.js | 1 + apps/client/src/components/ai-actions.tsx | 30 +- apps/client/src/components/copyright.tsx | 35 +- apps/client/src/components/icon.tsx | 3 +- apps/client/src/components/logo.tsx | 3 +- apps/client/src/components/user-options.tsx | 7 +- apps/client/src/libs/lingui.ts | 16 + apps/client/src/locales/de-DE.po | 1481 +++++++++++++++++ apps/client/src/locales/en-US.po | 1477 ++++++++++++++++ .../pages/auth/_components/social-auth.tsx | 9 +- .../client/src/pages/auth/backup-otp/page.tsx | 13 +- .../src/pages/auth/forgot-password/page.tsx | 17 +- apps/client/src/pages/auth/layout.tsx | 15 +- apps/client/src/pages/auth/login/page.tsx | 26 +- apps/client/src/pages/auth/register/page.tsx | 54 +- .../src/pages/auth/reset-password/page.tsx | 17 +- .../src/pages/auth/verify-email/page.tsx | 22 +- .../client/src/pages/auth/verify-otp/page.tsx | 13 +- .../src/pages/builder/_components/header.tsx | 3 +- .../src/pages/builder/_components/toolbar.tsx | 21 +- apps/client/src/pages/builder/page.tsx | 5 +- .../builder/sidebars/left/dialogs/awards.tsx | 25 +- .../sidebars/left/dialogs/certifications.tsx | 17 +- .../sidebars/left/dialogs/custom-section.tsx | 17 +- .../sidebars/left/dialogs/education.tsx | 40 +- .../sidebars/left/dialogs/experience.tsx | 28 +- .../sidebars/left/dialogs/interests.tsx | 11 +- .../sidebars/left/dialogs/languages.tsx | 11 +- .../sidebars/left/dialogs/profiles.tsx | 32 +- .../sidebars/left/dialogs/projects.tsx | 23 +- .../sidebars/left/dialogs/publications.tsx | 19 +- .../sidebars/left/dialogs/references.tsx | 15 +- .../builder/sidebars/left/dialogs/skills.tsx | 17 +- .../sidebars/left/dialogs/volunteer.tsx | 23 +- .../src/pages/builder/sidebars/left/index.tsx | 16 +- .../builder/sidebars/left/sections/basics.tsx | 18 +- .../sidebars/left/sections/custom/section.tsx | 14 +- .../left/sections/picture/options.tsx | 27 +- .../left/sections/picture/section.tsx | 3 +- .../left/sections/shared/section-base.tsx | 15 +- .../left/sections/shared/section-dialog.tsx | 27 +- .../sections/shared/section-list-item.tsx | 9 +- .../left/sections/shared/section-options.tsx | 23 +- .../left/sections/shared/url-input.tsx | 5 +- .../pages/builder/sidebars/right/index.tsx | 25 +- .../sidebars/right/sections/export.tsx | 20 +- .../sidebars/right/sections/information.tsx | 81 +- .../sidebars/right/sections/layout.tsx | 15 +- .../builder/sidebars/right/sections/notes.tsx | 9 +- .../builder/sidebars/right/sections/page.tsx | 19 +- .../sidebars/right/sections/sharing.tsx | 16 +- .../sidebars/right/sections/statistics.tsx | 14 +- .../sidebars/right/sections/template.tsx | 3 +- .../builder/sidebars/right/sections/theme.tsx | 9 +- .../sidebars/right/sections/typography.tsx | 25 +- .../pages/dashboard/_components/sidebar.tsx | 31 +- .../dashboard/resumes/_dialogs/import.tsx | 40 +- .../pages/dashboard/resumes/_dialogs/lock.tsx | 16 +- .../dashboard/resumes/_dialogs/resume.tsx | 41 +- .../_layouts/grid/_components/create-card.tsx | 8 +- .../_layouts/grid/_components/import-card.tsx | 8 +- .../_layouts/grid/_components/resume-card.tsx | 15 +- .../_layouts/list/_components/create-item.tsx | 8 +- .../_layouts/list/_components/import-item.tsx | 8 +- .../_layouts/list/_components/resume-item.tsx | 19 +- .../src/pages/dashboard/resumes/page.tsx | 11 +- .../settings/_dialogs/two-factor.tsx | 46 +- .../dashboard/settings/_sections/account.tsx | 24 +- .../dashboard/settings/_sections/danger.tsx | 21 +- .../dashboard/settings/_sections/openai.tsx | 57 +- .../dashboard/settings/_sections/profile.tsx | 63 +- .../dashboard/settings/_sections/security.tsx | 39 +- .../src/pages/dashboard/settings/page.tsx | 7 +- .../src/pages/home/components/footer.tsx | 6 +- apps/client/src/pages/home/page.tsx | 5 +- .../home/sections/hero/call-to-action.tsx | 9 +- .../src/pages/home/sections/hero/index.tsx | 14 +- .../pages/home/sections/logo-cloud/index.tsx | 16 +- .../pages/home/sections/statistics/index.tsx | 46 +- apps/client/src/pages/public/page.tsx | 11 +- apps/client/src/providers/index.tsx | 29 +- apps/client/src/providers/locale.tsx | 27 + .../client/src/services/openai/change-tone.ts | 6 +- apps/client/src/services/openai/client.ts | 3 +- .../client/src/services/openai/fix-grammar.ts | 6 +- .../src/services/openai/improve-writing.ts | 6 +- apps/client/src/services/resume/print.ts | 8 +- apps/client/src/services/resume/update.ts | 3 +- apps/client/src/stores/resume.ts | 3 +- apps/client/vite.config.ts | 10 +- apps/server/src/auth/auth.service.ts | 2 +- .../src/auth/strategy/github.strategy.ts | 2 +- .../src/auth/strategy/google.strategy.ts | 2 +- apps/server/src/user/user.controller.ts | 2 +- crowdin.yml | 11 + libs/dto/src/auth/register.ts | 2 +- libs/dto/src/user/update-user.ts | 2 +- libs/dto/src/user/user.ts | 2 +- lingui.config.ts | 14 + package.json | 14 +- pnpm-lock.yaml | 725 +++++++- .../migration.sql | 2 - .../migration.sql | 3 +- tools/prisma/schema.prisma | 2 +- 108 files changed, 4631 insertions(+), 798 deletions(-) create mode 100644 apps/client/src/libs/lingui.ts create mode 100644 apps/client/src/locales/de-DE.po create mode 100644 apps/client/src/locales/en-US.po create mode 100644 apps/client/src/providers/locale.tsx create mode 100644 crowdin.yml create mode 100644 lingui.config.ts delete mode 100644 tools/prisma/migrations/20231106120428_implement_resume_locking/migration.sql rename tools/prisma/migrations/{20231101154656_initialize_tables => 20231109204356_initialize_tables}/migration.sql (96%) diff --git a/.gitignore b/.gitignore index 89cc9e8ba..143ac5fe9 100644 --- a/.gitignore +++ b/.gitignore @@ -38,9 +38,14 @@ Thumbs.db # Generated Files .nx +.swc stats.html libs/prisma # Environment Variables *.env* -!.env.example \ No newline at end of file +!.env.example + +# Lingui Compiled Messages +apps/client/src/locales/_build/ +apps/client/src/locales/**/*.js \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index 0ab3f19f4..dead23846 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -9,5 +9,8 @@ "https://raw.githubusercontent.com/compose-spec/compose-spec/master/schema/compose-spec.json": [ "tools/compose/*" ] - } + }, + "i18n-ally.localesPaths": [ + "apps/client/src/locales" + ] } diff --git a/README.md b/README.md index 5a1c2bb2d..dd0177777 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,7 @@ ![App Version](https://img.shields.io/github/package-json/version/AmruthPillai/Reactive-Resume/v4?label=version) [![Docker Pulls](https://img.shields.io/docker/pulls/amruthpillai/reactive-resume)](https://hub.docker.com/repository/docker/amruthpillai/reactive-resume) [![GitHub Sponsors](https://img.shields.io/github/sponsors/AmruthPillai)](https://github.com/sponsors/AmruthPillai) +[![Crowdin](https://badges.crowdin.net/reactive-resume/localized.svg)](https://crowdin.com/project/reactive-resume) # Reactive Resume diff --git a/apps/client/.eslintrc.json b/apps/client/.eslintrc.json index d48293bca..1bc3020d5 100644 --- a/apps/client/.eslintrc.json +++ b/apps/client/.eslintrc.json @@ -14,9 +14,29 @@ "config": "tailwind.config.js" } }, + "plugins": ["lingui"], "rules": { // react-hooks - "react-hooks/exhaustive-deps": "off" + "react-hooks/exhaustive-deps": "off", + + // lingui + "lingui/no-unlocalized-strings": 2, + "lingui/t-call-in-function": 2, + "lingui/no-single-variables-to-translate": 2, + "lingui/no-expression-in-message": 2, + "lingui/no-single-tag-to-translate": 2, + "lingui/no-trans-inside-trans": 2, + "lingui/text-restrictions": [ + 2, + { + "rules": [ + { + "patterns": ["''", "\"", "’", "“"], + "message": "This string contains forbidden characters" + } + ] + } + ] } }, { diff --git a/apps/client/public/scripts/initialize-theme.js b/apps/client/public/scripts/initialize-theme.js index 7d7e5d083..237824677 100644 --- a/apps/client/public/scripts/initialize-theme.js +++ b/apps/client/public/scripts/initialize-theme.js @@ -2,6 +2,7 @@ try { if ( localStorage.theme === "dark" || + // eslint-disable-next-line lingui/no-unlocalized-strings window.matchMedia("(prefers-color-scheme: dark)").matches ) { document.documentElement.classList.add("dark"); diff --git a/apps/client/src/components/ai-actions.tsx b/apps/client/src/components/ai-actions.tsx index 583843f3b..39b06c3a4 100644 --- a/apps/client/src/components/ai-actions.tsx +++ b/apps/client/src/components/ai-actions.tsx @@ -1,3 +1,4 @@ +import { t } from "@lingui/macro"; import { CaretDown, ChatTeardropText, @@ -39,15 +40,14 @@ export const AiActions = ({ value, onChange, className }: Props) => { const onClick = async (action: Action, mood?: Mood) => { setLoading(action); - let result = value; - // await new Promise((resolve) => setTimeout(resolve, 2000)); + let result = value; if (action === "improve") result = await improveWriting(value); if (action === "fix") result = await fixGrammar(value); if (action === "tone" && mood) result = await changeTone(value, mood); - onChange("Result" + result); + onChange(result); setLoading(false); }; @@ -67,52 +67,52 @@ export const AiActions = ({ value, onChange, className }: Props) => { className="-rotate-90 bg-background px-2 text-[10px] leading-[10px]" > - AI + {t`AI`} onClick("tone", "casual")}> - + 🙂 - Casual + {t`Casual`} onClick("tone", "professional")}> - + 💼 - Professional + {t`Professional`} onClick("tone", "confident")}> - + 😎 - Confident + {t`Confident`} onClick("tone", "friendly")}> - + 😊 - Friendly + {t`Friendly`} diff --git a/apps/client/src/components/copyright.tsx b/apps/client/src/components/copyright.tsx index 477d87e5f..5fc495aa2 100644 --- a/apps/client/src/components/copyright.tsx +++ b/apps/client/src/components/copyright.tsx @@ -1,3 +1,4 @@ +import { t, Trans } from "@lingui/macro"; import { cn } from "@reactive-resume/utils"; type Props = { @@ -12,23 +13,29 @@ export const Copyright = ({ className }: Props) => ( )} > - Licensed under{" "} - - MIT - + + Licensed under{" "} + + MIT + + - By the community, for the community. + {t`By the community, for the community.`} - A passion project by{" "} - - Amruth Pillai - + + A passion project by{" "} + + Amruth Pillai + + - Reactive Resume v{appVersion} + + {t`Reactive Resume`} {"v" + appVersion} + ); diff --git a/apps/client/src/components/icon.tsx b/apps/client/src/components/icon.tsx index 99df43db8..da4c47568 100644 --- a/apps/client/src/components/icon.tsx +++ b/apps/client/src/components/icon.tsx @@ -1,3 +1,4 @@ +import { t } from "@lingui/macro"; import { useTheme } from "@reactive-resume/hooks"; import { cn } from "@reactive-resume/utils"; @@ -25,7 +26,7 @@ export const Icon = ({ size = 32, className }: Props) => { src={src} width={size} height={size} - alt="Reactive Resume" + alt={t`Reactive Resume`} className={cn("rounded-sm", className)} /> ); diff --git a/apps/client/src/components/logo.tsx b/apps/client/src/components/logo.tsx index 9b799c86c..9db152138 100644 --- a/apps/client/src/components/logo.tsx +++ b/apps/client/src/components/logo.tsx @@ -1,3 +1,4 @@ +import { t } from "@lingui/macro"; import { useTheme } from "@reactive-resume/hooks"; import { cn } from "@reactive-resume/utils"; @@ -25,7 +26,7 @@ export const Logo = ({ size = 32, className }: Props) => { src={src} width={size} height={size} - alt="Reactive Resume" + alt={t`Reactive Resume`} className={cn("rounded-sm", className)} /> ); diff --git a/apps/client/src/components/user-options.tsx b/apps/client/src/components/user-options.tsx index 28451cabf..b06f07d65 100644 --- a/apps/client/src/components/user-options.tsx +++ b/apps/client/src/components/user-options.tsx @@ -1,3 +1,4 @@ +import { t } from "@lingui/macro"; import { DropdownMenu, DropdownMenuContent, @@ -24,12 +25,14 @@ export const UserOptions = ({ children }: Props) => { navigate("/dashboard/settings")}> - Settings + {t`Settings`} + {/* eslint-disable-next-line lingui/no-unlocalized-strings */} ⇧S logout()}> - Logout + {t`Logout`} + {/* eslint-disable-next-line lingui/no-unlocalized-strings */} ⇧Q diff --git a/apps/client/src/libs/lingui.ts b/apps/client/src/libs/lingui.ts new file mode 100644 index 000000000..cf680e105 --- /dev/null +++ b/apps/client/src/libs/lingui.ts @@ -0,0 +1,16 @@ +import { i18n } from "@lingui/core"; +import { t } from "@lingui/macro"; + +export const getLocales = () => ({ + "en-US": t`English`, + "de-DE": t`German`, +}); + +export const defaultLocale = "en-US"; + +export async function dynamicActivate(locale: string) { + const { messages } = await import(`../locales/${locale}.po`); + + i18n.load(locale, messages); + i18n.activate(locale); +} diff --git a/apps/client/src/locales/de-DE.po b/apps/client/src/locales/de-DE.po new file mode 100644 index 000000000..5ff61abef --- /dev/null +++ b/apps/client/src/locales/de-DE.po @@ -0,0 +1,1481 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2023-11-10 08:58+0100\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: de-DE\n" + +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:182 +msgid "You have enabled two-factor authentication successfully." +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-options.tsx:113 +msgid "{value, plural, one {Column} other {Columns}}" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/information.tsx:20 +msgid "<0>I built Reactive Resume mostly by myself during my spare time, with a lot of help from other great open-source contributors.<1>If you like the app and want to support keeping it free forever, please donate whatever you can afford to give.<2>Your donations could be tax-deductible, depending on your location." +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/information.tsx:52 +msgid "<0>I'm sure the app is not perfect, but I'd like for it to be.<1>If you faced any issues while creating your resume, or have an idea that would help you and other users in creating your resume more easily, drop an issue on the repository or send me an email about it." +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_sections/openai.tsx:126 +msgid "<0>Note: By utilizing the OpenAI API, you acknowledge and accept the <1>terms of use and <2>privacy policy outlined by OpenAI. Please note that Reactive Resume bears no responsibility for any improper or unauthorized utilization of the service, and any resulting repercussions or liabilities solely rest on the user." +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/information.tsx:91 +msgid "<0>The community has spent a lot of time writing the documentation for Reactive Resume, and I'm sure it will help you get started with the app.<1>There are also a lot of examples to help you get started, and features that you might not know about which could help you build your perfect resume." +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_sections/security.tsx:146 +msgid "<0>Two-factor authentication is currently disabled. You can enable it by adding an authenticator app to your account." +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_sections/security.tsx:139 +msgid "<0>Two-factor authentication is enabled. You will be asked to enter a code every time you sign in." +msgstr "" + +#: apps/client/src/pages/home/page.tsx:12 +msgid "A free and open-source resume builder" +msgstr "" + +#: apps/client/src/pages/home/components/footer.tsx:19 +#: apps/client/src/pages/home/sections/hero/index.tsx:40 +msgid "A free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume." +msgstr "" + +#: apps/client/src/pages/home/sections/hero/index.tsx:35 +msgid "A free and open-source resume builder." +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/sharing.tsx:29 +msgid "A link has been copied to your clipboard." +msgstr "" + +#: apps/client/src/components/copyright.tsx:29 +msgid "A passion project by <0>Amruth Pillai" +msgstr "" + +#: apps/client/src/pages/auth/forgot-password/page.tsx:62 +msgid "A password reset link should have been sent to your inbox, if an account existed with the email you provided." +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/page.tsx:43 +msgid "A4" +msgstr "" + +#. Helper text to let the user know what filetypes are accepted. {accept} can be .pdf or .json. +#: apps/client/src/pages/dashboard/resumes/_dialogs/import.tsx:272 +msgid "Accepts only {accept} files" +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_sections/account.tsx:104 +msgid "Account" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/custom/section.tsx:131 +msgid "Add a custom field" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-options.tsx:67 +msgid "Add a new item" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/index.tsx:80 +#: apps/client/src/pages/builder/sidebars/left/index.tsx:197 +msgid "Add a new section" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-base.tsx:108 +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-base.tsx:147 +msgctxt "For example, add a new work experience, or add a new profile." +msgid "Add New Item" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/layout.tsx:267 +msgid "Add New Page" +msgstr "" + +#: apps/client/src/components/ai-actions.tsx:70 +msgid "AI" +msgstr "" + +#: apps/client/src/pages/auth/register/page.tsx:72 +msgid "Already have an account?" +msgstr "" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/import.tsx:190 +msgid "An error occurred while importing your resume." +msgstr "" + +#: apps/client/src/pages/auth/register/page.tsx:60 +msgid "An error occurred while trying to create a new account." +msgstr "" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/resume.tsx:120 +msgid "An error occurred while trying to create your resume." +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:108 +msgid "An error occurred while trying to enable two-factor authentication." +msgstr "" + +#: apps/client/src/services/resume/print.ts:36 +msgid "An error occurred while trying to print your resume." +msgstr "" + +#: apps/client/src/pages/auth/reset-password/page.tsx:57 +msgid "An error occurred while trying to reset your password." +msgstr "" + +#: apps/client/src/pages/auth/forgot-password/page.tsx:48 +msgid "An error occurred while trying to send your password recovery email." +msgstr "" + +#: apps/client/src/pages/auth/backup-otp/page.tsx:53 +#: apps/client/src/pages/auth/login/page.tsx:52 +#: apps/client/src/pages/auth/verify-otp/page.tsx:53 +msgid "An error occurred while trying to sign in to your account." +msgstr "" + +#: apps/client/src/pages/auth/verify-email/page.tsx:40 +msgid "An error occurred while trying to verify your email address." +msgstr "" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/import.tsx:145 +msgid "An error occurred while validating the file." +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/sharing.tsx:57 +msgid "Anyone with the link can view and download the resume." +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/sharing.tsx:30 +msgid "Anyone with this link can view and download the resume. Share it on your profile or with recruiters." +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_sections/openai.tsx:83 +msgid "API Key" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-dialog.tsx:115 +msgid "Are you sure you want to delete this item?" +msgstr "" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/resume.tsx:163 +msgid "Are you sure you want to delete your resume?" +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:136 +msgid "Are you sure you want to disable two-factor authentication?" +msgstr "" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/lock.tsx:38 +msgid "Are you sure you want to lock this resume?" +msgstr "" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/lock.tsx:39 +msgid "Are you sure you want to unlock this resume?" +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_sections/danger.tsx:94 +msgid "Are you sure?" +msgstr "" + +#. For example, Computer Science or Business Administration +#: apps/client/src/pages/builder/sidebars/left/dialogs/education.tsx:73 +msgid "Area of Study" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/picture/options.tsx:89 +msgid "Aspect Ratio" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/awards.tsx:53 +msgid "Awarder" +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:249 +msgid "Back" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/theme.tsx:73 +msgid "Background Color" +msgstr "" + +#: apps/client/src/pages/auth/backup-otp/page.tsx:81 +msgid "Backup Code" +msgstr "" + +#: apps/client/src/pages/auth/backup-otp/page.tsx:86 +msgid "Backup Codes may contain only lowercase letters or numbers, and must be exactly 10 characters." +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/index.tsx:57 +msgctxt "The Basics section of a Resume consists of User's Picture, Full Name, Location etc." +msgid "Basics" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/basics.tsx:21 +msgid "Basics" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/picture/options.tsx:202 +msgid "Border" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/picture/options.tsx:134 +msgid "Border Radius" +msgstr "" + +#: apps/client/src/pages/public/page.tsx:76 +msgid "Built with" +msgstr "" + +#: apps/client/src/components/copyright.tsx:27 +msgid "By the community, for the community." +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-dialog.tsx:122 +#: apps/client/src/pages/dashboard/resumes/_dialogs/lock.tsx:49 +#: apps/client/src/pages/dashboard/resumes/_dialogs/resume.tsx:170 +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:148 +msgid "Cancel" +msgstr "" + +#: apps/client/src/components/ai-actions.tsx:94 +#: apps/client/src/components/ai-actions.tsx:97 +msgid "Casual" +msgstr "" + +#: apps/client/src/pages/builder/_components/toolbar.tsx:92 +msgid "Center Artboard" +msgstr "" + +#: apps/client/src/pages/auth/reset-password/page.tsx:106 +#: apps/client/src/pages/dashboard/settings/_sections/security.tsx:121 +msgid "Change Password" +msgstr "" + +#: apps/client/src/components/ai-actions.tsx:88 +msgid "Change Tone" +msgstr "" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/resume.tsx:200 +msgid "Changed your mind about the name? Give it a new one." +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_sections/account.tsx:69 +msgid "Check your email for the confirmation link to update your email address." +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/picture/options.tsx:155 +msgid "Circle" +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:255 +msgid "Close" +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:212 +msgid "Code" +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:51 +msgid "Code must be exactly 6 digits long." +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-options.tsx:107 +msgid "Columns" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/experience.tsx:39 +msgid "Company" +msgstr "" + +#: apps/client/src/components/ai-actions.tsx:106 +#: apps/client/src/components/ai-actions.tsx:109 +msgid "Confident" +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_sections/security.tsx:98 +msgid "Confirm New Password" +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:245 +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:252 +msgid "Continue" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-list-item.tsx:93 +msgid "Copy" +msgstr "" + +#: apps/client/src/pages/builder/_components/toolbar.tsx:129 +msgid "Copy Link to Resume" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/sharing.tsx:78 +msgid "Copy to Clipboard" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-dialog.tsx:158 +#: apps/client/src/pages/dashboard/resumes/_dialogs/resume.tsx:254 +msgid "Create" +msgstr "" + +#: apps/client/src/pages/auth/register/page.tsx:70 +msgid "Create a new account" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-dialog.tsx:146 +msgid "Create a new item" +msgstr "" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/resume.tsx:192 +#: apps/client/src/pages/dashboard/resumes/_layouts/grid/_components/create-card.tsx:24 +#: apps/client/src/pages/dashboard/resumes/_layouts/list/_components/create-item.tsx:19 +msgid "Create a new resume" +msgstr "" + +#: apps/client/src/pages/auth/login/page.tsx:67 +msgctxt "This is a link to create a new account" +msgid "Create one now" +msgstr "" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/resume.tsx:267 +msgid "Create Sample Resume" +msgstr "" + +#: apps/client/src/stores/resume.ts:45 +msgid "Custom Section" +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_sections/danger.tsx:62 +msgid "Danger Zone" +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_sections/profile.tsx:80 +msgid "Dark" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/awards.tsx:67 +#: apps/client/src/pages/builder/sidebars/left/dialogs/certifications.tsx:67 +#: apps/client/src/pages/builder/sidebars/left/dialogs/custom-section.tsx:81 +#: apps/client/src/pages/builder/sidebars/left/dialogs/education.tsx:110 +#: apps/client/src/pages/builder/sidebars/left/dialogs/experience.tsx:72 +#: apps/client/src/pages/builder/sidebars/left/dialogs/projects.tsx:72 +#: apps/client/src/pages/builder/sidebars/left/dialogs/publications.tsx:67 +#: apps/client/src/pages/builder/sidebars/left/dialogs/volunteer.tsx:67 +msgid "Date" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-dialog.tsx:124 +#: apps/client/src/pages/dashboard/resumes/_dialogs/resume.tsx:172 +#: apps/client/src/pages/dashboard/resumes/_layouts/grid/_components/resume-card.tsx:148 +#: apps/client/src/pages/dashboard/resumes/_layouts/list/_components/resume-item.tsx:106 +#: apps/client/src/pages/dashboard/resumes/_layouts/list/_components/resume-item.tsx:159 +msgid "Delete" +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_sections/danger.tsx:79 +#: apps/client/src/pages/dashboard/settings/_sections/danger.tsx:94 +msgid "Delete Account" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/custom-section.tsx:67 +#: apps/client/src/pages/builder/sidebars/left/dialogs/projects.tsx:58 +#: apps/client/src/pages/builder/sidebars/left/dialogs/references.tsx:53 +#: apps/client/src/pages/builder/sidebars/left/dialogs/skills.tsx:55 +msgid "Description" +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:150 +msgid "Disable" +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_sections/security.tsx:155 +msgid "Disable 2FA" +msgstr "" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/import.tsx:304 +#: apps/client/src/pages/dashboard/settings/_sections/account.tsx:222 +#: apps/client/src/pages/dashboard/settings/_sections/profile.tsx:134 +#: apps/client/src/pages/dashboard/settings/_sections/security.tsx:124 +msgid "Discard" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/information.tsx:111 +msgid "Documentation" +msgstr "" + +#: apps/client/src/pages/auth/login/page.tsx:64 +msgid "Don't have an account?" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/information.tsx:89 +msgid "Don't know where to begin? Hit the docs!" +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_sections/profile.tsx:107 +msgid "Don't see your locale? <0>Help translate the app." +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/information.tsx:41 +msgid "Donate to Reactive Resume" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/export.tsx:56 +msgid "Download a JSON snapshot of your resume. This file can be used to import your resume in the future, or can even be shared with others to collaborate." +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/export.tsx:74 +msgid "Download a PDF of your resume. This file can be used to print your resume, send it to recruiters, or upload on job portals." +msgstr "" + +#: apps/client/src/pages/builder/_components/toolbar.tsx:136 +msgid "Download PDF" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/statistics.tsx:58 +msgid "Downloads" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-dialog.tsx:160 +#: apps/client/src/pages/dashboard/resumes/_dialogs/resume.tsx:256 +#: apps/client/src/pages/dashboard/resumes/_layouts/grid/_components/resume-card.tsx:132 +#: apps/client/src/pages/dashboard/resumes/_layouts/list/_components/resume-item.tsx:95 +#: apps/client/src/pages/dashboard/resumes/_layouts/list/_components/resume-item.tsx:154 +msgid "Duplicate" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-dialog.tsx:148 +msgid "Duplicate an existing item" +msgstr "" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/resume.tsx:194 +msgid "Duplicate an existing resume" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-list-item.tsx:89 +msgid "Edit" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/picture/options.tsx:180 +msgid "Effects" +msgstr "" + +#: apps/client/src/pages/auth/forgot-password/page.tsx:87 +#: apps/client/src/pages/auth/login/page.tsx:86 +#: apps/client/src/pages/auth/register/page.tsx:135 +#: apps/client/src/pages/builder/sidebars/left/sections/basics.tsx:50 +#: apps/client/src/pages/dashboard/settings/_sections/account.tsx:183 +msgid "Email" +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_sections/security.tsx:159 +msgid "Enable 2FA" +msgstr "" + +#: apps/client/src/libs/lingui.ts:5 +msgid "English" +msgstr "" + +#: apps/client/src/pages/auth/reset-password/page.tsx:74 +msgid "Enter a new password below, and make sure it's secure." +msgstr "" + +#: apps/client/src/pages/auth/backup-otp/page.tsx:65 +msgid "Enter one of the 10 backup codes you saved when you enabled two-factor authentication." +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:181 +msgid "Enter the 6-digit code from your authenticator app to verify that 2FA has been setup correctly." +msgstr "" + +#: apps/client/src/pages/auth/verify-otp/page.tsx:66 +msgid "Enter the one-time password provided by your authenticator app below." +msgstr "" + +#: apps/client/src/pages/auth/forgot-password/page.tsx:75 +msgid "Enter your email address and we will send you a link to reset your password if the account exists." +msgstr "" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/import.tsx:285 +msgid "Errors" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/index.tsx:79 +#: apps/client/src/pages/builder/sidebars/right/sections/export.tsx:40 +msgid "Export" +msgstr "" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/import.tsx:257 +msgid "File" +msgstr "" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/import.tsx:223 +msgid "Filetype" +msgstr "" + +#: apps/client/src/pages/home/sections/hero/index.tsx:33 +msgid "Finally," +msgstr "" + +#: apps/client/src/components/ai-actions.tsx:81 +msgid "Fix Spelling & Grammar" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/languages.tsx:51 +msgid "Fluency" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/languages.tsx:65 +msgid "Fluency (CEFR)" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:95 +msgid "Font Family" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:136 +msgid "Font Size" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:110 +msgid "Font Subset" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:122 +msgid "Font Variants" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/notes.tsx:30 +msgid "For example, information regarding which companies you sent this resume to or the links to the job descriptions can be noted down here." +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_sections/openai.tsx:107 +msgid "Forget" +msgstr "" + +#: apps/client/src/pages/auth/login/page.tsx:122 +msgid "Forgot Password?" +msgstr "" + +#: apps/client/src/pages/auth/forgot-password/page.tsx:73 +msgid "Forgot your password?" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/page.tsx:32 +#: apps/client/src/pages/builder/sidebars/right/sections/page.tsx:40 +msgid "Format" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/information.tsx:50 +msgid "Found a bug, or have an idea for a new feature?" +msgstr "" + +#: apps/client/src/components/ai-actions.tsx:112 +#: apps/client/src/components/ai-actions.tsx:115 +msgid "Friendly" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/basics.tsx:31 +msgid "Full Name" +msgstr "" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/resume.tsx:216 +msgid "Generate a random title for your resume" +msgstr "" + +#: apps/client/src/libs/lingui.ts:6 +msgid "German" +msgstr "" + +#: apps/client/src/pages/home/sections/hero/call-to-action.tsx:33 +msgid "Get Started" +msgstr "" + +#: apps/client/src/pages/auth/_components/social-auth.tsx:10 +msgid "GitHub" +msgstr "" + +#: apps/client/src/pages/home/sections/statistics/index.tsx:12 +msgid "GitHub Stars" +msgstr "" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/resume.tsx:201 +msgid "Give your old resume a new name." +msgstr "" + +#: apps/client/src/pages/auth/verify-email/page.tsx:74 +#: apps/client/src/pages/home/sections/hero/call-to-action.tsx:18 +msgid "Go to Dashboard" +msgstr "" + +#: apps/client/src/pages/auth/_components/social-auth.tsx:17 +msgid "Google" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/picture/options.tsx:213 +msgid "Grayscale" +msgstr "" + +#: apps/client/src/pages/dashboard/resumes/page.tsx:37 +msgid "Grid" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/basics.tsx:41 +msgid "Headline" +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_sections/account.tsx:106 +msgid "Here, you can update your account information such as your profile picture, name and username." +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_sections/profile.tsx:60 +msgid "Here, you can update your profile to customize and personalize your experience." +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/picture/options.tsx:191 +msgid "Hidden" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-options.tsx:77 +msgid "Hide" +msgstr "" + +#: apps/client/src/pages/auth/login/page.tsx:106 +#: apps/client/src/pages/auth/register/page.tsx:161 +#: apps/client/src/pages/auth/reset-password/page.tsx:95 +msgid "Hold <0>Ctrl to display your password temporarily." +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/picture/options.tsx:104 +msgid "Horizontal" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/profiles.tsx:82 +msgid "Icon" +msgstr "" + +#: apps/client/src/pages/home/sections/logo-cloud/index.tsx:47 +msgid "If this app has helped you with your job hunt, let me know by reaching out through <0>this contact form." +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:139 +msgid "If you disable two-factor authentication, you will no longer be required to enter a verification code when logging in." +msgstr "" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/import.tsx:311 +msgid "Import" +msgstr "" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/import.tsx:210 +#: apps/client/src/pages/dashboard/resumes/_layouts/grid/_components/import-card.tsx:24 +#: apps/client/src/pages/dashboard/resumes/_layouts/list/_components/import-item.tsx:18 +msgid "Import an existing resume" +msgstr "" + +#: apps/client/src/components/ai-actions.tsx:76 +msgid "Improve Writing" +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:199 +msgid "In case you are unable to scan this QR Code, you can also copy-paste this link into your authenticator app." +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_sections/security.tsx:70 +msgid "In this section, you can change your password and enable/disable two-factor authentication." +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_sections/danger.tsx:64 +msgid "In this section, you can delete your account and all the data associated to your user, but please keep in mind that <0>this action is irreversible." +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/index.tsx:83 +#: apps/client/src/pages/builder/sidebars/right/sections/information.tsx:123 +msgid "Information" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/education.tsx:39 +msgid "Institution" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/certifications.tsx:53 +msgid "Issuer" +msgstr "" + +#: apps/client/src/pages/auth/register/page.tsx:96 +msgctxt "Localized version of a placeholder name. For example, Max Mustermann in German or Jan Kowalski in Polish." +msgid "John Doe" +msgstr "" + +#: apps/client/src/pages/auth/register/page.tsx:117 +msgctxt "Localized version of a placeholder username. For example, max.mustermann in German or jan.kowalski in Polish." +msgid "john.doe" +msgstr "" + +#: apps/client/src/pages/auth/register/page.tsx:138 +msgctxt "Localized version of a placeholder email. For example, max.mustermann@example.de in German or jan.kowalski@example.pl in Polish." +msgid "john.doe@example.com" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/export.tsx:54 +msgid "JSON" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/custom-section.tsx:145 +#: apps/client/src/pages/builder/sidebars/left/dialogs/interests.tsx:55 +#: apps/client/src/pages/builder/sidebars/left/dialogs/projects.tsx:122 +#: apps/client/src/pages/builder/sidebars/left/dialogs/skills.tsx:95 +msgid "Keywords" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/url-input.tsx:40 +msgid "Label" +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_sections/profile.tsx:93 +msgid "Language" +msgstr "" + +#: apps/client/src/pages/dashboard/resumes/_layouts/grid/_components/resume-card.tsx:116 +#: apps/client/src/pages/dashboard/resumes/_layouts/list/_components/resume-item.tsx:121 +msgid "Last updated {lastUpdated}" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/index.tsx:65 +#: apps/client/src/pages/builder/sidebars/right/sections/layout.tsx:207 +msgid "Layout" +msgstr "" + +#: apps/client/src/pages/home/sections/hero/call-to-action.tsx:39 +msgid "Learn more" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/page.tsx:44 +msgid "Letter" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/skills.tsx:69 +msgid "Level" +msgstr "" + +#: apps/client/src/components/copyright.tsx:16 +msgid "Licensed under <0>MIT" +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_sections/profile.tsx:79 +msgid "Light" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:153 +msgid "Line Height" +msgstr "" + +#: apps/client/src/pages/dashboard/resumes/_layouts/grid/_components/import-card.tsx:29 +#: apps/client/src/pages/dashboard/resumes/_layouts/list/_components/import-item.tsx:23 +msgid "LinkedIn, JSON Resume, etc." +msgstr "" + +#: apps/client/src/pages/dashboard/resumes/page.tsx:41 +msgid "List" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/custom-section.tsx:95 +#: apps/client/src/pages/builder/sidebars/left/dialogs/experience.tsx:86 +#: apps/client/src/pages/builder/sidebars/left/dialogs/volunteer.tsx:81 +#: apps/client/src/pages/builder/sidebars/left/sections/basics.tsx:83 +msgid "Location" +msgstr "" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/lock.tsx:51 +#: apps/client/src/pages/dashboard/resumes/_layouts/grid/_components/resume-card.tsx:142 +msgid "Lock" +msgstr "" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/lock.tsx:43 +msgid "Locking a resume will prevent any further changes to it. This is useful when you have already shared your resume with someone and you don't want to accidentally make any changes to it." +msgstr "" + +#: apps/client/src/components/user-options.tsx:34 +#: apps/client/src/pages/home/sections/hero/call-to-action.tsx:23 +msgid "Logout" +msgstr "" + +#: apps/client/src/pages/auth/verify-otp/page.tsx:70 +msgid "Lost your device?" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/layout.tsx:253 +msgid "Main" +msgstr "" + +#. The month and year should be uniform across all languages. +#: apps/client/src/pages/builder/sidebars/left/dialogs/awards.tsx:71 +#: apps/client/src/pages/builder/sidebars/left/dialogs/certifications.tsx:69 +#: apps/client/src/pages/builder/sidebars/left/dialogs/publications.tsx:69 +msgid "March 2023" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/education.tsx:112 +#: apps/client/src/pages/builder/sidebars/left/dialogs/experience.tsx:74 +#: apps/client/src/pages/builder/sidebars/left/dialogs/projects.tsx:74 +#: apps/client/src/pages/builder/sidebars/left/dialogs/volunteer.tsx:69 +msgid "March 2023 - Present" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/page.tsx:50 +msgid "Margin" +msgstr "" + +#: apps/client/src/pages/auth/register/page.tsx:93 +#: apps/client/src/pages/builder/sidebars/left/dialogs/custom-section.tsx:53 +#: apps/client/src/pages/builder/sidebars/left/dialogs/interests.tsx:40 +#: apps/client/src/pages/builder/sidebars/left/dialogs/languages.tsx:37 +#: apps/client/src/pages/builder/sidebars/left/dialogs/projects.tsx:44 +#: apps/client/src/pages/builder/sidebars/left/dialogs/publications.tsx:39 +#: apps/client/src/pages/builder/sidebars/left/dialogs/references.tsx:39 +#: apps/client/src/pages/builder/sidebars/left/dialogs/skills.tsx:41 +#: apps/client/src/pages/builder/sidebars/left/sections/custom/section.tsx:50 +#: apps/client/src/pages/dashboard/settings/_sections/account.tsx:152 +msgid "Name" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/certifications.tsx:39 +msgctxt "Name of the Certification" +msgid "Name" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/profiles.tsx:39 +msgid "Network" +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_sections/security.tsx:85 +msgid "New Password" +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:144 +msgid "Note: This will make your account less secure." +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/index.tsx:80 +#: apps/client/src/pages/builder/sidebars/right/sections/notes.tsx:17 +msgid "Notes" +msgstr "" + +#: apps/client/src/pages/auth/verify-otp/page.tsx:88 +msgid "One-Time Password" +msgstr "" + +#: apps/client/src/pages/dashboard/resumes/_layouts/grid/_components/resume-card.tsx:124 +#: apps/client/src/pages/dashboard/resumes/_layouts/list/_components/resume-item.tsx:77 +#: apps/client/src/pages/dashboard/resumes/_layouts/list/_components/resume-item.tsx:146 +msgid "Open" +msgstr "" + +#: apps/client/src/pages/auth/layout.tsx:48 +msgid "Open books on a table" +msgstr "" + +#: apps/client/src/services/openai/change-tone.ts:30 +#: apps/client/src/services/openai/fix-grammar.ts:28 +#: apps/client/src/services/openai/improve-writing.ts:28 +msgid "OpenAI did not return any choices for your text." +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_sections/openai.tsx:52 +msgid "OpenAI Integration" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/page.tsx:67 +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:170 +msgid "Options" +msgstr "" + +#: apps/client/src/pages/auth/layout.tsx:30 +msgctxt "The user can either login with email/password, or continue with GitHub or Google." +msgid "or continue with" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/volunteer.tsx:39 +msgid "Organization" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/index.tsx:72 +#: apps/client/src/pages/builder/sidebars/right/sections/page.tsx:26 +msgid "Page" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/layout.tsx:237 +msgid "Page {0}" +msgstr "" + +#: apps/client/src/pages/auth/login/page.tsx:101 +#: apps/client/src/pages/auth/register/page.tsx:156 +#: apps/client/src/pages/auth/reset-password/page.tsx:90 +#: apps/client/src/pages/dashboard/settings/_sections/security.tsx:76 +msgid "Password" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/export.tsx:72 +msgid "PDF" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/basics.tsx:73 +msgid "Phone" +msgstr "" + +#: apps/client/src/pages/auth/layout.tsx:59 +msgid "Photograph by Patrick Tomasso" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/picture/section.tsx:52 +#: apps/client/src/pages/dashboard/settings/_sections/account.tsx:120 +msgid "Picture" +msgstr "" + +#: apps/client/src/pages/auth/verify-email/page.tsx:66 +msgid "Please note that this step is completely optional." +msgstr "" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/import.tsx:227 +msgid "Please select a file type" +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:239 +msgid "Please store your backup codes in a secure location. You can use one of these one-time use codes to login in case you lose access to your authenticator app." +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/picture/options.tsx:110 +msgid "Portrait" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/experience.tsx:54 +msgctxt "Position held at a company, for example, Software Engineer" +msgid "Position" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/volunteer.tsx:53 +msgid "Position" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/profiles.tsx:98 +msgid "Powered by <0>Simple Icons" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/theme.tsx:43 +msgid "Primary Color" +msgstr "" + +#: apps/client/src/components/ai-actions.tsx:100 +#: apps/client/src/components/ai-actions.tsx:103 +msgid "Professional" +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_sections/profile.tsx:58 +msgid "Profile" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/sharing.tsx:55 +msgid "Public" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/publications.tsx:53 +msgid "Publisher" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/information.tsx:70 +msgid "Raise an issue" +msgstr "" + +#: apps/client/src/components/copyright.tsx:38 +#: apps/client/src/components/icon.tsx:29 +#: apps/client/src/components/logo.tsx:29 +#: apps/client/src/pages/builder/page.tsx:39 +#: apps/client/src/pages/dashboard/resumes/page.tsx:20 +#: apps/client/src/pages/dashboard/settings/page.tsx:16 +#: apps/client/src/pages/home/components/footer.tsx:16 +#: apps/client/src/pages/home/page.tsx:12 +#: apps/client/src/pages/public/page.tsx:57 +#: apps/client/src/pages/public/page.tsx:78 +msgid "Reactive Resume" +msgstr "" + +#: apps/client/src/pages/home/sections/hero/index.tsx:56 +msgid "Reactive Resume - Screenshot - Builder Screen" +msgstr "" + +#: apps/client/src/pages/home/sections/logo-cloud/index.tsx:39 +msgid "Reactive Resume has helped people land jobs at these great companies:" +msgstr "" + +#: apps/client/src/pages/builder/_components/toolbar.tsx:66 +msgid "Redo" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-list-item.tsx:97 +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-options.tsx:128 +msgid "Remove" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-options.tsx:82 +#: apps/client/src/pages/dashboard/resumes/_layouts/grid/_components/resume-card.tsx:128 +#: apps/client/src/pages/dashboard/resumes/_layouts/list/_components/resume-item.tsx:86 +#: apps/client/src/pages/dashboard/resumes/_layouts/list/_components/resume-item.tsx:150 +msgid "Rename" +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_sections/account.tsx:201 +msgid "Resend email confirmation link" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-options.tsx:123 +msgid "Reset" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/layout.tsx:210 +msgid "Reset Layout" +msgstr "" + +#: apps/client/src/pages/auth/reset-password/page.tsx:72 +msgid "Reset your password" +msgstr "" + +#: apps/client/src/pages/builder/_components/toolbar.tsx:86 +msgid "Reset Zoom" +msgstr "" + +#: apps/client/src/pages/dashboard/_components/sidebar.tsx:86 +#: apps/client/src/pages/dashboard/resumes/page.tsx:20 +#: apps/client/src/pages/dashboard/resumes/page.tsx:31 +msgid "Resumes" +msgstr "" + +#: apps/client/src/pages/home/sections/statistics/index.tsx:14 +msgid "Resumes Generated" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/picture/options.tsx:149 +msgid "Rounded" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-dialog.tsx:159 +#: apps/client/src/pages/dashboard/resumes/_dialogs/resume.tsx:255 +#: apps/client/src/pages/dashboard/settings/_sections/account.tsx:219 +#: apps/client/src/pages/dashboard/settings/_sections/profile.tsx:131 +msgid "Save Changes" +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:179 +msgid "Scan the QR code below with your authenticator app to setup 2FA on your account." +msgstr "" + +#. Score or honors for the degree, for example, CGPA or magna cum laude +#: apps/client/src/pages/builder/sidebars/left/dialogs/education.tsx:92 +msgid "Score" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:99 +msgid "Search for a font family" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:114 +msgid "Search for a font subset" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:127 +msgid "Search for a font variant" +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_sections/security.tsx:68 +msgid "Security" +msgstr "" + +#: apps/client/src/pages/auth/forgot-password/page.tsx:97 +msgid "Send Email" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/information.tsx:80 +msgid "Send me a message" +msgstr "" + +#: apps/client/src/components/user-options.tsx:28 +#: apps/client/src/pages/dashboard/_components/sidebar.tsx:92 +#: apps/client/src/pages/dashboard/settings/page.tsx:16 +#: apps/client/src/pages/dashboard/settings/page.tsx:26 +msgid "Settings" +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:170 +msgid "Setup two-factor authentication on your account" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/index.tsx:73 +#: apps/client/src/pages/builder/sidebars/right/sections/sharing.tsx:39 +msgid "Sharing" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-options.tsx:77 +msgid "Show" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/page.tsx:78 +msgid "Show Break Line" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/page.tsx:91 +msgid "Show Page Numbers" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/layout.tsx:254 +msgid "Sidebar" +msgstr "" + +#: apps/client/src/pages/auth/backup-otp/page.tsx:96 +#: apps/client/src/pages/auth/login/page.tsx:118 +#: apps/client/src/pages/auth/verify-otp/page.tsx:98 +msgid "Sign in" +msgstr "" + +#: apps/client/src/pages/auth/register/page.tsx:75 +msgid "Sign in now" +msgstr "" + +#: apps/client/src/pages/auth/login/page.tsx:62 +msgid "Sign in to your account" +msgstr "" + +#: apps/client/src/pages/auth/register/page.tsx:172 +msgid "Sign up" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/picture/options.tsx:73 +msgid "Size (in px)" +msgstr "" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/resume.tsx:242 +msgid "Slug" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/picture/options.tsx:98 +#: apps/client/src/pages/builder/sidebars/left/sections/picture/options.tsx:143 +msgid "Square" +msgstr "" + +#: apps/client/src/pages/dashboard/resumes/_layouts/list/_components/create-item.tsx:24 +msgid "Start building from scratch" +msgstr "" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/resume.tsx:199 +msgid "Start building your resume by giving it a name." +msgstr "" + +#: apps/client/src/pages/dashboard/resumes/_layouts/grid/_components/create-card.tsx:29 +msgid "Start from scratch" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/index.tsx:76 +#: apps/client/src/pages/builder/sidebars/right/sections/statistics.tsx:23 +msgid "Statistics" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/statistics.tsx:38 +msgid "Statistics are available only for public resumes." +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_sections/openai.tsx:101 +msgid "Store Locally" +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:173 +msgid "Store your backup codes securely" +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_sections/openai.tsx:101 +msgid "Stored" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/awards.tsx:101 +#: apps/client/src/pages/builder/sidebars/left/dialogs/certifications.tsx:95 +#: apps/client/src/pages/builder/sidebars/left/dialogs/custom-section.tsx:123 +#: apps/client/src/pages/builder/sidebars/left/dialogs/education.tsx:138 +#: apps/client/src/pages/builder/sidebars/left/dialogs/experience.tsx:114 +#: apps/client/src/pages/builder/sidebars/left/dialogs/projects.tsx:100 +#: apps/client/src/pages/builder/sidebars/left/dialogs/publications.tsx:95 +#: apps/client/src/pages/builder/sidebars/left/dialogs/references.tsx:81 +#: apps/client/src/pages/builder/sidebars/left/dialogs/volunteer.tsx:109 +msgid "Summary" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/information.tsx:18 +msgid "Support the app by donating what you can!" +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_sections/profile.tsx:78 +msgid "System" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/index.tsx:62 +#: apps/client/src/pages/builder/sidebars/right/sections/template.tsx:18 +msgid "Template" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/theme.tsx:103 +msgid "Text Color" +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_sections/openai.tsx:25 +msgid "That doesn't look like a valid OpenAI API key." +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_sections/security.tsx:34 +msgid "The passwords you entered do not match." +msgstr "" + +#: apps/client/src/pages/public/page.tsx:104 +msgid "The resume you were looking for doesn't seem to exist, please check the link and try again." +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/index.tsx:71 +#: apps/client/src/pages/builder/sidebars/right/sections/theme.tsx:20 +#: apps/client/src/pages/dashboard/settings/_sections/profile.tsx:71 +msgid "Theme" +msgstr "" + +#: apps/client/src/services/resume/update.ts:35 +msgid "There was an error while updating your resume." +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-dialog.tsx:117 +msgid "This action can be reverted by clicking on the undo button in the floating toolbar." +msgstr "" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/resume.tsx:165 +msgid "This action cannot be undone. This will permanently delete your resume and cannot be recovered." +msgstr "" + +#: apps/client/src/pages/builder/_components/header.tsx:56 +msgid "This resume is locked, please unlock to make further changes." +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/notes.tsx:23 +msgid "This section is reserved for your personal notes specific to this resume. The content here remains private and is not shared with anyone else." +msgstr "" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/resume.tsx:230 +msgid "Tip: You can name the resume referring to the position you are applying for." +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/awards.tsx:39 +msgctxt "Name of the Award" +msgid "Title" +msgstr "" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/resume.tsx:210 +msgid "Title" +msgstr "" + +#: apps/client/src/pages/builder/_components/toolbar.tsx:101 +msgid "Toggle Page Break Line" +msgstr "" + +#: apps/client/src/pages/builder/_components/toolbar.tsx:114 +msgid "Toggle Page Numbers" +msgstr "" + +#: apps/client/src/pages/auth/verify-otp/page.tsx:63 +#: apps/client/src/pages/dashboard/settings/_sections/security.tsx:135 +msgid "Two-Factor Authentication" +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_sections/danger.tsx:84 +msgid "Type <0>delete to confirm deleting your account." +msgstr "" + +#. For example, Bachelor's Degree or Master's Degree +#: apps/client/src/pages/builder/sidebars/left/dialogs/education.tsx:54 +msgid "Type of Study" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/index.tsx:68 +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:67 +msgid "Typography" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:181 +msgid "Underline Links" +msgstr "" + +#: apps/client/src/pages/builder/_components/toolbar.tsx:59 +msgid "Undo" +msgstr "" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/lock.tsx:52 +#: apps/client/src/pages/dashboard/resumes/_layouts/grid/_components/resume-card.tsx:137 +msgid "Unlock" +msgstr "" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/lock.tsx:44 +msgid "Unlocking a resume will allow you to make changes to it again." +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_sections/account.tsx:194 +msgid "Unverified" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-dialog.tsx:147 +msgid "Update an existing item" +msgstr "" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/resume.tsx:193 +msgid "Update an existing resume" +msgstr "" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/import.tsx:214 +msgid "Upload a file from one of the accepted sources to parse existing data and import it into Reactive Resume for easier editing." +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/sharing.tsx:73 +msgid "URL" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/url-input.tsx:47 +msgid "URL must start with https://" +msgstr "" + +#: apps/client/src/pages/auth/backup-otp/page.tsx:63 +msgid "Use your backup code" +msgstr "" + +#: apps/client/src/pages/auth/register/page.tsx:114 +#: apps/client/src/pages/builder/sidebars/left/dialogs/profiles.tsx:54 +#: apps/client/src/pages/dashboard/settings/_sections/account.tsx:165 +msgid "Username" +msgstr "" + +#: apps/client/src/pages/home/sections/statistics/index.tsx:13 +msgid "Users Signed Up" +msgstr "" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/import.tsx:298 +msgid "Validate" +msgstr "" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/import.tsx:316 +msgid "Validated" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/custom/section.tsx:57 +msgid "Value" +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_sections/account.tsx:194 +msgid "Verified" +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:172 +msgid "Verify that two-factor authentication has been setup correctly" +msgstr "" + +#: apps/client/src/pages/auth/verify-email/page.tsx:55 +msgid "Verify your email address" +msgstr "" + +#: apps/client/src/pages/home/sections/hero/index.tsx:24 +msgid "Version 4" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/statistics.tsx:51 +msgid "Views" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-list-item.tsx:85 +msgid "Visible" +msgstr "" + +#: apps/client/src/pages/auth/verify-email/page.tsx:68 +msgid "We verify your email address only to ensure that we can send you a password reset link in case you forget your password." +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/awards.tsx:87 +#: apps/client/src/pages/builder/sidebars/left/dialogs/certifications.tsx:81 +#: apps/client/src/pages/builder/sidebars/left/dialogs/custom-section.tsx:109 +#: apps/client/src/pages/builder/sidebars/left/dialogs/education.tsx:124 +#: apps/client/src/pages/builder/sidebars/left/dialogs/experience.tsx:100 +#: apps/client/src/pages/builder/sidebars/left/dialogs/profiles.tsx:68 +#: apps/client/src/pages/builder/sidebars/left/dialogs/projects.tsx:86 +#: apps/client/src/pages/builder/sidebars/left/dialogs/publications.tsx:81 +#: apps/client/src/pages/builder/sidebars/left/dialogs/references.tsx:67 +#: apps/client/src/pages/builder/sidebars/left/dialogs/volunteer.tsx:95 +#: apps/client/src/pages/builder/sidebars/left/sections/basics.tsx:63 +msgid "Website" +msgstr "" + +#: apps/client/src/pages/home/sections/hero/index.tsx:27 +msgid "What's new in the latest version" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/custom-section.tsx:150 +#: apps/client/src/pages/builder/sidebars/left/dialogs/interests.tsx:60 +#: apps/client/src/pages/builder/sidebars/left/dialogs/projects.tsx:127 +#: apps/client/src/pages/builder/sidebars/left/dialogs/skills.tsx:100 +msgid "You can add multiple keywords by separating them with a comma or pressing enter." +msgstr "" + +#: apps/client/src/pages/auth/login/page.tsx:90 +msgid "You can also enter your username." +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_sections/openai.tsx:54 +msgid "You can make use of the OpenAI API to help you generate content, or improve your writing while composing your resume." +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/statistics.tsx:40 +msgid "You can track the number of views your resume has received, or how many people have downloaded the resume by enabling public sharing." +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_sections/openai.tsx:60 +msgid "You have the option to <0>obtain your own OpenAI API key. This key empowers you to leverage the API as you see fit. Alternatively, if you wish to disable the AI features in Reactive Resume altogether, you can simply remove the key from your settings." +msgstr "" + +#: apps/client/src/pages/auth/verify-email/page.tsx:57 +msgid "You should have received an email from <0>Reactive Resume with a link to verify your account." +msgstr "" + +#: apps/client/src/pages/auth/forgot-password/page.tsx:59 +msgid "You've got mail!" +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_sections/danger.tsx:52 +msgid "Your account and all your data has been deleted successfully. Goodbye!" +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_sections/openai.tsx:116 +msgid "Your API key is securely stored in the browser's local storage and is only utilized when making requests to OpenAI via their official SDK. Rest assured that your key is not transmitted to any external server except when interacting with OpenAI's services." +msgstr "" + +#: apps/client/src/pages/auth/verify-email/page.tsx:29 +msgid "Your email address has been verified successfully." +msgstr "" + +#: apps/client/src/services/openai/client.ts:11 +msgid "Your OpenAI API Key has not been set yet. Please go to your account settings to enable OpenAI Integration." +msgstr "" + +#: apps/client/src/pages/dashboard/settings/_sections/security.tsx:59 +msgid "Your password has been updated successfully." +msgstr "" + +#: apps/client/src/pages/builder/_components/toolbar.tsx:74 +msgid "Zoom In" +msgstr "" + +#: apps/client/src/pages/builder/_components/toolbar.tsx:80 +msgid "Zoom Out" +msgstr "" diff --git a/apps/client/src/locales/en-US.po b/apps/client/src/locales/en-US.po new file mode 100644 index 000000000..a3194a3e7 --- /dev/null +++ b/apps/client/src/locales/en-US.po @@ -0,0 +1,1477 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2023-11-10 08:58+0100\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: en-US\n" + +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:182 +msgid "You have enabled two-factor authentication successfully." +msgstr "You have enabled two-factor authentication successfully." + +#: apps/client/src/pages/builder/sidebars/right/sections/information.tsx:20 +msgid "<0>I built Reactive Resume mostly by myself during my spare time, with a lot of help from other great open-source contributors.<1>If you like the app and want to support keeping it free forever, please donate whatever you can afford to give.<2>Your donations could be tax-deductible, depending on your location." +msgstr "<0>I built Reactive Resume mostly by myself during my spare time, with a lot of help from other great open-source contributors.<1>If you like the app and want to support keeping it free forever, please donate whatever you can afford to give.<2>Your donations could be tax-deductible, depending on your location." + +#: apps/client/src/pages/builder/sidebars/right/sections/information.tsx:52 +msgid "<0>I'm sure the app is not perfect, but I'd like for it to be.<1>If you faced any issues while creating your resume, or have an idea that would help you and other users in creating your resume more easily, drop an issue on the repository or send me an email about it." +msgstr "<0>I'm sure the app is not perfect, but I'd like for it to be.<1>If you faced any issues while creating your resume, or have an idea that would help you and other users in creating your resume more easily, drop an issue on the repository or send me an email about it." + +#: apps/client/src/pages/dashboard/settings/_sections/openai.tsx:126 +msgid "<0>Note: By utilizing the OpenAI API, you acknowledge and accept the <1>terms of use and <2>privacy policy outlined by OpenAI. Please note that Reactive Resume bears no responsibility for any improper or unauthorized utilization of the service, and any resulting repercussions or liabilities solely rest on the user." +msgstr "<0>Note: By utilizing the OpenAI API, you acknowledge and accept the <1>terms of use and <2>privacy policy outlined by OpenAI. Please note that Reactive Resume bears no responsibility for any improper or unauthorized utilization of the service, and any resulting repercussions or liabilities solely rest on the user." + +#: apps/client/src/pages/builder/sidebars/right/sections/information.tsx:91 +msgid "<0>The community has spent a lot of time writing the documentation for Reactive Resume, and I'm sure it will help you get started with the app.<1>There are also a lot of examples to help you get started, and features that you might not know about which could help you build your perfect resume." +msgstr "<0>The community has spent a lot of time writing the documentation for Reactive Resume, and I'm sure it will help you get started with the app.<1>There are also a lot of examples to help you get started, and features that you might not know about which could help you build your perfect resume." + +#: apps/client/src/pages/dashboard/settings/_sections/security.tsx:146 +msgid "<0>Two-factor authentication is currently disabled. You can enable it by adding an authenticator app to your account." +msgstr "<0>Two-factor authentication is currently disabled. You can enable it by adding an authenticator app to your account." + +#: apps/client/src/pages/dashboard/settings/_sections/security.tsx:139 +msgid "<0>Two-factor authentication is enabled. You will be asked to enter a code every time you sign in." +msgstr "<0>Two-factor authentication is enabled. You will be asked to enter a code every time you sign in." + +#: apps/client/src/pages/home/page.tsx:12 +msgid "A free and open-source resume builder" +msgstr "A free and open-source resume builder" + +#: apps/client/src/pages/home/components/footer.tsx:19 +#: apps/client/src/pages/home/sections/hero/index.tsx:40 +msgid "A free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume." +msgstr "A free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume." + +#: apps/client/src/pages/home/sections/hero/index.tsx:35 +msgid "A free and open-source resume builder." +msgstr "A free and open-source resume builder." + +#: apps/client/src/pages/builder/sidebars/right/sections/sharing.tsx:29 +msgid "A link has been copied to your clipboard." +msgstr "A link has been copied to your clipboard." + +#: apps/client/src/components/copyright.tsx:29 +msgid "A passion project by <0>Amruth Pillai" +msgstr "A passion project by <0>Amruth Pillai" + +#: apps/client/src/pages/auth/forgot-password/page.tsx:62 +msgid "A password reset link should have been sent to your inbox, if an account existed with the email you provided." +msgstr "A password reset link should have been sent to your inbox, if an account existed with the email you provided." + +#: apps/client/src/pages/builder/sidebars/right/sections/page.tsx:43 +msgid "A4" +msgstr "A4" + +#. Helper text to let the user know what filetypes are accepted. {accept} can be .pdf or .json. +#: apps/client/src/pages/dashboard/resumes/_dialogs/import.tsx:272 +msgid "Accepts only {accept} files" +msgstr "Accepts only {accept} files" + +#: apps/client/src/pages/dashboard/settings/_sections/account.tsx:104 +msgid "Account" +msgstr "Account" + +#: apps/client/src/pages/builder/sidebars/left/sections/custom/section.tsx:131 +msgid "Add a custom field" +msgstr "Add a custom field" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-options.tsx:67 +msgid "Add a new item" +msgstr "Add a new item" + +#: apps/client/src/pages/builder/sidebars/left/index.tsx:80 +#: apps/client/src/pages/builder/sidebars/left/index.tsx:197 +msgid "Add a new section" +msgstr "Add a new section" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-base.tsx:108 +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-base.tsx:147 +msgctxt "For example, add a new work experience, or add a new profile." +msgid "Add New Item" +msgstr "Add New Item" + +#: apps/client/src/pages/builder/sidebars/right/sections/layout.tsx:267 +msgid "Add New Page" +msgstr "Add New Page" + +#: apps/client/src/components/ai-actions.tsx:70 +msgid "AI" +msgstr "AI" + +#: apps/client/src/pages/auth/register/page.tsx:72 +msgid "Already have an account?" +msgstr "Already have an account?" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/import.tsx:190 +msgid "An error occurred while importing your resume." +msgstr "An error occurred while importing your resume." + +#: apps/client/src/pages/auth/register/page.tsx:60 +msgid "An error occurred while trying to create a new account." +msgstr "An error occurred while trying to create a new account." + +#: apps/client/src/pages/dashboard/resumes/_dialogs/resume.tsx:120 +msgid "An error occurred while trying to create your resume." +msgstr "An error occurred while trying to create your resume." + +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:108 +msgid "An error occurred while trying to enable two-factor authentication." +msgstr "An error occurred while trying to enable two-factor authentication." + +#: apps/client/src/services/resume/print.ts:36 +msgid "An error occurred while trying to print your resume." +msgstr "An error occurred while trying to print your resume." + +#: apps/client/src/pages/auth/reset-password/page.tsx:57 +msgid "An error occurred while trying to reset your password." +msgstr "An error occurred while trying to reset your password." + +#: apps/client/src/pages/auth/forgot-password/page.tsx:48 +msgid "An error occurred while trying to send your password recovery email." +msgstr "An error occurred while trying to send your password recovery email." + +#: apps/client/src/pages/auth/backup-otp/page.tsx:53 +#: apps/client/src/pages/auth/login/page.tsx:52 +#: apps/client/src/pages/auth/verify-otp/page.tsx:53 +msgid "An error occurred while trying to sign in to your account." +msgstr "An error occurred while trying to sign in to your account." + +#: apps/client/src/pages/auth/verify-email/page.tsx:40 +msgid "An error occurred while trying to verify your email address." +msgstr "An error occurred while trying to verify your email address." + +#: apps/client/src/pages/dashboard/resumes/_dialogs/import.tsx:145 +msgid "An error occurred while validating the file." +msgstr "An error occurred while validating the file." + +#: apps/client/src/pages/builder/sidebars/right/sections/sharing.tsx:57 +msgid "Anyone with the link can view and download the resume." +msgstr "Anyone with the link can view and download the resume." + +#: apps/client/src/pages/builder/sidebars/right/sections/sharing.tsx:30 +msgid "Anyone with this link can view and download the resume. Share it on your profile or with recruiters." +msgstr "Anyone with this link can view and download the resume. Share it on your profile or with recruiters." + +#: apps/client/src/pages/dashboard/settings/_sections/openai.tsx:83 +msgid "API Key" +msgstr "API Key" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-dialog.tsx:115 +msgid "Are you sure you want to delete this item?" +msgstr "Are you sure you want to delete this item?" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/resume.tsx:163 +msgid "Are you sure you want to delete your resume?" +msgstr "Are you sure you want to delete your resume?" + +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:136 +msgid "Are you sure you want to disable two-factor authentication?" +msgstr "Are you sure you want to disable two-factor authentication?" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/lock.tsx:38 +msgid "Are you sure you want to lock this resume?" +msgstr "Are you sure you want to lock this resume?" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/lock.tsx:39 +msgid "Are you sure you want to unlock this resume?" +msgstr "Are you sure you want to unlock this resume?" + +#: apps/client/src/pages/dashboard/settings/_sections/danger.tsx:94 +msgid "Are you sure?" +msgstr "Are you sure?" + +#. For example, Computer Science or Business Administration +#: apps/client/src/pages/builder/sidebars/left/dialogs/education.tsx:73 +msgid "Area of Study" +msgstr "Area of Study" + +#: apps/client/src/pages/builder/sidebars/left/sections/picture/options.tsx:89 +msgid "Aspect Ratio" +msgstr "Aspect Ratio" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/awards.tsx:53 +msgid "Awarder" +msgstr "Awarder" + +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:249 +msgid "Back" +msgstr "Back" + +#: apps/client/src/pages/builder/sidebars/right/sections/theme.tsx:73 +msgid "Background Color" +msgstr "Background Color" + +#: apps/client/src/pages/auth/backup-otp/page.tsx:81 +msgid "Backup Code" +msgstr "Backup Code" + +#: apps/client/src/pages/auth/backup-otp/page.tsx:86 +msgid "Backup Codes may contain only lowercase letters or numbers, and must be exactly 10 characters." +msgstr "Backup Codes may contain only lowercase letters or numbers, and must be exactly 10 characters." + +#: apps/client/src/pages/builder/sidebars/left/index.tsx:57 +msgctxt "The Basics section of a Resume consists of User's Picture, Full Name, Location etc." +msgid "Basics" +msgstr "Basics" + +#: apps/client/src/pages/builder/sidebars/left/sections/basics.tsx:21 +msgid "Basics" +msgstr "Basics" + +#: apps/client/src/pages/builder/sidebars/left/sections/picture/options.tsx:202 +msgid "Border" +msgstr "Border" + +#: apps/client/src/pages/builder/sidebars/left/sections/picture/options.tsx:134 +msgid "Border Radius" +msgstr "Border Radius" + +#: apps/client/src/pages/public/page.tsx:76 +msgid "Built with" +msgstr "Built with" + +#: apps/client/src/components/copyright.tsx:27 +msgid "By the community, for the community." +msgstr "By the community, for the community." + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-dialog.tsx:122 +#: apps/client/src/pages/dashboard/resumes/_dialogs/lock.tsx:49 +#: apps/client/src/pages/dashboard/resumes/_dialogs/resume.tsx:170 +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:148 +msgid "Cancel" +msgstr "Cancel" + +#: apps/client/src/components/ai-actions.tsx:94 +#: apps/client/src/components/ai-actions.tsx:97 +msgid "Casual" +msgstr "Casual" + +#: apps/client/src/pages/builder/_components/toolbar.tsx:92 +msgid "Center Artboard" +msgstr "Center Artboard" + +#: apps/client/src/pages/auth/reset-password/page.tsx:106 +#: apps/client/src/pages/dashboard/settings/_sections/security.tsx:121 +msgid "Change Password" +msgstr "Change Password" + +#: apps/client/src/components/ai-actions.tsx:88 +msgid "Change Tone" +msgstr "Change Tone" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/resume.tsx:200 +msgid "Changed your mind about the name? Give it a new one." +msgstr "Changed your mind about the name? Give it a new one." + +#: apps/client/src/pages/dashboard/settings/_sections/account.tsx:69 +msgid "Check your email for the confirmation link to update your email address." +msgstr "Check your email for the confirmation link to update your email address." + +#: apps/client/src/pages/builder/sidebars/left/sections/picture/options.tsx:155 +msgid "Circle" +msgstr "Circle" + +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:255 +msgid "Close" +msgstr "Close" + +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:212 +msgid "Code" +msgstr "Code" + +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:51 +msgid "Code must be exactly 6 digits long." +msgstr "Code must be exactly 6 digits long." + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-options.tsx:107 +msgid "Columns" +msgstr "Columns" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/experience.tsx:39 +msgid "Company" +msgstr "Company" + +#: apps/client/src/components/ai-actions.tsx:106 +#: apps/client/src/components/ai-actions.tsx:109 +msgid "Confident" +msgstr "Confident" + +#: apps/client/src/pages/dashboard/settings/_sections/security.tsx:98 +msgid "Confirm New Password" +msgstr "Confirm New Password" + +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:245 +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:252 +msgid "Continue" +msgstr "Continue" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-list-item.tsx:93 +msgid "Copy" +msgstr "Copy" + +#: apps/client/src/pages/builder/_components/toolbar.tsx:129 +msgid "Copy Link to Resume" +msgstr "Copy Link to Resume" + +#: apps/client/src/pages/builder/sidebars/right/sections/sharing.tsx:78 +msgid "Copy to Clipboard" +msgstr "Copy to Clipboard" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-dialog.tsx:158 +#: apps/client/src/pages/dashboard/resumes/_dialogs/resume.tsx:254 +msgid "Create" +msgstr "Create" + +#: apps/client/src/pages/auth/register/page.tsx:70 +msgid "Create a new account" +msgstr "Create a new account" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-dialog.tsx:146 +msgid "Create a new item" +msgstr "Create a new item" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/resume.tsx:192 +#: apps/client/src/pages/dashboard/resumes/_layouts/grid/_components/create-card.tsx:24 +#: apps/client/src/pages/dashboard/resumes/_layouts/list/_components/create-item.tsx:19 +msgid "Create a new resume" +msgstr "Create a new resume" + +#: apps/client/src/pages/auth/login/page.tsx:67 +msgctxt "This is a link to create a new account" +msgid "Create one now" +msgstr "Create one now" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/resume.tsx:267 +msgid "Create Sample Resume" +msgstr "Create Sample Resume" + +#: apps/client/src/stores/resume.ts:45 +msgid "Custom Section" +msgstr "Custom Section" + +#: apps/client/src/pages/dashboard/settings/_sections/danger.tsx:62 +msgid "Danger Zone" +msgstr "Danger Zone" + +#: apps/client/src/pages/dashboard/settings/_sections/profile.tsx:80 +msgid "Dark" +msgstr "Dark" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/awards.tsx:67 +#: apps/client/src/pages/builder/sidebars/left/dialogs/certifications.tsx:67 +#: apps/client/src/pages/builder/sidebars/left/dialogs/custom-section.tsx:81 +#: apps/client/src/pages/builder/sidebars/left/dialogs/education.tsx:110 +#: apps/client/src/pages/builder/sidebars/left/dialogs/experience.tsx:72 +#: apps/client/src/pages/builder/sidebars/left/dialogs/projects.tsx:72 +#: apps/client/src/pages/builder/sidebars/left/dialogs/publications.tsx:67 +#: apps/client/src/pages/builder/sidebars/left/dialogs/volunteer.tsx:67 +msgid "Date" +msgstr "Date" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-dialog.tsx:124 +#: apps/client/src/pages/dashboard/resumes/_dialogs/resume.tsx:172 +#: apps/client/src/pages/dashboard/resumes/_layouts/grid/_components/resume-card.tsx:148 +#: apps/client/src/pages/dashboard/resumes/_layouts/list/_components/resume-item.tsx:106 +#: apps/client/src/pages/dashboard/resumes/_layouts/list/_components/resume-item.tsx:159 +msgid "Delete" +msgstr "Delete" + +#: apps/client/src/pages/dashboard/settings/_sections/danger.tsx:79 +#: apps/client/src/pages/dashboard/settings/_sections/danger.tsx:94 +msgid "Delete Account" +msgstr "Delete Account" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/custom-section.tsx:67 +#: apps/client/src/pages/builder/sidebars/left/dialogs/projects.tsx:58 +#: apps/client/src/pages/builder/sidebars/left/dialogs/references.tsx:53 +#: apps/client/src/pages/builder/sidebars/left/dialogs/skills.tsx:55 +msgid "Description" +msgstr "Description" + +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:150 +msgid "Disable" +msgstr "Disable" + +#: apps/client/src/pages/dashboard/settings/_sections/security.tsx:155 +msgid "Disable 2FA" +msgstr "Disable 2FA" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/import.tsx:304 +#: apps/client/src/pages/dashboard/settings/_sections/account.tsx:222 +#: apps/client/src/pages/dashboard/settings/_sections/profile.tsx:134 +#: apps/client/src/pages/dashboard/settings/_sections/security.tsx:124 +msgid "Discard" +msgstr "Discard" + +#: apps/client/src/pages/builder/sidebars/right/sections/information.tsx:111 +msgid "Documentation" +msgstr "Documentation" + +#: apps/client/src/pages/auth/login/page.tsx:64 +msgid "Don't have an account?" +msgstr "Don't have an account?" + +#: apps/client/src/pages/builder/sidebars/right/sections/information.tsx:89 +msgid "Don't know where to begin? Hit the docs!" +msgstr "Don't know where to begin? Hit the docs!" + +#: apps/client/src/pages/dashboard/settings/_sections/profile.tsx:107 +msgid "Don't see your locale? <0>Help translate the app." +msgstr "Don't see your locale? <0>Help translate the app." + +#: apps/client/src/pages/builder/sidebars/right/sections/information.tsx:41 +msgid "Donate to Reactive Resume" +msgstr "Donate to Reactive Resume" + +#: apps/client/src/pages/builder/sidebars/right/sections/export.tsx:56 +msgid "Download a JSON snapshot of your resume. This file can be used to import your resume in the future, or can even be shared with others to collaborate." +msgstr "Download a JSON snapshot of your resume. This file can be used to import your resume in the future, or can even be shared with others to collaborate." + +#: apps/client/src/pages/builder/sidebars/right/sections/export.tsx:74 +msgid "Download a PDF of your resume. This file can be used to print your resume, send it to recruiters, or upload on job portals." +msgstr "Download a PDF of your resume. This file can be used to print your resume, send it to recruiters, or upload on job portals." + +#: apps/client/src/pages/builder/_components/toolbar.tsx:136 +msgid "Download PDF" +msgstr "Download PDF" + +#: apps/client/src/pages/builder/sidebars/right/sections/statistics.tsx:58 +msgid "Downloads" +msgstr "Downloads" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-dialog.tsx:160 +#: apps/client/src/pages/dashboard/resumes/_dialogs/resume.tsx:256 +#: apps/client/src/pages/dashboard/resumes/_layouts/grid/_components/resume-card.tsx:132 +#: apps/client/src/pages/dashboard/resumes/_layouts/list/_components/resume-item.tsx:95 +#: apps/client/src/pages/dashboard/resumes/_layouts/list/_components/resume-item.tsx:154 +msgid "Duplicate" +msgstr "Duplicate" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-dialog.tsx:148 +msgid "Duplicate an existing item" +msgstr "Duplicate an existing item" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/resume.tsx:194 +msgid "Duplicate an existing resume" +msgstr "Duplicate an existing resume" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-list-item.tsx:89 +msgid "Edit" +msgstr "Edit" + +#: apps/client/src/pages/builder/sidebars/left/sections/picture/options.tsx:180 +msgid "Effects" +msgstr "Effects" + +#: apps/client/src/pages/auth/forgot-password/page.tsx:87 +#: apps/client/src/pages/auth/login/page.tsx:86 +#: apps/client/src/pages/auth/register/page.tsx:135 +#: apps/client/src/pages/builder/sidebars/left/sections/basics.tsx:50 +#: apps/client/src/pages/dashboard/settings/_sections/account.tsx:183 +msgid "Email" +msgstr "Email" + +#: apps/client/src/pages/dashboard/settings/_sections/security.tsx:159 +msgid "Enable 2FA" +msgstr "Enable 2FA" + +#: apps/client/src/libs/lingui.ts:5 +msgid "English" +msgstr "English" + +#: apps/client/src/pages/auth/reset-password/page.tsx:74 +msgid "Enter a new password below, and make sure it's secure." +msgstr "Enter a new password below, and make sure it's secure." + +#: apps/client/src/pages/auth/backup-otp/page.tsx:65 +msgid "Enter one of the 10 backup codes you saved when you enabled two-factor authentication." +msgstr "Enter one of the 10 backup codes you saved when you enabled two-factor authentication." + +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:181 +msgid "Enter the 6-digit code from your authenticator app to verify that 2FA has been setup correctly." +msgstr "Enter the 6-digit code from your authenticator app to verify that 2FA has been setup correctly." + +#: apps/client/src/pages/auth/verify-otp/page.tsx:66 +msgid "Enter the one-time password provided by your authenticator app below." +msgstr "Enter the one-time password provided by your authenticator app below." + +#: apps/client/src/pages/auth/forgot-password/page.tsx:75 +msgid "Enter your email address and we will send you a link to reset your password if the account exists." +msgstr "Enter your email address and we will send you a link to reset your password if the account exists." + +#: apps/client/src/pages/dashboard/resumes/_dialogs/import.tsx:285 +msgid "Errors" +msgstr "Errors" + +#: apps/client/src/pages/builder/sidebars/right/index.tsx:79 +#: apps/client/src/pages/builder/sidebars/right/sections/export.tsx:40 +msgid "Export" +msgstr "Export" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/import.tsx:257 +msgid "File" +msgstr "File" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/import.tsx:223 +msgid "Filetype" +msgstr "Filetype" + +#: apps/client/src/pages/home/sections/hero/index.tsx:33 +msgid "Finally," +msgstr "Finally," + +#: apps/client/src/components/ai-actions.tsx:81 +msgid "Fix Spelling & Grammar" +msgstr "Fix Spelling & Grammar" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/languages.tsx:51 +msgid "Fluency" +msgstr "Fluency" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/languages.tsx:65 +msgid "Fluency (CEFR)" +msgstr "Fluency (CEFR)" + +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:95 +msgid "Font Family" +msgstr "Font Family" + +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:136 +msgid "Font Size" +msgstr "Font Size" + +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:110 +msgid "Font Subset" +msgstr "Font Subset" + +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:122 +msgid "Font Variants" +msgstr "Font Variants" + +#: apps/client/src/pages/builder/sidebars/right/sections/notes.tsx:30 +msgid "For example, information regarding which companies you sent this resume to or the links to the job descriptions can be noted down here." +msgstr "For example, information regarding which companies you sent this resume to or the links to the job descriptions can be noted down here." + +#: apps/client/src/pages/dashboard/settings/_sections/openai.tsx:107 +msgid "Forget" +msgstr "Forget" + +#: apps/client/src/pages/auth/login/page.tsx:122 +msgid "Forgot Password?" +msgstr "Forgot Password?" + +#: apps/client/src/pages/auth/forgot-password/page.tsx:73 +msgid "Forgot your password?" +msgstr "Forgot your password?" + +#: apps/client/src/pages/builder/sidebars/right/sections/page.tsx:32 +#: apps/client/src/pages/builder/sidebars/right/sections/page.tsx:40 +msgid "Format" +msgstr "Format" + +#: apps/client/src/pages/builder/sidebars/right/sections/information.tsx:50 +msgid "Found a bug, or have an idea for a new feature?" +msgstr "Found a bug, or have an idea for a new feature?" + +#: apps/client/src/components/ai-actions.tsx:112 +#: apps/client/src/components/ai-actions.tsx:115 +msgid "Friendly" +msgstr "Friendly" + +#: apps/client/src/pages/builder/sidebars/left/sections/basics.tsx:31 +msgid "Full Name" +msgstr "Full Name" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/resume.tsx:216 +msgid "Generate a random title for your resume" +msgstr "Generate a random title for your resume" + +#: apps/client/src/libs/lingui.ts:6 +msgid "German" +msgstr "German" + +#: apps/client/src/pages/home/sections/hero/call-to-action.tsx:33 +msgid "Get Started" +msgstr "Get Started" + +#: apps/client/src/pages/auth/_components/social-auth.tsx:10 +msgid "GitHub" +msgstr "GitHub" + +#: apps/client/src/pages/home/sections/statistics/index.tsx:12 +msgid "GitHub Stars" +msgstr "GitHub Stars" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/resume.tsx:201 +msgid "Give your old resume a new name." +msgstr "Give your old resume a new name." + +#: apps/client/src/pages/auth/verify-email/page.tsx:74 +#: apps/client/src/pages/home/sections/hero/call-to-action.tsx:18 +msgid "Go to Dashboard" +msgstr "Go to Dashboard" + +#: apps/client/src/pages/auth/_components/social-auth.tsx:17 +msgid "Google" +msgstr "Google" + +#: apps/client/src/pages/builder/sidebars/left/sections/picture/options.tsx:213 +msgid "Grayscale" +msgstr "Grayscale" + +#: apps/client/src/pages/dashboard/resumes/page.tsx:37 +msgid "Grid" +msgstr "Grid" + +#: apps/client/src/pages/builder/sidebars/left/sections/basics.tsx:41 +msgid "Headline" +msgstr "Headline" + +#: apps/client/src/pages/dashboard/settings/_sections/account.tsx:106 +msgid "Here, you can update your account information such as your profile picture, name and username." +msgstr "Here, you can update your account information such as your profile picture, name and username." + +#: apps/client/src/pages/dashboard/settings/_sections/profile.tsx:60 +msgid "Here, you can update your profile to customize and personalize your experience." +msgstr "Here, you can update your profile to customize and personalize your experience." + +#: apps/client/src/pages/builder/sidebars/left/sections/picture/options.tsx:191 +msgid "Hidden" +msgstr "Hidden" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-options.tsx:77 +msgid "Hide" +msgstr "Hide" + +#: apps/client/src/pages/auth/login/page.tsx:106 +#: apps/client/src/pages/auth/register/page.tsx:161 +#: apps/client/src/pages/auth/reset-password/page.tsx:95 +msgid "Hold <0>Ctrl to display your password temporarily." +msgstr "Hold <0>Ctrl to display your password temporarily." + +#: apps/client/src/pages/builder/sidebars/left/sections/picture/options.tsx:104 +msgid "Horizontal" +msgstr "Horizontal" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/profiles.tsx:82 +msgid "Icon" +msgstr "Icon" + +#: apps/client/src/pages/home/sections/logo-cloud/index.tsx:47 +msgid "If this app has helped you with your job hunt, let me know by reaching out through <0>this contact form." +msgstr "If this app has helped you with your job hunt, let me know by reaching out through <0>this contact form." + +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:139 +msgid "If you disable two-factor authentication, you will no longer be required to enter a verification code when logging in." +msgstr "If you disable two-factor authentication, you will no longer be required to enter a verification code when logging in." + +#: apps/client/src/pages/dashboard/resumes/_dialogs/import.tsx:311 +msgid "Import" +msgstr "Import" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/import.tsx:210 +#: apps/client/src/pages/dashboard/resumes/_layouts/grid/_components/import-card.tsx:24 +#: apps/client/src/pages/dashboard/resumes/_layouts/list/_components/import-item.tsx:18 +msgid "Import an existing resume" +msgstr "Import an existing resume" + +#: apps/client/src/components/ai-actions.tsx:76 +msgid "Improve Writing" +msgstr "Improve Writing" + +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:199 +msgid "In case you are unable to scan this QR Code, you can also copy-paste this link into your authenticator app." +msgstr "In case you are unable to scan this QR Code, you can also copy-paste this link into your authenticator app." + +#: apps/client/src/pages/dashboard/settings/_sections/security.tsx:70 +msgid "In this section, you can change your password and enable/disable two-factor authentication." +msgstr "In this section, you can change your password and enable/disable two-factor authentication." + +#: apps/client/src/pages/dashboard/settings/_sections/danger.tsx:64 +msgid "In this section, you can delete your account and all the data associated to your user, but please keep in mind that <0>this action is irreversible." +msgstr "In this section, you can delete your account and all the data associated to your user, but please keep in mind that <0>this action is irreversible." + +#: apps/client/src/pages/builder/sidebars/right/index.tsx:83 +#: apps/client/src/pages/builder/sidebars/right/sections/information.tsx:123 +msgid "Information" +msgstr "Information" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/education.tsx:39 +msgid "Institution" +msgstr "Institution" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/certifications.tsx:53 +msgid "Issuer" +msgstr "Issuer" + +#: apps/client/src/pages/auth/register/page.tsx:96 +msgctxt "Localized version of a placeholder name. For example, Max Mustermann in German or Jan Kowalski in Polish." +msgid "John Doe" +msgstr "John Doe" + +#: apps/client/src/pages/auth/register/page.tsx:117 +msgctxt "Localized version of a placeholder username. For example, max.mustermann in German or jan.kowalski in Polish." +msgid "john.doe" +msgstr "john.doe" + +#: apps/client/src/pages/auth/register/page.tsx:138 +msgctxt "Localized version of a placeholder email. For example, max.mustermann@example.de in German or jan.kowalski@example.pl in Polish." +msgid "john.doe@example.com" +msgstr "john.doe@example.com" + +#: apps/client/src/pages/builder/sidebars/right/sections/export.tsx:54 +msgid "JSON" +msgstr "JSON" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/custom-section.tsx:145 +#: apps/client/src/pages/builder/sidebars/left/dialogs/interests.tsx:55 +#: apps/client/src/pages/builder/sidebars/left/dialogs/projects.tsx:122 +#: apps/client/src/pages/builder/sidebars/left/dialogs/skills.tsx:95 +msgid "Keywords" +msgstr "Keywords" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/url-input.tsx:40 +msgid "Label" +msgstr "Label" + +#: apps/client/src/pages/dashboard/settings/_sections/profile.tsx:93 +msgid "Language" +msgstr "Language" + +#: apps/client/src/pages/dashboard/resumes/_layouts/grid/_components/resume-card.tsx:116 +#: apps/client/src/pages/dashboard/resumes/_layouts/list/_components/resume-item.tsx:121 +msgid "Last updated {lastUpdated}" +msgstr "Last updated {lastUpdated}" + +#: apps/client/src/pages/builder/sidebars/right/index.tsx:65 +#: apps/client/src/pages/builder/sidebars/right/sections/layout.tsx:207 +msgid "Layout" +msgstr "Layout" + +#: apps/client/src/pages/home/sections/hero/call-to-action.tsx:39 +msgid "Learn more" +msgstr "Learn more" + +#: apps/client/src/pages/builder/sidebars/right/sections/page.tsx:44 +msgid "Letter" +msgstr "Letter" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/skills.tsx:69 +msgid "Level" +msgstr "Level" + +#: apps/client/src/components/copyright.tsx:16 +msgid "Licensed under <0>MIT" +msgstr "Licensed under <0>MIT" + +#: apps/client/src/pages/dashboard/settings/_sections/profile.tsx:79 +msgid "Light" +msgstr "Light" + +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:153 +msgid "Line Height" +msgstr "Line Height" + +#: apps/client/src/pages/dashboard/resumes/_layouts/grid/_components/import-card.tsx:29 +#: apps/client/src/pages/dashboard/resumes/_layouts/list/_components/import-item.tsx:23 +msgid "LinkedIn, JSON Resume, etc." +msgstr "LinkedIn, JSON Resume, etc." + +#: apps/client/src/pages/dashboard/resumes/page.tsx:41 +msgid "List" +msgstr "List" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/custom-section.tsx:95 +#: apps/client/src/pages/builder/sidebars/left/dialogs/experience.tsx:86 +#: apps/client/src/pages/builder/sidebars/left/dialogs/volunteer.tsx:81 +#: apps/client/src/pages/builder/sidebars/left/sections/basics.tsx:83 +msgid "Location" +msgstr "Location" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/lock.tsx:51 +#: apps/client/src/pages/dashboard/resumes/_layouts/grid/_components/resume-card.tsx:142 +msgid "Lock" +msgstr "Lock" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/lock.tsx:43 +msgid "Locking a resume will prevent any further changes to it. This is useful when you have already shared your resume with someone and you don't want to accidentally make any changes to it." +msgstr "Locking a resume will prevent any further changes to it. This is useful when you have already shared your resume with someone and you don't want to accidentally make any changes to it." + +#: apps/client/src/components/user-options.tsx:34 +#: apps/client/src/pages/home/sections/hero/call-to-action.tsx:23 +msgid "Logout" +msgstr "Logout" + +#: apps/client/src/pages/auth/verify-otp/page.tsx:70 +msgid "Lost your device?" +msgstr "Lost your device?" + +#: apps/client/src/pages/builder/sidebars/right/sections/layout.tsx:253 +msgid "Main" +msgstr "Main" + +#. The month and year should be uniform across all languages. +#: apps/client/src/pages/builder/sidebars/left/dialogs/awards.tsx:71 +#: apps/client/src/pages/builder/sidebars/left/dialogs/certifications.tsx:69 +#: apps/client/src/pages/builder/sidebars/left/dialogs/publications.tsx:69 +msgid "March 2023" +msgstr "March 2023" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/education.tsx:112 +#: apps/client/src/pages/builder/sidebars/left/dialogs/experience.tsx:74 +#: apps/client/src/pages/builder/sidebars/left/dialogs/projects.tsx:74 +#: apps/client/src/pages/builder/sidebars/left/dialogs/volunteer.tsx:69 +msgid "March 2023 - Present" +msgstr "March 2023 - Present" + +#: apps/client/src/pages/builder/sidebars/right/sections/page.tsx:50 +msgid "Margin" +msgstr "Margin" + +#: apps/client/src/pages/auth/register/page.tsx:93 +#: apps/client/src/pages/builder/sidebars/left/dialogs/custom-section.tsx:53 +#: apps/client/src/pages/builder/sidebars/left/dialogs/interests.tsx:40 +#: apps/client/src/pages/builder/sidebars/left/dialogs/languages.tsx:37 +#: apps/client/src/pages/builder/sidebars/left/dialogs/projects.tsx:44 +#: apps/client/src/pages/builder/sidebars/left/dialogs/publications.tsx:39 +#: apps/client/src/pages/builder/sidebars/left/dialogs/references.tsx:39 +#: apps/client/src/pages/builder/sidebars/left/dialogs/skills.tsx:41 +#: apps/client/src/pages/builder/sidebars/left/sections/custom/section.tsx:50 +#: apps/client/src/pages/dashboard/settings/_sections/account.tsx:152 +msgid "Name" +msgstr "Name" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/certifications.tsx:39 +msgctxt "Name of the Certification" +msgid "Name" +msgstr "Name" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/profiles.tsx:39 +msgid "Network" +msgstr "Network" + +#: apps/client/src/pages/dashboard/settings/_sections/security.tsx:85 +msgid "New Password" +msgstr "New Password" + +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:144 +msgid "Note: This will make your account less secure." +msgstr "Note: This will make your account less secure." + +#: apps/client/src/pages/builder/sidebars/right/index.tsx:80 +#: apps/client/src/pages/builder/sidebars/right/sections/notes.tsx:17 +msgid "Notes" +msgstr "Notes" + +#: apps/client/src/pages/auth/verify-otp/page.tsx:88 +msgid "One-Time Password" +msgstr "One-Time Password" + +#: apps/client/src/pages/dashboard/resumes/_layouts/grid/_components/resume-card.tsx:124 +#: apps/client/src/pages/dashboard/resumes/_layouts/list/_components/resume-item.tsx:77 +#: apps/client/src/pages/dashboard/resumes/_layouts/list/_components/resume-item.tsx:146 +msgid "Open" +msgstr "Open" + +#: apps/client/src/pages/auth/layout.tsx:48 +msgid "Open books on a table" +msgstr "Open books on a table" + +#: apps/client/src/services/openai/change-tone.ts:30 +#: apps/client/src/services/openai/fix-grammar.ts:28 +#: apps/client/src/services/openai/improve-writing.ts:28 +msgid "OpenAI did not return any choices for your text." +msgstr "OpenAI did not return any choices for your text." + +#: apps/client/src/pages/dashboard/settings/_sections/openai.tsx:52 +msgid "OpenAI Integration" +msgstr "OpenAI Integration" + +#: apps/client/src/pages/builder/sidebars/right/sections/page.tsx:67 +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:170 +msgid "Options" +msgstr "Options" + +#: apps/client/src/pages/auth/layout.tsx:30 +msgctxt "The user can either login with email/password, or continue with GitHub or Google." +msgid "or continue with" +msgstr "or continue with" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/volunteer.tsx:39 +msgid "Organization" +msgstr "Organization" + +#: apps/client/src/pages/builder/sidebars/right/index.tsx:72 +#: apps/client/src/pages/builder/sidebars/right/sections/page.tsx:26 +msgid "Page" +msgstr "Page" + +#: apps/client/src/pages/builder/sidebars/right/sections/layout.tsx:237 +msgid "Page {0}" +msgstr "Page {0}" + +#: apps/client/src/pages/auth/login/page.tsx:101 +#: apps/client/src/pages/auth/register/page.tsx:156 +#: apps/client/src/pages/auth/reset-password/page.tsx:90 +#: apps/client/src/pages/dashboard/settings/_sections/security.tsx:76 +msgid "Password" +msgstr "Password" + +#: apps/client/src/pages/builder/sidebars/right/sections/export.tsx:72 +msgid "PDF" +msgstr "PDF" + +#: apps/client/src/pages/builder/sidebars/left/sections/basics.tsx:73 +msgid "Phone" +msgstr "Phone" + +#: apps/client/src/pages/auth/layout.tsx:59 +msgid "Photograph by Patrick Tomasso" +msgstr "Photograph by Patrick Tomasso" + +#: apps/client/src/pages/builder/sidebars/left/sections/picture/section.tsx:52 +#: apps/client/src/pages/dashboard/settings/_sections/account.tsx:120 +msgid "Picture" +msgstr "Picture" + +#: apps/client/src/pages/auth/verify-email/page.tsx:66 +msgid "Please note that this step is completely optional." +msgstr "Please note that this step is completely optional." + +#: apps/client/src/pages/dashboard/resumes/_dialogs/import.tsx:227 +msgid "Please select a file type" +msgstr "Please select a file type" + +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:239 +msgid "Please store your backup codes in a secure location. You can use one of these one-time use codes to login in case you lose access to your authenticator app." +msgstr "Please store your backup codes in a secure location. You can use one of these one-time use codes to login in case you lose access to your authenticator app." + +#: apps/client/src/pages/builder/sidebars/left/sections/picture/options.tsx:110 +msgid "Portrait" +msgstr "Portrait" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/experience.tsx:54 +msgctxt "Position held at a company, for example, Software Engineer" +msgid "Position" +msgstr "Position" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/volunteer.tsx:53 +msgid "Position" +msgstr "Position" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/profiles.tsx:98 +msgid "Powered by <0>Simple Icons" +msgstr "Powered by <0>Simple Icons" + +#: apps/client/src/pages/builder/sidebars/right/sections/theme.tsx:43 +msgid "Primary Color" +msgstr "Primary Color" + +#: apps/client/src/components/ai-actions.tsx:100 +#: apps/client/src/components/ai-actions.tsx:103 +msgid "Professional" +msgstr "Professional" + +#: apps/client/src/pages/dashboard/settings/_sections/profile.tsx:58 +msgid "Profile" +msgstr "Profile" + +#: apps/client/src/pages/builder/sidebars/right/sections/sharing.tsx:55 +msgid "Public" +msgstr "Public" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/publications.tsx:53 +msgid "Publisher" +msgstr "Publisher" + +#: apps/client/src/pages/builder/sidebars/right/sections/information.tsx:70 +msgid "Raise an issue" +msgstr "Raise an issue" + +#: apps/client/src/components/copyright.tsx:38 +#: apps/client/src/components/icon.tsx:29 +#: apps/client/src/components/logo.tsx:29 +#: apps/client/src/pages/builder/page.tsx:39 +#: apps/client/src/pages/dashboard/resumes/page.tsx:20 +#: apps/client/src/pages/dashboard/settings/page.tsx:16 +#: apps/client/src/pages/home/components/footer.tsx:16 +#: apps/client/src/pages/home/page.tsx:12 +#: apps/client/src/pages/public/page.tsx:57 +#: apps/client/src/pages/public/page.tsx:78 +msgid "Reactive Resume" +msgstr "Reactive Resume" + +#: apps/client/src/pages/home/sections/hero/index.tsx:56 +msgid "Reactive Resume - Screenshot - Builder Screen" +msgstr "Reactive Resume - Screenshot - Builder Screen" + +#: apps/client/src/pages/home/sections/logo-cloud/index.tsx:39 +msgid "Reactive Resume has helped people land jobs at these great companies:" +msgstr "Reactive Resume has helped people land jobs at these great companies:" + +#: apps/client/src/pages/builder/_components/toolbar.tsx:66 +msgid "Redo" +msgstr "Redo" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-list-item.tsx:97 +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-options.tsx:128 +msgid "Remove" +msgstr "Remove" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-options.tsx:82 +#: apps/client/src/pages/dashboard/resumes/_layouts/grid/_components/resume-card.tsx:128 +#: apps/client/src/pages/dashboard/resumes/_layouts/list/_components/resume-item.tsx:86 +#: apps/client/src/pages/dashboard/resumes/_layouts/list/_components/resume-item.tsx:150 +msgid "Rename" +msgstr "Rename" + +#: apps/client/src/pages/dashboard/settings/_sections/account.tsx:201 +msgid "Resend email confirmation link" +msgstr "Resend email confirmation link" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-options.tsx:123 +msgid "Reset" +msgstr "Reset" + +#: apps/client/src/pages/builder/sidebars/right/sections/layout.tsx:210 +msgid "Reset Layout" +msgstr "Reset Layout" + +#: apps/client/src/pages/auth/reset-password/page.tsx:72 +msgid "Reset your password" +msgstr "Reset your password" + +#: apps/client/src/pages/builder/_components/toolbar.tsx:86 +msgid "Reset Zoom" +msgstr "Reset Zoom" + +#: apps/client/src/pages/dashboard/_components/sidebar.tsx:86 +#: apps/client/src/pages/dashboard/resumes/page.tsx:20 +#: apps/client/src/pages/dashboard/resumes/page.tsx:31 +msgid "Resumes" +msgstr "Resumes" + +#: apps/client/src/pages/home/sections/statistics/index.tsx:14 +msgid "Resumes Generated" +msgstr "Resumes Generated" + +#: apps/client/src/pages/builder/sidebars/left/sections/picture/options.tsx:149 +msgid "Rounded" +msgstr "Rounded" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-dialog.tsx:159 +#: apps/client/src/pages/dashboard/resumes/_dialogs/resume.tsx:255 +#: apps/client/src/pages/dashboard/settings/_sections/account.tsx:219 +#: apps/client/src/pages/dashboard/settings/_sections/profile.tsx:131 +msgid "Save Changes" +msgstr "Save Changes" + +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:179 +msgid "Scan the QR code below with your authenticator app to setup 2FA on your account." +msgstr "Scan the QR code below with your authenticator app to setup 2FA on your account." + +#. Score or honors for the degree, for example, CGPA or magna cum laude +#: apps/client/src/pages/builder/sidebars/left/dialogs/education.tsx:92 +msgid "Score" +msgstr "Score" + +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:99 +msgid "Search for a font family" +msgstr "Search for a font family" + +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:114 +msgid "Search for a font subset" +msgstr "Search for a font subset" + +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:127 +msgid "Search for a font variant" +msgstr "Search for a font variant" + +#: apps/client/src/pages/dashboard/settings/_sections/security.tsx:68 +msgid "Security" +msgstr "Security" + +#: apps/client/src/pages/auth/forgot-password/page.tsx:97 +msgid "Send Email" +msgstr "Send Email" + +#: apps/client/src/pages/builder/sidebars/right/sections/information.tsx:80 +msgid "Send me a message" +msgstr "Send me a message" + +#: apps/client/src/components/user-options.tsx:28 +#: apps/client/src/pages/dashboard/_components/sidebar.tsx:92 +#: apps/client/src/pages/dashboard/settings/page.tsx:16 +#: apps/client/src/pages/dashboard/settings/page.tsx:26 +msgid "Settings" +msgstr "Settings" + +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:170 +msgid "Setup two-factor authentication on your account" +msgstr "Setup two-factor authentication on your account" + +#: apps/client/src/pages/builder/sidebars/right/index.tsx:73 +#: apps/client/src/pages/builder/sidebars/right/sections/sharing.tsx:39 +msgid "Sharing" +msgstr "Sharing" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-options.tsx:77 +msgid "Show" +msgstr "Show" + +#: apps/client/src/pages/builder/sidebars/right/sections/page.tsx:78 +msgid "Show Break Line" +msgstr "Show Break Line" + +#: apps/client/src/pages/builder/sidebars/right/sections/page.tsx:91 +msgid "Show Page Numbers" +msgstr "Show Page Numbers" + +#: apps/client/src/pages/builder/sidebars/right/sections/layout.tsx:254 +msgid "Sidebar" +msgstr "Sidebar" + +#: apps/client/src/pages/auth/backup-otp/page.tsx:96 +#: apps/client/src/pages/auth/login/page.tsx:118 +#: apps/client/src/pages/auth/verify-otp/page.tsx:98 +msgid "Sign in" +msgstr "Sign in" + +#: apps/client/src/pages/auth/register/page.tsx:75 +msgid "Sign in now" +msgstr "Sign in now" + +#: apps/client/src/pages/auth/login/page.tsx:62 +msgid "Sign in to your account" +msgstr "Sign in to your account" + +#: apps/client/src/pages/auth/register/page.tsx:172 +msgid "Sign up" +msgstr "Sign up" + +#: apps/client/src/pages/builder/sidebars/left/sections/picture/options.tsx:73 +msgid "Size (in px)" +msgstr "Size (in px)" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/resume.tsx:242 +msgid "Slug" +msgstr "Slug" + +#: apps/client/src/pages/builder/sidebars/left/sections/picture/options.tsx:98 +#: apps/client/src/pages/builder/sidebars/left/sections/picture/options.tsx:143 +msgid "Square" +msgstr "Square" + +#: apps/client/src/pages/dashboard/resumes/_layouts/list/_components/create-item.tsx:24 +msgid "Start building from scratch" +msgstr "Start building from scratch" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/resume.tsx:199 +msgid "Start building your resume by giving it a name." +msgstr "Start building your resume by giving it a name." + +#: apps/client/src/pages/dashboard/resumes/_layouts/grid/_components/create-card.tsx:29 +msgid "Start from scratch" +msgstr "Start from scratch" + +#: apps/client/src/pages/builder/sidebars/right/index.tsx:76 +#: apps/client/src/pages/builder/sidebars/right/sections/statistics.tsx:23 +msgid "Statistics" +msgstr "Statistics" + +#: apps/client/src/pages/builder/sidebars/right/sections/statistics.tsx:38 +msgid "Statistics are available only for public resumes." +msgstr "Statistics are available only for public resumes." + +#: apps/client/src/pages/dashboard/settings/_sections/openai.tsx:101 +msgid "Store Locally" +msgstr "Store Locally" + +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:173 +msgid "Store your backup codes securely" +msgstr "Store your backup codes securely" + +#: apps/client/src/pages/dashboard/settings/_sections/openai.tsx:101 +msgid "Stored" +msgstr "Stored" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/awards.tsx:101 +#: apps/client/src/pages/builder/sidebars/left/dialogs/certifications.tsx:95 +#: apps/client/src/pages/builder/sidebars/left/dialogs/custom-section.tsx:123 +#: apps/client/src/pages/builder/sidebars/left/dialogs/education.tsx:138 +#: apps/client/src/pages/builder/sidebars/left/dialogs/experience.tsx:114 +#: apps/client/src/pages/builder/sidebars/left/dialogs/projects.tsx:100 +#: apps/client/src/pages/builder/sidebars/left/dialogs/publications.tsx:95 +#: apps/client/src/pages/builder/sidebars/left/dialogs/references.tsx:81 +#: apps/client/src/pages/builder/sidebars/left/dialogs/volunteer.tsx:109 +msgid "Summary" +msgstr "Summary" + +#: apps/client/src/pages/builder/sidebars/right/sections/information.tsx:18 +msgid "Support the app by donating what you can!" +msgstr "Support the app by donating what you can!" + +#: apps/client/src/pages/dashboard/settings/_sections/profile.tsx:78 +msgid "System" +msgstr "System" + +#: apps/client/src/pages/builder/sidebars/right/index.tsx:62 +#: apps/client/src/pages/builder/sidebars/right/sections/template.tsx:18 +msgid "Template" +msgstr "Template" + +#: apps/client/src/pages/builder/sidebars/right/sections/theme.tsx:103 +msgid "Text Color" +msgstr "Text Color" + +#: apps/client/src/pages/dashboard/settings/_sections/openai.tsx:25 +msgid "That doesn't look like a valid OpenAI API key." +msgstr "That doesn't look like a valid OpenAI API key." + +#: apps/client/src/pages/dashboard/settings/_sections/security.tsx:34 +msgid "The passwords you entered do not match." +msgstr "The passwords you entered do not match." + +#: apps/client/src/pages/public/page.tsx:104 +msgid "The resume you were looking for doesn't seem to exist, please check the link and try again." +msgstr "The resume you were looking for doesn't seem to exist, please check the link and try again." + +#: apps/client/src/pages/builder/sidebars/right/index.tsx:71 +#: apps/client/src/pages/builder/sidebars/right/sections/theme.tsx:20 +#: apps/client/src/pages/dashboard/settings/_sections/profile.tsx:71 +msgid "Theme" +msgstr "Theme" + +#: apps/client/src/services/resume/update.ts:35 +msgid "There was an error while updating your resume." +msgstr "There was an error while updating your resume." + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-dialog.tsx:117 +msgid "This action can be reverted by clicking on the undo button in the floating toolbar." +msgstr "This action can be reverted by clicking on the undo button in the floating toolbar." + +#: apps/client/src/pages/dashboard/resumes/_dialogs/resume.tsx:165 +msgid "This action cannot be undone. This will permanently delete your resume and cannot be recovered." +msgstr "This action cannot be undone. This will permanently delete your resume and cannot be recovered." + +#: apps/client/src/pages/builder/_components/header.tsx:56 +msgid "This resume is locked, please unlock to make further changes." +msgstr "This resume is locked, please unlock to make further changes." + +#: apps/client/src/pages/builder/sidebars/right/sections/notes.tsx:23 +msgid "This section is reserved for your personal notes specific to this resume. The content here remains private and is not shared with anyone else." +msgstr "This section is reserved for your personal notes specific to this resume. The content here remains private and is not shared with anyone else." + +#: apps/client/src/pages/dashboard/resumes/_dialogs/resume.tsx:230 +msgid "Tip: You can name the resume referring to the position you are applying for." +msgstr "Tip: You can name the resume referring to the position you are applying for." + +#: apps/client/src/pages/builder/sidebars/left/dialogs/awards.tsx:39 +msgctxt "Name of the Award" +msgid "Title" +msgstr "Title" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/resume.tsx:210 +msgid "Title" +msgstr "Title" + +#: apps/client/src/pages/builder/_components/toolbar.tsx:101 +msgid "Toggle Page Break Line" +msgstr "Toggle Page Break Line" + +#: apps/client/src/pages/builder/_components/toolbar.tsx:114 +msgid "Toggle Page Numbers" +msgstr "Toggle Page Numbers" + +#: apps/client/src/pages/auth/verify-otp/page.tsx:63 +#: apps/client/src/pages/dashboard/settings/_sections/security.tsx:135 +msgid "Two-Factor Authentication" +msgstr "Two-Factor Authentication" + +#: apps/client/src/pages/dashboard/settings/_sections/danger.tsx:84 +msgid "Type <0>delete to confirm deleting your account." +msgstr "Type <0>delete to confirm deleting your account." + +#. For example, Bachelor's Degree or Master's Degree +#: apps/client/src/pages/builder/sidebars/left/dialogs/education.tsx:54 +msgid "Type of Study" +msgstr "Type of Study" + +#: apps/client/src/pages/builder/sidebars/right/index.tsx:68 +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:67 +msgid "Typography" +msgstr "Typography" + +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:181 +msgid "Underline Links" +msgstr "Underline Links" + +#: apps/client/src/pages/builder/_components/toolbar.tsx:59 +msgid "Undo" +msgstr "Undo" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/lock.tsx:52 +#: apps/client/src/pages/dashboard/resumes/_layouts/grid/_components/resume-card.tsx:137 +msgid "Unlock" +msgstr "Unlock" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/lock.tsx:44 +msgid "Unlocking a resume will allow you to make changes to it again." +msgstr "Unlocking a resume will allow you to make changes to it again." + +#: apps/client/src/pages/dashboard/settings/_sections/account.tsx:194 +msgid "Unverified" +msgstr "Unverified" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-dialog.tsx:147 +msgid "Update an existing item" +msgstr "Update an existing item" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/resume.tsx:193 +msgid "Update an existing resume" +msgstr "Update an existing resume" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/import.tsx:214 +msgid "Upload a file from one of the accepted sources to parse existing data and import it into Reactive Resume for easier editing." +msgstr "Upload a file from one of the accepted sources to parse existing data and import it into Reactive Resume for easier editing." + +#: apps/client/src/pages/builder/sidebars/right/sections/sharing.tsx:73 +msgid "URL" +msgstr "URL" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/url-input.tsx:47 +msgid "URL must start with https://" +msgstr "URL must start with https://" + +#: apps/client/src/pages/auth/backup-otp/page.tsx:63 +msgid "Use your backup code" +msgstr "Use your backup code" + +#: apps/client/src/pages/auth/register/page.tsx:114 +#: apps/client/src/pages/builder/sidebars/left/dialogs/profiles.tsx:54 +#: apps/client/src/pages/dashboard/settings/_sections/account.tsx:165 +msgid "Username" +msgstr "Username" + +#: apps/client/src/pages/home/sections/statistics/index.tsx:13 +msgid "Users Signed Up" +msgstr "Users Signed Up" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/import.tsx:298 +msgid "Validate" +msgstr "Validate" + +#: apps/client/src/pages/dashboard/resumes/_dialogs/import.tsx:316 +msgid "Validated" +msgstr "Validated" + +#: apps/client/src/pages/builder/sidebars/left/sections/custom/section.tsx:57 +msgid "Value" +msgstr "Value" + +#: apps/client/src/pages/dashboard/settings/_sections/account.tsx:194 +msgid "Verified" +msgstr "Verified" + +#: apps/client/src/pages/dashboard/settings/_dialogs/two-factor.tsx:172 +msgid "Verify that two-factor authentication has been setup correctly" +msgstr "Verify that two-factor authentication has been setup correctly" + +#: apps/client/src/pages/auth/verify-email/page.tsx:55 +msgid "Verify your email address" +msgstr "Verify your email address" + +#: apps/client/src/pages/home/sections/hero/index.tsx:24 +msgid "Version 4" +msgstr "Version 4" + +#: apps/client/src/pages/builder/sidebars/right/sections/statistics.tsx:51 +msgid "Views" +msgstr "Views" + +#: apps/client/src/pages/builder/sidebars/left/sections/shared/section-list-item.tsx:85 +msgid "Visible" +msgstr "Visible" + +#: apps/client/src/pages/auth/verify-email/page.tsx:68 +msgid "We verify your email address only to ensure that we can send you a password reset link in case you forget your password." +msgstr "We verify your email address only to ensure that we can send you a password reset link in case you forget your password." + +#: apps/client/src/pages/builder/sidebars/left/dialogs/awards.tsx:87 +#: apps/client/src/pages/builder/sidebars/left/dialogs/certifications.tsx:81 +#: apps/client/src/pages/builder/sidebars/left/dialogs/custom-section.tsx:109 +#: apps/client/src/pages/builder/sidebars/left/dialogs/education.tsx:124 +#: apps/client/src/pages/builder/sidebars/left/dialogs/experience.tsx:100 +#: apps/client/src/pages/builder/sidebars/left/dialogs/profiles.tsx:68 +#: apps/client/src/pages/builder/sidebars/left/dialogs/projects.tsx:86 +#: apps/client/src/pages/builder/sidebars/left/dialogs/publications.tsx:81 +#: apps/client/src/pages/builder/sidebars/left/dialogs/references.tsx:67 +#: apps/client/src/pages/builder/sidebars/left/dialogs/volunteer.tsx:95 +#: apps/client/src/pages/builder/sidebars/left/sections/basics.tsx:63 +msgid "Website" +msgstr "Website" + +#: apps/client/src/pages/home/sections/hero/index.tsx:27 +msgid "What's new in the latest version" +msgstr "What's new in the latest version" + +#: apps/client/src/pages/builder/sidebars/left/dialogs/custom-section.tsx:150 +#: apps/client/src/pages/builder/sidebars/left/dialogs/interests.tsx:60 +#: apps/client/src/pages/builder/sidebars/left/dialogs/projects.tsx:127 +#: apps/client/src/pages/builder/sidebars/left/dialogs/skills.tsx:100 +msgid "You can add multiple keywords by separating them with a comma or pressing enter." +msgstr "You can add multiple keywords by separating them with a comma or pressing enter." + +#: apps/client/src/pages/auth/login/page.tsx:90 +msgid "You can also enter your username." +msgstr "You can also enter your username." + +#: apps/client/src/pages/dashboard/settings/_sections/openai.tsx:54 +msgid "You can make use of the OpenAI API to help you generate content, or improve your writing while composing your resume." +msgstr "You can make use of the OpenAI API to help you generate content, or improve your writing while composing your resume." + +#: apps/client/src/pages/builder/sidebars/right/sections/statistics.tsx:40 +msgid "You can track the number of views your resume has received, or how many people have downloaded the resume by enabling public sharing." +msgstr "You can track the number of views your resume has received, or how many people have downloaded the resume by enabling public sharing." + +#: apps/client/src/pages/dashboard/settings/_sections/openai.tsx:60 +msgid "You have the option to <0>obtain your own OpenAI API key. This key empowers you to leverage the API as you see fit. Alternatively, if you wish to disable the AI features in Reactive Resume altogether, you can simply remove the key from your settings." +msgstr "You have the option to <0>obtain your own OpenAI API key. This key empowers you to leverage the API as you see fit. Alternatively, if you wish to disable the AI features in Reactive Resume altogether, you can simply remove the key from your settings." + +#: apps/client/src/pages/auth/verify-email/page.tsx:57 +msgid "You should have received an email from <0>Reactive Resume with a link to verify your account." +msgstr "You should have received an email from <0>Reactive Resume with a link to verify your account." + +#: apps/client/src/pages/auth/forgot-password/page.tsx:59 +msgid "You've got mail!" +msgstr "You've got mail!" + +#: apps/client/src/pages/dashboard/settings/_sections/danger.tsx:52 +msgid "Your account and all your data has been deleted successfully. Goodbye!" +msgstr "Your account and all your data has been deleted successfully. Goodbye!" + +#: apps/client/src/pages/dashboard/settings/_sections/openai.tsx:116 +msgid "Your API key is securely stored in the browser's local storage and is only utilized when making requests to OpenAI via their official SDK. Rest assured that your key is not transmitted to any external server except when interacting with OpenAI's services." +msgstr "Your API key is securely stored in the browser's local storage and is only utilized when making requests to OpenAI via their official SDK. Rest assured that your key is not transmitted to any external server except when interacting with OpenAI's services." + +#: apps/client/src/pages/auth/verify-email/page.tsx:29 +msgid "Your email address has been verified successfully." +msgstr "Your email address has been verified successfully." + +#: apps/client/src/services/openai/client.ts:11 +msgid "Your OpenAI API Key has not been set yet. Please go to your account settings to enable OpenAI Integration." +msgstr "Your OpenAI API Key has not been set yet. Please go to your account settings to enable OpenAI Integration." + +#: apps/client/src/pages/dashboard/settings/_sections/security.tsx:59 +msgid "Your password has been updated successfully." +msgstr "Your password has been updated successfully." + +#: apps/client/src/pages/builder/_components/toolbar.tsx:74 +msgid "Zoom In" +msgstr "Zoom In" + +#: apps/client/src/pages/builder/_components/toolbar.tsx:80 +msgid "Zoom Out" +msgstr "Zoom Out" diff --git a/apps/client/src/pages/auth/_components/social-auth.tsx b/apps/client/src/pages/auth/_components/social-auth.tsx index efb51c707..fe1a0b6fe 100644 --- a/apps/client/src/pages/auth/_components/social-auth.tsx +++ b/apps/client/src/pages/auth/_components/social-auth.tsx @@ -1,3 +1,4 @@ +import { t } from "@lingui/macro"; import { GithubLogo, GoogleLogo } from "@phosphor-icons/react"; import { Button } from "@reactive-resume/ui"; @@ -5,15 +6,15 @@ export const SocialAuth = () => (
diff --git a/apps/client/src/pages/auth/backup-otp/page.tsx b/apps/client/src/pages/auth/backup-otp/page.tsx index ea6bcd751..211476f1d 100644 --- a/apps/client/src/pages/auth/backup-otp/page.tsx +++ b/apps/client/src/pages/auth/backup-otp/page.tsx @@ -1,4 +1,5 @@ import { zodResolver } from "@hookform/resolvers/zod"; +import { t } from "@lingui/macro"; import { Warning } from "@phosphor-icons/react"; import { twoFactorBackupSchema } from "@reactive-resume/dto"; import { usePasswordToggle } from "@reactive-resume/hooks"; @@ -49,7 +50,7 @@ export const BackupOtpPage = () => { toast({ variant: "error", icon: , - title: "An error occurred while trying to sign in", + title: t`An error occurred while trying to sign in to your account.`, description: message, }); } @@ -59,9 +60,9 @@ export const BackupOtpPage = () => { return (
-

Use your backup code

+

{t`Use your backup code`}

- Enter one of the 10 backup codes you saved when you enabled two-factor authentication. + {t`Enter one of the 10 backup codes you saved when you enabled two-factor authentication.`}
@@ -77,12 +78,12 @@ export const BackupOtpPage = () => { control={form.control} render={({ field }) => ( - Backup Code + {t`Backup Code`} @@ -92,7 +93,7 @@ export const BackupOtpPage = () => { /> diff --git a/apps/client/src/pages/auth/forgot-password/page.tsx b/apps/client/src/pages/auth/forgot-password/page.tsx index 64e61b4cf..321816195 100644 --- a/apps/client/src/pages/auth/forgot-password/page.tsx +++ b/apps/client/src/pages/auth/forgot-password/page.tsx @@ -1,4 +1,5 @@ import { zodResolver } from "@hookform/resolvers/zod"; +import { t } from "@lingui/macro"; import { Warning } from "@phosphor-icons/react"; import { forgotPasswordSchema } from "@reactive-resume/dto"; import { @@ -44,7 +45,7 @@ export const ForgotPasswordPage = () => { toast({ variant: "error", icon: , - title: "An error occurred while trying to send your password recovery email", + title: t`An error occurred while trying to send your password recovery email.`, description: message, }); } @@ -55,11 +56,10 @@ export const ForgotPasswordPage = () => { return (
-

You've got mail!

+

{t`You've got mail!`}

- A password reset link should have been sent to your inbox, if an account existed with - the email you provided. + {t`A password reset link should have been sent to your inbox, if an account existed with the email you provided.`}
@@ -70,10 +70,9 @@ export const ForgotPasswordPage = () => { return (
-

Forgot your password?

+

{t`Forgot your password?`}

- Enter your email address and we will send you a link to reset your password if the account - exists. + {t`Enter your email address and we will send you a link to reset your password if the account exists.`}
@@ -85,7 +84,7 @@ export const ForgotPasswordPage = () => { control={form.control} render={({ field }) => ( - Email + {t`Email`} @@ -95,7 +94,7 @@ export const ForgotPasswordPage = () => { /> diff --git a/apps/client/src/pages/auth/layout.tsx b/apps/client/src/pages/auth/layout.tsx index 64fc22b6c..78f6005b3 100644 --- a/apps/client/src/pages/auth/layout.tsx +++ b/apps/client/src/pages/auth/layout.tsx @@ -1,3 +1,4 @@ +import { t } from "@lingui/macro"; import { useMemo } from "react"; import { Link, matchRoutes, Outlet, useLocation } from "react-router-dom"; @@ -25,7 +26,13 @@ export const AuthLayout = () => { <>

- or continue with + + {t({ + message: "or continue with", + context: + "The user can either login with email/password, or continue with GitHub or Google.", + })} +
@@ -38,18 +45,18 @@ export const AuthLayout = () => { Open books on a table
diff --git a/apps/client/src/pages/auth/login/page.tsx b/apps/client/src/pages/auth/login/page.tsx index c2a202485..b29e48c78 100644 --- a/apps/client/src/pages/auth/login/page.tsx +++ b/apps/client/src/pages/auth/login/page.tsx @@ -1,4 +1,5 @@ import { zodResolver } from "@hookform/resolvers/zod"; +import { t, Trans } from "@lingui/macro"; import { ArrowRight, Warning } from "@phosphor-icons/react"; import { loginSchema } from "@reactive-resume/dto"; import { usePasswordToggle } from "@reactive-resume/hooks"; @@ -48,7 +49,7 @@ export const LoginPage = () => { toast({ variant: "error", icon: , - title: "An error occurred while trying to sign in", + title: t`An error occurred while trying to sign in to your account.`, description: message, }); } @@ -58,12 +59,13 @@ export const LoginPage = () => { return (
-

Sign in to your account

+

{t`Sign in to your account`}

- Don't have an account? + {t`Don't have an account?`}
@@ -81,11 +83,11 @@ export const LoginPage = () => { control={form.control} render={({ field }) => ( - Email + {t`Email`} - You can also enter your username. + {t`You can also enter your username.`} )} @@ -96,13 +98,15 @@ export const LoginPage = () => { control={form.control} render={({ field }) => ( - Password + {t`Password`} - Hold Ctrl to display your password - temporarily. + + Hold Ctrl to display your password + temporarily. + @@ -111,11 +115,11 @@ export const LoginPage = () => {
diff --git a/apps/client/src/pages/auth/register/page.tsx b/apps/client/src/pages/auth/register/page.tsx index bcd6ba5fb..9e36c2f08 100644 --- a/apps/client/src/pages/auth/register/page.tsx +++ b/apps/client/src/pages/auth/register/page.tsx @@ -1,4 +1,5 @@ import { zodResolver } from "@hookform/resolvers/zod"; +import { t, Trans } from "@lingui/macro"; import { ArrowRight, Warning } from "@phosphor-icons/react"; import { registerSchema } from "@reactive-resume/dto"; import { usePasswordToggle } from "@reactive-resume/hooks"; @@ -38,7 +39,7 @@ export const RegisterPage = () => { username: "", email: "", password: "", - language: "en", + locale: "en", }, }); @@ -56,7 +57,7 @@ export const RegisterPage = () => { toast({ variant: "error", icon: , - title: "An error occurred while trying to sign up", + title: t`An error occurred while trying to create a new account.`, description: message, }); } @@ -66,12 +67,12 @@ export const RegisterPage = () => { return (
-

Create a new account

+

{t`Create a new account`}

- Already have an account? + {t`Already have an account?`}
@@ -89,9 +90,16 @@ export const RegisterPage = () => { control={form.control} render={({ field }) => ( - Name + {t`Name`} - + @@ -103,9 +111,16 @@ export const RegisterPage = () => { control={form.control} render={({ field }) => ( - Username + {t`Username`} - + @@ -117,9 +132,16 @@ export const RegisterPage = () => { control={form.control} render={({ field }) => ( - Email + {t`Email`} - + @@ -131,13 +153,15 @@ export const RegisterPage = () => { control={form.control} render={({ field }) => ( - Password + {t`Password`} - Hold Ctrl to display your password - temporarily. + + Hold Ctrl to display your password + temporarily. + @@ -145,7 +169,7 @@ export const RegisterPage = () => { /> diff --git a/apps/client/src/pages/auth/reset-password/page.tsx b/apps/client/src/pages/auth/reset-password/page.tsx index 993fd8007..e9d39c7b4 100644 --- a/apps/client/src/pages/auth/reset-password/page.tsx +++ b/apps/client/src/pages/auth/reset-password/page.tsx @@ -1,4 +1,5 @@ import { zodResolver } from "@hookform/resolvers/zod"; +import { t, Trans } from "@lingui/macro"; import { Warning } from "@phosphor-icons/react"; import { resetPasswordSchema } from "@reactive-resume/dto"; import { usePasswordToggle } from "@reactive-resume/hooks"; @@ -53,7 +54,7 @@ export const ResetPasswordPage = () => { toast({ variant: "error", icon: , - title: "An error occurred while trying to reset your password", + title: t`An error occurred while trying to reset your password.`, description: message, }); } @@ -68,9 +69,9 @@ export const ResetPasswordPage = () => { return (
-

Reset your password

+

{t`Reset your password`}

- Enter a new password below, and make sure it's secure. + {t`Enter a new password below, and make sure it's secure.`}
@@ -86,13 +87,15 @@ export const ResetPasswordPage = () => { control={form.control} render={({ field }) => ( - Password + {t`Password`} - Hold Ctrl to display your password - temporarily. + + Hold Ctrl to display your password + temporarily. + @@ -100,7 +103,7 @@ export const ResetPasswordPage = () => { /> diff --git a/apps/client/src/pages/auth/verify-email/page.tsx b/apps/client/src/pages/auth/verify-email/page.tsx index 4ce5b325a..275551207 100644 --- a/apps/client/src/pages/auth/verify-email/page.tsx +++ b/apps/client/src/pages/auth/verify-email/page.tsx @@ -1,3 +1,4 @@ +import { t, Trans } from "@lingui/macro"; import { ArrowRight, Info, SealCheck, Warning } from "@phosphor-icons/react"; import { Alert, AlertDescription, AlertTitle, Button } from "@reactive-resume/ui"; import { AxiosError } from "axios"; @@ -25,7 +26,7 @@ export const VerifyEmailPage = () => { toast({ variant: "success", icon: , - title: "Your email address has been verified successfully.", + title: t`Your email address has been verified successfully.`, }); navigate("/dashboard/resumes", { replace: true }); @@ -36,7 +37,7 @@ export const VerifyEmailPage = () => { toast({ variant: "error", icon: , - title: "An error occurred while trying to verify your email address", + title: t`An error occurred while trying to verify your email address.`, description: message, }); } @@ -51,27 +52,26 @@ export const VerifyEmailPage = () => { return (
-

Verify your email address

+

{t`Verify your email address`}

- You should have received an email from Reactive Resume with a link to - verify your account. + + You should have received an email from Reactive Resume with a link to + verify your account. +

- - Please note that this step is completely optional. - + {t`Please note that this step is completely optional.`} - We verify your email address only to ensure that we can send you a password reset link in - case you forget your password. + {t`We verify your email address only to ensure that we can send you a password reset link in case you forget your password.`} diff --git a/apps/client/src/pages/auth/verify-otp/page.tsx b/apps/client/src/pages/auth/verify-otp/page.tsx index 3a43ecf0f..7d5a52721 100644 --- a/apps/client/src/pages/auth/verify-otp/page.tsx +++ b/apps/client/src/pages/auth/verify-otp/page.tsx @@ -1,4 +1,5 @@ import { zodResolver } from "@hookform/resolvers/zod"; +import { t } from "@lingui/macro"; import { ArrowRight, Warning } from "@phosphor-icons/react"; import { twoFactorSchema } from "@reactive-resume/dto"; import { usePasswordToggle } from "@reactive-resume/hooks"; @@ -49,7 +50,7 @@ export const VerifyOtpPage = () => { toast({ variant: "error", icon: , - title: "An error occurred while trying to sign in", + title: t`An error occurred while trying to sign in to your account.`, description: message, }); } @@ -59,14 +60,14 @@ export const VerifyOtpPage = () => { return (
-

Two Step Verification

+

{t`Two-Factor Authentication`}

- Enter the one-time password provided by your authenticator app below. + {t`Enter the one-time password provided by your authenticator app below.`}
@@ -84,7 +85,7 @@ export const VerifyOtpPage = () => { control={form.control} render={({ field }) => ( - One-Time Password + {t`One-Time Password`} @@ -94,7 +95,7 @@ export const VerifyOtpPage = () => { /> diff --git a/apps/client/src/pages/builder/_components/header.tsx b/apps/client/src/pages/builder/_components/header.tsx index a9479b377..cf8bf884d 100644 --- a/apps/client/src/pages/builder/_components/header.tsx +++ b/apps/client/src/pages/builder/_components/header.tsx @@ -1,3 +1,4 @@ +import { t } from "@lingui/macro"; import { HouseSimple, Lock, SidebarSimple } from "@phosphor-icons/react"; import { useBreakpoint } from "@reactive-resume/hooks"; import { Button, Tooltip } from "@reactive-resume/ui"; @@ -52,7 +53,7 @@ export const BuilderHeader = () => {

{title}

{locked && ( - + )} diff --git a/apps/client/src/pages/builder/_components/toolbar.tsx b/apps/client/src/pages/builder/_components/toolbar.tsx index 25ff3ebc8..3d54597ef 100644 --- a/apps/client/src/pages/builder/_components/toolbar.tsx +++ b/apps/client/src/pages/builder/_components/toolbar.tsx @@ -1,3 +1,4 @@ +import { t } from "@lingui/macro"; import { ArrowClockwise, ArrowCounterClockwise, @@ -55,14 +56,14 @@ export const BuilderToolbar = () => { >
{/* Undo */} - + {/* Redo */} - + @@ -70,25 +71,25 @@ export const BuilderToolbar = () => { - + - + - + - + @@ -97,7 +98,7 @@ export const BuilderToolbar = () => { {/* Toggle Page Break Line */} - + { {/* Toggle Page Numbers */} - + { {/* Copy Link to Resume */} - + {/* Download PDF */} - +