chore: add missing translations

This commit is contained in:
Amruth Pillai
2026-05-27 23:31:58 +02:00
parent c6a654191c
commit b491582637
125 changed files with 2807 additions and 606 deletions
+15
View File
@@ -39,6 +39,21 @@ Internal packages are source-consumed through `package.json` export maps that po
- The builder shell lives under `apps/web/src/routes/builder/$resumeId`. The nested preview route is client-only (`ssr: false`), while the public resume route `apps/web/src/routes/$username/$slug.tsx` uses `ssr: "data-only"`. - The builder shell lives under `apps/web/src/routes/builder/$resumeId`. The nested preview route is client-only (`ssr: false`), while the public resume route `apps/web/src/routes/$username/$slug.tsx` uses `ssr: "data-only"`.
- Browser-only resume preview code lives under `apps/web/src/features/resume/preview`, and public resume PDF viewer code lives under `apps/web/src/features/resume/public`. Keep PDF.js/canvas/browser APIs out of SSR paths and out of `packages/pdf`. - Browser-only resume preview code lives under `apps/web/src/features/resume/preview`, and public resume PDF viewer code lives under `apps/web/src/features/resume/public`. Keep PDF.js/canvas/browser APIs out of SSR paths and out of `packages/pdf`.
- The isomorphic oRPC client is in `apps/web/src/libs/orpc/client.ts`; server calls use an in-process router client and browser calls use `/api/rpc` with credentials included. - The isomorphic oRPC client is in `apps/web/src/libs/orpc/client.ts`; server calls use an in-process router client and browser calls use `/api/rpc` with credentials included.
- For React components with explicit props, prefer a named TypeScript props type over inline object annotations in the function signature, especially once the props include more than one field or generics. For example:
```ts
type IntentSelectFieldProps<TValue extends string> = {
label: string;
id: string;
value: TValue | undefined;
options: readonly ComboboxOption<TValue>[];
onChange: (value: TValue | undefined) => void;
};
function IntentSelectField<TValue extends string>(props: IntentSelectFieldProps<TValue>) {
// ...
}
```
### Package and feature boundaries ### Package and feature boundaries
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "Toep"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "Toepassingstatistiek" msgstr "Toepassingstatistiek"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arabies" msgstr "Arabies"
@@ -671,6 +675,10 @@ msgstr "Sirkel"
msgid "Clear" msgid "Clear"
msgstr "Klaar" msgstr "Klaar"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "Klik hier om 'n lêer te kies om in te voer" msgstr "Klik hier om 'n lêer te kies om in te voer"
@@ -953,6 +961,10 @@ msgstr "Pasgemaakte OAuth"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "Pasgemaakte afdelings" msgstr "Pasgemaakte afdelings"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "Tsjeggies" msgstr "Tsjeggies"
@@ -2247,6 +2259,10 @@ msgstr "Nog geen paswoorde geregistreer nie."
msgid "No results found." msgid "No results found."
msgstr "Geen resultate gevind nie." msgstr "Geen resultate gevind nie."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "Geen getoetste verskaffer nie" msgstr "Geen getoetste verskaffer nie"
@@ -2714,6 +2730,10 @@ msgstr "Herstel"
msgid "Reset Password" msgid "Reset Password"
msgstr "Herstel wagwoord" msgstr "Herstel wagwoord"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "Herstel jou wagwoord" msgstr "Herstel jou wagwoord"
@@ -2790,6 +2810,14 @@ msgstr "Roemeens"
msgid "Rotation" msgid "Rotation"
msgstr "Rotasie" msgstr "Rotasie"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Voer jou eerste ontleding uit om 'n puntkaart, sterkpunte en geprioritiseerde voorstelle te kry." msgstr "Voer jou eerste ontleding uit om 'n puntkaart, sterkpunte en geprioritiseerde voorstelle te kry."
@@ -3708,6 +3736,10 @@ msgstr "Besig om jou wagwoord by te werk..."
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "Besig om jou CV by te werk..." msgstr "Besig om jou CV by te werk..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "Laai prent op" msgstr "Laai prent op"
@@ -3959,4 +3991,3 @@ msgstr "Zoem uit"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zoeloe" msgstr "Zoeloe"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "መተግበሪያ"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "የመተግበሪያ ስታቲስቲክስ" msgstr "የመተግበሪያ ስታቲስቲክስ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "ዓረብኛ" msgstr "ዓረብኛ"
@@ -671,6 +675,10 @@ msgstr "ክብ"
msgid "Clear" msgid "Clear"
msgstr "አጽዳ" msgstr "አጽዳ"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "ፋይል ለማምጣት ለመምረጥ እዚህ ጠቅ ያድርጉ" msgstr "ፋይል ለማምጣት ለመምረጥ እዚህ ጠቅ ያድርጉ"
@@ -953,6 +961,10 @@ msgstr "ብጁ OAuth"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "ብጁ ክፍሎች" msgstr "ብጁ ክፍሎች"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "ቼክኛ" msgstr "ቼክኛ"
@@ -2247,6 +2259,10 @@ msgstr "እስካሁን ምንም ፓስኪዎች አልተመዘገቡም።"
msgid "No results found." msgid "No results found."
msgstr "ምንም ውጤት አልተገኘም።" msgstr "ምንም ውጤት አልተገኘም።"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "የተፈተነ አቅራቢ የለም" msgstr "የተፈተነ አቅራቢ የለም"
@@ -2714,6 +2730,10 @@ msgstr "ዳግም ለመጀመር"
msgid "Reset Password" msgid "Reset Password"
msgstr "የይለፍ ቃል ዳግም አስጀምር" msgstr "የይለፍ ቃል ዳግም አስጀምር"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "የይለፍ ቃልዎን ዳግም ያስጀምሩ" msgstr "የይለፍ ቃልዎን ዳግም ያስጀምሩ"
@@ -2790,6 +2810,14 @@ msgstr "ሮማኒያንኛ"
msgid "Rotation" msgid "Rotation"
msgstr "ማሽከርከር" msgstr "ማሽከርከር"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "የውጤት ካርድ፣ ጥንካሬዎች እና ቅድሚያ የተሰጣቸው አስተያየቶችን ለማግኘት የመጀመሪያ ትንተናዎን ያከናውኑ።" msgstr "የውጤት ካርድ፣ ጥንካሬዎች እና ቅድሚያ የተሰጣቸው አስተያየቶችን ለማግኘት የመጀመሪያ ትንተናዎን ያከናውኑ።"
@@ -3708,6 +3736,10 @@ msgstr "የይለፍ ቃልዎን በመዘመን ላይ…"
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "የየታሪክዎን በመዘመን ላይ…" msgstr "የየታሪክዎን በመዘመን ላይ…"
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "ምስል ስቀል" msgstr "ምስል ስቀል"
@@ -3959,4 +3991,3 @@ msgstr "አጉር"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "ዙሉ" msgstr "ዙሉ"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "التطبيق"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "إحصاءات التطبيق" msgstr "إحصاءات التطبيق"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "العربية" msgstr "العربية"
@@ -671,6 +675,10 @@ msgstr "دائرة"
msgid "Clear" msgid "Clear"
msgstr "واضح" msgstr "واضح"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "انقر هنا لتحديد ملف لاستيراده" msgstr "انقر هنا لتحديد ملف لاستيراده"
@@ -953,6 +961,10 @@ msgstr "OAuth مخصص"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "أقسام مخصصة" msgstr "أقسام مخصصة"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "التشيكية" msgstr "التشيكية"
@@ -2247,6 +2259,10 @@ msgstr "لم يتم تسجيل أي مفاتيح مرور حتى الآن."
msgid "No results found." msgid "No results found."
msgstr "لم نعثر على نتائج." msgstr "لم نعثر على نتائج."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "لم يتم اختبار أي مزود خدمة" msgstr "لم يتم اختبار أي مزود خدمة"
@@ -2714,6 +2730,10 @@ msgstr "إعادة تعيين"
msgid "Reset Password" msgid "Reset Password"
msgstr "إعادة تعيين كلمة المرور" msgstr "إعادة تعيين كلمة المرور"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "إعادة تعيين كلمة المرور" msgstr "إعادة تعيين كلمة المرور"
@@ -2790,6 +2810,14 @@ msgstr "الرومانية"
msgid "Rotation" msgid "Rotation"
msgstr "الدوران" msgstr "الدوران"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "قم بإجراء تحليلك الأول للحصول على بطاقة الأداء ونقاط القوة والاقتراحات ذات الأولوية." msgstr "قم بإجراء تحليلك الأول للحصول على بطاقة الأداء ونقاط القوة والاقتراحات ذات الأولوية."
@@ -3708,6 +3736,10 @@ msgstr "جاري تحديث كلمة المرور..."
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "جاري تحديث سيرتك الذاتية..." msgstr "جاري تحديث سيرتك الذاتية..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "تحميل الصورة" msgstr "تحميل الصورة"
@@ -3959,4 +3991,3 @@ msgstr "تصغير"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "الزولو" msgstr "الزولو"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "Tətbiq"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "Tətbiq Statistikası" msgstr "Tətbiq Statistikası"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Ərəb" msgstr "Ərəb"
@@ -671,6 +675,10 @@ msgstr "Dairə"
msgid "Clear" msgid "Clear"
msgstr "Açıq" msgstr "Açıq"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "İdxal üçün fayl seçmək üçün bura klikləyin" msgstr "İdxal üçün fayl seçmək üçün bura klikləyin"
@@ -953,6 +961,10 @@ msgstr "Fərdiləşdirilmiş OAuth"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "Xüsusi Bölmələr" msgstr "Xüsusi Bölmələr"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "Çex" msgstr "Çex"
@@ -2247,6 +2259,10 @@ msgstr "Hələ heç bir giriş açarı qeydiyyatdan keçməyib."
msgid "No results found." msgid "No results found."
msgstr "Nəticə tapılmadı." msgstr "Nəticə tapılmadı."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "Test edilmiş provayder yoxdur" msgstr "Test edilmiş provayder yoxdur"
@@ -2714,6 +2730,10 @@ msgstr "Sıfırla"
msgid "Reset Password" msgid "Reset Password"
msgstr "Parolu Sıfırla" msgstr "Parolu Sıfırla"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "Parolunuzu sıfırlayın" msgstr "Parolunuzu sıfırlayın"
@@ -2790,6 +2810,14 @@ msgstr "Rumın"
msgid "Rotation" msgid "Rotation"
msgstr "Döndürmə" msgstr "Döndürmə"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "İlk təhlilinizi işə salın, skor kartı, güclü tərəflər və prioritetləşdirilmiş təkliflər əldə edin." msgstr "İlk təhlilinizi işə salın, skor kartı, güclü tərəflər və prioritetləşdirilmiş təkliflər əldə edin."
@@ -3708,6 +3736,10 @@ msgstr "Parolunuz yenilənir..."
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "Özgeçmişiniz yenilənir..." msgstr "Özgeçmişiniz yenilənir..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "Şəkil yüklə" msgstr "Şəkil yüklə"
@@ -3959,4 +3991,3 @@ msgstr "Uzaqlaşdır"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "Приложение"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "Статистика на приложението" msgstr "Статистика на приложението"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Арабски" msgstr "Арабски"
@@ -671,6 +675,10 @@ msgstr "Кръг"
msgid "Clear" msgid "Clear"
msgstr "Clear" msgstr "Clear"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "Кликнете тук, за да изберете файл за импортиране" msgstr "Кликнете тук, за да изберете файл за импортиране"
@@ -953,6 +961,10 @@ msgstr "Потребителски OAuth"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "Потребителски раздели" msgstr "Потребителски раздели"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "Чешки" msgstr "Чешки"
@@ -2247,6 +2259,10 @@ msgstr "Все още няма регистрирани ключове за до
msgid "No results found." msgid "No results found."
msgstr "Няма намерени резултати." msgstr "Няма намерени резултати."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "Няма тестван доставчик" msgstr "Няма тестван доставчик"
@@ -2714,6 +2730,10 @@ msgstr "Нулиране"
msgid "Reset Password" msgid "Reset Password"
msgstr "Нулиране на паролата" msgstr "Нулиране на паролата"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "Нулирайте паролата си" msgstr "Нулирайте паролата си"
@@ -2790,6 +2810,14 @@ msgstr "Румънски"
msgid "Rotation" msgid "Rotation"
msgstr "Завъртане" msgstr "Завъртане"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Извършете първия си анализ, за да получите карта с резултати, силни страни и предложения по приоритети." msgstr "Извършете първия си анализ, за да получите карта с резултати, силни страни и предложения по приоритети."
@@ -3708,6 +3736,10 @@ msgstr "Актуализиране на паролата ви..."
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "Актуализиране на автобиографията ви..." msgstr "Актуализиране на автобиографията ви..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "Качване на снимка" msgstr "Качване на снимка"
@@ -3959,4 +3991,3 @@ msgstr "Намаляване"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Зулуски" msgstr "Зулуски"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "অ্যাপ"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "অ্যাপ্লিকেশন পরিসংখ্যান" msgstr "অ্যাপ্লিকেশন পরিসংখ্যান"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "আরবি" msgstr "আরবি"
@@ -671,6 +675,10 @@ msgstr "বৃত্ত"
msgid "Clear" msgid "Clear"
msgstr "স্বচ্ছ" msgstr "স্বচ্ছ"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "ইমপোর্ট করার জন্য এখান ক্লিক করে একটি ফাইল নির্বাচন করুন" msgstr "ইমপোর্ট করার জন্য এখান ক্লিক করে একটি ফাইল নির্বাচন করুন"
@@ -953,6 +961,10 @@ msgstr "কাস্টম OAuth"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "কাস্টম বিভাগসমূহ" msgstr "কাস্টম বিভাগসমূহ"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "চেক" msgstr "চেক"
@@ -2247,6 +2259,10 @@ msgstr "এখনও কোনো পাসকি নিবন্ধিত হ
msgid "No results found." msgid "No results found."
msgstr "কোন ফলাফল খুঁজে পাওয়া যায়নি।" msgstr "কোন ফলাফল খুঁজে পাওয়া যায়নি।"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "কোন পরীক্ষিত সরবরাহকারী নেই" msgstr "কোন পরীক্ষিত সরবরাহকারী নেই"
@@ -2714,6 +2730,10 @@ msgstr "রিসেট"
msgid "Reset Password" msgid "Reset Password"
msgstr "পাসওয়ার্ড রিসেট করুন" msgstr "পাসওয়ার্ড রিসেট করুন"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "আপনার পাসওয়ার্ড রিসেট করুন" msgstr "আপনার পাসওয়ার্ড রিসেট করুন"
@@ -2790,6 +2810,14 @@ msgstr "রোমানিয়ান"
msgid "Rotation" msgid "Rotation"
msgstr "রোটেশন" msgstr "রোটেশন"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "আপনার প্রথম বিশ্লেষণ চালান একটি স্কোরকার্ড, শক্তি এবং অগ্রাধিকারপ্রাপ্ত পরামর্শ পেতে।" msgstr "আপনার প্রথম বিশ্লেষণ চালান একটি স্কোরকার্ড, শক্তি এবং অগ্রাধিকারপ্রাপ্ত পরামর্শ পেতে।"
@@ -3708,6 +3736,10 @@ msgstr "আপনার পাসওয়ার্ড আপডেট করা
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "আপনার জীবনবৃত্তান্ত আপডেট করা হচ্ছে..." msgstr "আপনার জীবনবৃত্তান্ত আপডেট করা হচ্ছে..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "ছবি আপলোড করুন" msgstr "ছবি আপলোড করুন"
@@ -3959,4 +3991,3 @@ msgstr "জুম আউট"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "জুলু" msgstr "জুলু"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "Aplicació"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "Estadístiques de laplicació" msgstr "Estadístiques de laplicació"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Àrab" msgstr "Àrab"
@@ -671,6 +675,10 @@ msgstr "Cercle"
msgid "Clear" msgid "Clear"
msgstr "Clar" msgstr "Clar"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "Fes clic aquí per seleccionar un fitxer per importar" msgstr "Fes clic aquí per seleccionar un fitxer per importar"
@@ -953,6 +961,10 @@ msgstr "OAuth personalitzat"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "Seccions personalitzades" msgstr "Seccions personalitzades"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "Txec" msgstr "Txec"
@@ -2247,6 +2259,10 @@ msgstr "Encara no s'han registrat cap clau d'accés."
msgid "No results found." msgid "No results found."
msgstr "No shan trobat resultats." msgstr "No shan trobat resultats."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "Cap proveïdor provat" msgstr "Cap proveïdor provat"
@@ -2714,6 +2730,10 @@ msgstr "Restableix"
msgid "Reset Password" msgid "Reset Password"
msgstr "Restableix la contrasenya" msgstr "Restableix la contrasenya"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "Restableix la contrasenya" msgstr "Restableix la contrasenya"
@@ -2790,6 +2810,14 @@ msgstr "Romanès"
msgid "Rotation" msgid "Rotation"
msgstr "Rotació" msgstr "Rotació"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Executa la teva primera anàlisi per obtenir un quadre de comandament, els punts forts i suggeriments prioritzats." msgstr "Executa la teva primera anàlisi per obtenir un quadre de comandament, els punts forts i suggeriments prioritzats."
@@ -3708,6 +3736,10 @@ msgstr "Sestà actualitzant la contrasenya..."
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "Sestà actualitzant el currículum..." msgstr "Sestà actualitzant el currículum..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "Pujar foto" msgstr "Pujar foto"
@@ -3959,4 +3991,3 @@ msgstr "Allunya"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulú" msgstr "Zulú"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "Aplikace"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "Statistiky aplikace" msgstr "Statistiky aplikace"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arabština" msgstr "Arabština"
@@ -671,6 +675,10 @@ msgstr "Kruh"
msgid "Clear" msgid "Clear"
msgstr "Přehledně" msgstr "Přehledně"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "Kliknutím zde vyberte soubor k importu" msgstr "Kliknutím zde vyberte soubor k importu"
@@ -953,6 +961,10 @@ msgstr "Vlastní OAuth"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "Vlastní sekce" msgstr "Vlastní sekce"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "Čeština" msgstr "Čeština"
@@ -2247,6 +2259,10 @@ msgstr "Zatím nebyly zaregistrovány žádné pasové klíče."
msgid "No results found." msgid "No results found."
msgstr "Nebyly nalezeny žádné výsledky." msgstr "Nebyly nalezeny žádné výsledky."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "Žádný ověřený poskytovatel" msgstr "Žádný ověřený poskytovatel"
@@ -2714,6 +2730,10 @@ msgstr "Resetovat"
msgid "Reset Password" msgid "Reset Password"
msgstr "Obnovit heslo" msgstr "Obnovit heslo"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "Obnovte své heslo" msgstr "Obnovte své heslo"
@@ -2790,6 +2810,14 @@ msgstr "Rumunština"
msgid "Rotation" msgid "Rotation"
msgstr "Otočení" msgstr "Otočení"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Proveďte první analýzu a získejte hodnotící tabulku, silné stránky a návrhy priorit." msgstr "Proveďte první analýzu a získejte hodnotící tabulku, silné stránky a návrhy priorit."
@@ -3708,6 +3736,10 @@ msgstr "Aktualizace hesla…"
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "Aktualizace životopisu…" msgstr "Aktualizace životopisu…"
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "Nahrát obrázek" msgstr "Nahrát obrázek"
@@ -3959,4 +3991,3 @@ msgstr "Oddálit"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "App"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "Applikationsstatistik" msgstr "Applikationsstatistik"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arabisk" msgstr "Arabisk"
@@ -671,6 +675,10 @@ msgstr "Cirkel"
msgid "Clear" msgid "Clear"
msgstr "Klar" msgstr "Klar"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "Klik her for at vælge en fil, der skal importeres" msgstr "Klik her for at vælge en fil, der skal importeres"
@@ -953,6 +961,10 @@ msgstr "Brugerdefineret OAuth"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "Brugerdefinerede afsnit" msgstr "Brugerdefinerede afsnit"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "Tjekkisk" msgstr "Tjekkisk"
@@ -2247,6 +2259,10 @@ msgstr "Ingen nøgler registreret endnu."
msgid "No results found." msgid "No results found."
msgstr "Ingen resultater fundet." msgstr "Ingen resultater fundet."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "Ingen testet udbyder" msgstr "Ingen testet udbyder"
@@ -2714,6 +2730,10 @@ msgstr "Nulstil"
msgid "Reset Password" msgid "Reset Password"
msgstr "Nulstil adgangskode" msgstr "Nulstil adgangskode"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "Nulstil din adgangskode" msgstr "Nulstil din adgangskode"
@@ -2790,6 +2810,14 @@ msgstr "Rumænsk"
msgid "Rotation" msgid "Rotation"
msgstr "Rotation" msgstr "Rotation"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Kør din første analyse for at få et scorekort, styrker og prioriterede forslag." msgstr "Kør din første analyse for at få et scorekort, styrker og prioriterede forslag."
@@ -3708,6 +3736,10 @@ msgstr "Opdaterer din adgangskode..."
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "Opdaterer dit CV..." msgstr "Opdaterer dit CV..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "Upload billede" msgstr "Upload billede"
@@ -3959,4 +3991,3 @@ msgstr "Zoom ud"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "App"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "Anwendungsstatistiken" msgstr "Anwendungsstatistiken"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arabisch" msgstr "Arabisch"
@@ -671,6 +675,10 @@ msgstr "Kreis"
msgid "Clear" msgid "Clear"
msgstr "Klar" msgstr "Klar"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "Hier klicken, um eine Datei zum Importieren auszuwählen" msgstr "Hier klicken, um eine Datei zum Importieren auszuwählen"
@@ -953,6 +961,10 @@ msgstr "Benutzerdefiniertes OAuth"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "Benutzerdefinierte Abschnitte" msgstr "Benutzerdefinierte Abschnitte"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "Tschechisch" msgstr "Tschechisch"
@@ -2247,6 +2259,10 @@ msgstr "Noch keine Passkeys registriert."
msgid "No results found." msgid "No results found."
msgstr "Keine Ergebnisse gefunden." msgstr "Keine Ergebnisse gefunden."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "Kein geprüfter Anbieter" msgstr "Kein geprüfter Anbieter"
@@ -2714,6 +2730,10 @@ msgstr "Zurücksetzen"
msgid "Reset Password" msgid "Reset Password"
msgstr "Passwort zurücksetzen" msgstr "Passwort zurücksetzen"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "Setzen Sie Ihr Passwort zurück" msgstr "Setzen Sie Ihr Passwort zurück"
@@ -2790,6 +2810,14 @@ msgstr "Rumänisch"
msgid "Rotation" msgid "Rotation"
msgstr "Drehung" msgstr "Drehung"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Führen Sie Ihre erste Analyse durch, um eine Scorecard, Stärken und priorisierte Vorschläge zu erhalten." msgstr "Führen Sie Ihre erste Analyse durch, um eine Scorecard, Stärken und priorisierte Vorschläge zu erhalten."
@@ -3708,6 +3736,10 @@ msgstr "Ihr Passwort wird aktualisiert..."
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "Ihr Lebenslauf wird aktualisiert..." msgstr "Ihr Lebenslauf wird aktualisiert..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "Bild hochladen" msgstr "Bild hochladen"
@@ -3959,4 +3991,3 @@ msgstr "Herauszoomen"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "Εφαρμογή"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "Στατιστικά εφαρμογής" msgstr "Στατιστικά εφαρμογής"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Αραβικά" msgstr "Αραβικά"
@@ -671,6 +675,10 @@ msgstr "Κύκλος"
msgid "Clear" msgid "Clear"
msgstr "Σαφής" msgstr "Σαφής"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "Κάντε κλικ εδώ για να επιλέξετε ένα αρχείο προς εισαγωγή" msgstr "Κάντε κλικ εδώ για να επιλέξετε ένα αρχείο προς εισαγωγή"
@@ -953,6 +961,10 @@ msgstr "Προσαρμοσμένο OAuth"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "Προσαρμοσμένες ενότητες" msgstr "Προσαρμοσμένες ενότητες"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "Τσεχικά" msgstr "Τσεχικά"
@@ -2247,6 +2259,10 @@ msgstr "Δεν έχουν καταχωρηθεί ακόμη passkeys."
msgid "No results found." msgid "No results found."
msgstr "Δεν βρέθηκαν αποτελέσματα." msgstr "Δεν βρέθηκαν αποτελέσματα."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "Δεν υπάρχει δοκιμασμένος πάροχος" msgstr "Δεν υπάρχει δοκιμασμένος πάροχος"
@@ -2714,6 +2730,10 @@ msgstr "Επαναφορά"
msgid "Reset Password" msgid "Reset Password"
msgstr "Επαναφορά κωδικού πρόσβασης" msgstr "Επαναφορά κωδικού πρόσβασης"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "Επαναφορά κωδικού πρόσβασης" msgstr "Επαναφορά κωδικού πρόσβασης"
@@ -2790,6 +2810,14 @@ msgstr "Ρουμανικά"
msgid "Rotation" msgid "Rotation"
msgstr "Περιστροφή" msgstr "Περιστροφή"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Εκτελέστε την πρώτη σας ανάλυση για να λάβετε έναν πίνακα βαθμολογίας, τα δυνατά σημεία και τις προτάσεις με προτεραιότητες." msgstr "Εκτελέστε την πρώτη σας ανάλυση για να λάβετε έναν πίνακα βαθμολογίας, τα δυνατά σημεία και τις προτάσεις με προτεραιότητες."
@@ -3708,6 +3736,10 @@ msgstr "Ενημέρωση του κωδικού πρόσβασής σας..."
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "Ενημέρωση του βιογραφικού σας σημειώματος..." msgstr "Ενημέρωση του βιογραφικού σας σημειώματος..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "Ανέβασμα εικόνας" msgstr "Ανέβασμα εικόνας"
@@ -3959,4 +3991,3 @@ msgstr "Σμίκρυνση"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Ζουλού" msgstr "Ζουλού"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "App"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "Application Statistics" msgstr "Application Statistics"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arabic" msgstr "Arabic"
@@ -671,6 +675,10 @@ msgstr "Circle"
msgid "Clear" msgid "Clear"
msgstr "Clear" msgstr "Clear"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "Click here to select a file to import" msgstr "Click here to select a file to import"
@@ -953,6 +961,10 @@ msgstr "Custom OAuth"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "Custom Sections" msgstr "Custom Sections"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "Czech" msgstr "Czech"
@@ -2247,6 +2259,10 @@ msgstr "No passkeys registered yet."
msgid "No results found." msgid "No results found."
msgstr "No results found." msgstr "No results found."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "No tested provider" msgstr "No tested provider"
@@ -2714,6 +2730,10 @@ msgstr "Reset"
msgid "Reset Password" msgid "Reset Password"
msgstr "Reset Password" msgstr "Reset Password"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "Reset your password" msgstr "Reset your password"
@@ -2790,6 +2810,14 @@ msgstr "Romanian"
msgid "Rotation" msgid "Rotation"
msgstr "Rotation" msgstr "Rotation"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgstr "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
@@ -3708,6 +3736,10 @@ msgstr "Updating your password..."
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "Updating your resume..." msgstr "Updating your resume..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "Upload picture" msgstr "Upload picture"
@@ -3959,4 +3991,3 @@ msgstr "Zoom out"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+32
View File
@@ -368,6 +368,10 @@ msgstr "App"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "Application Statistics" msgstr "Application Statistics"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "Applied Rules"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arabic" msgstr "Arabic"
@@ -666,6 +670,10 @@ msgstr "Circle"
msgid "Clear" msgid "Clear"
msgstr "Clear" msgstr "Clear"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr "Clear selection"
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "Click here to select a file to import" msgstr "Click here to select a file to import"
@@ -948,6 +956,10 @@ msgstr "Custom OAuth"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "Custom Sections" msgstr "Custom Sections"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr "Custom Styles"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "Czech" msgstr "Czech"
@@ -2242,6 +2254,10 @@ msgstr "No passkeys registered yet."
msgid "No results found." msgid "No results found."
msgstr "No results found." msgstr "No results found."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "No style rules yet."
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "No tested provider" msgstr "No tested provider"
@@ -2709,6 +2725,10 @@ msgstr "Reset"
msgid "Reset Password" msgid "Reset Password"
msgstr "Reset Password" msgstr "Reset Password"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "Reset Style"
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "Reset your password" msgstr "Reset your password"
@@ -2785,6 +2805,14 @@ msgstr "Romanian"
msgid "Rotation" msgid "Rotation"
msgstr "Rotation" msgstr "Rotation"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "rule"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "rules"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgstr "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
@@ -3703,6 +3731,10 @@ msgstr "Updating your password..."
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "Updating your resume..." msgstr "Updating your resume..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr "Upload attachments"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "Upload picture" msgstr "Upload picture"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "Aplicación"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "Estadísticas de la aplicación" msgstr "Estadísticas de la aplicación"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Árabe" msgstr "Árabe"
@@ -671,6 +675,10 @@ msgstr "Círculo"
msgid "Clear" msgid "Clear"
msgstr "Claro" msgstr "Claro"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "Haz clic aquí para seleccionar un archivo para importar" msgstr "Haz clic aquí para seleccionar un archivo para importar"
@@ -953,6 +961,10 @@ msgstr "OAuth personalizado"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "Secciones personalizadas" msgstr "Secciones personalizadas"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "Checo" msgstr "Checo"
@@ -2247,6 +2259,10 @@ msgstr "Aún no se ha registrado ninguna llave de paso."
msgid "No results found." msgid "No results found."
msgstr "No se han encontrado resultados." msgstr "No se han encontrado resultados."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "No hay ningún proveedor probado" msgstr "No hay ningún proveedor probado"
@@ -2714,6 +2730,10 @@ msgstr "Restablecer"
msgid "Reset Password" msgid "Reset Password"
msgstr "Restablecer contraseña" msgstr "Restablecer contraseña"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "Restablecer tu contraseña" msgstr "Restablecer tu contraseña"
@@ -2790,6 +2810,14 @@ msgstr "Rumano"
msgid "Rotation" msgid "Rotation"
msgstr "Rotación" msgstr "Rotación"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Realice su primer análisis para obtener un cuadro de mando, los puntos fuertes y las sugerencias priorizadas." msgstr "Realice su primer análisis para obtener un cuadro de mando, los puntos fuertes y las sugerencias priorizadas."
@@ -3708,6 +3736,10 @@ msgstr "Actualizando tu contraseña..."
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "Actualizando tu currículum..." msgstr "Actualizando tu currículum..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "Subir foto" msgstr "Subir foto"
@@ -3959,4 +3991,3 @@ msgstr "Alejar"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulú" msgstr "Zulú"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "اپ"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "آمار اپلیکیشن" msgstr "آمار اپلیکیشن"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "عربی" msgstr "عربی"
@@ -671,6 +675,10 @@ msgstr "دایره"
msgid "Clear" msgid "Clear"
msgstr "شفاف" msgstr "شفاف"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "برای انتخاب فایل برای وارد کردن، اینجا کلیک کنید" msgstr "برای انتخاب فایل برای وارد کردن، اینجا کلیک کنید"
@@ -953,6 +961,10 @@ msgstr "OAuth سفارشی"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "بخش‌های سفارشی" msgstr "بخش‌های سفارشی"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "چکی" msgstr "چکی"
@@ -2247,6 +2259,10 @@ msgstr "هنوز هیچ کلید عبوری ثبت نشده است."
msgid "No results found." msgid "No results found."
msgstr "موردی یافت نشد." msgstr "موردی یافت نشد."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "هیچ ارائه دهنده آزمایش شده ای وجود ندارد" msgstr "هیچ ارائه دهنده آزمایش شده ای وجود ندارد"
@@ -2714,6 +2730,10 @@ msgstr "ریست"
msgid "Reset Password" msgid "Reset Password"
msgstr "تنظیم مجدد گذرواژه" msgstr "تنظیم مجدد گذرواژه"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "تنظیم مجدد گذرواژهٔ شما" msgstr "تنظیم مجدد گذرواژهٔ شما"
@@ -2790,6 +2810,14 @@ msgstr "رومانیایی"
msgid "Rotation" msgid "Rotation"
msgstr "چرخش" msgstr "چرخش"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "اولین تحلیل خود را اجرا کنید تا کارت امتیاز، نقاط قوت و پیشنهادهای اولویت‌بندی‌شده را دریافت کنید." msgstr "اولین تحلیل خود را اجرا کنید تا کارت امتیاز، نقاط قوت و پیشنهادهای اولویت‌بندی‌شده را دریافت کنید."
@@ -3708,6 +3736,10 @@ msgstr "در حال به‌روزرسانی گذرواژه شما..."
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "در حال به‌روزرسانی رزومه شما..." msgstr "در حال به‌روزرسانی رزومه شما..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "بارگذاری تصویر" msgstr "بارگذاری تصویر"
@@ -3959,4 +3991,3 @@ msgstr "کوچک‌نمایی"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "زولو" msgstr "زولو"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "Sovellus"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "Sovelluksen tilastot" msgstr "Sovelluksen tilastot"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "arabia" msgstr "arabia"
@@ -671,6 +675,10 @@ msgstr "Ympyrä"
msgid "Clear" msgid "Clear"
msgstr "Kirkas" msgstr "Kirkas"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "Napsauta tästä valitaksesi tuotavan tiedoston" msgstr "Napsauta tästä valitaksesi tuotavan tiedoston"
@@ -953,6 +961,10 @@ msgstr "Mukautettu OAuth"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "Mukautetut osiot" msgstr "Mukautetut osiot"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "tšekki" msgstr "tšekki"
@@ -2247,6 +2259,10 @@ msgstr "Ei vielä rekisteröityjä kulkulupia."
msgid "No results found." msgid "No results found."
msgstr "Tuloksia ei löytynyt." msgstr "Tuloksia ei löytynyt."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "Ei testattua tarjoajaa" msgstr "Ei testattua tarjoajaa"
@@ -2714,6 +2730,10 @@ msgstr "Palauta"
msgid "Reset Password" msgid "Reset Password"
msgstr "Palauta salasana" msgstr "Palauta salasana"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "Palauta salasanasi" msgstr "Palauta salasanasi"
@@ -2790,6 +2810,14 @@ msgstr "romania"
msgid "Rotation" msgid "Rotation"
msgstr "Kierrätys" msgstr "Kierrätys"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Suorita ensimmäinen analyysi, jotta saat tuloskortin, vahvuudet ja priorisoidut ehdotukset." msgstr "Suorita ensimmäinen analyysi, jotta saat tuloskortin, vahvuudet ja priorisoidut ehdotukset."
@@ -3708,6 +3736,10 @@ msgstr "Päivitetään salasanaasi..."
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "Päivitetään ansioluetteloasi..." msgstr "Päivitetään ansioluetteloasi..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "Lataa kuva" msgstr "Lataa kuva"
@@ -3959,4 +3991,3 @@ msgstr "Loitonna"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "App"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "Statistiques d'application" msgstr "Statistiques d'application"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arabe" msgstr "Arabe"
@@ -671,6 +675,10 @@ msgstr "Cercle"
msgid "Clear" msgid "Clear"
msgstr "Clair" msgstr "Clair"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "Cliquez ici pour sélectionner un fichier à importer" msgstr "Cliquez ici pour sélectionner un fichier à importer"
@@ -953,6 +961,10 @@ msgstr "OAuth personnalisé"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "Sections personnalisées" msgstr "Sections personnalisées"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "Tchèque" msgstr "Tchèque"
@@ -2247,6 +2259,10 @@ msgstr "Aucun passe-partout n'a encore été enregistré."
msgid "No results found." msgid "No results found."
msgstr "Aucun résultat trouvé." msgstr "Aucun résultat trouvé."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "Fournisseur non testé" msgstr "Fournisseur non testé"
@@ -2714,6 +2730,10 @@ msgstr "Réinitialiser"
msgid "Reset Password" msgid "Reset Password"
msgstr "Réinitialiser le mot de passe" msgstr "Réinitialiser le mot de passe"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "Réinitialisez votre mot de passe" msgstr "Réinitialisez votre mot de passe"
@@ -2790,6 +2810,14 @@ msgstr "Roumain"
msgid "Rotation" msgid "Rotation"
msgstr "Rotation" msgstr "Rotation"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Effectuez votre première analyse pour obtenir un tableau de bord, des points forts et des suggestions classées par ordre de priorité." msgstr "Effectuez votre première analyse pour obtenir un tableau de bord, des points forts et des suggestions classées par ordre de priorité."
@@ -3708,6 +3736,10 @@ msgstr "Mise à jour de votre mot de passe..."
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "Mise à jour de votre CV..." msgstr "Mise à jour de votre CV..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "Télécharger l'image" msgstr "Télécharger l'image"
@@ -3959,4 +3991,3 @@ msgstr "Zoom arrière"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zoulou" msgstr "Zoulou"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "יישום"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "סטטיסטיקת היישום" msgstr "סטטיסטיקת היישום"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "ערבית" msgstr "ערבית"
@@ -671,6 +675,10 @@ msgstr "עיגול"
msgid "Clear" msgid "Clear"
msgstr "נקה" msgstr "נקה"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "לחץ כאן כדי לבחור קובץ לייבוא" msgstr "לחץ כאן כדי לבחור קובץ לייבוא"
@@ -953,6 +961,10 @@ msgstr "OAuth מותאם אישית"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "סעיפים מותאמים אישית" msgstr "סעיפים מותאמים אישית"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "צ׳כית" msgstr "צ׳כית"
@@ -2247,6 +2259,10 @@ msgstr "עדיין לא נרשמו מפתחות גישה."
msgid "No results found." msgid "No results found."
msgstr "לא נמצאו תוצאות." msgstr "לא נמצאו תוצאות."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "אין ספק שנבדק" msgstr "אין ספק שנבדק"
@@ -2714,6 +2730,10 @@ msgstr "איפוס"
msgid "Reset Password" msgid "Reset Password"
msgstr "איפוס סיסמה" msgstr "איפוס סיסמה"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "איפוס הסיסמה שלך" msgstr "איפוס הסיסמה שלך"
@@ -2790,6 +2810,14 @@ msgstr "רומנית"
msgid "Rotation" msgid "Rotation"
msgstr "סיבוב" msgstr "סיבוב"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "בצע את הניתוח הראשון שלך כדי לקבל דוח ביצועים, נקודות חוזק והצעות מסודרות לפי סדר עדיפויות." msgstr "בצע את הניתוח הראשון שלך כדי לקבל דוח ביצועים, נקודות חוזק והצעות מסודרות לפי סדר עדיפויות."
@@ -3708,6 +3736,10 @@ msgstr "מעדכן את הסיסמה שלך..."
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "מעדכן את קורות החיים שלך..." msgstr "מעדכן את קורות החיים שלך..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "העלה תמונה" msgstr "העלה תמונה"
@@ -3959,4 +3991,3 @@ msgstr "התרחקות"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "זולו" msgstr "זולו"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "ऐप"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "ऐप आँकड़े" msgstr "ऐप आँकड़े"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "अरबी" msgstr "अरबी"
@@ -671,6 +675,10 @@ msgstr "गोला"
msgid "Clear" msgid "Clear"
msgstr "स्पष्ट" msgstr "स्पष्ट"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "इम्पोर्ट करने के लिए फ़ाइल चुनने हेतु यहाँ क्लिक करें" msgstr "इम्पोर्ट करने के लिए फ़ाइल चुनने हेतु यहाँ क्लिक करें"
@@ -953,6 +961,10 @@ msgstr "कस्टम OAuth"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "कस्टम अनुभाग" msgstr "कस्टम अनुभाग"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "चेक" msgstr "चेक"
@@ -2247,6 +2259,10 @@ msgstr "अभी तक कोई पासकी पंजीकृत नह
msgid "No results found." msgid "No results found."
msgstr "कोई परिणाम नहीं मिला।" msgstr "कोई परिणाम नहीं मिला।"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "कोई परीक्षित प्रदाता नहीं" msgstr "कोई परीक्षित प्रदाता नहीं"
@@ -2714,6 +2730,10 @@ msgstr "रीसेट"
msgid "Reset Password" msgid "Reset Password"
msgstr "पासवर्ड रीसेट करें" msgstr "पासवर्ड रीसेट करें"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "अपना पासवर्ड रीसेट करें" msgstr "अपना पासवर्ड रीसेट करें"
@@ -2790,6 +2810,14 @@ msgstr "रोमानियाई"
msgid "Rotation" msgid "Rotation"
msgstr "रोटेशन" msgstr "रोटेशन"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "अपना पहला विश्लेषण चलाएँ ताकि आपको एक स्कोरकार्ड, ताकतें और प्राथमिकता-आधारित सुझाव मिल सकें।" msgstr "अपना पहला विश्लेषण चलाएँ ताकि आपको एक स्कोरकार्ड, ताकतें और प्राथमिकता-आधारित सुझाव मिल सकें।"
@@ -3708,6 +3736,10 @@ msgstr "आपका पासवर्ड अपडेट किया जा
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "आपका रेज़्यूमे अपडेट किया जा रहा है..." msgstr "आपका रेज़्यूमे अपडेट किया जा रहा है..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "तस्वीर अपलोड करें" msgstr "तस्वीर अपलोड करें"
@@ -3959,4 +3991,3 @@ msgstr "ज़ूम आउट"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "ज़ुलु" msgstr "ज़ुलु"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "Alkalmazás"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "Alkalmazásstatisztikák" msgstr "Alkalmazásstatisztikák"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "arab" msgstr "arab"
@@ -671,6 +675,10 @@ msgstr "Kör"
msgid "Clear" msgid "Clear"
msgstr "Tiszta" msgstr "Tiszta"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "Kattints ide az importálandó fájl kiválasztásához" msgstr "Kattints ide az importálandó fájl kiválasztásához"
@@ -953,6 +961,10 @@ msgstr "Egyéni OAuth"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "Egyéni szekciók" msgstr "Egyéni szekciók"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "cseh" msgstr "cseh"
@@ -2247,6 +2259,10 @@ msgstr "Még nincsenek regisztrált kulcsok."
msgid "No results found." msgid "No results found."
msgstr "Nincs találat." msgstr "Nincs találat."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "Nincs tesztelt szolgáltató" msgstr "Nincs tesztelt szolgáltató"
@@ -2714,6 +2730,10 @@ msgstr "Visszaállítás"
msgid "Reset Password" msgid "Reset Password"
msgstr "Jelszó visszaállítása" msgstr "Jelszó visszaállítása"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "Jelszó visszaállítása" msgstr "Jelszó visszaállítása"
@@ -2790,6 +2810,14 @@ msgstr "Román"
msgid "Rotation" msgid "Rotation"
msgstr "Forgatás" msgstr "Forgatás"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Futtassa le az első elemzést, hogy kapjon egy értékelőlapot, erősségeket és rangsorolt javaslatokat." msgstr "Futtassa le az első elemzést, hogy kapjon egy értékelőlapot, erősségeket és rangsorolt javaslatokat."
@@ -3708,6 +3736,10 @@ msgstr "Jelszó frissítése..."
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "Önéletrajz frissítése..." msgstr "Önéletrajz frissítése..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "Kép feltöltése" msgstr "Kép feltöltése"
@@ -3959,4 +3991,3 @@ msgstr "Kicsinyítés"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "Aplikasi"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "Statistik Aplikasi" msgstr "Statistik Aplikasi"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arab" msgstr "Arab"
@@ -671,6 +675,10 @@ msgstr "Lingkaran"
msgid "Clear" msgid "Clear"
msgstr "Jelas" msgstr "Jelas"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "Klik di sini untuk memilih file yang akan diimpor" msgstr "Klik di sini untuk memilih file yang akan diimpor"
@@ -953,6 +961,10 @@ msgstr "OAuth khusus"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "Bagian Kustom" msgstr "Bagian Kustom"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "Ceko" msgstr "Ceko"
@@ -2247,6 +2259,10 @@ msgstr "Belum ada kunci sandi yang terdaftar."
msgid "No results found." msgid "No results found."
msgstr "Tidak ada hasil." msgstr "Tidak ada hasil."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "Tidak ada penyedia yang teruji" msgstr "Tidak ada penyedia yang teruji"
@@ -2714,6 +2730,10 @@ msgstr "Atur Ulang"
msgid "Reset Password" msgid "Reset Password"
msgstr "Atur Ulang Kata Sandi" msgstr "Atur Ulang Kata Sandi"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "Atur ulang kata sandi Anda" msgstr "Atur ulang kata sandi Anda"
@@ -2790,6 +2810,14 @@ msgstr "Rumania"
msgid "Rotation" msgid "Rotation"
msgstr "Rotasi" msgstr "Rotasi"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Jalankan analisis pertama Anda untuk mendapatkan kartu skor, kekuatan, dan saran yang diprioritaskan." msgstr "Jalankan analisis pertama Anda untuk mendapatkan kartu skor, kekuatan, dan saran yang diprioritaskan."
@@ -3708,6 +3736,10 @@ msgstr "Memperbarui kata sandi Anda..."
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "Memperbarui resume Anda..." msgstr "Memperbarui resume Anda..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "Unggah gambar" msgstr "Unggah gambar"
@@ -3959,4 +3991,3 @@ msgstr "Perkecil"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "App"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "Statistiche dell'applicazione" msgstr "Statistiche dell'applicazione"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arabo" msgstr "Arabo"
@@ -671,6 +675,10 @@ msgstr "Cerchio"
msgid "Clear" msgid "Clear"
msgstr "Libero" msgstr "Libero"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "Fai clic qui per selezionare un file da importare" msgstr "Fai clic qui per selezionare un file da importare"
@@ -953,6 +961,10 @@ msgstr "OAuth personalizzato"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "Sezioni personalizzate" msgstr "Sezioni personalizzate"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "Ceco" msgstr "Ceco"
@@ -2247,6 +2259,10 @@ msgstr "Non sono ancora stati registrati dei passepartout."
msgid "No results found." msgid "No results found."
msgstr "Nessun risultato trovato." msgstr "Nessun risultato trovato."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "Nessun fornitore segnalato" msgstr "Nessun fornitore segnalato"
@@ -2714,6 +2730,10 @@ msgstr "Ripristina"
msgid "Reset Password" msgid "Reset Password"
msgstr "Reimposta password" msgstr "Reimposta password"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "Reimposta la tua password" msgstr "Reimposta la tua password"
@@ -2790,6 +2810,14 @@ msgstr "Rumeno"
msgid "Rotation" msgid "Rotation"
msgstr "Rotazione" msgstr "Rotazione"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Esegua la prima analisi per ottenere una scorecard, i punti di forza e i suggerimenti prioritari." msgstr "Esegua la prima analisi per ottenere una scorecard, i punti di forza e i suggerimenti prioritari."
@@ -3708,6 +3736,10 @@ msgstr "Aggiornamento della tua password in corso..."
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "Aggiornamento del tuo curriculum in corso..." msgstr "Aggiornamento del tuo curriculum in corso..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "Carica l'immagine" msgstr "Carica l'immagine"
@@ -3959,4 +3991,3 @@ msgstr "Rimpicciolisci"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "アプリ"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "アプリケーション統計" msgstr "アプリケーション統計"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "アラビア語" msgstr "アラビア語"
@@ -671,6 +675,10 @@ msgstr "円"
msgid "Clear" msgid "Clear"
msgstr "クリア" msgstr "クリア"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "ここをクリックしてインポートするファイルを選択" msgstr "ここをクリックしてインポートするファイルを選択"
@@ -953,6 +961,10 @@ msgstr "カスタムOAuth"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "カスタムセクション" msgstr "カスタムセクション"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "チェコ語" msgstr "チェコ語"
@@ -2247,6 +2259,10 @@ msgstr "パスキーはまだ登録されていない。"
msgid "No results found." msgid "No results found."
msgstr "結果が見つかりません。" msgstr "結果が見つかりません。"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "テスト済みのプロバイダーはありません" msgstr "テスト済みのプロバイダーはありません"
@@ -2714,6 +2730,10 @@ msgstr "リセット"
msgid "Reset Password" msgid "Reset Password"
msgstr "パスワードをリセット" msgstr "パスワードをリセット"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "パスワードをリセット" msgstr "パスワードをリセット"
@@ -2790,6 +2810,14 @@ msgstr "ルーマニア語"
msgid "Rotation" msgid "Rotation"
msgstr "回転" msgstr "回転"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "最初の分析を実行し、スコアカード、強み、優先順位付けされた提案を得る。" msgstr "最初の分析を実行し、スコアカード、強み、優先順位付けされた提案を得る。"
@@ -3708,6 +3736,10 @@ msgstr "パスワードを更新しています..."
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "履歴書を更新しています..." msgstr "履歴書を更新しています..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "画像のアップロード" msgstr "画像のアップロード"
@@ -3959,4 +3991,3 @@ msgstr "ズームアウト"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "ズールー語" msgstr "ズールー語"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "កម្មវិធី"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "ស្ថិតិ​កម្មវិធី" msgstr "ស្ថិតិ​កម្មវិធី"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arabic" msgstr "Arabic"
@@ -671,6 +675,10 @@ msgstr "រង្វង់"
msgid "Clear" msgid "Clear"
msgstr "សម្អាត" msgstr "សម្អាត"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "ចុច​ទីនេះ​ដើម្បី​ជ្រើស​ឯកសារ​មួយ​ដើម្បី​នាំចូល" msgstr "ចុច​ទីនេះ​ដើម្បី​ជ្រើស​ឯកសារ​មួយ​ដើម្បី​នាំចូល"
@@ -953,6 +961,10 @@ msgstr "OAuth ផ្ទាល់ខ្លួន"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "ផ្នែក​ផ្ទាល់ខ្លួន" msgstr "ផ្នែក​ផ្ទាល់ខ្លួន"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "Czech" msgstr "Czech"
@@ -2247,6 +2259,10 @@ msgstr "មិនទាន់មាន passkey បានចុះឈ្មោះ
msgid "No results found." msgid "No results found."
msgstr "រក​មិន​ឃើញ​លទ្ធផល។" msgstr "រក​មិន​ឃើញ​លទ្ធផល។"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "គ្មានអ្នកផ្តល់សេវាដែលបានធ្វើតេស្តទេ" msgstr "គ្មានអ្នកផ្តល់សេវាដែលបានធ្វើតេស្តទេ"
@@ -2714,6 +2730,10 @@ msgstr "កំណត់​ឡើងវិញ"
msgid "Reset Password" msgid "Reset Password"
msgstr "កំណត់​ពាក្យសម្ងាត់​ឡើងវិញ" msgstr "កំណត់​ពាក្យសម្ងាត់​ឡើងវិញ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "កំណត់​ពាក្យសម្ងាត់​របស់​អ្នក​ឡើងវិញ" msgstr "កំណត់​ពាក្យសម្ងាត់​របស់​អ្នក​ឡើងវិញ"
@@ -2790,6 +2810,14 @@ msgstr "Romanian"
msgid "Rotation" msgid "Rotation"
msgstr "មុំ​បង្វែរ" msgstr "មុំ​បង្វែរ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "ដំណើរការវិភាគលើកដំបូងរបស់អ្នកដើម្បីទទួលបានតារាងពិន្ទុ ចំណុចខ្លាំង និងសំណើដែលបានកំណត់អាទិភាព។" msgstr "ដំណើរការវិភាគលើកដំបូងរបស់អ្នកដើម្បីទទួលបានតារាងពិន្ទុ ចំណុចខ្លាំង និងសំណើដែលបានកំណត់អាទិភាព។"
@@ -3708,6 +3736,10 @@ msgstr "កំពុង​បច្ចុប្បន្នភាព​ពាក
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "កំពុង​បច្ចុប្បន្នភាព​ប្រវត្តិរូប​របស់​អ្នក..." msgstr "កំពុង​បច្ចុប្បន្នភាព​ប្រវត្តិរូប​របស់​អ្នក..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "អាប់ឡូដរូបភាព" msgstr "អាប់ឡូដរូបភាព"
@@ -3959,4 +3991,3 @@ msgstr "បង្រួម"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "ಆ್ಯಪ್"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "ಅಪ್ಲಿಕೇಶನ್ ಅಂಕಿಅಂಶಗಳು" msgstr "ಅಪ್ಲಿಕೇಶನ್ ಅಂಕಿಅಂಶಗಳು"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "ಅರೇಬಿಕ್" msgstr "ಅರೇಬಿಕ್"
@@ -671,6 +675,10 @@ msgstr "ವೃತ್ತ"
msgid "Clear" msgid "Clear"
msgstr "ತೆರವುಗೊಳಿಸಿ" msgstr "ತೆರವುಗೊಳಿಸಿ"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "ಆಮದು ಮಾಡಲು ಕಡತವನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ಇಲ್ಲಿ ಕ್ಲಿಕ್ ಮಾಡಿ" msgstr "ಆಮದು ಮಾಡಲು ಕಡತವನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ಇಲ್ಲಿ ಕ್ಲಿಕ್ ಮಾಡಿ"
@@ -953,6 +961,10 @@ msgstr "ಕಸ್ಟಮ್ OAuth"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "ಕಸ್ಟಮ್ ವಿಭಾಗಗಳು" msgstr "ಕಸ್ಟಮ್ ವಿಭಾಗಗಳು"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "ಚೆಕ್" msgstr "ಚೆಕ್"
@@ -2247,6 +2259,10 @@ msgstr "ಇನ್ನೂ ಯಾವುದೇ ಪಾಸ್‌ಕೀಗಳು ನೋ
msgid "No results found." msgid "No results found."
msgstr "ಯಾವುದೇ ಫಲಿತಾಂಶಗಳು ಕಂಡುಬರಲಿಲ್ಲ." msgstr "ಯಾವುದೇ ಫಲಿತಾಂಶಗಳು ಕಂಡುಬರಲಿಲ್ಲ."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "ಪರೀಕ್ಷಿಸದ ಪೂರೈಕೆದಾರರು ಇಲ್ಲ." msgstr "ಪರೀಕ್ಷಿಸದ ಪೂರೈಕೆದಾರರು ಇಲ್ಲ."
@@ -2714,6 +2730,10 @@ msgstr "ಮರುಹೊಂದಿಸಿ"
msgid "Reset Password" msgid "Reset Password"
msgstr "ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಮರುಹೊಂದಿಸಿ" msgstr "ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಮರುಹೊಂದಿಸಿ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಮರುಹೊಂದಿಸಿ" msgstr "ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಮರುಹೊಂದಿಸಿ"
@@ -2790,6 +2810,14 @@ msgstr "ರೊಮೇನಿಯನ್"
msgid "Rotation" msgid "Rotation"
msgstr "ಭ್ರಮನ" msgstr "ಭ್ರಮನ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "ಸ್ಕೋರ್‌ಕಾರ್ಡ್, ಬಲಗಳು ಮತ್ತು ಆದ್ಯತೆಯ ಸಲಹೆಗಳನ್ನು ಪಡೆಯಲು ನಿಮ್ಮ ಮೊದಲ ವಿಶ್ಲೇಷಣೆಯನ್ನು ಚಲಾಯಿಸಿ." msgstr "ಸ್ಕೋರ್‌ಕಾರ್ಡ್, ಬಲಗಳು ಮತ್ತು ಆದ್ಯತೆಯ ಸಲಹೆಗಳನ್ನು ಪಡೆಯಲು ನಿಮ್ಮ ಮೊದಲ ವಿಶ್ಲೇಷಣೆಯನ್ನು ಚಲಾಯಿಸಿ."
@@ -3708,6 +3736,10 @@ msgstr "ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನವೀ
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "ನಿಮ್ಮ ರೆಸ್ಯೂಮ್ ನವೀಕರಿಸಲಾಗುತ್ತಿದೆ..." msgstr "ನಿಮ್ಮ ರೆಸ್ಯೂಮ್ ನವೀಕರಿಸಲಾಗುತ್ತಿದೆ..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "ಚಿತ್ರವನ್ನು ಅಪ್‌ಲೋಡ್ ಮಾಡಿ" msgstr "ಚಿತ್ರವನ್ನು ಅಪ್‌ಲೋಡ್ ಮಾಡಿ"
@@ -3959,4 +3991,3 @@ msgstr "ಗಾತ್ರ ಕುಗ್ಗಿಸಿ"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "ಜೂಲೂ" msgstr "ಜೂಲೂ"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "앱"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "애플리케이션 통계" msgstr "애플리케이션 통계"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "아랍어" msgstr "아랍어"
@@ -671,6 +675,10 @@ msgstr "원"
msgid "Clear" msgid "Clear"
msgstr "지우기" msgstr "지우기"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "가져올 파일을 선택하려면 여기를 클릭하세요" msgstr "가져올 파일을 선택하려면 여기를 클릭하세요"
@@ -953,6 +961,10 @@ msgstr "사용자 지정 OAuth"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "사용자 지정 섹션" msgstr "사용자 지정 섹션"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "체코어" msgstr "체코어"
@@ -2247,6 +2259,10 @@ msgstr "아직 등록된 패스키가 없습니다."
msgid "No results found." msgid "No results found."
msgstr "결과가 없습니다." msgstr "결과가 없습니다."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "검증되지 않은 제공업체" msgstr "검증되지 않은 제공업체"
@@ -2714,6 +2730,10 @@ msgstr "초기화"
msgid "Reset Password" msgid "Reset Password"
msgstr "비밀번호 재설정" msgstr "비밀번호 재설정"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "비밀번호 재설정" msgstr "비밀번호 재설정"
@@ -2790,6 +2810,14 @@ msgstr "루마니아어"
msgid "Rotation" msgid "Rotation"
msgstr "회전" msgstr "회전"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "첫 번째 분석을 실행하여 스코어카드, 강점, 우선순위가 지정된 제안을 확인하세요." msgstr "첫 번째 분석을 실행하여 스코어카드, 강점, 우선순위가 지정된 제안을 확인하세요."
@@ -3708,6 +3736,10 @@ msgstr "비밀번호를 업데이트하는 중입니다..."
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "이력서를 업데이트하는 중입니다..." msgstr "이력서를 업데이트하는 중입니다..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "사진 업로드" msgstr "사진 업로드"
@@ -3959,4 +3991,3 @@ msgstr "축소"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "줄루어" msgstr "줄루어"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "Programa"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "Programos statistika" msgstr "Programos statistika"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arabų" msgstr "Arabų"
@@ -671,6 +675,10 @@ msgstr "Apskritimas"
msgid "Clear" msgid "Clear"
msgstr "Skaidrus" msgstr "Skaidrus"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "Spustelėkite čia, kad pasirinktumėte importuojamą failą" msgstr "Spustelėkite čia, kad pasirinktumėte importuojamą failą"
@@ -953,6 +961,10 @@ msgstr "Pasirinktinis OAuth"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "Pasirinktiniai skyriai" msgstr "Pasirinktiniai skyriai"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "Čekų" msgstr "Čekų"
@@ -2247,6 +2259,10 @@ msgstr "Kol kas neužregistruota jokių passkeys."
msgid "No results found." msgid "No results found."
msgstr "Rezultatų nerasta." msgstr "Rezultatų nerasta."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "Nėra patikrinto tiekėjo" msgstr "Nėra patikrinto tiekėjo"
@@ -2714,6 +2730,10 @@ msgstr "Nustatyti iš naujo"
msgid "Reset Password" msgid "Reset Password"
msgstr "Atkurti slaptažodį" msgstr "Atkurti slaptažodį"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "Atkurkite slaptažodį" msgstr "Atkurkite slaptažodį"
@@ -2790,6 +2810,14 @@ msgstr "Rumunų"
msgid "Rotation" msgid "Rotation"
msgstr "Sukimas" msgstr "Sukimas"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Atlikite pirmąją analizę, kad gautumėte rezultatų lentelę, stipriąsias puses ir prioritetinius pasiūlymus." msgstr "Atlikite pirmąją analizę, kad gautumėte rezultatų lentelę, stipriąsias puses ir prioritetinius pasiūlymus."
@@ -3708,6 +3736,10 @@ msgstr "Atnaujinamas jūsų slaptažodis..."
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "Atnaujinamas jūsų gyvenimo aprašymas..." msgstr "Atnaujinamas jūsų gyvenimo aprašymas..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "Įkelti nuotrauką" msgstr "Įkelti nuotrauką"
@@ -3959,4 +3991,3 @@ msgstr "Tolinti"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulų" msgstr "Zulų"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "Lietotne"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "Lietotnes statistika" msgstr "Lietotnes statistika"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arābu" msgstr "Arābu"
@@ -671,6 +675,10 @@ msgstr "Aplis"
msgid "Clear" msgid "Clear"
msgstr "Skaidrs" msgstr "Skaidrs"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "Noklikšķiniet šeit, lai izvēlētos importējamo failu" msgstr "Noklikšķiniet šeit, lai izvēlētos importējamo failu"
@@ -953,6 +961,10 @@ msgstr "Pielāgotais OAuth"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "Pielāgotās sadaļas" msgstr "Pielāgotās sadaļas"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "Čehu" msgstr "Čehu"
@@ -2247,6 +2259,10 @@ msgstr "Pagaidām nav reģistrēti pases taustiņi."
msgid "No results found." msgid "No results found."
msgstr "Rezultāti nav atrasti." msgstr "Rezultāti nav atrasti."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "Nav pārbaudīta pakalpojumu sniedzēja" msgstr "Nav pārbaudīta pakalpojumu sniedzēja"
@@ -2714,6 +2730,10 @@ msgstr "Atiestatīt"
msgid "Reset Password" msgid "Reset Password"
msgstr "Atiestatīt paroli" msgstr "Atiestatīt paroli"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "Atiestatīt paroli" msgstr "Atiestatīt paroli"
@@ -2790,6 +2810,14 @@ msgstr "Rumāņu"
msgid "Rotation" msgid "Rotation"
msgstr "Rotācija" msgstr "Rotācija"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Veiciet pirmo analīzi, lai iegūtu rezultātu tabulu, stiprās puses un prioritizētus ieteikumus." msgstr "Veiciet pirmo analīzi, lai iegūtu rezultātu tabulu, stiprās puses un prioritizētus ieteikumus."
@@ -3708,6 +3736,10 @@ msgstr "Tiek atjaunināta jūsu parole..."
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "Tiek atjaunināts jūsu CV..." msgstr "Tiek atjaunināts jūsu CV..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "Augšupielādēt attēlu" msgstr "Augšupielādēt attēlu"
@@ -3959,4 +3991,3 @@ msgstr "Tālināt"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "ആപ്പ്"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "ആപ്ലിക്കേഷൻ സ്റ്റാറ്റിസ്റ്റിക്സ്" msgstr "ആപ്ലിക്കേഷൻ സ്റ്റാറ്റിസ്റ്റിക്സ്"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "അറബിക്" msgstr "അറബിക്"
@@ -671,6 +675,10 @@ msgstr "വൃത്തം"
msgid "Clear" msgid "Clear"
msgstr "വ്യക്തമാക്കുക" msgstr "വ്യക്തമാക്കുക"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "ഇംപോർട്ട് ചെയ്യാൻ ഒരു ഫയൽ തിരഞ്ഞെടുക്കാൻ ഇവിടെ ക്ലിക്ക് ചെയ്യുക" msgstr "ഇംപോർട്ട് ചെയ്യാൻ ഒരു ഫയൽ തിരഞ്ഞെടുക്കാൻ ഇവിടെ ക്ലിക്ക് ചെയ്യുക"
@@ -953,6 +961,10 @@ msgstr "ഇഷ്ടാനുസൃത OAuth"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "കസ്റ്റം സെക്ഷനുകൾ" msgstr "കസ്റ്റം സെക്ഷനുകൾ"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "ചെക്ക്" msgstr "ചെക്ക്"
@@ -2247,6 +2259,10 @@ msgstr "ഇതുവരെ പാസ്‌കീകൾ രജിസ്റ്റ
msgid "No results found." msgid "No results found."
msgstr "ഒരൊന്നുമാത്രം ഫലങ്ങളൊന്നും ലഭ്യമല്ല." msgstr "ഒരൊന്നുമാത്രം ഫലങ്ങളൊന്നും ലഭ്യമല്ല."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "പരിശോധിച്ച ദാതാവില്ല." msgstr "പരിശോധിച്ച ദാതാവില്ല."
@@ -2714,6 +2730,10 @@ msgstr "റീസെറ്റ് ചെയ്യുക"
msgid "Reset Password" msgid "Reset Password"
msgstr "പാസ്‌വേഡ് റീസെറ്റ് ചെയ്യുക" msgstr "പാസ്‌വേഡ് റീസെറ്റ് ചെയ്യുക"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "നിങ്ങളുടെ പാസ്‌വേഡ് റീസെറ്റ് ചെയ്യുക" msgstr "നിങ്ങളുടെ പാസ്‌വേഡ് റീസെറ്റ് ചെയ്യുക"
@@ -2790,6 +2810,14 @@ msgstr "റൊമാനിയൻ"
msgid "Rotation" msgid "Rotation"
msgstr "ററോട്ടേഷൻ" msgstr "ററോട്ടേഷൻ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "നിങ്ങളുടെ ആദ്യ വിശകലനം നടത്തി ഒരു സ്കോർകാർഡ്, ശക്തികൾ, മുൻഗണനാ നിർദ്ദേശങ്ങൾ എന്നിവ നേടുക." msgstr "നിങ്ങളുടെ ആദ്യ വിശകലനം നടത്തി ഒരു സ്കോർകാർഡ്, ശക്തികൾ, മുൻഗണനാ നിർദ്ദേശങ്ങൾ എന്നിവ നേടുക."
@@ -3708,6 +3736,10 @@ msgstr "നിങ്ങളുടെ പാസ്‌വേഡ് അപ്‌ഡ
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "നിങ്ങളുടെ റിസ്യൂം അപ്‌ഡേറ്റ് ചെയ്യുന്നു..." msgstr "നിങ്ങളുടെ റിസ്യൂം അപ്‌ഡേറ്റ് ചെയ്യുന്നു..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "ചിത്രം അപ്‌ലോഡ് ചെയ്യുക" msgstr "ചിത്രം അപ്‌ലോഡ് ചെയ്യുക"
@@ -3959,4 +3991,3 @@ msgstr "സൂം ഔട്ട് ചെയ്യുക"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "സൂളു" msgstr "സൂളു"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "अ‍ॅप"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "अ‍ॅप्लिकेशन आकडेवारी" msgstr "अ‍ॅप्लिकेशन आकडेवारी"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "अरबी" msgstr "अरबी"
@@ -671,6 +675,10 @@ msgstr "गोलाकार"
msgid "Clear" msgid "Clear"
msgstr "स्पष्ट" msgstr "स्पष्ट"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "इम्पोर्ट करण्यासाठी फाईल निवडण्यासाठी येथे क्लिक करा" msgstr "इम्पोर्ट करण्यासाठी फाईल निवडण्यासाठी येथे क्लिक करा"
@@ -953,6 +961,10 @@ msgstr "सानुकूल OAuth"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "सानुकूल विभाग" msgstr "सानुकूल विभाग"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "चेक" msgstr "चेक"
@@ -2247,6 +2259,10 @@ msgstr "अद्याप कोणतीही पासकी नोंदव
msgid "No results found." msgid "No results found."
msgstr "कोणतेही परिणाम आढळले नाहीत." msgstr "कोणतेही परिणाम आढळले नाहीत."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "कोणताही तपासलेला प्रदाता नाही" msgstr "कोणताही तपासलेला प्रदाता नाही"
@@ -2714,6 +2730,10 @@ msgstr "रीसेट करा"
msgid "Reset Password" msgid "Reset Password"
msgstr "पासवर्ड रीसेट करा" msgstr "पासवर्ड रीसेट करा"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "तुमचा पासवर्ड रीसेट करा" msgstr "तुमचा पासवर्ड रीसेट करा"
@@ -2790,6 +2810,14 @@ msgstr "रोमानियन"
msgid "Rotation" msgid "Rotation"
msgstr "रोटेशन" msgstr "रोटेशन"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "तुमचे पहिले विश्लेषण चालवा आणि स्कोरकार्ड, सामर्थ्ये आणि प्राधान्यक्रमाने सुचवलेल्या सूचना मिळवा." msgstr "तुमचे पहिले विश्लेषण चालवा आणि स्कोरकार्ड, सामर्थ्ये आणि प्राधान्यक्रमाने सुचवलेल्या सूचना मिळवा."
@@ -3708,6 +3736,10 @@ msgstr "तुमचा पासवर्ड अपडेट केला ज
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "तुमचा रेझ्युमे अपडेट केला जात आहे..." msgstr "तुमचा रेझ्युमे अपडेट केला जात आहे..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "चित्र अपलोड करा" msgstr "चित्र अपलोड करा"
@@ -3959,4 +3991,3 @@ msgstr "बाहेर झूम करा"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "झुलू" msgstr "झुलू"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "Apl"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "Statistik Aplikasi" msgstr "Statistik Aplikasi"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Bahasa Arab" msgstr "Bahasa Arab"
@@ -671,6 +675,10 @@ msgstr "Bulatan"
msgid "Clear" msgid "Clear"
msgstr "Jelas" msgstr "Jelas"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "Klik di sini untuk memilih fail untuk diimport" msgstr "Klik di sini untuk memilih fail untuk diimport"
@@ -953,6 +961,10 @@ msgstr "OAuth Tersuai"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "Seksyen Tersuai" msgstr "Seksyen Tersuai"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "Czech" msgstr "Czech"
@@ -2247,6 +2259,10 @@ msgstr "Tiada kunci laluan yang didaftarkan lagi."
msgid "No results found." msgid "No results found."
msgstr "Tiada keputusan dijumpai." msgstr "Tiada keputusan dijumpai."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "Tiada pembekal yang diuji" msgstr "Tiada pembekal yang diuji"
@@ -2714,6 +2730,10 @@ msgstr "Tetapkan Semula"
msgid "Reset Password" msgid "Reset Password"
msgstr "Tetapkan Semula Kata Laluan" msgstr "Tetapkan Semula Kata Laluan"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "Tetapkan semula kata laluan anda" msgstr "Tetapkan semula kata laluan anda"
@@ -2790,6 +2810,14 @@ msgstr "Rom"
msgid "Rotation" msgid "Rotation"
msgstr "Putaran" msgstr "Putaran"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Jalankan analisis pertama anda untuk mendapatkan kad skor, kekuatan, dan cadangan yang diutamakan." msgstr "Jalankan analisis pertama anda untuk mendapatkan kad skor, kekuatan, dan cadangan yang diutamakan."
@@ -3708,6 +3736,10 @@ msgstr "Mengemas kini kata laluan anda..."
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "Mengemas kini resume anda..." msgstr "Mengemas kini resume anda..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "Muat naik gambar" msgstr "Muat naik gambar"
@@ -3959,4 +3991,3 @@ msgstr "Zum keluar"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "एप"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "अनुप्रयोग तथ्याङ्क" msgstr "अनुप्रयोग तथ्याङ्क"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "अरबी" msgstr "अरबी"
@@ -671,6 +675,10 @@ msgstr "वृत्त"
msgid "Clear" msgid "Clear"
msgstr "स्पष्ट" msgstr "स्पष्ट"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "आयात गर्न फाइल छान्न यहाँ क्लिक गर्नुहोस्" msgstr "आयात गर्न फाइल छान्न यहाँ क्लिक गर्नुहोस्"
@@ -953,6 +961,10 @@ msgstr "अनुकूलित OAuth"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "अनुकूल (Custom) खण्डहरू" msgstr "अनुकूल (Custom) खण्डहरू"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "चेक" msgstr "चेक"
@@ -2247,6 +2259,10 @@ msgstr "अहिलेसम्म कुनै पासकी दर्ता
msgid "No results found." msgid "No results found."
msgstr "कुनै परिणाम फेला परेन।" msgstr "कुनै परिणाम फेला परेन।"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "परीक्षण गरिएको कुनै प्रदायक छैन" msgstr "परीक्षण गरिएको कुनै प्रदायक छैन"
@@ -2714,6 +2730,10 @@ msgstr "रिसेट गर्नुहोस्"
msgid "Reset Password" msgid "Reset Password"
msgstr "पासवर्ड रिसेट गर्नुहोस्" msgstr "पासवर्ड रिसेट गर्नुहोस्"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "तपाईंको पासवर्ड रिसेट गर्नुहोस्" msgstr "तपाईंको पासवर्ड रिसेट गर्नुहोस्"
@@ -2790,6 +2810,14 @@ msgstr "रुमानियन"
msgid "Rotation" msgid "Rotation"
msgstr "घुमाउने कोण (Rotation)" msgstr "घुमाउने कोण (Rotation)"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "स्कोरकार्ड, शक्तिहरू, र प्राथमिकता दिइएका सुझावहरू प्राप्त गर्न आफ्नो पहिलो विश्लेषण चलाउनुहोस्।" msgstr "स्कोरकार्ड, शक्तिहरू, र प्राथमिकता दिइएका सुझावहरू प्राप्त गर्न आफ्नो पहिलो विश्लेषण चलाउनुहोस्।"
@@ -3708,6 +3736,10 @@ msgstr "तपाईंको पासवर्ड अद्यावधिक
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "तपाईंको बायोडाटा अद्यावधिक हुँदैछ..." msgstr "तपाईंको बायोडाटा अद्यावधिक हुँदैछ..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "तस्बिर अपलोड गर्नुहोस्" msgstr "तस्बिर अपलोड गर्नुहोस्"
@@ -3959,4 +3991,3 @@ msgstr "जूम आउट"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "जुलु" msgstr "जुलु"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "App"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "Applicatiestatistieken" msgstr "Applicatiestatistieken"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arabisch" msgstr "Arabisch"
@@ -671,6 +675,10 @@ msgstr "Cirkel"
msgid "Clear" msgid "Clear"
msgstr "Duidelijk" msgstr "Duidelijk"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "Klik hier om een bestand te selecteren om te importeren" msgstr "Klik hier om een bestand te selecteren om te importeren"
@@ -953,6 +961,10 @@ msgstr "Aangepaste OAuth"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "Aangepaste secties" msgstr "Aangepaste secties"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "Tsjechisch" msgstr "Tsjechisch"
@@ -2247,6 +2259,10 @@ msgstr "Er zijn nog geen paskeys geregistreerd."
msgid "No results found." msgid "No results found."
msgstr "Geen resultaten gevonden." msgstr "Geen resultaten gevonden."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "Geen geteste provider" msgstr "Geen geteste provider"
@@ -2714,6 +2730,10 @@ msgstr "Resetten"
msgid "Reset Password" msgid "Reset Password"
msgstr "Wachtwoord resetten" msgstr "Wachtwoord resetten"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "Reset uw wachtwoord" msgstr "Reset uw wachtwoord"
@@ -2790,6 +2810,14 @@ msgstr "Roemeens"
msgid "Rotation" msgid "Rotation"
msgstr "Rotatie" msgstr "Rotatie"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Voer uw eerste analyse uit om een scorekaart, sterke punten en geprioriteerde suggesties te krijgen." msgstr "Voer uw eerste analyse uit om een scorekaart, sterke punten en geprioriteerde suggesties te krijgen."
@@ -3708,6 +3736,10 @@ msgstr "Uw wachtwoord wordt bijgewerkt..."
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "Uw cv wordt bijgewerkt..." msgstr "Uw cv wordt bijgewerkt..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "Afbeelding uploaden" msgstr "Afbeelding uploaden"
@@ -3959,4 +3991,3 @@ msgstr "Uitzoomen"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "App"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "Applikasjonsstatistikk" msgstr "Applikasjonsstatistikk"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arabisk" msgstr "Arabisk"
@@ -671,6 +675,10 @@ msgstr "Sirkel"
msgid "Clear" msgid "Clear"
msgstr "Tøm" msgstr "Tøm"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "Klikk her for å velge en fil å importere" msgstr "Klikk her for å velge en fil å importere"
@@ -953,6 +961,10 @@ msgstr "Egendefinert OAuth"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "Tilpassede seksjoner" msgstr "Tilpassede seksjoner"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "Tsjekkisk" msgstr "Tsjekkisk"
@@ -2247,6 +2259,10 @@ msgstr "Ingen passnøkler registrert ennå."
msgid "No results found." msgid "No results found."
msgstr "Ingen resultater funnet." msgstr "Ingen resultater funnet."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "Ingen testet leverandør" msgstr "Ingen testet leverandør"
@@ -2714,6 +2730,10 @@ msgstr "Tilbakestill"
msgid "Reset Password" msgid "Reset Password"
msgstr "Tilbakestill passord" msgstr "Tilbakestill passord"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "Tilbakestill passordet ditt" msgstr "Tilbakestill passordet ditt"
@@ -2790,6 +2810,14 @@ msgstr "Rumensk"
msgid "Rotation" msgid "Rotation"
msgstr "Rotasjon" msgstr "Rotasjon"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Kjør din første analyse for å få et poengkort, styrker og prioriterte forslag." msgstr "Kjør din første analyse for å få et poengkort, styrker og prioriterte forslag."
@@ -3708,6 +3736,10 @@ msgstr "Oppdaterer passordet ditt..."
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "Oppdaterer CV-en din..." msgstr "Oppdaterer CV-en din..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "Last opp bilde" msgstr "Last opp bilde"
@@ -3959,4 +3991,3 @@ msgstr "Zoom ut"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "ଆପ୍"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "ଆପ୍ଲିକେସନ୍ ସଂଖ୍ୟାତ୍ମକ ତଥ୍ୟ" msgstr "ଆପ୍ଲିକେସନ୍ ସଂଖ୍ୟାତ୍ମକ ତଥ୍ୟ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "ଆରବୀ" msgstr "ଆରବୀ"
@@ -671,6 +675,10 @@ msgstr "ବୃତ୍ତ"
msgid "Clear" msgid "Clear"
msgstr "ସଫା କରନ୍ତୁ" msgstr "ସଫା କରନ୍ତୁ"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "ଆୟାତ କରିବା ପାଇଁ ଫାଇଲ୍ ଚୟନ କରିବାକୁ ଏଠାରେ କ୍ଲିକ୍ କରନ୍ତୁ" msgstr "ଆୟାତ କରିବା ପାଇଁ ଫାଇଲ୍ ଚୟନ କରିବାକୁ ଏଠାରେ କ୍ଲିକ୍ କରନ୍ତୁ"
@@ -953,6 +961,10 @@ msgstr "କଷ୍ଟମ୍ OAuth"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "କଷ୍ଟମ୍ ବିଭାଗଗୁଡିକ" msgstr "କଷ୍ଟମ୍ ବିଭାଗଗୁଡିକ"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "ଚେକ୍" msgstr "ଚେକ୍"
@@ -2247,6 +2259,10 @@ msgstr "ଏପର୍ଯ୍ୟନ୍ତ କୌଣସି ପାସକି ପଞ୍
msgid "No results found." msgid "No results found."
msgstr "କୌଣସି ଫଳାଫଳ ମିଳିଲା ନାହିଁ।" msgstr "କୌଣସି ଫଳାଫଳ ମିଳିଲା ନାହିଁ।"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "କୌଣସି ପରୀକ୍ଷିତ ପ୍ରଦାନକାରୀ ନାହାଁନ୍ତି" msgstr "କୌଣସି ପରୀକ୍ଷିତ ପ୍ରଦାନକାରୀ ନାହାଁନ୍ତି"
@@ -2714,6 +2730,10 @@ msgstr "ରିସେଟ୍ କରନ୍ତୁ"
msgid "Reset Password" msgid "Reset Password"
msgstr "ପାସୱାର୍ଡ ରିସେଟ୍ କରନ୍ତୁ" msgstr "ପାସୱାର୍ଡ ରିସେଟ୍ କରନ୍ତୁ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "ଆପଣଙ୍କ ପାସୱାର୍ଡ ରିସେଟ୍ କରନ୍ତୁ" msgstr "ଆପଣଙ୍କ ପାସୱାର୍ଡ ରିସେଟ୍ କରନ୍ତୁ"
@@ -2790,6 +2810,14 @@ msgstr "ରୋମାନିଆନ୍"
msgid "Rotation" msgid "Rotation"
msgstr "ଘୁର୍ଣ୍ଣନ" msgstr "ଘୁର୍ଣ୍ଣନ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "ସ୍କୋରକାର୍ଡ, ଶକ୍ତି ଏବଂ ପ୍ରାଥମିକତାଭିତ୍ତିକ ପରାମର୍ଶ ପାଇବା ପାଇଁ ଆପଣଙ୍କ ପ୍ରଥମ ବିଶ୍ଳେଷଣ ଚଲାନ୍ତୁ।" msgstr "ସ୍କୋରକାର୍ଡ, ଶକ୍ତି ଏବଂ ପ୍ରାଥମିକତାଭିତ୍ତିକ ପରାମର୍ଶ ପାଇବା ପାଇଁ ଆପଣଙ୍କ ପ୍ରଥମ ବିଶ୍ଳେଷଣ ଚଲାନ୍ତୁ।"
@@ -3708,6 +3736,10 @@ msgstr "ଆପଣଙ୍କ ପାସୱାର୍ଡ ଅଦ୍ୟତନ ହେଉ
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "ଆପଣଙ୍କ ରେଜ୍ୟୁମେ ଅଦ୍ୟତନ ହେଉଛି..." msgstr "ଆପଣଙ୍କ ରେଜ୍ୟୁମେ ଅଦ୍ୟତନ ହେଉଛି..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "ଛବି ଅପଲୋଡ୍ କରନ୍ତୁ" msgstr "ଛବି ଅପଲୋଡ୍ କରନ୍ତୁ"
@@ -3959,4 +3991,3 @@ msgstr "ଜୁମ୍ ଆଉଟ୍ କରନ୍ତୁ"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "ଜୁଲୁ" msgstr "ଜୁଲୁ"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "Aplikacja"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "Statystyki aplikacji" msgstr "Statystyki aplikacji"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arabski" msgstr "Arabski"
@@ -671,6 +675,10 @@ msgstr "Koło"
msgid "Clear" msgid "Clear"
msgstr "Wyczyść" msgstr "Wyczyść"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "Kliknij tutaj, aby wybrać plik do importu" msgstr "Kliknij tutaj, aby wybrać plik do importu"
@@ -953,6 +961,10 @@ msgstr "Niestandardowy OAuth"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "Sekcje niestandardowe" msgstr "Sekcje niestandardowe"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "Czeski" msgstr "Czeski"
@@ -2247,6 +2259,10 @@ msgstr "Nie zarejestrowano jeszcze żadnych kluczy dostępu."
msgid "No results found." msgid "No results found."
msgstr "Brak wyników." msgstr "Brak wyników."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "Brak sprawdzonego dostawcy" msgstr "Brak sprawdzonego dostawcy"
@@ -2714,6 +2730,10 @@ msgstr "Zresetuj"
msgid "Reset Password" msgid "Reset Password"
msgstr "Zresetuj hasło" msgstr "Zresetuj hasło"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "Zresetuj swoje hasło" msgstr "Zresetuj swoje hasło"
@@ -2790,6 +2810,14 @@ msgstr "Rumuński"
msgid "Rotation" msgid "Rotation"
msgstr "Obrót" msgstr "Obrót"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Proszę przeprowadzić pierwszą analizę, aby uzyskać kartę wyników, mocne strony i sugestie dotyczące priorytetów." msgstr "Proszę przeprowadzić pierwszą analizę, aby uzyskać kartę wyników, mocne strony i sugestie dotyczące priorytetów."
@@ -3708,6 +3736,10 @@ msgstr "Aktualizowanie hasła..."
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "Aktualizowanie CV..." msgstr "Aktualizowanie CV..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "Proszę przesłać zdjęcie" msgstr "Proszę przesłać zdjęcie"
@@ -3959,4 +3991,3 @@ msgstr "Pomniejsz"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "Aplicativo"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "Estatísticas do aplicativo" msgstr "Estatísticas do aplicativo"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Árabe" msgstr "Árabe"
@@ -671,6 +675,10 @@ msgstr "Círculo"
msgid "Clear" msgid "Clear"
msgstr "Limpo" msgstr "Limpo"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "Clique aqui para selecionar um arquivo para importar" msgstr "Clique aqui para selecionar um arquivo para importar"
@@ -953,6 +961,10 @@ msgstr "OAuth personalizado"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "Seções personalizadas" msgstr "Seções personalizadas"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "Tcheco" msgstr "Tcheco"
@@ -2247,6 +2259,10 @@ msgstr "Ainda não há chaves de acesso registradas."
msgid "No results found." msgid "No results found."
msgstr "Nenhum resultado encontrado." msgstr "Nenhum resultado encontrado."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "Nenhum fornecedor testado" msgstr "Nenhum fornecedor testado"
@@ -2714,6 +2730,10 @@ msgstr "Redefinir"
msgid "Reset Password" msgid "Reset Password"
msgstr "Redefinir senha" msgstr "Redefinir senha"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "Redefinir a sua senha" msgstr "Redefinir a sua senha"
@@ -2790,6 +2810,14 @@ msgstr "Romeno"
msgid "Rotation" msgid "Rotation"
msgstr "Rotação" msgstr "Rotação"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Faça sua primeira análise para obter um quadro de resultados, pontos fortes e sugestões priorizadas." msgstr "Faça sua primeira análise para obter um quadro de resultados, pontos fortes e sugestões priorizadas."
@@ -3708,6 +3736,10 @@ msgstr "Atualizando sua senha..."
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "Atualizando seu currículo..." msgstr "Atualizando seu currículo..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "Carregar imagem" msgstr "Carregar imagem"
@@ -3959,4 +3991,3 @@ msgstr "Diminuir zoom"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "Aplicação"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "Estatísticas da aplicação" msgstr "Estatísticas da aplicação"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Árabe" msgstr "Árabe"
@@ -671,6 +675,10 @@ msgstr "Círculo"
msgid "Clear" msgid "Clear"
msgstr "Limpar" msgstr "Limpar"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "Clique aqui para selecionar um ficheiro para importar" msgstr "Clique aqui para selecionar um ficheiro para importar"
@@ -953,6 +961,10 @@ msgstr "OAuth personalizado"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "Secções personalizadas" msgstr "Secções personalizadas"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "Checo" msgstr "Checo"
@@ -2247,6 +2259,10 @@ msgstr "Ainda não há chaves de acesso registadas."
msgid "No results found." msgid "No results found."
msgstr "Nenhum resultado encontrado." msgstr "Nenhum resultado encontrado."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "Nenhum fornecedor testado" msgstr "Nenhum fornecedor testado"
@@ -2714,6 +2730,10 @@ msgstr "Repor"
msgid "Reset Password" msgid "Reset Password"
msgstr "Repor senha" msgstr "Repor senha"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "Repor a sua senha" msgstr "Repor a sua senha"
@@ -2790,6 +2810,14 @@ msgstr "Romeno"
msgid "Rotation" msgid "Rotation"
msgstr "Rotação" msgstr "Rotação"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Execute a sua primeira análise para obter um quadro de pontuação, pontos fortes e sugestões prioritárias." msgstr "Execute a sua primeira análise para obter um quadro de pontuação, pontos fortes e sugestões prioritárias."
@@ -3708,6 +3736,10 @@ msgstr "A atualizar a sua senha..."
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "A atualizar o seu currículo..." msgstr "A atualizar o seu currículo..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "Carregar imagem" msgstr "Carregar imagem"
@@ -3959,4 +3991,3 @@ msgstr "Afastar"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "Aplicație"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "Statistici aplicație" msgstr "Statistici aplicație"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arabă" msgstr "Arabă"
@@ -671,6 +675,10 @@ msgstr "Cerc"
msgid "Clear" msgid "Clear"
msgstr "Clar" msgstr "Clar"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "Faceți clic aici pentru a selecta un fișier de importat" msgstr "Faceți clic aici pentru a selecta un fișier de importat"
@@ -953,6 +961,10 @@ msgstr "OAuth personalizat"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "Secțiuni personalizate" msgstr "Secțiuni personalizate"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "Cehă" msgstr "Cehă"
@@ -2247,6 +2259,10 @@ msgstr "Nicio cheie de acces înregistrată încă."
msgid "No results found." msgid "No results found."
msgstr "Nu s-a găsit niciun rezultat." msgstr "Nu s-a găsit niciun rezultat."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "Niciun furnizor testat" msgstr "Niciun furnizor testat"
@@ -2714,6 +2730,10 @@ msgstr "Resetează"
msgid "Reset Password" msgid "Reset Password"
msgstr "Resetați parola" msgstr "Resetați parola"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "Resetați-vă parola" msgstr "Resetați-vă parola"
@@ -2790,6 +2810,14 @@ msgstr "Română"
msgid "Rotation" msgid "Rotation"
msgstr "Rotire" msgstr "Rotire"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Efectuați prima analiză pentru a obține o fișă de evaluare, puncte forte și sugestii prioritizate." msgstr "Efectuați prima analiză pentru a obține o fișă de evaluare, puncte forte și sugestii prioritizate."
@@ -3708,6 +3736,10 @@ msgstr "Se actualizează parola..."
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "Se actualizează CV-ul..." msgstr "Se actualizează CV-ul..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "Încărcați imaginea" msgstr "Încărcați imaginea"
@@ -3959,4 +3991,3 @@ msgstr "Micșorează"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "Приложение"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "Статистика приложения" msgstr "Статистика приложения"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Арабский" msgstr "Арабский"
@@ -671,6 +675,10 @@ msgstr "Круг"
msgid "Clear" msgid "Clear"
msgstr "Clear" msgstr "Clear"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "Нажмите здесь, чтобы выбрать файл для импорта" msgstr "Нажмите здесь, чтобы выбрать файл для импорта"
@@ -953,6 +961,10 @@ msgstr "Пользовательский OAuth"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "Пользовательские разделы" msgstr "Пользовательские разделы"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "Чешский" msgstr "Чешский"
@@ -2247,6 +2259,10 @@ msgstr "Паски пока не зарегистрированы."
msgid "No results found." msgid "No results found."
msgstr "Результатов не найдено." msgstr "Результатов не найдено."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "Нет проверенного поставщика" msgstr "Нет проверенного поставщика"
@@ -2714,6 +2730,10 @@ msgstr "Сброс"
msgid "Reset Password" msgid "Reset Password"
msgstr "Сбросить пароль" msgstr "Сбросить пароль"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "Сбросить пароль" msgstr "Сбросить пароль"
@@ -2790,6 +2810,14 @@ msgstr "Румынский"
msgid "Rotation" msgid "Rotation"
msgstr "Поворот" msgstr "Поворот"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Проведите свой первый анализ, чтобы получить оценочный лист, сильные стороны и приоритетные предложения." msgstr "Проведите свой первый анализ, чтобы получить оценочный лист, сильные стороны и приоритетные предложения."
@@ -3708,6 +3736,10 @@ msgstr "Обновление пароля..."
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "Обновление вашего резюме..." msgstr "Обновление вашего резюме..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "Загрузите картинку" msgstr "Загрузите картинку"
@@ -3959,4 +3991,3 @@ msgstr "Уменьшить"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Зулу" msgstr "Зулу"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "Aplikácia"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "Štatistiky aplikácie" msgstr "Štatistiky aplikácie"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arabčina" msgstr "Arabčina"
@@ -671,6 +675,10 @@ msgstr "Kruh"
msgid "Clear" msgid "Clear"
msgstr "Jasné" msgstr "Jasné"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "Kliknutím sem vyber súbor na import" msgstr "Kliknutím sem vyber súbor na import"
@@ -953,6 +961,10 @@ msgstr "Vlastný OAuth"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "Vlastné sekcie" msgstr "Vlastné sekcie"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "Čeština" msgstr "Čeština"
@@ -2247,6 +2259,10 @@ msgstr "Zatiaľ neboli zaregistrované žiadne pasové kľúče."
msgid "No results found." msgid "No results found."
msgstr "Nenašli sa žiadne výsledky." msgstr "Nenašli sa žiadne výsledky."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "Žiadny testovaný poskytovateľ" msgstr "Žiadny testovaný poskytovateľ"
@@ -2714,6 +2730,10 @@ msgstr "Resetovať"
msgid "Reset Password" msgid "Reset Password"
msgstr "Obnoviť heslo" msgstr "Obnoviť heslo"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "Obnov svoje heslo" msgstr "Obnov svoje heslo"
@@ -2790,6 +2810,14 @@ msgstr "Rumunčina"
msgid "Rotation" msgid "Rotation"
msgstr "Otočenie" msgstr "Otočenie"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Spustite prvú analýzu, aby ste získali hodnotiacu tabuľku, silné stránky a prioritné návrhy." msgstr "Spustite prvú analýzu, aby ste získali hodnotiacu tabuľku, silné stránky a prioritné návrhy."
@@ -3708,6 +3736,10 @@ msgstr "Aktualizujem tvoje heslo..."
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "Aktualizujem tvoj životopis..." msgstr "Aktualizujem tvoj životopis..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "Nahrať obrázok" msgstr "Nahrať obrázok"
@@ -3959,4 +3991,3 @@ msgstr "Oddialiť"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "Aplikacija"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "Statistika aplikacije" msgstr "Statistika aplikacije"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arabščina" msgstr "Arabščina"
@@ -671,6 +675,10 @@ msgstr "Krog"
msgid "Clear" msgid "Clear"
msgstr "Jasno" msgstr "Jasno"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "Kliknite tukaj za izbiro datoteke za uvoz" msgstr "Kliknite tukaj za izbiro datoteke za uvoz"
@@ -953,6 +961,10 @@ msgstr "OAuth po meri"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "Poljubni razdelki" msgstr "Poljubni razdelki"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "Češčina" msgstr "Češčina"
@@ -2247,6 +2259,10 @@ msgstr "Registriranih še ni nobenih ključev pasov."
msgid "No results found." msgid "No results found."
msgstr "Ni rezultatov." msgstr "Ni rezultatov."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "Ni preizkušenega ponudnika" msgstr "Ni preizkušenega ponudnika"
@@ -2714,6 +2730,10 @@ msgstr "Ponastavi"
msgid "Reset Password" msgid "Reset Password"
msgstr "Ponastavi geslo" msgstr "Ponastavi geslo"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "Ponastavite svoje geslo" msgstr "Ponastavite svoje geslo"
@@ -2790,6 +2810,14 @@ msgstr "romunščina"
msgid "Rotation" msgid "Rotation"
msgstr "Rotacija" msgstr "Rotacija"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Izvedite prvo analizo in pridobite preglednico, prednosti in prednostne predloge." msgstr "Izvedite prvo analizo in pridobite preglednico, prednosti in prednostne predloge."
@@ -3708,6 +3736,10 @@ msgstr "Posodabljanje vašega gesla..."
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "Posodabljanje vašega življenjepisa..." msgstr "Posodabljanje vašega življenjepisa..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "Naloži sliko" msgstr "Naloži sliko"
@@ -3959,4 +3991,3 @@ msgstr "Oddalji"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zuluščina" msgstr "Zuluščina"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "Aplikacioni"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "Statistikat e aplikacionit" msgstr "Statistikat e aplikacionit"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arabisht" msgstr "Arabisht"
@@ -671,6 +675,10 @@ msgstr "Rreth"
msgid "Clear" msgid "Clear"
msgstr "E qartë" msgstr "E qartë"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "Klikoni këtu për të zgjedhur një skedar për importim" msgstr "Klikoni këtu për të zgjedhur një skedar për importim"
@@ -953,6 +961,10 @@ msgstr "OAuth i personalizuar"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "Rubrika të personalizuara" msgstr "Rubrika të personalizuara"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "Çekisht" msgstr "Çekisht"
@@ -2247,6 +2259,10 @@ msgstr "Ende nuk janë regjistruar asnjë fjalëkalim."
msgid "No results found." msgid "No results found."
msgstr "Nuk u gjetën rezultate." msgstr "Nuk u gjetën rezultate."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "Asnjë ofrues i testuar" msgstr "Asnjë ofrues i testuar"
@@ -2714,6 +2730,10 @@ msgstr "Rivendos"
msgid "Reset Password" msgid "Reset Password"
msgstr "Rivendos fjalëkalimin" msgstr "Rivendos fjalëkalimin"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "Rivendosni fjalëkalimin tuaj" msgstr "Rivendosni fjalëkalimin tuaj"
@@ -2790,6 +2810,14 @@ msgstr "Rumanisht"
msgid "Rotation" msgid "Rotation"
msgstr "Rrotullimi" msgstr "Rrotullimi"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Ekzekutoni analizën tuaj të parë për të marrë një kartë rezultatesh, pikat e forta dhe sugjerime të prioritizuara." msgstr "Ekzekutoni analizën tuaj të parë për të marrë një kartë rezultatesh, pikat e forta dhe sugjerime të prioritizuara."
@@ -3708,6 +3736,10 @@ msgstr "Po përditësohet fjalëkalimi juaj..."
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "Po përditësohet CV-ja juaj..." msgstr "Po përditësohet CV-ja juaj..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "Ngarko foton" msgstr "Ngarko foton"
@@ -3959,4 +3991,3 @@ msgstr "Zvogëlo"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "Апликација"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "Статистика апликације" msgstr "Статистика апликације"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Арапски" msgstr "Арапски"
@@ -671,6 +675,10 @@ msgstr "Круг"
msgid "Clear" msgid "Clear"
msgstr "Јасно" msgstr "Јасно"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "Кликните овде да изаберете датотеку за увоз" msgstr "Кликните овде да изаберете датотеку за увоз"
@@ -953,6 +961,10 @@ msgstr "Прилагођени OAuth"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "Прилагођени одељци" msgstr "Прилагођени одељци"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "Чешки" msgstr "Чешки"
@@ -2247,6 +2259,10 @@ msgstr "Још нису регистровани никакви кључеви
msgid "No results found." msgid "No results found."
msgstr "Нема резултата." msgstr "Нема резултата."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "Нема тестираног добављача" msgstr "Нема тестираног добављача"
@@ -2714,6 +2730,10 @@ msgstr "Ресетуј"
msgid "Reset Password" msgid "Reset Password"
msgstr "Ресетуј лозинку" msgstr "Ресетуј лозинку"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "Ресетујте своју лозинку" msgstr "Ресетујте своју лозинку"
@@ -2790,6 +2810,14 @@ msgstr "Румунски"
msgid "Rotation" msgid "Rotation"
msgstr "Ротација" msgstr "Ротација"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Покрените прву анализу да бисте добили контролну таблу, снаге и приоритезоване предлоге." msgstr "Покрените прву анализу да бисте добили контролну таблу, снаге и приоритезоване предлоге."
@@ -3708,6 +3736,10 @@ msgstr "Ажурирање ваше лозинке..."
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "Ажурирање вашег резимеа..." msgstr "Ажурирање вашег резимеа..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "Отпреми фотографију" msgstr "Отпреми фотографију"
@@ -3959,4 +3991,3 @@ msgstr "Умањи"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Зулу" msgstr "Зулу"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "App"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "Applikationsstatistik" msgstr "Applikationsstatistik"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arabiska" msgstr "Arabiska"
@@ -671,6 +675,10 @@ msgstr "Cirkel"
msgid "Clear" msgid "Clear"
msgstr "Klart" msgstr "Klart"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "Klicka här för att välja en fil att importera" msgstr "Klicka här för att välja en fil att importera"
@@ -953,6 +961,10 @@ msgstr "Anpassad OAuth"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "Anpassade avsnitt" msgstr "Anpassade avsnitt"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "Tjeckiska" msgstr "Tjeckiska"
@@ -2247,6 +2259,10 @@ msgstr "Inga nycklar registrerade ännu."
msgid "No results found." msgid "No results found."
msgstr "Inga resultat hittades." msgstr "Inga resultat hittades."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "Ingen testad leverantör" msgstr "Ingen testad leverantör"
@@ -2714,6 +2730,10 @@ msgstr "Återställ"
msgid "Reset Password" msgid "Reset Password"
msgstr "Återställ lösenord" msgstr "Återställ lösenord"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "Återställ ditt lösenord" msgstr "Återställ ditt lösenord"
@@ -2790,6 +2810,14 @@ msgstr "Rumänska"
msgid "Rotation" msgid "Rotation"
msgstr "Rotation" msgstr "Rotation"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Kör din första analys för att få ett scorecard, styrkor och prioriterade förslag." msgstr "Kör din första analys för att få ett scorecard, styrkor och prioriterade förslag."
@@ -3708,6 +3736,10 @@ msgstr "Uppdaterar ditt lösenord..."
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "Uppdaterar ditt CV..." msgstr "Uppdaterar ditt CV..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "Ladda upp bild" msgstr "Ladda upp bild"
@@ -3959,4 +3991,3 @@ msgstr "Zooma ut"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "செயலி"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "செயலி புள்ளிவிபரங்கள்" msgstr "செயலி புள்ளிவிபரங்கள்"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "அரபிக்" msgstr "அரபிக்"
@@ -671,6 +675,10 @@ msgstr "வட்டம்"
msgid "Clear" msgid "Clear"
msgstr "தெளிவான" msgstr "தெளிவான"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "இறக்குமதி செய்ய ஒரு கோப்பை தேர்ந்தெடுக்க இங்கே கிளிக் செய்யவும்" msgstr "இறக்குமதி செய்ய ஒரு கோப்பை தேர்ந்தெடுக்க இங்கே கிளிக் செய்யவும்"
@@ -953,6 +961,10 @@ msgstr "தனிப்பயன் OAuth"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "தனிப்பயன் பகுதிகள்" msgstr "தனிப்பயன் பகுதிகள்"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "செக்" msgstr "செக்"
@@ -2247,6 +2259,10 @@ msgstr "இன்னும் கடவுச்சொற்கள் எது
msgid "No results found." msgid "No results found."
msgstr "எந்த முடிவுகளும் கிடைக்கவில்லை." msgstr "எந்த முடிவுகளும் கிடைக்கவில்லை."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "சோதிக்கப்பட்ட வழங்குநர் இல்லை" msgstr "சோதிக்கப்பட்ட வழங்குநர் இல்லை"
@@ -2714,6 +2730,10 @@ msgstr "மீட்டமை"
msgid "Reset Password" msgid "Reset Password"
msgstr "கடவுச்சொல்லை மீட்டமைக்கவும்" msgstr "கடவுச்சொல்லை மீட்டமைக்கவும்"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "உங்கள் கடவுச்சொல்லை மீட்டமைக்கவும்" msgstr "உங்கள் கடவுச்சொல்லை மீட்டமைக்கவும்"
@@ -2790,6 +2810,14 @@ msgstr "ரோமேனியன்"
msgid "Rotation" msgid "Rotation"
msgstr "சுழற்சி" msgstr "சுழற்சி"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "மதிப்பெண் அட்டை, பலங்கள் மற்றும் முன்னுரிமைப்படுத்தப்பட்ட பரிந்துரைகளைப் பெற உங்கள் முதல் பகுப்பாய்வை இயக்கவும்." msgstr "மதிப்பெண் அட்டை, பலங்கள் மற்றும் முன்னுரிமைப்படுத்தப்பட்ட பரிந்துரைகளைப் பெற உங்கள் முதல் பகுப்பாய்வை இயக்கவும்."
@@ -3708,6 +3736,10 @@ msgstr "உங்கள் கடவுச்சொல்லை புதுப
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "உங்கள் ரெஸ்யூமியை புதுப்பித்து கொண்டிருக்கிறது..." msgstr "உங்கள் ரெஸ்யூமியை புதுப்பித்து கொண்டிருக்கிறது..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "படத்தைப் பதிவேற்றவும்" msgstr "படத்தைப் பதிவேற்றவும்"
@@ -3959,4 +3991,3 @@ msgstr "சிறிதாக்கு"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "ஜூலு" msgstr "ஜூலு"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "యాప్"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "యాప్ గణాంకాలు" msgstr "యాప్ గణాంకాలు"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "అరబిక్" msgstr "అరబిక్"
@@ -671,6 +675,10 @@ msgstr "వృత్తం"
msgid "Clear" msgid "Clear"
msgstr "తొలగించు" msgstr "తొలగించు"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "ఇంపోర్ట్ చేయడానికి ఫైల్ ను ఎంచుకోవడానికి ఇక్కడ క్లిక్ చేయండి" msgstr "ఇంపోర్ట్ చేయడానికి ఫైల్ ను ఎంచుకోవడానికి ఇక్కడ క్లిక్ చేయండి"
@@ -953,6 +961,10 @@ msgstr "కస్టమ్ OAuth"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "కస్టమ్ విభాగాలు" msgstr "కస్టమ్ విభాగాలు"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "చెక్" msgstr "చెక్"
@@ -2247,6 +2259,10 @@ msgstr "ఇంకా పాస్‌కీలు నమోదు కాలేద
msgid "No results found." msgid "No results found."
msgstr "ఏ ఫలితాలు లభించలేదు." msgstr "ఏ ఫలితాలు లభించలేదు."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "పరీక్షించిన ప్రొవైడర్ లేదు" msgstr "పరీక్షించిన ప్రొవైడర్ లేదు"
@@ -2714,6 +2730,10 @@ msgstr "రీసెట్ చేయండి"
msgid "Reset Password" msgid "Reset Password"
msgstr "పాస్‌వర్డ్ రీసెట్ చేయండి" msgstr "పాస్‌వర్డ్ రీసెట్ చేయండి"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "మీ పాస్‌వర్డ్‌ను రీసెట్ చేయండి" msgstr "మీ పాస్‌వర్డ్‌ను రీసెట్ చేయండి"
@@ -2790,6 +2810,14 @@ msgstr "రోమేనియన్"
msgid "Rotation" msgid "Rotation"
msgstr "రోటేషన్" msgstr "రోటేషన్"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "స్కోర్‌కార్డ్, బలాలు మరియు ప్రాధాన్యతా సూచనలను పొందడానికి మీ మొదటి విశ్లేషణను అమలు చేయండి." msgstr "స్కోర్‌కార్డ్, బలాలు మరియు ప్రాధాన్యతా సూచనలను పొందడానికి మీ మొదటి విశ్లేషణను అమలు చేయండి."
@@ -3708,6 +3736,10 @@ msgstr "మీ పాస్‌వర్డ్‌ను నవీకరిస్
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "మీ రిజ్యూమ్‌ను నవీకరిస్తోంది..." msgstr "మీ రిజ్యూమ్‌ను నవీకరిస్తోంది..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "చిత్రాన్ని అప్‌లోడ్ చేయండి" msgstr "చిత్రాన్ని అప్‌లోడ్ చేయండి"
@@ -3959,4 +3991,3 @@ msgstr "జూమ్ అవుట్ చేయండి"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "జులు" msgstr "జులు"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "แอป"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "สถิติของแอปพลิเคชัน" msgstr "สถิติของแอปพลิเคชัน"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "อารบิก" msgstr "อารบิก"
@@ -671,6 +675,10 @@ msgstr "วงกลม"
msgid "Clear" msgid "Clear"
msgstr "ชัดเจน" msgstr "ชัดเจน"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "คลิกที่นี่เพื่อเลือกไฟล์ที่จะนำเข้า" msgstr "คลิกที่นี่เพื่อเลือกไฟล์ที่จะนำเข้า"
@@ -953,6 +961,10 @@ msgstr "OAuth แบบกำหนดเอง"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "ส่วนที่กำหนดเอง" msgstr "ส่วนที่กำหนดเอง"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "เช็ก" msgstr "เช็ก"
@@ -2247,6 +2259,10 @@ msgstr "ยังไม่มีพาสคีย์ที่ลงทะเบ
msgid "No results found." msgid "No results found."
msgstr "ไม่พบผลลัพธ์" msgstr "ไม่พบผลลัพธ์"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "ไม่มีผู้ให้บริการที่ผ่านการทดสอบ" msgstr "ไม่มีผู้ให้บริการที่ผ่านการทดสอบ"
@@ -2714,6 +2730,10 @@ msgstr "รีเซ็ต"
msgid "Reset Password" msgid "Reset Password"
msgstr "รีเซ็ตรหัสผ่าน" msgstr "รีเซ็ตรหัสผ่าน"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "รีเซ็ตรหัสผ่านของคุณ" msgstr "รีเซ็ตรหัสผ่านของคุณ"
@@ -2790,6 +2810,14 @@ msgstr "โรมาเนีย"
msgid "Rotation" msgid "Rotation"
msgstr "การหมุน" msgstr "การหมุน"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "ดำเนินการวิเคราะห์ครั้งแรกของคุณเพื่อรับสกอร์การ์ด จุดแข็ง และข้อเสนอแนะที่จัดลำดับความสำคัญ" msgstr "ดำเนินการวิเคราะห์ครั้งแรกของคุณเพื่อรับสกอร์การ์ด จุดแข็ง และข้อเสนอแนะที่จัดลำดับความสำคัญ"
@@ -3708,6 +3736,10 @@ msgstr "กำลังอัปเดตรหัสผ่านของคุ
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "กำลังอัปเดตประวัติย่อของคุณ..." msgstr "กำลังอัปเดตประวัติย่อของคุณ..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "อัปโหลดรูปภาพ" msgstr "อัปโหลดรูปภาพ"
@@ -3959,4 +3991,3 @@ msgstr "ซูมออก"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "ซูลู" msgstr "ซูลู"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "Uygulama"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "Uygulama İstatistikleri" msgstr "Uygulama İstatistikleri"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arapça" msgstr "Arapça"
@@ -671,6 +675,10 @@ msgstr "Daire"
msgid "Clear" msgid "Clear"
msgstr "Temiz" msgstr "Temiz"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "İçe aktarmak için bir dosya seçmek üzere buraya tıklayın" msgstr "İçe aktarmak için bir dosya seçmek üzere buraya tıklayın"
@@ -953,6 +961,10 @@ msgstr "Özel OAuth"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "Özel Bölümler" msgstr "Özel Bölümler"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "Çekçe" msgstr "Çekçe"
@@ -2247,6 +2259,10 @@ msgstr "Henüz kayıtlı geçiş anahtarı yok."
msgid "No results found." msgid "No results found."
msgstr "Hiçbir sonuç bulunamadı." msgstr "Hiçbir sonuç bulunamadı."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "Test edilmiş sağlayıcı yok." msgstr "Test edilmiş sağlayıcı yok."
@@ -2714,6 +2730,10 @@ msgstr "Sıfırla"
msgid "Reset Password" msgid "Reset Password"
msgstr "Şifreyi Sıfırla" msgstr "Şifreyi Sıfırla"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "Şifrenizi sıfırlayın" msgstr "Şifrenizi sıfırlayın"
@@ -2790,6 +2810,14 @@ msgstr "Rumence"
msgid "Rotation" msgid "Rotation"
msgstr "Döndürme" msgstr "Döndürme"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Bir puan kartı, güçlü yönler ve önceliklendirilmiş öneriler elde etmek için ilk analizinizi çalıştırın." msgstr "Bir puan kartı, güçlü yönler ve önceliklendirilmiş öneriler elde etmek için ilk analizinizi çalıştırın."
@@ -3708,6 +3736,10 @@ msgstr "Şifreniz güncelleniyor..."
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "Özgeçmişiniz güncelleniyor..." msgstr "Özgeçmişiniz güncelleniyor..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "Resim yükle" msgstr "Resim yükle"
@@ -3959,4 +3991,3 @@ msgstr "Uzaklaştır"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "Додаток"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "Статистика заявок" msgstr "Статистика заявок"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Арабська" msgstr "Арабська"
@@ -671,6 +675,10 @@ msgstr "Кругле"
msgid "Clear" msgid "Clear"
msgstr "Чисто" msgstr "Чисто"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "Натисніть тут, щоб вибрати файл для імпорту" msgstr "Натисніть тут, щоб вибрати файл для імпорту"
@@ -953,6 +961,10 @@ msgstr "Користувацький OAuth"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "Користувацькі розділи" msgstr "Користувацькі розділи"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "Чеська" msgstr "Чеська"
@@ -2247,6 +2259,10 @@ msgstr "Поки що не зареєстровано жодного парол
msgid "No results found." msgid "No results found."
msgstr "Результатів не знайдено." msgstr "Результатів не знайдено."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "Немає перевіреного постачальника" msgstr "Немає перевіреного постачальника"
@@ -2714,6 +2730,10 @@ msgstr "Скинути"
msgid "Reset Password" msgid "Reset Password"
msgstr "Скинути пароль" msgstr "Скинути пароль"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "Скинути пароль" msgstr "Скинути пароль"
@@ -2790,6 +2810,14 @@ msgstr "Румунська"
msgid "Rotation" msgid "Rotation"
msgstr "Обертання" msgstr "Обертання"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Проведіть перший аналіз, щоб отримати оціночну таблицю, сильні сторони та пріоритетні пропозиції." msgstr "Проведіть перший аналіз, щоб отримати оціночну таблицю, сильні сторони та пріоритетні пропозиції."
@@ -3708,6 +3736,10 @@ msgstr "Оновлення пароля..."
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "Оновлення резюме..." msgstr "Оновлення резюме..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "Завантажити зображення" msgstr "Завантажити зображення"
@@ -3959,4 +3991,3 @@ msgstr "Зменшити"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Зулу" msgstr "Зулу"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "Ilova"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "Ilova statistikasi" msgstr "Ilova statistikasi"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arab tili" msgstr "Arab tili"
@@ -671,6 +675,10 @@ msgstr "Doira"
msgid "Clear" msgid "Clear"
msgstr "Tiniq" msgstr "Tiniq"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "Import qilish uchun faylni tanlash uchun shu yerni bosing" msgstr "Import qilish uchun faylni tanlash uchun shu yerni bosing"
@@ -953,6 +961,10 @@ msgstr "Moslashtirilgan OAuth"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "Maxsus boʻlimlar" msgstr "Maxsus boʻlimlar"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "Chex tili" msgstr "Chex tili"
@@ -2247,6 +2259,10 @@ msgstr "Hali hech qanday kirish kalitlari ro'yxatdan o'tmagan."
msgid "No results found." msgid "No results found."
msgstr "Hech qanday natija topilmadi." msgstr "Hech qanday natija topilmadi."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "Sinovdan o'tgan provayder yo'q" msgstr "Sinovdan o'tgan provayder yo'q"
@@ -2714,6 +2730,10 @@ msgstr "Tiklash"
msgid "Reset Password" msgid "Reset Password"
msgstr "Parolni tiklash" msgstr "Parolni tiklash"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "Parolingizni tiklang" msgstr "Parolingizni tiklang"
@@ -2790,6 +2810,14 @@ msgstr "Rumin tili"
msgid "Rotation" msgid "Rotation"
msgstr "Aylantirish" msgstr "Aylantirish"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Birinchi tahlilingizni ishga tushiring va ballar jadvali, kuchli tomonlar hamda ustuvor tavsiyalarni oling." msgstr "Birinchi tahlilingizni ishga tushiring va ballar jadvali, kuchli tomonlar hamda ustuvor tavsiyalarni oling."
@@ -3708,6 +3736,10 @@ msgstr "Parolingiz yangilanmoqda..."
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "Rezyume yangilanmoqda..." msgstr "Rezyume yangilanmoqda..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "Rasmni yuklang" msgstr "Rasmni yuklang"
@@ -3959,4 +3991,3 @@ msgstr "Kichraytirish"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "Ứng dụng"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "Thống kê ứng dụng" msgstr "Thống kê ứng dụng"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Tiếng Ả Rập" msgstr "Tiếng Ả Rập"
@@ -671,6 +675,10 @@ msgstr "Vòng tròn"
msgid "Clear" msgid "Clear"
msgstr "Xóa" msgstr "Xóa"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "Nhấn vào đây để chọn file cần nhập khẩu" msgstr "Nhấn vào đây để chọn file cần nhập khẩu"
@@ -953,6 +961,10 @@ msgstr "OAuth tùy chỉnh"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "Các mục tùy chỉnh" msgstr "Các mục tùy chỉnh"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "Tiếng Séc" msgstr "Tiếng Séc"
@@ -2247,6 +2259,10 @@ msgstr "Chưa có khóa truy cập nào được đăng ký."
msgid "No results found." msgid "No results found."
msgstr "Không tìm thấy kết quả." msgstr "Không tìm thấy kết quả."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "Không có nhà cung cấp nào được kiểm thử" msgstr "Không có nhà cung cấp nào được kiểm thử"
@@ -2714,6 +2730,10 @@ msgstr "Thiết lập lại"
msgid "Reset Password" msgid "Reset Password"
msgstr "Đặt mật khẩu mới" msgstr "Đặt mật khẩu mới"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "Đặt lại mật khẩu" msgstr "Đặt lại mật khẩu"
@@ -2790,6 +2810,14 @@ msgstr "Rumani"
msgid "Rotation" msgid "Rotation"
msgstr "Xoay" msgstr "Xoay"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Hãy thực hiện phân tích đầu tiên để nhận được bảng điểm, điểm mạnh và các đề xuất được sắp xếp theo mức độ ưu tiên." msgstr "Hãy thực hiện phân tích đầu tiên để nhận được bảng điểm, điểm mạnh và các đề xuất được sắp xếp theo mức độ ưu tiên."
@@ -3708,6 +3736,10 @@ msgstr "Đang cập nhật mật khẩu của bạn..."
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "Đang cập nhật resume của bạn..." msgstr "Đang cập nhật resume của bạn..."
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "Tải ảnh lên" msgstr "Tải ảnh lên"
@@ -3959,4 +3991,3 @@ msgstr "Thu nhỏ"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "应用"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "应用统计数据" msgstr "应用统计数据"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "阿拉伯语" msgstr "阿拉伯语"
@@ -671,6 +675,10 @@ msgstr "圆形"
msgid "Clear" msgid "Clear"
msgstr "清晰" msgstr "清晰"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "点击此处选择要导入的文件" msgstr "点击此处选择要导入的文件"
@@ -953,6 +961,10 @@ msgstr "自定义 OAuth"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "自定义章节" msgstr "自定义章节"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "捷克语" msgstr "捷克语"
@@ -2247,6 +2259,10 @@ msgstr "尚未登记通行钥匙。"
msgid "No results found." msgid "No results found."
msgstr "没找到结果。" msgstr "没找到结果。"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "没有经过测试的提供商" msgstr "没有经过测试的提供商"
@@ -2714,6 +2730,10 @@ msgstr "重置"
msgid "Reset Password" msgid "Reset Password"
msgstr "重置密码" msgstr "重置密码"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "重置密码" msgstr "重置密码"
@@ -2790,6 +2810,14 @@ msgstr "罗马尼亚语"
msgid "Rotation" msgid "Rotation"
msgstr "旋转" msgstr "旋转"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "进行首次分析,以获得记分卡、优势和优先建议。" msgstr "进行首次分析,以获得记分卡、优势和优先建议。"
@@ -3708,6 +3736,10 @@ msgstr "正在更新你的密码…"
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "正在更新你的简历…" msgstr "正在更新你的简历…"
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "上传图片" msgstr "上传图片"
@@ -3959,4 +3991,3 @@ msgstr "缩小"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "祖鲁语" msgstr "祖鲁语"
+32 -1
View File
@@ -373,6 +373,10 @@ msgstr "應用程式"
msgid "Application Statistics" msgid "Application Statistics"
msgstr "應用程式統計資料" msgstr "應用程式統計資料"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "阿拉伯文" msgstr "阿拉伯文"
@@ -671,6 +675,10 @@ msgstr "圓形"
msgid "Clear" msgid "Clear"
msgstr "清除" msgstr "清除"
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "按這裡選擇要匯入的檔案" msgstr "按這裡選擇要匯入的檔案"
@@ -953,6 +961,10 @@ msgstr "自訂 OAuth"
msgid "Custom Sections" msgid "Custom Sections"
msgstr "自訂段落" msgstr "自訂段落"
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "捷克語" msgstr "捷克語"
@@ -2247,6 +2259,10 @@ msgstr "尚未註冊通行鑰匙。"
msgid "No results found." msgid "No results found."
msgstr "找不到相符的結果。" msgstr "找不到相符的結果。"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "沒有經過測試的提供者" msgstr "沒有經過測試的提供者"
@@ -2714,6 +2730,10 @@ msgstr "重置"
msgid "Reset Password" msgid "Reset Password"
msgstr "重設密碼" msgstr "重設密碼"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "重設您的密碼" msgstr "重設您的密碼"
@@ -2790,6 +2810,14 @@ msgstr "羅馬尼亞語"
msgid "Rotation" msgid "Rotation"
msgstr "旋轉" msgstr "旋轉"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "執行您的第一次分析,以獲得計分卡、優勢和優先建議。" msgstr "執行您的第一次分析,以獲得計分卡、優勢和優先建議。"
@@ -3708,6 +3736,10 @@ msgstr "正在更新您的密碼…"
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "正在更新您的履歷…" msgstr "正在更新您的履歷…"
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "上傳圖片" msgstr "上傳圖片"
@@ -3959,4 +3991,3 @@ msgstr "縮小"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "祖魯語" msgstr "祖魯語"
+32
View File
@@ -368,6 +368,10 @@ msgstr ""
msgid "Application Statistics" msgid "Application Statistics"
msgstr "" msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "" msgstr ""
@@ -666,6 +670,10 @@ msgstr ""
msgid "Clear" msgid "Clear"
msgstr "" msgstr ""
#: src/components/ui/combobox.tsx
msgid "Clear selection"
msgstr ""
#: src/dialogs/resume/import.tsx #: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import" msgid "Click here to select a file to import"
msgstr "" msgstr ""
@@ -948,6 +956,10 @@ msgstr ""
msgid "Custom Sections" msgid "Custom Sections"
msgstr "" msgstr ""
#: src/libs/resume/section.tsx
msgid "Custom Styles"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Czech" msgid "Czech"
msgstr "" msgstr ""
@@ -2242,6 +2254,10 @@ msgstr ""
msgid "No results found." msgid "No results found."
msgstr "" msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx #: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider" msgid "No tested provider"
msgstr "" msgstr ""
@@ -2709,6 +2725,10 @@ msgstr ""
msgid "Reset Password" msgid "Reset Password"
msgstr "" msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr ""
#: src/features/auth/pages/reset-password.tsx #: src/features/auth/pages/reset-password.tsx
msgid "Reset your password" msgid "Reset your password"
msgstr "" msgstr ""
@@ -2785,6 +2805,14 @@ msgstr ""
msgid "Rotation" msgid "Rotation"
msgstr "" msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "" msgstr ""
@@ -3703,6 +3731,10 @@ msgstr ""
msgid "Updating your resume..." msgid "Updating your resume..."
msgstr "" msgstr ""
#: src/routes/agent/$threadId.tsx
msgid "Upload attachments"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx #: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Upload picture" msgid "Upload picture"
msgstr "" msgstr ""
+10 -2
View File
@@ -35,7 +35,11 @@ type ChipItemProps = {
onRemove: (index: number) => void; onRemove: (index: number) => void;
}; };
function ChipDragPreview({ chip }: { chip: string }) { type ChipDragPreviewProps = {
chip: string;
};
function ChipDragPreview({ chip }: ChipDragPreviewProps) {
return ( return (
<Badge <Badge
variant="outline" variant="outline"
@@ -46,7 +50,11 @@ function ChipDragPreview({ chip }: { chip: string }) {
); );
} }
function ChipDragOverlay({ activeChip }: { activeChip: string | null }) { type ChipDragOverlayProps = {
activeChip: string | null;
};
function ChipDragOverlay({ activeChip }: ChipDragOverlayProps) {
const overlay = ( const overlay = (
<DragOverlay dropAnimation={null}>{activeChip ? <ChipDragPreview chip={activeChip} /> : null}</DragOverlay> <DragOverlay dropAnimation={null}>{activeChip ? <ChipDragPreview chip={activeChip} /> : null}</DragOverlay>
); );
@@ -7,6 +7,10 @@ import { I18nProvider } from "@lingui/react";
const queryResult = vi.hoisted(() => ({ data: undefined as number | undefined })); const queryResult = vi.hoisted(() => ({ data: undefined as number | undefined }));
type CountUpProps = {
to: number;
};
vi.mock("@tanstack/react-query", () => ({ vi.mock("@tanstack/react-query", () => ({
useQuery: () => queryResult, useQuery: () => queryResult,
})); }));
@@ -14,7 +18,7 @@ vi.mock("@/libs/orpc/client", () => ({
orpc: { statistics: { github: { getStarCount: { queryOptions: () => ({}) } } } }, orpc: { statistics: { github: { getStarCount: { queryOptions: () => ({}) } } } },
})); }));
vi.mock("../animation/count-up", () => ({ vi.mock("../animation/count-up", () => ({
CountUp: ({ to }: { to: number }) => <span data-testid="count-up">{to.toLocaleString()}</span>, CountUp: ({ to }: CountUpProps) => <span data-testid="count-up">{to.toLocaleString()}</span>,
})); }));
const { GithubStarsButton } = await import("./github-stars-button"); const { GithubStarsButton } = await import("./github-stars-button");
@@ -5,23 +5,20 @@ import { beforeAll, describe, expect, it, vi } from "vitest";
import { i18n } from "@lingui/core"; import { i18n } from "@lingui/core";
import { I18nProvider } from "@lingui/react"; import { I18nProvider } from "@lingui/react";
type GridProps = {
rowCount: number;
columnCount: number;
cellComponent: React.ComponentType<
{ rowIndex: number; columnIndex: number; style: React.CSSProperties } & Record<string, unknown>
>;
cellProps: Record<string, unknown>;
};
// react-window's <Grid> uses ResizeObserver / IntersectionObserver heavily and // react-window's <Grid> uses ResizeObserver / IntersectionObserver heavily and
// expects measurable layouts that happy-dom can't provide. Stub it with a simple // expects measurable layouts that happy-dom can't provide. Stub it with a simple
// pass-through that renders the first row of cells via the supplied cellComponent. // pass-through that renders the first row of cells via the supplied cellComponent.
vi.mock("react-window", () => ({ vi.mock("react-window", () => ({
Grid: ({ Grid: ({ rowCount, columnCount, cellComponent: CellComponent, cellProps }: GridProps) => {
rowCount,
columnCount,
cellComponent: CellComponent,
cellProps,
}: {
rowCount: number;
columnCount: number;
cellComponent: React.ComponentType<
{ rowIndex: number; columnIndex: number; style: React.CSSProperties } & Record<string, unknown>
>;
cellProps: Record<string, unknown>;
}) => {
const cells: React.ReactNode[] = []; const cells: React.ReactNode[] = [];
for (let r = 0; r < Math.min(rowCount, 1); r++) { for (let r = 0; r < Math.min(rowCount, 1); r++) {
for (let c = 0; c < columnCount; c++) { for (let c = 0; c < columnCount; c++) {
+6 -1
View File
@@ -372,7 +372,12 @@ function useEditorToolbarState(editor: Editor) {
type EditorToolbarState = ReturnType<typeof useEditorToolbarState>; type EditorToolbarState = ReturnType<typeof useEditorToolbarState>;
function EditorToolbar({ editor, isFullscreen }: { editor: Editor; isFullscreen: boolean }) { type EditorToolbarProps = {
editor: Editor;
isFullscreen: boolean;
};
function EditorToolbar({ editor, isFullscreen }: EditorToolbarProps) {
const state = useEditorToolbarState(editor); const state = useEditorToolbarState(editor);
return renderEditorToolbar(state, isFullscreen); return renderEditorToolbar(state, isFullscreen);
@@ -8,8 +8,12 @@ const comboboxMock = vi.hoisted(() => ({
props: undefined as { onValueChange?: (value: string[] | null) => void } | undefined, props: undefined as { onValueChange?: (value: string[] | null) => void } | undefined,
})); }));
type ComboboxProps = {
onValueChange?: (value: string[] | null) => void;
};
vi.mock("@/components/ui/combobox", () => ({ vi.mock("@/components/ui/combobox", () => ({
Combobox: (props: { onValueChange?: (value: string[] | null) => void }) => { Combobox: (props: ComboboxProps) => {
comboboxMock.props = props; comboboxMock.props = props;
return null; return null;
}, },
@@ -2,6 +2,7 @@
import type { ComboboxOption } from "./combobox"; import type { ComboboxOption } from "./combobox";
import { render, screen } from "@testing-library/react"; import { render, screen } from "@testing-library/react";
import userEvent from "@testing-library/user-event";
import { beforeAll, describe, expect, it } from "vitest"; import { beforeAll, describe, expect, it } from "vitest";
import { i18n } from "@lingui/core"; import { i18n } from "@lingui/core";
import { I18nProvider } from "@lingui/react"; import { I18nProvider } from "@lingui/react";
@@ -46,6 +47,26 @@ describe("Combobox", () => {
expect(screen.getAllByText(/Gamma/).length).toBeGreaterThan(0); expect(screen.getAllByText(/Gamma/).length).toBeGreaterThan(0);
}); });
it("renders grouped options with group labels", async () => {
const user = userEvent.setup();
const groupedOptions: ComboboxOption[] = [
{ value: "alpha", label: "Alpha", group: "Primary" },
{ value: "beta", label: "Beta", group: { value: "secondary", label: "Secondary" } },
{ value: "gamma", label: "Gamma", group: { value: "secondary", label: "Secondary" } },
];
wrap(<Combobox options={groupedOptions} placeholder="Pick something" />);
await user.click(screen.getByRole("combobox"));
expect(screen.getByText("Primary")).toBeInTheDocument();
expect(screen.getByText("Secondary")).toBeInTheDocument();
expect(screen.getByText("Alpha")).toBeInTheDocument();
expect(screen.getByText("Beta")).toBeInTheDocument();
expect(screen.getByText("Gamma")).toBeInTheDocument();
expect(document.querySelectorAll("[data-slot=combobox-group]")).toHaveLength(2);
});
it("renders nothing extra when given an empty options array (no crash)", () => { it("renders nothing extra when given an empty options array (no crash)", () => {
expect(() => wrap(<Combobox options={[]} placeholder="Empty" />)).not.toThrow(); expect(() => wrap(<Combobox options={[]} placeholder="Empty" />)).not.toThrow();
expect(screen.getByText("Empty")).toBeInTheDocument(); expect(screen.getByText("Empty")).toBeInTheDocument();
+57 -2
View File
@@ -5,10 +5,13 @@ import React from "react";
import { Button } from "@reactive-resume/ui/components/button"; import { Button } from "@reactive-resume/ui/components/button";
import { import {
ComboboxClear, ComboboxClear,
ComboboxCollection,
ComboboxContent, ComboboxContent,
ComboboxEmpty, ComboboxEmpty,
ComboboxGroup,
ComboboxInput, ComboboxInput,
ComboboxItem, ComboboxItem,
ComboboxLabel,
ComboboxList, ComboboxList,
ComboboxRoot, ComboboxRoot,
ComboboxTrigger, ComboboxTrigger,
@@ -22,10 +25,21 @@ import { useControlledState } from "@/hooks/use-controlled-state";
type ComboboxOption<TValue extends string | number = string> = { type ComboboxOption<TValue extends string | number = string> = {
value: TValue; value: TValue;
label: React.ReactNode; label: React.ReactNode;
group?: string | ComboboxOptionGroup;
keywords?: string[]; keywords?: string[];
disabled?: boolean; disabled?: boolean;
}; };
type ComboboxOptionGroup = {
value: string;
label: React.ReactNode;
};
type GroupedComboboxOption<TValue extends string | number = string> = ComboboxOptionGroup & {
key: string;
items: ComboboxOption<TValue>[];
};
type SingleComboboxProps<TValue extends string | number = string> = { type SingleComboboxProps<TValue extends string | number = string> = {
options: ComboboxOption<TValue>[]; options: ComboboxOption<TValue>[];
value?: TValue | null; value?: TValue | null;
@@ -81,6 +95,40 @@ function Combobox<TValue extends string | number = string>(props: ComboboxProps<
const optionMap = React.useMemo(() => new Map(options.map((opt) => [String(opt.value), opt])), [options]); const optionMap = React.useMemo(() => new Map(options.map((opt) => [String(opt.value), opt])), [options]);
const optionGroups = React.useMemo(() => {
const groups: GroupedComboboxOption<TValue>[] = [];
const groupMap = new Map<string, GroupedComboboxOption<TValue>>();
let ungroupedGroup: GroupedComboboxOption<TValue> | null = null;
let hasGroupedOptions = false;
for (const option of options) {
if (option.group === undefined) {
if (!ungroupedGroup) {
ungroupedGroup = { key: "ungrouped", value: "", label: null, items: [] };
groups.push(ungroupedGroup);
}
ungroupedGroup.items.push(option);
continue;
}
hasGroupedOptions = true;
const group = typeof option.group === "string" ? { value: option.group, label: option.group } : option.group;
let optionGroup = groupMap.get(group.value);
if (!optionGroup) {
optionGroup = { ...group, key: `group:${group.value}`, items: [] };
groupMap.set(group.value, optionGroup);
groups.push(optionGroup);
}
optionGroup.items.push(option);
}
return hasGroupedOptions ? groups : null;
}, [options]);
const findOption = React.useCallback( const findOption = React.useCallback(
(v: TValue | TValue[] | null | undefined) => { (v: TValue | TValue[] | null | undefined) => {
if (multiple) { if (multiple) {
@@ -157,6 +205,13 @@ function Combobox<TValue extends string | number = string>(props: ComboboxProps<
</ComboboxItem> </ComboboxItem>
); );
const groupedListContent = (group: GroupedComboboxOption<TValue>) => (
<ComboboxGroup key={group.key} items={group.items}>
{group.label !== null && group.label !== undefined ? <ComboboxLabel>{group.label}</ComboboxLabel> : null}
<ComboboxCollection>{listContent}</ComboboxCollection>
</ComboboxGroup>
);
const triggerNode = ( const triggerNode = (
<ComboboxTrigger <ComboboxTrigger
id={id} id={id}
@@ -179,7 +234,7 @@ function Combobox<TValue extends string | number = string>(props: ComboboxProps<
return ( return (
<ComboboxRoot <ComboboxRoot
name={name} name={name}
items={options} items={optionGroups ?? options}
filter={filter} filter={filter}
disabled={disabled} disabled={disabled}
value={selectedValue as ComboboxOption<TValue>[] & ComboboxOption<TValue>} value={selectedValue as ComboboxOption<TValue>[] & ComboboxOption<TValue>}
@@ -210,7 +265,7 @@ function Combobox<TValue extends string | number = string>(props: ComboboxProps<
render={<Input disabled={disabled} className="border-none focus-visible:border-none focus-visible:ring-0" />} render={<Input disabled={disabled} className="border-none focus-visible:border-none focus-visible:ring-0" />}
/> />
<ComboboxEmpty>{emptyMessage ?? t`No results found.`}</ComboboxEmpty> <ComboboxEmpty>{emptyMessage ?? t`No results found.`}</ComboboxEmpty>
<ComboboxList>{listContent}</ComboboxList> <ComboboxList>{optionGroups ? groupedListContent : listContent}</ComboboxList>
</ComboboxContent> </ComboboxContent>
</ComboboxRoot> </ComboboxRoot>
); );
@@ -36,6 +36,14 @@ const verifyFormSchema = z.object({
type TwoFactorSetupStep = "backup" | "enable" | "verify"; type TwoFactorSetupStep = "backup" | "enable" | "verify";
type TwoFactorStepProps = {
step: TwoFactorSetupStep;
};
type TwoFactorQRCodeProps = {
totpUri: string;
};
export function EnableTwoFactorDialog(_: DialogProps<"auth.two-factor.enable">) { export function EnableTwoFactorDialog(_: DialogProps<"auth.two-factor.enable">) {
const router = useRouter(); const router = useRouter();
@@ -345,7 +353,7 @@ function extractSecretFromTotpUri(totpUri: string): string | null {
} }
} }
function TwoFactorDialogTitle({ step }: { step: TwoFactorSetupStep }) { function TwoFactorDialogTitle({ step }: TwoFactorStepProps) {
return match(step) return match(step)
.with("enable", () => <Trans>Enable Two-Factor Authentication</Trans>) .with("enable", () => <Trans>Enable Two-Factor Authentication</Trans>)
.with("verify", () => <Trans>Setup Authenticator App</Trans>) .with("verify", () => <Trans>Setup Authenticator App</Trans>)
@@ -353,7 +361,7 @@ function TwoFactorDialogTitle({ step }: { step: TwoFactorSetupStep }) {
.exhaustive(); .exhaustive();
} }
function TwoFactorDialogDescription({ step }: { step: TwoFactorSetupStep }) { function TwoFactorDialogDescription({ step }: TwoFactorStepProps) {
return match(step) return match(step)
.with("enable", () => ( .with("enable", () => (
<Trans> <Trans>
@@ -371,7 +379,7 @@ function TwoFactorDialogDescription({ step }: { step: TwoFactorSetupStep }) {
.exhaustive(); .exhaustive();
} }
function TwoFactorQRCode({ totpUri }: { totpUri: string }) { function TwoFactorQRCode({ totpUri }: TwoFactorQRCodeProps) {
return ( return (
<QRCodeSVG <QRCodeSVG
value={totpUri} value={totpUri}
@@ -42,6 +42,7 @@ vi.mock("pdfjs-dist", () => {
vi.mock("pdfjs-dist/legacy/build/pdf.mjs", () => pdfjsMock.legacyModule); vi.mock("pdfjs-dist/legacy/build/pdf.mjs", () => pdfjsMock.legacyModule);
const pdfCanvasModule = import("./pdf-canvas"); const pdfCanvasModule = import("./pdf-canvas");
const pdfCanvasModuleTimeoutMs = 15_000;
describe("PDF.js browser entrypoints", () => { describe("PDF.js browser entrypoints", () => {
beforeEach(() => { beforeEach(() => {
@@ -60,18 +61,22 @@ describe("PDF.js browser entrypoints", () => {
vi.restoreAllMocks(); vi.restoreAllMocks();
}); });
it("loads the canvas preview renderer from the legacy PDF.js runtime", async () => { it(
await expect(pdfCanvasModule).resolves.toEqual( "loads the canvas preview renderer from the legacy PDF.js runtime",
expect.objectContaining({ async () => {
PdfCanvasDocument: expect.any(Function), await expect(pdfCanvasModule).resolves.toEqual(
PdfCanvasPage: expect.any(Function), expect.objectContaining({
}), PdfCanvasDocument: expect.any(Function),
); PdfCanvasPage: expect.any(Function),
}),
);
expect(pdfjsMock.legacyModule.GlobalWorkerOptions.workerSrc).toContain( expect(pdfjsMock.legacyModule.GlobalWorkerOptions.workerSrc).toContain(
"pdfjs-dist/legacy/build/pdf.worker.min.mjs", "pdfjs-dist/legacy/build/pdf.worker.min.mjs",
); );
}); },
pdfCanvasModuleTimeoutMs,
);
it("creates thumbnails with the legacy PDF.js runtime", async () => { it("creates thumbnails with the legacy PDF.js runtime", async () => {
vi.spyOn(HTMLCanvasElement.prototype, "getContext").mockReturnValue({} as CanvasRenderingContext2D); vi.spyOn(HTMLCanvasElement.prototype, "getContext").mockReturnValue({} as CanvasRenderingContext2D);
@@ -11,6 +11,18 @@ const previewMock = vi.hoisted(() => ({
toBlob: vi.fn(async () => new Blob(["%PDF"], { type: "application/pdf" })), toBlob: vi.fn(async () => new Blob(["%PDF"], { type: "application/pdf" })),
})); }));
type PdfCanvasDocumentProps = {
children: (document: { numPages: number }) => React.ReactNode;
onLoadSuccess: (document: { numPages: number }) => void;
};
type PdfCanvasPageProps = {
onLoadSuccess: (pageNumber: number, pageSize: { height: number; width: number }) => void;
onRenderSuccess?: () => void;
pageNumber: number;
totalPages: number;
};
const resumeDataWithPageCount = (pageCount: number): ResumeData => ({ const resumeDataWithPageCount = (pageCount: number): ResumeData => ({
...sampleResumeData, ...sampleResumeData,
metadata: { metadata: {
@@ -35,30 +47,14 @@ vi.mock("./pdf-canvas", async () => {
const pdfDocument = { numPages: 1 }; const pdfDocument = { numPages: 1 };
return { return {
PdfCanvasDocument: ({ PdfCanvasDocument: ({ children, onLoadSuccess }: PdfCanvasDocumentProps) => {
children,
onLoadSuccess,
}: {
children: (document: typeof pdfDocument) => React.ReactNode;
onLoadSuccess: (document: typeof pdfDocument) => void;
}) => {
React.useEffect(() => { React.useEffect(() => {
onLoadSuccess(pdfDocument); onLoadSuccess(pdfDocument);
}, [onLoadSuccess]); }, [onLoadSuccess]);
return React.createElement(React.Fragment, null, children(pdfDocument)); return React.createElement(React.Fragment, null, children(pdfDocument));
}, },
PdfCanvasPage: ({ PdfCanvasPage: ({ onLoadSuccess, onRenderSuccess, pageNumber, totalPages }: PdfCanvasPageProps) => {
onLoadSuccess,
onRenderSuccess,
pageNumber,
totalPages,
}: {
onLoadSuccess: (pageNumber: number, pageSize: { height: number; width: number }) => void;
onRenderSuccess?: () => void;
pageNumber: number;
totalPages: number;
}) => {
React.useEffect(() => { React.useEffect(() => {
onLoadSuccess(pageNumber, { height: 200, width: 100 }); onLoadSuccess(pageNumber, { height: 200, width: 100 });
onRenderSuccess?.(); onRenderSuccess?.();
@@ -8,11 +8,16 @@ import { i18n } from "@lingui/core";
import { I18nProvider } from "@lingui/react"; import { I18nProvider } from "@lingui/react";
import { sampleResumeData } from "@reactive-resume/schema/resume/sample"; import { sampleResumeData } from "@reactive-resume/schema/resume/sample";
type PdfViewerProps = {
className?: string;
data: ResumeData;
};
const publicResumeMock = vi.hoisted(() => ({ const publicResumeMock = vi.hoisted(() => ({
createResumePdfBlob: vi.fn(async () => new Blob(["%PDF"], { type: "application/pdf" })), createResumePdfBlob: vi.fn(async () => new Blob(["%PDF"], { type: "application/pdf" })),
downloadWithAnchor: vi.fn(), downloadWithAnchor: vi.fn(),
generateFilename: vi.fn((name: string, extension: string) => `${name}.${extension}`), generateFilename: vi.fn((name: string, extension: string) => `${name}.${extension}`),
PdfViewer: vi.fn<(_props: { className?: string; data: ResumeData }) => ReactNode>(() => null), PdfViewer: vi.fn<(_props: PdfViewerProps) => ReactNode>(() => null),
resume: undefined as resume: undefined as
| undefined | undefined
| { | {
@@ -23,6 +23,10 @@ import { orpc } from "@/libs/orpc/client";
type SavedProvider = RouterOutput["aiProviders"]["list"][number]; type SavedProvider = RouterOutput["aiProviders"]["list"][number];
type AIProviderOption = ComboboxOption<AIProvider> & { defaultBaseURL: string }; type AIProviderOption = ComboboxOption<AIProvider> & { defaultBaseURL: string };
type ProviderRowProps = {
provider: SavedProvider;
};
const providerOptions: AIProviderOption[] = [ const providerOptions: AIProviderOption[] = [
{ {
value: "openai", value: "openai",
@@ -110,7 +114,7 @@ function isAiProviderConfigError(error: unknown) {
return status === "PRECONDITION_FAILED" || status === 412; return status === "PRECONDITION_FAILED" || status === 412;
} }
function ProviderRow({ provider }: { provider: SavedProvider }) { function ProviderRow({ provider }: ProviderRowProps) {
const queryClient = useQueryClient(); const queryClient = useQueryClient();
const invalidate = () => queryClient.invalidateQueries({ queryKey: orpc.aiProviders.list.queryKey() }); const invalidate = () => queryClient.invalidateQueries({ queryKey: orpc.aiProviders.list.queryKey() });
const { mutate: testProvider, isPending: isTesting } = useMutation(orpc.aiProviders.test.mutationOptions()); const { mutate: testProvider, isPending: isTesting } = useMutation(orpc.aiProviders.test.mutationOptions());
+5 -3
View File
@@ -4,9 +4,11 @@ import { act, renderHook } from "@testing-library/react";
import { describe, expect, it } from "vitest"; import { describe, expect, it } from "vitest";
import { ConfirmDialogProvider, useConfirm } from "./use-confirm"; import { ConfirmDialogProvider, useConfirm } from "./use-confirm";
const wrapper = ({ children }: { children: React.ReactNode }) => ( type HookWrapperProps = {
<ConfirmDialogProvider>{children}</ConfirmDialogProvider> children: React.ReactNode;
); };
const wrapper = ({ children }: HookWrapperProps) => <ConfirmDialogProvider>{children}</ConfirmDialogProvider>;
describe("useConfirm", () => { describe("useConfirm", () => {
it("throws when used outside ConfirmDialogProvider", () => { it("throws when used outside ConfirmDialogProvider", () => {
+5 -1
View File
@@ -27,9 +27,13 @@ type ConfirmContextType = {
confirm: (title: string, options?: ConfirmOptions) => Promise<boolean>; confirm: (title: string, options?: ConfirmOptions) => Promise<boolean>;
}; };
type ConfirmDialogProviderProps = {
children: React.ReactNode;
};
const ConfirmContext = React.createContext<ConfirmContextType | null>(null); const ConfirmContext = React.createContext<ConfirmContextType | null>(null);
export function ConfirmDialogProvider({ children }: { children: React.ReactNode }) { export function ConfirmDialogProvider({ children }: ConfirmDialogProviderProps) {
const [state, setState] = React.useState<ConfirmState>({ const [state, setState] = React.useState<ConfirmState>({
open: false, open: false,
resolve: null, resolve: null,
+5 -3
View File
@@ -5,13 +5,15 @@ import { beforeAll, describe, expect, it } from "vitest";
import { i18n } from "@lingui/core"; import { i18n } from "@lingui/core";
import { PromptDialogProvider, usePrompt } from "./use-prompt"; import { PromptDialogProvider, usePrompt } from "./use-prompt";
type HookWrapperProps = {
children: React.ReactNode;
};
beforeAll(() => { beforeAll(() => {
i18n.loadAndActivate({ locale: "en", messages: {} }); i18n.loadAndActivate({ locale: "en", messages: {} });
}); });
const wrapper = ({ children }: { children: React.ReactNode }) => ( const wrapper = ({ children }: HookWrapperProps) => <PromptDialogProvider>{children}</PromptDialogProvider>;
<PromptDialogProvider>{children}</PromptDialogProvider>
);
const clickButton = (re: RegExp) => { const clickButton = (re: RegExp) => {
const buttons = Array.from(document.body.querySelectorAll<HTMLButtonElement>("button")); const buttons = Array.from(document.body.querySelectorAll<HTMLButtonElement>("button"));
+5 -1
View File
@@ -32,9 +32,13 @@ type PromptContextType = {
prompt: (title: string, options?: PromptOptions) => Promise<string | null>; prompt: (title: string, options?: PromptOptions) => Promise<string | null>;
}; };
type PromptDialogProviderProps = {
children: React.ReactNode;
};
const PromptContext = React.createContext<PromptContextType | null>(null); const PromptContext = React.createContext<PromptContextType | null>(null);
export function PromptDialogProvider({ children }: { children: React.ReactNode }) { export function PromptDialogProvider({ children }: PromptDialogProviderProps) {
const inputRef = React.useRef<HTMLInputElement>(null); const inputRef = React.useRef<HTMLInputElement>(null);
const [state, setState] = React.useState<PromptState>({ const [state, setState] = React.useState<PromptState>({
@@ -5,8 +5,16 @@ import { describe, expect, it, vi } from "vitest";
import { i18n } from "@lingui/core"; import { i18n } from "@lingui/core";
import { I18nProvider } from "@lingui/react"; import { I18nProvider } from "@lingui/react";
type LinkProps = React.PropsWithChildren<{
to: string;
}>;
type LocaleComboboxProps = {
render: React.ReactElement;
};
vi.mock("@tanstack/react-router", () => ({ vi.mock("@tanstack/react-router", () => ({
Link: ({ children, to, ...rest }: React.PropsWithChildren<{ to: string }>) => ( Link: ({ children, to, ...rest }: LinkProps) => (
<a href={typeof to === "string" ? to : "#"} {...rest}> <a href={typeof to === "string" ? to : "#"} {...rest}>
{children} {children}
</a> </a>
@@ -16,7 +24,7 @@ vi.mock("@/components/input/github-stars-button", () => ({
GithubStarsButton: () => <div data-testid="github-stars-button" />, GithubStarsButton: () => <div data-testid="github-stars-button" />,
})); }));
vi.mock("@/features/locale/combobox", () => ({ vi.mock("@/features/locale/combobox", () => ({
LocaleCombobox: ({ render: renderProp }: { render: React.ReactElement }) => renderProp, LocaleCombobox: ({ render: renderProp }: LocaleComboboxProps) => renderProp,
})); }));
vi.mock("@/features/theme/toggle-button", () => ({ vi.mock("@/features/theme/toggle-button", () => ({
ThemeToggleButton: () => <button type="button" data-testid="theme-toggle" />, ThemeToggleButton: () => <button type="button" data-testid="theme-toggle" />,
+107 -102
View File
@@ -64,21 +64,106 @@ type AgentAction = AgentThreadDetail["actions"][number];
type AgentAttachment = AgentThreadDetail["attachments"][number]; type AgentAttachment = AgentThreadDetail["attachments"][number];
type PatchOperation = AgentAction["operations"][number]; type PatchOperation = AgentAction["operations"][number];
function toRecord(value: unknown) { type PatchToolCardProps = {
return typeof value === "object" && value !== null ? (value as Record<string, unknown>) : null;
}
function PatchToolCard({
part,
action,
onRevert,
isReverting,
}: {
part: UIMessage["parts"][number]; part: UIMessage["parts"][number];
action: AgentAction | undefined; action: AgentAction | undefined;
onRevert: (actionId: string) => void; onRevert: (actionId: string) => void;
isReverting: boolean; isReverting: boolean;
}) { };
type StarterPromptMarqueeProps = {
onSelect: (prompt: string) => void;
};
type AssistantMarkdownProps = {
text: string;
};
type MessagePartProps = {
part: UIMessage["parts"][number];
isUser: boolean;
onAnswer: (toolCallId: string, answer: string) => void;
onRevert: (actionId: string) => void;
isReverting: boolean;
actionsById: Map<string, AgentAction>;
};
type ChatMessageProps = {
message: UIMessage;
onAnswer: (toolCallId: string, answer: string) => void;
onRevert: (actionId: string) => void;
isReverting: boolean;
actionsById: Map<string, AgentAction>;
};
type AgentChatProps = {
threadId: string;
initialMessages: UIMessage[];
isReadOnly: boolean;
readOnlyReason: "archived" | "missing" | null;
threadStatus: string;
activeRunId: string | null;
actions: AgentAction[];
onToggleThreads?: () => void;
onToggleResume?: () => void;
};
type AgentChatReadOnlyBannerProps = {
isReadOnly: boolean;
readOnlyReason: "archived" | "missing" | null;
};
type AgentChatMessagesProps = {
actionsById: Map<string, AgentAction>;
error: Error | undefined;
isReadOnly: boolean;
isReverting: boolean;
isStreaming: boolean;
messages: UIMessage[];
onAnswer: (toolCallId: string, answer: string) => void;
onRevert: (actionId: string) => void;
onRetry: () => void;
onStarterSelect: (prompt: string) => void;
};
type AgentChatHeaderProps = {
isArchived: boolean;
isArchivePending: boolean;
isDeletePending: boolean;
onArchive: () => void;
onCopyConversation: () => void;
onCopyConversationJson: () => void;
onDelete: () => void;
onToggleResume?: () => void;
onToggleThreads?: () => void;
};
type AgentChatComposerProps = {
fileInputRef: React.RefObject<HTMLInputElement | null>;
input: string;
isReadOnly: boolean;
isStreaming: boolean;
isUploading: boolean;
pendingAttachments: Array<Pick<AgentAttachment, "filename" | "id" | "mediaType">>;
onInputChange: (value: string) => void;
onSend: () => void;
onStopRun: () => void;
onUploadFiles: (files: FileList | null) => void;
};
type ToolbarButtonProps = React.ComponentProps<typeof Button> & {
label: string;
};
type ResumePaneProps = {
resume: AgentThreadDetail["resume"];
};
function toRecord(value: unknown) {
return typeof value === "object" && value !== null ? (value as Record<string, unknown>) : null;
}
function PatchToolCard({ part, action, onRevert, isReverting }: PatchToolCardProps) {
const partRecord = part as Record<string, unknown>; const partRecord = part as Record<string, unknown>;
const state = typeof partRecord.state === "string" ? partRecord.state : null; const state = typeof partRecord.state === "string" ? partRecord.state : null;
const input = toRecord(partRecord.input); const input = toRecord(partRecord.input);
@@ -235,7 +320,7 @@ function chunkPrompts(prompts: string[], columns: number) {
); );
} }
function StarterPromptMarquee({ onSelect }: { onSelect: (prompt: string) => void }) { function StarterPromptMarquee({ onSelect }: StarterPromptMarqueeProps) {
const prompts = [ const prompts = [
t`Tailor this resume to a product manager job description and emphasize roadmap ownership, stakeholder communication, and measurable launch outcomes.`, t`Tailor this resume to a product manager job description and emphasize roadmap ownership, stakeholder communication, and measurable launch outcomes.`,
t`Compare this resume against this role URL and update keywords while keeping the voice concise and credible.`, t`Compare this resume against this role URL and update keywords while keeping the voice concise and credible.`,
@@ -297,7 +382,7 @@ function getMessagePartKey(messageId: string, part: UIMessage["parts"][number])
return `${messageId}-${part.type}-${JSON.stringify(part)}`; return `${messageId}-${part.type}-${JSON.stringify(part)}`;
} }
function AssistantMarkdown({ text }: { text: string }) { function AssistantMarkdown({ text }: AssistantMarkdownProps) {
return ( return (
<ReactMarkdown <ReactMarkdown
skipHtml skipHtml
@@ -331,21 +416,7 @@ function AssistantMarkdown({ text }: { text: string }) {
); );
} }
function MessagePart({ function MessagePart({ part, isUser, onAnswer, onRevert, isReverting, actionsById }: MessagePartProps) {
part,
isUser,
onAnswer,
onRevert,
isReverting,
actionsById,
}: {
part: UIMessage["parts"][number];
isUser: boolean;
onAnswer: (toolCallId: string, answer: string) => void;
onRevert: (actionId: string) => void;
isReverting: boolean;
actionsById: Map<string, AgentAction>;
}) {
if (part.type === "text") { if (part.type === "text") {
return isUser ? ( return isUser ? (
<div className="whitespace-pre-wrap leading-relaxed">{part.text}</div> <div className="whitespace-pre-wrap leading-relaxed">{part.text}</div>
@@ -427,19 +498,7 @@ function MessagePart({
return null; return null;
} }
function ChatMessage({ function ChatMessage({ message, onAnswer, onRevert, isReverting, actionsById }: ChatMessageProps) {
message,
onAnswer,
onRevert,
isReverting,
actionsById,
}: {
message: UIMessage;
onAnswer: (toolCallId: string, answer: string) => void;
onRevert: (actionId: string) => void;
isReverting: boolean;
actionsById: Map<string, AgentAction>;
}) {
const isUser = message.role === "user"; const isUser = message.role === "user";
return ( return (
@@ -478,17 +537,7 @@ function AgentChat({
actions, actions,
onToggleThreads, onToggleThreads,
onToggleResume, onToggleResume,
}: { }: AgentChatProps) {
threadId: string;
initialMessages: UIMessage[];
isReadOnly: boolean;
readOnlyReason: "archived" | "missing" | null;
threadStatus: string;
activeRunId: string | null;
actions: AgentAction[];
onToggleThreads?: () => void;
onToggleResume?: () => void;
}) {
const queryClient = useQueryClient(); const queryClient = useQueryClient();
const navigate = useNavigate(); const navigate = useNavigate();
const confirm = useConfirm(); const confirm = useConfirm();
@@ -767,13 +816,7 @@ function AgentChat({
); );
} }
function AgentChatReadOnlyBanner({ function AgentChatReadOnlyBanner({ isReadOnly, readOnlyReason }: AgentChatReadOnlyBannerProps) {
isReadOnly,
readOnlyReason,
}: {
isReadOnly: boolean;
readOnlyReason: "archived" | "missing" | null;
}) {
if (!isReadOnly) return null; if (!isReadOnly) return null;
return ( return (
@@ -798,18 +841,7 @@ function AgentChatMessages({
onRevert, onRevert,
onRetry, onRetry,
onStarterSelect, onStarterSelect,
}: { }: AgentChatMessagesProps) {
actionsById: Map<string, AgentAction>;
error: Error | undefined;
isReadOnly: boolean;
isReverting: boolean;
isStreaming: boolean;
messages: UIMessage[];
onAnswer: (toolCallId: string, answer: string) => void;
onRevert: (actionId: string) => void;
onRetry: () => void;
onStarterSelect: (prompt: string) => void;
}) {
return ( return (
<ScrollArea className="min-h-0 flex-1"> <ScrollArea className="min-h-0 flex-1">
<div className="mx-auto flex max-w-3xl flex-col gap-4 p-4"> <div className="mx-auto flex max-w-3xl flex-col gap-4 p-4">
@@ -868,17 +900,7 @@ function AgentChatHeader({
onDelete, onDelete,
onToggleResume, onToggleResume,
onToggleThreads, onToggleThreads,
}: { }: AgentChatHeaderProps) {
isArchived: boolean;
isArchivePending: boolean;
isDeletePending: boolean;
onArchive: () => void;
onCopyConversation: () => void;
onCopyConversationJson: () => void;
onDelete: () => void;
onToggleResume?: () => void;
onToggleThreads?: () => void;
}) {
return ( return (
<div className="flex h-14 shrink-0 items-center justify-between border-b px-4"> <div className="flex h-14 shrink-0 items-center justify-between border-b px-4">
<div className="flex min-w-0 items-center gap-2"> <div className="flex min-w-0 items-center gap-2">
@@ -957,18 +979,7 @@ function AgentChatComposer({
onSend, onSend,
onStopRun, onStopRun,
onUploadFiles, onUploadFiles,
}: { }: AgentChatComposerProps) {
fileInputRef: React.RefObject<HTMLInputElement | null>;
input: string;
isReadOnly: boolean;
isStreaming: boolean;
isUploading: boolean;
pendingAttachments: Array<Pick<AgentAttachment, "filename" | "id" | "mediaType">>;
onInputChange: (value: string) => void;
onSend: () => void;
onStopRun: () => void;
onUploadFiles: (files: FileList | null) => void;
}) {
return ( return (
<form <form
className="border-t p-3" className="border-t p-3"
@@ -1066,13 +1077,7 @@ function getInitialPreviewZoom() {
return Number.isFinite(stored) ? clampPreviewZoom(stored) : DEFAULT_PREVIEW_ZOOM; return Number.isFinite(stored) ? clampPreviewZoom(stored) : DEFAULT_PREVIEW_ZOOM;
} }
function ToolbarButton({ function ToolbarButton({ label, children, ...props }: ToolbarButtonProps) {
label,
children,
...props
}: React.ComponentProps<typeof Button> & {
label: string;
}) {
return ( return (
<Tooltip> <Tooltip>
<TooltipTrigger <TooltipTrigger
@@ -1089,7 +1094,7 @@ function ToolbarButton({
); );
} }
function ResumePane({ resume }: { resume: AgentThreadDetail["resume"] }) { function ResumePane({ resume }: ResumePaneProps) {
const [zoom, setZoom] = useState(getInitialPreviewZoom); const [zoom, setZoom] = useState(getInitialPreviewZoom);
const [isPrinting, setIsPrinting] = useState(false); const [isPrinting, setIsPrinting] = useState(false);
@@ -15,6 +15,10 @@ import { Combobox } from "@/components/ui/combobox";
import { getOrpcErrorMessage } from "@/libs/error-message"; import { getOrpcErrorMessage } from "@/libs/error-message";
import { orpc } from "@/libs/orpc/client"; import { orpc } from "@/libs/orpc/client";
type NewThreadSetupProps = {
resumeId?: string;
};
function providerLabel(provider: { label: string; provider: AIProvider; model: string }) { function providerLabel(provider: { label: string; provider: AIProvider; model: string }) {
return `${provider.label} · ${provider.provider} · ${provider.model}`; return `${provider.label} · ${provider.provider} · ${provider.model}`;
} }
@@ -27,7 +31,7 @@ function isAgentConfigError(error: unknown) {
return typeof message === "string" && /REDIS_URL|ENCRYPTION_SECRET/.test(message); return typeof message === "string" && /REDIS_URL|ENCRYPTION_SECRET/.test(message);
} }
export function NewThreadSetup({ resumeId }: { resumeId?: string }) { export function NewThreadSetup({ resumeId }: NewThreadSetupProps) {
const isClient = useIsClient(); const isClient = useIsClient();
const navigate = useNavigate(); const navigate = useNavigate();
const { const {
@@ -29,6 +29,18 @@ import { orpc } from "@/libs/orpc/client";
type AgentThreadSummary = RouterOutput["agent"]["threads"]["list"][number]; type AgentThreadSummary = RouterOutput["agent"]["threads"]["list"][number];
type ThreadActionsProps = {
thread: AgentThreadSummary;
activeThreadId: string | null;
};
type ThreadRowProps = ThreadActionsProps;
type AgentThreadSidebarProps = {
activeThreadId?: string | null;
className?: string;
};
const RELATIVE_TIME_DIVISIONS: Array<{ amount: number; unit: Intl.RelativeTimeFormatUnit }> = [ const RELATIVE_TIME_DIVISIONS: Array<{ amount: number; unit: Intl.RelativeTimeFormatUnit }> = [
{ amount: 31_536_000_000, unit: "year" }, { amount: 31_536_000_000, unit: "year" },
{ amount: 2_592_000_000, unit: "month" }, { amount: 2_592_000_000, unit: "month" },
@@ -51,7 +63,7 @@ function formatRelativeTime(value: Date | string, formatter: Intl.RelativeTimeFo
return formatter.format(Math.round(diffMs / division.amount), division.unit); return formatter.format(Math.round(diffMs / division.amount), division.unit);
} }
function ThreadActions({ thread, activeThreadId }: { thread: AgentThreadSummary; activeThreadId: string | null }) { function ThreadActions({ thread, activeThreadId }: ThreadActionsProps) {
const navigate = useNavigate(); const navigate = useNavigate();
const confirm = useConfirm(); const confirm = useConfirm();
const queryClient = useQueryClient(); const queryClient = useQueryClient();
@@ -127,7 +139,7 @@ function ThreadActions({ thread, activeThreadId }: { thread: AgentThreadSummary;
); );
} }
function ThreadRow({ thread, activeThreadId }: { thread: AgentThreadSummary; activeThreadId: string | null }) { function ThreadRow({ thread, activeThreadId }: ThreadRowProps) {
const { i18n } = useLingui(); const { i18n } = useLingui();
const relativeTimeFormatter = useMemo( const relativeTimeFormatter = useMemo(
() => Reflect.construct(Intl.RelativeTimeFormat, [i18n.locale, { numeric: "auto" }]) as Intl.RelativeTimeFormat, () => Reflect.construct(Intl.RelativeTimeFormat, [i18n.locale, { numeric: "auto" }]) as Intl.RelativeTimeFormat,
@@ -160,13 +172,7 @@ function ThreadRow({ thread, activeThreadId }: { thread: AgentThreadSummary; act
); );
} }
export function AgentThreadSidebar({ export function AgentThreadSidebar({ activeThreadId = null, className }: AgentThreadSidebarProps) {
activeThreadId = null,
className,
}: {
activeThreadId?: string | null;
className?: string;
}) {
const { data: threads, isLoading } = useQuery(orpc.agent.threads.list.queryOptions()); const { data: threads, isLoading } = useQuery(orpc.agent.threads.list.queryOptions());
return ( return (
@@ -133,7 +133,11 @@ export function CustomSectionBuilder() {
); );
} }
function CustomSectionContainer({ section }: { section: CustomSection }) { type CustomSectionContainerProps = {
section: CustomSection;
};
function CustomSectionContainer({ section }: CustomSectionContainerProps) {
const { openDialog } = useDialogStore(); const { openDialog } = useDialogStore();
const updateResumeData = useUpdateResumeData(); const updateResumeData = useUpdateResumeData();
@@ -203,7 +207,11 @@ function CustomSectionContainer({ section }: { section: CustomSection }) {
); );
} }
function CustomSectionDropdownMenu({ section }: { section: CustomSection }) { type CustomSectionDropdownMenuProps = {
section: CustomSection;
};
function CustomSectionDropdownMenu({ section }: CustomSectionDropdownMenuProps) {
const confirm = useConfirm(); const confirm = useConfirm();
const { openDialog } = useDialogStore(); const { openDialog } = useDialogStore();
const updateResumeData = useUpdateResumeData(); const updateResumeData = useUpdateResumeData();
@@ -61,6 +61,19 @@ const experienceItems = vi.hoisted(() => [
}, },
]); ]);
type SectionBaseProps = {
children: React.ReactNode;
};
type SectionAddItemButtonProps = {
children: React.ReactNode;
};
type SectionItemProps = {
title: string;
subtitle: string;
};
vi.mock("@/features/resume/builder/draft", () => ({ vi.mock("@/features/resume/builder/draft", () => ({
useCurrentResume: () => ({ useCurrentResume: () => ({
data: { data: {
@@ -73,11 +86,11 @@ vi.mock("@/features/resume/builder/draft", () => ({
useUpdateResumeData: () => vi.fn(), useUpdateResumeData: () => vi.fn(),
})); }));
vi.mock("../shared/section-base", () => ({ vi.mock("../shared/section-base", () => ({
SectionBase: ({ children }: { children: React.ReactNode }) => <div>{children}</div>, SectionBase: ({ children }: SectionBaseProps) => <div>{children}</div>,
})); }));
vi.mock("../shared/section-item", () => ({ vi.mock("../shared/section-item", () => ({
SectionAddItemButton: ({ children }: { children: React.ReactNode }) => <button type="button">{children}</button>, SectionAddItemButton: ({ children }: SectionAddItemButtonProps) => <button type="button">{children}</button>,
SectionItem: ({ title, subtitle }: { title: string; subtitle: string }) => ( SectionItem: ({ title, subtitle }: SectionItemProps) => (
<div> <div>
<span data-testid="item-title">{title}</span> <span data-testid="item-title">{title}</span>
<span data-testid="item-subtitle">{subtitle}</span> <span data-testid="item-subtitle">{subtitle}</span>
@@ -72,6 +72,20 @@ const sections = vi.hoisted(() => ({
], ],
})); }));
type SectionBaseProps = {
children: React.ReactNode;
className?: string;
};
type SectionAddItemButtonProps = {
children: React.ReactNode;
};
type SectionItemProps = {
title: string;
subtitle: string;
};
vi.mock("@/features/resume/builder/draft", () => ({ vi.mock("@/features/resume/builder/draft", () => ({
useCurrentResume: () => ({ useCurrentResume: () => ({
data: { data: {
@@ -89,19 +103,19 @@ vi.mock("@/features/resume/builder/draft", () => ({
useUpdateResumeData: () => vi.fn(), useUpdateResumeData: () => vi.fn(),
})); }));
vi.mock("../shared/section-base", () => ({ vi.mock("../shared/section-base", () => ({
SectionBase: ({ children, className }: { children: React.ReactNode; className?: string }) => ( SectionBase: ({ children, className }: SectionBaseProps) => (
<div className={className} data-testid="section-base"> <div className={className} data-testid="section-base">
{children} {children}
</div> </div>
), ),
})); }));
vi.mock("../shared/section-item", () => ({ vi.mock("../shared/section-item", () => ({
SectionAddItemButton: ({ children }: { children: React.ReactNode }) => ( SectionAddItemButton: ({ children }: SectionAddItemButtonProps) => (
<button type="button" data-testid="add-button"> <button type="button" data-testid="add-button">
{children} {children}
</button> </button>
), ),
SectionItem: ({ title, subtitle }: { title: string; subtitle: string }) => ( SectionItem: ({ title, subtitle }: SectionItemProps) => (
<div> <div>
<span data-testid="item-title">{title}</span> <span data-testid="item-title">{title}</span>
<span data-testid="item-subtitle">{subtitle}</span> <span data-testid="item-subtitle">{subtitle}</span>
@@ -32,6 +32,18 @@ export function PictureSectionBuilder() {
); );
} }
type PicturePreviewControlsProps = {
fileInputRef: React.RefObject<HTMLInputElement | null>;
form: PictureSettingsForm;
normalizedPictureUrl: string;
picture: PictureValues;
pictureSrc: string;
onAutoSave: () => void;
onDeletePicture: () => void;
onSelectPicture: () => void;
onUploadPicture: (event: React.ChangeEvent<HTMLInputElement>) => void;
};
function PicturePreviewControls({ function PicturePreviewControls({
fileInputRef, fileInputRef,
form, form,
@@ -42,17 +54,7 @@ function PicturePreviewControls({
onDeletePicture, onDeletePicture,
onSelectPicture, onSelectPicture,
onUploadPicture, onUploadPicture,
}: { }: PicturePreviewControlsProps) {
fileInputRef: React.RefObject<HTMLInputElement | null>;
form: PictureSettingsForm;
normalizedPictureUrl: string;
picture: PictureValues;
pictureSrc: string;
onAutoSave: () => void;
onDeletePicture: () => void;
onSelectPicture: () => void;
onUploadPicture: (event: React.ChangeEvent<HTMLInputElement>) => void;
}) {
return ( return (
<div className="flex items-center gap-x-4"> <div className="flex items-center gap-x-4">
<input <input
@@ -122,7 +124,12 @@ function PicturePreviewControls({
); );
} }
function PictureGeometryFields({ form, onAutoSave }: { form: PictureSettingsForm; onAutoSave: () => void }) { type PictureGeometryFieldsProps = {
form: PictureSettingsForm;
onAutoSave: () => void;
};
function PictureGeometryFields({ form, onAutoSave }: PictureGeometryFieldsProps) {
return ( return (
<> <>
<form.Field name="size"> <form.Field name="size">
@@ -26,6 +26,20 @@ const sectionItems = vi.hoisted(() => [
}, },
]); ]);
type SectionBaseProps = {
children: React.ReactNode;
className?: string;
};
type SectionAddItemButtonProps = {
children: React.ReactNode;
};
type SectionItemProps = {
title: string;
subtitle: string;
};
vi.mock("@/features/resume/builder/draft", () => ({ vi.mock("@/features/resume/builder/draft", () => ({
useCurrentResume: () => ({ useCurrentResume: () => ({
data: { data: {
@@ -35,15 +49,15 @@ vi.mock("@/features/resume/builder/draft", () => ({
useUpdateResumeData: () => vi.fn(), useUpdateResumeData: () => vi.fn(),
})); }));
vi.mock("../shared/section-base", () => ({ vi.mock("../shared/section-base", () => ({
SectionBase: ({ children, className }: { children: React.ReactNode; className?: string }) => ( SectionBase: ({ children, className }: SectionBaseProps) => (
<div className={className} data-testid="section-base"> <div className={className} data-testid="section-base">
{children} {children}
</div> </div>
), ),
})); }));
vi.mock("../shared/section-item", () => ({ vi.mock("../shared/section-item", () => ({
SectionAddItemButton: ({ children }: { children: React.ReactNode }) => <button type="button">{children}</button>, SectionAddItemButton: ({ children }: SectionAddItemButtonProps) => <button type="button">{children}</button>,
SectionItem: ({ title, subtitle }: { title: string; subtitle: string }) => ( SectionItem: ({ title, subtitle }: SectionItemProps) => (
<div> <div>
<span data-testid="item-title">{title}</span> <span data-testid="item-title">{title}</span>
<span data-testid="item-subtitle">{subtitle}</span> <span data-testid="item-subtitle">{subtitle}</span>
@@ -35,6 +35,19 @@ const items = vi.hoisted(() => [
}, },
]); ]);
type SectionBaseProps = {
children: React.ReactNode;
};
type SectionAddItemButtonProps = {
children: React.ReactNode;
};
type SectionItemProps = {
title: string;
subtitle?: string;
};
vi.mock("@/features/resume/builder/draft", () => ({ vi.mock("@/features/resume/builder/draft", () => ({
useCurrentResume: () => ({ useCurrentResume: () => ({
data: { sections: { projects: { title: "Projects", columns: 1, hidden: false, items } } }, data: { sections: { projects: { title: "Projects", columns: 1, hidden: false, items } } },
@@ -42,11 +55,11 @@ vi.mock("@/features/resume/builder/draft", () => ({
useUpdateResumeData: () => vi.fn(), useUpdateResumeData: () => vi.fn(),
})); }));
vi.mock("../shared/section-base", () => ({ vi.mock("../shared/section-base", () => ({
SectionBase: ({ children }: { children: React.ReactNode }) => <div>{children}</div>, SectionBase: ({ children }: SectionBaseProps) => <div>{children}</div>,
})); }));
vi.mock("../shared/section-item", () => ({ vi.mock("../shared/section-item", () => ({
SectionAddItemButton: ({ children }: { children: React.ReactNode }) => <button type="button">{children}</button>, SectionAddItemButton: ({ children }: SectionAddItemButtonProps) => <button type="button">{children}</button>,
SectionItem: ({ title, subtitle }: { title: string; subtitle?: string }) => ( SectionItem: ({ title, subtitle }: SectionItemProps) => (
<div> <div>
<span data-testid="item-title">{title}</span> <span data-testid="item-title">{title}</span>
<span data-testid="item-subtitle">{subtitle ?? "<undefined>"}</span> <span data-testid="item-subtitle">{subtitle ?? "<undefined>"}</span>
@@ -10,6 +10,20 @@ const sectionItems = vi.hoisted(() => [
{ id: "s2", name: "Go", proficiency: "Intermediate", level: 3, keywords: [], description: "", hidden: false }, { id: "s2", name: "Go", proficiency: "Intermediate", level: 3, keywords: [], description: "", hidden: false },
]); ]);
type SectionBaseProps = {
children: React.ReactNode;
className?: string;
};
type SectionAddItemButtonProps = {
children: React.ReactNode;
};
type SectionItemProps = {
title: string;
subtitle: string;
};
vi.mock("@/features/resume/builder/draft", () => ({ vi.mock("@/features/resume/builder/draft", () => ({
useCurrentResume: () => ({ useCurrentResume: () => ({
data: { sections: { skills: { title: "Skills", columns: 1, hidden: false, items: sectionItems } } }, data: { sections: { skills: { title: "Skills", columns: 1, hidden: false, items: sectionItems } } },
@@ -17,15 +31,15 @@ vi.mock("@/features/resume/builder/draft", () => ({
useUpdateResumeData: () => vi.fn(), useUpdateResumeData: () => vi.fn(),
})); }));
vi.mock("../shared/section-base", () => ({ vi.mock("../shared/section-base", () => ({
SectionBase: ({ children, className }: { children: React.ReactNode; className?: string }) => ( SectionBase: ({ children, className }: SectionBaseProps) => (
<div className={className} data-testid="section-base"> <div className={className} data-testid="section-base">
{children} {children}
</div> </div>
), ),
})); }));
vi.mock("../shared/section-item", () => ({ vi.mock("../shared/section-item", () => ({
SectionAddItemButton: ({ children }: { children: React.ReactNode }) => <button type="button">{children}</button>, SectionAddItemButton: ({ children }: SectionAddItemButtonProps) => <button type="button">{children}</button>,
SectionItem: ({ title, subtitle }: { title: string; subtitle: string }) => ( SectionItem: ({ title, subtitle }: SectionItemProps) => (
<div> <div>
<span data-testid="item-title">{title}</span> <span data-testid="item-title">{title}</span>
<span data-testid="item-subtitle">{subtitle}</span> <span data-testid="item-subtitle">{subtitle}</span>
@@ -18,8 +18,12 @@ const styleRules = vi.hoisted<StyleRule[]>(() => [
}, },
]); ]);
type SectionBaseProps = {
children: React.ReactNode;
};
vi.mock("../shared/section-base", () => ({ vi.mock("../shared/section-base", () => ({
SectionBase: ({ children }: { children: React.ReactNode }) => <div>{children}</div>, SectionBase: ({ children }: SectionBaseProps) => <div>{children}</div>,
})); }));
vi.mock("@/features/resume/builder/draft", () => ({ vi.mock("@/features/resume/builder/draft", () => ({
@@ -77,6 +81,15 @@ describe("CustomStylesSectionBuilder", () => {
expect(screen.getByLabelText("Target Scope")).toBeInTheDocument(); expect(screen.getByLabelText("Target Scope")).toBeInTheDocument();
expect(screen.getByLabelText("Style Slot")).toBeInTheDocument(); expect(screen.getByLabelText("Style Slot")).toBeInTheDocument();
expect(screen.getByLabelText("Text Color")).toBeInTheDocument(); expect(screen.getByLabelText("Text Color")).toBeInTheDocument();
expect(screen.getByLabelText("Text Color").parentElement).toHaveClass("gap-3");
expect(screen.getByLabelText("Text Color").parentElement?.parentElement?.parentElement).toHaveClass(
"grid-cols-1",
"@min-[20rem]:grid-cols-2",
"@min-[35rem]:grid-cols-4",
);
expect(screen.getByLabelText("Text Color").parentElement?.parentElement?.parentElement).not.toHaveClass(
"grid-cols-[repeat(auto-fit,minmax(8rem,1fr))]",
);
expect(screen.getByLabelText("Text Decoration Color")).toBeInTheDocument(); expect(screen.getByLabelText("Text Decoration Color")).toBeInTheDocument();
expect(screen.getByRole("heading", { name: "Color" })).toBeInTheDocument(); expect(screen.getByRole("heading", { name: "Color" })).toBeInTheDocument();
expect(screen.getByRole("heading", { name: "Text" })).toBeInTheDocument(); expect(screen.getByRole("heading", { name: "Text" })).toBeInTheDocument();
@@ -90,6 +103,7 @@ describe("CustomStylesSectionBuilder", () => {
expect(screen.getByLabelText("Text Align")).toBeInTheDocument(); expect(screen.getByLabelText("Text Align")).toBeInTheDocument();
expect(screen.getByLabelText("Text Transform")).toBeInTheDocument(); expect(screen.getByLabelText("Text Transform")).toBeInTheDocument();
expect(screen.getByLabelText("Opacity")).toBeInTheDocument(); expect(screen.getByLabelText("Opacity")).toBeInTheDocument();
expect(screen.getByText("Padding")).toBeInTheDocument();
expect(screen.getByLabelText("Margin Top")).toBeInTheDocument(); expect(screen.getByLabelText("Margin Top")).toBeInTheDocument();
expect(screen.getByLabelText("Margin Right")).toBeInTheDocument(); expect(screen.getByLabelText("Margin Right")).toBeInTheDocument();
expect(screen.getByLabelText("Margin Bottom")).toBeInTheDocument(); expect(screen.getByLabelText("Margin Bottom")).toBeInTheDocument();
@@ -97,7 +111,14 @@ describe("CustomStylesSectionBuilder", () => {
expect(screen.getByLabelText("Row Gap")).toBeInTheDocument(); expect(screen.getByLabelText("Row Gap")).toBeInTheDocument();
expect(screen.getByLabelText("Column Gap")).toBeInTheDocument(); expect(screen.getByLabelText("Column Gap")).toBeInTheDocument();
expect(screen.getByLabelText("Border Style")).toBeInTheDocument(); expect(screen.getByLabelText("Border Style")).toBeInTheDocument();
expect(screen.getByLabelText("Border Width").parentElement?.parentElement).toHaveClass(
"grid-cols-1",
"@min-[20rem]:grid-cols-2",
"@min-[35rem]:grid-cols-4",
);
fireEvent.click(screen.getByLabelText("Style Slot")); fireEvent.click(screen.getByLabelText("Style Slot"));
expect(await screen.findByText("Section")).toBeInTheDocument();
expect(screen.getByText("Rich text")).toBeInTheDocument();
expect(await screen.findByRole("option", { name: "Section heading" })).toBeInTheDocument(); expect(await screen.findByRole("option", { name: "Section heading" })).toBeInTheDocument();
expect(screen.getByRole("option", { name: "List" })).toBeInTheDocument(); expect(screen.getByRole("option", { name: "List" })).toBeInTheDocument();
expect(screen.getByRole("option", { name: "List item content" })).toBeInTheDocument(); expect(screen.getByRole("option", { name: "List item content" })).toBeInTheDocument();
@@ -147,14 +168,16 @@ describe("CustomStylesSectionBuilder", () => {
styleRules.splice(0, styleRules.length); styleRules.splice(0, styleRules.length);
renderCustomStyles(); renderCustomStyles();
expect(screen.queryByLabelText("Padding")).not.toBeInTheDocument(); expect(screen.getByText("Padding")).toBeInTheDocument();
expect(screen.getByText("Padding")).toHaveClass("shrink-0");
expect(screen.getByText("Padding").parentElement).toHaveClass("flex");
expect(screen.queryByText("Padding Top")).not.toBeInTheDocument();
expect(screen.getByLabelText("Padding Top")).toBeInTheDocument(); expect(screen.getByLabelText("Padding Top")).toBeInTheDocument();
expect(screen.getByLabelText("Padding Right")).toBeInTheDocument(); expect(screen.getByLabelText("Padding Right")).toBeInTheDocument();
expect(screen.getByLabelText("Padding Bottom")).toBeInTheDocument(); expect(screen.getByLabelText("Padding Bottom")).toBeInTheDocument();
expect(screen.getByLabelText("Padding Left")).toBeInTheDocument(); expect(screen.getByLabelText("Padding Left")).toBeInTheDocument();
expect(screen.getByLabelText("Padding Top").closest("div")?.parentElement).toHaveClass( expect(screen.getByLabelText("Padding Top")).toHaveAttribute("placeholder", "top");
"grid-cols-[repeat(auto-fit,minmax(7rem,1fr))]", expect(screen.getByLabelText("Padding Right")).toHaveClass("text-center", "tabular-nums");
);
fireEvent.change(screen.getByLabelText("Padding Top"), { target: { value: "12" } }); fireEvent.change(screen.getByLabelText("Padding Top"), { target: { value: "12" } });
@@ -200,8 +223,15 @@ describe("CustomStylesSectionBuilder", () => {
styleRules.splice(0, styleRules.length); styleRules.splice(0, styleRules.length);
renderCustomStyles(); renderCustomStyles();
expect(screen.getByText("Margin")).toBeInTheDocument();
expect(screen.getByText("Margin")).toHaveClass("shrink-0");
expect(screen.queryByText("Margin Bottom")).not.toBeInTheDocument();
expect(screen.getByLabelText("Margin Bottom")).toHaveAttribute("min", "-72"); expect(screen.getByLabelText("Margin Bottom")).toHaveAttribute("min", "-72");
expect(screen.getByLabelText("Margin Bottom")).toHaveAttribute("placeholder", "bottom");
expect(screen.getByText("Gap")).toBeInTheDocument();
expect(screen.queryByText("Row Gap")).not.toBeInTheDocument();
expect(screen.getByLabelText("Row Gap")).toHaveAttribute("min", "-72"); expect(screen.getByLabelText("Row Gap")).toHaveAttribute("min", "-72");
expect(screen.getByLabelText("Row Gap")).toHaveAttribute("placeholder", "row");
fireEvent.change(screen.getByLabelText("Margin Bottom"), { target: { value: "-10" } }); fireEvent.change(screen.getByLabelText("Margin Bottom"), { target: { value: "-10" } });
fireEvent.change(screen.getByLabelText("Row Gap"), { target: { value: "-6" } }); fireEvent.change(screen.getByLabelText("Row Gap"), { target: { value: "-6" } });
@@ -57,6 +57,7 @@ const styleSlotOptions: StyleSlotOption[] = [
const styleSlotComboboxOptions: ComboboxOption<StyleSlot>[] = styleSlotOptions.map((option) => ({ const styleSlotComboboxOptions: ComboboxOption<StyleSlot>[] = styleSlotOptions.map((option) => ({
value: option.value, value: option.value,
label: option.label, label: option.label,
group: option.group,
keywords: [option.group], keywords: [option.group],
})); }));
@@ -94,7 +95,9 @@ const borderStyleOptions = [
] as const satisfies readonly { value: NonNullable<StyleIntent["borderStyle"]>; label: string }[]; ] as const satisfies readonly { value: NonNullable<StyleIntent["borderStyle"]>; label: string }[];
const controlGridClassName = "grid grid-cols-[repeat(auto-fit,minmax(8rem,1fr))] gap-3"; const controlGridClassName = "grid grid-cols-[repeat(auto-fit,minmax(8rem,1fr))] gap-3";
const compactControlGridClassName = "grid grid-cols-[repeat(auto-fit,minmax(7rem,1fr))] gap-3"; const exactFourControlGridClassName = "grid grid-cols-1 gap-3 @min-[20rem]:grid-cols-2 @min-[35rem]:grid-cols-4";
const compactSpacingInputClassName =
"h-8 w-18 max-w-18 min-w-0 px-1.5 text-center text-xs tabular-nums placeholder:text-[0.68rem] placeholder:uppercase placeholder:tracking-wide";
export function CustomStylesSectionBuilder() { export function CustomStylesSectionBuilder() {
return ( return (
@@ -270,7 +273,13 @@ function CustomStylesSectionForm() {
); );
} }
function Field({ label, id, children }: { label: string; id: string; children: ReactNode }) { type FieldProps = {
label: string;
id: string;
children: ReactNode;
};
function Field({ label, id, children }: FieldProps) {
return ( return (
<div className="min-w-0 space-y-2"> <div className="min-w-0 space-y-2">
<Label htmlFor={id} className="block min-w-0 text-pretty leading-snug"> <Label htmlFor={id} className="block min-w-0 text-pretty leading-snug">
@@ -281,24 +290,19 @@ function Field({ label, id, children }: { label: string; id: string; children: R
); );
} }
function ColorField({ type ColorFieldProps = {
label,
id,
value,
placeholder,
fallback,
onChange,
}: {
label: string; label: string;
id: string; id: string;
value: string | undefined; value: string | undefined;
placeholder?: string; placeholder?: string;
fallback: string; fallback: string;
onChange: (value: string | undefined) => void; onChange: (value: string | undefined) => void;
}) { };
function ColorField({ label, id, value, placeholder, fallback, onChange }: ColorFieldProps) {
return ( return (
<Field label={label} id={id}> <Field label={label} id={id}>
<div className="flex min-w-0 items-center gap-2"> <div className="flex min-w-0 items-center gap-3">
<ColorPicker value={value ?? fallback} defaultValue={fallback} onChange={(color) => onChange(color)} /> <ColorPicker value={value ?? fallback} defaultValue={fallback} onChange={(color) => onChange(color)} />
<Input <Input
id={id} id={id}
@@ -312,15 +316,7 @@ function ColorField({
); );
} }
function NumberInput({ type NumberInputProps = {
label,
id,
value,
min,
max,
step = 1,
onChange,
}: {
label: string; label: string;
id?: string; id?: string;
value: number | undefined; value: number | undefined;
@@ -328,7 +324,9 @@ function NumberInput({
max: number; max: number;
step?: number; step?: number;
onChange: (value: number | undefined) => void; onChange: (value: number | undefined) => void;
}) { };
function NumberInput({ label, id, value, min, max, step = 1, onChange }: NumberInputProps) {
const inputId = id ?? `style-${label.toLowerCase().replaceAll(" ", "-")}`; const inputId = id ?? `style-${label.toLowerCase().replaceAll(" ", "-")}`;
return ( return (
@@ -350,19 +348,15 @@ function NumberInput({
); );
} }
function AppliedRulesList({ type AppliedRulesListProps = {
data,
rules,
onToggleRule,
onEditRule,
onDeleteRule,
}: {
data: ResumeData; data: ResumeData;
rules: StyleRule[]; rules: StyleRule[];
onToggleRule: (ruleId: string, enabled: boolean) => void; onToggleRule: (ruleId: string, enabled: boolean) => void;
onEditRule: (rule: StyleRule) => void; onEditRule: (rule: StyleRule) => void;
onDeleteRule: (ruleId: string) => void; onDeleteRule: (ruleId: string) => void;
}) { };
function AppliedRulesList({ data, rules, onToggleRule, onEditRule, onDeleteRule }: AppliedRulesListProps) {
return ( return (
<section className="space-y-3"> <section className="space-y-3">
<div className="space-y-0.5"> <div className="space-y-0.5">
@@ -396,19 +390,15 @@ function AppliedRulesList({
); );
} }
function AppliedRuleCard({ type AppliedRuleCardProps = {
data,
rule,
onToggleRule,
onEditRule,
onDeleteRule,
}: {
data: ResumeData; data: ResumeData;
rule: StyleRule; rule: StyleRule;
onToggleRule: (ruleId: string, enabled: boolean) => void; onToggleRule: (ruleId: string, enabled: boolean) => void;
onEditRule: (rule: StyleRule) => void; onEditRule: (rule: StyleRule) => void;
onDeleteRule: (ruleId: string) => void; onDeleteRule: (ruleId: string) => void;
}) { };
function AppliedRuleCard({ data, rule, onToggleRule, onEditRule, onDeleteRule }: AppliedRuleCardProps) {
const slots = getConfiguredSlots(rule); const slots = getConfiguredSlots(rule);
const primaryIntent = slots[0] ? rule.slots[slots[0]] : undefined; const primaryIntent = slots[0] ? rule.slots[slots[0]] : undefined;
const fallbackLabel = getRuleFallbackLabel(data, rule); const fallbackLabel = getRuleFallbackLabel(data, rule);
@@ -462,7 +452,12 @@ function AppliedRuleCard({
); );
} }
function RuleScopePill({ target, slot }: { target: string; slot: string }) { type RuleScopePillProps = {
target: string;
slot: string;
};
function RuleScopePill({ target, slot }: RuleScopePillProps) {
return ( return (
<div className="inline-flex max-w-full overflow-hidden rounded-sm border border-border/80 bg-background text-xs shadow-xs"> <div className="inline-flex max-w-full overflow-hidden rounded-sm border border-border/80 bg-background text-xs shadow-xs">
<span className="min-w-0 max-w-32 truncate bg-secondary px-2.5 py-1 font-medium text-secondary-foreground"> <span className="min-w-0 max-w-32 truncate bg-secondary px-2.5 py-1 font-medium text-secondary-foreground">
@@ -473,23 +468,20 @@ function RuleScopePill({ target, slot }: { target: string; slot: string }) {
); );
} }
function RuleIntentEditor({ type RuleIntentEditorProps = {
idPrefix,
intent,
labelPrefix,
onChange,
}: {
idPrefix: string; idPrefix: string;
intent: StyleIntent; intent: StyleIntent;
labelPrefix?: string; labelPrefix?: string;
onChange: (patch: Partial<StyleIntent>) => void; onChange: (patch: Partial<StyleIntent>) => void;
}) { };
function RuleIntentEditor({ idPrefix, intent, labelPrefix, onChange }: RuleIntentEditorProps) {
const labelStart = labelPrefix ? `${labelPrefix} ` : ""; const labelStart = labelPrefix ? `${labelPrefix} ` : "";
return ( return (
<div className="space-y-3"> <div className="space-y-3">
<ControlPanel title="Color"> <ControlPanel title="Color">
<div className={controlGridClassName}> <div className={exactFourControlGridClassName}>
<ColorField <ColorField
label={`${labelStart}Text Color`} label={`${labelStart}Text Color`}
id={`${idPrefix}-color`} id={`${idPrefix}-color`}
@@ -599,38 +591,34 @@ function RuleIntentEditor({
</ControlPanel> </ControlPanel>
<ControlPanel title="Spacing"> <ControlPanel title="Spacing">
<div className="space-y-4"> <div className="space-y-3">
<ControlSubsection title="Padding"> <PaddingSideInputs idPrefix={idPrefix} intent={intent} labelPrefix={labelPrefix} onChange={onChange} />
<PaddingSideInputs idPrefix={idPrefix} intent={intent} labelPrefix={labelPrefix} onChange={onChange} /> <MarginSideInputs idPrefix={idPrefix} intent={intent} labelPrefix={labelPrefix} onChange={onChange} />
</ControlSubsection> <SpacingInputGroup label="Gap">
<ControlSubsection title="Margin"> <CompactNumberInput
<MarginSideInputs idPrefix={idPrefix} intent={intent} labelPrefix={labelPrefix} onChange={onChange} /> ariaLabel={`${labelStart}Row Gap`}
</ControlSubsection> id={`${idPrefix}-row-gap`}
<ControlSubsection title="Gap"> placeholder="row"
<div className={controlGridClassName}> value={intent.rowGap}
<NumberInput min={-72}
label={`${labelStart}Row Gap`} max={72}
id={`${idPrefix}-row-gap`} onChange={(rowGap) => onChange({ rowGap })}
value={intent.rowGap} />
min={-72} <CompactNumberInput
max={72} ariaLabel={`${labelStart}Column Gap`}
onChange={(rowGap) => onChange({ rowGap })} id={`${idPrefix}-column-gap`}
/> placeholder="column"
<NumberInput value={intent.columnGap}
label={`${labelStart}Column Gap`} min={-72}
id={`${idPrefix}-column-gap`} max={72}
value={intent.columnGap} onChange={(columnGap) => onChange({ columnGap })}
min={-72} />
max={72} </SpacingInputGroup>
onChange={(columnGap) => onChange({ columnGap })}
/>
</div>
</ControlSubsection>
</div> </div>
</ControlPanel> </ControlPanel>
<ControlPanel title="Border"> <ControlPanel title="Border">
<div className={controlGridClassName}> <div className={exactFourControlGridClassName}>
<IntentSelectField <IntentSelectField
label={`${labelStart}Border Style`} label={`${labelStart}Border Style`}
id={`${idPrefix}-border-style`} id={`${idPrefix}-border-style`}
@@ -668,23 +656,27 @@ function RuleIntentEditor({
); );
} }
function ControlPanel({ title, children }: { title: string; children: ReactNode }) { type ControlPanelProps = {
title: string;
children: ReactNode;
};
function ControlPanel({ title, children }: ControlPanelProps) {
return ( return (
<section className="space-y-3 rounded-lg border bg-muted/10 p-3"> <section className="@container space-y-3 rounded-lg border bg-muted/10 p-3">
<h3 className="font-medium text-muted-foreground text-xs uppercase tracking-wide">{title}</h3> <h3 className="font-medium text-muted-foreground text-xs uppercase tracking-wide">{title}</h3>
{children} {children}
</section> </section>
); );
} }
function ControlSubsection({ title, children }: { title: string; children: ReactNode }) { type IntentSelectFieldProps<TValue extends string> = {
return ( label: string;
<div className="space-y-2"> id: string;
<div className="font-medium text-muted-foreground text-xs">{title}</div> value: TValue | undefined;
{children} options: readonly ComboboxOption<TValue>[];
</div> onChange: (value: TValue | undefined) => void;
); };
}
function IntentSelectField<TValue extends string>({ function IntentSelectField<TValue extends string>({
label, label,
@@ -692,13 +684,7 @@ function IntentSelectField<TValue extends string>({
value, value,
options, options,
onChange, onChange,
}: { }: IntentSelectFieldProps<TValue>) {
label: string;
id: string;
value: TValue | undefined;
options: readonly ComboboxOption<TValue>[];
onChange: (value: TValue | undefined) => void;
}) {
return ( return (
<Field label={label} id={id}> <Field label={label} id={id}>
<Combobox <Combobox
@@ -715,17 +701,14 @@ function IntentSelectField<TValue extends string>({
); );
} }
function FontWeightField({ type FontWeightFieldProps = {
label,
id,
value,
onChange,
}: {
label: string; label: string;
id: string; id: string;
value: StyleIntent["fontWeight"] | undefined; value: StyleIntent["fontWeight"] | undefined;
onChange: (value: StyleIntent["fontWeight"] | undefined) => void; onChange: (value: StyleIntent["fontWeight"] | undefined) => void;
}) { };
function FontWeightField({ label, id, value, onChange }: FontWeightFieldProps) {
const options: ComboboxOption<NonNullable<StyleIntent["fontWeight"]>>[] = fontWeightOptions.map((weight) => ({ const options: ComboboxOption<NonNullable<StyleIntent["fontWeight"]>>[] = fontWeightOptions.map((weight) => ({
value: weight, value: weight,
label: weight, label: weight,
@@ -765,66 +748,116 @@ const marginSideOptions = [
type MarginSideProperty = (typeof marginSideOptions)[number]["property"]; type MarginSideProperty = (typeof marginSideOptions)[number]["property"];
function PaddingSideInputs({ type PaddingSideInputsProps = {
idPrefix,
intent,
labelPrefix,
onChange,
}: {
idPrefix: string; idPrefix: string;
intent: StyleIntent; intent: StyleIntent;
labelPrefix?: string; labelPrefix?: string;
onChange: (patch: Partial<StyleIntent>) => void; onChange: (patch: Partial<StyleIntent>) => void;
}) { };
function PaddingSideInputs({ idPrefix, intent, labelPrefix, onChange }: PaddingSideInputsProps) {
const labelStart = labelPrefix ? `${labelPrefix} ` : ""; const labelStart = labelPrefix ? `${labelPrefix} ` : "";
return ( return (
<div className={compactControlGridClassName}> <SpacingInputGroup label="Padding">
{paddingSideOptions.map((side) => ( {paddingSideOptions.map((side) => (
<NumberInput <CompactNumberInput
key={side.property} key={side.property}
label={`${labelStart}Padding ${side.label}`} ariaLabel={`${labelStart}Padding ${side.label}`}
id={`${idPrefix}-${side.property}`} id={`${idPrefix}-${side.property}`}
placeholder={side.label.toLowerCase()}
value={getPaddingSideValue(intent, side.property)} value={getPaddingSideValue(intent, side.property)}
min={-72} min={-72}
max={72} max={72}
onChange={(value) => onChange(createPaddingSidePatch(intent, side.property, value))} onChange={(value) => onChange(createPaddingSidePatch(intent, side.property, value))}
/> />
))} ))}
</div> </SpacingInputGroup>
); );
} }
function MarginSideInputs({ type MarginSideInputsProps = {
idPrefix,
intent,
labelPrefix,
onChange,
}: {
idPrefix: string; idPrefix: string;
intent: StyleIntent; intent: StyleIntent;
labelPrefix?: string; labelPrefix?: string;
onChange: (patch: Partial<StyleIntent>) => void; onChange: (patch: Partial<StyleIntent>) => void;
}) { };
function MarginSideInputs({ idPrefix, intent, labelPrefix, onChange }: MarginSideInputsProps) {
const labelStart = labelPrefix ? `${labelPrefix} ` : ""; const labelStart = labelPrefix ? `${labelPrefix} ` : "";
return ( return (
<div className={compactControlGridClassName}> <SpacingInputGroup label="Margin">
{marginSideOptions.map((side) => ( {marginSideOptions.map((side) => (
<NumberInput <CompactNumberInput
key={side.property} key={side.property}
label={`${labelStart}Margin ${side.label}`} ariaLabel={`${labelStart}Margin ${side.label}`}
id={`${idPrefix}-${side.property}`} id={`${idPrefix}-${side.property}`}
placeholder={side.label.toLowerCase()}
value={intent[side.property]} value={intent[side.property]}
min={-72} min={-72}
max={72} max={72}
onChange={(value) => onChange(createMarginSidePatch(side.property, value))} onChange={(value) => onChange(createMarginSidePatch(side.property, value))}
/> />
))} ))}
</SpacingInputGroup>
);
}
type SpacingInputGroupProps = {
label: string;
children: ReactNode;
};
function SpacingInputGroup({ label, children }: SpacingInputGroupProps) {
return (
<div className="flex min-w-0 items-center gap-4">
<div className="w-20 shrink-0 font-medium text-muted-foreground text-xs">{label}</div>
<div className="flex min-w-0 flex-1 flex-wrap gap-2">{children}</div>
</div> </div>
); );
} }
type CompactNumberInputProps = {
ariaLabel: string;
id: string;
placeholder: string;
value: number | undefined;
min: number;
max: number;
step?: number;
onChange: (value: number | undefined) => void;
};
function CompactNumberInput({
ariaLabel,
id,
placeholder,
value,
min,
max,
step = 1,
onChange,
}: CompactNumberInputProps) {
return (
<Input
id={id}
aria-label={ariaLabel}
className={compactSpacingInputClassName}
value={value ?? ""}
placeholder={placeholder}
type="number"
min={min}
max={max}
step={step}
onChange={(event) => {
const value = event.target.value;
onChange(value === "" ? undefined : Number(value));
}}
/>
);
}
function getPaddingSideValue(intent: StyleIntent, property: PaddingSideProperty) { function getPaddingSideValue(intent: StyleIntent, property: PaddingSideProperty) {
return intent[property] ?? intent.padding; return intent[property] ?? intent.padding;
} }
@@ -851,7 +884,11 @@ function createMarginSidePatch(property: MarginSideProperty, value: number | und
return { [property]: value }; return { [property]: value };
} }
function RulePropertySummary({ intent }: { intent: StyleIntent }) { type RulePropertySummaryProps = {
intent: StyleIntent;
};
function RulePropertySummary({ intent }: RulePropertySummaryProps) {
const properties = [ const properties = [
intent.color && { label: "Text", value: intent.color, color: intent.color }, intent.color && { label: "Text", value: intent.color, color: intent.color },
intent.backgroundColor && { label: "Background", value: intent.backgroundColor, color: intent.backgroundColor }, intent.backgroundColor && { label: "Background", value: intent.backgroundColor, color: intent.backgroundColor },
@@ -935,15 +972,13 @@ function getGapSummary(intent: StyleIntent) {
return values.length > 0 ? values.join(" / ") : undefined; return values.length > 0 ? values.join(" / ") : undefined;
} }
function createTarget({ type CreateTargetParams = {
targetScope,
sectionType,
sectionId,
}: {
targetScope: TargetScope; targetScope: TargetScope;
sectionType: string; sectionType: string;
sectionId: string; sectionId: string;
}): StyleRuleTarget { };
function createTarget({ targetScope, sectionType, sectionId }: CreateTargetParams): StyleRuleTarget {
if (targetScope === "sectionType") { if (targetScope === "sectionType") {
return { return {
scope: "sectionType", scope: "sectionType",
@@ -10,8 +10,12 @@ const downloadWithAnchor = vi.hoisted(() => vi.fn());
const buildDocx = vi.hoisted(() => vi.fn().mockResolvedValue(new Blob(["x"], { type: "application/x-docx" }))); const buildDocx = vi.hoisted(() => vi.fn().mockResolvedValue(new Blob(["x"], { type: "application/x-docx" })));
const createResumePdfBlob = vi.hoisted(() => vi.fn().mockResolvedValue(new Blob(["x"], { type: "application/pdf" }))); const createResumePdfBlob = vi.hoisted(() => vi.fn().mockResolvedValue(new Blob(["x"], { type: "application/pdf" })));
type SectionBaseProps = {
children: React.ReactNode;
};
vi.mock("../shared/section-base", () => ({ vi.mock("../shared/section-base", () => ({
SectionBase: ({ children }: { children: React.ReactNode }) => <div>{children}</div>, SectionBase: ({ children }: SectionBaseProps) => <div>{children}</div>,
})); }));
vi.mock("@reactive-resume/utils/file", () => ({ vi.mock("@reactive-resume/utils/file", () => ({
downloadWithAnchor, downloadWithAnchor,
@@ -5,8 +5,12 @@ import { beforeAll, describe, expect, it, vi } from "vitest";
import { i18n } from "@lingui/core"; import { i18n } from "@lingui/core";
import { I18nProvider } from "@lingui/react"; import { I18nProvider } from "@lingui/react";
type SectionBaseProps = {
children: React.ReactNode;
};
vi.mock("../shared/section-base", () => ({ vi.mock("../shared/section-base", () => ({
SectionBase: ({ children }: { children: React.ReactNode }) => <div>{children}</div>, SectionBase: ({ children }: SectionBaseProps) => <div>{children}</div>,
})); }));
const { InformationSectionBuilder } = await import("./information"); const { InformationSectionBuilder } = await import("./information");
@@ -11,11 +11,20 @@ const richInputProps = vi.hoisted(() => ({
onChange: undefined as ((value: string) => void) | undefined, onChange: undefined as ((value: string) => void) | undefined,
})); }));
type SectionBaseProps = {
children: React.ReactNode;
};
type RichInputProps = {
value: string;
onChange: (value: string) => void;
};
vi.mock("../shared/section-base", () => ({ vi.mock("../shared/section-base", () => ({
SectionBase: ({ children }: { children: React.ReactNode }) => <div data-testid="section-base">{children}</div>, SectionBase: ({ children }: SectionBaseProps) => <div data-testid="section-base">{children}</div>,
})); }));
vi.mock("@/components/input/rich-input", () => ({ vi.mock("@/components/input/rich-input", () => ({
RichInput: (props: { value: string; onChange: (value: string) => void }) => { RichInput: (props: RichInputProps) => {
richInputProps.value = props.value; richInputProps.value = props.value;
richInputProps.onChange = props.onChange; richInputProps.onChange = props.onChange;
return <textarea data-testid="rich-input" value={props.value} readOnly />; return <textarea data-testid="rich-input" value={props.value} readOnly />;
@@ -17,6 +17,10 @@ const queryResult = vi.hoisted(() => ({
}, },
})); }));
type SectionBaseProps = {
children: React.ReactNode;
};
vi.mock("@tanstack/react-query", () => ({ vi.mock("@tanstack/react-query", () => ({
useQuery: () => queryResult, useQuery: () => queryResult,
})); }));
@@ -27,7 +31,7 @@ vi.mock("@/libs/orpc/client", () => ({
orpc: { resume: { statistics: { getById: { queryOptions: () => ({}) } } } }, orpc: { resume: { statistics: { getById: { queryOptions: () => ({}) } } } },
})); }));
vi.mock("../shared/section-base", () => ({ vi.mock("../shared/section-base", () => ({
SectionBase: ({ children }: { children: React.ReactNode }) => <div>{children}</div>, SectionBase: ({ children }: SectionBaseProps) => <div>{children}</div>,
})); }));
const { StatisticsSectionBuilder } = await import("./statistics"); const { StatisticsSectionBuilder } = await import("./statistics");
@@ -6,8 +6,12 @@ import { i18n } from "@lingui/core";
import { I18nProvider } from "@lingui/react"; import { I18nProvider } from "@lingui/react";
import { useDialogStore } from "@/dialogs/store"; import { useDialogStore } from "@/dialogs/store";
type SectionBaseProps = {
children: React.ReactNode;
};
vi.mock("../shared/section-base", () => ({ vi.mock("../shared/section-base", () => ({
SectionBase: ({ children }: { children: React.ReactNode }) => <div>{children}</div>, SectionBase: ({ children }: SectionBaseProps) => <div>{children}</div>,
})); }));
vi.mock("@/features/resume/builder/draft", () => ({ vi.mock("@/features/resume/builder/draft", () => ({
useCurrentResume: () => ({ useCurrentResume: () => ({
@@ -322,7 +322,11 @@ function TypographySectionForm() {
); );
} }
function TypographyFieldGroup({ label }: { label: ReactNode }) { type TypographyFieldGroupProps = {
label: ReactNode;
};
function TypographyFieldGroup({ label }: TypographyFieldGroupProps) {
return ( return (
<div className="col-span-full flex items-center gap-x-2"> <div className="col-span-full flex items-center gap-x-2">
<Separator className="basis-[16px]" /> <Separator className="basis-[16px]" />
@@ -1,6 +1,9 @@
import { afterEach, describe, expect, it } from "vitest"; import { afterEach, describe, expect, it } from "vitest";
import { import {
DEFAULT_BUILDER_LAYOUT, DEFAULT_BUILDER_LAYOUT,
DESKTOP_BUILDER_SIDEBAR_COLLAPSED_SIZE,
DESKTOP_BUILDER_SIDEBAR_MIN_SIZE,
getBuilderSidebarResizeConfig,
mapPanelLayoutToBuilderLayout, mapPanelLayoutToBuilderLayout,
parseBuilderLayoutCookie, parseBuilderLayoutCookie,
useBuilderSidebarStore, useBuilderSidebarStore,
@@ -64,6 +67,25 @@ describe("mapPanelLayoutToBuilderLayout", () => {
}); });
}); });
describe("getBuilderSidebarResizeConfig", () => {
it("uses a desktop minimum width that is larger than the collapsed rail", () => {
const config = getBuilderSidebarResizeConfig({ isMobile: false, width: 1280 });
expect(config.minSidebarSize).toBe(DESKTOP_BUILDER_SIDEBAR_MIN_SIZE);
expect(config.collapsedSidebarSize).toBe(DESKTOP_BUILDER_SIDEBAR_COLLAPSED_SIZE);
expect(config.minSidebarSize).toBeGreaterThan(config.collapsedSidebarSize);
expect(config.groupResizeBehavior).toBe("preserve-pixel-size");
});
it("allows mobile sidebars to collapse fully without a desktop minimum", () => {
const config = getBuilderSidebarResizeConfig({ isMobile: true, width: 390 });
expect(config.minSidebarSize).toBe(0);
expect(config.collapsedSidebarSize).toBe(0);
expect(config.maxSidebarSize).toBe("95%");
});
});
describe("useBuilderSidebarStore", () => { describe("useBuilderSidebarStore", () => {
it("starts with default layout and null panel refs", () => { it("starts with default layout and null panel refs", () => {
const state = useBuilderSidebarStore.getState(); const state = useBuilderSidebarStore.getState();
@@ -20,6 +20,22 @@ export const DEFAULT_BUILDER_LAYOUT: BuilderLayout = {
right: 22, right: 22,
}; };
export const DESKTOP_BUILDER_SIDEBAR_COLLAPSED_SIZE = 48;
export const DESKTOP_BUILDER_SIDEBAR_MIN_SIZE = 320;
type BuilderSidebarResizeConfigInput = {
isMobile: boolean;
width: number;
};
export const getBuilderSidebarResizeConfig = ({ isMobile, width }: BuilderSidebarResizeConfigInput) => ({
maxSidebarSize: !width ? 0 : isMobile ? "95%" : "45%",
minSidebarSize: !width ? 0 : isMobile ? 0 : DESKTOP_BUILDER_SIDEBAR_MIN_SIZE,
collapsedSidebarSize: !width ? 0 : isMobile ? 0 : DESKTOP_BUILDER_SIDEBAR_COLLAPSED_SIZE,
expandSize: isMobile ? "95%" : "30%",
groupResizeBehavior: "preserve-pixel-size" as const,
});
export const mapPanelLayoutToBuilderLayout = (layout: Layout): BuilderLayout => { export const mapPanelLayoutToBuilderLayout = (layout: Layout): BuilderLayout => {
const left = layout.left; const left = layout.left;
const artboard = layout.artboard; const artboard = layout.artboard;
@@ -78,7 +94,9 @@ export const useBuilderSidebarStore = create<BuilderSidebar>((set) => ({
type UseBuilderSidebarReturn = { type UseBuilderSidebarReturn = {
maxSidebarSize: string | number; maxSidebarSize: string | number;
minSidebarSize: number;
collapsedSidebarSize: number; collapsedSidebarSize: number;
groupResizeBehavior: "preserve-pixel-size";
isCollapsed: (side: "left" | "right") => boolean; isCollapsed: (side: "left" | "right") => boolean;
toggleSidebar: (side: "left" | "right", forceState?: boolean) => void; toggleSidebar: (side: "left" | "right", forceState?: boolean) => void;
}; };
@@ -87,9 +105,8 @@ export function useBuilderSidebar<T = UseBuilderSidebarReturn>(selector?: (build
const isMobile = useIsMobile(); const isMobile = useIsMobile();
const { width } = useWindowSize(); const { width } = useWindowSize();
const maxSidebarSize: string | number = !width ? 0 : isMobile ? "95%" : "45%"; const { maxSidebarSize, minSidebarSize, collapsedSidebarSize, expandSize, groupResizeBehavior } =
const collapsedSidebarSize = !width ? 0 : isMobile ? 0 : 48; getBuilderSidebarResizeConfig({ isMobile, width });
const expandSize = isMobile ? "95%" : "30%";
const isCollapsed = useCallback((side: "left" | "right") => { const isCollapsed = useCallback((side: "left" | "right") => {
const sidebar = const sidebar =
@@ -121,11 +138,13 @@ export function useBuilderSidebar<T = UseBuilderSidebarReturn>(selector?: (build
const state = useMemo(() => { const state = useMemo(() => {
return { return {
maxSidebarSize, maxSidebarSize,
minSidebarSize,
collapsedSidebarSize, collapsedSidebarSize,
groupResizeBehavior,
isCollapsed, isCollapsed,
toggleSidebar, toggleSidebar,
}; };
}, [maxSidebarSize, collapsedSidebarSize, isCollapsed, toggleSidebar]); }, [maxSidebarSize, minSidebarSize, collapsedSidebarSize, groupResizeBehavior, isCollapsed, toggleSidebar]);
return selector ? selector(state) : (state as T); return selector ? selector(state) : (state as T);
} }
@@ -104,9 +104,11 @@ function BuilderLayoutShell({ initialLayout }: BuilderLayoutShellProps) {
const setRightSidebar = useBuilderSidebarStore((state) => state.setRightSidebar); const setRightSidebar = useBuilderSidebarStore((state) => state.setRightSidebar);
const setLayout = useBuilderSidebarStore((state) => state.setLayout); const setLayout = useBuilderSidebarStore((state) => state.setLayout);
const { maxSidebarSize, collapsedSidebarSize } = useBuilderSidebar((state) => ({ const { maxSidebarSize, minSidebarSize, collapsedSidebarSize, groupResizeBehavior } = useBuilderSidebar((state) => ({
maxSidebarSize: state.maxSidebarSize, maxSidebarSize: state.maxSidebarSize,
minSidebarSize: state.minSidebarSize,
collapsedSidebarSize: state.collapsedSidebarSize, collapsedSidebarSize: state.collapsedSidebarSize,
groupResizeBehavior: state.groupResizeBehavior,
})); }));
useEffect(() => { useEffect(() => {
@@ -128,7 +130,7 @@ function BuilderLayoutShell({ initialLayout }: BuilderLayoutShellProps) {
setRightSidebar(rightSidebarRef); setRightSidebar(rightSidebarRef);
}, [leftSidebarRef, rightSidebarRef, setLeftSidebar, setRightSidebar]); }, [leftSidebarRef, rightSidebarRef, setLeftSidebar, setRightSidebar]);
const sidebarMinSize = isMobile ? "0%" : `${collapsedSidebarSize * 2}px`; const sidebarMinSize = isMobile ? "0%" : `${minSidebarSize}px`;
const sidebarCollapsedSize = isMobile ? "0%" : `${collapsedSidebarSize}px`; const sidebarCollapsedSize = isMobile ? "0%" : `${collapsedSidebarSize}px`;
const leftSidebarSize = isMobile ? "0%" : `${initialLayout.left}%`; const leftSidebarSize = isMobile ? "0%" : `${initialLayout.left}%`;
const rightSidebarSize = isMobile ? "0%" : `${initialLayout.right}%`; const rightSidebarSize = isMobile ? "0%" : `${initialLayout.right}%`;
@@ -143,6 +145,7 @@ function BuilderLayoutShell({ initialLayout }: BuilderLayoutShellProps) {
collapsible collapsible
id="left" id="left"
panelRef={leftSidebarRef} panelRef={leftSidebarRef}
groupResizeBehavior={groupResizeBehavior}
maxSize={maxSidebarSize} maxSize={maxSidebarSize}
minSize={sidebarMinSize} minSize={sidebarMinSize}
collapsedSize={sidebarCollapsedSize} collapsedSize={sidebarCollapsedSize}
@@ -160,6 +163,7 @@ function BuilderLayoutShell({ initialLayout }: BuilderLayoutShellProps) {
collapsible collapsible
id="right" id="right"
panelRef={rightSidebarRef} panelRef={rightSidebarRef}
groupResizeBehavior={groupResizeBehavior}
maxSize={maxSidebarSize} maxSize={maxSidebarSize}
minSize={sidebarMinSize} minSize={sidebarMinSize}
collapsedSize={sidebarCollapsedSize} collapsedSize={sidebarCollapsedSize}
@@ -13,6 +13,10 @@ type ResumeCardProps = {
resume: RouterOutput["resume"]["list"][number]; resume: RouterOutput["resume"]["list"][number];
}; };
type ResumeLockOverlayProps = {
isLocked: boolean;
};
export function ResumeCard({ resume }: ResumeCardProps) { export function ResumeCard({ resume }: ResumeCardProps) {
const { i18n } = useLingui(); const { i18n } = useLingui();
@@ -40,7 +44,7 @@ export function ResumeCard({ resume }: ResumeCardProps) {
); );
} }
function ResumeLockOverlay({ isLocked }: { isLocked: boolean }) { function ResumeLockOverlay({ isLocked }: ResumeLockOverlayProps) {
return ( return (
<AnimatePresence> <AnimatePresence>
{isLocked && ( {isLocked && (
@@ -15,6 +15,11 @@ type ResumeListItem = RouterOutput["resume"]["list"][number];
type ThumbnailState = { status: "error" | "idle" | "loading" } | { status: "ready"; url: string }; type ThumbnailState = { status: "error" | "idle" | "loading" } | { status: "ready"; url: string };
type ResumeThumbnailProps = {
isLocked: boolean;
resume: ResumeListItem;
};
const throwIfAborted = (signal: AbortSignal) => { const throwIfAborted = (signal: AbortSignal) => {
if (signal.aborted) throw new DOMException("Thumbnail generation aborted.", "AbortError"); if (signal.aborted) throw new DOMException("Thumbnail generation aborted.", "AbortError");
}; };
@@ -63,7 +68,7 @@ function useResumeThumbnail(data: ResumeData | undefined, cacheKey: string | und
return { status: "loading" }; return { status: "loading" };
} }
export function ResumeThumbnail({ isLocked, resume }: { isLocked: boolean; resume: ResumeListItem }) { export function ResumeThumbnail({ isLocked, resume }: ResumeThumbnailProps) {
const containerRef = useRef<HTMLDivElement>(null); const containerRef = useRef<HTMLDivElement>(null);
const isInView = useInView(containerRef, { amount: 0.1, margin: "240px", once: true }); const isInView = useInView(containerRef, { amount: 0.1, margin: "240px", once: true });
const resumeQuery = useQuery({ const resumeQuery = useQuery({
@@ -11,11 +11,15 @@ import { ResumeDropdownMenu } from "./menus/dropdown-menu";
type Resume = RouterOutput["resume"]["list"][number]; type Resume = RouterOutput["resume"]["list"][number];
type Props = { type ListViewProps = {
resumes: Resume[]; resumes: Resume[];
}; };
export function ListView({ resumes }: Props) { type ResumeListItemProps = {
resume: Resume;
};
export function ListView({ resumes }: ListViewProps) {
const { openDialog } = useDialogStore(); const { openDialog } = useDialogStore();
const handleCreateResume = () => { const handleCreateResume = () => {
@@ -96,7 +100,7 @@ export function ListView({ resumes }: Props) {
); );
} }
function ResumeListItem({ resume }: { resume: Resume }) { function ResumeListItem({ resume }: ResumeListItemProps) {
const { i18n } = useLingui(); const { i18n } = useLingui();
const updatedAt = useMemo(() => { const updatedAt = useMemo(() => {
@@ -191,6 +191,24 @@ describe("registerFonts", () => {
expect(pdfTypography.body.fontWeights).toEqual(["400", "600", "800"]); expect(pdfTypography.body.fontWeights).toEqual(["400", "600", "800"]);
expect(pdfTypography.heading.fontWeights).toEqual(["500", "900"]); expect(pdfTypography.heading.fontWeights).toEqual(["500", "900"]);
}); });
it("replaces unsupported font weights with an available fallback pair", async () => {
const registerSpy = vi.spyOn(Font, "register").mockImplementation(() => {});
const { registerFonts } = await import("./use-register-fonts");
const migratedTypography = {
...typography,
body: { ...typography.body, fontFamily: "Lato", fontWeights: ["400"] },
heading: { ...typography.heading, fontFamily: "Lato", fontWeights: ["600"] },
} satisfies Typography;
const pdfTypography = registerFonts(migratedTypography, "en-US");
expect(pdfTypography.body.fontWeights).toEqual(["400"]);
expect(pdfTypography.heading.fontWeights).toEqual(["400", "700"]);
expect(registerSpy).not.toHaveBeenCalledWith(expect.objectContaining({ family: "Lato", fontWeight: 600 }));
expect(registerSpy).toHaveBeenCalledWith(expect.objectContaining({ family: "Lato", fontWeight: 700 }));
});
}); });
describe("resumeContentContainsCJK", () => { describe("resumeContentContainsCJK", () => {
+50 -2
View File
@@ -21,6 +21,8 @@ type FontWeightRange = {
const registeredFontVariants = new Set<string>(); const registeredFontVariants = new Set<string>();
const fallbackFontFamily = "IBM Plex Serif"; const fallbackFontFamily = "IBM Plex Serif";
const cjkLetterRegex = cjkLetters().toRegExp(); const cjkLetterRegex = cjkLetters().toRegExp();
const fontWeightValues = new Set<FontWeight>(["100", "200", "300", "400", "500", "600", "700", "800", "900"]);
const preferredFallbackFontWeights = ["400", "700", "600", "500"] satisfies FontWeight[];
// `fontFamily` is widened to `string | string[]` so react-pdf can do // `fontFamily` is widened to `string | string[]` so react-pdf can do
// glyph-level font fallback for CJK characters (#2986). // glyph-level font fallback for CJK characters (#2986).
@@ -46,6 +48,52 @@ const getFontWeightRange = (fontWeights: string[]): FontWeightRange => {
return { lowest, highest }; return { lowest, highest };
}; };
const isFontWeight = (weight: string): weight is FontWeight => fontWeightValues.has(weight as FontWeight);
const uniqueSortedFontWeights = (fontWeights: FontWeight[]): FontWeight[] => {
return [...new Set(sortFontWeights(fontWeights))];
};
const getFallbackFontWeights = (availableWeights: FontWeight[]): FontWeight[] => {
const sortedAvailableWeights = uniqueSortedFontWeights(availableWeights);
const availableWeightSet = new Set(sortedAvailableWeights);
const preferredWeights = preferredFallbackFontWeights.filter((weight) => availableWeightSet.has(weight));
if (preferredWeights.length >= 2) {
return uniqueSortedFontWeights(preferredWeights.slice(0, 2));
}
if (preferredWeights.length === 1) {
const firstWeight = preferredWeights[0];
if (!firstWeight) return [];
const secondWeight =
sortedAvailableWeights.find((weight) => Number(weight) > Number(firstWeight)) ??
sortedAvailableWeights.find((weight) => weight !== firstWeight);
return uniqueSortedFontWeights(secondWeight ? [firstWeight, secondWeight] : [firstWeight]);
}
return sortedAvailableWeights.slice(0, 2);
};
const resolvePdfFontWeights = (family: string, fontWeights: string[]): FontWeight[] => {
const requestedWeights = uniqueSortedFontWeights(fontWeights.filter(isFontWeight));
const availableWeights = getFont(family)?.weights;
if (!availableWeights || availableWeights.length === 0) {
return requestedWeights.length > 0 ? requestedWeights : ["400", "700"];
}
const availableWeightSet = new Set(availableWeights);
const allRequestedWeightsAreAvailable =
requestedWeights.length > 0 && requestedWeights.every((weight) => availableWeightSet.has(weight));
if (allRequestedWeightsAreAvailable) return requestedWeights;
return getFallbackFontWeights(availableWeights);
};
const toFontWeight = (weight: number): FontWeight => { const toFontWeight = (weight: number): FontWeight => {
if (weight <= 100) return "100"; if (weight <= 100) return "100";
if (weight <= 200) return "200"; if (weight <= 200) return "200";
@@ -82,8 +130,8 @@ const resolvePdfFontFamily = (family: string) => {
const resolvePdfTypography = (typography: Typography): Typography => { const resolvePdfTypography = (typography: Typography): Typography => {
const bodyFontFamily = resolvePdfFontFamily(typography.body.fontFamily); const bodyFontFamily = resolvePdfFontFamily(typography.body.fontFamily);
const headingFontFamily = resolvePdfFontFamily(typography.heading.fontFamily); const headingFontFamily = resolvePdfFontFamily(typography.heading.fontFamily);
const bodyFontWeights = sortFontWeights(typography.body.fontWeights); const bodyFontWeights = resolvePdfFontWeights(bodyFontFamily, typography.body.fontWeights);
const headingFontWeights = sortFontWeights(typography.heading.fontWeights); const headingFontWeights = resolvePdfFontWeights(headingFontFamily, typography.heading.fontWeights);
return { return {
...typography, ...typography,
@@ -42,6 +42,10 @@ type AzurillTemplate = {
featureStyles: TemplateFeatureStyleSlots; featureStyles: TemplateFeatureStyleSlots;
}; };
type AzurillHeaderProps = {
styles: AzurillStyles;
};
const azurillFeatures = { const azurillFeatures = {
sectionTimeline: true, sectionTimeline: true,
} satisfies TemplateFeatures; } satisfies TemplateFeatures;
@@ -88,7 +92,7 @@ export const AzurillPage = ({ page, pageIndex }: TemplatePageProps) => {
); );
}; };
const Header = ({ styles }: { styles: AzurillStyles }) => { const Header = ({ styles }: AzurillHeaderProps) => {
const { basics, picture } = useRender(); const { basics, picture } = useRender();
const hasPicture = hasTemplatePicture(picture); const hasPicture = hasTemplatePicture(picture);

Some files were not shown because too many files have changed in this diff Show More