mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2026-06-22 04:11:55 +10:00
chore: add missing translations
This commit is contained in:
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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 "ዙሉ"
|
||||||
|
|
||||||
|
|||||||
@@ -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 "الزولو"
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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 "Зулуски"
|
||||||
|
|
||||||
|
|||||||
@@ -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 "জুলু"
|
||||||
|
|
||||||
|
|||||||
@@ -373,6 +373,10 @@ msgstr "Aplicació"
|
|||||||
msgid "Application Statistics"
|
msgid "Application Statistics"
|
||||||
msgstr "Estadístiques de l’aplicació"
|
msgstr "Estadístiques de l’aplicació"
|
||||||
|
|
||||||
|
#: 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 s’han trobat resultats."
|
msgstr "No s’han 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 "S’està actualitzant la contrasenya..."
|
|||||||
msgid "Updating your resume..."
|
msgid "Updating your resume..."
|
||||||
msgstr "S’està actualitzant el currículum..."
|
msgstr "S’està 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ú"
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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 "Ζουλού"
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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ú"
|
||||||
|
|
||||||
|
|||||||
@@ -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 "زولو"
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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 "זולו"
|
||||||
|
|
||||||
|
|||||||
@@ -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 "ज़ुलु"
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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 "ズールー語"
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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 "ಜೂಲೂ"
|
||||||
|
|
||||||
|
|||||||
@@ -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 "줄루어"
|
||||||
|
|
||||||
|
|||||||
@@ -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ų"
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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 "സൂളു"
|
||||||
|
|
||||||
|
|||||||
@@ -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 "झुलू"
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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 "जुलु"
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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 "ଜୁଲୁ"
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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 "Зулу"
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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 "Зулу"
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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 "ஜூலு"
|
||||||
|
|
||||||
|
|||||||
@@ -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 "జులు"
|
||||||
|
|
||||||
|
|||||||
@@ -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 "ซูลู"
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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 "Зулу"
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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 "祖鲁语"
|
||||||
|
|
||||||
|
|||||||
@@ -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 "祖魯語"
|
||||||
|
|
||||||
|
|||||||
@@ -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 ""
|
||||||
|
|||||||
@@ -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++) {
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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());
|
||||||
|
|||||||
@@ -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", () => {
|
||||||
|
|||||||
@@ -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,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"));
|
||||||
|
|||||||
@@ -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" />,
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
+16
-3
@@ -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>
|
||||||
|
|||||||
+17
-3
@@ -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>
|
||||||
|
|||||||
+35
-5
@@ -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", () => {
|
||||||
|
|||||||
@@ -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
Reference in New Issue
Block a user