mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2025-11-10 04:22:27 +10:00
Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0e1e2bbe4e | |||
| 3a2e62be4c | |||
| 697ceef8f2 | |||
| c8e81a456d | |||
| 2b334e5c5a | |||
| 90321e1284 | |||
| 9bcddb4b5c | |||
| 72fdc05f69 | |||
| e1d6540500 | |||
| 4b17719c69 | |||
| da056307dd | |||
| e4950728d8 | |||
| dac4e862b8 |
12
CHANGELOG.md
12
CHANGELOG.md
@ -2,6 +2,18 @@
|
||||
|
||||
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
||||
|
||||
### [3.2.7](https://github.com/AmruthPillai/Reactive-Resume/compare/v3.2.6...v3.2.7) (2022-03-18)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **i18n:** add Malayalam (മലയാളം) language to i18n locales ([3a2e62b](https://github.com/AmruthPillai/Reactive-Resume/commit/3a2e62be4c9acc14f17277c060cc9ea2c417a478))
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **printer/i18n:** fix dates not showing up in resume language when printing ([90321e1](https://github.com/AmruthPillai/Reactive-Resume/commit/90321e1284409ab9442883c04a9b4c591d36f95d)), closes [#729](https://github.com/AmruthPillai/Reactive-Resume/issues/729)
|
||||
|
||||
### [3.2.6](https://github.com/AmruthPillai/Reactive-Resume/compare/v3.2.5...v3.2.6) (2022-03-17)
|
||||
|
||||
|
||||
|
||||
@ -46,6 +46,7 @@ You have complete control over what goes into your resume, how it looks, what co
|
||||
- Hindi (हिन्दी)
|
||||
- Italian (Italiano)
|
||||
- Kannada (ಕನ್ನಡ)
|
||||
- Malayalam (മലയാളം)
|
||||
- Polish (Polski)
|
||||
- Spanish (Español)
|
||||
- Tamil (தமிழ்)
|
||||
|
||||
@ -19,7 +19,7 @@ const Theme = () => {
|
||||
const { background, text, primary } = useAppSelector<ThemeType>((state) => get(state.resume, 'metadata.theme'));
|
||||
|
||||
const handleChange = (property: string, color: string) => {
|
||||
dispatch(setResumeState({ path: `metadata.theme.${property}`, value: color }));
|
||||
dispatch(setResumeState({ path: `metadata.theme.${property}`, value: color[0] !== '#' ? `#${color}` : color }));
|
||||
};
|
||||
|
||||
return (
|
||||
|
||||
@ -15,6 +15,7 @@ export const languages: Language[] = [
|
||||
{ code: 'hi', name: 'Hindi', localName: 'हिन्दी' },
|
||||
{ code: 'it', name: 'Italian', localName: 'Italiano' },
|
||||
{ code: 'kn', name: 'Kannada', localName: 'ಕನ್ನಡ' },
|
||||
{ code: 'ml', name: 'Malayalam', localName: 'മലയാളം' },
|
||||
{ code: 'pl', name: 'Polish', localName: 'Polski' },
|
||||
{ code: 'ta', name: 'Tamil', localName: 'தமிழ்' },
|
||||
{ code: 'tr', name: 'Turkish', localName: 'Türkçe' },
|
||||
|
||||
@ -3,7 +3,7 @@ const path = require('path');
|
||||
const i18nConfig = {
|
||||
i18n: {
|
||||
defaultLocale: 'en',
|
||||
locales: ['ar', 'bn', 'da', 'de', 'en', 'es', 'fr', 'hi', 'it', 'kn', 'pl', 'ta', 'tr', 'zh'],
|
||||
locales: ['ar', 'bn', 'da', 'de', 'en', 'es', 'fr', 'hi', 'it', 'kn', 'ml', 'pl', 'ta', 'tr', 'zh'],
|
||||
},
|
||||
nsSeparator: '.',
|
||||
localePath: path.resolve('./public/locales'),
|
||||
|
||||
@ -3,6 +3,7 @@ import clsx from 'clsx';
|
||||
import get from 'lodash/get';
|
||||
import isEmpty from 'lodash/isEmpty';
|
||||
import { GetServerSideProps, NextPage } from 'next';
|
||||
import { useRouter } from 'next/router';
|
||||
import { serverSideTranslations } from 'next-i18next/serverSideTranslations';
|
||||
import { useEffect } from 'react';
|
||||
|
||||
@ -20,6 +21,7 @@ type QueryParams = {
|
||||
|
||||
type Props = {
|
||||
resume?: Resume;
|
||||
locale: string;
|
||||
redirect?: any;
|
||||
};
|
||||
|
||||
@ -35,7 +37,13 @@ export const getServerSideProps: GetServerSideProps<Props | Promise<Props>, Quer
|
||||
const resume = await fetchResumeByIdentifier({ username, slug, options: { secretKey } });
|
||||
const displayLocale = resume.metadata.locale || locale || 'en';
|
||||
|
||||
return { props: { resume, ...(await serverSideTranslations(displayLocale, ['common'])) } };
|
||||
return {
|
||||
props: {
|
||||
resume,
|
||||
locale: displayLocale,
|
||||
...(await serverSideTranslations(displayLocale, ['common'])),
|
||||
},
|
||||
};
|
||||
} catch (error) {
|
||||
return {
|
||||
redirect: {
|
||||
@ -46,7 +54,9 @@ export const getServerSideProps: GetServerSideProps<Props | Promise<Props>, Quer
|
||||
}
|
||||
};
|
||||
|
||||
const Printer: NextPage<Props> = ({ resume: initialData }) => {
|
||||
const Printer: NextPage<Props> = ({ resume: initialData, locale }) => {
|
||||
const router = useRouter();
|
||||
|
||||
const dispatch = useAppDispatch();
|
||||
|
||||
const resume = useAppSelector((state) => state.resume);
|
||||
@ -55,6 +65,12 @@ const Printer: NextPage<Props> = ({ resume: initialData }) => {
|
||||
if (initialData) dispatch(setResume(initialData));
|
||||
}, [dispatch, initialData]);
|
||||
|
||||
useEffect(() => {
|
||||
const { pathname, asPath, query } = router;
|
||||
|
||||
router.push({ pathname, query }, asPath, { locale });
|
||||
}, [router, locale]);
|
||||
|
||||
if (!resume || isEmpty(resume)) return null;
|
||||
|
||||
const layout: string[][][] = get(resume, 'metadata.layout', []);
|
||||
|
||||
358
client/public/locales/ml/builder.json
Normal file
358
client/public/locales/ml/builder.json
Normal file
@ -0,0 +1,358 @@
|
||||
{
|
||||
"common": {
|
||||
"actions": {
|
||||
"add": "പുതിയ {{token}} ചേർക്കുക",
|
||||
"delete": "{{token}} ഇല്ലാതാക്കുക",
|
||||
"edit": "{{token}} എഡിറ്റ് ചെയ്യുക"
|
||||
},
|
||||
"columns": {
|
||||
"heading": "നിരകൾ",
|
||||
"tooltip": "നിരകളുടെ എണ്ണം മാറ്റുക"
|
||||
},
|
||||
"form": {
|
||||
"date": {
|
||||
"label": "തിയതി"
|
||||
},
|
||||
"description": {
|
||||
"label": "വിവരണം"
|
||||
},
|
||||
"email": {
|
||||
"label": "ഇമെയിൽ വിലാസം"
|
||||
},
|
||||
"end-date": {
|
||||
"help-text": "നിലവിലുണ്ടെങ്കിൽ ഈ ഫീൽഡ് ശൂന്യമായി വിടുക",
|
||||
"label": "അവസാന തീയതി"
|
||||
},
|
||||
"keywords": {
|
||||
"label": "കീവേഡുകൾ"
|
||||
},
|
||||
"level": {
|
||||
"label": "ലെവൽ"
|
||||
},
|
||||
"levelNum": {
|
||||
"label": "ലെവൽ (നമ്പർ)"
|
||||
},
|
||||
"name": {
|
||||
"label": "പേര്"
|
||||
},
|
||||
"phone": {
|
||||
"label": "ഫോണ് നമ്പര്"
|
||||
},
|
||||
"position": {
|
||||
"label": "സ്ഥാനം"
|
||||
},
|
||||
"start-date": {
|
||||
"label": "ആരംഭിക്കുന്ന തീയതി"
|
||||
},
|
||||
"subtitle": {
|
||||
"label": "ഉപശീർഷകം"
|
||||
},
|
||||
"summary": {
|
||||
"label": "സംഗ്രഹം"
|
||||
},
|
||||
"title": {
|
||||
"label": "തലക്കെട്ട്"
|
||||
},
|
||||
"url": {
|
||||
"label": "വെബ്സൈറ്റ്"
|
||||
}
|
||||
},
|
||||
"glossary": {
|
||||
"page": "പേജ്"
|
||||
},
|
||||
"list": {
|
||||
"actions": {
|
||||
"delete": "ഡിലീറ്റ്",
|
||||
"duplicate": "ഡ്യൂപ്ലിക്കേറ്റ്",
|
||||
"edit": "എഡിറ്റ് ചെയ്യുക"
|
||||
},
|
||||
"empty-text": "ഈ ലിസ്റ്റ് ശൂന്യമാണ്."
|
||||
},
|
||||
"tooltip": {
|
||||
"delete-item": "ഈ ഇനം ഇല്ലാതാക്കണമെന്ന് തീർച്ചയാണോ? ഇത് മാറ്റാനാവാത്ത നടപടിയാണ്.",
|
||||
"delete-section": "വിഭാഗം ഇല്ലാതാക്കുക",
|
||||
"rename-section": "വിഭാഗത്തിന്റെ പേര് മാറ്റുക",
|
||||
"toggle-visibility": "ദൃശ്യപരത ടോഗിൾ ചെയ്യുക"
|
||||
}
|
||||
},
|
||||
"controller": {
|
||||
"tooltip": {
|
||||
"center-artboard": "കേന്ദ്ര ആർട്ട്ബോർഡ്",
|
||||
"copy-link": "റെസ്യൂമെയിലേക്ക് ലിങ്ക് പകർത്തുക",
|
||||
"export-pdf": "PDF കയറ്റുമതി ചെയ്യുക",
|
||||
"toggle-orientation": "പേജ് ഓറിയന്റേഷൻ ടോഗിൾ ചെയ്യുക",
|
||||
"toggle-page-break-line": "പേജ് ബ്രേക്ക് ലൈൻ ടോഗിൾ ചെയ്യുക",
|
||||
"toggle-sidebars": "സൈഡ്ബാറുകൾ ടോഗിൾ ചെയ്യുക",
|
||||
"zoom-in": "വലുതാക്കുക",
|
||||
"zoom-out": "ചെറുതാക്കുക"
|
||||
}
|
||||
},
|
||||
"header": {
|
||||
"menu": {
|
||||
"delete": "ഡിലീറ്റ്",
|
||||
"duplicate": "ഡ്യൂപ്ലിക്കേറ്റ്",
|
||||
"rename": "പേര് മാറ്റുക",
|
||||
"share-link": "ലിങ്ക് ഷെയർ ചെയ്യൂ",
|
||||
"tooltips": {
|
||||
"delete": "ഈ റെസ്യൂമെ ഇല്ലാതാക്കണമെന്ന് തീർച്ചയാണോ? ഇത് മാറ്റാനാവാത്ത നടപടിയാണ്.",
|
||||
"share-link": "മറ്റുള്ളവർക്ക് ദൃശ്യമാക്കാൻ നിങ്ങളുടെ റെസ്യൂമെയുടെ ദൃശ്യപരത പൊതുവായി മാറ്റേണ്ടതുണ്ട്."
|
||||
}
|
||||
}
|
||||
},
|
||||
"leftSidebar": {
|
||||
"sections": {
|
||||
"awards": {
|
||||
"form": {
|
||||
"awarder": {
|
||||
"label": "പുരസ്കാരദാതാവ്"
|
||||
}
|
||||
}
|
||||
},
|
||||
"basics": {
|
||||
"actions": {
|
||||
"photo-filters": "ഫോട്ടോ ഫിൽട്ടറുകൾ"
|
||||
},
|
||||
"heading": "അടിസ്ഥാനകാര്യങ്ങൾ",
|
||||
"headline": {
|
||||
"label": "തലക്കെട്ട്"
|
||||
},
|
||||
"name": {
|
||||
"label": "പൂർണ്ണമായ പേര്"
|
||||
},
|
||||
"photo-filters": {
|
||||
"effects": {
|
||||
"border": {
|
||||
"label": "ബോർഡർ"
|
||||
},
|
||||
"grayscale": {
|
||||
"label": "ഗ്രേസ്കെയിൽ"
|
||||
},
|
||||
"heading": "ഇഫക്റ്റുകൾ"
|
||||
},
|
||||
"shape": {
|
||||
"heading": "ആകൃതി"
|
||||
},
|
||||
"size": {
|
||||
"heading": "വലിപ്പം (പിക്സലിൽ)"
|
||||
}
|
||||
},
|
||||
"photo-upload": {
|
||||
"tooltip": {
|
||||
"remove": "ഫോട്ടോ നീക്കം ചെയ്യുക",
|
||||
"upload": "ഫോട്ടോ അപ്ലോഡ് ചെയ്യുക"
|
||||
}
|
||||
}
|
||||
},
|
||||
"certifications": {
|
||||
"form": {
|
||||
"issuer": {
|
||||
"label": "ഇഷ്യു ചെയ്യുന്നയാൾ"
|
||||
}
|
||||
}
|
||||
},
|
||||
"education": {
|
||||
"form": {
|
||||
"area-study": {
|
||||
"label": "പഠന മേഖല"
|
||||
},
|
||||
"courses": {
|
||||
"label": "കോഴ്സുകൾ"
|
||||
},
|
||||
"degree": {
|
||||
"label": "ഡിഗ്രി"
|
||||
},
|
||||
"grade": {
|
||||
"label": "ഗ്രേഡ്"
|
||||
},
|
||||
"institution": {
|
||||
"label": "സ്ഥാപനം"
|
||||
}
|
||||
}
|
||||
},
|
||||
"location": {
|
||||
"address": {
|
||||
"label": "വിലാസം"
|
||||
},
|
||||
"city": {
|
||||
"label": "നഗരം"
|
||||
},
|
||||
"country": {
|
||||
"label": "രാജ്യം"
|
||||
},
|
||||
"heading": "സ്ഥലം",
|
||||
"postal-code": {
|
||||
"label": "തപാൽ കോഡ്"
|
||||
},
|
||||
"region": {
|
||||
"label": "പ്രദേശം"
|
||||
}
|
||||
},
|
||||
"profiles": {
|
||||
"form": {
|
||||
"network": {
|
||||
"label": "നെറ്റ്വർക്ക്"
|
||||
},
|
||||
"username": {
|
||||
"label": "ഉപയോക്തൃനാമം"
|
||||
}
|
||||
},
|
||||
"heading": "പ്രൊഫൈലുകൾ",
|
||||
"heading_one": "പ്രൊഫൈൽ"
|
||||
},
|
||||
"publications": {
|
||||
"form": {
|
||||
"publisher": {
|
||||
"label": "പ്രസാധകൻ"
|
||||
}
|
||||
}
|
||||
},
|
||||
"references": {
|
||||
"form": {
|
||||
"relationship": {
|
||||
"label": "ബന്ധം"
|
||||
}
|
||||
}
|
||||
},
|
||||
"section": {
|
||||
"heading": "വിഭാഗം"
|
||||
},
|
||||
"volunteer": {
|
||||
"form": {
|
||||
"organization": {
|
||||
"label": "സംഘടന"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"rightSidebar": {
|
||||
"sections": {
|
||||
"css": {
|
||||
"heading": "ഇഷ്ടാനുസൃത CSS"
|
||||
},
|
||||
"export": {
|
||||
"heading": "എക്സ്പോർട്ട്",
|
||||
"json": {
|
||||
"primary": "JSON",
|
||||
"secondary": "റിയാക്ടീവ് റെസ്യൂമിലേക്ക് തിരികെ ഇറക്കുമതി ചെയ്യാൻ കഴിയുന്ന നിങ്ങളുടെ റെസ്യൂമെയുടെ JSON പതിപ്പ് ഡൗൺലോഡ് ചെയ്യുക."
|
||||
},
|
||||
"pdf": {
|
||||
"loading": {
|
||||
"primary": "PDF സൃഷ്ടിക്കുന്നു",
|
||||
"secondary": "നിങ്ങളുടെ PDF ജനറേറ്റുചെയ്യുന്നത് പോലെ കാത്തിരിക്കുക, ഇതിന് 15 സെക്കൻഡ് വരെ എടുത്തേക്കാം."
|
||||
},
|
||||
"normal": {
|
||||
"primary": "PDF",
|
||||
"secondary": "നിങ്ങളുടെ സ്വപ്ന ജോലിയിലേക്ക് പ്രിന്റ് ചെയ്ത് അയയ്ക്കാൻ കഴിയുന്ന നിങ്ങളുടെ റെസ്യൂമെയുടെ PDF ഡൗൺലോഡ് ചെയ്യുക. കൂടുതൽ എഡിറ്റിംഗിനായി ഈ ഫയൽ തിരികെ ഇറക്കുമതി ചെയ്യാൻ കഴിയില്ല."
|
||||
}
|
||||
}
|
||||
},
|
||||
"layout": {
|
||||
"heading": "ലേഔട്ട്",
|
||||
"tooltip": {
|
||||
"reset-layout": "ലേഔട്ട് പുനഃസജ്ജമാക്കുക"
|
||||
}
|
||||
},
|
||||
"links": {
|
||||
"bugs-features": {
|
||||
"body": "ഒരു റെസ്യൂമെ ഉണ്ടാക്കുന്നതിൽ നിന്ന് നിങ്ങളെ എന്തെങ്കിലും തടസ്സപ്പെടുത്തുന്നുണ്ടോ? അല്ലെങ്കിൽ നിങ്ങൾക്ക് ചേർക്കാൻ അതിശയകരമായ ഒരു ആശയമുണ്ടോ? ആരംഭിക്കുന്നതിന് ഒരു ഗിറ്റ്ഹബ് ഇസ്സു ഉന്നയിക്കുക.",
|
||||
"button": "ഗിറ്റ്ഹബ് ഇസ്സുസ്",
|
||||
"heading": "ബഗുകൾ? ഫീച്ചർ അഭ്യർത്ഥനകൾ?"
|
||||
},
|
||||
"donate": {
|
||||
"body": "റിയാക്ടീവ് റെസ്യൂമെ ഉപയോഗിക്കുന്നത് നിങ്ങൾക്ക് ഇഷ്ടമാണെങ്കിൽ, പരസ്യങ്ങളില്ലാതെ എക്കാലവും സൗജന്യമായി ആപ്പ് പ്രവർത്തനക്ഷമമാക്കി നിലനിർത്തുന്നതിന് നിങ്ങളാൽ കഴിയുന്നത്ര സംഭാവന ചെയ്യുന്നത് പരിഗണിക്കുക.",
|
||||
"button": "എനിക്കൊരു കാപ്പി വാങ്ങിത്തരൂ",
|
||||
"heading": "റിയാക്ടീവ് റെസ്യൂമെയിലേക്ക് സംഭാവന നൽകുക"
|
||||
},
|
||||
"github": "സോഴ്സ് കോഡ്",
|
||||
"heading": "ലിങ്കുകൾ"
|
||||
},
|
||||
"settings": {
|
||||
"global": {
|
||||
"date": {
|
||||
"primary": "തിയതി",
|
||||
"secondary": "ആപ്പിലുടനീളം ഉപയോഗിക്കാനുള്ള തീയതി ഫോർമാറ്റ്"
|
||||
},
|
||||
"heading": "ആഗോള",
|
||||
"language": {
|
||||
"primary": "ഭാഷ",
|
||||
"secondary": "ആപ്പിലുടനീളം ഉപയോഗിക്കാനുള്ള ഭാഷ"
|
||||
},
|
||||
"theme": {
|
||||
"primary": "തീം"
|
||||
}
|
||||
},
|
||||
"heading": "ക്രമീകരണങ്ങള്",
|
||||
"page": {
|
||||
"break-line": {
|
||||
"primary": "ബ്രേക്ക് ലൈൻ",
|
||||
"secondary": "A4 പേജിന്റെ ഉയരം അടയാളപ്പെടുത്താൻ എല്ലാ പേജുകളിലും ഒരു വരി കാണിക്കുക"
|
||||
},
|
||||
"heading": "പേജ്",
|
||||
"orientation": {
|
||||
"disabled": "ഒരു പേജ് മാത്രമുള്ളപ്പോൾ ഫലമുണ്ടാകില്ല",
|
||||
"primary": "ഓറിയന്റേഷൻ",
|
||||
"secondary": "പേജുകൾ തിരശ്ചീനമായോ ലംബമായോ പ്രദർശിപ്പിക്കണമോ എന്ന്"
|
||||
}
|
||||
},
|
||||
"resume": {
|
||||
"heading": "റെസ്യൂമെ",
|
||||
"reset": {
|
||||
"primary": "എല്ലാം പുനഃസജ്ജമാക്കുക",
|
||||
"secondary": "വളരെയധികം തെറ്റുകൾ ചെയ്തോ? എല്ലാ മാറ്റങ്ങളും പുനഃസജ്ജമാക്കാനും ആദ്യം മുതൽ ആരംഭിക്കാനും ഇവിടെ ക്ലിക്ക് ചെയ്യുക. ശ്രദ്ധിക്കുക, ഈ പ്രവർത്തനം പഴയപടിയാക്കാനാകില്ല."
|
||||
},
|
||||
"sample": {
|
||||
"primary": "സാമ്പിൾ ഡാറ്റ ലോഡ് ചെയ്യുക",
|
||||
"secondary": "എവിടെ തുടങ്ങണമെന്ന് ഉറപ്പില്ലേ? ഒരു സമ്പൂർണ്ണ റെസ്യൂമെ എങ്ങനെയുണ്ടെന്ന് കാണുന്നതിന് കുറച്ച് സാമ്പിൾ ഡാറ്റ ലോഡ് ചെയ്യാൻ ഇവിടെ ക്ലിക്ക് ചെയ്യുക."
|
||||
}
|
||||
}
|
||||
},
|
||||
"sharing": {
|
||||
"heading": "ഷെയർ",
|
||||
"short-url": {
|
||||
"label": "ഹ്രസ്വ URL തിരഞ്ഞെടുക്കുക"
|
||||
},
|
||||
"visibility": {
|
||||
"subtitle": "നിങ്ങളുടെ റെസ്യൂമെ കാണാൻ ലിങ്കുള്ള ആരെയും അനുവദിക്കുക",
|
||||
"title": "പൊതുവായത്"
|
||||
}
|
||||
},
|
||||
"templates": {
|
||||
"heading": "ടെംപ്ലേറ്റുകൾ"
|
||||
},
|
||||
"theme": {
|
||||
"form": {
|
||||
"background": {
|
||||
"label": "പശ്ചാത്തലം"
|
||||
},
|
||||
"primary": {
|
||||
"label": "പ്രാഥമികം"
|
||||
},
|
||||
"text": {
|
||||
"label": "ടെക്സ്റ്റ്"
|
||||
}
|
||||
},
|
||||
"heading": "തീം"
|
||||
},
|
||||
"typography": {
|
||||
"form": {
|
||||
"font-family": {
|
||||
"label": "ഫോണ്ട് ഫാമിലി"
|
||||
},
|
||||
"font-size": {
|
||||
"label": "അക്ഷര വലിപ്പം"
|
||||
}
|
||||
},
|
||||
"heading": "ടൈപ്പോഗ്രാഫി",
|
||||
"widgets": {
|
||||
"body": {
|
||||
"label": "ബോഡി"
|
||||
},
|
||||
"headings": {
|
||||
"label": "തലക്കെട്ടുകൾ"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
32
client/public/locales/ml/common.json
Normal file
32
client/public/locales/ml/common.json
Normal file
@ -0,0 +1,32 @@
|
||||
{
|
||||
"avatar": {
|
||||
"menu": {
|
||||
"greeting": "ഹലോ",
|
||||
"logout": "പുറത്തുകടക്കുക"
|
||||
}
|
||||
},
|
||||
"footer": {
|
||||
"credit": "<1>അമൃത് പിള്ളയുടെ</1> ഒരു പാഷൻ പ്രോജക്റ്റ്",
|
||||
"language": {
|
||||
"missing": "നിങ്ങളുടെ ഭാഷ കാണുന്നില്ലേ?"
|
||||
},
|
||||
"license": "സമൂഹത്താൽ, സമൂഹത്തിന് വേണ്ടി."
|
||||
},
|
||||
"markdown": {
|
||||
"help-text": "ഈ വിഭാഗം <1>മാർക്ക്ഡൗൺ</1> ഫോർമാറ്റിംഗ് പിന്തുണയ്ക്കുന്നു."
|
||||
},
|
||||
"date": {
|
||||
"present": "ഇപ്പോൾ"
|
||||
},
|
||||
"subtitle": "ഒരു സൗജന്യ ഓപ്പൺ സോഴ്സ് റെസ്യൂം ബിൽഡർ.",
|
||||
"title": "റിയാക്ടീവ് റെസ്യുമെ",
|
||||
"toast": {
|
||||
"error": {
|
||||
"upload-file-size": "2 മെഗാബൈറ്റിൽ താഴെയുള്ള ഫയലുകൾ മാത്രം അപ്ലോഡ് ചെയ്യുക.",
|
||||
"upload-photo-size": "2 മെഗാബൈറ്റിൽ താഴെയുള്ള ഫോട്ടോകൾ മാത്രം അപ്ലോഡ് ചെയ്യുക."
|
||||
},
|
||||
"success": {
|
||||
"resume-link-copied": "നിങ്ങളുടെ റെസ്യൂമെയിലേക്കുള്ള ഒരു ലിങ്ക് നിങ്ങളുടെ ക്ലിപ്പ്ബോർഡിലേക്ക് പകർത്തി."
|
||||
}
|
||||
}
|
||||
}
|
||||
25
client/public/locales/ml/dashboard.json
Normal file
25
client/public/locales/ml/dashboard.json
Normal file
@ -0,0 +1,25 @@
|
||||
{
|
||||
"create-resume": {
|
||||
"subtitle": "ആദ്യം മുതൽ ആരംഭിക്കുക",
|
||||
"title": "പുതിയ റെസ്യുമെ ഉണ്ടാക്കുക"
|
||||
},
|
||||
"import-external": {
|
||||
"subtitle": "LinkedIn, JSON റെസ്യൂമെ, റിയാക്ടീവ് റെസ്യൂമെ",
|
||||
"title": "ബാഹ്യ ഉറവിടങ്ങളിൽ നിന്ന് ഇറക്കുമതി ചെയ്യുക"
|
||||
},
|
||||
"resume": {
|
||||
"menu": {
|
||||
"delete": "ഡിലീറ്റ്",
|
||||
"duplicate": "ഡ്യൂപ്ലിക്കേറ്റ്",
|
||||
"open": "തുറക്കുക",
|
||||
"rename": "പേര് മാറ്റുക",
|
||||
"share-link": "ലിങ്ക് ഷെയർ ചെയ്യൂ",
|
||||
"tooltips": {
|
||||
"delete": "ഈ റെസ്യൂമെ ഇല്ലാതാക്കണമെന്ന് തീർച്ചയാണോ? ഇത് മാറ്റാനാവാത്ത നടപടിയാണ്.",
|
||||
"share-link": "മറ്റുള്ളവർക്ക് ദൃശ്യമാക്കാൻ നിങ്ങളുടെ റെസ്യൂമെയുടെ ദൃശ്യപരത പൊതുവായി മാറ്റേണ്ടതുണ്ട്."
|
||||
}
|
||||
},
|
||||
"timestamp": "അവസാനം അപ്ഡേറ്റ് ചെയ്തത് {{timestamp}} മുമ്പ്"
|
||||
},
|
||||
"title": "ഡാഷ്ബോർഡ്"
|
||||
}
|
||||
41
client/public/locales/ml/landing.json
Normal file
41
client/public/locales/ml/landing.json
Normal file
@ -0,0 +1,41 @@
|
||||
{
|
||||
"actions": {
|
||||
"app": "ആപ്പിലേക്ക് പോകുക",
|
||||
"login": "ലോഗിൻ",
|
||||
"logout": "പുറത്തുകടക്കുക",
|
||||
"register": "രജിസ്റ്റർ ചെയ്യുക"
|
||||
},
|
||||
"features": {
|
||||
"heading": "സവിശേഷതകൾ",
|
||||
"list": {
|
||||
"ads": "പരസ്യം ഇല്ല",
|
||||
"export": "നിങ്ങളുടെ റെസ്യൂമെ JSON അല്ലെങ്കിൽ PDF ഫോർമാറ്റിലേക്ക് കയറ്റുമതി ചെയ്യുക",
|
||||
"free": "എന്നേക്കും സൗജന്യം",
|
||||
"import": "LinkedIn, JSON റെസ്യൂമെ എന്നിവയിൽ നിന്ന് ഡാറ്റ ഇറക്കുമതി ചെയ്യുക",
|
||||
"languages": "ഒന്നിലധികം ഭാഷകളിൽ ആക്സസ് ചെയ്യാവുന്നതാണ്",
|
||||
"more": "കൂടാതെ കൂടുതൽ ആവേശകരമായ ഫീച്ചറുകൾ, <1>എല്ലാം ഇവിടെ വായിക്കുക</1>",
|
||||
"tracking": "ഉപയോക്തൃ ട്രാക്കിംഗ് ഇല്ല"
|
||||
}
|
||||
},
|
||||
"links": {
|
||||
"heading": "ലിങ്കുകൾ",
|
||||
"links": {
|
||||
"donate": "സംഭാവന നൽകുക",
|
||||
"github": "സോഴ്സ് കോഡ്",
|
||||
"privacy": "സ്വകാര്യതാ നയം",
|
||||
"service": "സേവന നിബന്ധനകൾ"
|
||||
}
|
||||
},
|
||||
"screenshots": {
|
||||
"heading": "സ്ക്രീൻഷോട്ടുകൾ"
|
||||
},
|
||||
"testimonials": {
|
||||
"heading": "സാക്ഷ്യപത്രങ്ങൾ",
|
||||
"body": "നല്ലതോ ചീത്തയോ, റിയാക്ടീവ് റെസ്യൂമിനെക്കുറിച്ചുള്ള നിങ്ങളുടെ അഭിപ്രായവും നിങ്ങൾക്ക് അനുഭവം എങ്ങനെയായിരുന്നു എന്നതും കേൾക്കാൻ ഞാൻ ആഗ്രഹിക്കുന്നു.<br/>ലോകമെമ്പാടുമുള്ള ഉപയോക്താക്കൾ അയച്ച ചില സന്ദേശങ്ങൾ ഇതാ.",
|
||||
"contact": "നിങ്ങൾക്ക് <1>എന്റെ ഇമെയിൽ</1> വഴിയോ <3>എന്റെ വെബ്സൈറ്റിലെ</3> കോൺടാക്റ്റ് ഫോം വഴിയോ എന്നെ ബന്ധപ്പെടാം."
|
||||
},
|
||||
"summary": {
|
||||
"body": "1, 2, 3 എന്നിവ പോലെ നിങ്ങളുടെ റെസ്യൂമെ സൃഷ്ടിക്കാനും അപ്ഡേറ്റ് ചെയ്യാനും പങ്കിടാനുമുള്ള ലൗകിക ജോലികൾ എളുപ്പമാക്കുന്നതിന് നിർമ്മിച്ച ഒരു സൗജന്യമായ ഓപ്പൺ സോഴ്സ് റെസ്യൂമെ ബിൽഡറാണ് റിയാക്ടീവ് റെസ്യൂമെ. ഈ ആപ്പ് ഉപയോഗിച്ച്, നിങ്ങൾക്ക് ഒന്നിലധികം റെസ്യൂമെകൾ സൃഷ്ടിക്കാനും റിക്രൂട്ടർമാരുമായോ സുഹൃത്തുക്കളുമായോ പങ്കിടാനും കഴിയും. നിങ്ങളുടെ ഡാറ്റയുടെ സമഗ്രതയും സ്വകാര്യതയും നഷ്ടപ്പെടാതെ, ഒരു അദ്വിതീയ ലിങ്കിലൂടെ അത് ഒരു PDF ആയി പ്രിന്റ് ചെയ്യുക, എല്ലാം സൗജന്യമായി, പരസ്യങ്ങളൊന്നുമില്ല, ട്രാക്കിംഗില്ല.",
|
||||
"heading": "സംഗ്രഹം"
|
||||
}
|
||||
}
|
||||
136
client/public/locales/ml/modals.json
Normal file
136
client/public/locales/ml/modals.json
Normal file
@ -0,0 +1,136 @@
|
||||
{
|
||||
"auth": {
|
||||
"forgot-password": {
|
||||
"actions": {
|
||||
"send-email": "പാസ്വേഡ് പുനഃസജ്ജമാക്കാൻ ഇമെയിൽ അയയ്ക്കുക"
|
||||
},
|
||||
"body": "നിങ്ങൾ വീണ്ടെടുക്കാൻ ആഗ്രഹിക്കുന്ന അക്കൗണ്ടുമായി ബന്ധപ്പെട്ട ഇമെയിൽ വിലാസം നൽകുക.",
|
||||
"form": {
|
||||
"email": {
|
||||
"label": "ഇമെയിൽ വിലാസം"
|
||||
}
|
||||
},
|
||||
"heading": "നിങ്ങളുടെ പാസ്സ്വേർഡ് മറന്നോ?",
|
||||
"help-text": "അക്കൗണ്ട് നിലവിലുണ്ടെങ്കിൽ, നിങ്ങളുടെ പാസ്വേഡ് പുനഃസജ്ജമാക്കുന്നതിനുള്ള ലിങ്കുള്ള ഒരു ഇമെയിൽ നിങ്ങൾക്ക് ലഭിക്കും."
|
||||
},
|
||||
"login": {
|
||||
"actions": {
|
||||
"login": "ലോഗിൻ",
|
||||
"google": "Google ഉപയോഗിച്ച് ലോഗിൻ ചെയ്യുക"
|
||||
},
|
||||
"body": "ലോഗിൻ ചെയ്യാനും ആക്സസ് ചെയ്യാനും നിങ്ങളുടെ റെസ്യൂമെകൾ നിയന്ത്രിക്കാനും പങ്കിടാനും നിങ്ങളുടെ അക്കൗണ്ടുമായി ബന്ധപ്പെട്ട ഉപയോക്തൃനാമവും പാസ്വേഡും നൽകുക.",
|
||||
"form": {
|
||||
"password": {
|
||||
"label": "പാസ്സ്വേർഡ്"
|
||||
},
|
||||
"username": {
|
||||
"help-text": "നിങ്ങളുടെ ഇമെയിൽ വിലാസവും നൽകാം",
|
||||
"label": "ഉപയോക്തൃനാമം"
|
||||
}
|
||||
},
|
||||
"heading": "നിങ്ങളുടെ അക്കൗണ്ടിൽ ലോഗിൻ ചെയ്യുക",
|
||||
"recover-text": "നിങ്ങൾ പാസ്വേഡ് മറന്നുപോയെങ്കിൽ, നിങ്ങൾക്ക് ഇവിടെ <1>നിങ്ങളുടെ അക്കൗണ്ട് വീണ്ടെടുക്കാം</1>.",
|
||||
"register-text": "നിങ്ങൾക്ക് ഒന്നുമില്ലെങ്കിൽ, നിങ്ങൾക്ക് ഇവിടെ <1>ഒരു അക്കൗണ്ട് സൃഷ്ടിക്കാം</1>."
|
||||
},
|
||||
"register": {
|
||||
"actions": {
|
||||
"register": "രജിസ്റ്റർ ചെയ്യുക",
|
||||
"google": "Google വഴി രജിസ്റ്റർ ചെയ്യുക"
|
||||
},
|
||||
"body": "ഒരു അക്കൗണ്ട് സൃഷ്ടിക്കാൻ നിങ്ങളുടെ സ്വകാര്യ വിവരങ്ങൾ നൽകുക.",
|
||||
"form": {
|
||||
"confirm-password": {
|
||||
"label": "പാസ്വേഡ് സ്ഥിരീകരിക്കുക"
|
||||
},
|
||||
"email": {
|
||||
"label": "ഇമെയിൽ വിലാസം"
|
||||
},
|
||||
"name": {
|
||||
"label": "പൂർണ്ണമായ പേര്"
|
||||
},
|
||||
"password": {
|
||||
"label": "പാസ്സ്വേർഡ്"
|
||||
},
|
||||
"username": {
|
||||
"label": "ഉപയോക്തൃനാമം"
|
||||
}
|
||||
},
|
||||
"heading": "ഒരു അക്കൗണ്ട് തുടങ്ങുക",
|
||||
"loginText": "നിങ്ങൾക്ക് ഇതിനകം ഒരു അക്കൗണ്ട് ഉണ്ടെങ്കിൽ, നിങ്ങൾക്ക് ഇവിടെ <1>ലോഗിൻ ചെയ്യാം</1>."
|
||||
},
|
||||
"reset-password": {
|
||||
"actions": {
|
||||
"set-password": "ഒരു പുതിയ പാസ്വേഡ് ക്രമീകരിക്കുക"
|
||||
},
|
||||
"body": "നിങ്ങളുടെ അക്കൗണ്ടിനായി ഒരു പുതിയ പാസ്വേഡ് നൽകുക.",
|
||||
"form": {
|
||||
"confirm-password": {
|
||||
"label": "പാസ്വേഡ് സ്ഥിരീകരിക്കുക"
|
||||
},
|
||||
"password": {
|
||||
"label": "പാസ്സ്വേർഡ്"
|
||||
}
|
||||
},
|
||||
"heading": "പാസ്വേഡ് പുനക്രമീകരിക്കുക"
|
||||
}
|
||||
},
|
||||
"dashboard": {
|
||||
"create-resume": {
|
||||
"actions": {
|
||||
"create-resume": "പുതിയ റെസ്യുമെ ഉണ്ടാക്കുക"
|
||||
},
|
||||
"body": "ഒരു പേര് നൽകി നിങ്ങളുടെ റെസ്യൂമെ നിർമ്മിക്കാൻ ആരംഭിക്കുക. ഇത് നിങ്ങൾ അപേക്ഷിക്കുന്ന റോളിനെയോ നിങ്ങളുടെ പ്രിയപ്പെട്ട ലഘുഭക്ഷണത്തെയോ സൂചിപ്പിക്കാം.",
|
||||
"form": {
|
||||
"name": {
|
||||
"label": "പേര്"
|
||||
},
|
||||
"public": {
|
||||
"label": "എല്ലാവർക്കും പ്രവേശനം സാധ്യമാണോ?"
|
||||
},
|
||||
"slug": {
|
||||
"label": "സ്ലഗ്"
|
||||
}
|
||||
},
|
||||
"heading": "പുതിയ റെസ്യുമെ ഉണ്ടാക്കുക"
|
||||
},
|
||||
"import-external": {
|
||||
"heading": "ബാഹ്യ ഉറവിടങ്ങളിൽ നിന്ന് ഇറക്കുമതി ചെയ്യുക",
|
||||
"json-resume": {
|
||||
"actions": {
|
||||
"upload-json": "JSON അപ്ലോഡ് ചെയ്യുക"
|
||||
},
|
||||
"body": "നിങ്ങൾക്ക് ഒരു <1>സാധുതയുള്ള JSON റെസ്യൂമെ</1> ഉണ്ടെങ്കിൽ, റിയാക്ടീവ് റെസ്യൂമിൽ നിങ്ങളുടെ വികസനം വേഗത്തിൽ ട്രാക്ക് ചെയ്യാൻ നിങ്ങൾക്ക് ഇത് ഉപയോഗിക്കാം. ആരംഭിക്കുന്നതിന് താഴെയുള്ള ബട്ടണിൽ ക്ലിക്ക് ചെയ്ത് സാധുവായ ഒരു JSON ഫയൽ അപ്ലോഡ് ചെയ്യുക.",
|
||||
"heading": "JSON റെസ്യൂമെയിൽ നിന്ന് ഇറക്കുമതി ചെയ്യുക"
|
||||
},
|
||||
"linkedin": {
|
||||
"actions": {
|
||||
"upload-archive": "ZIP ആർക്കൈവ് അപ്ലോഡ് ചെയ്യുക"
|
||||
},
|
||||
"body": "ലിങ്ക്ഡ്ഇനിൽ നിന്ന് നിങ്ങളുടെ ഡാറ്റ എക്സ്പോർട്ടുചെയ്ത് റിയാക്ടീവ് റെസ്യൂമെയിലെ ഫീൽഡുകൾ സ്വയമേവ പൂരിപ്പിക്കുന്നതിന് അത് ഉപയോഗിച്ച് നിങ്ങൾക്ക് സമയം ലാഭിക്കാം. LinkedIn-ലെ <1>ഡാറ്റ സ്വകാര്യത</1> വിഭാഗത്തിലേക്ക് പോയി നിങ്ങളുടെ ഡാറ്റയുടെ ആർക്കൈവ് അഭ്യർത്ഥിക്കുക. അത് ലഭ്യമായിക്കഴിഞ്ഞാൽ, താഴെയുള്ള ZIP ഫയൽ അപ്ലോഡ് ചെയ്യുക.",
|
||||
"heading": "LinkedIn-ൽ നിന്ന് ഇറക്കുമതി ചെയ്യുക"
|
||||
},
|
||||
"reactive-resume": {
|
||||
"actions": {
|
||||
"upload-json": "JSON അപ്ലോഡ് ചെയ്യുക",
|
||||
"upload-json-v2": "V2-ൽ നിന്ന് JSON അപ്ലോഡ് ചെയ്യുക"
|
||||
},
|
||||
"body": "റിയാക്ടീവ് റെസ്യൂമെയുടെ നിലവിലെ പതിപ്പിനൊപ്പം എക്സ്പോർട്ട് ചെയ്ത ഒരു JSON നിങ്ങളുടെ പക്കലുണ്ടെങ്കിൽ, എഡിറ്റ് ചെയ്യാവുന്ന ഒരു പതിപ്പ് വീണ്ടും ലഭിക്കാൻ നിങ്ങൾക്കത് ഇവിടെ തിരികെ ഇറക്കുമതി ചെയ്യാം.",
|
||||
"heading": "റിയാക്ടീവ് റെസ്യൂമെയിൽ നിന്ന് ഇറക്കുമതി ചെയ്യുക"
|
||||
}
|
||||
},
|
||||
"rename-resume": {
|
||||
"actions": {
|
||||
"rename-resume": "റെസ്യൂമെ പുനർനാമകരണം ചെയ്യുക"
|
||||
},
|
||||
"form": {
|
||||
"name": {
|
||||
"label": "പേര്"
|
||||
},
|
||||
"slug": {
|
||||
"label": "സ്ലഗ്"
|
||||
}
|
||||
},
|
||||
"heading": "നിങ്ങളുടെ റെസ്യൂമെ പുനർനാമകരണം ചെയ്യുക"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -20,6 +20,7 @@ const DateWrapper: React.FC = ({ children }) => {
|
||||
require('dayjs/locale/hi');
|
||||
require('dayjs/locale/it');
|
||||
require('dayjs/locale/kn');
|
||||
require('dayjs/locale/ml');
|
||||
require('dayjs/locale/pl');
|
||||
require('dayjs/locale/ta');
|
||||
require('dayjs/locale/tr');
|
||||
|
||||
@ -54,6 +54,7 @@ You have complete control over what goes into your resume, how it looks, what co
|
||||
- Hindi (हिन्दी)
|
||||
- Italian (Italiano)
|
||||
- Kannada (ಕನ್ನಡ)
|
||||
- Malayalam (മലയാളം)
|
||||
- Polish (Polski)
|
||||
- Spanish (Español)
|
||||
- Tamil (தமிழ்)
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "reactive-resume",
|
||||
"version": "3.2.6",
|
||||
"version": "3.2.7",
|
||||
"private": true,
|
||||
"workspaces": [
|
||||
"schema",
|
||||
|
||||
Reference in New Issue
Block a user