Compare commits

...

201 Commits

Author SHA1 Message Date
6a8db92fc4 fix bugs 2023-04-21 01:13:32 +02:00
6f219ef17e bump up version to 3.7.2 2023-04-20 23:02:14 +02:00
667e51abdc implement larger pool size for db 2023-04-20 22:52:24 +02:00
7b98277c32 Merge pull request #1294 from AmruthPillai/dependabot/docker/server/playwright-v1.32.3-focal
Bump playwright from v1.32.1-focal to v1.32.3-focal in /server
2023-04-20 22:34:03 +02:00
77ed7ed8be Merge pull request #1293 from AmruthPillai/dependabot/github_actions/actions/checkout-3.5.2
Bump actions/checkout from 3.5.0 to 3.5.2
2023-04-20 22:33:56 +02:00
ce584d9326 Merge pull request #1289 from AmruthPillai/i18n_main
New Crowdin updates
2023-04-20 22:33:48 +02:00
5685352375 Merge pull request #1286 from AmruthPillai/dependabot/github_actions/martinbeentjes/npm-get-version-action-1.3.1
Bump martinbeentjes/npm-get-version-action from 1.2.3 to 1.3.1
2023-04-20 22:33:38 +02:00
036b2917a6 update dependencies, attempt to fix server restart issue 2023-04-20 22:33:11 +02:00
e972320722 Bump playwright from v1.32.1-focal to v1.32.3-focal in /server
Bumps playwright from v1.32.1-focal to v1.32.3-focal.

---
updated-dependencies:
- dependency-name: playwright
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-17 02:59:32 +00:00
4ac1e9db35 Bump actions/checkout from 3.5.0 to 3.5.2
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.5.0 to 3.5.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.5.0...v3.5.2)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-17 02:58:06 +00:00
9fe4403b40 New translations modals.json (Nepali) 2023-04-11 08:37:33 +02:00
4f4084ab45 New translations modals.json (Amharic) 2023-04-11 08:37:32 +02:00
72227dc9ab New translations modals.json (Odia) 2023-04-11 08:37:31 +02:00
d44795a421 New translations modals.json (Kannada) 2023-04-11 08:37:30 +02:00
e9584144e4 New translations modals.json (Malayalam) 2023-04-11 08:37:30 +02:00
bbedfa3b75 New translations modals.json (Hindi) 2023-04-11 08:37:29 +02:00
03f7d74096 New translations modals.json (Marathi) 2023-04-11 08:37:28 +02:00
a62693d611 New translations modals.json (Bengali) 2023-04-11 08:37:27 +02:00
421f195e1e New translations modals.json (Tamil) 2023-04-11 08:37:26 +02:00
b22dff523f New translations modals.json (Khmer) 2023-04-11 08:37:25 +02:00
58d0c6e315 New translations modals.json (Persian) 2023-04-11 08:37:24 +02:00
36178cac22 New translations landing.json (Nepali) 2023-04-11 08:37:24 +02:00
376786fa25 New translations landing.json (Amharic) 2023-04-11 08:37:23 +02:00
efceda1c55 New translations landing.json (Odia) 2023-04-11 08:37:22 +02:00
047e317c51 New translations landing.json (Kannada) 2023-04-11 08:37:21 +02:00
36ad63adb9 New translations landing.json (Malayalam) 2023-04-11 08:37:20 +02:00
45c88caf58 New translations landing.json (Hindi) 2023-04-11 08:37:20 +02:00
ca11a9217a New translations landing.json (Marathi) 2023-04-11 08:37:19 +02:00
fd6fbbba77 New translations landing.json (Bengali) 2023-04-11 08:37:18 +02:00
e2fb83bda9 New translations landing.json (Tamil) 2023-04-11 08:37:17 +02:00
40567e8f61 New translations landing.json (Khmer) 2023-04-11 08:37:16 +02:00
64c899b159 New translations modals.json (Indonesian) 2023-04-11 08:37:12 +02:00
b267cc4097 New translations modals.json (Vietnamese) 2023-04-11 08:37:11 +02:00
f4657b6592 New translations modals.json (Chinese Simplified) 2023-04-11 08:37:10 +02:00
6a2f512638 New translations modals.json (Ukrainian) 2023-04-11 08:37:10 +02:00
499005c21f New translations modals.json (Turkish) 2023-04-11 08:37:09 +02:00
0e18d3fc48 New translations modals.json (Serbian (Cyrillic)) 2023-04-11 08:37:08 +02:00
3b831c4eb4 New translations modals.json (Russian) 2023-04-11 08:37:07 +02:00
40564944ef New translations modals.json (Polish) 2023-04-11 08:37:06 +02:00
fdbb6d2e5b New translations modals.json (Norwegian) 2023-04-11 08:37:06 +02:00
398cd63082 New translations modals.json (Dutch) 2023-04-11 08:37:05 +02:00
efd4af14e5 New translations modals.json (Japanese) 2023-04-11 08:37:03 +02:00
889697fc31 New translations modals.json (Hungarian) 2023-04-11 08:37:02 +02:00
3aedf6618d New translations modals.json (Finnish) 2023-04-11 08:37:01 +02:00
abf42e13af New translations modals.json (Greek) 2023-04-11 08:37:00 +02:00
40bcbebadd New translations modals.json (Danish) 2023-04-11 08:36:59 +02:00
364f2e6d49 New translations modals.json (Czech) 2023-04-11 08:36:58 +02:00
7e5dfd75f9 New translations modals.json (Catalan) 2023-04-11 08:36:57 +02:00
b94d10c614 New translations modals.json (Bulgarian) 2023-04-11 08:36:57 +02:00
8c40b417ec New translations modals.json (Arabic) 2023-04-11 08:36:56 +02:00
1f17dfe6ea New translations landing.json (Indonesian) 2023-04-11 08:36:55 +02:00
be6ea1a224 New translations landing.json (Vietnamese) 2023-04-11 08:36:54 +02:00
583e9effae New translations builder.json (Nepali) 2023-04-11 08:36:53 +02:00
619b2757c8 New translations builder.json (Amharic) 2023-04-11 08:36:52 +02:00
9e27eee029 New translations builder.json (Odia) 2023-04-11 08:36:51 +02:00
c2d3c611e1 New translations builder.json (Kannada) 2023-04-11 08:36:50 +02:00
735f589e54 New translations builder.json (Malayalam) 2023-04-11 08:36:49 +02:00
1e3d6fbb77 New translations builder.json (Hindi) 2023-04-11 08:36:48 +02:00
3995e7159a New translations builder.json (Marathi) 2023-04-11 08:36:47 +02:00
6662acf0b0 New translations builder.json (Bengali) 2023-04-11 08:36:47 +02:00
feb8abca95 New translations builder.json (Tamil) 2023-04-11 08:36:46 +02:00
75c83bd91d New translations builder.json (Khmer) 2023-04-11 08:36:45 +02:00
f6d5897ed3 New translations landing.json (Chinese Simplified) 2023-04-11 08:36:44 +02:00
ed356763a1 New translations landing.json (Ukrainian) 2023-04-11 08:36:43 +02:00
4847246d84 New translations landing.json (Turkish) 2023-04-11 08:36:42 +02:00
a0ae6cb77e New translations landing.json (Serbian (Cyrillic)) 2023-04-11 08:36:42 +02:00
2aa2550be0 New translations landing.json (Russian) 2023-04-11 08:36:41 +02:00
df39913d49 New translations landing.json (Polish) 2023-04-11 08:36:40 +02:00
2225505d48 New translations landing.json (Norwegian) 2023-04-11 08:36:39 +02:00
afe20e61ee New translations landing.json (Dutch) 2023-04-11 08:36:38 +02:00
794e9c6511 New translations landing.json (Japanese) 2023-04-11 08:36:37 +02:00
e7e423bf29 New translations landing.json (Hungarian) 2023-04-11 08:36:35 +02:00
2173297207 New translations landing.json (Finnish) 2023-04-11 08:36:34 +02:00
b091cfa474 New translations landing.json (Greek) 2023-04-11 08:36:33 +02:00
057bb3a414 New translations landing.json (Czech) 2023-04-11 08:36:33 +02:00
c1442c9acc New translations landing.json (Catalan) 2023-04-11 08:36:32 +02:00
977f1beafd New translations landing.json (Bulgarian) 2023-04-11 08:36:31 +02:00
39ee710e97 New translations landing.json (Arabic) 2023-04-11 08:36:30 +02:00
1d1841c8db New translations builder.json (Indonesian) 2023-04-11 08:36:29 +02:00
3e44774ed4 New translations builder.json (Vietnamese) 2023-04-11 08:36:28 +02:00
9e2fa01896 New translations builder.json (Chinese Simplified) 2023-04-11 08:36:28 +02:00
7811f9840c New translations builder.json (Ukrainian) 2023-04-11 08:36:27 +02:00
34425c6200 New translations builder.json (Turkish) 2023-04-11 08:36:26 +02:00
46f9fc549a New translations builder.json (Serbian (Cyrillic)) 2023-04-11 08:36:25 +02:00
237abf359b New translations builder.json (Russian) 2023-04-11 08:36:24 +02:00
c5e8739009 New translations builder.json (Polish) 2023-04-11 08:36:23 +02:00
0ea8040977 New translations builder.json (Norwegian) 2023-04-11 08:36:22 +02:00
1f10e8efe3 New translations builder.json (Dutch) 2023-04-11 08:36:21 +02:00
8c2688670e New translations builder.json (Japanese) 2023-04-11 08:36:20 +02:00
bc5d49b568 New translations builder.json (Hungarian) 2023-04-11 08:36:19 +02:00
27ea84e720 New translations builder.json (Finnish) 2023-04-11 08:36:17 +02:00
0becb66bfd New translations builder.json (Greek) 2023-04-11 08:36:16 +02:00
11f88492e9 New translations builder.json (Czech) 2023-04-11 08:36:15 +02:00
ae3e01466f New translations builder.json (Catalan) 2023-04-11 08:36:14 +02:00
5d04dd8a83 New translations builder.json (Bulgarian) 2023-04-11 08:36:13 +02:00
52c15a8151 New translations builder.json (Arabic) 2023-04-11 08:36:12 +02:00
f6104e7051 Bump martinbeentjes/npm-get-version-action from 1.2.3 to 1.3.1
Bumps [martinbeentjes/npm-get-version-action](https://github.com/martinbeentjes/npm-get-version-action) from 1.2.3 to 1.3.1.
- [Release notes](https://github.com/martinbeentjes/npm-get-version-action/releases)
- [Commits](https://github.com/martinbeentjes/npm-get-version-action/compare/v1.2.3...v1.3.1)

---
updated-dependencies:
- dependency-name: martinbeentjes/npm-get-version-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-10 03:09:34 +00:00
ed710f6fe5 hotfix for docker CMD script 2023-04-06 15:41:00 +02:00
7e6e239d7f Merge pull request #1279 from AmruthPillai/i18n_main
New Crowdin updates
2023-04-06 15:04:42 +02:00
b4381a22f3 remove VERSION env dependency from server 2023-04-06 15:03:53 +02:00
ba6ca4d220 update build commands for pnpm on Dockerfile 2023-04-06 14:42:36 +02:00
5486906b05 use corepack to install pnpm, over regular method 2023-04-06 13:08:51 +02:00
7348b295cb upgrade gradle version from 7.4.0 to 7.4.2 2023-04-06 12:40:57 +02:00
025762fdf6 update Gradle distributions on Android App 2023-04-06 11:58:00 +02:00
96411cdb90 remove turbo from the workspace 2023-04-06 11:50:28 +02:00
835f453384 New translations dashboard.json (Italian) 2023-04-05 22:56:45 +02:00
cc475ae1e9 New translations common.json (Italian) 2023-04-05 22:56:44 +02:00
a5249ec646 New translations modals.json (Italian) 2023-04-05 22:56:42 +02:00
d0e3090421 New translations landing.json (Italian) 2023-04-05 22:56:39 +02:00
14f68c8937 New translations builder.json (Italian) 2023-04-05 22:56:37 +02:00
9c0c6076b3 update pnpm in dockerfile 2023-04-05 09:25:28 +02:00
36bf729161 update dependencies, fix typescript issues, optimize lodash imports 2023-04-05 09:06:49 +02:00
3a430ad98c bump up version to 3.6.19 2023-04-04 23:47:28 +02:00
90a8610dd7 update dependencies 2023-04-04 23:47:02 +02:00
d62ddab140 Merge pull request #1276 from AmruthPillai/dependabot/gradle/app/org.jetbrains.kotlin.android-1.8.20
Bump org.jetbrains.kotlin.android from 1.8.10 to 1.8.20 in /app
2023-04-04 12:53:30 +02:00
ca0186bb67 Merge pull request #1268 from AmruthPillai/dependabot/docker/server/playwright-v1.32.1-focal
Bump playwright from v1.30.0-focal to v1.32.1-focal in /server
2023-04-04 12:44:15 +02:00
88ac8389ea Merge pull request #1267 from AmruthPillai/dependabot/github_actions/actions/checkout-3.5.0
Bump actions/checkout from 3.3.0 to 3.5.0
2023-04-04 11:38:14 +02:00
2f3864fff2 Merge pull request #1254 from AmruthPillai/dependabot/github_actions/docker/setup-buildx-action-2.5.0
Bump docker/setup-buildx-action from 2.4.0 to 2.5.0
2023-04-04 11:38:03 +02:00
7878e52cc4 Merge pull request #1227 from AmruthPillai/i18n_main
New Crowdin updates
2023-04-04 11:37:51 +02:00
08b1967a4e Bump org.jetbrains.kotlin.android from 1.8.10 to 1.8.20 in /app
Bumps [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) from 1.8.10 to 1.8.20.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/commits)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.android
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-03 03:02:02 +00:00
b870ca8297 New translations dashboard.json (Korean) 2023-04-01 21:34:54 +02:00
1507c54671 New translations common.json (Korean) 2023-04-01 21:34:53 +02:00
0984ca4daf New translations modals.json (Korean) 2023-04-01 21:34:51 +02:00
438798f8de New translations landing.json (Korean) 2023-04-01 21:34:49 +02:00
27aadb8948 New translations builder.json (Korean) 2023-04-01 21:34:47 +02:00
244a4118cf New translations common.json (Korean) 2023-04-01 20:24:02 +02:00
cde320ce46 New translations dashboard.json (Hebrew) 2023-03-30 11:44:14 +02:00
4772df7618 New translations modals.json (Hebrew) 2023-03-30 11:44:11 +02:00
ecb95b35f3 New translations landing.json (Hebrew) 2023-03-30 11:44:07 +02:00
24b09af563 New translations builder.json (Hebrew) 2023-03-30 11:44:03 +02:00
9471fb4169 New translations dashboard.json (Hebrew) 2023-03-30 10:38:01 +02:00
2f296d6f08 New translations common.json (Hebrew) 2023-03-30 10:38:00 +02:00
cd3d3caa15 New translations modals.json (Hebrew) 2023-03-30 10:37:57 +02:00
440eefe46e Bump playwright from v1.30.0-focal to v1.32.1-focal in /server
Bumps playwright from v1.30.0-focal to v1.32.1-focal.

---
updated-dependencies:
- dependency-name: playwright
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-27 02:59:00 +00:00
5787e2badb Bump actions/checkout from 3.3.0 to 3.5.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.3.0 to 3.5.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.3.0...v3.5.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-27 02:58:28 +00:00
c235e5ab16 Bump docker/setup-buildx-action from 2.4.0 to 2.5.0
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.4.0 to 2.5.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v2.4.0...v2.5.0)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-13 02:59:14 +00:00
f584c70f27 New translations landing.json (Danish) 2023-02-17 04:15:04 +05:30
3aa0279519 New translations builder.json (Danish) 2023-02-17 04:15:00 +05:30
6830aec2f9 New translations landing.json (Danish) 2023-02-17 01:27:01 +05:30
9a3d7af325 New translations common.json (French) 2023-02-12 19:25:54 +05:30
52f7e8557f New translations modals.json (French) 2023-02-12 19:25:50 +05:30
12c17d1c7c New translations landing.json (French) 2023-02-12 19:25:47 +05:30
67918187a1 New translations builder.json (French) 2023-02-12 19:25:46 +05:30
dcbc0c2b45 New translations dashboard.json (French) 2023-02-12 16:57:35 +05:30
26b6a741c2 New translations builder.json (French) 2023-02-12 16:57:29 +05:30
d7064129e8 Merge pull request #1225 from raphaelcangucu/feature.pt-BR
Translation fixes on LeftSideBar
2023-02-10 08:33:56 +05:30
279dd36a13 Fix translations for other languages 2023-02-08 19:19:48 -03:00
49e47b28de fix date and start to translate to pt-br 2023-02-08 15:43:23 -03:00
a782343e0a Merge pull request #1218 from AmruthPillai/dependabot/gradle/app/org.jetbrains.kotlin.android-1.8.10
Bump org.jetbrains.kotlin.android from 1.8.0 to 1.8.10 in /app
2023-02-08 02:03:17 +05:30
1e7821a46d Merge pull request #1217 from AmruthPillai/dependabot/github_actions/docker/setup-buildx-action-2.4.0
Bump docker/setup-buildx-action from 2.3.0 to 2.4.0
2023-02-08 02:03:08 +05:30
f7bea5a218 Merge pull request #1216 from AmruthPillai/dependabot/github_actions/docker/build-push-action-4.0.0
Bump docker/build-push-action from 3.3.0 to 4.0.0
2023-02-08 02:02:57 +05:30
05fa4f3192 Merge pull request #1190 from AmruthPillai/i18n_main
New Crowdin updates
2023-02-08 02:02:46 +05:30
ed357f0ebc Merge pull request #1215 from C4illin/main
Add ISO 8601 option
2023-02-08 02:02:36 +05:30
1774832a58 Bump org.jetbrains.kotlin.android from 1.8.0 to 1.8.10 in /app
Bumps [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) from 1.8.0 to 1.8.10.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/v1.8.10/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v1.8.0...v1.8.10)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.android
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-06 02:25:09 +00:00
2837befd52 Bump docker/setup-buildx-action from 2.3.0 to 2.4.0
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.3.0 to 2.4.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v2.3.0...v2.4.0)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-06 02:20:21 +00:00
38d866c0c2 Bump docker/build-push-action from 3.3.0 to 4.0.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3.3.0 to 4.0.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v3.3.0...v4.0.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-06 02:20:16 +00:00
87c7acf4f1 New translations modals.json (Swedish) 2023-02-06 01:53:14 +01:00
1bd68118ce New translations landing.json (Swedish) 2023-02-06 01:53:11 +01:00
5c34b28c80 New translations builder.json (Swedish) 2023-02-06 01:53:08 +01:00
c550183720 Add ISO 8601 option 2023-02-05 23:28:21 +01:00
3605579b1b Merge pull request #1206 from AmruthPillai/dependabot/github_actions/docker/setup-buildx-action-2.3.0
Bump docker/setup-buildx-action from 2.2.1 to 2.3.0
2023-01-30 08:40:37 +01:00
fa2e28688f Merge pull request #1207 from AmruthPillai/dependabot/docker/server/playwright-v1.30.0-focal
Bump playwright from v1.29.2-focal to v1.30.0-focal in /server
2023-01-30 08:40:27 +01:00
20f1031e28 Bump playwright from v1.29.2-focal to v1.30.0-focal in /server
Bumps playwright from v1.29.2-focal to v1.30.0-focal.

---
updated-dependencies:
- dependency-name: playwright
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-30 02:17:52 +00:00
292cb6d0ed Bump docker/setup-buildx-action from 2.2.1 to 2.3.0
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.2.1 to 2.3.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v2.2.1...v2.3.0)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-30 02:16:52 +00:00
45f2dc1cfc Merge pull request #1195 from busches/castform-masthead-spacing
fix: extra whitespace in Castform header
2023-01-23 13:10:56 +01:00
e319dd3e3d fix: extra whitespace in Castform header
Using the Castform template without a summary, still has extra whitespace for the summary. This commit fixes the extra whitespace to not appear when no summary is present.
2023-01-22 17:48:27 -06:00
9678f7a6e5 New translations modals.json (Portuguese) 2023-01-22 22:58:07 +01:00
0cca4e21fb New translations landing.json (Portuguese) 2023-01-22 22:58:04 +01:00
f6758f191d New translations builder.json (Portuguese) 2023-01-22 22:58:01 +01:00
983662f877 New translations common.json (German) 2023-01-21 00:50:00 +01:00
c7fc28a5c5 New translations modals.json (German) 2023-01-21 00:49:57 +01:00
1f7c33e805 New translations common.json (German) 2023-01-20 23:41:22 +01:00
437cc331a8 New translations landing.json (German) 2023-01-20 23:41:15 +01:00
aef51375b8 New translations builder.json (German) 2023-01-20 23:41:14 +01:00
bdd65968e5 New translations dashboard.json (Spanish) 2023-01-20 19:04:27 +01:00
061a789c18 New translations modals.json (Spanish) 2023-01-20 19:04:23 +01:00
68507d0501 New translations builder.json (Spanish) 2023-01-20 19:04:19 +01:00
1e28c5adfa New translations modals.json (Romanian) 2023-01-20 10:41:28 +01:00
3b09550ebd New translations landing.json (Romanian) 2023-01-20 10:41:25 +01:00
16aef9cbec New translations builder.json (Romanian) 2023-01-20 10:41:22 +01:00
b24da90ba7 bump up version to 3.6.18 2023-01-19 07:55:12 +01:00
2aa7dbd3ad Merge pull request #1188 from AmruthPillai/feat/implement-self-serve-account-deletion
[Feature] Implement Self-Serve Account Deletion
2023-01-19 07:53:49 +01:00
9f8f2c4b8b remove console.log 2023-01-19 07:52:59 +01:00
5331ecccc1 i18n-ize the user profile modal 2023-01-19 07:51:43 +01:00
f2ec86940c Merge branch 'main' into feat/implement-self-serve-account-deletion 2023-01-19 07:34:11 +01:00
cd74e707ba update dependencies 2023-01-19 07:33:15 +01:00
ff101dbfac [Feature] Implement Self-Serve Account Deletion 2023-01-19 00:11:15 +01:00
5024c19f87 fix error messages not displaying toasts sometimes, add axios error interceptors 2023-01-18 21:36:05 +01:00
c9850b5815 Merge pull request #1183 from AmruthPillai/i18n_main
New Crowdin updates
2023-01-18 20:37:54 +01:00
6fe4e7d7e1 Merge pull request #1184 from AmruthPillai/dependabot/github_actions/docker/build-push-action-3.3.0
Bump docker/build-push-action from 3.2.0 to 3.3.0
2023-01-16 10:53:29 +01:00
a5b8b91e82 Bump docker/build-push-action from 3.2.0 to 3.3.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3.2.0 to 3.3.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v3.2.0...v3.3.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-16 02:33:23 +00:00
cc7095adc3 New translations landing.json (Spanish) 2023-01-16 01:53:40 +01:00
e2703f55aa New translations builder.json (Spanish) 2023-01-16 01:53:37 +01:00
8c5849c988 Merge pull request #1172 from AmruthPillai/dependabot/github_actions/actions/checkout-3.3.0
Bump actions/checkout from 3.2.0 to 3.3.0
2023-01-09 10:02:35 +01:00
5322ab2420 Merge pull request #1173 from AmruthPillai/dependabot/docker/server/playwright-v1.29.2-focal
Bump playwright from v1.29.1-focal to v1.29.2-focal in /server
2023-01-09 10:02:27 +01:00
b84e6bcfb1 Bump playwright from v1.29.1-focal to v1.29.2-focal in /server
Bumps playwright from v1.29.1-focal to v1.29.2-focal.

---
updated-dependencies:
- dependency-name: playwright
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-09 02:06:20 +00:00
a4ab0174c7 Bump actions/checkout from 3.2.0 to 3.3.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.2.0 to 3.3.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.2.0...v3.3.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-09 02:05:40 +00:00
7e93b5a757 update dependencies 2023-01-04 22:15:13 +01:00
044820fa71 Update README.md 2023-01-04 16:05:30 +01:00
322178e8a4 Merge pull request #1165 from JadinHeaston/main
Fixing unconditional ```http://``` prefix.
2023-01-03 23:22:17 +01:00
6358fbad30 Adding check for ``addHttp()` to see if `mailto:` or `tel:`` is present.Signed-off-by: Jadin Heaston <jadin.heaston@como.gov> 2023-01-03 13:57:07 -06:00
207 changed files with 7322 additions and 4741 deletions

View File

@ -2,7 +2,6 @@
/app
# Build Artifacts
**/.turbo
/server/dist
/client/.next

View File

@ -16,11 +16,11 @@ jobs:
steps:
- name: Checkout the repository
uses: actions/checkout@v3.2.0
uses: actions/checkout@v3.5.2
- id: version
name: App Version
uses: martinbeentjes/npm-get-version-action@v1.2.3
uses: martinbeentjes/npm-get-version-action@v1.3.1
- name: Set up QEMU
uses: docker/setup-qemu-action@v2.1.0
@ -29,7 +29,7 @@ jobs:
- id: buildx
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2.2.1
uses: docker/setup-buildx-action@v2.5.0
- name: Login to Docker Hub
uses: docker/login-action@v2.1.0
@ -45,7 +45,7 @@ jobs:
password: ${{ secrets.GH_TOKEN }}
- name: Build and Push Docker Image
uses: docker/build-push-action@v3.2.0
uses: docker/build-push-action@v4.0.0
with:
context: .
push: true

3
.gitignore vendored
View File

@ -10,8 +10,5 @@ node_modules
# macOS
.DS_Store
# Turbo
.turbo
# Intellij
.idea

View File

@ -134,6 +134,10 @@ Reactive Resume would be nothing without the folks who supported me and kept the
### [GitHub Sponsor](https://github.com/sponsors/AmruthPillai)
### [PayPal](https://paypal.me/RajaRajanA)
## GitHub Star History
[![Star History Chart](https://api.star-history.com/svg?repos=AmruthPillai/Reactive-Resume&type=Date)](https://star-history.com/#AmruthPillai/Reactive-Resume&Date)
## Infrastructure
- [Next.js](https://nextjs.org/), frontend

View File

@ -12,8 +12,8 @@ android {
targetSdk 32
versionCode 3
versionName "1.0"
resConfigs 'en'
resConfigs "en"
}
buildTypes {
@ -38,6 +38,7 @@ android {
buildFeatures {
viewBinding true
}
namespace 'me.rxresu.app'
}
dependencies {

View File

@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="me.rxresu.app">
xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET"/>

View File

@ -6,7 +6,6 @@ import android.webkit.WebView
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
private lateinit var webView: WebView
private var url = "https://rxresu.me"

View File

@ -1,7 +1,7 @@
plugins {
id 'com.android.application' version '7.1.2' apply false
id 'com.android.library' version '7.1.2' apply false
id 'org.jetbrains.kotlin.android' version '1.8.0' apply false
id 'com.android.application' version '7.4.2' apply false
id 'com.android.library' version '7.4.2' apply false
id 'org.jetbrains.kotlin.android' version '1.8.20' apply false
}
task clean(type: Delete) {

View File

@ -1,6 +1,6 @@
#Wed Mar 09 21:34:49 CET 2022
distributionBase=GRADLE_USER_HOME
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME

View File

@ -2,12 +2,12 @@ FROM node:lts-alpine AS base
WORKDIR /app
RUN apk add --no-cache g++ git curl make python3 libc6-compat \
&& curl -f https://get.pnpm.io/v6.16.js | node - add --global pnpm
RUN apk add --no-cache g++ git make curl python3 libc6-compat \
&& corepack enable && corepack prepare pnpm@latest --activate
FROM base as dependencies
COPY package.json pnpm-*.yaml turbo.json ./
COPY package.json pnpm-*.yaml ./
COPY ./schema/package.json ./schema/package.json
COPY ./client/package.json ./client/package.json
@ -21,11 +21,12 @@ COPY --from=dependencies /app/node_modules ./node_modules
COPY --from=dependencies /app/schema/node_modules ./schema/node_modules
COPY --from=dependencies /app/client/node_modules ./client/node_modules
RUN pnpm run build --filter client
RUN pnpm run --filter schema build \
&& pnpm run --filter client build
FROM base as production
COPY --from=builder /app/package.json /app/pnpm-*.yaml /app/turbo.json ./
COPY --from=builder /app/package.json /app/pnpm-*.yaml ./
COPY --from=builder /app/client/package.json ./client/package.json
RUN pnpm install --filter client --prod --frozen-lockfile --workspace-root
@ -42,4 +43,4 @@ ENV PORT 3000
HEALTHCHECK --interval=30s --timeout=20s --retries=3 --start-period=15s \
CMD curl -fSs localhost:3000 || exit 1
CMD [ "pnpm", "run", "start", "--filter", "client" ]
CMD [ "pnpm", "run", "start" ]

View File

@ -14,11 +14,11 @@ import {
import { ButtonBase, Divider, Tooltip, useMediaQuery, useTheme } from '@mui/material';
import clsx from 'clsx';
import dayjs from 'dayjs';
import { get } from 'lodash';
import get from 'lodash/get';
import { useTranslation } from 'next-i18next';
import toast from 'react-hot-toast';
import { useMutation } from 'react-query';
import { ReactZoomPanPinchRef } from 'react-zoom-pan-pinch';
import { ReactZoomPanPinchHandlers } from 'react-zoom-pan-pinch';
import { ActionCreators } from 'redux-undo';
import { ServerError } from '@/services/axios';
@ -29,7 +29,7 @@ import getResumeUrl from '@/utils/getResumeUrl';
import styles from './ArtboardController.module.scss';
const ArtboardController: React.FC<ReactZoomPanPinchRef> = ({ zoomIn, zoomOut, centerView }) => {
const ArtboardController: React.FC<ReactZoomPanPinchHandlers> = ({ zoomIn, zoomOut, centerView }) => {
const { t } = useTranslation();
const theme = useTheme();

View File

@ -53,13 +53,12 @@ const Header = () => {
const [anchorEl, setAnchorEl] = useState<HTMLButtonElement | null>(null);
const { mutateAsync: duplicateMutation } = useMutation<Resume, ServerError, DuplicateResumeParams>(duplicateResume);
const { mutateAsync: deleteMutation } = useMutation<void, ServerError, DeleteResumeParams>(deleteResume);
const resume = useAppSelector((state) => state.resume.present);
const { left, right } = useAppSelector((state) => state.build.sidebar);
const { mutateAsync: deleteMutation } = useMutation<void, ServerError, DeleteResumeParams>(deleteResume);
const { mutateAsync: duplicateMutation } = useMutation<Resume, ServerError, DuplicateResumeParams>(duplicateResume);
const name = useMemo(() => get(resume, 'name'), [resume]);
useEffect(() => {

View File

@ -27,6 +27,7 @@ const LeftSidebar = () => {
const isDesktop = useMediaQuery(theme.breakpoints.up('lg'));
const sections = useAppSelector((state) => state.resume.present.sections);
const { open } = useAppSelector((state) => state.build.sidebar.left);
const customSections = useMemo(() => getCustomSections(sections), [sections]);
@ -122,14 +123,19 @@ const LeftSidebar = () => {
arrow
key={id}
placement="right"
title={get(sections, `${id}.name`, t<string>(`builder.leftSidebar.sections.${id}.heading`)) as string}
title={t<string>(`builder.leftSidebar.sections.${id}.heading`, get(sections, `${id}.name`))}
>
<IconButton onClick={() => handleClick(id)}>{icon}</IconButton>
</Tooltip>
))}
{customSections.map(({ id }) => (
<Tooltip key={id} title={get(sections, `${id}.name`, '') as string} placement="right" arrow>
<Tooltip
key={id}
title={t<string>(`builder.leftSidebar.sections.${id}.heading`, get(sections, `${id}.name`))}
placement="right"
arrow
>
<IconButton onClick={() => id && handleClick(id)}>
<Star />
</IconButton>

View File

@ -98,7 +98,9 @@ const Section: React.FC<Props> = ({
<SectionSettings path={path} />
<Button variant="outlined" startIcon={<Add />} onClick={handleAdd}>
{t<string>('builder.common.actions.add', { token: heading })}
{t<string>('builder.common.actions.add', {
token: t<string>(`builder.leftSidebar.${path}.heading`, { defaultValue: heading }),
})}
</Button>
</footer>

View File

@ -1,5 +1,5 @@
import { Divider, IconButton, SwipeableDrawer, Tooltip, useMediaQuery, useTheme } from '@mui/material';
import { capitalize } from 'lodash';
import capitalize from 'lodash/capitalize';
import { useTranslation } from 'next-i18next';
import Avatar from '@/components/shared/Avatar';

View File

@ -6,15 +6,17 @@ import { useState } from 'react';
import { logout } from '@/store/auth/authSlice';
import { useAppDispatch, useAppSelector } from '@/store/hooks';
import { setModalState } from '@/store/modal/modalSlice';
import getGravatarUrl from '@/utils/getGravatarUrl';
import styles from './Avatar.module.scss';
type Props = {
size?: number;
interactive?: boolean;
};
const Avatar: React.FC<Props> = ({ size = 64 }) => {
const Avatar: React.FC<Props> = ({ size = 64, interactive = true }) => {
const router = useRouter();
const { t } = useTranslation();
@ -34,6 +36,11 @@ const Avatar: React.FC<Props> = ({ size = 64 }) => {
setAnchorEl(null);
};
const handleOpenProfile = () => {
dispatch(setModalState({ modal: 'auth.profile', state: { open: true } }));
handleClose();
};
const handleLogout = () => {
dispatch(logout());
handleClose();
@ -43,7 +50,7 @@ const Avatar: React.FC<Props> = ({ size = 64 }) => {
return (
<>
<IconButton onClick={handleOpen}>
<IconButton onClick={handleOpen} disabled={!interactive}>
<Image
width={size}
height={size}
@ -54,9 +61,9 @@ const Avatar: React.FC<Props> = ({ size = 64 }) => {
</IconButton>
<Menu anchorEl={anchorEl} onClose={handleClose} open={Boolean(anchorEl)}>
<MenuItem>
<MenuItem onClick={handleOpenProfile}>
<div>
<span className="text-xs opacity-50">{t<string>('common.avatar.menu.greeting')}</span>
<span className="text-xs opacity-50">{t<string>('common.avatar.menu.greeting')},</span>
<p>{user?.name}</p>
</div>
</MenuItem>

View File

@ -62,7 +62,7 @@ const Heading: React.FC<Props> = ({
{editMode ? (
<TextField size="small" value={heading} className="w-3/4" onChange={handleChange} />
) : (
<h1>{heading}</h1>
<h1>{t<string>(`builder.leftSidebar.${path}.heading`, { defaultValue: heading })}</h1>
)}
</div>

View File

@ -1,5 +1,5 @@
import clsx from 'clsx';
import { isEmpty } from 'lodash';
import isEmpty from 'lodash/isEmpty';
import ReactMarkdown from 'react-markdown';
import rehypeKatex from 'rehype-katex';
import remarkGfm from 'remark-gfm';

View File

@ -1,7 +1,6 @@
import { TextField } from '@mui/material';
import { DatePicker } from '@mui/x-date-pickers';
import { DatePicker } from '@mui/x-date-pickers/DatePicker';
import dayjs from 'dayjs';
import { isEmpty } from 'lodash';
import get from 'lodash/get';
import { useEffect, useState } from 'react';
@ -22,7 +21,6 @@ const ResumeInput: React.FC<Props> = ({ type = 'text', label, path, className, m
const dispatch = useAppDispatch();
const stateValue = useAppSelector((state) => get(state.resume.present, path, ''));
const dateFormat = useAppSelector((state) => state.resume.present.metadata.date.format);
useEffect(() => {
setValue(stateValue);
@ -57,15 +55,14 @@ const ResumeInput: React.FC<Props> = ({ type = 'text', label, path, className, m
if (type === 'date') {
return (
<DatePicker
showToolbar
openTo="year"
label={label}
value={value}
toolbarFormat={dateFormat}
value={dayjs(value)}
views={['year', 'month', 'day']}
renderInput={(params) => <TextField {...params} error={false} className={className} />}
onChange={(date: Date | null, keyboardInputValue: string | undefined) => {
isEmpty(keyboardInputValue) && onChangeValue('');
slots={{
textField: (params) => <TextField {...params} error={false} className={className} />,
}}
onChange={(date: dayjs.Dayjs | null) => {
date && dayjs(date).isValid() && onChangeValue(dayjs(date).format('YYYY-MM-DD'));
}}
/>

View File

@ -37,6 +37,7 @@ export const languages: Language[] = [
{ code: 'or', name: 'Odia', localName: 'ଓଡ଼ିଆ' },
{ code: 'pl', name: 'Polish', localName: 'Polski' },
{ code: 'pt', name: 'Portuguese', localName: 'Português' },
{ code: 'pt-BR', name: 'Brazilian Portuguese', localName: 'Brasil' },
{ code: 'ro', name: 'Romanian', localName: 'limba română' },
{ code: 'ru', name: 'Russian', localName: 'русский' },
{ code: 'sr', name: 'Serbian', localName: 'српски језик' },

View File

@ -17,3 +17,7 @@ export const REDDIT_URL = 'https://www.reddit.com/r/reactiveresume/';
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';
// Default Error Message
export const DEFAULT_ERROR_MESSAGE =
'Something went wrong while performing this action, please report this issue on GitHub.';

View File

@ -4,7 +4,7 @@ import { Login, Visibility, VisibilityOff } from '@mui/icons-material';
import { Button, IconButton, InputAdornment, TextField } from '@mui/material';
import { CredentialResponse, GoogleLogin } from '@react-oauth/google';
import Joi from 'joi';
import { isEmpty } from 'lodash';
import isEmpty from 'lodash/isEmpty';
import { Trans, useTranslation } from 'next-i18next';
import { useMemo, useState } from 'react';
import { Controller, useForm } from 'react-hook-form';
@ -62,14 +62,7 @@ const LoginModal: React.FC = () => {
};
const onSubmit = async ({ identifier, password }: FormData) => {
await loginMutation(
{ identifier, password },
{
onError: (error) => {
toast.error(error.message);
},
}
);
await loginMutation({ identifier, password });
handleClose();
};
@ -86,14 +79,14 @@ const LoginModal: React.FC = () => {
const handleLoginWithGoogle = async (response: CredentialResponse) => {
if (response.credential) {
await loginWithGoogleMutation({ credential: response.credential }, { onError: handleLoginWithGoogleError });
await loginWithGoogleMutation({ credential: response.credential }, { onError: handleGoogleLoginError });
handleClose();
}
};
const handleLoginWithGoogleError = () => {
toast("Please try logging in using email/password, or use another browser that supports Google's One Tap API.");
const handleGoogleLoginError = () => {
toast.error("Google doesn't seem to be responding, please try logging in using email/password instead.");
};
const PasswordVisibility = (): React.ReactElement => {
@ -117,7 +110,7 @@ const LoginModal: React.FC = () => {
footerChildren={
<div className="flex gap-4">
{!isEmpty(env('GOOGLE_CLIENT_ID')) && (
<GoogleLogin onSuccess={handleLoginWithGoogle} onError={handleLoginWithGoogleError} />
<GoogleLogin onSuccess={handleLoginWithGoogle} onError={handleGoogleLoginError} />
)}
<Button type="submit" onClick={handleSubmit(onSubmit)} disabled={isLoading}>

View File

@ -4,7 +4,7 @@ import { HowToReg } from '@mui/icons-material';
import { Button, TextField } from '@mui/material';
import { CredentialResponse, GoogleLogin } from '@react-oauth/google';
import Joi from 'joi';
import { isEmpty } from 'lodash';
import isEmpty from 'lodash/isEmpty';
import { Trans, useTranslation } from 'next-i18next';
import { Controller, useForm } from 'react-hook-form';
import toast from 'react-hot-toast';
@ -81,14 +81,14 @@ const RegisterModal: React.FC = () => {
const handleLoginWithGoogle = async (response: CredentialResponse) => {
if (response.credential) {
await loginWithGoogleMutation({ credential: response.credential }, { onError: handleLoginWithGoogleError });
await loginWithGoogleMutation({ credential: response.credential }, { onError: handleGoogleLoginError });
handleClose();
}
};
const handleLoginWithGoogleError = () => {
toast("Please try logging in using email/password, or use another browser that supports Google's One Tap API.");
const handleGoogleLoginError = () => {
toast("Google doesn't seem to be responding, please try logging in using email/password instead.");
};
return (
@ -100,7 +100,7 @@ const RegisterModal: React.FC = () => {
footerChildren={
<div className="flex gap-4">
{!isEmpty(env('GOOGLE_CLIENT_ID')) && (
<GoogleLogin onSuccess={handleLoginWithGoogle} onError={handleLoginWithGoogleError} />
<GoogleLogin onSuccess={handleLoginWithGoogle} onError={handleGoogleLoginError} />
)}
<Button type="submit" onClick={handleSubmit(onSubmit)} disabled={isLoading}>

View File

@ -0,0 +1,161 @@
import { joiResolver } from '@hookform/resolvers/joi';
import { CrisisAlert, ManageAccounts } from '@mui/icons-material';
import { Button, Divider, TextField } from '@mui/material';
import Joi from 'joi';
import { useRouter } from 'next/router';
import { Trans, useTranslation } from 'next-i18next';
import { useEffect, useMemo, useState } from 'react';
import { Controller, useForm } from 'react-hook-form';
import { useMutation } from 'react-query';
import Avatar from '@/components/shared/Avatar';
import BaseModal from '@/components/shared/BaseModal';
import { deleteAccount, updateProfile, UpdateProfileParams } from '@/services/auth';
import { ServerError } from '@/services/axios';
import { useAppDispatch, useAppSelector } from '@/store/hooks';
import { setModalState } from '@/store/modal/modalSlice';
type FormData = {
name: string;
email: string;
};
const defaultState: FormData = {
name: '',
email: '',
};
const schema = Joi.object({
name: Joi.string().required(),
email: Joi.string()
.email({ tlds: { allow: false } })
.required(),
});
const UserProfileModal = () => {
const router = useRouter();
const { t } = useTranslation();
const dispatch = useAppDispatch();
const [deleteText, setDeleteText] = useState<string>('');
const isDeleteTextValid = useMemo(() => deleteText.toLowerCase() === 'delete', [deleteText]);
const user = useAppSelector((state) => state.auth.user);
const { open: isOpen } = useAppSelector((state) => state.modal['auth.profile']);
const { mutateAsync: deleteAccountMutation } = useMutation<void, ServerError>(deleteAccount);
const { mutateAsync: updateProfileMutation } = useMutation<void, ServerError, UpdateProfileParams>(updateProfile);
const { reset, getFieldState, control, handleSubmit } = useForm<FormData>({
defaultValues: defaultState,
resolver: joiResolver(schema),
});
useEffect(() => {
if (user && !getFieldState('name').isTouched && !getFieldState('email').isTouched) {
reset({ name: user.name, email: user.email });
}
}, [user]);
const handleClose = () => {
dispatch(setModalState({ modal: 'auth.profile', state: { open: false } }));
};
const handleUpdate = handleSubmit(async (data) => {
handleClose();
await updateProfileMutation({ name: data.name });
});
const handleDelete = async () => {
await deleteAccountMutation();
handleClose();
router.push('/');
};
return (
<BaseModal isOpen={isOpen} handleClose={handleClose} heading="Your Account" icon={<ManageAccounts />}>
<div className="grid gap-4">
<form className="grid gap-4 xl:w-2/3">
<div className="flex items-center gap-4">
<Avatar interactive={false} />
<div className="grid flex-1 gap-1.5">
<Controller
name="name"
control={control}
render={({ field, fieldState }) => (
<TextField
autoFocus
label={t<string>('modals.auth.profile.form.name.label')}
error={!!fieldState.error}
helperText={fieldState.error?.message}
{...field}
/>
)}
/>
<p className="pl-4 text-[10.25px] opacity-50">
<Trans t={t} i18nKey="modals.auth.profile.form.avatar.help-text">
You can update your profile picture on{' '}
<a href="https://gravatar.com/" target="_blank" rel="noreferrer">
Gravatar
</a>
</Trans>
</p>
</div>
</div>
<Controller
name="email"
control={control}
render={({ field, fieldState }) => (
<TextField
disabled
label={t<string>('modals.auth.profile.form.email.label')}
error={!!fieldState.error}
helperText={t<string>('modals.auth.profile.form.email.help-text')}
{...field}
/>
)}
/>
<div>
<Button onClick={handleUpdate}>{t<string>('modals.auth.profile.actions.save')}</Button>
</div>
</form>
<div className="my-2">
<Divider />
</div>
<div className="flex items-center gap-2">
<CrisisAlert />
<h5 className="font-medium">{t<string>('modals.auth.profile.delete-account.heading')}</h5>
</div>
<p className="text-xs opacity-75">
{t<string>('modals.auth.profile.delete-account.body', { keyword: 'delete' })}
</p>
<div className="flex max-w-xs flex-col gap-4">
<TextField
value={deleteText}
placeholder="Type 'delete' to confirm"
onChange={(e) => setDeleteText(e.target.value)}
/>
<div>
<Button variant="contained" color="error" disabled={!isDeleteTextValid} onClick={handleDelete}>
{t<string>('modals.auth.profile.delete-account.actions.delete')}
</Button>
</div>
</div>
</div>
</BaseModal>
);
};
export default UserProfileModal;

View File

@ -1,7 +1,7 @@
import { joiResolver } from '@hookform/resolvers/joi';
import { Add, DriveFileRenameOutline } from '@mui/icons-material';
import { Button, TextField } from '@mui/material';
import { DatePicker } from '@mui/x-date-pickers';
import { DatePicker } from '@mui/x-date-pickers/DatePicker';
import { Award, SectionPath } from '@reactive-resume/schema';
import dayjs from 'dayjs';
import Joi from 'joi';
@ -128,21 +128,23 @@ const AwardModal: React.FC = () => {
control={control}
render={({ field, fieldState }) => (
<DatePicker
{...field}
openTo="year"
inputRef={field.ref}
label={t<string>('builder.common.form.date.label')}
value={dayjs(field.value)}
views={['year', 'month', 'day']}
onChange={(date: Date | null, keyboardInputValue: string | undefined) => {
isEmpty(keyboardInputValue) && field.onChange('');
slots={{
textField: (params) => (
<TextField
{...params}
error={!!fieldState.error}
helperText={fieldState.error?.message || params.inputProps?.placeholder}
/>
),
}}
onChange={(date: dayjs.Dayjs | null) => {
date && dayjs(date).isValid() && field.onChange(dayjs(date).format('YYYY-MM-DD'));
}}
renderInput={(params) => (
<TextField
{...params}
error={!!fieldState.error}
helperText={fieldState.error?.message || params.inputProps?.placeholder}
/>
)}
/>
)}
/>

View File

@ -1,7 +1,7 @@
import { joiResolver } from '@hookform/resolvers/joi';
import { Add, DriveFileRenameOutline } from '@mui/icons-material';
import { Button, TextField } from '@mui/material';
import { DatePicker } from '@mui/x-date-pickers';
import { DatePicker } from '@mui/x-date-pickers/DatePicker';
import { Certificate, SectionPath } from '@reactive-resume/schema';
import dayjs from 'dayjs';
import Joi from 'joi';
@ -128,21 +128,23 @@ const CertificateModal: React.FC = () => {
control={control}
render={({ field, fieldState }) => (
<DatePicker
{...field}
openTo="year"
inputRef={field.ref}
label={t<string>('builder.common.form.date.label')}
value={dayjs(field.value)}
views={['year', 'month', 'day']}
onChange={(date: Date | null, keyboardInputValue: string | undefined) => {
isEmpty(keyboardInputValue) && field.onChange('');
slots={{
textField: (params) => (
<TextField
{...params}
error={!!fieldState.error}
helperText={fieldState.error?.message || params.inputProps?.placeholder}
/>
),
}}
onChange={(date: dayjs.Dayjs | null) => {
date && dayjs(date).isValid() && field.onChange(dayjs(date).format('YYYY-MM-DD'));
}}
renderInput={(params) => (
<TextField
{...params}
error={!!fieldState.error}
helperText={fieldState.error?.message || params.inputProps?.placeholder}
/>
)}
/>
)}
/>

View File

@ -1,7 +1,7 @@
import { joiResolver } from '@hookform/resolvers/joi';
import { Add, DriveFileRenameOutline } from '@mui/icons-material';
import { Button, Slider, TextField } from '@mui/material';
import { DatePicker } from '@mui/x-date-pickers';
import { DatePicker } from '@mui/x-date-pickers/DatePicker';
import { Custom } from '@reactive-resume/schema';
import dayjs from 'dayjs';
import Joi from 'joi';
@ -145,21 +145,23 @@ const CustomModal: React.FC = () => {
control={control}
render={({ field, fieldState }) => (
<DatePicker
{...field}
openTo="year"
inputRef={field.ref}
label={t<string>('builder.common.form.start-date.label')}
value={dayjs(field.value)}
views={['year', 'month', 'day']}
onChange={(date: Date | null, keyboardInputValue: string | undefined) => {
isEmpty(keyboardInputValue) && field.onChange('');
slots={{
textField: (params) => (
<TextField
{...params}
error={!!fieldState.error}
helperText={fieldState.error?.message || params.inputProps?.placeholder}
/>
),
}}
onChange={(date: dayjs.Dayjs | null) => {
date && dayjs(date).isValid() && field.onChange(dayjs(date).format('YYYY-MM-DD'));
}}
renderInput={(params) => (
<TextField
{...params}
error={!!fieldState.error}
helperText={fieldState.error?.message || params.inputProps?.placeholder}
/>
)}
/>
)}
/>
@ -169,21 +171,23 @@ const CustomModal: React.FC = () => {
control={control}
render={({ field, fieldState }) => (
<DatePicker
{...field}
openTo="year"
inputRef={field.ref}
label={t<string>('builder.common.form.end-date.label')}
value={dayjs(field.value)}
views={['year', 'month', 'day']}
onChange={(date: Date | null, keyboardInputValue: string | undefined) => {
isEmpty(keyboardInputValue) && field.onChange('');
slots={{
textField: (params) => (
<TextField
{...params}
error={!!fieldState.error}
helperText={fieldState.error?.message || t<string>('builder.common.form.end-date.help-text')}
/>
),
}}
onChange={(date: dayjs.Dayjs | null) => {
date && dayjs(date).isValid() && field.onChange(dayjs(date).format('YYYY-MM-DD'));
}}
renderInput={(params) => (
<TextField
{...params}
error={!!fieldState.error}
helperText={fieldState.error?.message || 'Leave this field blank, if still present'}
/>
)}
/>
)}
/>

View File

@ -1,7 +1,7 @@
import { joiResolver } from '@hookform/resolvers/joi';
import { Add, DriveFileRenameOutline } from '@mui/icons-material';
import { Button, TextField } from '@mui/material';
import { DatePicker } from '@mui/x-date-pickers';
import { DatePicker } from '@mui/x-date-pickers/DatePicker';
import { Education, SectionPath } from '@reactive-resume/schema';
import dayjs from 'dayjs';
import Joi from 'joi';
@ -167,21 +167,23 @@ const EducationModal: React.FC = () => {
control={control}
render={({ field, fieldState }) => (
<DatePicker
{...field}
openTo="year"
inputRef={field.ref}
label={t<string>('builder.common.form.start-date.label')}
value={dayjs(field.value)}
views={['year', 'month', 'day']}
onChange={(date: Date | null, keyboardInputValue: string | undefined) => {
isEmpty(keyboardInputValue) && field.onChange('');
slots={{
textField: (params) => (
<TextField
{...params}
error={!!fieldState.error}
helperText={fieldState.error?.message || params.inputProps?.placeholder}
/>
),
}}
onChange={(date: dayjs.Dayjs | null) => {
date && dayjs(date).isValid() && field.onChange(dayjs(date).format('YYYY-MM-DD'));
}}
renderInput={(params) => (
<TextField
{...params}
error={!!fieldState.error}
helperText={fieldState.error?.message || params.inputProps?.placeholder}
/>
)}
/>
)}
/>
@ -191,21 +193,23 @@ const EducationModal: React.FC = () => {
control={control}
render={({ field, fieldState }) => (
<DatePicker
{...field}
openTo="year"
inputRef={field.ref}
label={t<string>('builder.common.form.end-date.label')}
value={dayjs(field.value)}
views={['year', 'month', 'day']}
onChange={(date: Date | null, keyboardInputValue: string | undefined) => {
isEmpty(keyboardInputValue) && field.onChange('');
slots={{
textField: (params) => (
<TextField
{...params}
error={!!fieldState.error}
helperText={fieldState.error?.message || t<string>('builder.common.form.end-date.help-text')}
/>
),
}}
onChange={(date: dayjs.Dayjs | null) => {
date && dayjs(date).isValid() && field.onChange(dayjs(date).format('YYYY-MM-DD'));
}}
renderInput={(params) => (
<TextField
{...params}
error={!!fieldState.error}
helperText={fieldState.error?.message || t<string>('builder.common.form.end-date.help-text')}
/>
)}
/>
)}
/>

View File

@ -1,7 +1,7 @@
import { joiResolver } from '@hookform/resolvers/joi';
import { Add, DriveFileRenameOutline } from '@mui/icons-material';
import { Button, TextField } from '@mui/material';
import { DatePicker } from '@mui/x-date-pickers';
import { DatePicker } from '@mui/x-date-pickers/DatePicker';
import { Project, SectionPath } from '@reactive-resume/schema';
import dayjs from 'dayjs';
import Joi from 'joi';
@ -137,21 +137,23 @@ const ProjectModal: React.FC = () => {
control={control}
render={({ field, fieldState }) => (
<DatePicker
{...field}
openTo="year"
inputRef={field.ref}
label={t<string>('builder.common.form.start-date.label')}
value={dayjs(field.value)}
views={['year', 'month', 'day']}
onChange={(date: Date | null, keyboardInputValue: string | undefined) => {
isEmpty(keyboardInputValue) && field.onChange('');
slots={{
textField: (params) => (
<TextField
{...params}
error={!!fieldState.error}
helperText={fieldState.error?.message || params.inputProps?.placeholder}
/>
),
}}
onChange={(date: dayjs.Dayjs | null) => {
date && dayjs(date).isValid() && field.onChange(dayjs(date).format('YYYY-MM-DD'));
}}
renderInput={(params) => (
<TextField
{...params}
error={!!fieldState.error}
helperText={fieldState.error?.message || params.inputProps?.placeholder}
/>
)}
/>
)}
/>
@ -161,21 +163,23 @@ const ProjectModal: React.FC = () => {
control={control}
render={({ field, fieldState }) => (
<DatePicker
{...field}
openTo="year"
inputRef={field.ref}
label={t<string>('builder.common.form.end-date.label')}
value={dayjs(field.value)}
views={['year', 'month', 'day']}
onChange={(date: Date | null, keyboardInputValue: string | undefined) => {
isEmpty(keyboardInputValue) && field.onChange('');
slots={{
textField: (params) => (
<TextField
{...params}
error={!!fieldState.error}
helperText={fieldState.error?.message || t<string>('builder.common.form.end-date.help-text')}
/>
),
}}
onChange={(date: dayjs.Dayjs | null) => {
date && dayjs(date).isValid() && field.onChange(dayjs(date).format('YYYY-MM-DD'));
}}
renderInput={(params) => (
<TextField
{...params}
error={!!fieldState.error}
helperText={fieldState.error?.message || 'Leave this field blank, if still present'}
/>
)}
/>
)}
/>

View File

@ -1,7 +1,7 @@
import { joiResolver } from '@hookform/resolvers/joi';
import { Add, DriveFileRenameOutline } from '@mui/icons-material';
import { Button, TextField } from '@mui/material';
import { DatePicker } from '@mui/x-date-pickers';
import { DatePicker } from '@mui/x-date-pickers/DatePicker';
import { Publication, SectionPath } from '@reactive-resume/schema';
import dayjs from 'dayjs';
import Joi from 'joi';
@ -128,21 +128,23 @@ const PublicationModal: React.FC = () => {
control={control}
render={({ field, fieldState }) => (
<DatePicker
{...field}
openTo="year"
inputRef={field.ref}
label={t<string>('builder.common.form.date.label')}
value={dayjs(field.value)}
views={['year', 'month', 'day']}
onChange={(date: Date | null, keyboardInputValue: string | undefined) => {
isEmpty(keyboardInputValue) && field.onChange('');
slots={{
textField: (params) => (
<TextField
{...params}
error={!!fieldState.error}
helperText={fieldState.error?.message || params.inputProps?.placeholder}
/>
),
}}
onChange={(date: dayjs.Dayjs | null) => {
date && dayjs(date).isValid() && field.onChange(dayjs(date).format('YYYY-MM-DD'));
}}
renderInput={(params) => (
<TextField
{...params}
error={!!fieldState.error}
helperText={fieldState.error?.message || params.inputProps?.placeholder}
/>
)}
/>
)}
/>

View File

@ -1,7 +1,7 @@
import { joiResolver } from '@hookform/resolvers/joi';
import { Add, DriveFileRenameOutline } from '@mui/icons-material';
import { Button, TextField } from '@mui/material';
import { DatePicker } from '@mui/x-date-pickers';
import { DatePicker } from '@mui/x-date-pickers/DatePicker';
import { SectionPath, Volunteer } from '@reactive-resume/schema';
import dayjs from 'dayjs';
import Joi from 'joi';
@ -134,21 +134,23 @@ const VolunteerModal: React.FC = () => {
control={control}
render={({ field, fieldState }) => (
<DatePicker
{...field}
openTo="year"
inputRef={field.ref}
label={t<string>('builder.common.form.start-date.label')}
value={dayjs(field.value)}
views={['year', 'month', 'day']}
onChange={(date: Date | null, keyboardInputValue: string | undefined) => {
isEmpty(keyboardInputValue) && field.onChange('');
slots={{
textField: (params) => (
<TextField
{...params}
error={!!fieldState.error}
helperText={fieldState.error?.message || params.inputProps?.placeholder}
/>
),
}}
onChange={(date: dayjs.Dayjs | null) => {
date && dayjs(date).isValid() && field.onChange(dayjs(date).format('YYYY-MM-DD'));
}}
renderInput={(params) => (
<TextField
{...params}
error={!!fieldState.error}
helperText={fieldState.error?.message || params.inputProps?.placeholder}
/>
)}
/>
)}
/>
@ -158,21 +160,23 @@ const VolunteerModal: React.FC = () => {
control={control}
render={({ field, fieldState }) => (
<DatePicker
{...field}
openTo="year"
inputRef={field.ref}
label={t<string>('builder.common.form.end-date.label')}
value={dayjs(field.value)}
views={['year', 'month', 'day']}
onChange={(date: Date | null, keyboardInputValue: string | undefined) => {
isEmpty(keyboardInputValue) && field.onChange('');
slots={{
textField: (params) => (
<TextField
{...params}
error={!!fieldState.error}
helperText={fieldState.error?.message || t<string>('builder.common.form.end-date.help-text')}
/>
),
}}
onChange={(date: dayjs.Dayjs | null) => {
date && dayjs(date).isValid() && field.onChange(dayjs(date).format('YYYY-MM-DD'));
}}
renderInput={(params) => (
<TextField
{...params}
error={!!fieldState.error}
helperText={fieldState.error?.message || 'Leave this field blank, if still present'}
/>
)}
/>
)}
/>

View File

@ -1,7 +1,7 @@
import { joiResolver } from '@hookform/resolvers/joi';
import { Add, DriveFileRenameOutline } from '@mui/icons-material';
import { Button, TextField } from '@mui/material';
import { DatePicker } from '@mui/x-date-pickers';
import { DatePicker } from '@mui/x-date-pickers/DatePicker';
import { WorkExperience } from '@reactive-resume/schema';
import dayjs from 'dayjs';
import Joi from 'joi';
@ -56,8 +56,20 @@ const WorkModal: React.FC = () => {
const isEditMode = useMemo(() => !!item, [item]);
const addText = useMemo(() => t<string>('builder.common.actions.add', { token: heading }), [t, heading]);
const editText = useMemo(() => t<string>('builder.common.actions.edit', { token: heading }), [t, heading]);
const addText = useMemo(
() =>
t<string>('builder.common.actions.add', {
token: t<string>(`builder.leftSidebar.${path}.heading`, { defaultValue: heading }),
}),
[t, heading]
);
const editText = useMemo(
() =>
t<string>('builder.common.actions.edit', {
token: t<string>(`builder.leftSidebar.${path}.heading`, { defaultValue: heading }),
}),
[t, heading]
);
const { reset, control, handleSubmit } = useForm<FormData>({
defaultValues: defaultState,
@ -134,21 +146,23 @@ const WorkModal: React.FC = () => {
control={control}
render={({ field, fieldState }) => (
<DatePicker
{...field}
openTo="year"
inputRef={field.ref}
label={t<string>('builder.common.form.start-date.label')}
value={dayjs(field.value)}
views={['year', 'month', 'day']}
onChange={(date: Date | null, keyboardInputValue: string | undefined) => {
isEmpty(keyboardInputValue) && field.onChange('');
slots={{
textField: (params) => (
<TextField
{...params}
error={!!fieldState.error}
helperText={fieldState.error?.message || params.inputProps?.placeholder}
/>
),
}}
onChange={(date: dayjs.Dayjs | null) => {
date && dayjs(date).isValid() && field.onChange(dayjs(date).format('YYYY-MM-DD'));
}}
renderInput={(params) => (
<TextField
{...params}
error={!!fieldState.error}
helperText={fieldState.error?.message || params.inputProps?.placeholder}
/>
)}
/>
)}
/>
@ -158,21 +172,23 @@ const WorkModal: React.FC = () => {
control={control}
render={({ field, fieldState }) => (
<DatePicker
{...field}
openTo="year"
inputRef={field.ref}
label={t<string>('builder.common.form.end-date.label')}
value={dayjs(field.value)}
views={['year', 'month', 'day']}
onChange={(date: Date | null, keyboardInputValue: string | undefined) => {
isEmpty(keyboardInputValue) && field.onChange('');
slots={{
textField: (params) => (
<TextField
{...params}
error={!!fieldState.error}
helperText={fieldState.error?.message || t<string>('builder.common.form.end-date.help-text')}
/>
),
}}
onChange={(date: dayjs.Dayjs | null) => {
date && dayjs(date).isValid() && field.onChange(dayjs(date).format('YYYY-MM-DD'));
}}
renderInput={(params) => (
<TextField
{...params}
error={!!fieldState.error}
helperText={fieldState.error?.message || t<string>('builder.common.form.end-date.help-text')}
/>
)}
/>
)}
/>

View File

@ -6,7 +6,6 @@ import Joi from 'joi';
import { useTranslation } from 'next-i18next';
import { useEffect } from 'react';
import { Controller, useForm } from 'react-hook-form';
import toast from 'react-hot-toast';
import { useMutation } from 'react-query';
import BaseModal from '@/components/shared/BaseModal';
@ -66,15 +65,10 @@ const CreateResumeModal: React.FC = () => {
}, [name, setValue]);
const onSubmit = async ({ name, slug, isPublic }: FormData) => {
try {
await mutateAsync({ name, slug, public: isPublic });
await mutateAsync({ name, slug, public: isPublic });
await queryClient.invalidateQueries(RESUMES_QUERY);
await queryClient.invalidateQueries(RESUMES_QUERY);
handleClose();
} catch (error: any) {
toast.error(error.message);
}
handleClose();
};
const handleClose = () => {

View File

@ -68,8 +68,8 @@ const ImportExternalModal: React.FC = () => {
}
await mutateAsync({ integration, file });
queryClient.invalidateQueries(RESUMES_QUERY);
handleClose();
}
};

View File

@ -8,6 +8,7 @@ import ForgotPasswordModal from './auth/ForgotPasswordModal';
import LoginModal from './auth/LoginModal';
import RegisterModal from './auth/RegisterModal';
import ResetPasswordModal from './auth/ResetPasswordModal';
import UserProfileModal from './auth/UserProfileModal';
import AwardModal from './builder/sections/AwardModal';
import CertificateModal from './builder/sections/CertificateModal';
import CustomModal from './builder/sections/CustomModal';
@ -49,6 +50,7 @@ const ModalWrapper: React.FC = () => {
<RegisterModal />
<ForgotPasswordModal />
<ResetPasswordModal />
<UserProfileModal />
{/* Dashboard */}
<CreateResumeModal />

View File

@ -35,6 +35,7 @@ const i18nConfig = {
'or',
'pl',
'pt',
'pt-BR',
'ro',
'ru',
'sr',
@ -47,6 +48,7 @@ const i18nConfig = {
],
},
nsSeparator: '.',
returnNull: false,
localePath: path.resolve('./public/locales'),
ns: ['common', 'modals', 'landing', 'dashboard', 'builder'],
};

View File

@ -9,77 +9,74 @@
},
"dependencies": {
"@beam-australia/react-env": "^3.1.1",
"@date-io/dayjs": "^2.16.0",
"@emotion/css": "^11.10.5",
"@emotion/react": "^11.10.5",
"@emotion/styled": "^11.10.5",
"@emotion/css": "^11.10.6",
"@emotion/react": "^11.10.6",
"@emotion/styled": "^11.10.6",
"@hello-pangea/dnd": "^16.2.0",
"@hookform/resolvers": "2.9.10",
"@monaco-editor/react": "^4.4.6",
"@mui/icons-material": "^5.11.0",
"@mui/lab": "^5.0.0-alpha.114",
"@mui/material": "^5.11.3",
"@mui/system": "^5.11.2",
"@mui/x-date-pickers": "5.0.12",
"@next/env": "^13.1.1",
"@react-oauth/google": "^0.5.1",
"@reduxjs/toolkit": "^1.9.1",
"axios": "^1.2.2",
"@hookform/resolvers": "3.1.0",
"@monaco-editor/react": "^4.5.0",
"@mui/icons-material": "^5.11.16",
"@mui/lab": "^5.0.0-alpha.127",
"@mui/material": "^5.12.1",
"@mui/system": "^5.12.1",
"@mui/x-date-pickers": "6.2.1",
"@react-oauth/google": "^0.10.0",
"@reduxjs/toolkit": "^1.9.5",
"axios": "^1.3.6",
"clsx": "^1.2.1",
"dayjs": "^1.11.7",
"downloadjs": "^1.4.7",
"joi": "^17.7.0",
"joi": "^17.9.1",
"lodash": "^4.17.21",
"md5-hex": "^4.0.0",
"monaco-editor": "^0.34.1",
"monaco-editor": "^0.37.1",
"nanoid": "3.3.4",
"next": "13.1.1",
"next-i18next": "^13.0.2",
"next": "13.3.0",
"next-i18next": "^13.2.2",
"react": "^18.2.0",
"react-colorful": "^5.6.1",
"react-dnd": "16.0.1",
"react-dnd-html5-backend": "16.0.1",
"react-dom": "^18.2.0",
"react-hook-form": "^7.41.3",
"react-hook-form": "^7.43.9",
"react-hot-toast": "2.4.0",
"react-icons": "^4.7.1",
"react-markdown": "^8.0.4",
"react-query": "^3.39.2",
"react-icons": "^4.8.0",
"react-markdown": "^8.0.7",
"react-query": "^3.39.3",
"react-redux": "^8.0.5",
"react-zoom-pan-pinch": "^2.1.3",
"redux": "^4.2.0",
"react-zoom-pan-pinch": "^3.0.7",
"redux": "^4.2.1",
"redux-persist": "^6.0.0",
"redux-saga": "^1.2.2",
"redux-saga": "^1.2.3",
"redux-undo": "^1.0.1",
"rehype-katex": "^6.0.2",
"remark-gfm": "^3.0.1",
"remark-math": "^5.1.1",
"sharp": "^0.31.3",
"sharp": "^0.32.0",
"uuid": "^9.0.0",
"webfontloader": "^1.6.28"
},
"devDependencies": {
"@babel/core": "^7.20.7",
"@babel/core": "^7.21.4",
"@reactive-resume/schema": "workspace:*",
"@tailwindcss/typography": "^0.5.8",
"@tailwindcss/typography": "^0.5.9",
"@types/downloadjs": "^1.4.3",
"@types/lodash": "^4.14.191",
"@types/node": "^18.11.18",
"@types/react": "^18.0.26",
"@types/react-dom": "^18.0.10",
"@types/lodash": "^4.14.194",
"@types/node": "^18.15.12",
"@types/react": "^18.0.37",
"@types/react-dom": "^18.0.11",
"@types/react-redux": "^7.1.25",
"@types/tailwindcss": "^3.0.11",
"@types/uuid": "^9.0.0",
"@types/uuid": "^9.0.1",
"@types/webfontloader": "^1.6.35",
"autoprefixer": "^10.4.13",
"csstype": "^3.1.1",
"eslint-config-next": "^13.1.1",
"eslint-plugin-tailwindcss": "^3.8.0",
"autoprefixer": "^10.4.14",
"csstype": "^3.1.2",
"eslint-config-next": "^13.3.0",
"eslint-plugin-tailwindcss": "^3.11.0",
"eslint-plugin-unused-imports": "^2.0.0",
"next-sitemap": "^3.1.44",
"postcss": "^8.4.20",
"sass": "^1.57.1",
"tailwindcss": "^3.2.4",
"typescript": "^4.9.4"
"next-sitemap": "^4.0.7",
"postcss": "^8.4.23",
"sass": "^1.62.0",
"tailwindcss": "^3.3.1",
"typescript": "^5.0.4"
}
}

View File

@ -15,6 +15,7 @@ import toast from 'react-hot-toast';
import { useMutation, useQuery } from 'react-query';
import Page from '@/components/build/Center/Page';
import { DEFAULT_ERROR_MESSAGE } from '@/constants/index';
import { ServerError } from '@/services/axios';
import { printResumeAsPdf, PrintResumeAsPdfParams } from '@/services/printer';
import { fetchResumeByIdentifier } from '@/services/resume';
@ -105,7 +106,7 @@ const Preview: NextPage<Props> = ({ username, slug, resume: initialData }) => {
download(url);
} catch {
toast.error('Something went wrong, please try again later.');
toast.error(DEFAULT_ERROR_MESSAGE);
}
};

View File

@ -1,8 +1,8 @@
import '@/styles/globals.scss';
import env from '@beam-australia/react-env';
import DayjsAdapter from '@date-io/dayjs';
import { LocalizationProvider } from '@mui/x-date-pickers';
import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';
import { GoogleOAuthProvider } from '@react-oauth/google';
import type { AppProps } from 'next/app';
import Head from 'next/head';
@ -32,7 +32,7 @@ const App = ({ Component, pageProps }: AppProps): JSX.Element => (
</Head>
<ReduxProvider store={store}>
<LocalizationProvider dateAdapter={DayjsAdapter}>
<LocalizationProvider dateAdapter={AdapterDayjs}>
<PersistGate loading={null} persistor={persistor}>
<GoogleOAuthProvider clientId={env('GOOGLE_CLIENT_ID')}>
<QueryClientProvider client={queryClient}>

View File

@ -1,15 +1,69 @@
import { NextPage } from 'next';
import NextDocument, { DocumentContext, Head, Html, Main, NextScript } from 'next/document';
import Script from 'next/script';
const Document: NextPage = () => (
<Html lang="en">
<Head />
<Head>
<Script
id="google-tag-manager"
type="text/javascript"
strategy="afterInteractive"
dangerouslySetInnerHTML={{
__html: `(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-M9DK4S4');`,
}}
/>
<Script
id="logo-schema"
type="application/ld+json"
strategy="afterInteractive"
dangerouslySetInnerHTML={{
__html: `{
"@context": "https://schema.org",
"@type": "Organization",
"url": "https://rxresu.me",
"logo": "https://rxresu.me/images/logos/logo.svg"
}`,
}}
/>
<Script
id="software-application-schema"
type="application/ld+json"
strategy="afterInteractive"
dangerouslySetInnerHTML={{
__html: `{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "Reactive Resume",
"operatingSystem": "Windows, macOS, Linux, Android, iOS",
"applicationCategory": "BrowserApplication",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "5",
"ratingCount": "11394"
},
"offers": {
"@type": "Offer",
"price": "0"
}
}`,
}}
/>
</Head>
<body>
<Main />
<NextScript />
<script src="/__ENV.js" />
<noscript
dangerouslySetInnerHTML={{
__html: `<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-M9DK4S4" height="0" width="0" style="display:none;visibility:hidden"></iframe>`,
}}
/>
</body>
</Html>
);

View File

@ -11,7 +11,6 @@ import Link from 'next/link';
import { useRouter } from 'next/router';
import { serverSideTranslations } from 'next-i18next/serverSideTranslations';
import { useEffect } from 'react';
import toast from 'react-hot-toast';
import { useMutation, useQuery } from 'react-query';
import Page from '@/components/build/Center/Page';
@ -69,17 +68,13 @@ const Preview: NextPage<Props> = ({ shortId }) => {
const layout: string[][][] = get(resume, 'metadata.layout', []);
const handleDownload = async () => {
try {
const url = await mutateAsync({
username: resume.user.username,
slug: resume.slug,
lastUpdated: dayjs(resume.updatedAt).unix().toString(),
});
const url = await mutateAsync({
username: resume.user.username,
slug: resume.slug,
lastUpdated: dayjs(resume.updatedAt).unix().toString(),
});
download(url);
} catch {
toast.error('Something went wrong, please try again later.');
}
download(url);
};
return (

View File

@ -3,6 +3,7 @@
"actions": {
"add": "አዲስ {{token}} ጨምር",
"delete": "{{token}} አጥፋ",
"duplicate": "የተባዛ ክፍል",
"edit": "{{token}} አዘምን"
},
"columns": {
@ -80,13 +81,13 @@
"center-artboard": "መሃል የሰዕል ማሳያ",
"copy-link": "የስራ ልምድ ሰነዱን ሊንክ ቅዳ",
"export-pdf": "PDF አውጣ",
"redo": "ድገም",
"toggle-orientation": "የገጽ አቀማመጥን ቀያይር",
"toggle-page-break-line": "የገጽ መግቻ መስመርን ቀያይር",
"toggle-sidebars": "የጎን ክፍሎችን ቀይር",
"zoom-in": "አቅርብ",
"zoom-out": "አሳንስ",
"undo": "ቀልብስ",
"redo": "ድገም"
"zoom-in": "አቅርብ",
"zoom-out": "አሳንስ"
}
},
"header": {
@ -114,6 +115,9 @@
"actions": {
"photo-filters": "የፎቶ ማጣሪያዎች"
},
"birthdate": {
"label": "የትውልድ ቀን"
},
"heading": "መሰረታዊ ነገሮች",
"headline": {
"label": "ርዕስ"
@ -121,9 +125,6 @@
"name": {
"label": "ሙሉ ስም"
},
"birthdate": {
"label": "የትውልድ ቀን"
},
"photo-filters": {
"effects": {
"border": {
@ -264,14 +265,15 @@
"button": "GitHub ጉዳዮች",
"heading": "ችግሮች? የባህሪ ጥያቄዎች?"
},
"docs": "ሰነዶች",
"donate": {
"body": "Reactive Resumeን መጠቀም ከወደዱ እባክዎን መተግበሪያው እንዲሰራ እና ያለ ማስታወቂያ ሁሌም በነፃ እንዲቀጥል በተቻለዎት መጠን ለመለገስ ያስቡበት።",
"button": "ቡና ይጋብዙኝ",
"heading": "ለ Reactive Resume ይለግሱ"
},
"github": "የምንጭ ኮድ",
"docs": "ሰነዶች",
"heading": "አገናኞች"
"heading": "አገናኞች",
"reddit": "Reddit"
},
"settings": {
"global": {
@ -290,14 +292,14 @@
},
"heading": "ቅንብሮች",
"page": {
"format": {
"primary": "የወረቀት መጠን",
"secondary": "ከቆመበት ቀጥል ገጾችዎ ልኬቶችን ይወስናል"
},
"break-line": {
"primary": "መስመር መቁረጫ",
"secondary": "የA4 ገጽ ቁመትን ለመለየት በሁሉም ገጾች ላይ መስመር አሳይ"
},
"format": {
"primary": "የወረቀት መጠን",
"secondary": "ከቆመበት ቀጥል ገጾችዎ ልኬቶችን ይወስናል"
},
"heading": "ገጽ",
"orientation": {
"disabled": "አንድ ገጽ ብቻ ሲኖር ምንም ተጽእኖ የለውም",

View File

@ -20,23 +20,24 @@
"links": {
"heading": "አገናኞች",
"links": {
"docs": "ሰነዶች",
"donate": "ይለግሱ",
"github": "የምንጭ ኮድ",
"docs": "ሰነዶች",
"privacy": "የግላዊነት መመሪያ",
"reddit": "Reddit",
"service": "የአገልግሎት ውሎች"
}
},
"screenshots": {
"heading": "የገጽ እይታዎች"
},
"testimonials": {
"heading": "ምስክሮች",
"body": "ጥሩም ይሁን መጥፎ፣ ስለ Reactive Resume እና ለእርስዎ እንዴት እንደነበረ አስተያየትዎን መስማት እፈልጋለሁ።<br/>በአለም ዙሪያ በተጠቃሚዎች የተላኩ አንዳንድ መልዕክቶች እነዚሁና",
"contact": "በዚህ በኩል ልታገኙኝ <1>ኢሜል</1> ትችላላችሁ ወይም <3>በድረ-ገጽ</3> ላይ ባለው የእውቂያ ቅጽ ማግኘት ይችላሉ።"
},
"summary": {
"body": "Reactive Resume የእርስዎን የስራ ታሪክ የመፍጠር፣ የማዘመን እና የማጋራት መደበኛ ተግባራትን እንደ 1 2 3 ቀላል ለማድረግ የተሰራ ነፃ እና በነጻ የሚገኝ የስራ ልምድ ሰነድ መገንቢያ ነው። በዚህ መገልገያ የተለያዩ የስራ ልምድ ሰነዶችን በመስራት፣ ከቀጣሪዎች ወይም ከጓደኞች ጋር በማስፈንጠሪያ ማጋራት እና እንደ PDF ማተም ፣ ሁሉንም በነጻ ፣ ምንም ማስታወቂያ ሳይኖር ፣ ምንም ክትትል ሳይደረግ ፣ የመረጃዎን ትክክለኛነት እና ግላዊነት ተጠብቆ ማከናወን ይችላሉ።",
"heading": "ማጠቃለያ"
},
"testimonials": {
"body": "ጥሩም ይሁን መጥፎ፣ ስለ Reactive Resume እና ለእርስዎ እንዴት እንደነበረ አስተያየትዎን መስማት እፈልጋለሁ።<br/>በአለም ዙሪያ በተጠቃሚዎች የተላኩ አንዳንድ መልዕክቶች እነዚሁና",
"contact": "በዚህ በኩል ልታገኙኝ <1>ኢሜል</1> ትችላላችሁ ወይም <3>በድረ-ገጽ</3> ላይ ባለው የእውቂያ ቅጽ ማግኘት ይችላሉ።",
"heading": "ምስክሮች"
}
}

View File

@ -71,6 +71,31 @@
}
},
"heading": "የይለፍ ቃልዎን ዳግም ያስጀምሩ"
},
"profile": {
"heading": "መለያህ",
"form": {
"avatar": {
"help-text": "የመገለጫ ሥዕልህን በ<1>ግራቫታር ማዘመን ትችላለህ</1>"
},
"name": {
"label": "ሙሉ ስም"
},
"email": {
"label": "የ ኢሜል አድራሻ",
"help-text": "በአሁኑ ጊዜ የኢሜል አድራሻዎን ማዘመን አይቻልም፣ እባክዎ ይልቁንስ አዲስ መለያ ይፍጠሩ።"
}
},
"delete-account": {
"heading": "መለያ እና ውሂብ ሰርዝ",
"body": "መለያህን፣ ዳታህን እና ሁሉንም ከቆመበት ቀጥል ለመሰረዝ በጽሑፍ ሳጥኑ ውስጥ \"{{keyword}}\" ተይብ እና ቁልፉን ተጫን። ይህ የማይቀለበስ እርምጃ መሆኑን እና ውሂብዎን እንደገና ማምጣት እንደማይቻል እባክዎ ልብ ይበሉ።",
"actions": {
"delete": "መለያ ሰርዝ"
}
},
"actions": {
"save": "ለውጦችን አስቀምጥ"
}
}
},
"dashboard": {

View File

@ -3,6 +3,7 @@
"actions": {
"add": "إضافة {{token}} جديدة",
"delete": "حذف {{token}}",
"duplicate": "قسم مكرر",
"edit": "تحرير {{token}}"
},
"columns": {
@ -80,13 +81,13 @@
"center-artboard": "لوحة الوسط",
"copy-link": "انسخ الرابط للسيرة الذاتية",
"export-pdf": "تصدير PDF",
"redo": "إعادة",
"toggle-orientation": "تبديل اتجاه الصفحة",
"toggle-page-break-line": "تبديل سطر الصفحة",
"toggle-sidebars": "تبديل الشريط الجانبي",
"zoom-in": "تكبير",
"zoom-out": "تصغير",
"undo": "الغاء التحميل",
"redo": "إعادة"
"zoom-in": "تكبير",
"zoom-out": "تصغير"
}
},
"header": {
@ -114,6 +115,9 @@
"actions": {
"photo-filters": "فلاتر الصور"
},
"birthdate": {
"label": "تاريخ الميلاد"
},
"heading": "الأساسيات",
"headline": {
"label": "العنوان الرئيسي"
@ -121,9 +125,6 @@
"name": {
"label": "الاسم الكامل"
},
"birthdate": {
"label": "تاريخ الميلاد"
},
"photo-filters": {
"effects": {
"border": {
@ -264,14 +265,15 @@
"button": "صفحة المشاكل على \"GitHub\"",
"heading": "خلل برمجي؟ طلب وظائف ومميزات مخصصة؟"
},
"docs": "توثيق",
"donate": {
"body": "إذا أعجبك استخدام Resctive Resume ، فالرجاء التفكير في التبرع بأكبر قدر ممكن من أجل الحفاظ على استمرار التطبيق وتشغيله ، بدون إعلانات وبشكل مجاني إلى الأبد.",
"button": "إشتر لي قهوة",
"heading": "تبرع الى Reactive Resume"
},
"github": "الشفرة المصدرية",
"docs": "توثيق",
"heading": "الروابط"
"heading": "الروابط",
"reddit": "رديت"
},
"settings": {
"global": {
@ -290,14 +292,14 @@
},
"heading": "الإعدادات",
"page": {
"format": {
"primary": "حجم الورق",
"secondary": "تحدد أبعاد صفحات سيرتك الذاتية"
},
"break-line": {
"primary": "خط فاصل",
"secondary": "اعرض خط في كل الصفحات لتحديد ارتفاع صفحة A4"
},
"format": {
"primary": "حجم الورق",
"secondary": "تحدد أبعاد صفحات سيرتك الذاتية"
},
"heading": "صفحة",
"orientation": {
"disabled": "ليس له تأثير عندما تكون هناك صفحة واحدة فقط",

View File

@ -20,23 +20,24 @@
"links": {
"heading": "الروابط",
"links": {
"docs": "توثيق",
"donate": "تبرّع",
"github": "الشفرة المصدرية",
"docs": "توثيق",
"privacy": "سياسة الخصوصية",
"reddit": "رديت",
"service": "شروط الإستخدام"
}
},
"screenshots": {
"heading": "لقطات الشاشة"
},
"testimonials": {
"heading": "الآراء والتقييمات",
"body": "سواء أكان ذلك جيدًا أم سيئًا ، أود أن أسمع رأيك في \"السيرة الذاتية التفاعلية\" وكيف كانت التجربة بالنسبة لك.<br/>فيما يلي بعض الرسائل المرسلة بواسطة مستخدمين من جميع أنحاء العالم.",
"contact": "يمكنك التواصل معي من خلال <1> بريدي الإلكتروني</1> أو من خلال نموذج الاتصال الموجود على <3> موقع الويب الخاص بي</3>."
},
"summary": {
"body": "Reactive Resume هو منشئ سيرة ذاتية مجاني ومفتوح المصدر تم إنشاؤه لجعل المهام الروتينية لإنشاء وتحديث ومشاركة سيرتك الذاتية سهلة مثل 1 و 2 و 3. باستخدام هذا التطبيق ، يمكنك إنشاء سيرة ذاتية متعددة ومشاركتها مع جهات التوظيف أو الأصدقاء من خلال رابط فريد وطباعته كملف PDF ، كل ذلك مجانًا ، بدون إعلانات ، بدون تتبع ، دون فقدان سلامة وخصوصية بياناتك.",
"heading": "الملخص"
},
"testimonials": {
"body": "سواء أكان ذلك جيدًا أم سيئًا ، أود أن أسمع رأيك في \"السيرة الذاتية التفاعلية\" وكيف كانت التجربة بالنسبة لك.<br/>فيما يلي بعض الرسائل المرسلة بواسطة مستخدمين من جميع أنحاء العالم.",
"contact": "يمكنك التواصل معي من خلال <1> بريدي الإلكتروني</1> أو من خلال نموذج الاتصال الموجود على <3> موقع الويب الخاص بي</3>.",
"heading": "الآراء والتقييمات"
}
}

View File

@ -71,6 +71,31 @@
}
},
"heading": "إعادة تعيين كلمة المرور الخاصة بك"
},
"profile": {
"heading": "الحساب الخاص بك",
"form": {
"avatar": {
"help-text": "يمكنك تحديث صورة ملفك الشخصي على <1> Gravatar</1>"
},
"name": {
"label": "الاسم الكامل"
},
"email": {
"label": "عنوان البريد الإلكتروني",
"help-text": "لا يمكن تحديث عنوان بريدك الإلكتروني في الوقت الحالي ، يرجى إنشاء حساب جديد بدلاً من ذلك."
}
},
"delete-account": {
"heading": "حذف الحساب والبيانات",
"body": "لحذف حسابك وبياناتك وجميع سيرتك الذاتية ، اكتب \"{{keyword}}\" في مربع النص وانقر على الزر. يرجى ملاحظة أن هذا إجراء لا رجوع فيه ولا يمكن استرداد بياناتك مرة أخرى.",
"actions": {
"delete": "حذف الحساب"
}
},
"actions": {
"save": "حفظ التغييرات"
}
}
},
"dashboard": {

View File

@ -3,6 +3,7 @@
"actions": {
"add": "Добави нов {{token}}",
"delete": "Изтрий {{token}}",
"duplicate": "Дублиран раздел",
"edit": "Редакция на {{token}}"
},
"columns": {
@ -80,13 +81,13 @@
"center-artboard": "Централна табла",
"copy-link": "Копирай линка в резюмето",
"export-pdf": "Експорт в PDF",
"redo": "Redo",
"toggle-orientation": "Превключване на ориентацията на страницата",
"toggle-page-break-line": "Линия за прекъсване на страницата",
"toggle-sidebars": "Включване на страничната лента",
"zoom-in": "Увеличи",
"zoom-out": "Намали",
"undo": "Отмяна на",
"redo": "Redo"
"zoom-in": "Увеличи",
"zoom-out": "Намали"
}
},
"header": {
@ -114,6 +115,9 @@
"actions": {
"photo-filters": "Филтри за снимата"
},
"birthdate": {
"label": "Дата на раждане"
},
"heading": "Основни",
"headline": {
"label": "Заглавие"
@ -121,9 +125,6 @@
"name": {
"label": "Пълно име"
},
"birthdate": {
"label": "Дата на раждане"
},
"photo-filters": {
"effects": {
"border": {
@ -264,14 +265,15 @@
"button": "GitHub общност",
"heading": "Бъгове? Искания за функции?"
},
"docs": "Документация",
"donate": {
"body": "Ако ви е харесало да използвате Reactive Resume, моля, помислете дали да не дарите колкото можете повече за поддръжка на приложението, без реклами и безплатно завинаги.",
"button": "Почерпете ме с кафе",
"heading": "Направи дарение и подкрепи Reactive Resume"
},
"github": "Програмен код",
"docs": "Документация",
"heading": "Връзки"
"heading": "Връзки",
"reddit": "Reddit"
},
"settings": {
"global": {
@ -290,14 +292,14 @@
},
"heading": "Настройки",
"page": {
"format": {
"primary": "Размер на хартията",
"secondary": "Определя размерите на вашите страници с автобиография"
},
"break-line": {
"primary": "Линия на прекъсване",
"secondary": "Показване на линия на всички страници за обозначаване на височината на страница A4"
},
"format": {
"primary": "Размер на хартията",
"secondary": "Определя размерите на вашите страници с автобиография"
},
"heading": "Страница",
"orientation": {
"disabled": "Няма ефект, когато има само една страница",

View File

@ -20,23 +20,24 @@
"links": {
"heading": "Връзки",
"links": {
"docs": "Документация",
"donate": "Дарение",
"github": "Програмен код",
"docs": "Документация",
"privacy": "Политика за поверителност",
"reddit": "Reddit",
"service": "Условия на ползване"
}
},
"screenshots": {
"heading": "Екранни снимки"
},
"testimonials": {
"heading": "Препоръки",
"body": "Позитивно или негативно, ще се радвам да чуя мнението ви за Reactive Resume и какъв е вашия опитът.<br/>Ето някои от съобщенията, изпратени от потребители по целия свят.",
"contact": "Можете да се свържете с мен чрез <1>моя имейл</1> или чрез формата за контакт на <3>моя уебсайт</3> ."
},
"summary": {
"body": "Reactive Resume е безплатен инструмент за създаване на автобиография/CV с отворен код, който е създаден, за да улесни обикновените задачи за създаване, актуализиране и споделяне на вашата автобиография като 1, 2, 3. С това приложение можете да създавате множество автобиографии, да ги споделяте директно със специалистите по подбор на персонал или приятели чрез уникална връзка, както и ги отпечатате като PDF. Всичко е безплатно, без реклами, без проследяване, без да губите целостта и поверителността на вашите данни.",
"heading": "Обобщение"
},
"testimonials": {
"body": "Позитивно или негативно, ще се радвам да чуя мнението ви за Reactive Resume и какъв е вашия опитът.<br/>Ето някои от съобщенията, изпратени от потребители по целия свят.",
"contact": "Можете да се свържете с мен чрез <1>моя имейл</1> или чрез формата за контакт на <3>моя уебсайт</3> .",
"heading": "Препоръки"
}
}

View File

@ -71,6 +71,31 @@
}
},
"heading": "Нулиране на паролата"
},
"profile": {
"heading": "Вашата сметка",
"form": {
"avatar": {
"help-text": "Можете да актуализирате профилната си снимка в <1>Gravatar</1>"
},
"name": {
"label": "Пълно име"
},
"email": {
"label": "Имейл адрес",
"help-text": "В момента не е възможно да актуализирате своя имейл адрес, моля, създайте нов акаунт вместо това."
}
},
"delete-account": {
"heading": "Изтриване на акаунт и данни",
"body": "За да изтриете своя акаунт, вашите данни и всички ваши автобиографии, въведете \"{{keyword}}\" в текстовото поле и щракнете върху бутона. Моля, имайте предвид, че това е необратимо действие и вашите данни не могат да бъдат извлечени отново.",
"actions": {
"delete": "Изтриване на акаунт"
}
},
"actions": {
"save": "Запазите промените"
}
}
},
"dashboard": {

View File

@ -3,6 +3,7 @@
"actions": {
"add": "নতুন {{token}} যোগ করুন",
"delete": "{{token}} মুছুন৷",
"duplicate": "সদৃশ বিভাগ",
"edit": "{{token}} সম্পাদনা করুন"
},
"columns": {
@ -80,13 +81,13 @@
"center-artboard": "কেন্দ্র আর্টবোর্ড",
"copy-link": "রিজিউমে লিঙ্ক কপি করুন",
"export-pdf": "পিডিএফ আকারে পাঠান",
"redo": "আবার করুন",
"toggle-orientation": "পৃষ্ঠা ওরিয়েন্টেশন টগল করুন",
"toggle-page-break-line": "পৃষ্ঠা বিরতি লাইন টগল করুন",
"toggle-sidebars": "সাইডবার টগল করুন",
"zoom-in": "বড় কর",
"zoom-out": "ছোট করা",
"undo": "পূর্বাবস্থায় ফেরান",
"redo": "আবার করুন"
"zoom-in": "বড় কর",
"zoom-out": "ছোট করা"
}
},
"header": {
@ -114,6 +115,9 @@
"actions": {
"photo-filters": "ফটো ফিল্টার"
},
"birthdate": {
"label": "জন্ম তারিখ"
},
"heading": "মৌলিক",
"headline": {
"label": "শিরোনাম"
@ -121,9 +125,6 @@
"name": {
"label": "পূর্ণ নাম"
},
"birthdate": {
"label": "জন্ম তারিখ"
},
"photo-filters": {
"effects": {
"border": {
@ -264,14 +265,15 @@
"button": "Github ইস্যু তালিকা",
"heading": "বাগ? বৈশিষ্ট্য অনুরোধ?"
},
"docs": "ডকুমেন্টেশন",
"donate": {
"body": "আপনি যদি প্রতিক্রিয়াশীল জীবনবৃত্তান্ত ব্যবহার করতে পছন্দ করেন, অনুগ্রহ করে বিজ্ঞাপন ছাড়া এবং চিরতরে বিনামূল্যে অ্যাপটিকে চালু ও চালু রাখার জন্য যতটা সম্ভব দান করার কথা বিবেচনা করুন।",
"button": "আমাকে একটা কফি কিনে দাও",
"heading": "Reactive Resume -তে দান করুন"
},
"github": "সোর্স কোড",
"docs": "ডকুমেন্টেশন",
"heading": "লিঙ্ক"
"heading": "লিঙ্ক",
"reddit": "রেডডিট"
},
"settings": {
"global": {
@ -290,14 +292,14 @@
},
"heading": "সেটিংস",
"page": {
"format": {
"primary": "কাগজের আকার",
"secondary": "আপনার জীবনবৃত্তান্ত পৃষ্ঠাগুলির মাত্রা নির্ধারণ করে"
},
"break-line": {
"primary": "লাইন ভেঙ্গে ফেলুন",
"secondary": "একটি A4 পৃষ্ঠার উচ্চতা চিহ্নিত করতে সমস্ত পৃষ্ঠায় একটি লাইন দেখান৷"
},
"format": {
"primary": "কাগজের আকার",
"secondary": "আপনার জীবনবৃত্তান্ত পৃষ্ঠাগুলির মাত্রা নির্ধারণ করে"
},
"heading": "পাতা",
"orientation": {
"disabled": "শুধুমাত্র একটি পৃষ্ঠা থাকলে কোন প্রভাব নেই",

View File

@ -20,23 +20,24 @@
"links": {
"heading": "লিঙ্ক",
"links": {
"docs": "ডকুমেন্টেশন",
"donate": "দান করুন",
"github": "সোর্স কোড",
"docs": "ডকুমেন্টেশন",
"privacy": "গোপনীয়তা নীতি",
"reddit": "রেডডিট",
"service": "সেবা পাবার শর্ত"
}
},
"screenshots": {
"heading": "স্ক্রিনশট"
},
"testimonials": {
"heading": "প্রশংসাপত্র",
"body": "ভাল বা খারাপ, আমি প্রতিক্রিয়াশীল জীবনবৃত্তান্ত সম্পর্কে আপনার মতামত এবং আপনার জন্য অভিজ্ঞতা কেমন হয়েছে তা জানতে চাই।<br/>এখানে বিশ্বজুড়ে ব্যবহারকারীদের পাঠানো কিছু বার্তা রয়েছে৷",
"contact": "আপনি <1>আমার ইমেল</1> বা <3>আমার ওয়েবসাইট</3>-এ যোগাযোগ ফর্মের মাধ্যমে আমার সাথে যোগাযোগ করতে পারেন।"
},
"summary": {
"body": "Reactive Resume হল একটি বিনামূল্যের এবং ওপেন সোর্স জীবনবৃত্তান্ত নির্মাতা যা আপনার জীবনবৃত্তান্ত তৈরি, আপডেট এবং শেয়ার করার জাগতিক কাজগুলিকে 1, 2, 3 এর মতো সহজ করে তুলতে তৈরি করা হয়েছে৷ এই অ্যাপটির মাধ্যমে, আপনি একাধিক জীবনবৃত্তান্ত তৈরি করতে পারেন, নিয়োগকারীদের বা বন্ধুদের সাথে শেয়ার করতে পারেন৷ একটি অনন্য লিঙ্কের মাধ্যমে এবং আপনার ডেটার অখণ্ডতা এবং গোপনীয়তা হারানো ছাড়াই বিনামূল্যে, কোনও বিজ্ঞাপন, কোনও ট্র্যাকিং ছাড়াই একটি পিডিএফ হিসাবে মুদ্রণ করুন।",
"heading": "সারসংক্ষেপ"
},
"testimonials": {
"body": "ভাল বা খারাপ, আমি প্রতিক্রিয়াশীল জীবনবৃত্তান্ত সম্পর্কে আপনার মতামত এবং আপনার জন্য অভিজ্ঞতা কেমন হয়েছে তা জানতে চাই।<br/>এখানে বিশ্বজুড়ে ব্যবহারকারীদের পাঠানো কিছু বার্তা রয়েছে৷",
"contact": "আপনি <1>আমার ইমেল</1> বা <3>আমার ওয়েবসাইট</3>-এ যোগাযোগ ফর্মের মাধ্যমে আমার সাথে যোগাযোগ করতে পারেন।",
"heading": "প্রশংসাপত্র"
}
}

View File

@ -71,6 +71,31 @@
}
},
"heading": "আপনার পাসওয়ার্ডটি রিসেট করুন"
},
"profile": {
"heading": "আপনার অ্যাকাউন্ট",
"form": {
"avatar": {
"help-text": "আপনি <1>Gravatar-এ আপনার প্রোফাইল ছবি আপডেট করতে পারেন</1>"
},
"name": {
"label": "পুরো নাম"
},
"email": {
"label": "ইমেইল ঠিকানা",
"help-text": "এই মুহূর্তে আপনার ইমেল ঠিকানা আপডেট করা সম্ভব নয়, এর পরিবর্তে একটি নতুন অ্যাকাউন্ট তৈরি করুন।"
}
},
"delete-account": {
"heading": "অ্যাকাউন্ট এবং ডেটা মুছুন",
"body": "আপনার অ্যাকাউন্ট, আপনার ডেটা এবং আপনার সমস্ত জীবনবৃত্তান্ত মুছে ফেলতে, পাঠ্যবক্সে \"{{keyword}}\" টাইপ করুন এবং বোতামে ক্লিক করুন৷ দয়া করে মনে রাখবেন এটি একটি অপরিবর্তনীয় ক্রিয়া এবং আপনার ডেটা আবার পুনরুদ্ধার করা যাবে না।",
"actions": {
"delete": "হিসাব মুছে ফেলা"
}
},
"actions": {
"save": "পরিবর্তনগুলোর সংরক্ষন"
}
}
},
"dashboard": {

View File

@ -3,6 +3,7 @@
"actions": {
"add": "Afegeix nou {{token}}",
"delete": "Suprimeix {{token}}",
"duplicate": "Secció duplicada",
"edit": "Edita {{token}}"
},
"columns": {
@ -80,13 +81,13 @@
"center-artboard": "Centrar tauler de dibuix",
"copy-link": "Copia l'enllaç al currículum",
"export-pdf": "Exporta com a PDF",
"redo": "Refer",
"toggle-orientation": "Commuta l'orientació de la pàgina",
"toggle-page-break-line": "Commuta la línia de salt de pàgina",
"toggle-sidebars": "Mostra o oculta la barra lateral",
"zoom-in": "Amplia",
"zoom-out": "Allunya",
"undo": "Desfer",
"redo": "Refer"
"zoom-in": "Amplia",
"zoom-out": "Allunya"
}
},
"header": {
@ -114,6 +115,9 @@
"actions": {
"photo-filters": "Filtres fotogràfics"
},
"birthdate": {
"label": "Data de naixement"
},
"heading": "Bàsics",
"headline": {
"label": "Títol"
@ -121,9 +125,6 @@
"name": {
"label": "Nom complet"
},
"birthdate": {
"label": "Data de naixement"
},
"photo-filters": {
"effects": {
"border": {
@ -264,14 +265,15 @@
"button": "Problemes de GitHub",
"heading": "Errors? Sol·licituds de funcions?"
},
"docs": "Documentació",
"donate": {
"body": "Si us ha agradat utilitzar Reactive Resume, considereu donar tant com pugueu per mantenir l'aplicació en funcionament, sense anuncis i gratuïta per sempre.",
"button": "Compra'm un cafè",
"heading": "Dona a Reactive Curriculum vitae"
},
"github": "Codi font",
"docs": "Documentació",
"heading": "Enllaços"
"heading": "Enllaços",
"reddit": "Reddit"
},
"settings": {
"global": {
@ -290,14 +292,14 @@
},
"heading": "Configuració",
"page": {
"format": {
"primary": "Mida del paper",
"secondary": "Determina les dimensions de les pàgines del vostre currículum"
},
"break-line": {
"primary": "Línia de trencament",
"secondary": "Mostra una línia a totes les pàgines per marcar l'alçada d'una pàgina A4"
},
"format": {
"primary": "Mida del paper",
"secondary": "Determina les dimensions de les pàgines del vostre currículum"
},
"heading": "Pàgina",
"orientation": {
"disabled": "No té efecte quan només hi ha una pàgina",

View File

@ -20,23 +20,24 @@
"links": {
"heading": "Enllaços",
"links": {
"docs": "Documentació",
"donate": "Donar",
"github": "Codi font",
"docs": "Documentació",
"privacy": "Política de privacitat",
"reddit": "Reddit",
"service": "Termes del servei"
}
},
"screenshots": {
"heading": "Captures de pantalla"
},
"testimonials": {
"heading": "Testimonis",
"body": "Bo o dolent, m'encantaria saber la teva opinió sobre Reactive Curriculum vitae i com ha estat l'experiència per a tu.<br/>Aquests són alguns dels missatges enviats pels usuaris de tot el món.",
"contact": "Podeu posar-vos en contacte amb mi mitjançant <1>el meu correu electrònic</1> o mitjançant el formulari de contacte al <3>el meu lloc web</3> ."
},
"summary": {
"body": "Reactive Resume és un creador de currículums gratuït i de codi obert que s'ha creat per fer que les tasques mundanes de crear, actualitzar i compartir el vostre currículum siguin tan fàcils com 1, 2, 3. Amb aquesta aplicació, podeu crear diversos currículums, compartir-los amb reclutadors o amics. mitjançant un enllaç únic i imprimiu-lo com a PDF, tot de franc, sense anuncis, sense seguiment, sense perdre la integritat i la privadesa de les vostres dades.",
"heading": "Resum"
},
"testimonials": {
"body": "Bo o dolent, m'encantaria saber la teva opinió sobre Reactive Curriculum vitae i com ha estat l'experiència per a tu.<br/>Aquests són alguns dels missatges enviats pels usuaris de tot el món.",
"contact": "Podeu posar-vos en contacte amb mi mitjançant <1>el meu correu electrònic</1> o mitjançant el formulari de contacte al <3>el meu lloc web</3> .",
"heading": "Testimonis"
}
}

View File

@ -71,6 +71,31 @@
}
},
"heading": "Restablir la contrasenya"
},
"profile": {
"heading": "El teu compte",
"form": {
"avatar": {
"help-text": "Pots actualitzar la teva foto de perfil a <1>Gravatar</1>"
},
"name": {
"label": "Nom complet"
},
"email": {
"label": "Correu electrònic",
"help-text": "No és possible actualitzar la vostra adreça de correu electrònic en aquest moment, si us plau, creeu un compte nou."
}
},
"delete-account": {
"heading": "Suprimeix el compte i les dades",
"body": "Per eliminar el vostre compte, les vostres dades i tots els vostres currículums, escriviu \"{{keyword}}\" al quadre de text i feu clic al botó. Tingueu en compte que aquesta és una acció irreversible i que les vostres dades no es poden recuperar de nou.",
"actions": {
"delete": "Esborrar compte"
}
},
"actions": {
"save": "Guardar canvis"
}
}
},
"dashboard": {

View File

@ -3,6 +3,7 @@
"actions": {
"add": "Přidat nový {{token}}",
"delete": "Odstranit {{token}}",
"duplicate": "Duplicitní sekce",
"edit": "Upravit {{token}}"
},
"columns": {
@ -80,13 +81,13 @@
"center-artboard": "Vycentrovat Artboard",
"copy-link": "Kopírovat odkaz na životopis",
"export-pdf": "Exportovat PDF",
"redo": "Přepracovat",
"toggle-orientation": "Přepnout orientaci stránky",
"toggle-page-break-line": "Přepnout řádek zalomení stránky",
"toggle-sidebars": "Přepnout boční panely",
"zoom-in": "Přiblížit",
"zoom-out": "Oddálit",
"undo": "Zrušit",
"redo": "Přepracovat"
"zoom-in": "Přiblížit",
"zoom-out": "Oddálit"
}
},
"header": {
@ -114,6 +115,9 @@
"actions": {
"photo-filters": "Foto filtry"
},
"birthdate": {
"label": "Datum narození"
},
"heading": "Základy",
"headline": {
"label": "Titulek"
@ -121,9 +125,6 @@
"name": {
"label": "Celé jméno"
},
"birthdate": {
"label": "Datum narození"
},
"photo-filters": {
"effects": {
"border": {
@ -264,14 +265,15 @@
"button": "Hlášení chyb GitHub",
"heading": "Chyby? Požadavky na funkce?"
},
"docs": "Dokumentace",
"donate": {
"body": "Pokud se vám líbilo používání Reactive Resume, zvažte prosím darování co největší částky na udržení aplikace v provozu, bez reklam a navždy zdarma.",
"button": "Kupte mi kávu",
"heading": "Přispějte na Reactive Resume"
},
"github": "Zdrojový kód",
"docs": "Dokumentace",
"heading": "Odkazy"
"heading": "Odkazy",
"reddit": "Reddit"
},
"settings": {
"global": {
@ -290,14 +292,14 @@
},
"heading": "Nastavení",
"page": {
"format": {
"primary": "Velikost papíru",
"secondary": "Určuje rozměry stránek vašeho životopisu"
},
"break-line": {
"primary": "Nový řádek",
"secondary": "Zobrazit čáru na všech stránkách pro označení výšky stránky A4"
},
"format": {
"primary": "Velikost papíru",
"secondary": "Určuje rozměry stránek vašeho životopisu"
},
"heading": "Stránka",
"orientation": {
"disabled": "Nemá žádný efekt, pokud existuje pouze jedna stránka",

View File

@ -20,23 +20,24 @@
"links": {
"heading": "Odkazy",
"links": {
"docs": "Dokumentace",
"donate": "Darovat",
"github": "Zdrojový kód",
"docs": "Dokumentace",
"privacy": "Zásady ochrany osobních údajů",
"reddit": "Reddit",
"service": "Podmínky služby"
}
},
"screenshots": {
"heading": "Snímky obrazovky"
},
"testimonials": {
"heading": "Posudky",
"body": "Ať je to dobře nebo špatně, rád bych slyšel váš názor na Reactive Resume a jaké to bylo pro vás.<br/>Zde jsou některé zprávy zaslané uživateli z celého světa.",
"contact": "Můžete mě kontaktovat prostřednictvím <1>mého e-mailu</1> nebo prostřednictvím kontaktního formuláře na <3>mých webových stránkách</3> ."
},
"summary": {
"body": "Reactive Resume je bezplatný a open source tvůrce životopisů, který je vytvořen tak, aby zjednodušil každodenní úkoly vytváření, aktualizace a sdílení vašeho životopisu jako 1, 2, 3. Pomocí této aplikace můžete vytvořit více životopisů a sdílet je s náboráři nebo přáteli. prostřednictvím jedinečného odkazu a vytiskněte si jej jako PDF, vše zdarma, bez reklam, bez sledování, bez ztráty integrity a soukromí vašich dat.",
"heading": "souhrn"
},
"testimonials": {
"body": "Ať je to dobře nebo špatně, rád bych slyšel váš názor na Reactive Resume a jaké to bylo pro vás.<br/>Zde jsou některé zprávy zaslané uživateli z celého světa.",
"contact": "Můžete mě kontaktovat prostřednictvím <1>mého e-mailu</1> nebo prostřednictvím kontaktního formuláře na <3>mých webových stránkách</3> .",
"heading": "Posudky"
}
}

View File

@ -71,6 +71,31 @@
}
},
"heading": "Obnovit heslo"
},
"profile": {
"heading": "Váš účet",
"form": {
"avatar": {
"help-text": "Svůj profilový obrázek si můžete aktualizovat na <1>Gravatar</1>"
},
"name": {
"label": "Celé jméno"
},
"email": {
"label": "Emailová adresa",
"help-text": "V tuto chvíli není možné aktualizovat vaši e-mailovou adresu, vytvořte si místo toho nový účet."
}
},
"delete-account": {
"heading": "Smazat účet a data",
"body": "Chcete-li smazat svůj účet, data a všechny své životopisy, zadejte do textového pole „{{keyword}}“ a klikněte na tlačítko. Upozorňujeme, že se jedná o nevratnou akci a vaše data nelze znovu získat.",
"actions": {
"delete": "Smazat účet"
}
},
"actions": {
"save": "Uložit změny"
}
}
},
"dashboard": {

View File

@ -3,6 +3,7 @@
"actions": {
"add": "Tilføj ny {{token}}",
"delete": "Slet {{token}}",
"duplicate": "Dublet afsnit",
"edit": "Rediger {{token}}"
},
"columns": {
@ -80,13 +81,13 @@
"center-artboard": "Centrer tegnebræt",
"copy-link": "Kopier link til CV",
"export-pdf": "Eksporter PDF",
"redo": "Redo",
"toggle-orientation": "Skift sideorientering",
"toggle-page-break-line": "Skift sideskiftlinje",
"toggle-sidebars": "Sidebjælke til/fra",
"zoom-in": "Zoom ind",
"zoom-out": "Zoom ud",
"undo": "Fortryd",
"redo": "Redo"
"zoom-in": "Zoom ind",
"zoom-out": "Zoom ud"
}
},
"header": {
@ -114,6 +115,9 @@
"actions": {
"photo-filters": "Fotofiltre"
},
"birthdate": {
"label": "Fødselsdato"
},
"heading": "Grundlæggende",
"headline": {
"label": "Overskrift"
@ -121,9 +125,6 @@
"name": {
"label": "Fulde navn"
},
"birthdate": {
"label": "Fødselsdato"
},
"photo-filters": {
"effects": {
"border": {
@ -264,14 +265,15 @@
"button": "GitHub-problemer",
"heading": "Fejl? Ønsker til en ny funktion?"
},
"docs": "Dokumentation",
"donate": {
"body": "Hvis du kunne lide at bruge Reactive Resume, bedes du overveje at donere så meget som muligt til formålet med at holde appen oppe og køre, uden annoncer og gratis for evigt.",
"button": "Købe mig en kop kaffe",
"heading": "Donér til Reactive Resume"
},
"github": "Kildekode",
"docs": "Dokumentation",
"heading": "Links"
"heading": "Links",
"reddit": "Reddit"
},
"settings": {
"global": {
@ -290,14 +292,14 @@
},
"heading": "Indstillinger",
"page": {
"format": {
"primary": "Papirstørrelse",
"secondary": "Bestemmer dimensionerne på dine CV-sider"
},
"break-line": {
"primary": "Brudlinje",
"secondary": "Vis en streg på alle sider for at markere højden på en A4-side"
},
"format": {
"primary": "Papirstørrelse",
"secondary": "Bestemmer dimensionerne på dine CV-sider"
},
"heading": "Side",
"orientation": {
"disabled": "Har ingen effekt, når der kun er én side",

View File

@ -8,35 +8,36 @@
"features": {
"heading": "Funktioner",
"list": {
"ads": "Ingen reklamer.",
"ads": "Ingen reklamer",
"export": "Eksporter dit CV til JSON- eller PDF-format",
"free": "Gratis for evigt",
"import": "Importer data fra LinkedIn, JSON CV",
"languages": "Tilgængelig på flere sprog",
"more": "Og meget flere spændende funktioner, <1>læs alt om det her</1>",
"more": "Og mange flere spændende funktioner, <1>læs alt om det her</1>",
"tracking": "Ingen brugersporing"
}
},
"links": {
"heading": "Links",
"links": {
"docs": "Dokumentation",
"donate": "Donér",
"github": "Kildekode",
"docs": "Dokumentation",
"privacy": "Fortrolighedspolitik",
"reddit": "Reddit",
"service": "Servicevilkår"
}
},
"screenshots": {
"heading": "Skærmbilleder"
},
"testimonials": {
"heading": "Udtalelser",
"body": "Godt eller dårligt, jeg ville elske at høre din mening om Reactive Resume og hvordan oplevelsen har været for dig.<br/>Her er nogle af de beskeder, der er sendt af brugere over hele verden.",
"contact": "Du kan kontakte mig via <1>min e-mail</1> eller gennem kontaktformularen på <3>min hjemmeside</3> ."
},
"summary": {
"body": "Reactive Resume er en gratis og open source CV-bygger, der er bygget til at gøre de hverdagsagtige opgaver med at oprette, opdatere og dele dit CV så lette som 1, 2, 3. Med denne app kan du oprette flere CV'er, dele dem med rekrutterere eller venner gennem et unikt link og udskriv det som en PDF, helt gratis, ingen annoncer, ingen sporing, uden at miste integriteten og fortroligheden af dine data.",
"heading": "Opsummering"
},
"testimonials": {
"body": "Godt eller dårligt, jeg ville elske at høre din mening om Reactive Resume og hvordan oplevelsen har været for dig.<br/>Her er nogle af de beskeder, der er sendt af brugere over hele verden.",
"contact": "Du kan kontakte mig via <1>min e-mail</1> eller gennem kontaktformularen på <3>min hjemmeside</3> .",
"heading": "Udtalelser"
}
}

View File

@ -71,6 +71,31 @@
}
},
"heading": "Nulstil din adgangskode"
},
"profile": {
"heading": "Din konto",
"form": {
"avatar": {
"help-text": "Du kan opdatere dit profilbillede på <1>Gravatar</1>"
},
"name": {
"label": "Fulde navn"
},
"email": {
"label": "Email adresse",
"help-text": "Det er ikke muligt at opdatere din e-mailadresse i øjeblikket, opret en ny konto i stedet for."
}
},
"delete-account": {
"heading": "Slet konto og data",
"body": "For at slette din konto, dine data og alle dine CV'er skal du skrive \"{{keyword}}\" i tekstboksen og klikke på knappen. Bemærk venligst, at dette er en uigenkaldelig handling, og dine data kan ikke genfindes.",
"actions": {
"delete": "Slet konto"
}
},
"actions": {
"save": "Gem ændringer"
}
}
},
"dashboard": {

View File

@ -3,8 +3,8 @@
"actions": {
"add": "{{token}} hinzufügen",
"delete": "{{token}} löschen",
"edit": "{{token}} bearbeiten",
"duplicate": "Abschnitt duplizieren"
"duplicate": "Abschnitt duplizieren",
"edit": "{{token}} bearbeiten"
},
"columns": {
"heading": "Spalten",
@ -81,13 +81,13 @@
"center-artboard": "Artboard zentrieren",
"copy-link": "Link zum Lebenslauf kopieren",
"export-pdf": "PDF exportieren",
"redo": "Wiederholen",
"toggle-orientation": "Seitenausrichtung umschalten",
"toggle-page-break-line": "Pausenzeile umschalten",
"toggle-sidebars": "Seitenleisten umschalten",
"zoom-in": "Vergrößern",
"zoom-out": "Verkleinern",
"undo": "Rückgängig machen",
"redo": "Wiederholen"
"zoom-in": "Vergrößern",
"zoom-out": "Verkleinern"
}
},
"header": {
@ -115,6 +115,9 @@
"actions": {
"photo-filters": "Fotofilter"
},
"birthdate": {
"label": "Geburtsdatum"
},
"heading": "Grundlagen",
"headline": {
"label": "Überschrift"
@ -122,9 +125,6 @@
"name": {
"label": "Vollständiger Name"
},
"birthdate": {
"label": "Geburtsdatum"
},
"photo-filters": {
"effects": {
"border": {
@ -257,33 +257,31 @@
"heading": "Layout",
"tooltip": {
"reset-layout": "Layout zurücksetzen"
},
"main": "Hauptteil",
"sidebar": "Seitenleiste"
}
},
"links": {
"bugs-features": {
"body": "Sind Sie bei der Erstellung Ihres Lebenslaufs auf ein Problem gestoßen? Oder haben Sie eine tolle Idee, die Sie hinzufügen möchten? Erstellen Sie ein Ticket auf GitHub.",
"button": "GitHub Issues",
"button": "GitHub Themen",
"heading": "Fehler? Verbesserungsvorschläge?"
},
"docs": "Dokumentation",
"donate": {
"body": "Sollte Ihnen Reactive Resume gefallen, möchte ich Sie bitten, etwas zu spenden, damit die App für immer kostenlos und werbefrei bleibt.",
"button": "Kaufe mir einen Kaffee",
"heading": "Spenden Sie an Reactive Resume."
},
"github": "Quellcode",
"docs": "Dokumentation",
"heading": "Links"
"heading": "Links",
"reddit": "Reddit"
},
"settings": {
"global": {
"date": {
"primary": "Datum",
"secondary": "Datumsformat für die gesamte App.",
"prefix": "Z.B."
"secondary": "Datumsformat für die gesamte App."
},
"heading": "Global",
"heading": "Globale",
"language": {
"primary": "Sprache",
"secondary": "Anzeigesprache, die in der gesamten App verwendet wird."
@ -294,14 +292,14 @@
},
"heading": "Einstellungen",
"page": {
"format": {
"primary": "Papiergröße",
"secondary": "Legt die Seitenabmessungen Ihres Lebenslaufs fest."
},
"break-line": {
"primary": "Seitenumbruch anzeigen",
"secondary": "Zeigt den Seitenumbruch als Linie auf allen Seiten an."
},
"format": {
"primary": "Papiergröße",
"secondary": "Legt die Seitenabmessungen Ihres Lebenslaufs fest."
},
"heading": "Seite",
"orientation": {
"disabled": "Hat keine Auswirkung, wenn nur eine Seite vorhanden ist.",

View File

@ -16,7 +16,7 @@
"present": "Heute"
},
"subtitle": "Ein kostenloser Open Source Lebenslauf-Baukasten.",
"title": "Reaktives Lebenslauf",
"title": "Reactive Resume",
"toast": {
"error": {
"upload-file-size": "Bitte laden Sie nur Dateien unter 2 Megabytes hoch.",

View File

@ -18,25 +18,26 @@
}
},
"links": {
"heading": "Links",
"heading": "Verknüpfungen",
"links": {
"docs": "Dokumentation",
"donate": "Spenden",
"github": "Quellcode",
"docs": "Dokumentation",
"privacy": "Datenschutzerklärung",
"reddit": "Reddit",
"service": "Nutzungsbedingungen"
}
},
"screenshots": {
"heading": "Screenshots"
},
"testimonials": {
"heading": "Referenzen",
"body": "Egal ob gut oder schlecht - ich würde gerne Ihre Meinung über Reactive Resume hören und welche Erfahrungen Sie gemacht haben.<br/>Hier sind einige der Nachrichten, die mir von Benutzern auf der ganzen Welt zugesandt wurden.",
"contact": "Sie können mich über <1>meine E-Mail</1> oder über das Kontaktformular auf <3>meiner Website</3> erreichen."
},
"summary": {
"body": "Reactive Resume ist ein kostenloser Open Source Lebenslauf-Builder, der gebaut wurde, um die langweilige Aufgabe einen Lebenslauf zu erstellen, aktuell zu halten und zu teilen so einfach wie möglich zu machen. Mit dieser App können Sie mehrere Lebensläufe erstellen, sie mit Recruitern oder Freunden über einen einzigartigen Link teilen und als PDF exportieren. Kostenlos, ohne Werbung, kein Tracking, ohne die Integrität und Privatsphäre Ihrer Daten zu verlieren.",
"heading": "Zusammenfassung"
},
"testimonials": {
"body": "Egal ob gut oder schlecht - ich würde gerne Ihre Meinung über Reactive Resume hören und welche Erfahrungen Sie gemacht haben.<br/>Hier sind einige der Nachrichten, die mir von Benutzern auf der ganzen Welt zugesandt wurden.",
"contact": "Sie können mich über <1>meine E-Mail</1> oder über das Kontaktformular auf <3>meiner Website</3> erreichen.",
"heading": "Referenzen"
}
}

View File

@ -7,7 +7,7 @@
"body": "Geben Sie die E-Mail-Adresse des Benutzerkontos ein, dass Sie wiederherstellen möchten.",
"form": {
"email": {
"label": "E-Mail-Addresse"
"label": "E-Mail-Adresse"
}
},
"heading": "Passwort vergessen?",
@ -42,7 +42,7 @@
"label": "Passwort bestätigen"
},
"email": {
"label": "E-Mail-Addresse"
"label": "E-Mail-Adresse"
},
"name": {
"label": "Vollständiger Name"
@ -71,6 +71,31 @@
}
},
"heading": "Passwort zurücksetzen"
},
"profile": {
"heading": "Ihr Benutzerkonto",
"form": {
"avatar": {
"help-text": "Sie können Ihr Profilbild auf <1>Gravatar</1> aktualisieren"
},
"name": {
"label": "Vollständiger Name"
},
"email": {
"label": "E-Mail-Adresse",
"help-text": "Im Moment ist es nicht möglich, Ihre E-Mail-Adresse zu aktualisieren. Bitte erstellen Sie stattdessen ein neues Konto."
}
},
"delete-account": {
"heading": "Konto und Daten löschen",
"body": "Um Ihr Konto, Ihre Daten und alle Ihre Lebensläufe zu löschen, geben Sie „{{keyword}}“ in das Textfeld ein und klicken Sie auf die Schaltfläche. Bitte beachten Sie, dass dies ein irreversibler Vorgang ist und Ihre Daten nicht wiederhergestellt werden können.",
"actions": {
"delete": "Account löschen"
}
},
"actions": {
"save": "Änderungen speichern"
}
}
},
"dashboard": {
@ -87,7 +112,7 @@
"label": "Ist öffentlich zugänglich?"
},
"slug": {
"label": "Slug"
"label": "URL-Segment"
}
},
"heading": "Neuen Lebenslauf erstellen"
@ -98,14 +123,14 @@
"actions": {
"upload-json": "JSON hochladen"
},
"body": "Wenn du einen <1>validierten JSON Resume</1> bereit hast, kannst du damit deine Entwicklung auf reaktiven Resume beschleunigen. Klicken Sie auf den Button unten und laden Sie eine gültige JSON-Datei hoch, um zu beginnen.",
"body": "Wenn du einen <1>validierten JSON Lebenslauf</1> bereit hast, kannst du damit deine Entwicklung auf Reactive Resume beschleunigen. Klicken Sie auf den Button unten und laden Sie eine gültige JSON-Datei hoch, um zu beginnen.",
"heading": "Import vom JSON-Lebenslauf"
},
"linkedin": {
"actions": {
"upload-archive": "ZIP-Archiv hochladen"
},
"body": "Sie können Zeit sparen, indem Sie Ihre Daten aus LinkedIn exportieren und sie zum automatischen Ausfüllen von Feldern auf Reaktives Lebenslauf verwenden. Gehen Sie zum Abschnitt <1>Datenschutz </1> auf LinkedIn und fordern Sie ein Archiv Ihrer Daten an. Sobald diese verfügbar sind, laden Sie die ZIP-Datei unten hoch.",
"body": "Sie können Zeit sparen, indem Sie Ihre Daten aus LinkedIn exportieren und sie zum automatischen Ausfüllen von Feldern auf Reactive Resume verwenden. Gehen Sie zum Abschnitt <1>Datenschutz </1> auf LinkedIn und fordern Sie ein Archiv Ihrer Daten an. Sobald diese verfügbar sind, laden Sie die ZIP-Datei unten hoch.",
"heading": "Aus LinkedIn importieren"
},
"reactive-resume": {
@ -114,7 +139,7 @@
"upload-json-v2": "Laden Sie JSON von v2 hoch"
},
"body": "Wenn Sie eine JSON haben, die mit der aktuellen Version von Reactive Resume exportiert wurde, können Sie sie hier wieder importieren, um wieder eine bearbeitbare Version zu erhalten.",
"heading": "Import vom Reaktives Lebenslauf"
"heading": "Import von Reactive Resume"
}
},
"rename-resume": {
@ -126,7 +151,7 @@
"label": "Name"
},
"slug": {
"label": "Slug"
"label": "URL-Segment"
}
},
"heading": "Lebenslauf umbenennen"

View File

@ -3,6 +3,7 @@
"actions": {
"add": "Προσθήκη νέου {{token}}",
"delete": "Διαγραφή {{token}}",
"duplicate": "Διπλότυπο τμήμα",
"edit": "Επεξεργασία {{token}}"
},
"columns": {
@ -80,13 +81,13 @@
"center-artboard": "Κεντράρισμα πίνακα",
"copy-link": "Αντιγραφή συνδέσμου στο βιογραφικό",
"export-pdf": "Εξαγωγή σε PDF",
"redo": "Redo",
"toggle-orientation": "Εναλλαγή προσανατολισμού σελίδας",
"toggle-page-break-line": "Εναλλαγή γραμμής αλλαγής σελίδας",
"toggle-sidebars": "Εναλλαγή πλευρικών γραμμών",
"zoom-in": "Μεγέθυνση",
"zoom-out": "Σμίκρυνση",
"undo": "Αναίρεση",
"redo": "Redo"
"zoom-in": "Μεγέθυνση",
"zoom-out": "Σμίκρυνση"
}
},
"header": {
@ -114,6 +115,9 @@
"actions": {
"photo-filters": "Φίλτρα φωτογραφιών"
},
"birthdate": {
"label": "Ημερομηνια γεννησης"
},
"heading": "Βασικά",
"headline": {
"label": "Επικεφαλίδα"
@ -121,9 +125,6 @@
"name": {
"label": "Ονοματεπώνυμο"
},
"birthdate": {
"label": "Ημερομηνια γεννησης"
},
"photo-filters": {
"effects": {
"border": {
@ -264,14 +265,15 @@
"button": "Σφάλματα GitHub",
"heading": "Σφάλματα; Αιτήματα δυνατοτήτων;"
},
"docs": "Τεκμηρίωση",
"donate": {
"body": "Αν σας άρεσε να χρησιμοποιείτε το Reactive Resume, σκεφτείτε το ενδεχόμενο να δωρίσετε όσο το δυνατόν περισσότερα για τον σκοπό της διατήρησης και λειτουργίας της εφαρμογής, χωρίς διαφημίσεις και δωρεάν για πάντα.",
"button": "Κεράστε με ένα καφεδάκι",
"heading": "Κάντε δωρεά στο Reactive βιογραφικό"
},
"github": "Πηγαίος κώδικας",
"docs": "Τεκμηρίωση",
"heading": "Σύνδεσμοι"
"heading": "Σύνδεσμοι",
"reddit": "Reddit"
},
"settings": {
"global": {
@ -290,14 +292,14 @@
},
"heading": "Ρυθμίσεις",
"page": {
"format": {
"primary": "Μέγεθος χαρτιού",
"secondary": "Καθορίζει τις διαστάσεις των σελίδων του βιογραφικού σας"
},
"break-line": {
"primary": "Γραμμή διακοπής",
"secondary": "Εμφάνιση μιας γραμμής σε όλες τις σελίδες για να επισημάνετε το ύψος μιας σελίδας Α4"
},
"format": {
"primary": "Μέγεθος χαρτιού",
"secondary": "Καθορίζει τις διαστάσεις των σελίδων του βιογραφικού σας"
},
"heading": "Σελίδα",
"orientation": {
"disabled": "Δεν έχει αποτέλεσμα όταν υπάρχει μόνο μία σελίδα",

View File

@ -20,23 +20,24 @@
"links": {
"heading": "Σύνδεσμοι",
"links": {
"docs": "Τεκμηρίωση",
"donate": "Δωρεά",
"github": "Πηγαίος Κώδικας",
"docs": "Τεκμηρίωση",
"privacy": "Πολιτική Απορρήτου",
"reddit": "Reddit",
"service": "Όρους παροχής υπηρεσιών"
}
},
"screenshots": {
"heading": "Στιγμιότυπα οθόνης"
},
"testimonials": {
"heading": "Αναφορές",
"body": "Καλή ή κακή, θα ήθελα πολύ να ακούσω τη γνώμη σας για το Reactive Resume και πώς ήταν η εμπειρία σας.<br/>Ακολουθούν μερικά από τα μηνύματα που έστειλαν χρήστες από όλο τον κόσμο.",
"contact": "Μπορείτε να επικοινωνήσετε μαζί μου μέσω <1>του email μου</1> ή μέσω της φόρμας επικοινωνίας στην <3>ιστοσελίδα μου</3>."
},
"summary": {
"body": "Το Reactive Resume είναι ένας δωρεάν κατασκευαστής βιογραφικών σημειωμάτων ανοικτού κώδικα που έχει δημιουργηθεί για να κάνει τις καθημερινές εργασίες δημιουργίας, ενημέρωσης και κοινοποίησης του βιογραφικού σας σημειώματος τόσο εύκολες όσο το 1, 2, 3. Με αυτή την εφαρμογή, μπορείτε να δημιουργήσετε πολλαπλά βιογραφικά, να τα μοιραστείτε με τους υπεύθυνους προσλήψεων ή τους φίλους σας μέσω ενός μοναδικού συνδέσμου και να τα εκτυπώσετε σε μορφή PDF, και όλα αυτά δωρεάν, χωρίς διαφημίσεις, χωρίς παρακολούθηση, χωρίς να χάσετε την ακεραιότητα και το απόρρητο των δεδομένων σας.",
"heading": "Σύνοψη"
},
"testimonials": {
"body": "Καλή ή κακή, θα ήθελα πολύ να ακούσω τη γνώμη σας για το Reactive Resume και πώς ήταν η εμπειρία σας.<br/>Ακολουθούν μερικά από τα μηνύματα που έστειλαν χρήστες από όλο τον κόσμο.",
"contact": "Μπορείτε να επικοινωνήσετε μαζί μου μέσω <1>του email μου</1> ή μέσω της φόρμας επικοινωνίας στην <3>ιστοσελίδα μου</3>.",
"heading": "Αναφορές"
}
}

View File

@ -71,6 +71,31 @@
}
},
"heading": "Επαναφορά του κωδικού πρόσβασής σας"
},
"profile": {
"heading": "Του λογαριασμού σας",
"form": {
"avatar": {
"help-text": "Μπορείτε να ενημερώσετε την εικόνα του προφίλ σας στο <1>Gravatar</1>"
},
"name": {
"label": "Πλήρες όνομα"
},
"email": {
"label": "Διεύθυνση ηλεκτρονικού ταχυδρομείου",
"help-text": "Δεν είναι δυνατό να ενημερώσετε τη διεύθυνση email σας αυτήν τη στιγμή, δημιουργήστε έναν νέο λογαριασμό."
}
},
"delete-account": {
"heading": "Διαγραφή λογαριασμού και δεδομένων",
"body": "Για να διαγράψετε τον λογαριασμό σας, τα δεδομένα σας και όλα τα βιογραφικά σας, πληκτρολογήστε \"{{keyword}}\" στο πλαίσιο κειμένου και κάντε κλικ στο κουμπί. Λάβετε υπόψη ότι αυτή είναι μια μη αναστρέψιμη ενέργεια και τα δεδομένα σας δεν μπορούν να ανακτηθούν ξανά.",
"actions": {
"delete": "Διαγραφή λογαριασμού"
}
},
"actions": {
"save": "Αποθήκευσε τις αλλαγές"
}
}
},
"dashboard": {

View File

@ -71,6 +71,31 @@
}
},
"heading": "Reset your password"
},
"profile": {
"heading": "Your Account",
"form": {
"avatar": {
"help-text": "You can update your profile picture on <1>Gravatar</1>"
},
"name": {
"label": "Full Name"
},
"email": {
"label": "Email Address",
"help-text": "It is not possible to update your email address at the moment, please create a new account instead."
}
},
"delete-account": {
"heading": "Delete Account and Data",
"body": "To delete your account, your data and all your resumes, type \"{{keyword}}\" into the textbox and click on the button. Please note that this is an irreversible action and your data cannot be retrieved again.",
"actions": {
"delete": "Delete Account"
}
},
"actions": {
"save": "Save Changes"
}
}
},
"dashboard": {

View File

@ -3,6 +3,7 @@
"actions": {
"add": "Agregar nuevo {{token}}",
"delete": "Eliminar {{token}}",
"duplicate": "Duplicar sección",
"edit": "Editar {{token}}"
},
"columns": {
@ -80,13 +81,13 @@
"center-artboard": "Centrar Tablero",
"copy-link": "Copiar enlace al currículum",
"export-pdf": "Exportar PDF",
"redo": "Rehacer",
"toggle-orientation": "Cambiar la orientación de la página",
"toggle-page-break-line": "Alternar línea de salto de página",
"toggle-sidebars": "Ocultar/mostrar barra lateral",
"zoom-in": "Acercar",
"zoom-out": "Alejar",
"undo": "Deshacer",
"redo": "Rehacer"
"zoom-in": "Acercar",
"zoom-out": "Alejar"
}
},
"header": {
@ -114,6 +115,9 @@
"actions": {
"photo-filters": "Filtro de fotos"
},
"birthdate": {
"label": "Fecha de cumpleaños"
},
"heading": "Información básica",
"headline": {
"label": "Titular"
@ -121,9 +125,6 @@
"name": {
"label": "Nombre Completo"
},
"birthdate": {
"label": "Fecha de cumpleaños"
},
"photo-filters": {
"effects": {
"border": {
@ -264,14 +265,15 @@
"button": "Propuesta de GitHub",
"heading": "¿Errores? ¿Solicitud de características?"
},
"docs": "Documentación",
"donate": {
"body": "Si le gustó usar Reactive Resume, considere donar lo que pueda a la causa de mantener la aplicación en funcionamiento, sin anuncios y gratis para siempre.",
"button": "Invítame a un café",
"heading": "Donar a Reactive Resume"
},
"github": "Código Fuente",
"docs": "Documentación",
"heading": "Enlaces"
"heading": "Enlaces",
"reddit": "Reddit"
},
"settings": {
"global": {
@ -290,14 +292,14 @@
},
"heading": "Preferencias",
"page": {
"format": {
"primary": "Tamaño de papel",
"secondary": "Determina las dimensiones de las páginas de tu currículum."
},
"break-line": {
"primary": "Linea de separación",
"secondary": "Mostrar una línea en todas las páginas para marcar la altura de una página A4"
},
"format": {
"primary": "Tamaño de papel",
"secondary": "Determina las dimensiones de las páginas de tu currículum."
},
"heading": "Página",
"orientation": {
"disabled": "No tiene efecto cuando solo hay una página",

View File

@ -12,7 +12,7 @@
"delete": "Borrar",
"duplicate": "Duplicar",
"open": "Abrir",
"rename": "Rebautizar",
"rename": "Renombrar",
"share-link": "Compartir enlace",
"tooltips": {
"delete": "¿Está seguro de que desea eliminar este currículum? Esta es una acción irreversible.",

View File

@ -20,23 +20,24 @@
"links": {
"heading": "Enlaces",
"links": {
"docs": "Documentación",
"donate": "Donar",
"github": "Código fuente",
"docs": "Documentación",
"privacy": "Política de Privacidad",
"reddit": "Reddit",
"service": "Términos de Servicio"
}
},
"screenshots": {
"heading": "Capturas de pantalla"
},
"testimonials": {
"heading": "Opiniones",
"body": "Bueno o malo, me encantaría saber tu opinión sobre Reactive Resume y cómo ha sido la experiencia para ti.<br/>Estos son algunos de los mensajes enviados por usuarios de todo el mundo.",
"contact": "Puedes comunicarte conmigo a través de <1>mi correo electrónico</1> o a través del formulario de contacto en <3>mi sitio web</3>."
},
"summary": {
"body": "Reactive Resume es un generador de currículums gratuito y de código abierto que está diseñado para hacer que las tareas mundanas de crear, actualizar y compartir su currículum sean tan fáciles como 1, 2, 3. Con esta aplicación, puede crear múltiples currículums, compartirlos con reclutadores o amigos a través de un enlace único e imprímalo como PDF, todo gratis, sin anuncios, sin seguimiento, sin perder la integridad y privacidad de sus datos.",
"heading": "Resumen"
},
"testimonials": {
"body": "Bueno o malo, me encantaría saber tu opinión sobre Reactive Resume y cómo ha sido la experiencia para ti.<br/>Estos son algunos de los mensajes enviados por usuarios de todo el mundo.",
"contact": "Puedes comunicarte conmigo a través de <1>mi correo electrónico</1> o a través del formulario de contacto en <3>mi sitio web</3>.",
"heading": "Opiniones"
}
}

View File

@ -71,6 +71,31 @@
}
},
"heading": "Restablecer tu contraseña"
},
"profile": {
"heading": "Tu cuenta",
"form": {
"avatar": {
"help-text": "Puedes actualizar tu foto de perfil en <1>Gravatar</1>"
},
"name": {
"label": "Nombre Completo"
},
"email": {
"label": "Correo electrónico",
"help-text": "No es posible actualizar tu dirección de correo electrónico en este momento, por favor crea una nueva cuenta en su lugar."
}
},
"delete-account": {
"heading": "Eliminar cuenta y datos",
"body": "Para eliminar su cuenta, sus datos y todos sus currículums, escriba \"{{keyword}}\" en el cuadro de texto y haga clic en el botón. Tenga en cuenta que esta es una acción irreversible y sus datos no se pueden recuperar nuevamente.",
"actions": {
"delete": "Eliminar Cuenta"
}
},
"actions": {
"save": "Guardar cambios"
}
}
},
"dashboard": {

View File

@ -71,6 +71,31 @@
}
},
"heading": "بازنشانی رمز عبور"
},
"profile": {
"heading": "حساب شما",
"form": {
"avatar": {
"help-text": "می توانید عکس نمایه خود را در <1>Gravatar به روز کنید</1>"
},
"name": {
"label": "نام و نام خانوادگی"
},
"email": {
"label": "آدرس ایمیل",
"help-text": "در حال حاضر امکان به روز رسانی آدرس ایمیل شما وجود ندارد، لطفا به جای آن یک حساب کاربری جدید ایجاد کنید."
}
},
"delete-account": {
"heading": "حذف حساب و داده",
"body": "برای حذف اکانت، اطلاعات و تمام رزومه های خود، \"{{keyword}}\" را در کادر متنی تایپ کرده و روی دکمه کلیک کنید. لطفاً توجه داشته باشید که این یک اقدام غیرقابل برگشت است و اطلاعات شما دوباره قابل بازیابی نیست.",
"actions": {
"delete": "حذف حساب کاربری"
}
},
"actions": {
"save": "ذخیره تغییرات"
}
}
},
"dashboard": {

View File

@ -3,6 +3,7 @@
"actions": {
"add": "Lisää uusi",
"delete": "Poista",
"duplicate": "Kopioi osio",
"edit": "Muokkaa"
},
"columns": {
@ -80,13 +81,13 @@
"center-artboard": "Keskitä Kuvataulu",
"copy-link": "Kopioi linkki ansioluetteloon",
"export-pdf": "Vie PDF",
"redo": "Redo",
"toggle-orientation": "Vaihda sivun suunta",
"toggle-page-break-line": "Vaihda sivunvaihtoviivaa",
"toggle-sidebars": "Vaihda Sivupalkkeja",
"zoom-in": "Suurenna",
"zoom-out": "Pienennä",
"undo": "Kumoa",
"redo": "Redo"
"zoom-in": "Suurenna",
"zoom-out": "Pienennä"
}
},
"header": {
@ -114,6 +115,9 @@
"actions": {
"photo-filters": "Valokuvasuodattimet"
},
"birthdate": {
"label": "Syntymäaika"
},
"heading": "Perustiedot",
"headline": {
"label": "Otsikko"
@ -121,9 +125,6 @@
"name": {
"label": "Koko nimi"
},
"birthdate": {
"label": "Syntymäaika"
},
"photo-filters": {
"effects": {
"border": {
@ -264,14 +265,15 @@
"button": "GitHub Issues",
"heading": "Bugeja? Ominaisuuspyyntöjä?"
},
"docs": "Dokumentaatio",
"donate": {
"body": "Jos pidit Reactive Resume -sovelluksen käytöstä, harkitse lahjoitusta niin paljon kuin voit, jotta sovellus pysyy toiminnassa ilman mainoksia ja ikuisesti ilmaisena.",
"button": "Osta minulle kahvi",
"heading": "Lahjoita Reaktiiviselle ansioluettelolle"
},
"github": "Lähdekoodi",
"docs": "Dokumentaatio",
"heading": "Linkit"
"heading": "Linkit",
"reddit": "Reddit"
},
"settings": {
"global": {
@ -290,14 +292,14 @@
},
"heading": "Asetukset",
"page": {
"format": {
"primary": "Paperikoko",
"secondary": "Määrittää ansioluettelosi sivujen mitat"
},
"break-line": {
"primary": "Katkoviiva",
"secondary": "Näytä viiva kaikilla sivuilla A4-sivun korkeuden merkitsemiseksi"
},
"format": {
"primary": "Paperikoko",
"secondary": "Määrittää ansioluettelosi sivujen mitat"
},
"heading": "Sivu",
"orientation": {
"disabled": "Ei vaikuta, kun sivuja on vain yksi",

View File

@ -20,23 +20,24 @@
"links": {
"heading": "Linkit",
"links": {
"docs": "Dokumentaatio",
"donate": "Lahjoita",
"github": "Lähdekoodi",
"docs": "Dokumentaatio",
"privacy": "Tietosuojakäytäntö",
"reddit": "Reddit",
"service": "Käyttöehdot"
}
},
"screenshots": {
"heading": "Kuvakaappaukset"
},
"testimonials": {
"heading": "Asiakaskokemuksia",
"body": "Hyvä tai huono, haluaisin kuulla mielipiteesi Reactive Resume -ohjelmasta ja siitä, millainen kokemus sinulla on ollut.<br/>Seuraavassa on muutamia käyttäjien eri puolilta maailmaa lähettämiä viestejä.",
"contact": "Voit ottaa minuun yhteyttä <1>sähköpostitse</1> tai <3>verkkosivustoni</3> yhteydenottolomakkeen kautta."
},
"summary": {
"body": "Reactive Resume on ilmainen ja avoimen lähdekoodin ansioluettelon rakentaja, jonka tarkoituksena on tehdä ansioluettelon luomisesta, päivittämisestä ja jakamisesta helppoa kuin 1, 2, 3. Tämän sovelluksen avulla voit luoda useita ansioluetteloita, jakaa ne rekrytoijien tai ystävien kanssa yksilöllisen linkin kautta ja tulostaa ne PDF-muodossa, ja kaikki tämä ilmaiseksi, ilman mainoksia, ilman seurantaa ja menettämättä tietojesi eheyttä ja yksityisyyttä.",
"heading": "Yhteenveto"
},
"testimonials": {
"body": "Hyvä tai huono, haluaisin kuulla mielipiteesi Reactive Resume -ohjelmasta ja siitä, millainen kokemus sinulla on ollut.<br/>Seuraavassa on muutamia käyttäjien eri puolilta maailmaa lähettämiä viestejä.",
"contact": "Voit ottaa minuun yhteyttä <1>sähköpostitse</1> tai <3>verkkosivustoni</3> yhteydenottolomakkeen kautta.",
"heading": "Asiakaskokemuksia"
}
}

View File

@ -71,6 +71,31 @@
}
},
"heading": "Palauta salasanasi"
},
"profile": {
"heading": "Tilisi",
"form": {
"avatar": {
"help-text": "Voit päivittää profiilikuvasi <1>Gravatarissa</1>"
},
"name": {
"label": "Koko nimi"
},
"email": {
"label": "Sähköpostiosoite",
"help-text": "Sähköpostiosoitettasi ei voi tällä hetkellä päivittää, luo sen sijaan uusi tili."
}
},
"delete-account": {
"heading": "Poista tili ja tiedot",
"body": "Poistaaksesi tilisi, tietosi ja kaikki ansioluettelosi, kirjoita \"{{keyword}}\" tekstiruutuun ja napsauta painiketta. Huomaa, että tämä on peruuttamaton toimenpide, eikä tietojasi voi noutaa uudelleen.",
"actions": {
"delete": "Poista tili"
}
},
"actions": {
"save": "Tallenna muutokset"
}
}
},
"dashboard": {

View File

@ -3,6 +3,7 @@
"actions": {
"add": "Ajouter un/une {{token}}",
"delete": "Supprimer {{token}}",
"duplicate": "Dupliquer la section",
"edit": "Éditer {{token}}"
},
"columns": {
@ -63,7 +64,7 @@
"list": {
"actions": {
"delete": "Supprimer",
"duplicate": "Dédoubler",
"duplicate": "Dupliquer",
"edit": "Éditer"
},
"empty-text": "Cette liste est vide."
@ -80,19 +81,19 @@
"center-artboard": "Centrer l'affichage",
"copy-link": "Copier le lien vers le CV",
"export-pdf": "Exporter en PDF",
"redo": "Refaire",
"toggle-orientation": "Basculer l'orientation de la page",
"toggle-page-break-line": "Afficher/cacher l'indicateur de saut de page",
"toggle-sidebars": "Afficher/cacher les barres latérales",
"zoom-in": "Zoomer",
"zoom-out": "Dézoomer",
"undo": "Défaire",
"redo": "Refaire"
"zoom-in": "Zoomer",
"zoom-out": "Dézoomer"
}
},
"header": {
"menu": {
"delete": "Supprimer",
"duplicate": "Dédoubler",
"duplicate": "Dupliquer",
"rename": "Renommer",
"share-link": "Partager un lien",
"tooltips": {
@ -112,7 +113,10 @@
},
"basics": {
"actions": {
"photo-filters": "Filtres pour la photo"
"photo-filters": "Filtres photo"
},
"birthdate": {
"label": "Date de naissance"
},
"heading": "Informations de base",
"headline": {
@ -121,9 +125,6 @@
"name": {
"label": "Nom complet"
},
"birthdate": {
"label": "Date de naissance"
},
"photo-filters": {
"effects": {
"border": {
@ -244,11 +245,11 @@
"pdf": {
"loading": {
"primary": "Génération du PDF",
"secondary": "Veuillez patienter pendant que votre PDF est généré, cela peut prendre jusqu'à 15 secondes."
"secondary": "Merci de patienter que votre PDF soit généré, cela peut prendre jusqu'à 15 secondes."
},
"normal": {
"primary": "PDF",
"secondary": "Téléchargez un PDF de votre CV que vous pourrez imprimer et envoyer à l'emploi de vos rêves. Ce fichier ne peut pas être réimporté pour être modifié ultérieurement."
"secondary": "Télécharger au format PDF votre CV, à imprimer et envoyer à l'offre d'emploi de vos rêves. Ce fichier ne peut pas être réimporté pour être modifié ultérieurement."
}
}
},
@ -260,18 +261,19 @@
},
"links": {
"bugs-features": {
"body": "Quelque chose vous a empêché de rédiger un CV ? Ou vous avez une idée géniale à ajouter ? Créez une issue sur GitHub pour commencer.",
"body": "Quelque chose vous a empêché de faire un CV ? Vous avez une idée géniale à ajouter ? Créez une issue sur GitHub dès maintenant.",
"button": "Issues GitHub",
"heading": "Bogues ? Demandes de fonctionnalités ?"
},
"docs": "Documentation",
"donate": {
"body": "Si vous avez aimé utiliser Reactive Resume, pensez à donner comme vous le pouvez pour que l'application reste disponible, gratuite et sans publicité pour toujours.",
"body": "Si vous avez aimé utiliser Reactive Resume, merci d'envisager de faire un don pour que l'application puisse rester disponible, gratuite et sans publicité pour toujours.",
"button": "Offrez-moi un café",
"heading": "Faire un don à Reactive Resume"
},
"github": "Code source",
"docs": "Documentation",
"heading": "Liens"
"heading": "Liens",
"reddit": "Reddit"
},
"settings": {
"global": {
@ -290,17 +292,17 @@
},
"heading": "Paramètres",
"page": {
"break-line": {
"primary": "Indicateur de changement de page",
"secondary": "Affiche une ligne sur toutes les pages pour marquer la hauteur d'une feuille A4"
},
"format": {
"primary": "Taille de papier",
"secondary": "Détermine les dimensions de vos pages de CV"
},
"break-line": {
"primary": "Indicateur de changement de page",
"secondary": "Afficher une ligne sur toutes les pages pour marquer la hauteur d'une feuille A4"
},
"heading": "Page",
"orientation": {
"disabled": "N'a aucun effet lorsqu'il n'y a qu'une seule page",
"disabled": "Aucun effet lorsqu'il n'y a qu'une seule page",
"primary": "Orientation",
"secondary": "Afficher les pages horizontalement ou verticalement"
}
@ -308,22 +310,22 @@
"resume": {
"heading": "CV",
"reset": {
"primary": "Tout remettre à zéro",
"primary": "Remise à zéro",
"secondary": "Vous avez fait trop d'erreurs ? Cliquez ici pour réinitialiser toutes les modifications et repartir de zéro. Attention, cette action ne peut pas être annulée."
},
"sample": {
"primary": "Charger les données de démo",
"secondary": "Vous ne savez pas par où commencer ? Cliquez ici pour charger quelques exemples de données afin de voir à quoi ressemble un CV complet."
"primary": "Charger un exemple de données",
"secondary": "Vous ne savez pas par où commencer ? Cliquez-ici pour charger un exemple de données afin de voir à quoi ressemble un CV complet."
}
}
},
"sharing": {
"heading": "Partage",
"heading": "Partager",
"short-url": {
"label": "Préférer une URL courte"
"label": "URL courte préférée"
},
"visibility": {
"subtitle": "Permettre à toute personne ayant un lien de consulter votre CV",
"subtitle": "Permettre de consulter votre CV à toute personne ayant un lien",
"title": "Public"
}
},
@ -353,7 +355,7 @@
"label": "Taille de la police"
}
},
"heading": "Typographie",
"heading": "Polices",
"widgets": {
"body": {
"label": "Contenu"

View File

@ -15,7 +15,7 @@
"date": {
"present": "Présent"
},
"subtitle": "Un constructeur de CV gratuit et open source.",
"subtitle": "Un créateur de CV gratuit et open source.",
"title": "Reactive Resume",
"toast": {
"error": {

View File

@ -5,12 +5,12 @@
},
"import-external": {
"subtitle": "LinkedIn, JSON Resume, Reactive Resume",
"title": "Importer de sources externes"
"title": "Importer à partir de sources externes"
},
"resume": {
"menu": {
"delete": "Supprimer",
"duplicate": "Dédoubler",
"duplicate": "Dupliquer",
"open": "Ouvrir",
"rename": "Renommer",
"share-link": "Partager un lien",

View File

@ -20,23 +20,24 @@
"links": {
"heading": "Liens",
"links": {
"docs": "Documentation",
"donate": "Faire un don",
"github": "Code source",
"docs": "Documentation",
"privacy": "Politique de confidentialité",
"reddit": "Reddit",
"service": "Conditions d'utilisation"
}
},
"screenshots": {
"heading": "Captures d'écran"
},
"testimonials": {
"heading": "Témoignages",
"body": "Bonne ou mauvaiss, j'aimerais entendre votre opinion sur Reactive Resume et comment l'expérience a été pour vous.<br/>Voici quelques-uns des messages envoyés par des utilisateurs du monde entier.",
"contact": "Vous pouvez me contacter via <1>mon e-mail</1> ou via le formulaire de contact de <3>mon site web</3>."
},
"summary": {
"body": "Reactive Resume est un générateur de CV gratuit et open source, conçu pour rendre les tâches banales de création, de mise à jour et de partage de votre CV aussi faciles que de compter jusqu'à 3. Avec cette application, vous pouvez créer plusieurs CVs, les partager avec des recruteurs ou des amis par le biais d'un lien unique et les imprimer au format PDF, le tout gratuitement, sans publicité, sans pistage, et sans perdre l'intégrité et la confidentialité de vos données.",
"heading": "Résumé"
},
"testimonials": {
"body": "Bon ou mauvais, je souhaiterais avoir votre avis sur Reactive Resume et l'expérience que vous en avez-eu.<br/>Voici quelques-uns des messages envoyés par des utilisateurs du monde entier.",
"contact": "Vous pouvez me contacter via <1>mon e-mail</1> ou via le formulaire de contact de <3>mon site web</3>.",
"heading": "Témoignages"
}
}

View File

@ -71,6 +71,31 @@
}
},
"heading": "Réinitialiser votre mot de passe"
},
"profile": {
"heading": "Votre compte",
"form": {
"avatar": {
"help-text": "Vous pouvez mettre à jour votre photo de profil sur <1>Gravatar</1>"
},
"name": {
"label": "Nom complet"
},
"email": {
"label": "Email",
"help-text": "Il n'est pas possible de mettre à jour votre adresse e-mail pour le moment, merci de créer un nouveau compte à la place."
}
},
"delete-account": {
"heading": "Supprimer le compte et effacer les données",
"body": "Pour supprimer votre compte, vos données et tous vos CV, tapez \"{{keyword}}\" dans la zone de texte et cliquez sur le bouton. Veuillez noter qu'il s'agit d'une action irréversible et que vos données ne pourront plus être récupérées.",
"actions": {
"delete": "Supprimer le compte"
}
},
"actions": {
"save": "Enregistrer les Modifications"
}
}
},
"dashboard": {
@ -110,10 +135,10 @@
},
"reactive-resume": {
"actions": {
"upload-json": "Mettre en ligne un JSON",
"upload-json-v2": "Télécharger JSON à partir de la v2"
"upload-json": "Importer un JSON",
"upload-json-v2": "Importer un JSON v2 ou plus"
},
"body": "Si vous avez un JSON qui a été exporté avec la version actuelle de Reactive Resume, vous pouvez le réimporter ici pour obtenir à nouveau une version modifiable.",
"body": "Si vous avez un JSON qui a été exporté avec la version actuelle de Reactive Resume, vous pouvez le réimporter ici pour l'éditer à nouveau.",
"heading": "Importer depuis Reactive Resume"
}
},

View File

@ -1,13 +1,14 @@
{
"common": {
"actions": {
"add": "הוסף חדש{{token}}",
"delete": "מחק{{token}}",
"edit": "ערוך{{token}}"
"add": "הוספת {{token}} חדש",
"delete": "מחיקת {{token}}",
"duplicate": "שכפול מקטע",
"edit": "עריכת {{token}}"
},
"columns": {
"heading": "טורים",
"tooltip": "שנה את מספר הטורים"
"heading": "עמודות",
"tooltip": "החלפת כמות העמודות"
},
"form": {
"date": {
@ -17,10 +18,10 @@
"label": "תיאור"
},
"email": {
"label": "כתובת דוא\"ל"
"label": "כתובת דוא״ל"
},
"end-date": {
"help-text": "השאר שדה זה ריק, אם אתה עדיין נמצא שם",
"help-text": "יש להשאיר שדה זה ריק, אם זה המקום הנוכחי",
"label": "תאריך סיום"
},
"keywords": {
@ -39,16 +40,16 @@
"label": "מספר טלפון"
},
"position": {
"label": "תפקיד בעבודה"
"label": "תפקיד"
},
"start-date": {
"label": "תאריך התחלה"
},
"subtitle": {
"label": "תת כותרת"
"label": "תת־כותרת"
},
"summary": {
"label": "סיכום"
"label": "תקציר"
},
"title": {
"label": "כותרת"
@ -58,7 +59,7 @@
}
},
"glossary": {
"page": ף"
"page": "עמוד"
},
"list": {
"actions": {
@ -66,38 +67,38 @@
"duplicate": "שכפול",
"edit": "עריכה"
},
"empty-text": "הרשימה ריקה!"
"empty-text": "הרשימה ריקה."
},
"tooltip": {
"delete-item": "האם אתה בטוח שברצונך להסיר פריט זה? זה בלתי הפיך.",
"delete-section": "מחיקת קטע",
"rename-section": נה את שם הקטע",
"toggle-visibility": "שנה מצב נראות"
"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": "הקטן",
"undo": "לבטל",
"redo": "לַעֲשׂוֹת שׁוּב"
"center-artboard": רכוז משטח היצירה",
"copy-link": "העתקת קישור לקורות חיים",
"export-pdf": "ייצוא PDF",
"redo": "ביצוע חוזר",
"toggle-orientation": "החלפת כיוון הדף",
"toggle-page-break-line": "החלפת קו מעבר עמוד",
"toggle-sidebars": "החלפת מצב סרגלי הצד",
"undo": "ביטול",
"zoom-in": "הגדלה",
"zoom-out": "הקטנה"
}
},
"header": {
"menu": {
"delete": "מחיקה",
"duplicate": "שכפל",
"rename": נה שם",
"share-link": תף קישור",
"duplicate": "שכפול",
"rename": ינוי שם",
"share-link": יתוף קישור",
"tooltips": {
"delete": "האם אתה בטוח שברצונך להסיר תכונה זו? זה בלתי הפיך.",
"share-link": "עליך לשנות את החשיפה של קורות החיים שלך לציבור כדי להפוך אותם לגלויים לאחרים."
"delete": "להסיר קורות חיים אלה? זה בלתי הפיך.",
"share-link": "עליך לשנות את החשיפה של קורות החיים שלך לציבורית כדי שיהיו זמינים לאחרים."
}
}
},
@ -114,16 +115,16 @@
"actions": {
"photo-filters": "מסנן תמונות"
},
"heading": "בסיסי",
"birthdate": {
"label": "תאריך לידה"
},
"heading": "יסודות",
"headline": {
"label": "כותרת"
"label": "כותרת ראשית"
},
"name": {
"label": "שם מלא"
},
"birthdate": {
"label": "תאריך לידה"
},
"photo-filters": {
"effects": {
"border": {
@ -135,7 +136,7 @@
"heading": "אפקטים"
},
"shape": {
"heading": "צוּרָה"
"heading": "צורה"
},
"size": {
"heading": "גודל (בפיקסלים)"
@ -143,8 +144,8 @@
},
"photo-upload": {
"tooltip": {
"remove": "הסר תמונה",
"upload": "העלה תמונה"
"remove": "הסרת תמונה",
"upload": "העלאת תמונה"
}
}
},
@ -158,19 +159,19 @@
"education": {
"form": {
"area-study": {
"label": "תחום לימוד"
"label": "תחום לימודים"
},
"courses": {
"label": "קורסים"
},
"degree": {
"label": "תוֹאַר"
"label": "תואר"
},
"grade": {
"label": "כיתה"
"label": "ציון"
},
"institution": {
"label": "מוֹסָד"
"label": "מוסד"
}
}
},
@ -179,7 +180,7 @@
"label": "כתובת"
},
"city": {
"label": ִיר"
"label": "עיר"
},
"country": {
"label": "מדינה"
@ -195,19 +196,19 @@
"profiles": {
"form": {
"network": {
"label": ֶשֶׁת"
"label": שת"
},
"username": {
"label": "שם משתמש"
}
},
"heading": "פרופילים",
"heading_one": ּרוֹפִיל"
"heading_one": "פרופיל"
},
"publications": {
"form": {
"publisher": {
"label": "מוֹצִיא לָאוֹר"
"label": "הוצאה לאור"
}
}
},
@ -219,12 +220,12 @@
}
},
"section": {
"heading": "סָעִיף"
"heading": "מקטע"
},
"volunteer": {
"form": {
"organization": {
"label": ִרגוּן"
"label": "ארגון"
}
}
}
@ -236,69 +237,70 @@
"heading": "CSS מותאם אישית"
},
"export": {
"heading": "יְצוּא",
"heading": "ייצוא",
"json": {
"primary": "JSON",
"secondary": "הורד גירסת JSON של קורות החיים שלך שניתן לייבא חזרה אל קורות חיים ריאקטיביים."
"secondary": "הורדת גרסת JSON של קורות החיים שלך שניתן לייבא בחזרה לקורות חיים מסתגלים."
},
"pdf": {
"loading": {
"primary": "יצירת PDF",
"secondary": "המתן עם יצירת ה-PDF שלך, זה עשוי להימשך עד 15 שניות."
"primary": "נוצר PDF",
"secondary": "נא להמתין בזמן יצירת ה־PDF שלך, הפעולה עשויה לארוך עד 15 שניות."
},
"normal": {
"primary": "PDF",
"secondary": "הורד קובץ PDF של קורות החיים שלך שתוכל להדפיס ולשלוח לעבודת החלומות שלך. לא ניתן לייבא קובץ זה בחזרה לעריכה נוספת."
"secondary": "הורדת PDF של קורות החיים שלך שניתן להדפיס ולשלוח לטובת משרת החלומות שלך. אי אפשר לייבא את הקובץ הזה בחזרה להמשך עריכה."
}
}
},
"layout": {
"heading": "מַעֲרָך",
"heading": "פריסה",
"tooltip": {
"reset-layout": פס פריסה"
"reset-layout": יפוס פריסה"
}
},
"links": {
"bugs-features": {
"body": "משהו מונע ממך לעשות קורות חיים? או שיש לכם רעיון מדהים להוסיף? העלה בעיה ב-GitHub כדי להתחיל.",
"button": "בעיות GitHub",
"heading": "באגים? בקשות לתכונה?"
"body": "משהו מונע ממך ליצור קורות חיים? או שיש לך רעיון מדהים להוסיף? צריך רק לתעד בעיה ב־GitHub כדי להתחיל.",
"button": "בעיות ב־GitHub",
"heading": "תקלות? בקשות ליכולות?"
},
"docs": "תיעוד",
"donate": {
"body": "אם אהבתם להשתמש בקורות חיים ריאקטיביים, אנא שקול לתרום ככל שתוכל למען שמירה על האפליקציה ופועלת, ללא פרסומות ובחינם לנצח.",
"button": "תקנה לי קפה",
"heading": "תרומה לקורות חיים ריאקטיביים"
"body": "אם אהבת להשתמש בקורות חיים מסתגלים, נא לשקול לתרום ככל שניתן כדי לשמור על היישום חי ובועט, ללא פרסומות ובחינם לנצח.",
"button": "קנו לי קפה",
"heading": "תרומה לקורות חיים מסתגלים"
},
"github": "קוד מקור",
"docs": "תיעוד",
"heading": "קישורים"
"heading": "קישורים",
"reddit": "רדיט"
},
"settings": {
"global": {
"date": {
"primary": ַאֲרִיך",
"secondary": "פורמט תאריך לשימוש בכל האפליקציה"
"primary": אריך",
"secondary": "תבנית תאריך לשימוש בכל היישום"
},
"heading": "גלוֹבָּלִי",
"heading": "גלובלית",
"language": {
"primary": "שפה",
"secondary": "שפת תצוגה לשימוש בכל האפליקציה"
"secondary": "שפת התצוגה של היישום"
},
"theme": {
"primary": "ערכת נושא"
"primary": "ערכת עיצוב"
}
},
"heading": "הגדרות",
"page": {
"break-line": {
"primary": "קו מעבר",
"secondary": "להציג קו בכל הדפים כדי לסמן את גובהו של דף A4"
},
"format": {
"primary": "גודל נייר",
"secondary": "קובע את הממדים של דפי קורות החיים שלך"
},
"break-line": {
"primary": "קו עצירה",
"secondary": "הצג קו בכל הדפים כדי לסמן את גובהו של דף A4"
},
"heading": "דף",
"heading": "עמוד",
"orientation": {
"disabled": "אין השפעה כשיש רק עמוד אחד",
"primary": "כיוון",
@ -308,23 +310,23 @@
"resume": {
"heading": "קורות חיים",
"reset": {
"primary": פס הכל",
"secondary": "עשית יותר מדי טעויות? לחץ כאן כדי לאפס את כל השינויים ולהתחיל מאפס. היזהר, פעולה זו לא ניתנת לביטול."
"primary": יפוס של הכול",
"secondary": "עשית יותר מדי טעויות? לחיצה כאן תאפס את כל השינויים ותאפשר לך להתחיל מחדש. כדאי לשים לב, זאת פעולה בלתי הפיכה."
},
"sample": {
"primary": "טען נתונים לדוגמה",
"secondary": "לא בטוחים מאיפה להתחיל? לחץ כאן כדי לטעון כמה נתונים לדוגמה כדי לראות איך קורות חיים מלאים נראים."
"primary": "טעינת נתונים לדוגמה",
"secondary": "לא ברור לך מאיפה להתחיל? לחיצה כאן תטען נתונים לדוגמה כדי לראות איך נראים קורות חיים שלמים."
}
}
},
"sharing": {
"heading": "שיתוף",
"short-url": {
"label": "העדף כתובת URL קצרה"
"label": "להעדיף כתובת מקוצרת"
},
"visibility": {
"subtitle": "אפשר לכל מי שיש לו קישור לראות את קורות החיים שלך",
"title": "גלוי לכול"
"subtitle": "לאפשר לכל מי שיש קישור לראות את קורות החיים שלך",
"title": "ציבורי"
}
},
"templates": {
@ -342,15 +344,15 @@
"label": "טקסט"
}
},
"heading": "ערכת נושא"
"heading": "ערכת עיצוב"
},
"typography": {
"form": {
"font-family": {
"label": "משפחת גופן"
"label": "משפחת גופנים"
},
"font-size": {
"label": "גודל גופן"
"label": "גודל כתב"
}
},
"heading": "טיפוגרפיה",
@ -359,7 +361,7 @@
"label": "גוף"
},
"headings": {
"label": "כותרת"
"label": "כותרות"
}
}
}

View File

@ -2,28 +2,28 @@
"avatar": {
"menu": {
"greeting": "שלום",
"logout": "התנתק/י"
"logout": "יציאה"
}
},
"footer": {
"credit": "פרויקט תשוקה מאת <1>אמרות פילאי</1>",
"credit": "מיזם שהוא התשוקה של <1>אמרות פילאי</1>",
"license": "על ידי הקהילה, עבור הקהילה."
},
"markdown": {
"help-text": "סעיף זה תומך ב-<1>markdown</1> עיצוב."
"help-text": "סעיף זה תומך בעיצוב <1>Markdown</1>."
},
"date": {
"present": "הווה"
},
"subtitle": "בונה קורות חיים חינמי ובקוד פתוח.",
"title": "קורות חיים תגובתיים",
"title": "קורות חיים מסתגלים",
"toast": {
"error": {
"upload-file-size": "נא להעלות רק קבצים מתחת ל-2 מגה בייט.",
"upload-photo-size": "נא להעלות רק תמונות מתחת ל-2 מגה בייט, רצוי מרובע."
"upload-file-size": "נא להעלות רק קבצים קטנים מ־2 מגהבתים.",
"upload-photo-size": "נא להעלות רק תמונות מתחת ל־2 מגהבתים, רצוי מרובעות."
},
"success": {
"resume-link-copied": "קישור לקורות החיים שלך הועתק ללוח."
"resume-link-copied": "הקישור לקורות החיים שלך הועתק ללוח הגזירים."
}
}
}

View File

@ -1,25 +1,25 @@
{
"create-resume": {
"subtitle": "להתחיל מאפס",
"title": "צור קורות חיים חדשים"
"subtitle": "התחלה מאפס",
"title": "יצירת קורות חיים חדשים"
},
"import-external": {
"subtitle": "לינקדאין, קורות חיים של JSON, קורות חיים ריאקטיביים",
"subtitle": "לינקדאין, קורות חיים ב־JSON, קורות חיים מסתגלים",
"title": "ייבוא ממקורות חיצוניים"
},
"resume": {
"menu": {
"delete": "מחיקה",
"duplicate": "שכפל",
"open": "פתוח",
"rename": נה שם",
"share-link": תף קישור",
"duplicate": "שכפול",
"open": "פתיחה",
"rename": ינוי שם",
"share-link": יתוף קישור",
"tooltips": {
"delete": "האם אתה בטוח שברצונך להסיר תכונה זו? זה בלתי הפיך.",
"share-link": "עליך לשנות את החשיפה של קורות החיים שלך לציבורי כדי להפוך אותם לגלויים לאחרים."
"delete": "להסיר קורות חיים אלה? זה בלתי הפיך.",
"share-link": "עליך לשנות את החשיפה של קורות החיים שלך לציבורית כדי שיהיו זמינים לאחרים."
}
},
"timestamp": "עודכן לאחרונה {{timestamp}}"
"timestamp": "עודכן לאחרונה לפני {{timestamp}}"
},
"title": "לוּחַ מַחווָנִים"
"title": "לוח בקרה"
}

View File

@ -1,42 +1,43 @@
{
"actions": {
"app": "עבור לאפליקציה",
"login": "התחברות",
"logout": "להתנתק",
"register": ירשם"
"app": "מעבר ליישום",
"login": "כניסה",
"logout": "יציאה",
"register": "הרשמה"
},
"features": {
"heading": "תכונות",
"heading": "יכולות",
"list": {
"ads": "אין פרסום",
"export": "ייצא את קורות החיים שלך לפורמט JSON או PDF",
"free": "חופשי לנצח",
"import": "יבא נתונים מ-LinkedIn, קורות חיים של JSON",
"ads": "אין פרסומות",
"export": "ייצוא קורות החיים שלך ל־JSON או ל־PDF",
"free": "חופשי, לנצח",
"import": "ייבוא נתונים מלינקדאין, קורות חיים ב־JSON",
"languages": "נגיש במספר שפות",
"more": "ותכונות מרגשות הרבה יותר, <1>קרא הכל כאן</1>",
"more": "ועוד המון יכולות מפתיעות, <1>כאן יש יותר מידע על זה</1>",
"tracking": "אין מעקב אחר משתמשים"
}
},
"links": {
"heading": "קישורים",
"links": {
"donate": "לִתְרוֹם",
"github": "קוד מקור",
"docs": "תיעוד",
"donate": "תרומה",
"github": "קוד מקור",
"privacy": "מדיניות פרטיות",
"reddit": "רדיט",
"service": "תנאי השירות"
}
},
"screenshots": {
"heading": "צילומי מסך"
},
"testimonials": {
"heading": "המלצות",
"body": "טוב או רע, אשמח לשמוע את דעתכם על קורות חיים ריאקטיביים ואיך הייתה החוויה עבורכם.<br/>הנה כמה מההודעות שנשלחו על ידי משתמשים ברחבי העולם.",
"contact": "אתה יכול ליצור איתי קשר דרך <1>המייל שלי</1> או דרך טופס יצירת הקשר ב<3>אתר האינטרנט שלי</3> ."
},
"summary": {
"body": "Reactive Resume הוא בונה קורות חיים חינמי וקוד פתוח שנבנה כדי להפוך את המשימות השגרתיות של יצירה, עדכון ושיתוף של קורות החיים שלך לקלות כמו 1, 2, 3. עם האפליקציה הזו, אתה יכול ליצור מספר קורות חיים, לשתף אותם עם מגייסים או חברים דרך קישור ייחודי והדפיס אותו כקובץ PDF, הכל בחינם, ללא פרסומות, ללא מעקב, מבלי לאבד את השלמות והפרטיות של הנתונים שלך.",
"heading": "סיכום"
"body": "קורות חיים מסתגלים הוא בונה קורות חיים בחינם ובקוד פתוח שנבנה כדי להקל על המשימות המשמימות של יצירה, עדכון ושיתוף קורות החיים שלך. עם היישום הזה אפשר ליצור מספר גיליונות של קורות חיים, לשתף אותם עם מגייסים או חברים דרך קישור ייחודי ולהדפיס אותם כ־PDF, הכול בחינם, ללא פרסומות, ללא מעקב, מבלי לאבד את שלמות או את פרטיות הנתונים שלך.",
"heading": "תקציר"
},
"testimonials": {
"body": "לטוב ולרע, אשמח לשמוע את הדעה שלך על קורות חיים מסתגלים ואיך הייתה החוויה שלך.<br/>הנה כמה מההודעות שנשלחו על ידי משתמשים מכל רחבי העולם.",
"contact": "אפשר יכול ליצור איתי קשר דרך ה<1>דוא״ל שלי</1> או דרך טופס יצירת הקשר ב<3>אתר שלי</3> .",
"heading": "המלצות"
}
}

View File

@ -2,47 +2,47 @@
"auth": {
"forgot-password": {
"actions": {
"send-email": "שלח אימייל איפוס סיסמה"
"send-email": "שליחת דוא״ל לאיפוס סיסמה"
},
"body": "פשוט הזן את כתובת האימייל המשויכת לחשבון שברצונך לשחזר.",
"body": "צריך פשוט למלא את כתובת הדוא״ל שמשויכת לחשבון שמיועד לשחזור.",
"form": {
"email": {
"label": "כתובת דוא\"ל"
"label": "כתובת דוא״ל"
}
},
"heading": "שכחת ססמה?",
"help-text": "אם החשבון קיים, תקבל אימייל עם קישור לאיפוס הסיסמה שלך."
"heading": "שכחת סיסמה?",
"help-text": "אם החשבון קיים, תישלח הודעה עם קישור לאיפוס הסיסמה שלך בדוא״ל."
},
"login": {
"actions": {
"login": "התחברות"
"login": "כניסה"
},
"body": "אנא הזן את שם המשתמש והסיסמה המשויכים לחשבונך כדי להתחבר ולגשת, לנהל ולשתף את קורות החיים שלך.",
"body": "נא למלא את שם המשתמש והסיסמה המשויכים לחשבונך כדי להתחבר ולגשת, לנהל ולשתף את קורות החיים שלך.",
"form": {
"password": {
"label": "סיסמה"
},
"username": {
"help-text": תה יכול גם להזין את כתובת הדוא\"ל שלך",
"help-text": פשר גם למלא את כתובת הדוא״ל שלך",
"label": "שם משתמש"
}
},
"heading": "התחבר לחשבונך",
"recover-text": "במקרה ששכחת את הסיסמה שלך, תוכל <1>לשחזר את חשבונך</1> כאן.",
"register-text": "אם אין לך אחד, אתה יכול <1>ליצור חשבון</1> כאן."
"heading": "כניסה לחשבונך",
"recover-text": "אם שכחת את הסיסמה שלך, אפשר <1>לשחזר את החשבון שלך</1> דרך כאן.",
"register-text": "אם אין לך חשבון, אפשר <1>ליצור אחד</1> כאן."
},
"register": {
"actions": {
"register": ירשם",
"google": ירשם בגוגל"
"register": "הרשמה",
"google": "הרשמה עם Google"
},
"body": "אנא הזן את המידע האישי שלך כדי ליצור חשבון.",
"body": "נא למלא את הפרטים האישיים שלך כדי ליצור חשבון.",
"form": {
"confirm-password": {
"label": שר סיסמה"
"label": ישור סיסמה"
},
"email": {
"label": "כתובת דוא\"ל"
"label": "כתובת דוא״ל"
},
"name": {
"label": "שם מלא"
@ -54,31 +54,56 @@
"label": "שם משתמש"
}
},
"heading": "צור חשבון",
"loginText": "אם כבר יש לך חשבון, אתה יכול <1>להתחבר כאן</1> ."
"heading": "יצירת חשבון",
"loginText": "אם כבר יש לך חשבון, אפשר <1>להיכנס כאן</1> ."
},
"reset-password": {
"actions": {
"set-password": "הגדר סיסמה חדשה"
"set-password": "הגדרת סיסמה חדשה"
},
"body": "הזן סיסמה חדשה לחשבון שלך.",
"body": "מילוי סיסמה חדשה לחשבון שלך.",
"form": {
"confirm-password": {
"label": שר סיסמה"
"label": ימות סיסמה"
},
"password": {
"label": "סיסמה"
}
},
"heading": פס את הסיסמה שלך"
"heading": יפוס הסיסמה שלך"
},
"profile": {
"heading": "החשבון שלך",
"form": {
"avatar": {
"help-text": "אפשר לעדכן את תמונת הפרופיל שלך ב־<1>Gravatar</1>"
},
"name": {
"label": "שם מלא"
},
"email": {
"label": "כתובת דוא״ל",
"help-text": "אי אפשר לעדכן את כתובת הדוא״ל שלך כרגע, נא ליצור חשבון חדש במקום."
}
},
"delete-account": {
"heading": "מחיקת חשבון ונתונים",
"body": "כדי למחוק את החשבון שלך ואת כל קורות החיים שלך, יש להקליד את „{{keyword}}” לתיבת טקסט וללחוץ על הכפתור. נא לשים לב שזאת פעולה בלתי הפיכה ושלא ניתן יהיה להשיג את הנתונים שלך עוד.",
"actions": {
"delete": "מחיקת חשבון"
}
},
"actions": {
"save": "שמירת השינויים"
}
}
},
"dashboard": {
"create-resume": {
"actions": {
"create-resume": "צור קורות חיים"
"create-resume": "יצירת קורות חיים"
},
"body": "התחל לבנות את קורות החיים שלך על ידי מתן שם לקובץ. זה יכול להיות בהתייחסות לתפקיד שאתה מגיש מועמדות אליו, או רק החטיף האהוב עליך.",
"body": "התחלה בבניית קורות החיים שלך עוברת דרך מתן שם. זה יכול להיות תואם לתפקיד המיועד או סתם החטיף האהוב עליך.",
"form": {
"name": {
"label": "שם"
@ -87,49 +112,49 @@
"label": "האם נגיש לציבור?"
},
"slug": {
"label": "סלאג"
"label": "שם ייצוגי"
}
},
"heading": "צור קורות חיים חדשים"
"heading": "יצירת קורות חיים חדשים"
},
"import-external": {
"heading": "ייבוא ממקורות חיצוניים",
"json-resume": {
"actions": {
"upload-json": "העלה JSON"
"upload-json": "העלאת JSON"
},
"body": "אם יש לך <1>קורות חיים של JSON מאומת</1> מוכן לפעולה, אתה יכול להשתמש בו כדי לעקוב במהירות את הפיתוח שלך בקורות חיים ריאקטיביים. לחץ על הכפתור למטה והעלה קובץ JSON חוקי כדי להתחיל.",
"heading": "ייבוא מ-JSON קורות חיים"
"body": "אם יש לך <1>קורות חיים ב־JSON תקף</1> בהישג יד, אפשר להשתמש בהם כדי לעקוב במהירות אחר ההתפתחות שלך בקורות חיים מסתגלים. יש ללחוץ על הכפתור להלן ולהעלות קובץ JSON תקף כדי להתחיל.",
"heading": "ייבוא מקורות חיים ב־JSON"
},
"linkedin": {
"actions": {
"upload-archive": "העלה ארכיון ZIP"
"upload-archive": "העלאת ארכיון ZIP"
},
"body": תה יכול לחסוך זמן על ידי ייצוא הנתונים שלך מ-LinkedIn ושימוש בהם למילוי אוטומטי של שדות בקורות חיים תגובתיים. עבור אל <1>פרטיות נתונים</1> מדור בלינקדאין ובקש ארכיון של הנתונים שלך. ברגע שהוא זמין, העלה את קובץ ה-ZIP למטה.",
"heading": "ייבוא מ-LinkedIn"
"body": פשר לחסוך זמן על ידי ייצוא הנתונים שלך מלינקדאין ושימוש בהם למילוי אוטומטי של כל השדות בקורות חיים מסתגלים. יש לגשת לסעיף <1>פרטיות נתונים</1> בלינקדאין ולבקש ארכיון של הנתונים שלך. לאחר שהשגת אותו, יש להעלות את קובץ ה־ZIP להלן.",
"heading": "ייבוא מלינקדאין"
},
"reactive-resume": {
"actions": {
"upload-json": "העלה JSON",
"upload-json-v2": "העלה JSON מגרסה 2"
"upload-json": "העלאת JSON",
"upload-json-v2": "העלאת JSON מגרסה 2"
},
"body": "אם יש לך JSON שיוצא עם הגרסה הנוכחית של Reactive Resume, תוכל לייבא אותו בחזרה לכאן כדי לקבל שוב גרסה הניתנת לעריכה.",
"heading": "ייבא מ- Reactive Resume"
"body": "אם יש לך JSON שייוצא עם הגרסה הנוכחית של קורות חיים מסתגלים, אפשר לייבא אותם בחזרה לכאן כדי לקבל שוב גרסה שניתן לערוך.",
"heading": "ייבוא מקורות חיים מסתגלים"
}
},
"rename-resume": {
"actions": {
"rename-resume": נה את שם קורות החיים"
"rename-resume": ינוי שם קורות החיים"
},
"form": {
"name": {
"label": "שם"
},
"slug": {
"label": "סלאג"
"label": "שם ייצוגי"
}
},
"heading": נה את שם קורות החיים שלך"
"heading": ינוי שם קורות החיים שלך"
}
}
}

View File

@ -3,6 +3,7 @@
"actions": {
"add": "नया जोड़ें {{token}}",
"delete": "हटाएं {{token}}",
"duplicate": "डुप्लीकेट धारा",
"edit": "संपादित करें {{token}}"
},
"columns": {
@ -80,13 +81,13 @@
"center-artboard": "केंद्र आर्टबोर्ड",
"copy-link": "फिर से शुरू करने के लिए लिंक कॉपी करें",
"export-pdf": "पीडीएफ निर्यात करें",
"redo": "फिर से करें",
"toggle-orientation": "टॉगल पेज ओरिएंटेशन",
"toggle-page-break-line": "टॉगल पेज ब्रेक लाइन",
"toggle-sidebars": "साइडबार टॉगल करें",
"zoom-in": "ज़ूम इन",
"zoom-out": "ज़ूम आउट",
"undo": "पूर्ववत",
"redo": "फिर से करें"
"zoom-in": "ज़ूम इन",
"zoom-out": "ज़ूम आउट"
}
},
"header": {
@ -114,6 +115,9 @@
"actions": {
"photo-filters": "फोटो फिल्टर"
},
"birthdate": {
"label": "जन्म की तारीख"
},
"heading": "मूल बातें",
"headline": {
"label": "शीर्षक"
@ -121,9 +125,6 @@
"name": {
"label": "पूरा नाम"
},
"birthdate": {
"label": "जन्म की तारीख"
},
"photo-filters": {
"effects": {
"border": {
@ -264,14 +265,15 @@
"button": "गिटहब मुद्दे",
"heading": "कीड़े? सुविधा का अनुरोध?"
},
"docs": "प्रलेखन",
"donate": {
"body": "यदि आप रिएक्टिव रिज्यूमे का उपयोग करना पसंद करते हैं, तो कृपया ऐप को चालू रखने और विज्ञापनों के बिना और हमेशा के लिए मुक्त रखने के लिए जितना हो सके दान करने पर विचार करें।",
"button": "मेरे लिए एक कॉफी खरीदें",
"heading": "प्रतिक्रियाशील फिर से शुरू करने के लिए दान करें"
},
"github": "सोर्स कोड",
"docs": "प्रलेखन",
"heading": "लिंक"
"heading": "लिंक",
"reddit": "reddit"
},
"settings": {
"global": {
@ -290,14 +292,14 @@
},
"heading": "समायोजन",
"page": {
"format": {
"primary": "काग़ज़ का आकार",
"secondary": "आपके रेज़्यूमे पृष्ठों के आयाम निर्धारित करता है"
},
"break-line": {
"primary": "अंतराल वाली लकीर",
"secondary": "A4 पृष्ठ की ऊंचाई को चिह्नित करने के लिए सभी पृष्ठों पर एक पंक्ति दिखाएं"
},
"format": {
"primary": "काग़ज़ का आकार",
"secondary": "आपके रेज़्यूमे पृष्ठों के आयाम निर्धारित करता है"
},
"heading": "पृष्ठ",
"orientation": {
"disabled": "केवल एक पृष्ठ होने पर कोई प्रभाव नहीं पड़ता",

View File

@ -20,23 +20,24 @@
"links": {
"heading": "लिंक",
"links": {
"docs": "प्रलेखन",
"donate": "दान करना",
"github": "सोर्स कोड",
"docs": "प्रलेखन",
"privacy": "गोपनीयता नीति",
"reddit": "reddit",
"service": "सेवा की शर्तें"
}
},
"screenshots": {
"heading": "स्क्रीनशॉट"
},
"testimonials": {
"heading": "प्रशंसापत्र",
"body": "अच्छा या बुरा, मुझे रिएक्टिव रिज्यूमे पर आपकी राय और आपके लिए अनुभव कैसा रहा, यह जानकर अच्छा लगेगा।<br/>यहां दुनिया भर के उपयोगकर्ताओं द्वारा भेजे गए कुछ संदेश दिए गए हैं।",
"contact": "आप <1>मेरे ईमेल</1> के माध्यम से या <3>मेरी वेबसाइट</3> पर संपर्क फ़ॉर्म के माध्यम से मुझसे संपर्क कर सकते हैं।"
},
"summary": {
"body": "रिएक्टिव रिज्यूमे एक फ्री और ओपन सोर्स रिज्यूमे बिल्डर है जो आपके रिज्यूमे को बनाने, अपडेट करने और साझा करने के सांसारिक कार्यों को 1, 2, 3 जितना आसान बनाने के लिए बनाया गया है। इस ऐप के साथ, आप कई रिज्यूमे बना सकते हैं, उन्हें रिक्रूटर्स या दोस्तों के साथ साझा कर सकते हैं। एक अद्वितीय लिंक के माध्यम से और अपने डेटा की अखंडता और गोपनीयता को खोए बिना इसे एक पीडीएफ के रूप में प्रिंट करें, सब कुछ मुफ्त में, कोई विज्ञापन नहीं, कोई ट्रैकिंग नहीं।",
"heading": "सारांश"
},
"testimonials": {
"body": "अच्छा या बुरा, मुझे रिएक्टिव रिज्यूमे पर आपकी राय और आपके लिए अनुभव कैसा रहा, यह जानकर अच्छा लगेगा।<br/>यहां दुनिया भर के उपयोगकर्ताओं द्वारा भेजे गए कुछ संदेश दिए गए हैं।",
"contact": "आप <1>मेरे ईमेल</1> के माध्यम से या <3>मेरी वेबसाइट</3> पर संपर्क फ़ॉर्म के माध्यम से मुझसे संपर्क कर सकते हैं।",
"heading": "प्रशंसापत्र"
}
}

View File

@ -71,6 +71,31 @@
}
},
"heading": "अपना पासवर्ड रीसेट करें"
},
"profile": {
"heading": "आपका खाता",
"form": {
"avatar": {
"help-text": "आप <1>Gravatar पर अपना प्रोफ़ाइल चित्र अपडेट कर सकते हैं</1>"
},
"name": {
"label": "पूरा नाम"
},
"email": {
"label": "मेल पता",
"help-text": "इस समय आपका ईमेल पता अपडेट करना संभव नहीं है, कृपया इसके बजाय एक नया खाता बनाएं।"
}
},
"delete-account": {
"heading": "खाता और डेटा हटाएं",
"body": "अपने खाते, अपने डेटा और अपने सभी बायोडाटा को हटाने के लिए टेक्स्ट बॉक्स में \"{{keyword}}\" टाइप करें और बटन पर क्लिक करें। कृपया ध्यान दें कि यह एक अपरिवर्तनीय क्रिया है और आपका डेटा फिर से प्राप्त नहीं किया जा सकता है।",
"actions": {
"delete": "खाता हटा दो"
}
},
"actions": {
"save": "परिवर्तनों को सुरक्षित करें"
}
}
},
"dashboard": {

View File

@ -3,6 +3,7 @@
"actions": {
"add": "Új {{token}} hozzáadása",
"delete": "{{token}} törlése",
"duplicate": "Második szakasz",
"edit": "{{token}} szerkesztése"
},
"columns": {
@ -80,13 +81,13 @@
"center-artboard": "Központi rajztábla",
"copy-link": "Önéletrajz link másolása",
"export-pdf": "Exportálás PDF-be",
"redo": "Mégis",
"toggle-orientation": "Oldaltájolás",
"toggle-page-break-line": "Oldaltörés vonal ki/be",
"toggle-sidebars": "Oldalsávok ki/be",
"zoom-in": "Nagyítás",
"zoom-out": "Kicsinyítés",
"undo": "Visszavonás",
"redo": "Mégis"
"zoom-in": "Nagyítás",
"zoom-out": "Kicsinyítés"
}
},
"header": {
@ -114,6 +115,9 @@
"actions": {
"photo-filters": "Fotószűrők"
},
"birthdate": {
"label": "Születési dátum"
},
"heading": "Alapok",
"headline": {
"label": "Címsor"
@ -121,9 +125,6 @@
"name": {
"label": "Teljes név"
},
"birthdate": {
"label": "Születési dátum"
},
"photo-filters": {
"effects": {
"border": {
@ -264,14 +265,15 @@
"button": "GitHub problémák",
"heading": "Hibák? Funkciókérés?"
},
"docs": "Dokumentáció",
"donate": {
"body": "Ha elégedett a Reactive Resume alkalmazással, kérjük, fontolja meg, hogy tetszőleges összeggel támogassa munkánkat, hogy továbbra is ingyenes és hirdetésmentes lehessen.",
"button": "Vegyél nekem egy kávét",
"heading": "Adományozzon a Reactive Resume-nak"
},
"github": "Forráskód",
"docs": "Dokumentáció",
"heading": "Linkek"
"heading": "Linkek",
"reddit": "Reddit"
},
"settings": {
"global": {
@ -290,14 +292,14 @@
},
"heading": "Beállítások",
"page": {
"format": {
"primary": "Papírméret",
"secondary": "Meghatározza az önéletrajz oldalméreteit"
},
"break-line": {
"primary": "Törésvonal",
"secondary": "Mutasson egy vonalat az összes oldalon, hogy megjelölje egy A4-es oldal magasságát"
},
"format": {
"primary": "Papírméret",
"secondary": "Meghatározza az önéletrajz oldalméreteit"
},
"heading": "oldal",
"orientation": {
"disabled": "Nincs hatása, ha csak egy oldal van",
@ -336,7 +338,7 @@
"label": "Háttér"
},
"primary": {
"label": "Elsődleges "
"label": "Elsődleges"
},
"text": {
"label": "Szöveg"

View File

@ -20,23 +20,24 @@
"links": {
"heading": "Linkek",
"links": {
"docs": "Dokumentáció",
"donate": "Adományozás",
"github": "Forráskód",
"docs": "Dokumentáció",
"privacy": "Adatvédelmi irányelvek",
"reddit": "Reddit",
"service": "Felhasználói feltételek"
}
},
"screenshots": {
"heading": "Képernyőképek"
},
"testimonials": {
"heading": "Beszámolók",
"body": "Jó vagy rossz, szeretném hallani a véleményét a Reactive Resume-ról, és arról, hogy milyen élményben volt része az Ön számára.<br/>Íme néhány üzenet a felhasználók által a világ minden tájáról küldött üzenetei közül.",
"contact": "Az <1>e-mail címemen keresztül elérhetsz</1> vagy a <3>webhelyemen található kapcsolatfelvételi űrlapon keresztül</3> ."
},
"summary": {
"body": "A Reactive Resume egy ingyenes és nyílt forráskódú önéletrajz-készítő, amely az önéletrajz létrehozásának, frissítésének és megosztásának hétköznapi feladatait olyan egyszerűvé teszi, mint 1, 2, 3. Ezzel az alkalmazással több önéletrajzot hozhat létre, és megoszthatja azokat toborzókkal vagy barátaival. egy egyedi hivatkozáson keresztül, és nyomtassa ki PDF formátumban, mindezt ingyenesen, hirdetések nélkül, nyomon követés nélkül, anélkül, hogy elveszítené adatai sértetlenségét és magánéletét.",
"heading": "Összegzés"
},
"testimonials": {
"body": "Jó vagy rossz, szeretném hallani a véleményét a Reactive Resume-ról, és arról, hogy milyen élményben volt része az Ön számára.<br/>Íme néhány üzenet a felhasználók által a világ minden tájáról küldött üzenetei közül.",
"contact": "Az <1>e-mail címemen keresztül elérhetsz</1> vagy a <3>webhelyemen található kapcsolatfelvételi űrlapon keresztül</3> .",
"heading": "Beszámolók"
}
}

View File

@ -71,6 +71,31 @@
}
},
"heading": "Jelszó visszaállítása"
},
"profile": {
"heading": "Fiókja",
"form": {
"avatar": {
"help-text": "Frissítheti profilképét a <1>Gravataron</1>"
},
"name": {
"label": "Teljes név"
},
"email": {
"label": "Email cím",
"help-text": "Jelenleg nem lehetséges az e-mail cím frissítése, kérjük, hozzon létre egy új fiókot."
}
},
"delete-account": {
"heading": "Fiók és adatok törlése",
"body": "Fiókjának, adatainak és összes önéletrajzának törléséhez írja be a \"{{keyword}}\" értéket a szövegmezőbe, és kattintson a gombra. Kérjük, vegye figyelembe, hogy ez egy visszafordíthatatlan művelet, és adatait nem lehet újra lekérni.",
"actions": {
"delete": "Fiók törlése"
}
},
"actions": {
"save": "Változtatások mentése"
}
}
},
"dashboard": {

View File

@ -3,6 +3,7 @@
"actions": {
"add": "Tambahkan {{token}} Baru",
"delete": "Hapus {{token}}",
"duplicate": "Bagian Duplikat",
"edit": "Ubah {{token}}"
},
"columns": {
@ -80,13 +81,13 @@
"center-artboard": "Tengahkan Artboard",
"copy-link": "Salin Tautan ke Resume",
"export-pdf": "Ekspor PDF",
"redo": "Ulangi",
"toggle-orientation": "Beralih Orientasi Halaman",
"toggle-page-break-line": "Beralih Garis Pemisah Halaman",
"toggle-sidebars": "Beralih Sidebar",
"zoom-in": "Perbesar",
"zoom-out": "Perkecil",
"undo": "Batalkan",
"redo": "Ulangi"
"zoom-in": "Perbesar",
"zoom-out": "Perkecil"
}
},
"header": {
@ -114,6 +115,9 @@
"actions": {
"photo-filters": "Filter Foto"
},
"birthdate": {
"label": "Tanggal Lahir"
},
"heading": "Dasar",
"headline": {
"label": "Judul"
@ -121,9 +125,6 @@
"name": {
"label": "Nama Lengkap"
},
"birthdate": {
"label": "Tanggal Lahir"
},
"photo-filters": {
"effects": {
"border": {
@ -264,14 +265,15 @@
"button": "Masalah GitHub",
"heading": "Bugs? Request Fitur?"
},
"docs": "Dokumentasi",
"donate": {
"body": "Jika Anda suka menggunakan Reactive Resume, harap pertimbangkan untuk donasi sebanyak mungkin untuk menjaga aplikasi tetap berjalan, tanpa iklan dan gratis selamanya.",
"button": "Belikan Saya Kopi",
"heading": "Donasi ke Reactive Resume"
},
"github": "Kode sumber",
"docs": "Dokumentasi",
"heading": "Link"
"heading": "Link",
"reddit": "Reddit"
},
"settings": {
"global": {
@ -290,14 +292,14 @@
},
"heading": "Pengaturan",
"page": {
"format": {
"primary": "Ukuran kertas",
"secondary": "Menentukan dimensi halaman resume Anda"
},
"break-line": {
"primary": "Break Line",
"secondary": "Tampilkan garis di semua halaman untuk menandai ketinggian halaman A4"
},
"format": {
"primary": "Ukuran kertas",
"secondary": "Menentukan dimensi halaman resume Anda"
},
"heading": "Halaman",
"orientation": {
"disabled": "Tidak berpengaruh ketika hanya ada satu halaman",

View File

@ -20,23 +20,24 @@
"links": {
"heading": "Link",
"links": {
"docs": "Dokumentasi",
"donate": "Donasi",
"github": "Kode Sumber",
"docs": "Dokumentasi",
"privacy": "Kebijakan Pribadi",
"reddit": "Reddit",
"service": "Persyaratan Layanan"
}
},
"screenshots": {
"heading": "Screenshot"
},
"testimonials": {
"heading": "Testimoni",
"body": "Baik atau buruk, saya akan senang mendengar pendapat Anda tentang Reactive Resume dan bagaimana pengalamannya bagi Anda.<br/>Berikut adalah beberapa pesan yang dikirim oleh pengguna di seluruh dunia.",
"contact": "Anda dapat menghubungi saya melalui <1>email saya</1> atau melalui formulir kontak di <3>situs web saya</3>."
},
"summary": {
"body": "Reactive Resume adalah pembuat resume gratis dan open source yang dibuat untuk membuat tugas-tugas lebih mudah seperti membuat, memperbarui, dan membagikan resume Anda semudah 1, 2, 3. Dengan aplikasi ini, Anda dapat membuat beberapa resume, membaginya dengan perekrut atau teman melalui tautan unik dan cetak sebagai PDF, semuanya gratis, tanpa iklan, tanpa pelacakan, tanpa kehilangan integritas dan privasi data Anda.",
"heading": "Ringkasan"
},
"testimonials": {
"body": "Baik atau buruk, saya akan senang mendengar pendapat Anda tentang Reactive Resume dan bagaimana pengalamannya bagi Anda.<br/>Berikut adalah beberapa pesan yang dikirim oleh pengguna di seluruh dunia.",
"contact": "Anda dapat menghubungi saya melalui <1>email saya</1> atau melalui formulir kontak di <3>situs web saya</3>.",
"heading": "Testimoni"
}
}

View File

@ -71,6 +71,31 @@
}
},
"heading": "Atur ulang kata sandi"
},
"profile": {
"heading": "Akun Anda",
"form": {
"avatar": {
"help-text": "Anda dapat memperbarui gambar profil Anda di <1>Gravatar</1>"
},
"name": {
"label": "Nama lengkap"
},
"email": {
"label": "Alamat email",
"help-text": "Tidak mungkin memperbarui alamat email Anda saat ini, harap buat akun baru."
}
},
"delete-account": {
"heading": "Hapus Akun dan Data",
"body": "Untuk menghapus akun Anda, data Anda dan semua resume Anda, ketik \"{{keyword}}\" ke dalam kotak teks dan klik tombolnya. Harap perhatikan bahwa ini adalah tindakan yang tidak dapat diubah dan data Anda tidak dapat diambil kembali.",
"actions": {
"delete": "Hapus akun"
}
},
"actions": {
"save": "Simpan perubahan"
}
}
},
"dashboard": {

View File

@ -3,6 +3,7 @@
"actions": {
"add": "Aggiungi {{token}}",
"delete": "Elimina {{token}}",
"duplicate": "Duplica sezione",
"edit": "Modifica {{token}}"
},
"columns": {
@ -80,13 +81,13 @@
"center-artboard": "Centra tavola da disegno",
"copy-link": "Copia link del curriculum",
"export-pdf": "Esporta in PDF",
"redo": "Ripeti",
"toggle-orientation": "Orientamento verticale/orizzontale",
"toggle-page-break-line": "Mostra/Nascondi linea interruzione pagina",
"toggle-sidebars": "Mostra/Nascondi barre laterali",
"zoom-in": "Ingrandisci",
"zoom-out": "Riduci",
"undo": "Annulla",
"redo": "Rifare"
"zoom-in": "Ingrandisci",
"zoom-out": "Riduci"
}
},
"header": {
@ -114,6 +115,9 @@
"actions": {
"photo-filters": "Filtri per foto"
},
"birthdate": {
"label": "Data di nascita"
},
"heading": "Informazioni di base",
"headline": {
"label": "Intestazione"
@ -121,9 +125,6 @@
"name": {
"label": "Nome e cognome"
},
"birthdate": {
"label": "Data di nascita"
},
"photo-filters": {
"effects": {
"border": {
@ -244,7 +245,7 @@
"pdf": {
"loading": {
"primary": "Generazione del PDF in corso...",
"secondary": "Attendi che la generazione del PDF sia completata, l'operazione potrebbe richiedere fino a 15 secondi."
"secondary": "La generazione del PDF è in corso e potrebbe richiedere fino a 15 secondi."
},
"normal": {
"primary": "PDF",
@ -264,14 +265,15 @@
"button": "Issue di GitHub",
"heading": "Bug? Richieste di funzionalità?"
},
"docs": "Documentazione",
"donate": {
"body": "Se Reactive Resume ti è piaciuto, ti invitiamo a contribuire con una donazione. In questo modo l'applicazione potrà continuare ad essere attiva, gratuita e senza pubblicità.",
"button": "Offrimi un caffè",
"heading": "Dona a Reactive Resume"
},
"github": "Codice sorgente",
"docs": "Documentazione",
"heading": "Link"
"heading": "Link",
"reddit": "Reddit"
},
"settings": {
"global": {
@ -290,14 +292,14 @@
},
"heading": "Impostazioni",
"page": {
"format": {
"primary": "Dimensioni del foglio",
"secondary": "Determina le dimensioni delle pagine del tuo curriculum"
},
"break-line": {
"primary": "Linea di interruzione",
"secondary": "Mostra su tutte le pagine una linea che indica l'altezza di un foglio A4"
},
"format": {
"primary": "Dimensioni del foglio",
"secondary": "Determina le dimensioni delle pagine del tuo curriculum"
},
"heading": "Pagina",
"orientation": {
"disabled": "Questa funzione non ha effetto se c'è solo una pagina",

View File

@ -20,7 +20,7 @@
"toast": {
"error": {
"upload-file-size": "Carica solo file inferiori a 2 MB.",
"upload-photo-size": "Carica solo foto inferiori a 2 MB, preferibilmente quadrate."
"upload-photo-size": "Carica solo foto di dimensioni inferiori a 2 MB, preferibilmente quadrate."
},
"success": {
"resume-link-copied": "Il link del tuo curriculum è stato copiato negli appunti."

View File

@ -15,7 +15,7 @@
"rename": "Rinomina",
"share-link": "Condividi link",
"tooltips": {
"delete": "Vuoi davvero eliminare questo curriculum? Questa operazione è irreversibile.",
"delete": "Vuoi davvero eliminare questo curriculum? Non potrai più recuperarlo.",
"share-link": "Per rendere il curriculum visibile agli altri, imposta la visibilità su \"Pubblico\"."
}
},

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