diff --git a/apps/client/index.html b/apps/client/index.html index 12a3f683..7e85c5dd 100644 --- a/apps/client/index.html +++ b/apps/client/index.html @@ -40,7 +40,9 @@ - - + + +
+
diff --git a/apps/client/src/libs/lingui.ts b/apps/client/src/libs/lingui.ts index 0812d4a5..421127e3 100644 --- a/apps/client/src/libs/lingui.ts +++ b/apps/client/src/libs/lingui.ts @@ -1,12 +1,23 @@ import { i18n } from "@lingui/core"; import { t } from "@lingui/macro"; +type Locale = "en-US" | "de-DE" | "zu-ZA"; + export const defaultLocale = "en-US"; -export const getLocales = () => ({ - "en-US": t`English`, - "de-DE": t`German`, -}); +export const getLocales = () => { + const locales = { + "en-US": t`English`, + "de-DE": t`German`, + } as Record; + + if (process.env.NODE_ENV === "development") { + // eslint-disable-next-line lingui/no-unlocalized-strings + locales["zu-ZA"] = "Pseudolocalization"; + } + + return locales; +}; export async function dynamicActivate(locale: string) { const { messages } = await import(`../locales/${locale}/messages.po`); diff --git a/apps/client/src/locales/de-DE/messages.po b/apps/client/src/locales/de-DE/messages.po index c445d62d..55206856 100644 --- a/apps/client/src/locales/de-DE/messages.po +++ b/apps/client/src/locales/de-DE/messages.po @@ -1,6 +1,6 @@ msgid "" msgstr "" -"POT-Creation-Date: 2023-11-10 09:26+0100\n" +"POT-Creation-Date: 2023-11-10 11:19+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -40,6 +40,7 @@ msgid "<0>Two-factor authentication is enabled. You will be asked to enter a msgstr "" #: apps/client/src/pages/home/page.tsx:12 +#: apps/client/src/pages/home/sections/hero/index.tsx:35 msgid "A free and open-source resume builder" msgstr "" @@ -48,10 +49,6 @@ msgstr "" 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 "" @@ -81,6 +78,12 @@ msgstr "" msgid "Add a custom field" 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 a new item" +msgstr "" + #: apps/client/src/pages/builder/sidebars/left/sections/shared/section-options.tsx:67 msgid "Add a new item" msgstr "" @@ -90,12 +93,6 @@ msgstr "" 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 "" @@ -422,7 +419,7 @@ 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." +msgid "Don't see your language? <0>Help translate the app." msgstr "" #: apps/client/src/pages/builder/sidebars/right/sections/information.tsx:41 @@ -481,7 +478,7 @@ msgstr "" msgid "Enable 2FA" msgstr "" -#: apps/client/src/libs/lingui.ts:5 +#: apps/client/src/libs/lingui.ts:10 msgid "English" msgstr "" @@ -509,7 +506,7 @@ msgstr "" msgid "Errors" msgstr "" -#: apps/client/src/pages/builder/sidebars/right/index.tsx:79 +#: apps/client/src/pages/builder/sidebars/right/index.tsx:82 #: apps/client/src/pages/builder/sidebars/right/sections/export.tsx:40 msgid "Export" msgstr "" @@ -538,19 +535,19 @@ msgstr "" msgid "Fluency (CEFR)" msgstr "" -#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:95 +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:94 msgid "Font Family" msgstr "" -#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:136 +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:135 msgid "Font Size" msgstr "" -#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:110 +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:109 msgid "Font Subset" msgstr "" -#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:122 +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:121 msgid "Font Variants" msgstr "" @@ -592,7 +589,7 @@ msgstr "" msgid "Generate a random title for your resume" msgstr "" -#: apps/client/src/libs/lingui.ts:6 +#: apps/client/src/libs/lingui.ts:11 msgid "German" msgstr "" @@ -697,7 +694,7 @@ msgstr "" 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/index.tsx:86 #: apps/client/src/pages/builder/sidebars/right/sections/information.tsx:123 msgid "Information" msgstr "" @@ -740,6 +737,7 @@ msgstr "" msgid "Label" msgstr "" +#: apps/client/src/pages/builder/sidebars/right/sections/locale.tsx:42 #: apps/client/src/pages/dashboard/settings/_sections/profile.tsx:93 msgid "Language" msgstr "" @@ -749,7 +747,7 @@ msgstr "" msgid "Last updated {lastUpdated}" msgstr "" -#: apps/client/src/pages/builder/sidebars/right/index.tsx:65 +#: apps/client/src/pages/builder/sidebars/right/index.tsx:68 #: apps/client/src/pages/builder/sidebars/right/sections/layout.tsx:207 msgid "Layout" msgstr "" @@ -774,7 +772,7 @@ msgstr "" msgid "Light" msgstr "" -#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:153 +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:152 msgid "Line Height" msgstr "" @@ -787,6 +785,10 @@ msgstr "" msgid "List" msgstr "" +#: apps/client/src/pages/builder/sidebars/right/sections/locale.tsx:36 +msgid "Locale" +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 @@ -864,7 +866,7 @@ msgstr "" 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/index.tsx:83 #: apps/client/src/pages/builder/sidebars/right/sections/notes.tsx:17 msgid "Notes" msgstr "" @@ -894,7 +896,7 @@ 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 +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:169 msgid "Options" msgstr "" @@ -907,7 +909,7 @@ msgstr "" msgid "Organization" msgstr "" -#: apps/client/src/pages/builder/sidebars/right/index.tsx:72 +#: apps/client/src/pages/builder/sidebars/right/index.tsx:75 #: apps/client/src/pages/builder/sidebars/right/sections/page.tsx:26 msgid "Page" msgstr "" @@ -1081,15 +1083,15 @@ msgstr "" msgid "Score" msgstr "" -#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:99 +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:98 msgid "Search for a font family" msgstr "" -#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:114 +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:113 msgid "Search for a font subset" msgstr "" -#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:127 +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:126 msgid "Search for a font variant" msgstr "" @@ -1116,7 +1118,7 @@ msgstr "" 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/index.tsx:76 #: apps/client/src/pages/builder/sidebars/right/sections/sharing.tsx:39 msgid "Sharing" msgstr "" @@ -1180,7 +1182,7 @@ msgstr "" msgid "Start from scratch" msgstr "" -#: apps/client/src/pages/builder/sidebars/right/index.tsx:76 +#: apps/client/src/pages/builder/sidebars/right/index.tsx:79 #: apps/client/src/pages/builder/sidebars/right/sections/statistics.tsx:23 msgid "Statistics" msgstr "" @@ -1221,7 +1223,7 @@ msgstr "" msgid "System" msgstr "" -#: apps/client/src/pages/builder/sidebars/right/index.tsx:62 +#: apps/client/src/pages/builder/sidebars/right/index.tsx:65 #: apps/client/src/pages/builder/sidebars/right/sections/template.tsx:18 msgid "Template" msgstr "" @@ -1242,7 +1244,7 @@ msgstr "" 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/index.tsx:74 #: apps/client/src/pages/builder/sidebars/right/sections/theme.tsx:20 #: apps/client/src/pages/dashboard/settings/_sections/profile.tsx:71 msgid "Theme" @@ -1303,12 +1305,12 @@ msgstr "" 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 +#: apps/client/src/pages/builder/sidebars/right/index.tsx:71 +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:66 msgid "Typography" msgstr "" -#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:181 +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:180 msgid "Underline Links" msgstr "" diff --git a/apps/client/src/locales/en-US/messages.po b/apps/client/src/locales/en-US/messages.po index 54630755..25182645 100644 --- a/apps/client/src/locales/en-US/messages.po +++ b/apps/client/src/locales/en-US/messages.po @@ -1,6 +1,6 @@ msgid "" msgstr "" -"POT-Creation-Date: 2023-11-10 09:26+0100\n" +"POT-Creation-Date: 2023-11-10 11:19+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -40,6 +40,7 @@ msgid "<0>Two-factor authentication is enabled. You will be asked to enter a 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 +#: 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" @@ -48,10 +49,6 @@ msgstr "A free and open-source resume builder" 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." @@ -81,6 +78,12 @@ msgstr "Account" msgid "Add a custom field" msgstr "Add a custom field" +#: 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 a new item" +msgstr "Add a new item" + #: apps/client/src/pages/builder/sidebars/left/sections/shared/section-options.tsx:67 msgid "Add a new item" msgstr "Add a new item" @@ -90,12 +93,6 @@ msgstr "Add a new item" 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" @@ -422,8 +419,8 @@ 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." +msgid "Don't see your language? <0>Help translate the app." +msgstr "Don't see your language? <0>Help translate the app." #: apps/client/src/pages/builder/sidebars/right/sections/information.tsx:41 msgid "Donate to Reactive Resume" @@ -481,7 +478,7 @@ msgstr "Email" msgid "Enable 2FA" msgstr "Enable 2FA" -#: apps/client/src/libs/lingui.ts:5 +#: apps/client/src/libs/lingui.ts:10 msgid "English" msgstr "English" @@ -509,7 +506,7 @@ msgstr "Enter your email address and we will send you a link to reset your passw msgid "Errors" msgstr "Errors" -#: apps/client/src/pages/builder/sidebars/right/index.tsx:79 +#: apps/client/src/pages/builder/sidebars/right/index.tsx:82 #: apps/client/src/pages/builder/sidebars/right/sections/export.tsx:40 msgid "Export" msgstr "Export" @@ -538,19 +535,19 @@ msgstr "Fluency" msgid "Fluency (CEFR)" msgstr "Fluency (CEFR)" -#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:95 +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:94 msgid "Font Family" msgstr "Font Family" -#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:136 +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:135 msgid "Font Size" msgstr "Font Size" -#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:110 +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:109 msgid "Font Subset" msgstr "Font Subset" -#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:122 +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:121 msgid "Font Variants" msgstr "Font Variants" @@ -592,7 +589,7 @@ msgstr "Full Name" msgid "Generate a random title for your resume" msgstr "Generate a random title for your resume" -#: apps/client/src/libs/lingui.ts:6 +#: apps/client/src/libs/lingui.ts:11 msgid "German" msgstr "German" @@ -697,7 +694,7 @@ msgstr "In this section, you can change your password and enable/disable two-fac 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/index.tsx:86 #: apps/client/src/pages/builder/sidebars/right/sections/information.tsx:123 msgid "Information" msgstr "Information" @@ -740,6 +737,7 @@ msgstr "Keywords" msgid "Label" msgstr "Label" +#: apps/client/src/pages/builder/sidebars/right/sections/locale.tsx:42 #: apps/client/src/pages/dashboard/settings/_sections/profile.tsx:93 msgid "Language" msgstr "Language" @@ -749,7 +747,7 @@ msgstr "Language" 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/index.tsx:68 #: apps/client/src/pages/builder/sidebars/right/sections/layout.tsx:207 msgid "Layout" msgstr "Layout" @@ -774,7 +772,7 @@ msgstr "Licensed under <0>MIT" msgid "Light" msgstr "Light" -#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:153 +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:152 msgid "Line Height" msgstr "Line Height" @@ -787,6 +785,10 @@ msgstr "LinkedIn, JSON Resume, etc." msgid "List" msgstr "List" +#: apps/client/src/pages/builder/sidebars/right/sections/locale.tsx:36 +msgid "Locale" +msgstr "Locale" + #: 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 @@ -864,7 +866,7 @@ msgstr "New Password" 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/index.tsx:83 #: apps/client/src/pages/builder/sidebars/right/sections/notes.tsx:17 msgid "Notes" msgstr "Notes" @@ -894,7 +896,7 @@ 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 +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:169 msgid "Options" msgstr "Options" @@ -907,7 +909,7 @@ msgstr "or continue with" msgid "Organization" msgstr "Organization" -#: apps/client/src/pages/builder/sidebars/right/index.tsx:72 +#: apps/client/src/pages/builder/sidebars/right/index.tsx:75 #: apps/client/src/pages/builder/sidebars/right/sections/page.tsx:26 msgid "Page" msgstr "Page" @@ -1081,15 +1083,15 @@ msgstr "Scan the QR code below with your authenticator app to setup 2FA on your msgid "Score" msgstr "Score" -#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:99 +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:98 msgid "Search for a font family" msgstr "Search for a font family" -#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:114 +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:113 msgid "Search for a font subset" msgstr "Search for a font subset" -#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:127 +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:126 msgid "Search for a font variant" msgstr "Search for a font variant" @@ -1116,7 +1118,7 @@ msgstr "Settings" 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/index.tsx:76 #: apps/client/src/pages/builder/sidebars/right/sections/sharing.tsx:39 msgid "Sharing" msgstr "Sharing" @@ -1180,7 +1182,7 @@ msgstr "Start building your resume by giving it a name." 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/index.tsx:79 #: apps/client/src/pages/builder/sidebars/right/sections/statistics.tsx:23 msgid "Statistics" msgstr "Statistics" @@ -1221,7 +1223,7 @@ msgstr "Support the app by donating what you can!" msgid "System" msgstr "System" -#: apps/client/src/pages/builder/sidebars/right/index.tsx:62 +#: apps/client/src/pages/builder/sidebars/right/index.tsx:65 #: apps/client/src/pages/builder/sidebars/right/sections/template.tsx:18 msgid "Template" msgstr "Template" @@ -1242,7 +1244,7 @@ msgstr "The passwords you entered do not match." 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/index.tsx:74 #: apps/client/src/pages/builder/sidebars/right/sections/theme.tsx:20 #: apps/client/src/pages/dashboard/settings/_sections/profile.tsx:71 msgid "Theme" @@ -1303,12 +1305,12 @@ msgstr "Type <0>delete to confirm deleting your account." 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 +#: apps/client/src/pages/builder/sidebars/right/index.tsx:71 +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:66 msgid "Typography" msgstr "Typography" -#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:181 +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:180 msgid "Underline Links" msgstr "Underline Links" diff --git a/apps/client/src/locales/zu-ZA/messages.po b/apps/client/src/locales/zu-ZA/messages.po new file mode 100644 index 00000000..69679203 --- /dev/null +++ b/apps/client/src/locales/zu-ZA/messages.po @@ -0,0 +1,1483 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2023-11-10 11:19+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: zu-ZA\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 +#: apps/client/src/pages/home/sections/hero/index.tsx:35 +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/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-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 a new item" +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/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 language? <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:10 +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:82 +#: 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:94 +msgid "Font Family" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:135 +msgid "Font Size" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:109 +msgid "Font Subset" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:121 +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:11 +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:86 +#: 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/builder/sidebars/right/sections/locale.tsx:42 +#: 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:68 +#: 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:152 +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/right/sections/locale.tsx:36 +msgid "Locale" +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:83 +#: 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:169 +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:75 +#: 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:98 +msgid "Search for a font family" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:113 +msgid "Search for a font subset" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:126 +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:76 +#: 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:79 +#: 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:65 +#: 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:74 +#: 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:71 +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:66 +msgid "Typography" +msgstr "" + +#: apps/client/src/pages/builder/sidebars/right/sections/typography.tsx:180 +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/pages/builder/sidebars/left/sections/shared/section-base.tsx b/apps/client/src/pages/builder/sidebars/left/sections/shared/section-base.tsx index 4e3f4816..50614665 100644 --- a/apps/client/src/pages/builder/sidebars/left/sections/shared/section-base.tsx +++ b/apps/client/src/pages/builder/sidebars/left/sections/shared/section-base.tsx @@ -106,7 +106,7 @@ export const SectionBase = ({ id, title, description }: P {t({ - message: "Add New Item", + message: "Add a new item", context: "For example, add a new work experience, or add a new profile.", })} @@ -145,7 +145,7 @@ export const SectionBase = ({ id, title, description }: P {t({ - message: "Add New Item", + message: "Add a new item", context: "For example, add a new work experience, or add a new profile.", })} diff --git a/apps/client/src/pages/builder/sidebars/left/sections/shared/section-options.tsx b/apps/client/src/pages/builder/sidebars/left/sections/shared/section-options.tsx index 3e713f3f..0ac2235e 100644 --- a/apps/client/src/pages/builder/sidebars/left/sections/shared/section-options.tsx +++ b/apps/client/src/pages/builder/sidebars/left/sections/shared/section-options.tsx @@ -109,8 +109,8 @@ export const SectionOptions = ({ id }: Props) => { {Array.from({ length: 5 }, (_, i) => i + 1).map((value) => ( - - {plural(value, { one: "Column", other: "Columns" })} + + {value} {plural(value, { one: "Column", other: "Columns" })} ))} diff --git a/apps/client/src/pages/builder/sidebars/right/index.tsx b/apps/client/src/pages/builder/sidebars/right/index.tsx index 27d96cfe..c17371a8 100644 --- a/apps/client/src/pages/builder/sidebars/right/index.tsx +++ b/apps/client/src/pages/builder/sidebars/right/index.tsx @@ -8,6 +8,7 @@ import { ThemeSwitch } from "@/client/components/theme-switch"; import { ExportSection } from "./sections/export"; import { InformationSection } from "./sections/information"; import { LayoutSection } from "./sections/layout"; +import { LocaleSection } from "./sections/locale"; import { NotesSection } from "./sections/notes"; import { PageSection } from "./sections/page"; import { SharingSection } from "./sections/sharing"; @@ -39,6 +40,8 @@ export const RightSidebar = () => { + + diff --git a/apps/client/src/pages/builder/sidebars/right/sections/locale.tsx b/apps/client/src/pages/builder/sidebars/right/sections/locale.tsx new file mode 100644 index 00000000..d9357403 --- /dev/null +++ b/apps/client/src/pages/builder/sidebars/right/sections/locale.tsx @@ -0,0 +1,48 @@ +import { t } from "@lingui/macro"; +import { useLingui } from "@lingui/react"; +import { Combobox, Label } from "@reactive-resume/ui"; +import { useMemo } from "react"; + +import { dynamicActivate, getLocales } from "@/client/libs/lingui"; +import { useResumeStore } from "@/client/stores/resume"; + +import { getSectionIcon } from "../shared/section-icon"; + +export const LocaleSection = () => { + const { _ } = useLingui(); + + const setValue = useResumeStore((state) => state.setValue); + const locale = useResumeStore((state) => state.resume.data.metadata.locale); + + const options = useMemo(() => { + return Object.entries(getLocales()).map(([value, label]) => ({ + label, + value, + })); + }, [_]); + + const onChangeLanguage = async (value: string) => { + setValue("metadata.locale", value); + await dynamicActivate(value); + + // Update resume section titles with new locale + }; + + return ( +
+
+
+ {getSectionIcon("locale")} +

{t`Locale`}

+
+
+ +
+
+ + +
+
+
+ ); +}; diff --git a/apps/client/src/pages/builder/sidebars/right/sections/typography.tsx b/apps/client/src/pages/builder/sidebars/right/sections/typography.tsx index 583e4aa3..ddd6c63e 100644 --- a/apps/client/src/pages/builder/sidebars/right/sections/typography.tsx +++ b/apps/client/src/pages/builder/sidebars/right/sections/typography.tsx @@ -14,7 +14,7 @@ import { getSectionIcon } from "../shared/section-icon"; const fontSuggestions = [ "Open Sans", "Merriweather", - "CMU Serif", + "Roboto Condensed", "Playfair Display", "Lato", "Lora", @@ -38,7 +38,6 @@ export const TypographySection = () => { const loadFontSuggestions = useCallback(async () => { fontSuggestions.forEach((font) => { - if (font === "CMU Serif") return; webfontloader.load({ events: false, classes: false, diff --git a/apps/client/src/pages/builder/sidebars/right/shared/section-icon.tsx b/apps/client/src/pages/builder/sidebars/right/shared/section-icon.tsx index 2e99af47..0b4806b4 100644 --- a/apps/client/src/pages/builder/sidebars/right/shared/section-icon.tsx +++ b/apps/client/src/pages/builder/sidebars/right/shared/section-icon.tsx @@ -9,20 +9,22 @@ import { ReadCvLogo, ShareFat, TextT, + Translate, TrendUp, } from "@phosphor-icons/react"; import { Button, ButtonProps, Tooltip } from "@reactive-resume/ui"; export type MetadataKey = - | "notes" | "template" | "layout" | "typography" | "theme" | "page" + | "locale" | "sharing" | "statistics" | "export" + | "notes" | "information"; export const getSectionIcon = (id: MetadataKey, props: IconProps = {}) => { @@ -40,6 +42,8 @@ export const getSectionIcon = (id: MetadataKey, props: IconProps = {}) => { return ; case "page": return ; + case "locale": + return ; case "sharing": return ; case "statistics": diff --git a/apps/client/src/pages/dashboard/settings/_sections/profile.tsx b/apps/client/src/pages/dashboard/settings/_sections/profile.tsx index e8fc2a6b..0e135807 100644 --- a/apps/client/src/pages/dashboard/settings/_sections/profile.tsx +++ b/apps/client/src/pages/dashboard/settings/_sections/profile.tsx @@ -105,7 +105,7 @@ export const ProfileSettings = () => { - Don't see your locale?{" "} + Don't see your language?{" "} (
{t`Finally,`}

- {t`A free and open-source resume builder.`} + {t`A free and open-source resume builder`}

diff --git a/apps/client/src/providers/locale.tsx b/apps/client/src/providers/locale.tsx index 8bc50905..b08a6553 100644 --- a/apps/client/src/providers/locale.tsx +++ b/apps/client/src/providers/locale.tsx @@ -1,27 +1,34 @@ import "@/client/libs/dayjs"; import { i18n } from "@lingui/core"; -import { detect, fromNavigator, fromStorage, fromUrl } from "@lingui/detect-locale"; +import { detect, fromNavigator, fromUrl } from "@lingui/detect-locale"; import { I18nProvider } from "@lingui/react"; +import get from "lodash.get"; import { useEffect } from "react"; import { defaultLocale, dynamicActivate } from "../libs/lingui"; +import { useAuthStore } from "../stores/auth"; +import { useResumeStore } from "../stores/resume"; type Props = { children: React.ReactNode; }; export const LocaleProvider = ({ children }: Props) => { + const userLocale = useAuthStore((state) => get(state.user, "locale", null)); + const resumeLocale = useResumeStore((state) => get(state.resume, "data.metadata.locale", null)); + useEffect(() => { const detectedLocale = detect( + resumeLocale, + userLocale, fromUrl("lang"), - fromStorage("lang"), fromNavigator(), defaultLocale, )!; dynamicActivate(detectedLocale); - }, []); + }, [userLocale, resumeLocale]); return {children}; }; diff --git a/apps/server/src/printer/printer.service.ts b/apps/server/src/printer/printer.service.ts index 6ad36c18..28a52080 100644 --- a/apps/server/src/printer/printer.service.ts +++ b/apps/server/src/printer/printer.service.ts @@ -6,8 +6,6 @@ import fontkit from "@pdf-lib/fontkit"; import { ResumeDto } from "@reactive-resume/dto"; import { getFontUrls, withTimeout } from "@reactive-resume/utils"; import retry from "async-retry"; -import { readFile } from "fs/promises"; -import { join } from "path"; import { PDFDocument } from "pdf-lib"; import { connect } from "puppeteer"; @@ -154,40 +152,20 @@ export class PrinterService { // Get information about fonts used in the resume from the metadata const fontData = resume.data.metadata.typography.font; - // Handle Special Case for CMU Serif as it is not available on Google Fonts - if (fontData.family === "CMU Serif") { - const fontsBuffer = await Promise.all([ - readFile(join(__dirname, "assets/fonts/computer-modern/regular.ttf")), - readFile(join(__dirname, "assets/fonts/computer-modern/italic.ttf")), - readFile(join(__dirname, "assets/fonts/computer-modern/bold.ttf")), - ]); + const fontUrls = getFontUrls(fontData.family, fontData.variants); - await Promise.all( - fontsBuffer.map((buffer) => { - // Convert Buffer to ArrayBuffer - const arrayBuffer = buffer.buffer.slice( - buffer.byteOffset, - buffer.byteOffset + buffer.byteLength, - ); - return pdf.embedFont(arrayBuffer); + // Load all the fonts from the URLs using HttpService + const responses = await Promise.all( + fontUrls.map((url) => + this.httpService.axiosRef.get(url, { + responseType: "arraybuffer", }), - ); - } else { - const fontUrls = getFontUrls(fontData.family, fontData.variants); + ), + ); + const fontsBuffer = responses.map((response) => response.data as ArrayBuffer); - // Load all the fonts from the URLs using HttpService - const responses = await Promise.all( - fontUrls.map((url) => - this.httpService.axiosRef.get(url, { - responseType: "arraybuffer", - }), - ), - ); - const fontsBuffer = responses.map((response) => response.data as ArrayBuffer); - - // Embed all the fonts in the PDF - await Promise.all(fontsBuffer.map((buffer) => pdf.embedFont(buffer))); - } + // Embed all the fonts in the PDF + await Promise.all(fontsBuffer.map((buffer) => pdf.embedFont(buffer))); for (let index = 0; index < pagesBuffer.length; index++) { const page = await PDFDocument.load(pagesBuffer[index]); diff --git a/libs/schema/src/metadata/index.ts b/libs/schema/src/metadata/index.ts index 16c86a65..844b57a5 100644 --- a/libs/schema/src/metadata/index.ts +++ b/libs/schema/src/metadata/index.ts @@ -9,7 +9,7 @@ export const defaultLayout = [ // Schema export const metadataSchema = z.object({ - locale: z.string().default("en"), + locale: z.string().default("en-US"), template: z.string().default("rhyhorn"), layout: z.array(z.array(z.array(z.string()))).default(defaultLayout), // pages -> columns -> sections css: z.object({ @@ -47,7 +47,7 @@ export type Metadata = z.infer; // Defaults export const defaultMetadata: Metadata = { - locale: "en", + locale: "en-US", template: "rhyhorn", layout: defaultLayout, css: { diff --git a/libs/schema/src/sample.ts b/libs/schema/src/sample.ts index 83f41d7c..c305db67 100644 --- a/libs/schema/src/sample.ts +++ b/libs/schema/src/sample.ts @@ -452,7 +452,7 @@ export const sampleResume: ResumeData = { }, }, metadata: { - locale: "en", + locale: "en-US", template: "pikachu", layout: [ [ diff --git a/libs/utils/src/namespaces/fonts.ts b/libs/utils/src/namespaces/fonts.ts index a90c2cef..574ba020 100644 --- a/libs/utils/src/namespaces/fonts.ts +++ b/libs/utils/src/namespaces/fonts.ts @@ -7,15 +7,6 @@ export type Font = { }; export const fonts: Font[] = [ - { - family: "CMU Serif", - category: "serif", - subsets: ["latin"], - variants: ["regular"], - files: { - regular: "https://cdn.jsdelivr.net/npm/computer-modern/cmu-serif.min.css", - }, - }, { family: "Roboto", category: "sans-serif", diff --git a/lingui.config.ts b/lingui.config.ts index ebe7eec0..f65e8669 100644 --- a/lingui.config.ts +++ b/lingui.config.ts @@ -3,7 +3,8 @@ import type { LinguiConfig } from "@lingui/conf"; const config: LinguiConfig = { format: "po", sourceLocale: "en-US", - locales: ["en-US", "de-DE"], + pseudoLocale: "zu-ZA", + locales: ["en-US", "de-DE", "zu-ZA"], catalogs: [ { path: "/apps/client/src/locales/{locale}/messages",