Compare commits

..

62 Commits

Author SHA1 Message Date
884975dda6 chore(release): 3.2.9 2022-03-21 08:58:19 +01:00
03cbf22c9b feat(i18n): add nl and ru i18n locales to app 2022-03-21 08:57:47 +01:00
a10cee2efa Merge pull request #740 from AmruthPillai/i18n_main
New Crowdin updates
2022-03-21 08:32:28 +01:00
479c94a11d Merge pull request #746 from GovindKrishnan/main
Cleaned Issue Templates Using Comments
2022-03-21 08:32:18 +01:00
c057f31e97 Merge pull request #750 from chandiwalaaadhar/fix/work-experience-website-link-redirects-404
Fixed URL 404 issue in Profile Section URL
2022-03-21 08:32:08 +01:00
d0bc9db6e5 Fixed issue in Profile Section URL 2022-03-21 06:14:22 +05:30
e2dd8dd1d7 Commenting Out Help Lines [FR Template]
To avoid clutter & increase readability of issues, I suggest commenting out the extra help tips so that they don't appear in the actual report.
2022-03-20 05:48:54 +05:30
f2ff12faa6 Commenting Out Help Lines [Bug Template]
To avoid clutter & increase readability of issues, I suggest commenting out the extra help tips so that they don't appear in the actual report.
2022-03-20 05:45:58 +05:30
50cc3d7da8 New translations modals.json (Russian) 2022-03-19 11:32:35 +01:00
60b1f7a816 New translations dashboard.json (Russian) 2022-03-19 11:32:31 +01:00
33d2bf043b New translations landing.json (Russian) 2022-03-19 10:16:47 +01:00
86b20dcae6 New translations builder.json (Russian) 2022-03-19 10:16:42 +01:00
caf4936c9b New translations dashboard.json (Russian) 2022-03-19 10:16:40 +01:00
7e864d2447 New translations common.json (Russian) 2022-03-19 10:16:38 +01:00
ff324688f6 Merge pull request #742 from GovindKrishnan/main
Linking Badges to Releases & License
2022-03-19 09:29:45 +01:00
efaeb1b341 Linking Badges to Releases & License (DOCS)
Linked the Version badge to Releases and License badge to MIT License.
2022-03-19 09:03:23 +05:30
488cb7f8a2 Linking Badges to Releases & License (README)
Linked the Version badge to Releases and License badge to MIT License.
2022-03-19 08:59:56 +05:30
974fa08651 New translations builder.json (Dutch) 2022-03-18 21:46:54 +01:00
8f3312e8a8 New translations landing.json (Dutch) 2022-03-18 20:46:24 +01:00
57d5da0490 New translations modals.json (Dutch) 2022-03-18 20:46:21 +01:00
daeb67319e New translations dashboard.json (Dutch) 2022-03-18 20:46:18 +01:00
213665bd1d New translations common.json (Dutch) 2022-03-18 20:46:16 +01:00
dfc48d6aa9 Merge pull request #738 from martadinata666/docusaurus-port-server
Update docusaurus to prevent crash with client
2022-03-18 19:38:40 +01:00
d71d40453f Update package.json 2022-03-18 23:23:30 +07:00
635afbc892 Merge pull request #737 from GovindKrishnan/main
Removed Self Referring Link in Docs
2022-03-18 16:47:30 +01:00
e90037e363 Removed Self Referring Link in Docs
Instead, linked to the GitHub Repo so that they can check out this repo.

If you got some other important link, feel free to change.
2022-03-18 20:07:57 +05:30
a730359736 chore(release): 3.2.8 2022-03-18 11:18:10 +01:00
80acfe97c7 fix(disable_user_signups): hide create account link under flag 2022-03-18 11:17:30 +01:00
b6267d07ba feat(flags): introduce flags, disable_user_signups
fix #698
2022-03-18 11:12:26 +01:00
910f764823 Merge pull request #735 from AmruthPillai/i18n_main
New Crowdin updates
2022-03-18 10:56:08 +01:00
7a8f302c21 New translations common.json (Malayalam) 2022-03-18 10:55:35 +01:00
fb0c3b55c1 New translations common.json (Hindi) 2022-03-18 10:55:15 +01:00
f9579855a9 New translations common.json (Bengali) 2022-03-18 10:55:14 +01:00
0dd1e2720a New translations common.json (Vietnamese) 2022-03-18 10:55:14 +01:00
331d2d3d26 New translations common.json (Chinese Simplified) 2022-03-18 10:55:13 +01:00
f56554c2d4 New translations common.json (Turkish) 2022-03-18 10:55:11 +01:00
98131b389c New translations common.json (Portuguese) 2022-03-18 10:55:10 +01:00
7cfe6288e1 New translations common.json (Polish) 2022-03-18 10:55:09 +01:00
84041ef2ff New translations common.json (Italian) 2022-03-18 10:55:07 +01:00
9a2af8079e New translations common.json (German) 2022-03-18 10:54:55 +01:00
633162d9af New translations common.json (Danish) 2022-03-18 10:54:54 +01:00
50baa0227d New translations common.json (Kannada) 2022-03-18 10:54:44 +01:00
18da00f2e2 New translations common.json (Tamil) 2022-03-18 10:54:41 +01:00
f4f0b2c4b5 New translations common.json (Arabic) 2022-03-18 10:54:38 +01:00
b7d3007d31 New translations common.json (Spanish) 2022-03-18 10:54:37 +01:00
67384981c1 New translations common.json (French) 2022-03-18 10:54:36 +01:00
4390bccfb9 feat(i18n): add Vietnamese language to i18n locales 2022-03-18 10:52:06 +01:00
8f5632c5ad feat(client/theme): add theme switcher to landing page 2022-03-18 10:20:39 +01:00
1facd2ad11 fix(client/create-rename-slug): fix slug accepting apostrophes and other special characters
fix #706
2022-03-18 09:37:09 +01:00
0e1e2bbe4e chore(release): 3.2.7 2022-03-18 09:29:54 +01:00
3a2e62be4c feat(i18n): add Malayalam (മലയാളം) language to i18n locales 2022-03-18 09:27:04 +01:00
697ceef8f2 Merge branch 'main' of github.com:AmruthPillai/Reactive-Resume 2022-03-18 09:25:13 +01:00
c8e81a456d Merge pull request #731 from AmruthPillai/i18n_main
New Crowdin updates
2022-03-18 09:25:09 +01:00
2b334e5c5a Merge pull request #727 from chandiwalaaadhar/fix/crash-on-pasting-hex-without-#-prefix
Fix-Crash on Entering Primary Color Hex Code without # Prefix
2022-03-18 09:24:54 +01:00
90321e1284 fix(printer/i18n): fix dates not showing up in resume language when printing
fix #729
2022-03-18 09:24:33 +01:00
9bcddb4b5c New translations modals.json (Malayalam) 2022-03-18 02:48:34 +01:00
72fdc05f69 New translations landing.json (Malayalam) 2022-03-18 02:48:33 +01:00
e1d6540500 New translations dashboard.json (Malayalam) 2022-03-18 02:48:32 +01:00
4b17719c69 New translations common.json (Malayalam) 2022-03-18 02:48:31 +01:00
da056307dd New translations builder.json (Malayalam) 2022-03-18 02:48:29 +01:00
e4950728d8 Refactored- Avoiding modifying the prop 2022-03-18 06:18:17 +05:30
dac4e862b8 Fix-Crash on Entering Primary Color Hex Code without # Prefix 2022-03-17 19:42:26 +05:30
58 changed files with 1939 additions and 130 deletions

View File

@ -27,4 +27,7 @@ GOOGLE_API_KEY=
SENDGRID_API_KEY=
SENDGRID_FORGOT_PASSWORD_TEMPLATE_ID=
SENDGRID_FROM_NAME=
SENDGRID_FROM_EMAIL=
SENDGRID_FROM_EMAIL=
# Flags (Optional)
PUBLIC_FLAG_DISABLE_SIGNUPS=false

View File

@ -8,29 +8,29 @@ assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is.
<!-- A clear and concise description of what the bug is. -->
**Product Flavor**
- [ ] Managed (https://rxresu.me)
- [ ] Self Hosted
**To Reproduce**
Steps to reproduce the behavior:
<!-- Steps to reproduce the behavior: -->
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
<!-- A clear and concise description of what you expected to happen. -->
**Screenshots**
If applicable, add screenshots to help explain your problem.
<!-- If applicable, add screenshots to help explain your problem. -->
**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]
- OS: <!--[e.g. iOS]-->
- Browser <!--[e.g. chrome, safari]-->
- Version <!--[e.g. 22]-->
**Additional context**
Add any other context about the problem here.
<!-- Add any other context about the problem here. -->

View File

@ -8,13 +8,13 @@ assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
<!-- A clear and concise description of what you want to happen. -->
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
<!-- A clear and concise description of any alternative solutions or features you've considered. -->
**Additional context**
Add any other context or screenshots about the feature request here.
<!-- Add any other context or screenshots about the feature request here. -->

View File

@ -2,6 +2,40 @@
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.9](https://github.com/AmruthPillai/Reactive-Resume/compare/v3.2.8...v3.2.9) (2022-03-21)
### Features
* **i18n:** add nl and ru i18n locales to app ([03cbf22](https://github.com/AmruthPillai/Reactive-Resume/commit/03cbf22c9bee96cac8f228830b67b44529b7ecee))
### [3.2.8](https://github.com/AmruthPillai/Reactive-Resume/compare/v3.2.7...v3.2.8) (2022-03-18)
### Features
* **client/theme:** add theme switcher to landing page ([8f5632c](https://github.com/AmruthPillai/Reactive-Resume/commit/8f5632c5ad0bc8a4b3028c2806365717fedd78c9))
* **flags:** introduce flags, disable_user_signups ([b6267d0](https://github.com/AmruthPillai/Reactive-Resume/commit/b6267d07ba2dcaed0da3946d136a0a9a01c441d5)), closes [#698](https://github.com/AmruthPillai/Reactive-Resume/issues/698)
* **i18n:** add Vietnamese language to i18n locales ([4390bcc](https://github.com/AmruthPillai/Reactive-Resume/commit/4390bccfb9764f2d2730ec3a124b7befb6792e9a))
### Bug Fixes
* **client/create-rename-slug:** fix slug accepting apostrophes and other special characters ([1facd2a](https://github.com/AmruthPillai/Reactive-Resume/commit/1facd2ad111cd9d990c808b3956d3915e8711acd)), closes [#706](https://github.com/AmruthPillai/Reactive-Resume/issues/706)
* **disable_user_signups:** hide create account link under flag ([80acfe9](https://github.com/AmruthPillai/Reactive-Resume/commit/80acfe97c74bfa05b719285b19144144f3f7c5ba))
### [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)

View File

@ -2,8 +2,8 @@
# Reactive Resume
![Project Version](https://img.shields.io/github/package-json/v/AmruthPillai/Reactive-Resume?style=flat-square)
![Project License](https://img.shields.io/github/license/AmruthPillai/Reactive-Resume?style=flat-square)
[![Project Version](https://img.shields.io/github/package-json/v/AmruthPillai/Reactive-Resume?style=flat-square)](https://github.com/AmruthPillai/Reactive-Resume/releases)
[![Project License](https://img.shields.io/github/license/AmruthPillai/Reactive-Resume?style=flat-square)](https://github.com/AmruthPillai/Reactive-Resume/blob/main/LICENSE)
[![Crowdin](https://badges.crowdin.net/reactive-resume/localized.svg)](https://translate.rxresu.me)
[![Docker Pulls](https://img.shields.io/docker/pulls/amruthpillai/reactive-resume?style=flat-square)](https://hub.docker.com/r/amruthpillai/reactive-resume)
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FAmruthPillai%2FReactive-Resume.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2FAmruthPillai%2FReactive-Resume?ref=badge_shield)
@ -40,16 +40,20 @@ You have complete control over what goes into your resume, how it looks, what co
- Bengali (বাংলা)
- Chinese (中文)
- Danish (Dansk)
- Dutch (Nederlands)
- English
- French (Français)
- German (Deutsch)
- Hindi (हिन्दी)
- Italian (Italiano)
- Kannada (ಕನ್ನಡ)
- Malayalam (മലയാളം)
- Polish (Polski)
- Russian (русский)
- Spanish (Español)
- Tamil (தமிழ்)
- Turkish (Türkçe)
- Vietnamese (Tiếng Việt)
Help by [translating Reactive Resume](https://translate.rxresu.me) to your language!

View File

@ -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 (

View File

@ -1,70 +1,51 @@
import { Language } from '@mui/icons-material';
import { IconButton, Popover } from '@mui/material';
import { IconButton, Menu, MenuItem } from '@mui/material';
import { useRouter } from 'next/router';
import { useTranslation } from 'next-i18next';
import { MouseEvent, useState } from 'react';
import { languages } from '@/config/languages';
import { useAppDispatch } from '@/store/hooks';
import { setResumeState } from '@/store/resume/resumeSlice';
import styles from './LanguageSwitcher.module.scss';
import { TRANSLATE_URL } from '@/constants/index';
const LanguageSwitcher = () => {
const router = useRouter();
const { t } = useTranslation();
const dispatch = useAppDispatch();
const [anchorEl, setAnchorEl] = useState<HTMLButtonElement | null>(null);
const handleClick = (event: MouseEvent<HTMLButtonElement>) => setAnchorEl(event.currentTarget);
const handleClose = () => setAnchorEl(null);
const handleChangeLanguage = (locale: string) => {
const handleChange = (locale: string) => {
const { pathname, asPath, query } = router;
handleClose();
document.cookie = `NEXT_LOCALE=${locale}; path=/; expires=2147483647`;
dispatch(setResumeState({ path: 'metadata.locale', value: locale }));
router.push({ pathname, query }, asPath, { locale });
};
const handleAddLanguage = () => window.open(TRANSLATE_URL, '_blank');
return (
<div>
<IconButton onClick={handleClick}>
<Language />
</IconButton>
<Popover
anchorEl={anchorEl}
open={Boolean(anchorEl)}
onClose={handleClose}
anchorOrigin={{
vertical: 'top',
horizontal: 'right',
}}
transformOrigin={{
vertical: 'bottom',
horizontal: 'right',
}}
>
<div className={styles.popover}>
<div className={styles.container}>
{languages.map(({ code, name, localName }) => (
<p key={code} className={styles.language} onClick={() => handleChangeLanguage(code)}>
{name} {localName && `(${localName})`}
</p>
))}
<Menu anchorEl={anchorEl} open={Boolean(anchorEl)} onClose={handleClose}>
{languages.map(({ code, name, localName }) => (
<MenuItem key={code} onClick={() => handleChange(code)}>
{name} {localName && `(${localName})`}
</MenuItem>
))}
<a href="https://translate.rxresu.me" target="_blank" rel="noreferrer" className={styles.language}>
{t('common.footer.language.missing')}
</a>
</div>
</div>
</Popover>
<MenuItem>
<span className="font-bold" onClick={handleAddLanguage}>
Add your language
</span>
</MenuItem>
</Menu>
</div>
);
};

View File

@ -15,9 +15,13 @@ 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: 'nl', name: 'Dutch', localName: 'Nederlands' },
{ code: 'pl', name: 'Polish', localName: 'Polski' },
{ code: 'ru', name: 'Russian', localName: 'русский' },
{ code: 'ta', name: 'Tamil', localName: 'தமிழ்' },
{ code: 'tr', name: 'Turkish', localName: 'Türkçe' },
{ code: 'vi', name: 'Vietnamese', localName: 'Tiếng Việt' },
{ code: 'zh', name: 'Chinese', localName: '中文' },
].sort((a, b) => a.name.localeCompare(b.name));

View File

@ -0,0 +1,3 @@
import env from '@beam-australia/react-env';
export const FLAG_DISABLE_SIGNUPS = env('FLAG_DISABLE_SIGNUPS') === 'true';

View File

@ -10,6 +10,8 @@ export const FILENAME_TIMESTAMP = 'DDMMYYYYHHmmss';
// Links
export const DONATION_URL = 'https://paypal.me/RajaRajanA';
export const TRANSLATE_URL = 'https://translate.rxresu.me/';
export const DIGITALOCEAN_URL = 'https://pillai.xyz/digitalocean';
export const GITHUB_URL = 'https://github.com/AmruthPillai/Reactive-Resume';
export const PRODUCT_HUNT_URL = 'https://www.producthunt.com/posts/reactive-resume-v3';
export const GITHUB_ISSUES_URL = 'https://github.com/AmruthPillai/Reactive-Resume/issues/new/choose';

View File

@ -12,6 +12,7 @@ import toast from 'react-hot-toast';
import { useIsMutating, useMutation } from 'react-query';
import BaseModal from '@/components/shared/BaseModal';
import { FLAG_DISABLE_SIGNUPS } from '@/constants/flags';
import { login, LoginParams, loginWithGoogle, LoginWithGoogleParams } from '@/services/auth';
import { ServerError } from '@/services/axios';
import { useAppDispatch, useAppSelector } from '@/store/hooks';
@ -167,11 +168,13 @@ const LoginModal: React.FC = () => {
/>
</form>
<p className="text-xs">
<Trans t={t} i18nKey="modals.auth.login.register-text">
If you don&apos;t have one, you can <a onClick={handleCreateAccount}>create an account</a> here.
</Trans>
</p>
{!FLAG_DISABLE_SIGNUPS && (
<p className="text-xs">
<Trans t={t} i18nKey="modals.auth.login.register-text">
If you don&apos;t have one, you can <a onClick={handleCreateAccount}>create an account</a> here.
</Trans>
</p>
)}
<p className="text-xs">
<Trans t={t} i18nKey="modals.auth.login.recover-text">

View File

@ -58,7 +58,7 @@ const CreateResumeModal: React.FC = () => {
const slug = name
? name
.toLowerCase()
.replace(/[`~!@#$%^&*()_|+=?;:'",.<>{}[]\\\/]/gi, '')
.replace(/[^\w\s]/gi, '')
.replace(/[ ]/gi, '-')
: '';

View File

@ -56,7 +56,7 @@ const RenameResumeModal: React.FC = () => {
const slug = name
? name
.toLowerCase()
.replace(/[`~!@#$%^&*()_|+=?;:'",.<>{}[]\\\/]/gi, '')
.replace(/[^\w\s]/gi, '')
.replace(/[ ]/gi, '-')
: '';

View File

@ -3,7 +3,26 @@ 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',
'nl',
'pl',
'ru',
'ta',
'tr',
'vi',
'zh',
],
},
nsSeparator: '.',
localePath: path.resolve('./public/locales'),

View File

@ -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', []);

View File

@ -1,6 +1,6 @@
import { Link as LinkIcon } from '@mui/icons-material';
import { DarkMode, LightMode, Link as LinkIcon } from '@mui/icons-material';
import { Masonry } from '@mui/lab';
import { Button } from '@mui/material';
import { Button, IconButton } from '@mui/material';
import type { GetStaticProps, NextPage } from 'next';
import Image from 'next/image';
import Link from 'next/link';
@ -13,13 +13,15 @@ import LanguageSwitcher from '@/components/shared/LanguageSwitcher';
import Logo from '@/components/shared/Logo';
import NoSSR from '@/components/shared/NoSSR';
import { screenshots } from '@/config/screenshots';
import { FLAG_DISABLE_SIGNUPS } from '@/constants/flags';
import testimonials from '@/data/testimonials';
import { logout } from '@/store/auth/authSlice';
import { setTheme } from '@/store/build/buildSlice';
import { useAppDispatch, useAppSelector } from '@/store/hooks';
import { setModalState } from '@/store/modal/modalSlice';
import styles from '@/styles/pages/Home.module.scss';
import { DONATION_URL, GITHUB_URL } from '../constants';
import { DIGITALOCEAN_URL, DONATION_URL, GITHUB_URL } from '../constants';
export const getStaticProps: GetStaticProps = async ({ locale = 'en' }) => {
return {
@ -34,12 +36,15 @@ const Home: NextPage = () => {
const dispatch = useAppDispatch();
const theme = useAppSelector((state) => state.build.theme);
const isLoggedIn = useAppSelector((state) => state.auth.isLoggedIn);
const handleLogin = () => dispatch(setModalState({ modal: 'auth.login', state: { open: true } }));
const handleRegister = () => dispatch(setModalState({ modal: 'auth.register', state: { open: true } }));
const handleToggle = () => dispatch(setTheme({ theme: theme === 'light' ? 'dark' : 'light' }));
const handleLogout = () => dispatch(logout());
return (
@ -70,7 +75,7 @@ const Home: NextPage = () => {
<>
<Button onClick={handleLogin}>{t('landing.actions.login')}</Button>
<Button variant="outlined" onClick={handleRegister}>
<Button variant="outlined" onClick={handleRegister} disabled={FLAG_DISABLE_SIGNUPS}>
{t('landing.actions.register')}
</Button>
</>
@ -175,7 +180,7 @@ const Home: NextPage = () => {
</section>
<section className={styles.section}>
<a href="https://pillai.xyz/digitalocean" target="_blank" rel="noreferrer">
<a href={DIGITALOCEAN_URL} target="_blank" rel="noreferrer">
<Image src="/images/sponsors/digitalocean.svg" alt="Powered By DigitalOcean" width={200} height={40} />
</a>
</section>
@ -187,7 +192,11 @@ const Home: NextPage = () => {
<div>v{process.env.appVersion}</div>
</div>
<LanguageSwitcher />
<div className={styles.actions}>
<IconButton onClick={handleToggle}>{theme === 'dark' ? <DarkMode /> : <LightMode />}</IconButton>
<LanguageSwitcher />
</div>
</footer>
</main>
);

View File

@ -7,9 +7,6 @@
},
"footer": {
"credit": "مشروع عاطفي من تأليف <1> أمروث بيلاي</1>",
"language": {
"missing": "هل تفتقد لغتك؟"
},
"license": "من قبل المجتمع للمجتمع."
},
"markdown": {

View File

@ -7,9 +7,6 @@
},
"footer": {
"credit": "<1>অমরুথ পিল্লাই</1>-এর একটি প্যাশন প্রোজেক্ট",
"language": {
"missing": "আপনার ভাষা অনুপস্থিত?"
},
"license": "সম্প্রদায়ের দ্বারা, সম্প্রদায়ের জন্য।"
},
"markdown": {

View File

@ -7,9 +7,6 @@
},
"footer": {
"credit": "Et passionsprojekt af <1>Amruth Pillai</1>",
"language": {
"missing": "Mangler du dit sprog?"
},
"license": "Af fællesskabet, for fællesskabet."
},
"markdown": {

View File

@ -7,9 +7,6 @@
},
"footer": {
"credit": "Ein Herzensprojekt von <1>Amruth Pillai</1>",
"language": {
"missing": "Ihre Sprache fehlt?"
},
"license": "Von der Gemeinschaft, für die Gemeinschaft."
},
"markdown": {

View File

@ -7,9 +7,6 @@
},
"footer": {
"credit": "A passion project by <1>Amruth Pillai</1>",
"language": {
"missing": "Missing your language?"
},
"license": "By the community, for the community."
},
"markdown": {

View File

@ -7,9 +7,6 @@
},
"footer": {
"credit": "Un proyecto apasionante de <1>Amruth Pillai</1>",
"language": {
"missing": "Idioma ausente?"
},
"license": "Por la comunidad, para la comunidad."
},
"markdown": {

View File

@ -7,9 +7,6 @@
},
"footer": {
"credit": "Un projet passionné de <1>Amruth Pillai</1>",
"language": {
"missing": "Il manque votre langue ?"
},
"license": "Par la communauté, pour la communauté."
},
"markdown": {

View File

@ -7,9 +7,6 @@
},
"footer": {
"credit": "<1>अमृत पिल्लै</1> . का एक जुनूनी प्रोजेक्ट",
"language": {
"missing": "आपकी भाषा याद आ रही है?"
},
"license": "समाज के लिए, समाज के लिए।"
},
"markdown": {

View File

@ -7,9 +7,6 @@
},
"footer": {
"credit": "Un progetto nato dalla passione di <1>Amruth Pillai</1>",
"language": {
"missing": "Non trovi la tua lingua?"
},
"license": "Dalla community, per la community."
},
"markdown": {

View File

@ -7,9 +7,6 @@
},
"footer": {
"credit": "<1>ಅಮೃತ್ ಪಿಳ್ಳೈ</1> ಅವರು ಉತ್ಸಾಹದಿಂದ ಮಾಡಿರುವ ಪ್ರಾಜೆಕ್ಟ್",
"language": {
"missing": "ನಿಮ್ಮ ಭಾಷೆ ಕಾಣೆಯಾಗಿದೆಯೇ?"
},
"license": "ಸಮುದಾಯದಿಂದ, ಸಮುದಾಯಕ್ಕಾಗಿ."
},
"markdown": {

View 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": "തലക്കെട്ടുകൾ"
}
}
}
}
}
}

View File

@ -0,0 +1,29 @@
{
"avatar": {
"menu": {
"greeting": "ഹലോ",
"logout": "പുറത്തുകടക്കുക"
}
},
"footer": {
"credit": "<1>അമൃത് പിള്ളയുടെ</1> ഒരു പാഷൻ പ്രോജക്റ്റ്",
"license": "സമൂഹത്താൽ, സമൂഹത്തിന് വേണ്ടി."
},
"markdown": {
"help-text": "ഈ വിഭാഗം <1>മാർക്ക്ഡൗൺ</1> ഫോർമാറ്റിംഗ് പിന്തുണയ്ക്കുന്നു."
},
"date": {
"present": "ഇപ്പോൾ"
},
"subtitle": "ഒരു സൗജന്യ ഓപ്പൺ സോഴ്സ് റെസ്യൂം ബിൽഡർ.",
"title": "റിയാക്ടീവ് റെസ്യുമെ",
"toast": {
"error": {
"upload-file-size": "2 മെഗാബൈറ്റിൽ താഴെയുള്ള ഫയലുകൾ മാത്രം അപ്‌ലോഡ് ചെയ്യുക.",
"upload-photo-size": "2 മെഗാബൈറ്റിൽ താഴെയുള്ള ഫോട്ടോകൾ മാത്രം അപ്‌ലോഡ് ചെയ്യുക."
},
"success": {
"resume-link-copied": "നിങ്ങളുടെ റെസ്യൂമെയിലേക്കുള്ള ഒരു ലിങ്ക് നിങ്ങളുടെ ക്ലിപ്പ്ബോർഡിലേക്ക് പകർത്തി."
}
}
}

View 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": "ഡാഷ്ബോർഡ്"
}

View 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": "സംഗ്രഹം"
}
}

View 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": "നിങ്ങളുടെ റെസ്യൂമെ പുനർനാമകരണം ചെയ്യുക"
}
}
}

View File

@ -0,0 +1,358 @@
{
"common": {
"actions": {
"add": "Nieuw {{token}} toevoegen",
"delete": "{{token}} verwijderen",
"edit": "Bewerk {{token}}"
},
"columns": {
"heading": "Kolommen",
"tooltip": "Aantal kolommen wijzigen"
},
"form": {
"date": {
"label": "Datum"
},
"description": {
"label": "Beschrijving"
},
"email": {
"label": "E-mailadres"
},
"end-date": {
"help-text": "Laat dit veld leeg, indien nog aanwezig",
"label": "Einddatum"
},
"keywords": {
"label": "Trefwoorden"
},
"level": {
"label": "Niveau"
},
"levelNum": {
"label": "Niveau (nummer)"
},
"name": {
"label": "Naam"
},
"phone": {
"label": "Telefoonnummer"
},
"position": {
"label": "Functie"
},
"start-date": {
"label": "Startdatum"
},
"subtitle": {
"label": "Ondertitel"
},
"summary": {
"label": "Samenvatting"
},
"title": {
"label": "Titel"
},
"url": {
"label": "Website"
}
},
"glossary": {
"page": "Pagina"
},
"list": {
"actions": {
"delete": "Verwijderen",
"duplicate": "Dupliceren",
"edit": "Bewerken"
},
"empty-text": "Deze lijst is leeg."
},
"tooltip": {
"delete-item": "Weet je zeker dat je dit item wilt verwijderen? Dit is onomkeerbaar.",
"delete-section": "Sectie verwijderen",
"rename-section": "Sectie hernoemen",
"toggle-visibility": "Zichtbaarheid aan/uit"
}
},
"controller": {
"tooltip": {
"center-artboard": "Tekengebied Centreren",
"copy-link": "Link naar CV Kopiëren",
"export-pdf": "Exporteer PDF",
"toggle-orientation": "Oriëntatie van pagina wijzigen",
"toggle-page-break-line": "Regel voor pagina-einde in-/uitschakelen",
"toggle-sidebars": "Zijbalk tonen/verbergen",
"zoom-in": "Inzoomen",
"zoom-out": "Uitzoomen"
}
},
"header": {
"menu": {
"delete": "Verwijderen",
"duplicate": "Dupliceren",
"rename": "Hernoemen",
"share-link": "Link delen",
"tooltips": {
"delete": "Weet je zeker dat je dit cv wilt verwijderen? Dit is onomkeerbaar.",
"share-link": "Je moet de zichtbaarheid van jouw cv veranderen in openbaar om het zichtbaar te maken voor anderen."
}
}
},
"leftSidebar": {
"sections": {
"awards": {
"form": {
"awarder": {
"label": "Onderscheidingen"
}
}
},
"basics": {
"actions": {
"photo-filters": "Foto Filters"
},
"heading": "Basis",
"headline": {
"label": "Koptekst"
},
"name": {
"label": "Volledige naam"
},
"photo-filters": {
"effects": {
"border": {
"label": "Rand"
},
"grayscale": {
"label": "Grijswaarden"
},
"heading": "Effecten"
},
"shape": {
"heading": "Vorm"
},
"size": {
"heading": "Grootte (in px)"
}
},
"photo-upload": {
"tooltip": {
"remove": "Foto Verwijderen",
"upload": "Foto Uploaden"
}
}
},
"certifications": {
"form": {
"issuer": {
"label": "Verstrekker"
}
}
},
"education": {
"form": {
"area-study": {
"label": "Studiegebied"
},
"courses": {
"label": "Cursussen"
},
"degree": {
"label": "Graad"
},
"grade": {
"label": "Cijfer"
},
"institution": {
"label": "Instelling"
}
}
},
"location": {
"address": {
"label": "Adres"
},
"city": {
"label": "Stad"
},
"country": {
"label": "Land"
},
"heading": "Locatie",
"postal-code": {
"label": "Postcode"
},
"region": {
"label": "Regio"
}
},
"profiles": {
"form": {
"network": {
"label": "Netwerk"
},
"username": {
"label": "Gebruikersnaam"
}
},
"heading": "Profielen",
"heading_one": "Profiel"
},
"publications": {
"form": {
"publisher": {
"label": "Uitgever"
}
}
},
"references": {
"form": {
"relationship": {
"label": "Relatie"
}
}
},
"section": {
"heading": "Sectie"
},
"volunteer": {
"form": {
"organization": {
"label": "Organisatie"
}
}
}
}
},
"rightSidebar": {
"sections": {
"css": {
"heading": "Aangepaste CSS"
},
"export": {
"heading": "Exporteren",
"json": {
"primary": "JSON",
"secondary": "Download een JSON-versie van je cv die weer kan worden geïmporteerd in deze CV maker."
},
"pdf": {
"loading": {
"primary": "PDF genereren",
"secondary": "Een ogenblik geduld s.v.p. terwijl uw PDF wordt gegenereerd, dit kan tot 15 seconden duren."
},
"normal": {
"primary": "PDF",
"secondary": "Download een pdf van je cv die je kunt printen en gebruiken om je droombaan te bekomen. Dit bestand kan niet opnieuw worden geïmporteerd voor verdere bewerking."
}
}
},
"layout": {
"heading": "Opmaak",
"tooltip": {
"reset-layout": "Opmaak Resetten"
}
},
"links": {
"bugs-features": {
"body": "Houdt iets je tegen om een cv te maken? Of heb je een geweldig idee om toe te voegen? Plaats een issue op GitHub om aan de slag te gaan.",
"button": "GitHub problemen",
"heading": "Bugs? Functieverzoeken?"
},
"donate": {
"body": "Als Je Reactive Resume graag gebruikt, kun je overwegen zoveel mogelijk te doneren om de app in de lucht te houden, zonder advertenties en voor altijd gratis.",
"button": "Betaal me een koffie",
"heading": "Doneer aan Reactiv Resume"
},
"github": "Broncode",
"heading": "Links"
},
"settings": {
"global": {
"date": {
"primary": "Datum",
"secondary": "Datumformaat die gebruikt moet worden in de hele app"
},
"heading": "Globaal",
"language": {
"primary": "Taal",
"secondary": "Toon de te gebruiken taal in de app"
},
"theme": {
"primary": "Thema"
}
},
"heading": "Instellingen",
"page": {
"break-line": {
"primary": "Breek Lijn",
"secondary": "Toon een lijn op alle pagina's om de hoogte van een A4-pagina te markeren"
},
"heading": "Pagina",
"orientation": {
"disabled": "Heeft geen effect als er maar één pagina is",
"primary": "Oriëntatie",
"secondary": "Pagina's horizontaal of verticaal weergeven"
}
},
"resume": {
"heading": "Hervatten",
"reset": {
"primary": "Alles Resetten",
"secondary": "Te veel fouten gemaakt? Klik hier om alle wijzigingen te resetten en helemaal opnieuw te beginnen. Wees voorzichtig, deze actie kan niet worden teruggedraaid."
},
"sample": {
"primary": "Laad voorbeeldgegevens",
"secondary": "Weet je niet waar je moet beginnen? Klik hier om enkele voorbeeldgegevens te laden om te zien hoe een compleet cv eruitziet."
}
}
},
"sharing": {
"heading": "Delen",
"short-url": {
"label": "Liever korte URL"
},
"visibility": {
"subtitle": "Laat iedereen met een link je cv bekijken",
"title": "Openbaar"
}
},
"templates": {
"heading": "Sjablonen"
},
"theme": {
"form": {
"background": {
"label": "Achtergrond"
},
"primary": {
"label": "Voornaamste"
},
"text": {
"label": "Tekst"
}
},
"heading": "Thema"
},
"typography": {
"form": {
"font-family": {
"label": "Lettertype"
},
"font-size": {
"label": "Lettertypegrootte"
}
},
"heading": "Typografie",
"widgets": {
"body": {
"label": "Berichttekst"
},
"headings": {
"label": "Koppen"
}
}
}
}
}
}

View File

@ -0,0 +1,29 @@
{
"avatar": {
"menu": {
"greeting": "Hallo",
"logout": "Afmelden"
}
},
"footer": {
"credit": "Een passieproject van <1>Amruth Pillai</1>",
"license": "Door de gemeenschap, voor de gemeenschap."
},
"markdown": {
"help-text": "Deze sectie ondersteunt <1>html</1> opmaak."
},
"date": {
"present": "Heden"
},
"subtitle": "Een gratis en open source cv maker.",
"title": "Reactive Resume",
"toast": {
"error": {
"upload-file-size": "Upload alleen bestanden onder de 2 megabytes.",
"upload-photo-size": "Upload alleen foto's onder de 2 megabytes, bij voorkeur vierkante."
},
"success": {
"resume-link-copied": "Een link naar jouw CV is naar het klembord gekopieerd."
}
}
}

View File

@ -0,0 +1,25 @@
{
"create-resume": {
"subtitle": "Begin vanaf nul",
"title": "Nieuw CV maken"
},
"import-external": {
"subtitle": "LinkedIn, JSON CV, Reactive CV",
"title": "Importeren uit Externe Bronnen"
},
"resume": {
"menu": {
"delete": "Verwijderen",
"duplicate": "Dupliceren",
"open": "Openen",
"rename": "Hernoemen",
"share-link": "Link delen",
"tooltips": {
"delete": "Weet je zeker dat je dit cv wilt verwijderen? Dit is onomkeerbaar.",
"share-link": "Je moet de zichtbaarheid van jouw cv veranderen in openbaar om het zichtbaar te maken voor anderen."
}
},
"timestamp": "Laatst bijgewerkt op {{timestamp}}"
},
"title": "Dashboard"
}

View File

@ -0,0 +1,41 @@
{
"actions": {
"app": "Ga naar de App",
"login": "Inloggen",
"logout": "Afmelden",
"register": "Registreren"
},
"features": {
"heading": "Functies",
"list": {
"ads": "Geen Advertenties",
"export": "Exporteer je cv naar JSON- of PDF-formaat",
"free": "Gratis, voor altijd",
"import": "Gegevens importeren uit LinkedIn, JSON CV",
"languages": "Toegankelijk in meerdere talen",
"more": "En nog veel meer spannende functies, <1>lees er hier alles over</1>",
"tracking": "Geen Gebruikerstracking"
}
},
"links": {
"heading": "Links",
"links": {
"donate": "Doneren",
"github": "Broncode",
"privacy": "Privacybeleid",
"service": "Gebruiksvoorwaarden"
}
},
"screenshots": {
"heading": "Schermafbeeldingen"
},
"testimonials": {
"heading": "Klantengetuigenissen",
"body": "Goed of slecht, ik zou graag jouw mening horen over Reactive Resume en hoe de ervaring voor jou is geweest.<br/>Hier zijn enkele van de berichten die door gebruikers over de hele wereld zijn verzonden.",
"contact": "Je kunt contact met mij opnemen via <1>mijn e-mail</1> of via het contactformulier op <3>mijn website</3> ."
},
"summary": {
"body": "Reactive CV is een gratis en open source cv-builder die is gebouwd om de alledaagse taken van het maken, bijwerken en delen van jouw cv zo eenvoudig te maken als 1, 2, 3. Met deze app kun je meerdere cv's maken en deze delen met recruiters of vrienden via een unieke link en print het als een PDF, helemaal gratis, geen advertenties, geen tracking, zonder de integriteit en privacy van jouw gegevens te verliezen.",
"heading": "Samenvatting"
}
}

View File

@ -0,0 +1,136 @@
{
"auth": {
"forgot-password": {
"actions": {
"send-email": "Stuur Herstel Wachtwoord E-mail"
},
"body": "Voer gewoon het e-mailadres in dat is gekoppeld aan het account dat je wilt herstellen.",
"form": {
"email": {
"label": "E-mailadres"
}
},
"heading": "Wachtwoord vergeten?",
"help-text": "Als er een account is gekoppeld aan %1, ontvang je een e-mail met een link om jouw wachtwoord opnieuw in te stellen."
},
"login": {
"actions": {
"login": "Inloggen",
"google": "Inloggen met Google"
},
"body": "Voer jouw gebruikersnaam en wachtwoord in die bij jouw account horen om in te loggen en jouw cv's te openen, beheren en delen.",
"form": {
"password": {
"label": "Wachtwoord"
},
"username": {
"help-text": "Je kunt ook jouw e-mailadres invoeren",
"label": "Gebruikersnaam"
}
},
"heading": "Log in op jouw account",
"recover-text": "Als je jouw wachtwoord bent vergeten, kun je <1>hier jouw account</1> herstellen.",
"register-text": "Als je er geen hebt, kun je hier <1>een account maken</1>."
},
"register": {
"actions": {
"register": "Registreren",
"google": "Registreren met Google"
},
"body": "Vul jouw persoonlijke gegevens in om een account aan te maken.",
"form": {
"confirm-password": {
"label": "Bevestig wachtwoord"
},
"email": {
"label": "E-mailadres"
},
"name": {
"label": "Voor- en achternaam"
},
"password": {
"label": "Wachtwoord"
},
"username": {
"label": "Gebruikersnaam"
}
},
"heading": "Account aanmaken",
"loginText": "Als je al een account hebt, kun je <1>hier inloggen</1> ."
},
"reset-password": {
"actions": {
"set-password": "Nieuw wachtwoord instellen"
},
"body": "Voer een nieuw wachtwoord in voor jouw account.",
"form": {
"confirm-password": {
"label": "Wachtwoord Bevestigen"
},
"password": {
"label": "Wachtwoord"
}
},
"heading": "Je wachtwoord opnieuw instellen"
}
},
"dashboard": {
"create-resume": {
"actions": {
"create-resume": "CV Aanmaken"
},
"body": "Begin met het maken van je cv door het een naam te geven. Het kan betrekking hebben op de functie waarop je solliciteert, of gewoon jouw favoriete snack.",
"form": {
"name": {
"label": "Naam"
},
"public": {
"label": "Openbaar Toegankelijk"
},
"slug": {
"label": "Slug"
}
},
"heading": "Nieuw CV maken"
},
"import-external": {
"heading": "Importeren uit Externe Bronnen",
"json-resume": {
"actions": {
"upload-json": "JSON Uploaden"
},
"body": "Als je een <1>gevalideerde JSON CV</1> klaar hebt, kun je die gebruiken om versneld je nieuwe cv te bouwen. Klik op de onderstaande knop en upload een geldig JSON-bestand om te beginnen.",
"heading": "Importeren uit JSON CV"
},
"linkedin": {
"actions": {
"upload-archive": "ZIP-archief Uploaden"
},
"body": "Je kunt tijd besparen door jouw gegevens uit LinkedIn te exporteren en deze te gebruiken om velden hier automatisch in te vullen. Ga naar de <1>Gegevensprivacy</1> sectie op LinkedIn en vraag een archief van jouw gegevens aan. Zodra het beschikbaar is, upload je het ZIP-bestand hieronder.",
"heading": "Importeren Vanuit LinkedIn"
},
"reactive-resume": {
"actions": {
"upload-json": "JSON Uploaden",
"upload-json-v2": "JSON uploaden van v2"
},
"body": "Als je een JSON hebt die is geëxporteerd met de huidige versie van deze CV maker, kun je die hier terug importeren om weer een bewerkbare versie te krijgen.",
"heading": "Importeren van Bestaand CV"
}
},
"rename-resume": {
"actions": {
"rename-resume": "CV Hernoemen"
},
"form": {
"name": {
"label": "Naam"
},
"slug": {
"label": "Slug"
}
},
"heading": "Hernoem je cv"
}
}
}

View File

@ -7,9 +7,6 @@
},
"footer": {
"credit": "Projekt pasji od <1>Amruth Pillai</1>",
"language": {
"missing": "Brakuje Twojego języka?"
},
"license": "Przez społeczność dla społeczności."
},
"markdown": {

View File

@ -7,9 +7,6 @@
},
"footer": {
"credit": "Um projeto apaixonado de <1>Amruth Pillai</1>",
"language": {
"missing": "Falta o seu idioma?"
},
"license": "Pela comunidade, para a comunidade."
},
"markdown": {

View 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": "Размер (в px)"
}
},
"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-версию вашего резюме, которую можно импортировать обратно в Reactive Resume."
},
"pdf": {
"loading": {
"primary": "Генерация PDF",
"secondary": "Пожалуйста, подождите, пока ваш PDF-файл сгенерируется, это займет не больше 15 секунд."
},
"normal": {
"primary": "PDF",
"secondary": "Скачайте PDF-файл своего резюме, который можно распечатать и отправить на работу своей мечты. Этот файл нельзя импортировать обратно для дальнейшего редактирования."
}
}
},
"layout": {
"heading": "Разметка",
"tooltip": {
"reset-layout": "Сбросить разметку"
}
},
"links": {
"bugs-features": {
"body": "Что-то мешает вам составить резюме? Или у вас есть отличная идея для нас? Откройте новый issue на GitHub.",
"button": "GitHub Issues",
"heading": "Нашли ошибку? Есть предложения?"
},
"donate": {
"body": "Если вам понравилось использовать Reactive Resume, пожалуйста, подумайте о том, чтобы пожертвовать как можно больше на поддержание приложения в рабочем состоянии, без рекламы и бесплатно навсегда.",
"button": "Купить мне кофе",
"heading": "Поддержать Reactive Resume"
},
"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": "Public"
}
},
"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": "Заголовки"
}
}
}
}
}
}

View File

@ -0,0 +1,29 @@
{
"avatar": {
"menu": {
"greeting": "Привет",
"logout": "Выйти"
}
},
"footer": {
"credit": "Увлекательный проект <1>Amruth Pillai</1>",
"license": "От сообщества для сообщества."
},
"markdown": {
"help-text": "Этот раздел поддерживает <1>markdown</1>."
},
"date": {
"present": "настоящее время"
},
"subtitle": "Бесплатный open source конструктор резюме.",
"title": "Reactive Resume",
"toast": {
"error": {
"upload-file-size": "Пожалуйста, загружайте файлы размером не более 2 мегабайт.",
"upload-photo-size": "Пожалуйста, загружайте фотографии размером не более 2 мегабайт, желательно квадратные."
},
"success": {
"resume-link-copied": "Ссылка на ваше резюме скопирована в буфер обмена."
}
}
}

View File

@ -0,0 +1,25 @@
{
"create-resume": {
"subtitle": "Начать с нуля",
"title": "Создать новое резюме"
},
"import-external": {
"subtitle": "LinkedIn, JSON Resume, Reactive Resume",
"title": "Импорт из внешних источников"
},
"resume": {
"menu": {
"delete": "Удалить",
"duplicate": "Дублировать",
"open": "Открыть",
"rename": "Переименовать",
"share-link": "Поделиться ссылкой",
"tooltips": {
"delete": "Вы уверенны, что хотите удалить это резюме? Отменить это действие нельзя.",
"share-link": "Вам нужно изменить видимость вашего резюме, чтобы сделать его видимым для других."
}
},
"timestamp": "Последнее обновление {{timestamp}}"
},
"title": "Панель управления"
}

View File

@ -0,0 +1,41 @@
{
"actions": {
"app": "Перейти к приложению",
"login": "Войти",
"logout": "Выйти",
"register": "Зарегистрироваться"
},
"features": {
"heading": "Особенности",
"list": {
"ads": "Никакой рекламы",
"export": "Экспортируйте свое резюме в формат JSON или PDF",
"free": "Бесплатно навсегда",
"import": "Импорт данных из LinkedIn, JSON Resume",
"languages": "Доступность на нескольких языках",
"more": "И многое другое, <1>обо всем этом читайте здесь</1>",
"tracking": "Нет отслеживания пользователей"
}
},
"links": {
"heading": "Ссылки",
"links": {
"donate": "Поддержать",
"github": "Исходный код",
"privacy": "Политика конфиденциальности",
"service": "Условия использования"
}
},
"screenshots": {
"heading": "Скриншоты"
},
"testimonials": {
"heading": "Отзывы",
"body": "Я бы хотел услышать ваше мнение о Reactive Resume, хорошее оно или плохое, и о том, каким был ваш опыт.<br/>Вот некоторые из сообщений, присланных пользователями со всего мира.",
"contact": "Вы можете связаться со мной через <1>мою электронную почту</1> или контактную форму на <3>моем сайте</3>."
},
"summary": {
"body": "Reactive Resume - это бесплатный open source конструктор резюме, созданный для того, чтобы сделать рутинные задачи по созданию, обновлению и распространению резюме такими же простыми, как 1, 2, 3. С помощью этого приложения вы можете создать несколько резюме, поделиться ими с рекрутерами или друзьями через уникальную ссылку и распечатать их в формате PDF, и все это бесплатно, без рекламы, без отслеживания, без потери целостности и конфиденциальности ваших данных.",
"heading": "Описание"
}
}

View 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": "Slug (окончание ссылки на резюме)"
}
},
"heading": "Создание нового резюме"
},
"import-external": {
"heading": "Импорт из внешних источников",
"json-resume": {
"actions": {
"upload-json": "Загрузить JSON"
},
"body": "Если у вас есть готовое <1>подтвержденное JSON Resume</1>, вы можете использовать его для ускорения разработки Reactive Resume. Нажмите кнопку ниже и загрузите файл JSON, чтобы начать.",
"heading": "Импорт из JSON Resume"
},
"linkedin": {
"actions": {
"upload-archive": "Загрузить ZIP-архив"
},
"body": "Вы можете сэкономить время, экспортировав свои данные из LinkedIn и использовать их для автоматического заполнения полей в Reactive Resume. Перейдите к разделу <1>Конфиденциальность данных</1> на LinkedIn и запросите архив ваших данных. Как только он будет доступен, загрузите ZIP-файл ниже.",
"heading": "Импорт из LinkedIn"
},
"reactive-resume": {
"actions": {
"upload-json": "Загрузить JSON",
"upload-json-v2": "Загрузить JSON из v2"
},
"body": "Если у вас есть JSON, который был экспортирован из текущей версии Reactive Resume, вы можете импортировать его сюда, чтобы снова получить редактируемую версию.",
"heading": "Импорт из Reactive Resume"
}
},
"rename-resume": {
"actions": {
"rename-resume": "Переименовать резюме"
},
"form": {
"name": {
"label": "Название"
},
"slug": {
"label": "Slug (окончание ссылки на резюме)"
}
},
"heading": "Переименование резюме"
}
}
}

View File

@ -7,9 +7,6 @@
},
"footer": {
"credit": "<1>அம்ருத் பிள்ளை</1>யின் திட்டம்",
"language": {
"missing": "உங்கள் மொழியைக் காணவில்லையா?"
},
"license": "சமூகத்தால், சமூகத்திற்காக."
},
"markdown": {

View File

@ -7,9 +7,6 @@
},
"footer": {
"credit": "<1>Amruth Pillai</1>'nin bir tutku projesidir",
"language": {
"missing": "Dilinizi bulamadınız mı?"
},
"license": "Topluluk tarafından, topluluk için."
},
"markdown": {

View File

@ -7,9 +7,6 @@
},
"footer": {
"credit": "Một dự án làm với đam mê của <1> Amruth Pillai</1>",
"language": {
"missing": "Thiếu ngôn ngữ của bạn?"
},
"license": "Vì cộng đồng, cho cộng đồng."
},
"markdown": {

View File

@ -7,9 +7,6 @@
},
"footer": {
"credit": "一个由<1>Amruth Pillai</1>开发的项目",
"language": {
"missing": "缺少您的语言?"
},
"license": "由社区驱动。"
},
"markdown": {

View File

@ -2,7 +2,11 @@
@apply m-6 grid gap-8 text-center md:m-8 md:text-left;
footer {
@apply flex items-end justify-between;
@apply flex flex-col gap-8 items-center sm:items-end justify-between sm:flex-row sm:gap-0;
.actions {
@apply flex gap-2;
}
.version > div {
@apply text-xs font-medium opacity-50 mt-3;

View File

@ -56,7 +56,7 @@ export const MastheadSidebar: React.FC = () => {
</DataDisplay>
{profiles.map(({ id, username, network, url }) => (
<DataDisplay key={id} icon={getProfileIcon(network)} link={url} className="!gap-2 text-xs">
<DataDisplay key={id} icon={getProfileIcon(network)} link={url && addHttp(url)} className="!gap-2 text-xs">
{username}
</DataDisplay>
))}

View File

@ -57,7 +57,7 @@ export const MastheadSidebar: React.FC = () => {
</DataDisplay>
{profiles.map(({ id, username, network, url }) => (
<DataDisplay key={id} icon={getProfileIcon(network)} link={url} className="!gap-2 text-xs">
<DataDisplay key={id} icon={getProfileIcon(network)} link={url && addHttp(url)} className="!gap-2 text-xs">
{username}
</DataDisplay>
))}

View File

@ -49,7 +49,7 @@ export const MastheadSidebar: React.FC = () => {
</DataDisplay>
{profiles.map(({ id, username, network, url }) => (
<DataDisplay key={id} icon={getProfileIcon(network)} link={url} className="text-xs">
<DataDisplay key={id} icon={getProfileIcon(network)} link={url && addHttp(url)} className="text-xs">
{username}
</DataDisplay>
))}

View File

@ -47,7 +47,7 @@ const Masthead = () => {
<DataDisplay icon={<Room />}>{formatLocation(location)}</DataDisplay>
{profiles.map(({ id, username, network, url }) => (
<DataDisplay key={id} icon={getProfileIcon(network)} link={url}>
<DataDisplay key={id} icon={getProfileIcon(network)} link={url && addHttp(url)}>
{username}
</DataDisplay>
))}

View File

@ -50,7 +50,7 @@ const Masthead: React.FC = () => {
</DataDisplay>
{profiles.map(({ id, username, network, url }) => (
<DataDisplay key={id} icon={getProfileIcon(network)} link={url} className="text-xs">
<DataDisplay key={id} icon={getProfileIcon(network)} link={url && addHttp(url)} className="text-xs">
{username}
</DataDisplay>
))}

View File

@ -44,7 +44,7 @@ export const MastheadSidebar: React.FC = () => {
</DataDisplay>
{profiles.map(({ id, username, network, url }) => (
<DataDisplay key={id} icon={getProfileIcon(network)} link={url} className="text-xs">
<DataDisplay key={id} icon={getProfileIcon(network)} link={url && addHttp(url)} className="text-xs">
{username}
</DataDisplay>
))}

View File

@ -20,9 +20,13 @@ const DateWrapper: React.FC = ({ children }) => {
require('dayjs/locale/hi');
require('dayjs/locale/it');
require('dayjs/locale/kn');
require('dayjs/locale/ml');
require('dayjs/locale/nl');
require('dayjs/locale/pl');
require('dayjs/locale/ru');
require('dayjs/locale/ta');
require('dayjs/locale/tr');
require('dayjs/locale/vi');
require('dayjs/locale/zh');
locale && dayjs.locale(locale);

View File

@ -8,13 +8,13 @@ import TOCInline from '@theme/TOCInline';
# Reactive Resume
![Project Version](https://img.shields.io/github/package-json/v/AmruthPillai/Reactive-Resume?style=flat-square)
![Project License](https://img.shields.io/github/license/AmruthPillai/Reactive-Resume?style=flat-square)
[![Project Version](https://img.shields.io/github/package-json/v/AmruthPillai/Reactive-Resume?style=flat-square)](https://github.com/AmruthPillai/Reactive-Resume/releases)
[![Project License](https://img.shields.io/github/license/AmruthPillai/Reactive-Resume?style=flat-square)](https://github.com/AmruthPillai/Reactive-Resume/blob/main/LICENSE)
[![Crowdin](https://badges.crowdin.net/reactive-resume/localized.svg)](https://translate.rxresu.me)
[![Docker Pulls](https://img.shields.io/docker/pulls/amruthpillai/reactive-resume?style=flat-square)](https://hub.docker.com/r/amruthpillai/reactive-resume)
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FAmruthPillai%2FReactive-Resume.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2FAmruthPillai%2FReactive-Resume?ref=badge_shield)
## [Go to App](https://rxresu.me) | [Docs](https://docs.rxresu.me)
## [Go to App](https://rxresu.me) | [GitHub Repo](https://github.com/AmruthPillai/Reactive-Resume)
## Summary
@ -48,16 +48,20 @@ You have complete control over what goes into your resume, how it looks, what co
- Bengali (বাংলা)
- Chinese (中文)
- Danish (Dansk)
- Dutch (Nederlands)
- English
- French (Français)
- German (Deutsch)
- Hindi (हिन्दी)
- Italian (Italiano)
- Kannada (ಕನ್ನಡ)
- Malayalam (മലയാളം)
- Polish (Polski)
- Russian (русский)
- Spanish (Español)
- Tamil (தமிழ்)
- Turkish (Türkçe)
- Vietnamese (Tiếng Việt)
Help by [translating Reactive Resume](https://translate.rxresu.me) to your language!

View File

@ -9,7 +9,7 @@
"swizzle": "docusaurus swizzle",
"deploy": "docusaurus deploy",
"clear": "docusaurus clear",
"serve": "docusaurus serve",
"serve": "docusaurus serve --port 3200",
"write-translations": "docusaurus write-translations",
"write-heading-ids": "docusaurus write-heading-ids"
},

View File

@ -1,6 +1,6 @@
{
"name": "reactive-resume",
"version": "3.2.6",
"version": "3.2.9",
"private": true,
"workspaces": [
"schema",