Compare commits
281 Commits
v2.38.0
...
37d408f762
| Author | SHA1 | Date | |
|---|---|---|---|
| 37d408f762 | |||
| 6d7c91ceeb | |||
| 9041101505 | |||
|
|
d3fda0be37 | ||
|
|
41de21201e | ||
|
|
005f85c34f | ||
|
|
6bb6125e81 | ||
|
|
4da2b844e8 | ||
|
|
eba1923b7c | ||
|
|
f28823dbe9 | ||
|
|
5d122bca7d | ||
|
|
ef4321586c | ||
|
|
336511dcd5 | ||
|
|
d73b6f9026 | ||
|
|
e959c0172d | ||
|
|
a15767c14f | ||
|
|
20b1743223 | ||
|
|
a89930fae6 | ||
|
|
60e81a921e | ||
|
|
36f75beea9 | ||
|
|
01a9eab73d | ||
|
|
a4eff5ae38 | ||
|
|
46b5495167 | ||
|
|
7c9ef2a702 | ||
|
|
ee9aed6bbc | ||
|
|
eb4cf6e2db | ||
|
|
c6ad6b495c | ||
|
|
5499a86854 | ||
|
|
627ccd8214 | ||
|
|
e760d59d9f | ||
|
|
e76858121f | ||
|
|
34f1d02803 | ||
|
|
64610050ca | ||
|
|
f5bd52a94d | ||
|
|
ce603cac1e | ||
|
|
3108235521 | ||
|
|
280aaecf76 | ||
|
|
ba0bb1eabc | ||
|
|
73d0755249 | ||
|
|
4d93dcb9b4 | ||
|
|
1fc9b8e279 | ||
|
|
c6d05111cc | ||
|
|
8fa3d8ba4a | ||
|
|
c5317beb3f | ||
|
|
7d82e36790 | ||
|
|
f39867b0e2 | ||
|
|
54cef503ad | ||
|
|
ce51371e62 | ||
|
|
7aabbbd497 | ||
|
|
02b89ea137 | ||
|
|
119a48f3a3 | ||
|
|
3146a0354c | ||
|
|
8e895a9890 | ||
|
|
ac436cbf79 | ||
|
|
4363aa7734 | ||
|
|
a65cb073b5 | ||
|
|
a3b9e4f7b2 | ||
|
|
ebde8a0171 | ||
|
|
684299ac3b | ||
|
|
c449aef7ae | ||
|
|
879a27ed0a | ||
|
|
107e7a4e31 | ||
|
|
fa0325106a | ||
|
|
bbfce9363f | ||
|
|
10a6280b78 | ||
|
|
08e8724b4c | ||
|
|
555c7e4e2d | ||
|
|
3673026a33 | ||
|
|
cd565ec160 | ||
|
|
bdcbae03ef | ||
|
|
296234a093 | ||
|
|
10c0955c6c | ||
|
|
8ba2bfda63 | ||
|
|
cb06cc53c2 | ||
|
|
826828ba30 | ||
|
|
22de38c72b | ||
|
|
0037c01beb | ||
|
|
fb17c666a9 | ||
|
|
2c32fac1f2 | ||
|
|
3f0b00decd | ||
|
|
160c7863f0 | ||
|
|
c4d185f2d6 | ||
|
|
6b13b1231a | ||
|
|
661137d500 | ||
|
|
962dcc1ce9 | ||
|
|
655df62d6c | ||
|
|
d827a10c84 | ||
|
|
25c640fabb | ||
|
|
0cb8d21290 | ||
|
|
7a47591967 | ||
|
|
6931ca27c3 | ||
|
|
d00d2de1cc | ||
|
|
b1be568991 | ||
|
|
28be3891d2 | ||
|
|
27d2297e2b | ||
|
|
7212ddd5c5 | ||
|
|
f4e9ac5bf1 | ||
|
|
8fec484d66 | ||
|
|
bcf781c37b | ||
|
|
d8a8e689d0 | ||
|
|
a844b95de3 | ||
|
|
ece885f973 | ||
|
|
66dd30604b | ||
|
|
d0f0f4905c | ||
|
|
c9cb6702b6 | ||
|
|
1ddb980242 | ||
|
|
94b626a4d2 | ||
|
|
d2a011462d | ||
|
|
4c34926af0 | ||
|
|
ce35cd1009 | ||
|
|
56d072bd06 | ||
|
|
5d336ef669 | ||
|
|
b47c59eac1 | ||
|
|
87285db361 | ||
|
|
84312e498c | ||
|
|
bd763d9462 | ||
|
|
a00e66f786 | ||
|
|
78c7b52088 | ||
|
|
c3a5bee993 | ||
|
|
c2b5b7c3e2 | ||
|
|
3992f00353 | ||
|
|
97d853e0d3 | ||
|
|
f786cec75f | ||
|
|
07cd08b55e | ||
|
|
ca42faf14a | ||
|
|
87f5b68279 | ||
|
|
6b31edb687 | ||
|
|
6a64048bb6 | ||
|
|
6cf069ee6a | ||
|
|
3b74bba6ab | ||
|
|
8689788523 | ||
|
|
1193776d06 | ||
|
|
022514a0a7 | ||
|
|
dc7f8a59ed | ||
|
|
4e5a76a6c1 | ||
|
|
64c4a25ee8 | ||
|
|
47bbdbaa26 | ||
|
|
f8e0c0e19a | ||
|
|
94cdd19224 | ||
|
|
d86d046eb0 | ||
|
|
25ec6b5a3f | ||
|
|
967453a683 | ||
|
|
4c17305c05 | ||
|
|
6092131303 | ||
|
|
35749834d0 | ||
|
|
fe56c7b887 | ||
|
|
2b58a744d2 | ||
|
|
dfb94d05e4 | ||
|
|
987c1790d8 | ||
|
|
0d416b17ce | ||
|
|
473e165c89 | ||
|
|
3d52d15004 | ||
|
|
27278e128c | ||
|
|
13cee3c9b3 | ||
|
|
fd95e42e9b | ||
|
|
65cd2f5d01 | ||
|
|
70759d1888 | ||
|
|
705d6e2f00 | ||
|
|
088591a335 | ||
|
|
3f037e0d17 | ||
|
|
e6884b6c93 | ||
|
|
9943268ca0 | ||
|
|
620e4d20c2 | ||
|
|
fd03033ac6 | ||
|
|
939099b8c8 | ||
|
|
75001b494d | ||
|
|
8749e21744 | ||
|
|
982ac98e27 | ||
|
|
f31bf17a41 | ||
|
|
3425d9118d | ||
|
|
6be49ecdf3 | ||
|
|
ffd6f9578b | ||
|
|
41293130ad | ||
|
|
6cccd28b92 | ||
|
|
384f10a722 | ||
|
|
a603e299f1 | ||
|
|
05822f82da | ||
|
|
0508e718cb | ||
|
|
574913e9e4 | ||
|
|
068adb62a7 | ||
|
|
73fa1f9cfe | ||
|
|
f518882926 | ||
|
|
ed566f9eea | ||
|
|
8ca32e439a | ||
|
|
35b3b11a3c | ||
|
|
57d4a53081 | ||
|
|
6da05961f2 | ||
|
|
7db3b8c5b8 | ||
|
|
50bafb6fa6 | ||
|
|
2b3a9072d1 | ||
|
|
1c08e57086 | ||
|
|
4290ed2f04 | ||
|
|
342512f3e1 | ||
|
|
942c04cb68 | ||
|
|
64bf4ab3f7 | ||
|
|
052e69737e | ||
|
|
02adc4517c | ||
|
|
e36fdd6823 | ||
|
|
d10a7ed57f | ||
|
|
79adf44dfe | ||
|
|
4bc3113f34 | ||
|
|
0826704282 | ||
|
|
52aa5e6954 | ||
|
|
fde85607d9 | ||
|
|
cc087af012 | ||
|
|
2c7da1e32e | ||
|
|
49fe8952ae | ||
|
|
b298cd0509 | ||
|
|
a81fc11e73 | ||
|
|
199fb6229d | ||
|
|
ec6ecee455 | ||
|
|
fa72172b77 | ||
|
|
6789700def | ||
|
|
752744b3a4 | ||
|
|
c24fa85bf4 | ||
|
|
4e0b59f6a9 | ||
|
|
bd20214552 | ||
|
|
4af0ea9e47 | ||
|
|
8651679634 | ||
|
|
99dcac6d12 | ||
|
|
853bf01c9e | ||
|
|
39c5ad7267 | ||
|
|
8daa2948fa | ||
|
|
f2ba25429e | ||
|
|
1fffb4dc67 | ||
|
|
45ce2439fd | ||
|
|
cb2e77e8f6 | ||
|
|
800c0b0336 | ||
|
|
14c23496d5 | ||
|
|
7756a6d593 | ||
|
|
ae7791a204 | ||
|
|
44232c44fc | ||
|
|
142fc99761 | ||
|
|
5e6dc55c76 | ||
|
|
bb2447e821 | ||
|
|
a88d9cd78e | ||
|
|
dab82db693 | ||
|
|
a1183df72c | ||
|
|
5cfa4f173a | ||
|
|
451ef49d98 | ||
|
|
36a8ebdc1b | ||
|
|
27577edb16 | ||
|
|
bd69ab314b | ||
|
|
6abe4ac04a | ||
|
|
1eeb190653 | ||
|
|
23f22d9d9a | ||
|
|
b913f33b3f | ||
|
|
52da1feb91 | ||
|
|
0af9f1bfbf | ||
|
|
3b0e1c3ce7 | ||
|
|
37ea270c56 | ||
|
|
304550dd94 | ||
|
|
69cee24ffe | ||
|
|
8334c06a9b | ||
|
|
3e739f2877 | ||
|
|
5e33ff4a34 | ||
|
|
2b234e5d64 | ||
|
|
c8b328a1c9 | ||
|
|
5e0ac05f90 | ||
|
|
e440097272 | ||
|
|
263c858a66 | ||
|
|
82371fb2a8 | ||
|
|
b6336a4096 | ||
|
|
7acfbbaae7 | ||
|
|
5a76b4eb2d | ||
|
|
8aac88b696 | ||
|
|
d6e71068be | ||
|
|
6b44951ef0 | ||
|
|
5289ebb923 | ||
|
|
263fcda053 | ||
|
|
2e0d26575e | ||
|
|
b9d6670bee | ||
|
|
f20d39a3e7 | ||
|
|
09d948b3a0 | ||
|
|
96941c83f3 | ||
|
|
b8ca0e381a | ||
|
|
4a2c5d77aa | ||
|
|
cf2d29d82e | ||
|
|
fb2ab63550 | ||
|
|
90efc152a8 | ||
|
|
de6ba49409 |
178
README.md
178
README.md
@@ -1,178 +0,0 @@
|
||||
<div align="center" markdown="1">
|
||||
|
||||
<img src=".github/lms-logo.png" alt="Frappe Learning logo" width="80" height="80"/>
|
||||
<h1>Frappe Learning</h1>
|
||||
|
||||
**Easy to use, open source, Learning Management System**
|
||||
|
||||

|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div align="center">
|
||||
<img src=".github/hero.png?v=5" alt="Hero Image" width="72%" />
|
||||
</div>
|
||||
<br />
|
||||
<div align="center">
|
||||
<a href="https://frappe.io/learning">Website</a>
|
||||
-
|
||||
<a href="https://docs.frappe.io/learning">Documentation</a>
|
||||
</div>
|
||||
|
||||
## Frappe Learning
|
||||
Frappe Learning is an easy-to-use learning system that helps you bring structure to your content.
|
||||
|
||||
### Motivation
|
||||
In 2021, we were looking for a Learning Management System to launch [Mon.School](https://mon.school) for FOSS United. We checked out Moodle, but it didn’t feel right. The forms were unnecessarily lengthy and the UI was confusing. It shouldn't be this hard to create a course right? So I started making a learning system for Mon.School which soon became a product in itself. The aim is to have a simple platform that anyone can use to launch a course of their own and make knowledge sharing easier.
|
||||
|
||||
### Key Features
|
||||
|
||||
- **Structured Learning**: Design a course with a 3-level hierarchy, where your courses have chapters and you can group your lessons within these chapters. This ensures that the context of the lesson is set by the chapter.
|
||||
|
||||
- **Live Classes**: Group learners into batches based on courses and duration. You can then create Zoom live class for these batches right from the app. Learners get to see the list of live classes they have to take as a part of this batch.
|
||||
|
||||
- **Quizzes and Assignments**: Create quizzes where questions can have single-choice, multiple-choice options, or can be open ended. Instructors can also add assignments which learners can submit as PDF's or Documents.
|
||||
|
||||
- **Getting Certified**: Once a learner has completed the course or batch, you can grant them a certificate. The app provides an inbuilt certificate template. You can use this or else create a template of your own and use that instead.
|
||||
|
||||
<details>
|
||||
<summary>View Screenshots</summary>
|
||||
|
||||
|
||||

|
||||
<div align="center">
|
||||
<sub>
|
||||
Create batches to group your learners
|
||||
</sub>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
|
||||

|
||||
<div align="center">
|
||||
<sub>
|
||||
Evaluate their knowledge by quizzes
|
||||
</sub>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
|
||||

|
||||
<div align="center">
|
||||
<sub>
|
||||
Autenticate their work with certification
|
||||
</sub>
|
||||
</div>
|
||||
</details>
|
||||
|
||||
|
||||
### Under the Hood
|
||||
|
||||
- [**Frappe Framework**](https://github.com/frappe/frappe): A full-stack web application framework.
|
||||
|
||||
- [**Frappe UI**](https://github.com/frappe/frappe-ui): A Vue-based UI library, to provide a modern user interface.
|
||||
|
||||
## Production Setup
|
||||
|
||||
### Managed Hosting
|
||||
|
||||
You can try [Frappe Cloud](https://frappecloud.com), a simple, user-friendly and sophisticated [open-source](https://github.com/frappe/press) platform to host Frappe applications with peace of mind.
|
||||
|
||||
It takes care of installation, setup, upgrades, monitoring, maintenance and support of your Frappe deployments. It is a fully featured developer platform with an ability to manage and control multiple Frappe deployments.
|
||||
|
||||
<div>
|
||||
<a href="https://frappecloud.com/lms/signup" target="_blank">
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://frappe.io/files/try-on-fc-white.png">
|
||||
<img src="https://frappe.io/files/try-on-fc-black.png" alt="Try on Frappe Cloud" height="28" />
|
||||
</picture>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
### Self Hosting
|
||||
|
||||
Follow these steps to set up Frappe Learning in production:
|
||||
|
||||
**Step 1**: Download the easy install script
|
||||
|
||||
```bash
|
||||
wget https://frappe.io/easy-install.py
|
||||
```
|
||||
|
||||
**Step 2**: Run the deployment command
|
||||
|
||||
```bash
|
||||
python3 ./easy-install.py deploy \
|
||||
--project=learning_prod_setup \
|
||||
--email=your_email.example.com \
|
||||
--image=ghcr.io/frappe/lms \
|
||||
--version=stable \
|
||||
--app=lms \
|
||||
--sitename subdomain.domain.tld
|
||||
```
|
||||
|
||||
Replace the following parameters with your values:
|
||||
- `your_email.example.com`: Your email address
|
||||
- `subdomain.domain.tld`: Your domain name where Learning will be hosted
|
||||
|
||||
The script will set up a production-ready instance of Frappe Learning with all the necessary configurations in about 5 minutes.
|
||||
|
||||
**Note:** To avoid a `404 Page Not Found` error:
|
||||
- If hosting on a **public server**, make sure your DNS **A record** points to your server's IP.
|
||||
- If hosting **locally**, map your domain to `127.0.0.1` in your `/etc/hosts` file:
|
||||
|
||||
## Development Setup
|
||||
|
||||
### Docker
|
||||
|
||||
You need Docker, docker-compose and git setup on your machine. Refer [Docker documentation](https://docs.docker.com/). After that, follow below steps:
|
||||
|
||||
**Step 1**: Setup folder and download the required files
|
||||
|
||||
mkdir frappe-learning
|
||||
cd frappe-learning
|
||||
|
||||
# Download the docker-compose file
|
||||
wget -O docker-compose.yml https://raw.githubusercontent.com/frappe/lms/develop/docker/docker-compose.yml
|
||||
|
||||
# Download the setup script
|
||||
wget -O init.sh https://raw.githubusercontent.com/frappe/lms/develop/docker/init.sh
|
||||
|
||||
**Step 2**: Run the container and daemonize it
|
||||
|
||||
docker compose up -d
|
||||
|
||||
**Step 3**: The site [http://lms.localhost:8000/lms](http://lms.localhost:8000/lms) should now be available. The default credentials are:
|
||||
- Username: Administrator
|
||||
- Password: admin
|
||||
|
||||
### Local
|
||||
|
||||
To setup the repository locally follow the steps mentioned below:
|
||||
|
||||
1. Install bench and setup a `frappe-bench` directory by following the [Installation Steps](https://frappeframework.com/docs/user/en/installation)
|
||||
1. Start the server by running `bench start`
|
||||
1. In a separate terminal window, create a new site by running `bench new-site learning.test`
|
||||
1. Map your site to localhost with the command `bench --site learning.test add-to-hosts`
|
||||
1. Get the Learning app. Run `bench get-app https://github.com/frappe/lms`
|
||||
1. Run `bench --site learning.test install-app lms`.
|
||||
1. Now open the URL `http://learning.test:8000/lms` in your browser, you should see the app running
|
||||
|
||||
## Learn and connect
|
||||
|
||||
- [Telegram Public Group](https://t.me/frappelms)
|
||||
- [Discuss Forum](https://discuss.frappe.io/c/lms/70)
|
||||
- [Documentation](https://docs.frappe.io/learning)
|
||||
- [YouTube](https://www.youtube.com/channel/UCn3bV5kx77HsVwtnlCeEi_A)
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<div align="center" style="padding-top: 0.75rem;">
|
||||
<a href="https://frappe.io" target="_blank">
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://frappe.io/files/Frappe-white.png">
|
||||
<img src="https://frappe.io/files/Frappe-black.png" alt="Frappe Technologies" height="28"/>
|
||||
</picture>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
Submodule frappe-ui updated: 8b85a70d21...f1bde9bcb2
3
frontend/components.d.ts
vendored
3
frontend/components.d.ts
vendored
@@ -10,7 +10,6 @@ declare module 'vue' {
|
||||
export interface GlobalComponents {
|
||||
Annoucements: typeof import('./src/components/Annoucements.vue')['default']
|
||||
AnnouncementModal: typeof import('./src/components/Modals/AnnouncementModal.vue')['default']
|
||||
AppHeader: typeof import('./src/components/AppHeader.vue')['default']
|
||||
Apps: typeof import('./src/components/Apps.vue')['default']
|
||||
AppSidebar: typeof import('./src/components/AppSidebar.vue')['default']
|
||||
AssessmentModal: typeof import('./src/components/Modals/AssessmentModal.vue')['default']
|
||||
@@ -42,6 +41,7 @@ declare module 'vue' {
|
||||
CodeEditor: typeof import('./src/components/Controls/CodeEditor.vue')['default']
|
||||
CollapseSidebar: typeof import('./src/components/Icons/CollapseSidebar.vue')['default']
|
||||
ColorSwatches: typeof import('./src/components/Controls/ColorSwatches.vue')['default']
|
||||
ContactUsEmail: typeof import('./src/components/ContactUsEmail.vue')['default']
|
||||
CourseCard: typeof import('./src/components/CourseCard.vue')['default']
|
||||
CourseCardOverlay: typeof import('./src/components/CourseCardOverlay.vue')['default']
|
||||
CourseInstructors: typeof import('./src/components/CourseInstructors.vue')['default']
|
||||
@@ -72,7 +72,6 @@ declare module 'vue' {
|
||||
InviteIcon: typeof import('./src/components/Icons/InviteIcon.vue')['default']
|
||||
JobApplicationModal: typeof import('./src/components/Modals/JobApplicationModal.vue')['default']
|
||||
JobCard: typeof import('./src/components/JobCard.vue')['default']
|
||||
LayoutHeader: typeof import('./src/components/LayoutHeader.vue')['default']
|
||||
LessonContent: typeof import('./src/components/LessonContent.vue')['default']
|
||||
LessonHelp: typeof import('./src/components/LessonHelp.vue')['default']
|
||||
Link: typeof import('./src/components/Controls/Link.vue')['default']
|
||||
|
||||
BIN
frontend/public/leaderboard/bronze-cup.png
Normal file
BIN
frontend/public/leaderboard/bronze-cup.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 30 KiB |
42
frontend/public/leaderboard/dart-board.svg
Normal file
42
frontend/public/leaderboard/dart-board.svg
Normal file
@@ -0,0 +1,42 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<svg height="800px" width="800px" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
viewBox="0 0 512.001 512.001" xml:space="preserve">
|
||||
<g>
|
||||
<path style="fill:#A67C52;" d="M84.096,436.178l-49.312,37.686c-7.54,5.762-8.981,16.547-3.219,24.087
|
||||
c3.383,4.425,8.494,6.751,13.666,6.751c3.638,0,7.306-1.151,10.421-3.532l49.312-37.686c7.54-5.762,8.981-16.547,3.219-24.087
|
||||
C102.421,431.858,91.637,430.416,84.096,436.178z"/>
|
||||
<path style="fill:#A67C52;" d="M441.194,473.864l-49.312-37.686c-7.541-5.762-18.325-4.32-24.087,3.219
|
||||
c-5.762,7.541-4.321,18.325,3.219,24.087l49.312,37.686c3.115,2.38,6.782,3.532,10.421,3.532c5.171,0,10.284-2.326,13.665-6.751
|
||||
C450.175,490.411,448.734,479.627,441.194,473.864z"/>
|
||||
</g>
|
||||
<path style="fill:#DBAD75;" d="M237.989,36.024c-131.227,0-237.989,106.761-237.989,237.989s106.761,237.989,237.989,237.989
|
||||
S475.978,405.24,475.978,274.012S369.216,36.024,237.989,36.024z"/>
|
||||
<path style="fill:#EABD81;" d="M237.989,36.024c-131.227,0-237.989,106.761-237.989,237.989s106.761,237.989,237.989,237.989V36.024
|
||||
z"/>
|
||||
<path style="fill:#BC2A46;" d="M237.989,80.411c-106.752,0-193.601,86.849-193.601,193.601s86.849,193.601,193.601,193.601
|
||||
s193.601-86.849,193.601-193.601S344.742,80.411,237.989,80.411z"/>
|
||||
<path style="fill:#D62D46;" d="M237.989,80.411c-106.752,0-193.601,86.849-193.601,193.601s86.849,193.601,193.601,193.601V80.411z"
|
||||
/>
|
||||
<path style="fill:#DBAD75;" d="M237.989,142.771c-72.367,0-131.241,58.874-131.241,131.241s58.874,131.241,131.241,131.241
|
||||
S369.23,346.379,369.23,274.012S310.355,142.771,237.989,142.771z"/>
|
||||
<path style="fill:#EABD81;" d="M237.989,142.771c-72.367,0-131.241,58.874-131.241,131.241s58.874,131.241,131.241,131.241V142.771z
|
||||
"/>
|
||||
<path style="fill:#BC2A46;" d="M237.989,209.763c-35.427,0-64.248,28.821-64.248,64.248s28.821,64.248,64.248,64.248
|
||||
s64.248-28.821,64.248-64.248S273.416,209.763,237.989,209.763z"/>
|
||||
<path style="fill:#D62D46;" d="M237.989,209.763c-35.427,0-64.248,28.821-64.248,64.248s28.821,64.248,64.248,64.248V209.763z"/>
|
||||
<path style="fill:#CFCDD6;" d="M237.989,291.196c-4.398,0-8.796-1.677-12.15-5.034c-6.711-6.711-6.711-17.59,0-24.301
|
||||
L448.687,39.014c6.71-6.711,17.59-6.711,24.301,0s6.711,17.59,0,24.301L250.14,286.162
|
||||
C246.784,289.519,242.386,291.196,237.989,291.196z"/>
|
||||
<path style="fill:#DEE1E7;" d="M237.989,291.196c-4.398,0-8.796-1.677-12.15-5.034c-6.711-6.711-6.711-17.59,0-24.301
|
||||
l106.576-106.576l24.301,24.301L250.14,286.162C246.784,289.519,242.386,291.196,237.989,291.196z"/>
|
||||
<path style="fill:#39B7B6;" d="M457.533,105.266h-33.615c-9.49,0-17.184-7.694-17.184-17.184V54.467
|
||||
c0-9.49,7.694-17.184,17.184-17.184s17.184,7.694,17.184,17.184v16.432h16.431c9.49,0,17.184,7.694,17.184,17.184
|
||||
S467.023,105.266,457.533,105.266z"/>
|
||||
<path style="fill:#FBB03B;" d="M476.175,86.623h-33.614c-9.49,0-17.184-7.694-17.184-17.184V35.825
|
||||
c0-9.49,7.694-17.184,17.184-17.184s17.184,7.694,17.184,17.184v16.431h16.431c9.49,0,17.184,7.694,17.184,17.184
|
||||
S485.665,86.623,476.175,86.623z"/>
|
||||
<path style="fill:#39B7B6;" d="M494.817,67.982h-33.614c-9.49,0-17.184-7.694-17.184-17.184V17.184
|
||||
c0-9.49,7.694-17.184,17.184-17.184s17.184,7.694,17.184,17.184v16.431h16.431c9.49,0,17.184,7.694,17.184,17.184
|
||||
S504.308,67.982,494.817,67.982z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.3 KiB |
BIN
frontend/public/leaderboard/gold-cup.png
Normal file
BIN
frontend/public/leaderboard/gold-cup.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 26 KiB |
BIN
frontend/public/leaderboard/silver-cup.png
Normal file
BIN
frontend/public/leaderboard/silver-cup.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 29 KiB |
2
frontend/public/leaderboard/star.svg
Normal file
2
frontend/public/leaderboard/star.svg
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<svg width="800px" height="800px" viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--noto" preserveAspectRatio="xMidYMid meet"><path d="M68.05 7.23l13.46 30.7a7.047 7.047 0 0 0 5.82 4.19l32.79 2.94c3.71.54 5.19 5.09 2.5 7.71l-24.7 20.75c-2 1.68-2.91 4.32-2.36 6.87l7.18 33.61c.63 3.69-3.24 6.51-6.56 4.76L67.56 102a7.033 7.033 0 0 0-7.12 0l-28.62 16.75c-3.31 1.74-7.19-1.07-6.56-4.76l7.18-33.61c.54-2.55-.36-5.19-2.36-6.87L5.37 52.78c-2.68-2.61-1.2-7.17 2.5-7.71l32.79-2.94a7.047 7.047 0 0 0 5.82-4.19l13.46-30.7c1.67-3.36 6.45-3.36 8.11-.01z" fill="#fdd835"></path><path d="M67.07 39.77l-2.28-22.62c-.09-1.26-.35-3.42 1.67-3.42c1.6 0 2.47 3.33 2.47 3.33l6.84 18.16c2.58 6.91 1.52 9.28-.97 10.68c-2.86 1.6-7.08.35-7.73-6.13z" fill="#ffff8d"></path><path d="M95.28 71.51L114.9 56.2c.97-.81 2.72-2.1 1.32-3.57c-1.11-1.16-4.11.51-4.11.51l-17.17 6.71c-5.12 1.77-8.52 4.39-8.82 7.69c-.39 4.4 3.56 7.79 9.16 3.97z" fill="#f4b400"></path></svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
@@ -3,7 +3,7 @@
|
||||
<Layout class="isolate text-base">
|
||||
<router-view />
|
||||
</Layout>
|
||||
<InstallPrompt v-if="isMobile" />
|
||||
<!--<InstallPrompt v-if="isMobile" />-->
|
||||
<Dialogs />
|
||||
</FrappeUIProvider>
|
||||
</template>
|
||||
|
||||
@@ -9,12 +9,12 @@
|
||||
>
|
||||
<UserDropdown :isCollapsed="sidebarStore.isSidebarCollapsed" />
|
||||
<div class="flex flex-col" v-if="sidebarSettings.data">
|
||||
<SidebarLink
|
||||
v-for="link in sidebarLinks"
|
||||
:link="link"
|
||||
:isCollapsed="sidebarStore.isSidebarCollapsed"
|
||||
class="mx-2 my-0.5"
|
||||
/>
|
||||
<div v-for="link in sidebarLinks" class="mx-2 my-0.5">
|
||||
<SidebarLink
|
||||
:link="link"
|
||||
:isCollapsed="sidebarStore.isSidebarCollapsed"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-if="sidebarSettings.data?.web_pages?.length || isModerator"
|
||||
@@ -54,15 +54,18 @@
|
||||
class="flex flex-col transition-all duration-300 ease-in-out"
|
||||
:class="!sidebarStore.isWebpagesCollapsed ? 'block' : 'hidden'"
|
||||
>
|
||||
<SidebarLink
|
||||
<div
|
||||
v-for="link in sidebarSettings.data.web_pages"
|
||||
:link="link"
|
||||
:isCollapsed="sidebarStore.isSidebarCollapsed"
|
||||
class="mx-2 my-0.5"
|
||||
:showControls="isModerator ? true : false"
|
||||
@openModal="openPageModal"
|
||||
@deletePage="deletePage"
|
||||
/>
|
||||
>
|
||||
<SidebarLink
|
||||
:link="link"
|
||||
:isCollapsed="sidebarStore.isSidebarCollapsed"
|
||||
:showControls="isModerator ? true : false"
|
||||
@openModal="openPageModal"
|
||||
@deletePage="deletePage"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -382,7 +385,7 @@ const addContactUsDetails = () => {
|
||||
icon: settingsStore.contactUsURL?.data ? 'Headset' : 'Mail',
|
||||
to: settingsStore.contactUsURL?.data
|
||||
? settingsStore.contactUsURL.data
|
||||
: `mailto:${settingsStore.contactUsEmail?.data}`,
|
||||
: settingsStore.contactUsEmail?.data,
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -656,6 +659,104 @@ const setUpOnboarding = () => {
|
||||
}
|
||||
}
|
||||
|
||||
const addMyPoints = () => {
|
||||
const roles = userResource.data?.roles || []
|
||||
if (roles.includes('LMS Student') || roles.includes('LMS Schoolchild')) {
|
||||
sidebarLinks.value.push({
|
||||
label: __('My points'),
|
||||
icon: 'Award',
|
||||
to: 'MyPoints',
|
||||
activeFor: [],
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
const addLeaderBoard = () => {
|
||||
if (user) {
|
||||
sidebarLinks.value.push({
|
||||
label: __('Leader Board'),
|
||||
icon: 'Trophy',
|
||||
to: 'LeaderBoard',
|
||||
activeFor: [],
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
const addChatGPT = () => {
|
||||
const roles = userResource.data?.roles || []
|
||||
let URL = ''
|
||||
let nameLabel = ''
|
||||
if (roles.includes('LMS Schoolchild') || roles.includes('LMS Student') || roles.includes('Course Creator')) {
|
||||
if (roles.includes('LMS Schoolchild')) {
|
||||
URL = 'chatgpt-schoolchild'
|
||||
nameLabel = __('ChatGPT for Schoolers')
|
||||
} else if (roles.includes('LMS Student')) {
|
||||
URL = 'chatgpt-schoolchild'
|
||||
nameLabel = __('ChatGPT for Students')
|
||||
} else if (roles.includes('Course Creator')) {
|
||||
URL = 'ai-teachers'
|
||||
nameLabel = __('ChatGPT for Teachers')
|
||||
}
|
||||
|
||||
sidebarLinks.value.push({
|
||||
label: nameLabel,
|
||||
icon: 'Cpu',
|
||||
to: URL,
|
||||
external: true,
|
||||
activeFor: [],
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
const addMyChild = () => {
|
||||
const roles = userResource.data?.roles || []
|
||||
if (roles.includes('Parent')) {
|
||||
sidebarLinks.value.push({
|
||||
label: __('My Child'),
|
||||
icon: 'User',
|
||||
to: 'my-child',
|
||||
activeFor: [],
|
||||
external: true,
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//test of new page
|
||||
const addProfile = () => {
|
||||
const roles = userResource.data?.roles || []
|
||||
if (roles.includes('LMS Student')) {
|
||||
sidebarLinks.value.push({
|
||||
label: __('Student Profile'),
|
||||
icon: 'Home',
|
||||
to: 'StudentProfile',
|
||||
activeFor: [],
|
||||
})
|
||||
} else if (roles.includes('LMS Schoolchild')) {
|
||||
sidebarLinks.value.push({
|
||||
label: __('Schoolchildren Profile'),
|
||||
icon: 'Home',
|
||||
to: 'SchoolchildrenProfile',
|
||||
activeFor: [],
|
||||
})
|
||||
} else if (roles.includes('Course Creator')) {
|
||||
sidebarLinks.value.push({
|
||||
label: __('Course Creator Profile'),
|
||||
icon: 'Home',
|
||||
to: 'CourseCreatorProfile',
|
||||
activeFor: [],
|
||||
})
|
||||
} else {
|
||||
sidebarLinks.value.push({
|
||||
label: __('Parent Profile'),
|
||||
icon: 'Home',
|
||||
to: 'ParentProfile',
|
||||
activeFor: [],
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
watch(userResource, () => {
|
||||
addContactUsDetails()
|
||||
if (userResource.data) {
|
||||
@@ -667,6 +768,12 @@ watch(userResource, () => {
|
||||
addQuizzes()
|
||||
addAssignments()
|
||||
setUpOnboarding()
|
||||
|
||||
addMyPoints()
|
||||
addLeaderBoard()
|
||||
addChatGPT()
|
||||
addMyChild()
|
||||
addProfile()
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
67
frontend/src/components/ContactUsEmail.vue
Normal file
67
frontend/src/components/ContactUsEmail.vue
Normal file
@@ -0,0 +1,67 @@
|
||||
<template>
|
||||
<Dialog
|
||||
v-model="show"
|
||||
:options="{
|
||||
title: __('Contact Us'),
|
||||
size: 'md',
|
||||
}"
|
||||
>
|
||||
<template #body-content>
|
||||
<div class="flex flex-col gap-4">
|
||||
<FormControl
|
||||
v-model="subject"
|
||||
:label="__('Subject')"
|
||||
type="text"
|
||||
:required="true"
|
||||
/>
|
||||
<div>
|
||||
<div class="mb-1.5 text-sm text-ink-gray-5">
|
||||
{{ __('Message') }}
|
||||
<span class="text-ink-red-3">*</span>
|
||||
</div>
|
||||
<TextEditor
|
||||
:fixedMenu="true"
|
||||
@change="(val) => (message = val)"
|
||||
editorClass="prose-sm py-2 px-2 min-h-[200px] border-outline-gray-2 hover:border-outline-gray-3 rounded-b-md bg-surface-gray-3"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<template #actions="{ close }">
|
||||
<div class="pb-5 float-right">
|
||||
<Button variant="solid" @click="sendMail(close)">
|
||||
{{ __('Send') }}
|
||||
</Button>
|
||||
</div>
|
||||
</template>
|
||||
</Dialog>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { Button, call, Dialog, FormControl, TextEditor, toast } from 'frappe-ui'
|
||||
import { ref } from 'vue'
|
||||
import { useSettings } from '@/stores/settings'
|
||||
|
||||
const show = defineModel<boolean>({ required: true, default: false })
|
||||
const subject = ref('')
|
||||
const message = ref('')
|
||||
const settingsStore = useSettings()
|
||||
|
||||
const sendMail = (close: Function) => {
|
||||
call('frappe.core.doctype.communication.email.make', {
|
||||
recipients: settingsStore.contactUsEmail?.data,
|
||||
subject: subject.value,
|
||||
content: message.value,
|
||||
send_email: true,
|
||||
})
|
||||
.then(() => {
|
||||
toast.success(__('Email sent successfully'))
|
||||
close()
|
||||
subject.value = ''
|
||||
message.value = ''
|
||||
})
|
||||
.catch(() => {
|
||||
toast.error(__('Failed to send email'))
|
||||
close()
|
||||
})
|
||||
}
|
||||
</script>
|
||||
@@ -62,7 +62,7 @@
|
||||
<Tooltip :text="__('Enrolled Students')">
|
||||
<span class="flex items-center">
|
||||
<Users class="h-4 w-4 stroke-1.5 mr-1" />
|
||||
{{ course.enrollments }}
|
||||
{{ formatAmount(course.enrollments) }}
|
||||
</span>
|
||||
</Tooltip>
|
||||
</div>
|
||||
@@ -116,27 +116,30 @@
|
||||
<CourseInstructors :instructors="course.instructors" />
|
||||
</div>
|
||||
|
||||
<div v-if="course.paid_course" class="font-semibold">
|
||||
{{ course.price }}
|
||||
</div>
|
||||
<div class="flex items-center space-x-2">
|
||||
<div v-if="course.paid_course" class="font-semibold">
|
||||
{{ course.price }}
|
||||
</div>
|
||||
|
||||
<Tooltip
|
||||
v-if="course.paid_certificate || course.enable_certification"
|
||||
:text="__('Get Certified')"
|
||||
>
|
||||
<GraduationCap class="size-5 stroke-1.5 text-ink-gray-7" />
|
||||
</Tooltip>
|
||||
<Tooltip
|
||||
v-if="course.paid_certificate || course.enable_certification"
|
||||
:text="__('Get Certified')"
|
||||
>
|
||||
<GraduationCap class="size-5 stroke-1.5 text-ink-gray-7" />
|
||||
</Tooltip>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import { Award, BookOpen, GraduationCap, Star, Users } from 'lucide-vue-next'
|
||||
import UserAvatar from '@/components/UserAvatar.vue'
|
||||
import { sessionStore } from '@/stores/session'
|
||||
import { Tooltip } from 'frappe-ui'
|
||||
import { theme } from '@/utils/theme'
|
||||
import { formatAmount } from '@/utils'
|
||||
import CourseInstructors from '@/components/CourseInstructors.vue'
|
||||
import UserAvatar from '@/components/UserAvatar.vue'
|
||||
import ProgressBar from '@/components/ProgressBar.vue'
|
||||
|
||||
const { user } = sessionStore()
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
<template>
|
||||
<div class="">
|
||||
<div class="text-ink-gray-7">
|
||||
<span v-if="instructors?.length == 1">
|
||||
<router-link
|
||||
:to="{
|
||||
name: 'Profile',
|
||||
params: { username: instructors[0].username },
|
||||
}"
|
||||
class="text-ink-gray-7 hover:text-ink-gray-9"
|
||||
>
|
||||
{{ instructors[0].full_name }}
|
||||
</router-link>
|
||||
@@ -16,6 +17,7 @@
|
||||
name: 'Profile',
|
||||
params: { username: instructors[0].username },
|
||||
}"
|
||||
class="text-ink-gray-7 hover:text-ink-gray-9"
|
||||
>
|
||||
{{ instructors[0].first_name }}
|
||||
</router-link>
|
||||
@@ -25,6 +27,7 @@
|
||||
name: 'Profile',
|
||||
params: { username: instructors[1].username },
|
||||
}"
|
||||
class="text-ink-gray-7 hover:text-ink-gray-9"
|
||||
>
|
||||
{{ instructors[1].first_name }}
|
||||
</router-link>
|
||||
@@ -35,6 +38,7 @@
|
||||
name: 'Profile',
|
||||
params: { username: instructors[0].username },
|
||||
}"
|
||||
class="text-ink-gray-7 hover:text-ink-gray-9"
|
||||
>
|
||||
{{ instructors[0].first_name }}
|
||||
</router-link>
|
||||
|
||||
@@ -20,10 +20,10 @@
|
||||
</template>
|
||||
</Dialog>
|
||||
|
||||
<Popover :show="iosInstallMessage" placement="top">
|
||||
<Popover :show="iosInstallMessage" placement="top-start">
|
||||
<template #body>
|
||||
<div
|
||||
class="fixed bottom-[4rem] left-1/2 -translate-x-1/2 z-20 w-[90%] flex flex-col gap-3 rounded bg-blue-100 py-5 drop-shadow-xl"
|
||||
class="fixed top-[20rem] translate-x-1/3 z-20 flex flex-col gap-3 rounded bg-surface-white py-5 drop-shadow-xl"
|
||||
>
|
||||
<div
|
||||
class="mb-1 flex flex-row items-center justify-between px-3 text-center"
|
||||
@@ -41,7 +41,7 @@
|
||||
</div>
|
||||
<div class="px-3 text-xs text-gray-800">
|
||||
<span class="flex flex-col gap-2">
|
||||
<span>
|
||||
<span class="leading-5">
|
||||
{{
|
||||
__(
|
||||
'Get the app on your iPhone for easy access & a better experience'
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
class="flex flex-col border rounded-md p-3 h-full hover:border-outline-gray-3"
|
||||
>
|
||||
<div class="flex space-x-4 mb-4">
|
||||
<div class="flex flex-col space-y-2 flex-1">
|
||||
<div class="flex flex-col space-y-2 flex-1 break-all">
|
||||
<div class="text-lg font-semibold text-ink-gray-9">
|
||||
{{ job.company_name }}
|
||||
</div>
|
||||
|
||||
@@ -9,6 +9,16 @@
|
||||
allowfullscreen
|
||||
></iframe>
|
||||
</div>
|
||||
<div v-if="rutube">
|
||||
<iframe
|
||||
class="rutube-video"
|
||||
:src="getRutubeVideoSource(rutube.split('/').pop())"
|
||||
width="100%"
|
||||
:height="screenSize.width < 640 ? 200 : 400"
|
||||
frameborder="0"
|
||||
allowfullscreen
|
||||
></iframe>
|
||||
</div>
|
||||
<div v-for="block in content?.split('\n\n')">
|
||||
<div v-if="block.includes('{{ YouTubeVideo')">
|
||||
<iframe
|
||||
@@ -20,6 +30,16 @@
|
||||
allowfullscreen
|
||||
></iframe>
|
||||
</div>
|
||||
<div v-else-if="block.includes('{{ RutubeVideo')">
|
||||
<iframe
|
||||
class="rutube-video"
|
||||
:src="getRutubeVideoSource(block)"
|
||||
width="100%"
|
||||
:height="screenSize.width < 640 ? 200 : 400"
|
||||
frameborder="0"
|
||||
allowfullscreen
|
||||
></iframe>
|
||||
</div>
|
||||
<div v-else-if="block.includes('{{ Quiz')">
|
||||
<Quiz :quiz="getId(block)" />
|
||||
</div>
|
||||
@@ -97,6 +117,13 @@ const getYouTubeVideoSource = (block) => {
|
||||
return `https://www.youtube.com/embed/${block}`
|
||||
}
|
||||
|
||||
const getRutubeVideoSource = (block) => {
|
||||
if (block.includes('{{')) {
|
||||
block = getId(block)
|
||||
}
|
||||
return `https://rutube.ru/play/embed/${block}`
|
||||
}
|
||||
|
||||
const getPDFSource = (block) => {
|
||||
return `${getId(block)}#toolbar=0`
|
||||
}
|
||||
@@ -105,3 +132,11 @@ const getId = (block) => {
|
||||
return block.match(/\(["']([^"']+?)["']\)/)[1]
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.youtube-video,
|
||||
.rutube-video {
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -52,9 +52,9 @@ const contentMap = {
|
||||
'To upload Image, Video, Audio or PDF from your system, click on the add icon and select upload from the menu. Then choose the file you want to add to the lesson and it gets added to your lesson.',
|
||||
},
|
||||
youtube: {
|
||||
title: 'How to add a YouTube Video?',
|
||||
title: 'How to add a YouTube Video/RuTube?',
|
||||
description:
|
||||
'Copy the URL of the video from YouTube and paste it in the editor.',
|
||||
'Copy the URL of the video from YouTube/RuTube and paste it in the editor.',
|
||||
},
|
||||
remove: {
|
||||
title: 'How to remove an embed?',
|
||||
|
||||
@@ -76,15 +76,12 @@ const isModerator = ref(false)
|
||||
const isInstructor = ref(false)
|
||||
|
||||
onMounted(() => {
|
||||
sidebarSettings.reload(
|
||||
{},
|
||||
{
|
||||
onSuccess(data) {
|
||||
filterLinksToShow(data)
|
||||
addOtherLinks()
|
||||
},
|
||||
}
|
||||
)
|
||||
// Вызываем addSideBar только если userResource уже загружен
|
||||
if (userResource.data) {
|
||||
addSideBar()
|
||||
}
|
||||
addOtherLinks()
|
||||
filterLinksToShow(data)
|
||||
})
|
||||
|
||||
const handleOutsideClick = (e) => {
|
||||
@@ -113,24 +110,184 @@ const filterLinksToShow = (data) => {
|
||||
})
|
||||
}
|
||||
|
||||
const addSideBar = () => {
|
||||
sidebarLinks.value = [] // Очищаем, чтобы избежать дублирования
|
||||
|
||||
// Проверяем роли пользователя
|
||||
const roles = userResource.data?.roles || []
|
||||
|
||||
sidebarLinks.value.push({
|
||||
label: __('Courses'),
|
||||
icon: 'BookOpen',
|
||||
to: 'Courses',
|
||||
activeFor: [
|
||||
'Courses',
|
||||
'CourseDetail',
|
||||
'Lesson',
|
||||
'CourseForm',
|
||||
'LessonForm',
|
||||
],
|
||||
})
|
||||
|
||||
sidebarLinks.value.push({
|
||||
label: __('Leader Board'),
|
||||
icon: 'Trophy',
|
||||
to: 'LeaderBoard',
|
||||
activeFor: [],
|
||||
})
|
||||
|
||||
if (roles.includes('LMS Student') || roles.includes('LMS Schoolchild')) {
|
||||
otherLinks.value.push({
|
||||
label: __('My points'),
|
||||
icon: 'Award',
|
||||
to: 'MyPoints',
|
||||
activeFor: [],
|
||||
})
|
||||
}
|
||||
|
||||
if (roles.includes('Parent')) {
|
||||
otherLinks.value.push({
|
||||
label: __('My Child'),
|
||||
icon: 'User',
|
||||
to: 'my-child',
|
||||
external: true,
|
||||
activeFor: [],
|
||||
})
|
||||
}
|
||||
|
||||
let chatGPTURL = ''
|
||||
let chatGPTLabel = ''
|
||||
|
||||
if (roles.includes('LMS Schoolchild')) {
|
||||
chatGPTURL = 'chatgpt-schoolchild'
|
||||
chatGPTLabel = __('ChatGPT for Schoolers')
|
||||
} else if (roles.includes('LMS Student')) {
|
||||
chatGPTURL = 'chatgpt-schoolchild'
|
||||
chatGPTLabel = __('ChatGPT for Students')
|
||||
} else if (roles.includes('Course Creator')) {
|
||||
chatGPTURL = 'ai-teachers'
|
||||
chatGPTLabel = __('ChatGPT for Teachers')
|
||||
}
|
||||
|
||||
if (chatGPTURL) {
|
||||
sidebarLinks.value.push({
|
||||
label: chatGPTLabel,
|
||||
icon: 'Cpu',
|
||||
to: chatGPTURL,
|
||||
external: true,
|
||||
activeFor: [],
|
||||
})
|
||||
}
|
||||
}
|
||||
const addOtherLinks = () => {
|
||||
otherLinks.value = []
|
||||
|
||||
if (user) {
|
||||
const roles = userResource.data?.roles || []
|
||||
|
||||
if (!userResource.data?.is_instructor && !userResource.data?.is_moderator) {
|
||||
otherLinks.value.push({
|
||||
label: __('Programs'),
|
||||
icon: 'Route',
|
||||
to: 'Programs',
|
||||
activeFor: ['Programs', 'ProgramForm', 'CourseDetail', 'Lesson'],
|
||||
})
|
||||
} else if (userResource.data?.is_instructor || userResource.data?.is_moderator) {
|
||||
otherLinks.value.push({
|
||||
label: __('Programs'),
|
||||
icon: 'Route',
|
||||
to: 'Programs',
|
||||
activeFor: ['Programs', 'ProgramForm'],
|
||||
})
|
||||
}
|
||||
|
||||
if (userResource.data?.is_moderator || userResource.data?.is_instructor) {
|
||||
otherLinks.value.push({
|
||||
label: __('Quizzes'),
|
||||
icon: 'CircleHelp',
|
||||
to: 'Quizzes',
|
||||
activeFor: [
|
||||
'Quizzes',
|
||||
'QuizForm',
|
||||
'QuizSubmissionList',
|
||||
'QuizSubmission',
|
||||
],
|
||||
})
|
||||
|
||||
otherLinks.value.push({
|
||||
label: __('Assignments'),
|
||||
icon: 'Pencil',
|
||||
to: 'Assignments',
|
||||
activeFor: [
|
||||
'Assignments',
|
||||
'AssignmentForm',
|
||||
'AssignmentSubmissionList',
|
||||
'AssignmentSubmission',
|
||||
],
|
||||
}),
|
||||
otherLinks.value.push({
|
||||
label: 'Programming Exercises',
|
||||
icon: 'Code',
|
||||
to: 'ProgrammingExercises',
|
||||
})
|
||||
}
|
||||
|
||||
if (roles.includes('LMS Student') || roles.includes('LMS Schoolchild')) {
|
||||
otherLinks.value.push({
|
||||
label: __('My points'),
|
||||
icon: 'Award',
|
||||
to: 'my_points',
|
||||
external: true,
|
||||
activeFor: [],
|
||||
})
|
||||
}
|
||||
|
||||
let chatGPTURL = ''
|
||||
let chatGPTLabel = ''
|
||||
|
||||
if (roles.includes('LMS Schoolchild')) {
|
||||
chatGPTURL = 'chatgpt-schoolchild'
|
||||
chatGPTLabel = __('ChatGPT for Schoolers')
|
||||
} else if (roles.includes('LMS Student')) {
|
||||
chatGPTURL = 'chatgpt-schoolchild'
|
||||
chatGPTLabel = __('ChatGPT for Students')
|
||||
} else if (roles.includes('Course Creator')) {
|
||||
chatGPTURL = 'ai-teachers'
|
||||
chatGPTLabel = __('ChatGPT for Teachers')
|
||||
}
|
||||
|
||||
if (chatGPTURL) {
|
||||
otherLinks.value.push({
|
||||
label: chatGPTLabel,
|
||||
icon: 'Cpu',
|
||||
to: chatGPTURL,
|
||||
external: true,
|
||||
activeFor: [],
|
||||
})
|
||||
}
|
||||
|
||||
otherLinks.value.push({
|
||||
label: 'Notifications',
|
||||
icon: 'Bell',
|
||||
to: 'Notifications',
|
||||
label: __('Leader Board'),
|
||||
icon: 'Trophy',
|
||||
to: 'leaderboardsample',
|
||||
external: true,
|
||||
activeFor: [],
|
||||
})
|
||||
|
||||
otherLinks.value.push({
|
||||
label: 'Profile',
|
||||
label: __('Profile'),
|
||||
icon: 'UserRound',
|
||||
to: 'Profile',
|
||||
params: { username: userResource.data?.username },
|
||||
})
|
||||
|
||||
otherLinks.value.push({
|
||||
label: 'Log out',
|
||||
label: __('Log out'),
|
||||
icon: 'LogOut',
|
||||
})
|
||||
} else {
|
||||
otherLinks.value.push({
|
||||
label: 'Log in',
|
||||
label: __('Log in'),
|
||||
icon: 'LogIn',
|
||||
})
|
||||
}
|
||||
@@ -138,55 +295,11 @@ const addOtherLinks = () => {
|
||||
|
||||
watch(userResource, () => {
|
||||
if (userResource.data) {
|
||||
isModerator.value = userResource.data.is_moderator
|
||||
isInstructor.value = userResource.data.is_instructor
|
||||
addPrograms()
|
||||
if (isModerator.value || isInstructor.value) {
|
||||
addProgrammingExercises()
|
||||
addQuizzes()
|
||||
addAssignments()
|
||||
}
|
||||
addSideBar() // Обновляем sidebarLinks при изменении userResource
|
||||
addOtherLinks() // Обновляем otherLinks
|
||||
}
|
||||
})
|
||||
|
||||
const addQuizzes = () => {
|
||||
otherLinks.value.push({
|
||||
label: 'Quizzes',
|
||||
icon: 'CircleHelp',
|
||||
to: 'Quizzes',
|
||||
})
|
||||
}
|
||||
|
||||
const addAssignments = () => {
|
||||
otherLinks.value.push({
|
||||
label: 'Assignments',
|
||||
icon: 'Pencil',
|
||||
to: 'Assignments',
|
||||
})
|
||||
}
|
||||
|
||||
const addPrograms = async () => {
|
||||
let canAddProgram = await checkIfCanAddProgram()
|
||||
if (!canAddProgram) return
|
||||
let activeFor = ['Programs', 'ProgramDetail']
|
||||
let index = 1
|
||||
|
||||
sidebarLinks.value.splice(index, 0, {
|
||||
label: 'Programs',
|
||||
icon: 'Route',
|
||||
to: 'Programs',
|
||||
activeFor: activeFor,
|
||||
})
|
||||
}
|
||||
|
||||
const checkIfCanAddProgram = async () => {
|
||||
if (isModerator.value || isInstructor.value) {
|
||||
return true
|
||||
}
|
||||
const programs = await call('lms.lms.utils.get_programs')
|
||||
return programs.enrolled.length > 0 || programs.published.length > 0
|
||||
}
|
||||
|
||||
let isActive = (tab) => {
|
||||
return tab.activeFor?.includes(router.currentRoute.value.name)
|
||||
}
|
||||
@@ -204,6 +317,7 @@ const handleClick = (tab) => {
|
||||
username: userResource.data?.username,
|
||||
},
|
||||
})
|
||||
else if (tab.external) window.location.href = `/${tab.to}`
|
||||
else router.push({ name: tab.to })
|
||||
}
|
||||
|
||||
|
||||
@@ -113,6 +113,14 @@ watch(
|
||||
{ flush: 'post' }
|
||||
)
|
||||
|
||||
watch(show, (newVal) => {
|
||||
if (newVal && props.assignmentID === 'new') {
|
||||
assignment.title = ''
|
||||
assignment.type = ''
|
||||
assignment.question = ''
|
||||
}
|
||||
})
|
||||
|
||||
const saveAssignment = () => {
|
||||
if (props.assignmentID == 'new') {
|
||||
assignments.value.insert.submit(
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<Avatar :image="student.user_image" size="3xl" />
|
||||
<div class="space-y-1">
|
||||
<div class="flex items-center space-x-2">
|
||||
<div class="text-xl font-semibold">
|
||||
<div class="text-xl font-semibold text-ink-gray-9">
|
||||
{{ student.full_name }}
|
||||
</div>
|
||||
<Badge
|
||||
@@ -36,7 +36,9 @@
|
||||
v-if="Object.keys(student.assessments).length"
|
||||
class="space-y-2 text-sm"
|
||||
>
|
||||
<div class="flex items-center border-b pb-1 font-medium">
|
||||
<div
|
||||
class="flex items-center border-b pb-1 font-medium text-ink-gray-9"
|
||||
>
|
||||
<span class="flex-1">
|
||||
{{ __('Assessment') }}
|
||||
</span>
|
||||
@@ -86,7 +88,9 @@
|
||||
v-if="Object.keys(student.courses).length"
|
||||
class="space-y-2 text-sm"
|
||||
>
|
||||
<div class="flex items-center border-b pb-1 font-medium">
|
||||
<div
|
||||
class="flex items-center border-b pb-1 font-medium text-ink-gray-9"
|
||||
>
|
||||
<span class="flex-1">
|
||||
{{ __('Courses') }}
|
||||
</span>
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
<FileText class="h-5 w-5 stroke-1.5 text-ink-gray-7" />
|
||||
</div>
|
||||
<div class="flex flex-col">
|
||||
<span>
|
||||
<span class="text-ink-gray-9">
|
||||
{{ chapter.scorm_package.file_name }}
|
||||
</span>
|
||||
<span class="text-sm text-ink-gray-4 mt-1">
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<template>
|
||||
<Dialog
|
||||
:options="{
|
||||
title: 'Edit your profile',
|
||||
title: __('Edit your profile'),
|
||||
size: '3xl',
|
||||
actions: [
|
||||
{
|
||||
label: 'Save',
|
||||
label: __('Save'),
|
||||
variant: 'solid',
|
||||
onClick: (close) => saveProfile(close),
|
||||
},
|
||||
|
||||
@@ -66,7 +66,11 @@
|
||||
</template>
|
||||
{{ __('View Certificate') }}
|
||||
</Button>
|
||||
<Button v-else @click="openCallLink(event.venue)" class="w-full">
|
||||
<Button
|
||||
v-else-if="userIsEvaluator()"
|
||||
@click="openCallLink(event.venue)"
|
||||
class="w-full"
|
||||
>
|
||||
<template #prefix>
|
||||
<Video class="h-4 w-4 stroke-1.5" />
|
||||
</template>
|
||||
@@ -83,21 +87,31 @@
|
||||
class="flex flex-col space-y-4 p-5"
|
||||
>
|
||||
<div class="flex items-center justify-between">
|
||||
<Rating v-model="evaluation.rating" :label="__('Rating')" />
|
||||
<Rating
|
||||
v-model="evaluation.rating"
|
||||
:label="__('Rating')"
|
||||
:disabled="!userIsEvaluator()"
|
||||
/>
|
||||
<FormControl
|
||||
type="select"
|
||||
:options="statusOptions"
|
||||
v-model="evaluation.status"
|
||||
:label="__('Status')"
|
||||
class="w-1/2"
|
||||
:disabled="!userIsEvaluator()"
|
||||
/>
|
||||
</div>
|
||||
<Textarea
|
||||
v-model="evaluation.summary"
|
||||
:label="__('Summary')"
|
||||
:rows="7"
|
||||
:disabled="!userIsEvaluator()"
|
||||
/>
|
||||
<Button variant="solid" @click="saveEvaluation()">
|
||||
<Button
|
||||
v-if="userIsEvaluator()"
|
||||
variant="solid"
|
||||
@click="saveEvaluation()"
|
||||
>
|
||||
{{ __('Save') }}
|
||||
</Button>
|
||||
</div>
|
||||
@@ -106,11 +120,13 @@
|
||||
type="checkbox"
|
||||
v-model="certificate.published"
|
||||
:label="__('Published')"
|
||||
:disabled="!userIsEvaluator()"
|
||||
/>
|
||||
<Link
|
||||
v-model="certificate.template"
|
||||
:label="__('Template')"
|
||||
doctype="Print Format"
|
||||
:disabled="!userIsEvaluator()"
|
||||
:filters="{
|
||||
doc_type: 'LMS Certificate',
|
||||
}"
|
||||
@@ -118,14 +134,20 @@
|
||||
<FormControl
|
||||
type="date"
|
||||
v-model="certificate.issue_date"
|
||||
:disabled="!userIsEvaluator()"
|
||||
:label="__('Issue Date')"
|
||||
/>
|
||||
<FormControl
|
||||
type="date"
|
||||
v-model="certificate.expiry_date"
|
||||
:disabled="!userIsEvaluator()"
|
||||
:label="__('Expiry Date')"
|
||||
/>
|
||||
<Button variant="solid" @click="saveCertificate()">
|
||||
<Button
|
||||
v-if="userIsEvaluator()"
|
||||
variant="solid"
|
||||
@click="saveCertificate()"
|
||||
>
|
||||
{{ __('Save') }}
|
||||
</Button>
|
||||
</div>
|
||||
@@ -163,6 +185,7 @@ import Rating from '@/components/Controls/Rating.vue'
|
||||
import Link from '@/components/Controls/Link.vue'
|
||||
|
||||
const show = defineModel()
|
||||
const user = inject('$user')
|
||||
const dayjs = inject('$dayjs')
|
||||
const tabIndex = ref(0)
|
||||
const showCertification = ref(false)
|
||||
@@ -175,9 +198,18 @@ const props = defineProps({
|
||||
})
|
||||
|
||||
const evaluation = reactive({})
|
||||
|
||||
const certificate = reactive({})
|
||||
|
||||
watch(user, () => {
|
||||
if (userIsEvaluator()) {
|
||||
defaultTemplate.reload()
|
||||
}
|
||||
})
|
||||
|
||||
const userIsEvaluator = () => {
|
||||
return user.data && user.data.name == props.event.evaluator
|
||||
}
|
||||
|
||||
const defaultTemplate = createResource({
|
||||
url: 'frappe.client.get_value',
|
||||
makeParams(values) {
|
||||
@@ -190,7 +222,6 @@ const defaultTemplate = createResource({
|
||||
},
|
||||
}
|
||||
},
|
||||
auto: true,
|
||||
onSuccess(data) {
|
||||
certificate.template = data.value
|
||||
},
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
>
|
||||
<template #body-content>
|
||||
<div class="flex flex-col gap-4">
|
||||
<p>
|
||||
<p class="text-ink-gray-9">
|
||||
{{
|
||||
__(
|
||||
'Submit your resume to proceed with your application for this position. Upon submission, it will be shared with the job poster.'
|
||||
@@ -51,7 +51,7 @@
|
||||
<FileText class="h-5 w-5 stroke-1.5 text-ink-gray-7" />
|
||||
</div>
|
||||
<div class="flex flex-col">
|
||||
<span>
|
||||
<span class="text-ink-gray-9">
|
||||
{{ resume.file_name }}
|
||||
</span>
|
||||
<span class="text-sm text-ink-gray-4 mt-1">
|
||||
|
||||
@@ -126,7 +126,7 @@ import {
|
||||
Button,
|
||||
toast,
|
||||
} from 'frappe-ui'
|
||||
import { computed, watch, reactive, ref, inject } from 'vue'
|
||||
import { watch, reactive, ref, inject } from 'vue'
|
||||
import Link from '@/components/Controls/Link.vue'
|
||||
import { useOnboarding } from 'frappe-ui/frappe'
|
||||
|
||||
@@ -141,6 +141,7 @@ const existingQuestion = reactive({
|
||||
question: '',
|
||||
marks: 1,
|
||||
})
|
||||
|
||||
const question = reactive({
|
||||
question: '',
|
||||
type: 'Choices',
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
<template>
|
||||
<div class="border rounded-md w-1/3 mx-auto my-32">
|
||||
<div class="border-b px-5 py-3 font-medium">
|
||||
<div class="border-b px-5 py-3 font-medium text-ink-gray-9">
|
||||
<span
|
||||
class="inline-flex items-center before:bg-surface-red-5 before:w-2 before:h-2 before:rounded-md before:mr-2"
|
||||
></span>
|
||||
{{ __('Not Permitted') }}
|
||||
</div>
|
||||
<div v-if="user.data" class="px-5 py-3">
|
||||
<div>
|
||||
<div class="text-ink-gray-7">
|
||||
{{ __('You do not have permission to access this page.') }}
|
||||
</div>
|
||||
<router-link
|
||||
@@ -21,7 +21,7 @@
|
||||
</router-link>
|
||||
</div>
|
||||
<div class="px-5 py-3">
|
||||
<div>
|
||||
<div class="text-ink-gray-7">
|
||||
{{ __('Please login to access this page.') }}
|
||||
</div>
|
||||
<Button @click="redirectToLogin()" class="mt-4">
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
<template>
|
||||
<div class="text-base border rounded-md w-1/3 mx-auto my-32">
|
||||
<div class="border-b px-5 py-3 font-medium">
|
||||
<div class="border-b px-5 py-3 font-medium text-ink-gray-9">
|
||||
<span
|
||||
class="inline-flex items-center before:bg-surface-red-5 before:w-2 before:h-2 before:rounded-md before:mr-2"
|
||||
></span>
|
||||
{{ __(title) }}
|
||||
</div>
|
||||
<div class="px-5 py-3">
|
||||
<div class="mb-4 leading-6">
|
||||
<div class="mb-4 leading-6 text-ink-gray-7">
|
||||
{{ __(text) }}
|
||||
</div>
|
||||
<Button variant="solid" class="w-full" @click="redirect()">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="text-lg font-semibold mb-4">
|
||||
<div class="text-lg font-semibold mb-4 text-ink-gray-9">
|
||||
{{ __('My Notes') }}
|
||||
</div>
|
||||
<TextEditor
|
||||
|
||||
@@ -55,8 +55,8 @@
|
||||
|
||||
<div v-if="quiz.data.duration" class="flex flex-col space-x-1 my-4">
|
||||
<div class="mb-2">
|
||||
<span class=""> {{ __('Time') }}: </span>
|
||||
<span class="font-semibold">
|
||||
<span class="text-ink-gray-9"> {{ __('Time') }}: </span>
|
||||
<span class="font-semibold text-ink-gray-9">
|
||||
{{ formatTimer(timer) }}
|
||||
</span>
|
||||
</div>
|
||||
@@ -165,14 +165,14 @@
|
||||
</div>
|
||||
</div>
|
||||
<span
|
||||
class="ml-2"
|
||||
class="ml-2 text-ink-gray-9"
|
||||
v-html="questionDetails.data[`option_${index}`]"
|
||||
>
|
||||
</span>
|
||||
</label>
|
||||
<div
|
||||
v-if="questionDetails.data[`explanation_${index}`]"
|
||||
class="mt-2 text-xs"
|
||||
class="mt-2 text-xs text-ink-gray-7"
|
||||
v-show="showAnswers.length"
|
||||
>
|
||||
{{ questionDetails.data[`explanation_${index}`] }}
|
||||
@@ -260,7 +260,7 @@
|
||||
)
|
||||
}}
|
||||
</div>
|
||||
<div v-else>
|
||||
<div v-else class="text-ink-gray-7">
|
||||
{{
|
||||
__(
|
||||
'You got {0}% correct answers with a score of {1} out of {2}'
|
||||
|
||||
@@ -69,9 +69,12 @@ const update = () => {
|
||||
let imageFields = ['favicon', 'banner_image']
|
||||
props.fields.forEach((f) => {
|
||||
if (imageFields.includes(f.name)) {
|
||||
fieldsToSave[f.name] = f.value ? f.value.file_url : null
|
||||
fieldsToSave[f.name] =
|
||||
branding.data[f.name] && branding.data[f.name].file_url
|
||||
? branding.data[f.name].file_url
|
||||
: null
|
||||
} else {
|
||||
fieldsToSave[f.name] = f.value
|
||||
fieldsToSave[f.name] = branding.data[f.name]
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
@@ -96,7 +96,7 @@
|
||||
size="sm"
|
||||
:label="__(field.label)"
|
||||
:description="__(field.description)"
|
||||
v-model="data[field.name]"
|
||||
v-model="field.value"
|
||||
/>
|
||||
|
||||
<FormControl
|
||||
@@ -147,8 +147,6 @@ const columns = computed(() => {
|
||||
} else {
|
||||
if (field.type == 'checkbox') {
|
||||
field.value = props.data[field.name] ? true : false
|
||||
} else {
|
||||
field.value = props.data[field.name]
|
||||
}
|
||||
currentColumn.push(field)
|
||||
}
|
||||
|
||||
@@ -2,7 +2,9 @@
|
||||
<Dialog v-model="show" :options="{ size: '5xl' }">
|
||||
<template #body>
|
||||
<div class="flex h-[calc(100vh_-_8rem)]">
|
||||
<div class="flex w-52 shrink-0 flex-col bg-surface-gray-2 p-2">
|
||||
<div
|
||||
class="flex w-52 shrink-0 flex-col bg-surface-gray-2 p-2 overflow-y-auto"
|
||||
>
|
||||
<h1 class="mb-3 px-2 pt-2 text-lg font-semibold text-ink-gray-9">
|
||||
{{ __('Settings') }}
|
||||
</h1>
|
||||
@@ -14,18 +16,13 @@
|
||||
<span>{{ __(tab.label) }}</span>
|
||||
</div>
|
||||
<nav class="space-y-1">
|
||||
<SidebarLink
|
||||
v-for="item in tab.items"
|
||||
:link="item"
|
||||
:key="item.label"
|
||||
class="w-full"
|
||||
:class="
|
||||
activeTab?.label == item.label
|
||||
? 'bg-surface-selected shadow-sm'
|
||||
: 'hover:bg-surface-gray-2'
|
||||
"
|
||||
@click="activeTab = item"
|
||||
/>
|
||||
<div v-for="item in tab.items" @click="activeTab = item">
|
||||
<SidebarLink
|
||||
:link="item"
|
||||
:key="item.label"
|
||||
:activeTab="activeTab?.label"
|
||||
/>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<button
|
||||
v-if="link && !link.onlyMobile"
|
||||
class="flex h-7 cursor-pointer items-center rounded text-ink-gray-8 duration-300 ease-in-out focus:outline-none focus:transition-none focus-visible:rounded focus-visible:ring-2 focus-visible:ring-outline-gray-3"
|
||||
class="flex w-full h-7 cursor-pointer items-center rounded text-ink-gray-8 duration-300 ease-in-out focus:outline-none focus:transition-none focus-visible:rounded focus-visible:ring-2 focus-visible:ring-outline-gray-3"
|
||||
:class="
|
||||
isActive ? 'bg-surface-selected shadow-sm' : 'hover:bg-surface-gray-2'
|
||||
"
|
||||
@@ -59,15 +59,18 @@
|
||||
</div>
|
||||
</div>
|
||||
</button>
|
||||
<ContactUsEmail v-model="showContactForm" />
|
||||
</template>
|
||||
<script setup>
|
||||
import { Tooltip } from 'frappe-ui'
|
||||
import { computed } from 'vue'
|
||||
import { computed, ref } from 'vue'
|
||||
import { useRouter } from 'vue-router'
|
||||
import ContactUsEmail from '@/components/ContactUsEmail.vue'
|
||||
import * as icons from 'lucide-vue-next'
|
||||
|
||||
const router = useRouter()
|
||||
const emit = defineEmits(['openModal', 'deletePage'])
|
||||
const showContactForm = ref(false)
|
||||
|
||||
const props = defineProps({
|
||||
link: {
|
||||
@@ -82,16 +85,19 @@ const props = defineProps({
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
activeTab: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
})
|
||||
|
||||
function handleClick() {
|
||||
if (router.hasRoute(props.link.to)) {
|
||||
router.push({ name: props.link.to })
|
||||
} else if (props.link.to?.includes('@')) {
|
||||
showContactForm.value = true
|
||||
} else if (props.link.to) {
|
||||
if (
|
||||
props.link.to.startsWith('http') ||
|
||||
props.link.to.startsWith('mailto:')
|
||||
) {
|
||||
if (props.link.to.startsWith('http')) {
|
||||
window.open(props.link.to, '_blank')
|
||||
return
|
||||
}
|
||||
@@ -100,7 +106,10 @@ function handleClick() {
|
||||
}
|
||||
|
||||
const isActive = computed(() => {
|
||||
return props.link?.activeFor?.includes(router.currentRoute.value.name)
|
||||
return (
|
||||
props.link?.activeFor?.includes(router.currentRoute.value.name) ||
|
||||
(props.activeTab && props.link?.label?.includes(props.activeTab))
|
||||
)
|
||||
})
|
||||
|
||||
const openModal = (link) => {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div v-if="heatmap.data">
|
||||
<div class="text-lg font-semibold mb-2">
|
||||
<div class="text-lg font-semibold mb-2 text-ink-gray-9">
|
||||
{{ heatmap.data.total_activities }}
|
||||
{{
|
||||
heatmap.data.total_activities > 1 ? __('activities') : __('activity')
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
</div>
|
||||
<div v-if="batch.data.courses.length">
|
||||
<div class="flex items-center mt-10">
|
||||
<div class="text-2xl font-semibold">
|
||||
<div class="text-2xl font-semibold text-ink-gray-9">
|
||||
{{ __('Courses') }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
<div class="text-ink-gray-5">
|
||||
{{ __('Payment for ') }} {{ type }}:
|
||||
</div>
|
||||
<div class="leading-5">
|
||||
<div class="leading-5 text-ink-gray-9">
|
||||
{{ orderSummary.data.title }}
|
||||
</div>
|
||||
</div>
|
||||
@@ -31,7 +31,7 @@
|
||||
<div class="text-ink-gray-5">
|
||||
{{ __('Original Amount') }}
|
||||
</div>
|
||||
<div class="">
|
||||
<div class="text-ink-gray-9">
|
||||
{{ orderSummary.data.original_amount_formatted }}
|
||||
</div>
|
||||
</div>
|
||||
@@ -42,17 +42,17 @@
|
||||
<div class="text-ink-gray-5">
|
||||
{{ __('GST Amount') }}
|
||||
</div>
|
||||
<div>
|
||||
<div class="text-ink-gray-9">
|
||||
{{ orderSummary.data.gst_amount_formatted }}
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="flex items-center justify-between border-t border-outline-gray-3 pt-4 mt-2"
|
||||
>
|
||||
<div class="text-lg font-semibold">
|
||||
<div class="text-lg font-semibold text-ink-gray-9">
|
||||
{{ __('Total') }}
|
||||
</div>
|
||||
<div class="text-lg font-semibold">
|
||||
<div class="text-lg font-semibold text-ink-gray-9">
|
||||
{{ orderSummary.data.total_amount_formatted }}
|
||||
</div>
|
||||
</div>
|
||||
@@ -60,7 +60,7 @@
|
||||
|
||||
<div class="flex-1 lg:mr-10">
|
||||
<div class="mb-5">
|
||||
<div class="text-lg font-semibold">
|
||||
<div class="text-lg font-semibold text-ink-gray-9">
|
||||
{{ __('Address') }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
918
frontend/src/pages/CourseCreatorProfile.vue
Normal file
918
frontend/src/pages/CourseCreatorProfile.vue
Normal file
@@ -0,0 +1,918 @@
|
||||
<template>
|
||||
<div class="min-h-screen bg-white">
|
||||
<NoPermission v-if="!$user.data" />
|
||||
|
||||
<div v-else-if="profile.error" class="p-6">
|
||||
<div class="max-w-4xl mx-auto bg-white rounded-xl shadow-sm p-6 border border-red-200">
|
||||
<p class="text-red-500 text-lg font-medium">Ошибка загрузки профиля: {{ profile.error.message }}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-else-if="profile.data">
|
||||
<header class="sticky top-0 z-10 flex items-center justify-between bg-white px-6 py-4">
|
||||
<Breadcrumbs class="h-7" :items="breadcrumbs" />
|
||||
</header>
|
||||
|
||||
<div class="mx-auto max-w-6xl px-4 py-6">
|
||||
<!-- Profile Header -->
|
||||
<div v-if="!schoolProfileNotFound" class="bg-gradient-to-r from-teal-100 to-teal-600 rounded-2xl shadow-sm border border-gray-200 p-6 -mt-4 relative">
|
||||
<div class="flex flex-col md:flex-row md:items-center gap-6">
|
||||
<div class="flex-1">
|
||||
<h2 class="text-3xl font-bold text-gray-900">{{ displayName }}</h2>
|
||||
<div
|
||||
v-if="profile.data.bio"
|
||||
v-html="
|
||||
DOMPurify.sanitize(decodeEntities(profile.data.bio), {
|
||||
ALLOWED_TAGS: [
|
||||
'b',
|
||||
'i',
|
||||
'em',
|
||||
'strong',
|
||||
'a',
|
||||
'p',
|
||||
'br',
|
||||
'ul',
|
||||
'ol',
|
||||
'li',
|
||||
'img',
|
||||
],
|
||||
ALLOWED_ATTR: ['href', 'target', 'rel', 'src'],
|
||||
})
|
||||
"
|
||||
class="ProseMirror prose prose-table:table-fixed prose-td:p-2 prose-th:p-2 prose-td:border prose-th:border prose-td:border-outline-gray-2 prose-th:border-outline-gray-2 prose-td:relative prose-th:relative prose-th:bg-surface-gray-2 prose-sm max-w-none !whitespace-normal mt-2 text-gray-700"
|
||||
></div>
|
||||
</div>
|
||||
|
||||
<div v-if="$user.data && isSessionUser() && !schoolProfileNotFound" class="md:ml-auto">
|
||||
<Button @click="toggleEdit()" class="bg-white hover:bg-gray-100 px-5 py-2.5 rounded-lg transition-colors duration-200">
|
||||
<template #prefix>
|
||||
<Edit class="w-4 h-4 stroke-1.5" />
|
||||
</template>
|
||||
{{ editMode ? 'Отменить редактирование' : 'Редактировать профиль' }}
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- VIEW MODE -->
|
||||
<div v-if="!editMode" class="mt-6">
|
||||
<!-- Пустой профиль -->
|
||||
<div v-if="schoolProfileNotFound" class="bg-white rounded-2xl shadow-sm border border-gray-200 overflow-hidden">
|
||||
<div class="p-8 text-center">
|
||||
<div class="max-w-md mx-auto">
|
||||
<div class="mx-auto w-20 h-20 bg-teal-100 rounded-full flex items-center justify-center mb-6">
|
||||
<svg class="w-10 h-10 text-teal-600" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z" />
|
||||
</svg>
|
||||
</div>
|
||||
|
||||
<h3 class="text-2xl font-bold text-gray-900 mb-3">Профиль преподавателя еще не заполнен</h3>
|
||||
|
||||
<p class="text-gray-600 mb-6">
|
||||
Чтобы начать создавать и проводить курсы, заполните информацию о себе.
|
||||
Это поможет студентам лучше узнать вас как преподавателя.
|
||||
</p>
|
||||
|
||||
<div class="bg-teal-50 border border-teal-100 rounded-lg p-5 mb-6 text-left">
|
||||
<h4 class="font-semibold text-teal-800 mb-3 flex items-center gap-2">
|
||||
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path fill-rule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd" />
|
||||
</svg>
|
||||
Заполнив профиль, вы сможете:
|
||||
</h4>
|
||||
<ul class="space-y-2 text-sm text-gray-700">
|
||||
<li class="flex items-start gap-2">
|
||||
<svg class="w-4 h-4 text-teal-500 mt-0.5 flex-shrink-0" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd" />
|
||||
</svg>
|
||||
<span>Создавать и проводить собственные курсы</span>
|
||||
</li>
|
||||
<li class="flex items-start gap-2">
|
||||
<svg class="w-4 h-4 text-teal-500 mt-0.5 flex-shrink-0" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd" />
|
||||
</svg>
|
||||
<span>Привлекать студентов с помощью подробного профиля</span>
|
||||
</li>
|
||||
<li class="flex items-start gap-2">
|
||||
<svg class="w-4 h-4 text-teal-500 mt-0.5 flex-shrink-0" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd" />
|
||||
</svg>
|
||||
<span>Показать свою экспертизу и опыт</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<Button
|
||||
@click="toggleEdit()"
|
||||
class="bg-teal-600 hover:bg-teal-700 text-white px-8 py-3 rounded-lg font-medium transition-colors duration-200 shadow-sm hover:shadow-md"
|
||||
>
|
||||
<template #prefix>
|
||||
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536 3.536L6.5 21.036H3v-3.572L16.732 3.732z" />
|
||||
</svg>
|
||||
</template>
|
||||
Заполнить профиль создателя курса
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Загружающийся профиль -->
|
||||
<div v-else-if="schoolProfile.loading" class="bg-white rounded-2xl shadow-sm border border-gray-200 p-8">
|
||||
<div class="flex items-center justify-center py-12">
|
||||
<div class="animate-spin rounded-full h-12 w-12 border-b-2 border-primary-600"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Ошибка загрузки (кроме DoesNotExistError) -->
|
||||
<div v-else-if="schoolProfile.error && !schoolProfileNotFound" class="bg-white rounded-2xl shadow-sm border border-red-200 p-6">
|
||||
<p class="text-red-500 text-lg font-medium">{{__('Error loading course creator data:')}} {{ schoolProfile.error.message }}</p>
|
||||
</div>
|
||||
|
||||
<!-- Загруженный профиль -->
|
||||
<div v-else-if="schoolProfile.data && !schoolProfileNotFound" class="space-y-6">
|
||||
<!-- Основная информация -->
|
||||
<div class="bg-white rounded-2xl shadow-sm border border-gray-200 overflow-hidden">
|
||||
<div class="px-6 py-4 border-b border-gray-100 bg-teal-400">
|
||||
<h3 class="text-xl font-semibold text-white">Основная информация</h3>
|
||||
</div>
|
||||
<div class="p-6">
|
||||
<div class="grid grid-cols-1 lg:grid-cols-2 gap-6">
|
||||
<div class="space-y-4">
|
||||
<div class="flex items-start">
|
||||
<span class="inline-block w-40 text-gray-700 font-medium">{{__('Last name:')}}:</span>
|
||||
<span class="text-gray-900">{{ schoolProfile.data.last_name || '—' }}</span>
|
||||
</div>
|
||||
<div class="flex items-start">
|
||||
<span class="inline-block w-40 text-gray-700 font-medium">{{__('Name:')}}:</span>
|
||||
<span class="text-gray-900">{{ schoolProfile.data.first_name || '—' }}</span>
|
||||
</div>
|
||||
<div class="flex items-start">
|
||||
<span class="inline-block w-40 text-gray-700 font-medium">{{__('Middle name:')}}</span>
|
||||
<span class="text-gray-900">{{ schoolProfile.data.middle_name || '—' }}</span>
|
||||
</div>
|
||||
<div class="flex items-start">
|
||||
<span class="inline-block w-40 text-gray-700 font-medium">{{__('Date of birth:')}}</span>
|
||||
<span class="text-gray-900">{{ formattedDate(schoolProfile.data.birth_date) || '—' }}</span>
|
||||
</div>
|
||||
<div class="flex items-start">
|
||||
<span class="inline-block w-40 text-gray-700 font-medium">{{__('Phone:')}}</span>
|
||||
<span class="text-gray-900 font-mono">{{ maskPrivate(schoolProfile.data.phone) }}</span>
|
||||
</div>
|
||||
<div class="flex items-start">
|
||||
<span class="inline-block w-48 text-gray-700 font-medium">Email:</span>
|
||||
<span class="text-gray-900 font-mono">{{ maskPrivate(schoolProfile.data.email_private) }}</span>
|
||||
</div>
|
||||
<div class="flex items-start">
|
||||
<span class="inline-block w-48 text-gray-700 font-medium">Telegram:</span>
|
||||
<div class="flex-1">
|
||||
<a v-if="schoolProfile.data.telegram"
|
||||
:href="formatTelegram(schoolProfile.data.telegram)"
|
||||
target="_blank"
|
||||
class="inline-flex items-center gap-2 text-primary-600 hover:text-primary-700 font-medium transition-colors">
|
||||
<span>{{ schoolProfile.data.telegram.replace('@', '') }}</span>
|
||||
<svg class="w-4 h-4" fill="currentColor" viewBox="0 0 24 24">
|
||||
<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm4.64 6.8c-.15 1.58-.8 5.42-1.13 7.19-.14.75-.42 1-.68 1.03-.58.05-1.02-.38-1.58-.75-.88-.58-1.38-.94-2.23-1.5-.99-.65-.35-1.01.22-1.59.15-.15 2.71-2.48 2.76-2.69.01-.03.01-.14-.06-.2-.07-.06-.17-.04-.24-.02-.1.02-1.69 1.09-4.78 3.2-.45.31-.86.46-1.23.45-.41-.01-1.2-.23-1.79-.42-.72-.23-1.29-.36-1.24-.76.03-.24.37-.48 1.01-.74 3.97-1.67 6.62-2.77 7.94-3.31 3.26-1.33 3.94-1.56 4.38-1.56.08 0 .27.02.39.12.1.08.13.19.14.27-.01.06.01.24 0 .38z"/>
|
||||
</svg>
|
||||
</a>
|
||||
<span v-else class="text-gray-500">—</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="space-y-4">
|
||||
<div class="flex items-start">
|
||||
<span class="inline-block w-40 text-gray-700 font-medium">{{__('University:')}}</span>
|
||||
<span class="text-gray-900">{{ schoolProfile.data.school || '—' }}</span>
|
||||
</div>
|
||||
<div class="flex items-start">
|
||||
<span class="inline-block w-40 text-gray-700 font-medium">{{__('Education level:')}}</span>
|
||||
<span class="text-gray-900">{{ schoolProfile.data.education_level || '—' }}</span>
|
||||
</div>
|
||||
<div class="flex items-start">
|
||||
<span class="inline-block w-40 text-gray-700 font-medium">{{__('The direction of training:')}}</span>
|
||||
<span class="text-gray-900">{{ schoolProfile.data.major || '—' }}</span>
|
||||
</div>
|
||||
<div class="flex items-start">
|
||||
<span class="inline-block w-40 text-gray-700 font-medium">{{__('Educational program:')}}</span>
|
||||
<span class="text-gray-900">{{ schoolProfile.data.program || '—' }}</span>
|
||||
</div>
|
||||
<div class="flex items-start">
|
||||
<span class="inline-block w-48 text-gray-700 font-medium">Год окончания:</span>
|
||||
<span class="text-gray-900">{{ schoolProfile.data.graduation_year || '—' }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- О себе, опыте и достижениях -->
|
||||
<div class="grid grid-cols-1 lg:grid-cols-3 gap-6">
|
||||
<div class="bg-white rounded-2xl shadow-sm border border-gray-200 overflow-hidden">
|
||||
<div class="px-6 py-4 border-b border-gray-100 bg-teal-400">
|
||||
<h3 class="text-xl font-semibold text-white">Коротко о себе</h3>
|
||||
</div>
|
||||
<div class="p-6">
|
||||
<p class="text-gray-700 leading-relaxed whitespace-pre-line">{{ schoolProfile.data.about_me || 'Информация не указана' }}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bg-white rounded-2xl shadow-sm border border-gray-200 overflow-hidden">
|
||||
<div class="px-6 py-4 border-b border-gray-100 bg-teal-400">
|
||||
<h3 class="text-xl font-semibold text-white">Опыт работы</h3>
|
||||
</div>
|
||||
<div class="p-6">
|
||||
<p class="text-gray-700 leading-relaxed whitespace-pre-line">{{ schoolProfile.data.experience || 'Информация не указана' }}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bg-white rounded-2xl shadow-sm border border-gray-200 overflow-hidden">
|
||||
<div class="px-6 py-4 border-b border-gray-100 bg-teal-400">
|
||||
<h3 class="text-xl font-semibold text-white">Достижения</h3>
|
||||
</div>
|
||||
<div class="p-6">
|
||||
<p class="text-gray-700 leading-relaxed whitespace-pre-line">{{ schoolProfile.data.achievement || 'Информация не указана' }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-else class="bg-white rounded-2xl shadow-sm border border-gray-200 p-8">
|
||||
<div class="text-center py-12">
|
||||
<div class="mx-auto w-16 h-16 bg-gray-100 rounded-full flex items-center justify-center mb-4">
|
||||
<svg class="w-8 h-8 text-gray-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"/>
|
||||
</svg>
|
||||
</div>
|
||||
<h3 class="text-xl font-semibold text-gray-900 mb-2">Данные профиля не найдены</h3>
|
||||
<p class="text-gray-600">Информация о репетиторе/эксперте отсутствует</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- EDIT MODE -->
|
||||
<div v-else class="mt-6">
|
||||
<div class="bg-white rounded-2xl shadow-sm border border-gray-200 overflow-hidden">
|
||||
<div class="px-6 py-4 border-b border-gray-100 bg-teal-400">
|
||||
<h3 class="text-xl font-semibold text-white">{{__('Profile Editing')}}</h3>
|
||||
<p class="text-sm text-gray-200 mt-1">{{__('Fill in the information about yourself')}}</p>
|
||||
</div>
|
||||
|
||||
<div class="p-6">
|
||||
<div class="grid grid-cols-1 lg:grid-cols-2 gap-6">
|
||||
<!-- Левая колонка -->
|
||||
<div class="space-y-6">
|
||||
<h4 class="text-lg font-semibold text-gray-900 border-b pb-2">{{__('Personal information')}}</h4>
|
||||
|
||||
<Input
|
||||
v-model="form.last_name"
|
||||
:label="__('Last name:')"
|
||||
class="bg-gray-50 border-gray-300 focus:border-primary-500 focus:ring-primary-500"
|
||||
/>
|
||||
|
||||
<Input
|
||||
v-model="form.first_name"
|
||||
:label="__('Name:')"
|
||||
class="bg-gray-50 border-gray-300 focus:border-primary-500 focus:ring-primary-500"
|
||||
/>
|
||||
|
||||
<Input
|
||||
v-model="form.middle_name"
|
||||
:label="__('Middle name:')"
|
||||
class="bg-gray-50 border-gray-300 focus:border-primary-500 focus:ring-primary-500"
|
||||
/>
|
||||
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-700 mb-2">{{__('Date of birth:')}}</label>
|
||||
<DatePicker
|
||||
v-model="form.birth_date"
|
||||
class="w-full bg-gray-50 border-gray-300 rounded-lg focus:border-primary-500 focus:ring-primary-500"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<Input
|
||||
v-model="form.phone"
|
||||
:label="__('Phone:')"
|
||||
placeholder="+7 (XXX) XXX-XX-XX"
|
||||
class="bg-gray-50 border-gray-300 focus:border-primary-500 focus:ring-primary-500"
|
||||
/>
|
||||
|
||||
<Input
|
||||
v-model="form.email_private"
|
||||
label="Email"
|
||||
type="email"
|
||||
placeholder="example@email.com"
|
||||
class="bg-gray-50 border-gray-300 focus:border-primary-500 focus:ring-primary-500"
|
||||
/>
|
||||
|
||||
<Input
|
||||
v-model="form.telegram"
|
||||
label="Telegram"
|
||||
placeholder="username или t.me/username"
|
||||
class="bg-gray-50 border-gray-300 focus:border-primary-500 focus:ring-primary-500"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<!-- Правая колонка -->
|
||||
<div class="space-y-6">
|
||||
<h4 class="text-lg font-semibold text-gray-900 border-b pb-2">Образование</h4>
|
||||
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-700 mb-2">Университет</label>
|
||||
<input
|
||||
type="text"
|
||||
v-model="schoolQuery"
|
||||
@input="debouncedSearchSchool"
|
||||
class="w-full bg-gray-50 border border-gray-300 rounded-lg px-4 py-2.5 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-transparent transition-colors"
|
||||
placeholder="Начните вводить название университета"
|
||||
/>
|
||||
<div v-if="schoolResults.length" class="mt-2 border border-gray-300 rounded-lg overflow-hidden shadow-lg bg-white">
|
||||
<div
|
||||
v-for="s in schoolResults"
|
||||
:key="s.school"
|
||||
class="p-3 cursor-pointer hover:bg-primary-50 border-b border-gray-100 last:border-b-0 transition-colors"
|
||||
@click="selectSchool(s)"
|
||||
>
|
||||
<div class="font-medium text-gray-900">{{ s.school }}</div>
|
||||
<div class="text-xs text-gray-500 mt-1">{{ s.adress }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="form.school_name && !schoolResults.length" class="mt-2 text-sm text-gray-600">
|
||||
<span class="font-medium">Выбрана:</span> {{ form.school }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-700 mb-2">Уровень образования</label>
|
||||
<Select
|
||||
v-model="form.education_level"
|
||||
:options="['Бакалавриат','Магистратура','Аспирантура','Базовое высшее образование','Специализированное высшее образование','Профессиональная переподготовка','Повышение квалификации']"
|
||||
class="bg-gray-50 border-gray-300 focus:border-primary-500 focus:ring-primary-500"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-700 mb-2">Направление подготовки</label>
|
||||
<input
|
||||
type="text"
|
||||
v-model="majorQuery"
|
||||
@input="debouncedSearchMajor"
|
||||
class="w-full bg-gray-50 border border-gray-300 rounded-lg px-4 py-2.5 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-transparent transition-colors"
|
||||
placeholder="Начните вводить название направления"
|
||||
/>
|
||||
<div v-if="majorResults.length" class="mt-2 border border-gray-300 rounded-lg overflow-hidden shadow-lg bg-white">
|
||||
<div
|
||||
v-for="m in majorResults"
|
||||
:key="m.major"
|
||||
class="p-3 cursor-pointer hover:bg-primary-50 border-b border-gray-100 last:border-b-0 transition-colors"
|
||||
@click="selectMajor(m)"
|
||||
>
|
||||
<div class="font-medium text-gray-900">{{ m.major_name }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="form.major_name && !majorResults.length" class="mt-2 text-sm text-gray-600">
|
||||
<span class="font-medium">Выбрано:</span> {{ form.major_name }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<Input
|
||||
v-model="form.program"
|
||||
label="Образовательная программа"
|
||||
class="bg-gray-50 border-gray-300 focus:border-primary-500 focus:ring-primary-500"
|
||||
/>
|
||||
|
||||
<Input
|
||||
v-model="form.graduation_year"
|
||||
label="Год окончания"
|
||||
placeholder="например, 2025"
|
||||
class="bg-gray-50 border-gray-300 focus:border-primary-500 focus:ring-primary-500"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Текстовые поля -->
|
||||
<div class="mt-8 space-y-6">
|
||||
<h4 class="text-lg font-semibold text-gray-900 border-b pb-2">Дополнительная информация</h4>
|
||||
|
||||
<Textarea
|
||||
v-model="form.about_me"
|
||||
label="Коротко о себе"
|
||||
rows="4"
|
||||
class="bg-gray-50 border-gray-300 focus:border-primary-500 focus:ring-primary-500"
|
||||
/>
|
||||
|
||||
<Textarea
|
||||
v-model="form.experience"
|
||||
label="Опыт работы"
|
||||
rows="4"
|
||||
class="bg-gray-50 border-gray-300 focus:border-primary-500 focus:ring-primary-500"
|
||||
/>
|
||||
|
||||
<Textarea
|
||||
v-model="form.achievement"
|
||||
label="Достижения"
|
||||
rows="4"
|
||||
class="bg-gray-50 border-gray-300 focus:border-primary-500 focus:ring-primary-500"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<!-- Кнопки действий -->
|
||||
<div class="mt-8 pt-6 border-t border-gray-200 flex gap-3">
|
||||
<Button
|
||||
@click="saveProfile"
|
||||
:loading="saving"
|
||||
class="bg-teal-400 hover:bg-teal-700 text-white px-8 py-3 rounded-lg font-medium transition-colors duration-200 flex items-center gap-2"
|
||||
>
|
||||
{{ saving ? 'Сохранение...' : 'Сохранить изменения' }}
|
||||
</Button>
|
||||
|
||||
<Button
|
||||
variant="outline"
|
||||
@click="toggleEdit()"
|
||||
class="border-gray-300 text-gray-700 hover:bg-gray-50 px-6 py-3 rounded-lg font-medium transition-colors duration-200"
|
||||
>
|
||||
Отмена
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-else class="flex items-center justify-center min-h-screen">
|
||||
<div class="text-center">
|
||||
<div class="animate-spin rounded-full h-16 w-16 border-b-2 border-primary-600 mx-auto"></div>
|
||||
<p class="mt-4 text-lg text-gray-600">Загрузка профиля...</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
/* Плавные переходы для интерактивных элементов */
|
||||
.border-gray-300 {
|
||||
transition: border-color 0.2s ease;
|
||||
}
|
||||
|
||||
.bg-primary-50 {
|
||||
background-color: rgba(59, 130, 246, 0.05);
|
||||
}
|
||||
|
||||
/* Стилизация скроллбара для выпадающих списков */
|
||||
.overflow-auto::-webkit-scrollbar {
|
||||
width: 6px;
|
||||
}
|
||||
|
||||
.overflow-auto::-webkit-scrollbar-track {
|
||||
background: #f1f1f1;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.overflow-auto::-webkit-scrollbar-thumb {
|
||||
background: #c1c1c1;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.overflow-auto::-webkit-scrollbar-thumb:hover {
|
||||
background: #a1a1a1;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script setup>
|
||||
import { ref, computed, inject, watch, onMounted } from 'vue';
|
||||
import { Breadcrumbs, createResource, Button, Input, DatePicker, Select, Textarea } from 'frappe-ui';
|
||||
import { sessionStore } from '@/stores/session';
|
||||
import NoPermission from '@/components/NoPermission.vue';
|
||||
import { Edit } from 'lucide-vue-next';
|
||||
import { convertToTitleCase, updateDocumentTitle } from '@/utils';
|
||||
import debounce from 'lodash/debounce';
|
||||
import { decodeEntities } from '@/utils'
|
||||
import DOMPurify from 'dompurify'
|
||||
|
||||
const { user } = sessionStore();
|
||||
const $user = inject('$user');
|
||||
const schoolProfileNotFound = ref(false);
|
||||
|
||||
// Логирование инициализации
|
||||
console.log('[DEBUG] Инициализация компонента:', {
|
||||
user: user,
|
||||
$user: $user.data,
|
||||
username: $user.data?.username,
|
||||
});
|
||||
|
||||
const props = defineProps({
|
||||
username: {
|
||||
type: String,
|
||||
required: false,
|
||||
default: '',
|
||||
},
|
||||
});
|
||||
|
||||
const effectiveUsername = computed(() => {
|
||||
const username = props.username || $user.data?.username || '';
|
||||
console.log('[DEBUG] Вычисление effectiveUsername:', { propsUsername: props.username, sessionUsername: $user.data?.username, result: username });
|
||||
return username;
|
||||
});
|
||||
|
||||
const editMode = ref(false);
|
||||
const saving = ref(false);
|
||||
|
||||
const profile = createResource({
|
||||
url: 'frappe.client.get',
|
||||
makeParams(values) {
|
||||
const username = effectiveUsername.value;
|
||||
console.log('[DEBUG] Запрос profile:', { doctype: 'User', filters: { username } });
|
||||
return {
|
||||
doctype: 'User',
|
||||
filters: { username },
|
||||
};
|
||||
},
|
||||
onSuccess(data) {
|
||||
console.log('[DEBUG] Профиль загружен:', data);
|
||||
},
|
||||
onError(error) {
|
||||
console.error('[DEBUG] Ошибка загрузки профиля:', error);
|
||||
window.frappe?.msgprint({
|
||||
title: 'Ошибка',
|
||||
message: 'Не удалось загрузить профиль пользователя: ' + (error.message || 'Неизвестная ошибка'),
|
||||
indicator: 'red',
|
||||
});
|
||||
},
|
||||
});
|
||||
|
||||
const schoolProfile = createResource({
|
||||
url: 'frappe.client.get',
|
||||
params: {
|
||||
doctype: 'Schoolchildren Profile',
|
||||
filters: { user:user },
|
||||
},
|
||||
auto: false,
|
||||
onSuccess(data) {
|
||||
console.log('[DEBUG] Профиль школьника загружен:', data);
|
||||
},
|
||||
onError(error) {
|
||||
// Проверяем, является ли ошибка "не найдено"
|
||||
if (error.exc_type === 'DoesNotExistError' || error.message?.includes('DoesNotExist')) {
|
||||
console.log('[DEBUG] Профиль школьника не найден, создаем новый');
|
||||
schoolProfileNotFound.value = true;
|
||||
} else {
|
||||
console.error('[DEBUG] Ошибка загрузки профиля школьника:', error);
|
||||
window.frappe?.msgprint({
|
||||
title: 'Ошибка',
|
||||
message: 'Не удалось загрузить профиль школьника: ' + (error.message || 'Неизвестная ошибка'),
|
||||
indicator: 'red',
|
||||
});
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
const form = ref({
|
||||
first_name: '',
|
||||
last_name: '',
|
||||
middle_name: '',
|
||||
birth_date: '',
|
||||
phone: '',
|
||||
email_private: '',
|
||||
telegram: '',
|
||||
school: '',
|
||||
education_level: '',
|
||||
major: '',
|
||||
program: '',
|
||||
graduation_year: '',
|
||||
experience: '',
|
||||
achievement: '',
|
||||
about_me: ''
|
||||
});
|
||||
|
||||
const breadcrumbs = computed(() => {
|
||||
const username = effectiveUsername.value;
|
||||
const crumbs = [
|
||||
{
|
||||
label: 'People',
|
||||
route: { name: 'People' },
|
||||
},
|
||||
{
|
||||
label: profile.data?.full_name || 'Профиль',
|
||||
route: username ? {
|
||||
name: 'Profile',
|
||||
params: { username },
|
||||
} : undefined,
|
||||
},
|
||||
];
|
||||
console.log('[DEBUG] Хлебные крошки:', crumbs);
|
||||
return crumbs;
|
||||
});
|
||||
|
||||
const pageMeta = computed(() => {
|
||||
const meta = {
|
||||
title: profile.data?.full_name || 'Профиль',
|
||||
description: profile.data?.headline || '',
|
||||
};
|
||||
console.log('[DEBUG] Мета-данные страницы:', meta);
|
||||
return meta;
|
||||
});
|
||||
|
||||
const displayName = computed(() => {
|
||||
if (!profile.data) {
|
||||
console.log('[DEBUG] displayName: profile.data не загружен');
|
||||
return 'Загрузка...';
|
||||
}
|
||||
const name = profile.data?.full_name || `${form.value.first_name || ''} ${form.value.last_name || ''}`.trim();
|
||||
console.log('[DEBUG] Отображаемое имя:', name);
|
||||
return name;
|
||||
});
|
||||
|
||||
const isSessionUser = () => {
|
||||
const sessionUser = $user.data?.username;
|
||||
const profileUser = effectiveUsername.value;
|
||||
const isSession = sessionUser === profileUser;
|
||||
console.log('[DEBUG] Проверка isSessionUser:', { sessionUser, profileUser, isSession });
|
||||
return isSession;
|
||||
};
|
||||
|
||||
function formattedDate(d) {
|
||||
if (!d) return '';
|
||||
try {
|
||||
return new Date(d).toLocaleDateString('ru-RU');
|
||||
} catch (e) {
|
||||
console.error('[DEBUG] Ошибка форматирования даты:', e, { date: d });
|
||||
return d;
|
||||
}
|
||||
}
|
||||
|
||||
function maskPrivate(val) {
|
||||
if (!val) return '-';
|
||||
if (val.includes('@')) {
|
||||
const parts = val.split('@');
|
||||
return parts[0].slice(0, 1) + '***@' + parts[1];
|
||||
}
|
||||
return val.slice(0, 3) + '***' + val.slice(-2);
|
||||
}
|
||||
|
||||
function formatTelegram(t) {
|
||||
if (!t) return '';
|
||||
if (t.startsWith('t.me/') || t.startsWith('https://t.me/')) return (t.startsWith('http') ? t : 'https://' + t);
|
||||
return 'https://t.me/' + t.replace(/^@/, '');
|
||||
}
|
||||
|
||||
function fillFormFromProfile() {
|
||||
console.log('[DEBUG] Заполнение формы:', {
|
||||
schoolProfile: schoolProfile.data,
|
||||
profile: profile.data,
|
||||
currentForm: JSON.stringify(form.value, null, 2),
|
||||
});
|
||||
form.value.first_name = schoolProfile.data?.first_name || profile.data?.first_name || '';
|
||||
form.value.last_name = schoolProfile.data?.last_name || profile.data?.last_name || '';
|
||||
form.value.middle_name = schoolProfile.data?.middle_name || '';
|
||||
form.value.birth_date = schoolProfile.data?.birth_date || '';
|
||||
form.value.phone = schoolProfile.data?.phone || '';
|
||||
form.value.email_private = schoolProfile.data?.email_private || '';
|
||||
form.value.telegram = schoolProfile.data?.telegram || '';
|
||||
form.value.school = schoolProfile.data?.school || '';
|
||||
form.value.education_level = schoolProfile.data?.education_level || '';
|
||||
form.value.major = schoolProfile.data?.major || '';
|
||||
form.value.program = schoolProfile.data?.program || '';
|
||||
form.value.graduation_year = schoolProfile.data?.graduation_year || '';
|
||||
form.value.experience = schoolProfile.data?.experience || '';
|
||||
form.value.achievement = schoolProfile.data?.achievement || '';
|
||||
form.value.about_me = schoolProfile.data?.about_me || '';
|
||||
console.log('[DEBUG] Форма после заполнения:', JSON.stringify(form.value, null, 2));
|
||||
}
|
||||
|
||||
|
||||
function toggleEdit() {
|
||||
editMode.value = !editMode.value;
|
||||
if (editMode.value) fillFormFromProfile();
|
||||
console.log('[DEBUG] Переключение режима редактирования:', { editMode: editMode.value });
|
||||
}
|
||||
|
||||
function validateExams(exams) {
|
||||
console.log('[DEBUG] Валидация exams:', { exams, validOptions: examOptions });
|
||||
return exams.every(exam => examOptions.includes(exam));
|
||||
}
|
||||
|
||||
function validateLearnSubjects(subjects) {
|
||||
console.log('[DEBUG] Валидация learn_subjects:', { subjects, validOptions: learnOptions });
|
||||
return subjects.every(subject => learnOptions.includes(subject));
|
||||
}
|
||||
|
||||
async function saveProfile() {
|
||||
console.log('[DEBUG] Сохранение профиля:', { form: form.value });
|
||||
saving.value = true;
|
||||
try {
|
||||
// Создаём копию данных формы
|
||||
const formData = { ...form.value };
|
||||
console.log('[DEBUG] Копия formData:', JSON.stringify(formData, null, 2));
|
||||
|
||||
// Обновление full_name в User, если нужно
|
||||
if (formData.first_name || formData.last_name) {
|
||||
const fullName = `${formData.first_name || ''} ${formData.last_name || ''}`.trim();
|
||||
console.log('[DEBUG] Обновление User.full_name:', { name: profile.data?.name, fullName });
|
||||
await createResource({
|
||||
url: 'frappe.client.set_value',
|
||||
params: {
|
||||
doctype: 'User',
|
||||
name: profile.data?.name,
|
||||
fieldname: 'full_name',
|
||||
value: fullName,
|
||||
},
|
||||
}).submit();
|
||||
}
|
||||
|
||||
// Получаем docname
|
||||
let docname = '';
|
||||
try {
|
||||
await schoolProfile.reload();
|
||||
console.log('[DEBUG] Schoolprofile:', { schoolProfile });
|
||||
docname = schoolProfile?.data?.name;
|
||||
console.log('[DEBUG] Выбранное имя документа:', docname);
|
||||
} catch (error) {
|
||||
console.log('[DEBUG] Ошибка загрузки schoolProfile, продолжаем с profile:', error.message);
|
||||
}
|
||||
|
||||
// Формируем payload из копии данных формы
|
||||
let payload = {
|
||||
doctype: 'Schoolchildren Profile',
|
||||
user: profile.data?.name,
|
||||
first_name: formData.first_name,
|
||||
last_name: formData.last_name,
|
||||
middle_name: formData.middle_name,
|
||||
birth_date: formData.birth_date,
|
||||
phone: formData.phone,
|
||||
email_private: formData.email_private,
|
||||
telegram: formData.telegram,
|
||||
school: formData.school || '',
|
||||
education_level: formData.education_level,
|
||||
major: formData.major || '',
|
||||
program: formData.program,
|
||||
graduation_year: formData.graduation_year,
|
||||
experience: formData.experience,
|
||||
achievement: formData.achievement,
|
||||
about_me: formData.about_me,
|
||||
last_updated: new Date().toISOString(),
|
||||
};
|
||||
console.log('[DEBUG] Сохранение Schoolchildren Profile (payload):', { docname, payload });
|
||||
|
||||
// Сохранение или создание документа
|
||||
if (docname) {
|
||||
await createResource({
|
||||
url: 'frappe.client.save',
|
||||
params: { doc: { ...schoolProfile.data, ...payload } },
|
||||
}).submit();
|
||||
} else {
|
||||
await createResource({
|
||||
url: 'frappe.client.insert',
|
||||
params: { doc: payload },
|
||||
}).submit();
|
||||
}
|
||||
|
||||
editMode.value = false;
|
||||
schoolProfileNotFound.value = false;
|
||||
if (window.frappe && window.frappe.msgprint) window.frappe.msgprint('Профиль сохранён');
|
||||
console.log('[DEBUG] Профиль успешно сохранён');
|
||||
} catch (e) {
|
||||
console.error('[DEBUG] Ошибка при сохранении профиля:', e);
|
||||
if (window.frappe && window.frappe.msgprint) window.frappe.msgprint({
|
||||
title: 'Ошибка',
|
||||
message: (e && e.message) || 'Ошибка при сохранении',
|
||||
indicator: 'red',
|
||||
});
|
||||
} finally {
|
||||
saving.value = false;
|
||||
}
|
||||
await schoolProfile.reload();
|
||||
}
|
||||
|
||||
const schoolQuery = ref('');
|
||||
const schoolResults = ref([]);
|
||||
|
||||
async function searchSchool(q) {
|
||||
if (!q) {
|
||||
schoolResults.value = [];
|
||||
return;
|
||||
}
|
||||
try {
|
||||
console.log('[DEBUG] Поиск школы:', { query: q });
|
||||
const res = await createResource({
|
||||
url: 'frappe.client.get_list',
|
||||
params: {
|
||||
doctype: 'Schools',
|
||||
fields: ['school', 'address'],
|
||||
filters: [['school', 'like', '%' + q + '%']],
|
||||
limit_page_length: 20,
|
||||
},
|
||||
}).submit();
|
||||
schoolResults.value = res || [];
|
||||
console.log('[DEBUG] Результаты поиска школы:', schoolResults.value);
|
||||
} catch (e) {
|
||||
schoolResults.value = [];
|
||||
console.error('[DEBUG] Ошибка поиска школы:', e);
|
||||
}
|
||||
}
|
||||
|
||||
const debouncedSearchSchool = debounce(() => searchSchool(schoolQuery.value), 300);
|
||||
|
||||
function selectSchool(s) {
|
||||
form.value.school = s.school;
|
||||
//form.value.school_name = s.school_name;
|
||||
schoolResults.value = [];
|
||||
schoolQuery.value = s.school;
|
||||
console.log('[DEBUG] Выбрана школа:', { school: s });
|
||||
console.log('[DEBUG] Форма после заполнения:', JSON.stringify(form.value, null, 2));
|
||||
}
|
||||
|
||||
const majorQuery = ref('');
|
||||
const majorResults = ref([]);
|
||||
|
||||
async function searchMajor(q) {
|
||||
if (!q) {
|
||||
majorResults.value = [];
|
||||
return;
|
||||
}
|
||||
try {
|
||||
console.log('[DEBUG] Поиск направления:', { query: q });
|
||||
const res = await createResource({
|
||||
url: 'frappe.client.get_list',
|
||||
params: {
|
||||
doctype: 'Majors',
|
||||
fields: ['code', 'major_name'],
|
||||
filters: [['major_name', 'like', '%' + q + '%']],
|
||||
limit_page_length: 20,
|
||||
},
|
||||
}).submit();
|
||||
majorResults.value = res || [];
|
||||
console.log('[DEBUG] Результаты поиска направления:', majorResults.value);
|
||||
} catch (e) {
|
||||
majorResults.value = [];
|
||||
console.error('[DEBUG] Ошибка поиска направления:', e);
|
||||
}
|
||||
}
|
||||
|
||||
const debouncedSearchMajor = debounce(() => searchMajor(majorQuery.value), 300);
|
||||
|
||||
function selectMajor(m) {
|
||||
form.value.major = m.major_name;
|
||||
//form.value.school_name = s.school_name;
|
||||
majorResults.value = [];
|
||||
majorQuery.value = m.major_name;
|
||||
console.log('[DEBUG] Выбрана школа:', { major: m });
|
||||
console.log('[DEBUG] Форма после заполнения:', JSON.stringify(form.value, null, 2));
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
console.log('[DEBUG] Компонент смонтирован:', {
|
||||
propsUsername: props.username,
|
||||
sessionUsername: $user.data?.username,
|
||||
user: user,
|
||||
$user: $user.data,
|
||||
});
|
||||
if ($user.data) {
|
||||
console.log('[DEBUG] Запуск profile.reload()');
|
||||
profile.reload();
|
||||
}
|
||||
});
|
||||
|
||||
watch(
|
||||
() => props.username,
|
||||
(newUsername, oldUsername) => {
|
||||
console.log('[DEBUG] Изменение props.username:', { old: oldUsername, new: newUsername });
|
||||
profile.reload();
|
||||
}
|
||||
);
|
||||
|
||||
watch(
|
||||
() => profile.data,
|
||||
(newData, oldData) => {
|
||||
console.log('[DEBUG] Изменение profile.data:', { old: oldData, new: newData });
|
||||
if (newData) {
|
||||
console.log('[DEBUG] Запуск schoolProfile.reload()');
|
||||
schoolProfile.reload();
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
watch(
|
||||
() => schoolProfile.data,
|
||||
(newData, oldData) => {
|
||||
console.log('[DEBUG] Изменение schoolProfile.data:', { old: oldData, new: newData });
|
||||
if (newData && !editMode.value && !schoolProfileNotFound.value) {
|
||||
console.log('[DEBUG] Заполнение формы из schoolProfile');
|
||||
fillFormFromProfile();
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
watch(
|
||||
() => effectiveUsername.value,
|
||||
(newUsername) => {
|
||||
console.log('[DEBUG] Изменение effectiveUsername для schoolProfile:', newUsername);
|
||||
schoolProfile.update({
|
||||
params: {
|
||||
doctype: 'Schoolchildren Profile',
|
||||
filters: { user: newUsername },
|
||||
},
|
||||
});
|
||||
}
|
||||
);
|
||||
</script>
|
||||
@@ -56,7 +56,7 @@
|
||||
<CourseInstructors :instructors="course.data.instructors" />
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="course.data.tags" class="flex my-4 w-fit">
|
||||
<div v-if="course.data.tags" class="flex flex-wrap gap-2 mt-3 mb-3 max-w-full">
|
||||
<Badge
|
||||
theme="gray"
|
||||
size="lg"
|
||||
@@ -144,7 +144,12 @@ watch(
|
||||
)
|
||||
|
||||
watch(course, () => {
|
||||
if (!isInstructor() && !course.data?.published && !course.data?.upcoming) {
|
||||
if (
|
||||
!isInstructor() &&
|
||||
!user.data?.is_moderator &&
|
||||
!course.data?.published &&
|
||||
!course.data?.upcoming
|
||||
) {
|
||||
router.push({
|
||||
name: 'Courses',
|
||||
})
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
</header>
|
||||
<div class="mt-5 mb-5">
|
||||
<div class="px-5 md:px-10 pb-5 mb-5 space-y-5 border-b">
|
||||
<div class="text-lg font-semibold mb-4">
|
||||
<div class="text-lg font-semibold mb-4 text-ink-gray-9">
|
||||
{{ __('Details') }}
|
||||
</div>
|
||||
<div class="grid grid-cols-1 md:grid-cols-2 gap-5">
|
||||
@@ -138,7 +138,7 @@
|
||||
</div>
|
||||
|
||||
<div class="px-5 md:px-10 pb-5 mb-5 space-y-5 border-b">
|
||||
<div class="text-lg font-semibold">
|
||||
<div class="text-lg font-semibold text-ink-gray-9">
|
||||
{{ __('Settings') }}
|
||||
</div>
|
||||
<div class="grid grid-cols-1 md:grid-cols-2 gap-5">
|
||||
@@ -178,7 +178,7 @@
|
||||
</div>
|
||||
|
||||
<div class="px-5 md:px-10 pb-5 mb-5 space-y-5 border-b">
|
||||
<div class="text-lg font-semibold">
|
||||
<div class="text-lg font-semibold text-ink-gray-9">
|
||||
{{ __('About the Course') }}
|
||||
</div>
|
||||
<FormControl
|
||||
@@ -234,7 +234,7 @@
|
||||
</div>
|
||||
|
||||
<div class="px-5 md:px-10 pb-5 space-y-5 border-b">
|
||||
<div class="text-lg font-semibold mt-5">
|
||||
<div class="text-lg font-semibold mt-5 text-ink-gray-9">
|
||||
{{ __('Pricing and Certification') }}
|
||||
</div>
|
||||
<div class="grid grid-cols-1 md:grid-cols-3 gap-5">
|
||||
@@ -260,29 +260,41 @@
|
||||
v-if="course.paid_course || course.paid_certificate"
|
||||
v-model="course.course_price"
|
||||
:label="__('Amount')"
|
||||
:required="course.paid_course || course.paid_certificate"
|
||||
/>
|
||||
<Link
|
||||
v-if="course.paid_certificate"
|
||||
doctype="Course Evaluator"
|
||||
v-model="course.evaluator"
|
||||
:label="__('Evaluator')"
|
||||
:required="course.paid_certificate"
|
||||
:onCreate="
|
||||
(value, close) => openSettings('Evaluators', close)
|
||||
"
|
||||
/>
|
||||
</div>
|
||||
<Link
|
||||
v-if="course.paid_course || course.paid_certificate"
|
||||
doctype="Currency"
|
||||
v-model="course.currency"
|
||||
:filters="{ enabled: 1 }"
|
||||
:label="__('Currency')"
|
||||
/>
|
||||
<div class="space-y-5">
|
||||
<Link
|
||||
v-if="course.paid_course || course.paid_certificate"
|
||||
doctype="Currency"
|
||||
v-model="course.currency"
|
||||
:filters="{ enabled: 1 }"
|
||||
:label="__('Currency')"
|
||||
:required="course.paid_course || course.paid_certificate"
|
||||
/>
|
||||
<FormControl
|
||||
v-if="course.paid_certificate"
|
||||
v-model="course.timezone"
|
||||
:label="__('Timezone')"
|
||||
:required="course.paid_certificate"
|
||||
:placeholder="__('e.g. IST, UTC, GMT...')"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="px-5 md:px-10 pb-5 space-y-5">
|
||||
<div class="text-lg font-semibold mt-5">
|
||||
<div class="text-lg font-semibold mt-5 text-ink-gray-9">
|
||||
{{ __('Meta Tags') }}
|
||||
</div>
|
||||
<div class="space-y-5">
|
||||
@@ -317,7 +329,6 @@
|
||||
<script setup>
|
||||
import {
|
||||
Breadcrumbs,
|
||||
call,
|
||||
TextEditor,
|
||||
Button,
|
||||
createResource,
|
||||
@@ -388,6 +399,7 @@ const course = reactive({
|
||||
course_price: '',
|
||||
currency: '',
|
||||
evaluator: '',
|
||||
timezone: '',
|
||||
})
|
||||
|
||||
const meta = reactive({
|
||||
|
||||
@@ -134,7 +134,7 @@ const courses = createListResource({
|
||||
doctype: 'LMS Course',
|
||||
url: 'lms.lms.utils.get_courses',
|
||||
cache: ['courses', user.data?.name],
|
||||
pageLength: pageLength.value,
|
||||
//pageLength: pageLength.value,
|
||||
start: start.value,
|
||||
onSuccess(data) {
|
||||
setCategories(data)
|
||||
@@ -229,7 +229,7 @@ const updateTabFilter = () => {
|
||||
delete filters.value['published_on']
|
||||
delete filters.value['upcoming']
|
||||
|
||||
if (currentTab.value == 'Enrolled' && user.data?.is_student) {
|
||||
if ((currentTab.value == 'Enrolled' && user.data?.is_student) || (currentTab.value == 'Зачислен' && user.data?.is_student)) {
|
||||
filters.value['enrolled'] = 1
|
||||
delete filters.value['published']
|
||||
} else {
|
||||
@@ -240,24 +240,25 @@ const updateTabFilter = () => {
|
||||
filters.value['published'] = 1
|
||||
filters.value['upcoming'] = 0
|
||||
filters.value['live'] = 1
|
||||
} else if (currentTab.value == 'Upcoming') {
|
||||
} else if (currentTab.value == 'Upcoming' || currentTab.value == 'Предстоящие') {
|
||||
filters.value['upcoming'] = 1
|
||||
} else if (currentTab.value == 'New') {
|
||||
filters.value['published'] = 1
|
||||
} else if (currentTab.value == 'New' || currentTab.value == 'Новый') {
|
||||
filters.value['published'] = 1
|
||||
filters.value['published_on'] = [
|
||||
'>=',
|
||||
dayjs().add(-3, 'month').format('YYYY-MM-DD'),
|
||||
]
|
||||
} else if (currentTab.value == 'Created') {
|
||||
} else if (currentTab.value == 'Created' || currentTab.value == 'Создано') {
|
||||
filters.value['created'] = 1
|
||||
} else if (currentTab.value == 'Unpublished') {
|
||||
} else if (currentTab.value == 'Unpublished' || currentTab.value == 'Неопубликовано') {
|
||||
filters.value['published'] = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const updateStudentFilter = () => {
|
||||
if (!user.data || (user.data?.is_student && currentTab.value != 'Enrolled')) {
|
||||
if (!user.data || (user.data?.is_student && currentTab.value != 'Enrolled') || (currentTab.value != 'Зачислен' && user.data?.is_student)) {
|
||||
filters.value['published'] = 1
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<div>
|
||||
<div v-if="createdCourses.data?.length" class="mt-10">
|
||||
<div class="flex items-center justify-between mb-3">
|
||||
<span class="font-semibold text-lg">
|
||||
<span class="font-semibold text-lg text-ink-gray-9">
|
||||
{{ __('Courses Created') }}
|
||||
</span>
|
||||
<router-link
|
||||
|
||||
@@ -5,27 +5,28 @@
|
||||
<Breadcrumbs :items="[{ label: __('Home'), route: { name: 'Home' } }]" />
|
||||
</header> -->
|
||||
<div class="w-full px-5 pt-5 pb-10">
|
||||
<div class="flex items-center justify-between">
|
||||
<div class="space-y-2">
|
||||
<div class="space-y-2">
|
||||
<div class="flex items-center justify-between">
|
||||
<div class="text-xl font-bold text-ink-gray-9">
|
||||
{{ __('Hey') }}, {{ user.data?.full_name }} 👋
|
||||
</div>
|
||||
<div class="text-lg text-ink-gray-6">
|
||||
{{ subtitle }}
|
||||
<div>
|
||||
<TabButtons v-if="isAdmin" v-model="currentTab" :buttons="tabs" />
|
||||
<div
|
||||
v-else
|
||||
@click="showStreakModal = true"
|
||||
class="bg-surface-amber-2 px-2 py-1 rounded-md cursor-pointer"
|
||||
>
|
||||
<span> 🔥 </span>
|
||||
<span class="text-ink-gray-9">
|
||||
{{ streakInfo.data?.current_streak }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<TabButtons v-if="isAdmin" v-model="currentTab" :buttons="tabs" />
|
||||
<div
|
||||
v-else
|
||||
@click="showStreakModal = true"
|
||||
class="bg-surface-amber-2 px-2 py-1 rounded-md cursor-pointer"
|
||||
>
|
||||
<span> 🔥 </span>
|
||||
<span>
|
||||
{{ streakInfo.data?.current_streak }}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="text-lg text-ink-gray-6 leading-6">
|
||||
{{ subtitle }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
}}
|
||||
{{ __(' you are on a') }}
|
||||
</div>
|
||||
<div class="font-semibold text-xl">
|
||||
<div class="font-semibold text-xl text-ink-gray-9">
|
||||
{{ streakInfo.data?.current_streak }} {{ __('day streak') }}
|
||||
</div>
|
||||
</div>
|
||||
@@ -33,7 +33,7 @@
|
||||
<div class="text-ink-gray-6">
|
||||
{{ __('Current Streak') }}
|
||||
</div>
|
||||
<div class="font-semibold text-lg">
|
||||
<div class="font-semibold text-lg text-ink-gray-9">
|
||||
{{ streakInfo.data?.current_streak }} {{ __('days') }}
|
||||
</div>
|
||||
</div>
|
||||
@@ -41,7 +41,7 @@
|
||||
<div class="text-ink-gray-6">
|
||||
{{ __('Longest Streak') }}
|
||||
</div>
|
||||
<div class="font-semibold text-lg">
|
||||
<div class="font-semibold text-lg text-ink-gray-9">
|
||||
{{ streakInfo.data?.longest_streak }} {{ __('days') }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
</header>
|
||||
<div class="py-5">
|
||||
<div class="container border-b mb-4 pb-5">
|
||||
<div class="text-lg font-semibold mb-4">
|
||||
<div class="text-lg font-semibold mb-4 text-ink-gray-9">
|
||||
{{ __('Job Details') }}
|
||||
</div>
|
||||
<div class="grid grid-cols-2 gap-5">
|
||||
@@ -59,7 +59,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="container border-b mb-4 pb-5">
|
||||
<div class="text-lg font-semibold mb-4">
|
||||
<div class="text-lg font-semibold mb-4 text-ink-gray-9">
|
||||
{{ __('Company Details') }}
|
||||
</div>
|
||||
<div class="grid grid-cols-2 gap-5">
|
||||
@@ -158,7 +158,7 @@ import { computed, onMounted, reactive, inject } from 'vue'
|
||||
import { FileText, X } from 'lucide-vue-next'
|
||||
import { sessionStore } from '@/stores/session'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { getFileSize, validateFile } from '@/utils'
|
||||
import { escapeHTML, getFileSize, validateFile } from '@/utils'
|
||||
|
||||
const user = inject('$user')
|
||||
const router = useRouter()
|
||||
@@ -248,6 +248,7 @@ onMounted(() => {
|
||||
})
|
||||
|
||||
const saveJob = () => {
|
||||
validateJobFields()
|
||||
if (jobDetail.data) {
|
||||
editJobDetails()
|
||||
} else {
|
||||
@@ -293,6 +294,14 @@ const editJobDetails = () => {
|
||||
)
|
||||
}
|
||||
|
||||
const validateJobFields = () => {
|
||||
Object.keys(job).forEach((key) => {
|
||||
if (key != 'description' && typeof job[key] === 'string') {
|
||||
job[key] = escapeHTML(job[key])
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const saveImage = (file) => {
|
||||
job.image = file
|
||||
}
|
||||
|
||||
718
frontend/src/pages/LeaderBoard.vue
Normal file
718
frontend/src/pages/LeaderBoard.vue
Normal file
@@ -0,0 +1,718 @@
|
||||
<template>
|
||||
<div class="lms-page-container">
|
||||
|
||||
<!-- HEADER & TABS -->
|
||||
<div class="lms-page-header">
|
||||
<h1 class="page-title">{{ __('Таблица лидеров') }}</h1>
|
||||
|
||||
<!-- Сегментированные вкладки (Apple / Frappe style) -->
|
||||
<div class="lms-tabs-container">
|
||||
<button
|
||||
v-for="group in roleGroups"
|
||||
:key="group.role"
|
||||
@click="activeGroup = group.role"
|
||||
class="lms-tab-btn"
|
||||
:class="{ 'active': activeGroup === group.role }"
|
||||
>
|
||||
{{ group.label }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- MAIN GRID LAYOUT -->
|
||||
<div class="lms-layout-grid">
|
||||
|
||||
<!-- LEFT COLUMN: SUMMARY CARDS -->
|
||||
<div class="lms-sidebar">
|
||||
|
||||
<!-- Карточка: Ваш результат -->
|
||||
<div class="lms-card my-result-card">
|
||||
<div class="lms-card-body">
|
||||
<div class="card-header">
|
||||
<span class="card-subtitle">{{ __('Ваш результат') }}</span>
|
||||
<div v-if="currentUserPosition === 1" class="icon-gold"><i class="fas fa-crown"></i></div>
|
||||
<div v-else-if="currentUserPosition === 2" class="icon-silver"><i class="fas fa-medal"></i></div>
|
||||
<div v-else-if="currentUserPosition === 3" class="icon-bronze"><i class="fas fa-medal"></i></div>
|
||||
<div v-else class="icon-gray"><i class="fas fa-user"></i></div>
|
||||
</div>
|
||||
|
||||
<h2 class="card-title truncate-text" :title="currentUser.full_name">{{ currentUser.full_name || __('Вы') }}</h2>
|
||||
|
||||
<div class="card-stats">
|
||||
<div class="stat-block">
|
||||
<span class="stat-value">{{ currentUserPosition !== '-' ? currentUserPosition : '-' }}</span>
|
||||
<span class="stat-label">{{ __('Место') }}</span>
|
||||
</div>
|
||||
<div class="stat-block">
|
||||
<span class="stat-value text-primary">{{ currentUserPoints }}</span>
|
||||
<span class="stat-label">{{ __('Очки') }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-footer">
|
||||
<p v-if="pointsToNext > 0 && currentUserPosition !== '-'" class="text-muted">
|
||||
{{ __('До') }} {{ nextPosition }}-{{ __('го места не хватает') }} <strong style="color: #111827;">{{ pointsToNext }}</strong> {{ __('очков') }}
|
||||
</p>
|
||||
<p v-else-if="currentUserPosition === 1" class="text-success">
|
||||
<i class="fas fa-check-circle"></i> {{ __('Вы на первом месте!') }}
|
||||
</p>
|
||||
<p v-else class="text-muted">{{ __('Выполняйте задания, чтобы попасть в топ') }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Карточка: Лидер группы -->
|
||||
<div class="lms-card leader-card">
|
||||
<div class="lms-card-body">
|
||||
<div class="card-header">
|
||||
<span class="card-subtitle">{{ __('Лидер группы') }}</span>
|
||||
<div class="icon-gold"><i class="fas fa-trophy"></i></div>
|
||||
</div>
|
||||
|
||||
<template v-if="topUserInGroup">
|
||||
<h2 class="card-title truncate-text" :title="topUserInGroup.full_name">
|
||||
<a :href="`/lms/user/${topUserInGroup.username}`" class="card-link">
|
||||
{{ topUserInGroup.full_name }}
|
||||
</a>
|
||||
</h2>
|
||||
|
||||
<div class="card-stats">
|
||||
<div class="stat-block">
|
||||
<span class="stat-value">1</span>
|
||||
<span class="stat-label">{{ __('Место') }}</span>
|
||||
</div>
|
||||
<div class="stat-block">
|
||||
<span class="stat-value text-gold">{{ topUserInGroup.points }}</span>
|
||||
<span class="stat-label">{{ __('Очки') }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-footer">
|
||||
<p class="text-muted">{{ __('Лучший результат среди категории') }} «{{ activeGroupLabel }}»</p>
|
||||
</div>
|
||||
</template>
|
||||
<template v-else>
|
||||
<h2 class="card-title text-muted mt-2">{{ __('Пока нет лидера') }}</h2>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- RIGHT COLUMN: LEADERBOARD TABLE -->
|
||||
<div class="lms-main-content">
|
||||
<div class="lms-card table-card">
|
||||
<div class="lms-table-header">
|
||||
<h3>{{ activeGroupLabel }} <span class="count-badge">{{ currentLeaderboard.length }}</span></h3>
|
||||
</div>
|
||||
|
||||
<div class="table-responsive">
|
||||
<table v-if="currentLeaderboard.length > 0" class="lms-table">
|
||||
<!-- FIX: Fixed table layout to prevent jumping when tabs change -->
|
||||
<colgroup>
|
||||
<col style="width: 70px;">
|
||||
<col style="width: auto;">
|
||||
<col style="width: 130px;">
|
||||
<col style="width: 130px;">
|
||||
<col v-if="activeGroup === 'LMS Schoolchild'" style="width: 150px;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="text-align: center;">#</th>
|
||||
<th>{{ __('Пользователь') }}</th>
|
||||
<th style="text-align: center;">{{ __('Активность') }}</th>
|
||||
<th style="text-align: center;">{{ __('Всего') }}</th>
|
||||
<th v-if="activeGroup === 'LMS Schoolchild'" style="text-align: center;">{{ __('Баллы МПГУ') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr
|
||||
v-for="(user, index) in currentLeaderboard"
|
||||
:key="user.user"
|
||||
:class="{'is-current-user': user.user === currentUser.name}"
|
||||
>
|
||||
<!-- Ранг -->
|
||||
<td style="text-align: center; font-weight: 600; color: #4b5563;">
|
||||
<span v-if="index === 0" title="1 Место" class="medal-emoji">🥇</span>
|
||||
<span v-else-if="index === 1" title="2 Место" class="medal-emoji">🥈</span>
|
||||
<span v-else-if="index === 2" title="3 Место" class="medal-emoji">🥉</span>
|
||||
<span v-else>{{ index + 1 }}</span>
|
||||
</td>
|
||||
|
||||
<!-- Пользователь -->
|
||||
<td>
|
||||
<div class="user-cell">
|
||||
<div class="user-avatar">{{ getUserInitial(user) }}</div>
|
||||
<a :href="`/lms/user/${user.username}`" class="user-link truncate-text" :title="user.full_name">
|
||||
{{ user.full_name }}
|
||||
</a>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<!-- Очки -->
|
||||
<td style="text-align: center; font-weight: 600; color: #111827;">
|
||||
{{ user.points }}
|
||||
</td>
|
||||
<td style="text-align: center; font-weight: 600; color: #111827;">
|
||||
{{ user.points }}
|
||||
</td>
|
||||
|
||||
<!-- Бонусы МПГУ -->
|
||||
<td v-if="activeGroup === 'LMS Schoolchild'" style="text-align: center;">
|
||||
<span v-if="user.bonus > 0" class="bonus-badge">
|
||||
+{{ user.bonus }}
|
||||
</span>
|
||||
<span v-else class="text-muted">-</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<div v-else class="lms-empty-state">
|
||||
<i class="fas fa-ghost empty-icon"></i>
|
||||
<p>{{ __('В этой категории пока нет участников.') }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { computed, onMounted, ref, watch } from 'vue'
|
||||
import { usersStore } from '@/stores/user'
|
||||
import { createResource } from 'frappe-ui'
|
||||
|
||||
const store = usersStore()
|
||||
const { userResource, allUsers } = store
|
||||
|
||||
const roleGroups = [
|
||||
{ role: 'LMS Student', label: __('Студенты') },
|
||||
{ role: 'Course Creator', label: __('Преподаватели') },
|
||||
{ role: 'LMS Schoolchild', label: __('Школьники') }
|
||||
]
|
||||
|
||||
function getUserRoleGroup(userRoles) {
|
||||
if (!userRoles) return 'LMS Student'
|
||||
const validRole = userRoles.find(role =>
|
||||
roleGroups.some(group => group.role === role)
|
||||
)
|
||||
return validRole || 'LMS Student'
|
||||
}
|
||||
|
||||
const activeGroup = ref('LMS Student')
|
||||
|
||||
const usersList = computed(() => allUsers.data || [])
|
||||
|
||||
const logsResource = createResource({
|
||||
url: "frappe.client.get_list",
|
||||
params: {
|
||||
doctype: "Energy Point Log",
|
||||
fields: ["user", "points"],
|
||||
limit_page_length: 10000
|
||||
},
|
||||
auto: false,
|
||||
onError: (err) => console.error("Error loading Energy Point Log:", err)
|
||||
})
|
||||
|
||||
const leaderboard = ref([])
|
||||
|
||||
const currentUser = computed(() => {
|
||||
return userResource.data || {}
|
||||
})
|
||||
|
||||
const currentUserInitial = computed(() => {
|
||||
if (currentUser.value.full_name) {
|
||||
return currentUser.value.full_name.charAt(0).toUpperCase()
|
||||
}
|
||||
return currentUser.value.name?.charAt(0).toUpperCase() || 'U'
|
||||
})
|
||||
|
||||
function getUserInitial(user) {
|
||||
return user.full_name?.charAt(0).toUpperCase() || user.username?.charAt(0).toUpperCase() || 'U'
|
||||
}
|
||||
|
||||
watch(
|
||||
[() => logsResource.data, () => allUsers.data],
|
||||
() => {
|
||||
if (logsResource.data && allUsers.data) {
|
||||
calculateLeaderboard()
|
||||
}
|
||||
},
|
||||
{ deep: true }
|
||||
)
|
||||
|
||||
watch([currentUser, usersList], () => {
|
||||
if (currentUser.value.roles && usersList.value.length > 0) {
|
||||
const userGroup = getUserRoleGroup(currentUser.value.roles)
|
||||
activeGroup.value = userGroup
|
||||
}
|
||||
})
|
||||
|
||||
const activeGroupLabel = computed(() => {
|
||||
const group = roleGroups.find(g => g.role === activeGroup.value)
|
||||
return group ? group.label : ''
|
||||
})
|
||||
|
||||
const currentLeaderboard = computed(() => {
|
||||
return leaderboard.value
|
||||
.filter(user => user.roles.includes(activeGroup.value))
|
||||
.slice(0, 50)
|
||||
})
|
||||
|
||||
const topUserInGroup = computed(() => {
|
||||
return currentLeaderboard.value[0]
|
||||
})
|
||||
|
||||
const currentUserPosition = computed(() => {
|
||||
const userInLeaderboard = currentLeaderboard.value.findIndex(
|
||||
user => user.user === currentUser.value.name
|
||||
)
|
||||
return userInLeaderboard !== -1 ? userInLeaderboard + 1 : '-'
|
||||
})
|
||||
|
||||
const currentUserPoints = computed(() => {
|
||||
const userEntry = leaderboard.value.find(user => user.user === currentUser.value.name)
|
||||
return userEntry ? userEntry.points : 0
|
||||
})
|
||||
|
||||
const pointsToNext = computed(() => {
|
||||
const userIndex = currentLeaderboard.value.findIndex(
|
||||
user => user.user === currentUser.value.name
|
||||
)
|
||||
if (userIndex === -1 || userIndex === 0) return 0
|
||||
const currentPoints = currentLeaderboard.value[userIndex].points
|
||||
const nextUserPoints = currentLeaderboard.value[userIndex - 1].points
|
||||
return nextUserPoints - currentPoints + 1
|
||||
})
|
||||
|
||||
const nextPosition = computed(() => {
|
||||
const userIndex = currentLeaderboard.value.findIndex(
|
||||
user => user.user === currentUser.value.name
|
||||
)
|
||||
return userIndex > 0 ? userIndex : 1
|
||||
})
|
||||
|
||||
function calculateLeaderboard() {
|
||||
if (!logsResource.data || !usersList.value) return
|
||||
|
||||
const pointsMap = {}
|
||||
|
||||
logsResource.data.forEach(log => {
|
||||
if (!pointsMap[log.user]) pointsMap[log.user] = 0
|
||||
pointsMap[log.user] += log.points
|
||||
})
|
||||
|
||||
leaderboard.value = Object.keys(pointsMap)
|
||||
.map(user => {
|
||||
const u = usersList.value.find(x => x.name === user)
|
||||
if (!u) return null
|
||||
|
||||
const hasValidRole = u.roles && u.roles.some(role =>
|
||||
roleGroups.some(group => group.role === role)
|
||||
)
|
||||
|
||||
if (!hasValidRole) return null
|
||||
if (pointsMap[user] < 0) return null
|
||||
|
||||
const isSchoolchild = u.roles.includes('LMS Schoolchild')
|
||||
const bonus = isSchoolchild ? Math.min(Math.floor(pointsMap[user] / 100), 10) : 0
|
||||
|
||||
return {
|
||||
user,
|
||||
points: pointsMap[user],
|
||||
full_name: u.full_name,
|
||||
username: u.username,
|
||||
roles: u.roles || [],
|
||||
bonus: bonus,
|
||||
isSchoolchild: isSchoolchild
|
||||
}
|
||||
})
|
||||
.filter(user => user !== null)
|
||||
.sort((a, b) => b.points - a.points)
|
||||
}
|
||||
|
||||
onMounted(async () => {
|
||||
await allUsers.reload()
|
||||
await logsResource.reload()
|
||||
calculateLeaderboard()
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
/* ============================================
|
||||
ДИЗАЙН В СТИЛЕ FRAPPE LMS
|
||||
============================================ */
|
||||
|
||||
.lms-page-container {
|
||||
padding: 32px;
|
||||
max-width: 1400px;
|
||||
margin: 0 auto;
|
||||
font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
||||
color: #111827;
|
||||
}
|
||||
|
||||
/* === HEADER & TABS === */
|
||||
.lms-page-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 32px;
|
||||
flex-wrap: wrap;
|
||||
gap: 20px;
|
||||
}
|
||||
|
||||
.page-title {
|
||||
font-size: 28px;
|
||||
font-weight: 700;
|
||||
margin: 0;
|
||||
color: #111827;
|
||||
letter-spacing: -0.02em;
|
||||
}
|
||||
|
||||
.lms-tabs-container {
|
||||
display: inline-flex;
|
||||
background-color: #f3f4f6;
|
||||
padding: 4px;
|
||||
border-radius: 8px;
|
||||
border: 1px solid #e5e7eb;
|
||||
}
|
||||
|
||||
.lms-tab-btn {
|
||||
background: transparent;
|
||||
border: none;
|
||||
color: #6b7280;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
padding: 8px 20px;
|
||||
border-radius: 6px;
|
||||
cursor: pointer;
|
||||
transition: all 0.2s ease;
|
||||
}
|
||||
|
||||
.lms-tab-btn:hover {
|
||||
color: #374151;
|
||||
}
|
||||
|
||||
.lms-tab-btn.active {
|
||||
background: #ffffff;
|
||||
color: #111827;
|
||||
font-weight: 600;
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
/* === MAIN GRID LAYOUT === */
|
||||
.lms-layout-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 340px 1fr;
|
||||
gap: 24px;
|
||||
align-items: start;
|
||||
}
|
||||
|
||||
.lms-sidebar {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 24px;
|
||||
}
|
||||
|
||||
/* === CARDS === */
|
||||
.lms-card {
|
||||
background: #ffffff;
|
||||
border: 1px solid #e5e7eb;
|
||||
border-radius: 12px;
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.lms-card-body {
|
||||
padding: 24px;
|
||||
}
|
||||
|
||||
.card-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.card-subtitle {
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
color: #6b7280;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.05em;
|
||||
}
|
||||
|
||||
.icon-gold { color: #f59e0b; font-size: 1.4rem; }
|
||||
.icon-silver { color: #9ca3af; font-size: 1.4rem; }
|
||||
.icon-bronze { color: #b45309; font-size: 1.4rem; }
|
||||
.icon-gray { color: #d1d5db; font-size: 1.4rem; }
|
||||
|
||||
.card-title {
|
||||
font-size: 20px;
|
||||
font-weight: 700;
|
||||
margin: 0 0 24px 0;
|
||||
color: #111827;
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
.card-link {
|
||||
text-decoration: none;
|
||||
color: #111827;
|
||||
transition: color 0.2s;
|
||||
}
|
||||
.card-link:hover { color: #00a9a6; }
|
||||
|
||||
.card-stats {
|
||||
display: flex;
|
||||
gap: 32px;
|
||||
margin-bottom: 20px;
|
||||
border-bottom: 1px solid #f3f4f6;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
.stat-block {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.stat-value {
|
||||
font-size: 28px;
|
||||
font-weight: 800;
|
||||
line-height: 1;
|
||||
color: #111827;
|
||||
}
|
||||
|
||||
.stat-label {
|
||||
font-size: 12px;
|
||||
color: #6b7280;
|
||||
margin-top: 8px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.text-primary { color: #00a9a6; }
|
||||
.text-gold { color: #f59e0b; }
|
||||
.text-muted { color: #6b7280; font-size: 13px; margin: 0; line-height: 1.5; }
|
||||
.text-success { color: #059669; font-size: 13px; margin: 0; font-weight: 600; display: flex; align-items: center; gap: 6px; }
|
||||
|
||||
.card-footer {
|
||||
min-height: 20px;
|
||||
}
|
||||
|
||||
/* === TABLE === */
|
||||
.table-card {
|
||||
min-height: 500px;
|
||||
}
|
||||
|
||||
.lms-table-header {
|
||||
padding: 20px 24px;
|
||||
background: #ffffff;
|
||||
border-bottom: 1px solid #e5e7eb;
|
||||
}
|
||||
|
||||
.lms-table-header h3 {
|
||||
margin: 0;
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
color: #111827;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.count-badge {
|
||||
background: #f3f4f6;
|
||||
color: #4b5563;
|
||||
padding: 2px 10px;
|
||||
border-radius: 20px;
|
||||
font-size: 12px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
/* --- FIX: Настройки скролла для длинной таблицы --- */
|
||||
.table-responsive {
|
||||
overflow-x: auto;
|
||||
overflow-y: auto;
|
||||
max-height: 650px; /* Ограничиваем высоту, чтобы таблица не уезжала вниз */
|
||||
}
|
||||
|
||||
/* Кастомный красивый скроллбар */
|
||||
.table-responsive::-webkit-scrollbar {
|
||||
width: 6px;
|
||||
height: 6px;
|
||||
}
|
||||
.table-responsive::-webkit-scrollbar-track {
|
||||
background: transparent;
|
||||
}
|
||||
.table-responsive::-webkit-scrollbar-thumb {
|
||||
background-color: #d1d5db;
|
||||
border-radius: 10px;
|
||||
}
|
||||
.table-responsive::-webkit-scrollbar-thumb:hover {
|
||||
background-color: #9ca3af;
|
||||
}
|
||||
|
||||
.lms-table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
text-align: left;
|
||||
font-size: 14px;
|
||||
table-layout: fixed;
|
||||
}
|
||||
|
||||
.lms-table th {
|
||||
background: #f9fafb;
|
||||
color: #4b5563;
|
||||
font-weight: 500;
|
||||
font-size: 13px;
|
||||
padding: 14px 24px;
|
||||
/* Заменяем border-bottom на box-shadow для sticky, чтобы не было просветов */
|
||||
box-shadow: inset 0 -1px 0 #e5e7eb;
|
||||
white-space: nowrap;
|
||||
/* Делаем шапку прилипающей */
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
.lms-table td {
|
||||
padding: 16px 24px;
|
||||
border-bottom: 1px solid #e5e7eb;
|
||||
color: #374151;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.lms-table tr:last-child td {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.lms-table tr:hover {
|
||||
background-color: #f9fafb;
|
||||
}
|
||||
|
||||
.lms-table tr.is-current-user {
|
||||
background-color: #f0fdfa;
|
||||
}
|
||||
.lms-table tr.is-current-user td {
|
||||
border-bottom-color: #ccfbf1;
|
||||
}
|
||||
|
||||
.medal-emoji {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.user-cell {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 14px;
|
||||
}
|
||||
|
||||
.user-avatar {
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
background: #e5e7eb;
|
||||
color: #4b5563;
|
||||
border-radius: 50%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-weight: 600;
|
||||
font-size: 13px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.is-current-user .user-avatar {
|
||||
background: #00a9a6;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.user-link {
|
||||
color: #111827;
|
||||
text-decoration: none;
|
||||
font-weight: 600;
|
||||
}
|
||||
.user-link:hover {
|
||||
color: #00a9a6;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.truncate-text {
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.bonus-badge {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
background: #ecfdf5;
|
||||
color: #059669;
|
||||
padding: 4px 10px;
|
||||
border-radius: 6px;
|
||||
font-weight: 600;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.lms-empty-state {
|
||||
padding: 60px 20px;
|
||||
text-align: center;
|
||||
color: #6b7280;
|
||||
font-size: 15px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
gap: 16px;
|
||||
}
|
||||
|
||||
.empty-icon {
|
||||
font-size: 32px;
|
||||
color: #d1d5db;
|
||||
}
|
||||
|
||||
/* === RESPONSIVE === */
|
||||
@media (max-width: 1024px) {
|
||||
.lms-layout-grid {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.lms-sidebar {
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.lms-card {
|
||||
flex: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.lms-page-container {
|
||||
padding: 16px;
|
||||
}
|
||||
|
||||
.lms-sidebar {
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.lms-tabs-container {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.lms-tab-btn {
|
||||
flex: 1;
|
||||
text-align: center;
|
||||
padding: 8px 12px;
|
||||
}
|
||||
|
||||
.lms-table th, .lms-table td {
|
||||
padding: 12px 16px;
|
||||
}
|
||||
|
||||
/* Немного уменьшим высоту на мобилках */
|
||||
.table-responsive {
|
||||
max-height: 500px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -258,6 +258,7 @@
|
||||
v-if="lesson.data?.body"
|
||||
:content="lesson.data.body"
|
||||
:youtube="lesson.data.youtube"
|
||||
:rutube="lesson.data.rutube"
|
||||
:quizId="lesson.data.quiz_id"
|
||||
/>
|
||||
</div>
|
||||
@@ -733,7 +734,7 @@ const updateVideoTime = (video) => {
|
||||
const startTimer = () => {
|
||||
let timerInterval = setInterval(() => {
|
||||
timer.value++
|
||||
if (timer.value == 30) {
|
||||
if (timer.value == 5) {
|
||||
clearInterval(timerInterval)
|
||||
markProgress()
|
||||
}
|
||||
|
||||
@@ -18,14 +18,14 @@
|
||||
<div class="w-5/6 mx-auto">
|
||||
<FormControl
|
||||
v-model="lesson.title"
|
||||
label="Title"
|
||||
:label="__('Title')"
|
||||
class="mb-4"
|
||||
:required="true"
|
||||
/>
|
||||
<FormControl
|
||||
v-model="lesson.include_in_preview"
|
||||
type="checkbox"
|
||||
label="Include in Preview"
|
||||
:label="__('Include in Preview')"
|
||||
/>
|
||||
</div>
|
||||
<div class="border-t mt-4">
|
||||
@@ -142,7 +142,6 @@ const renderEditor = (holder) => {
|
||||
return new EditorJS({
|
||||
holder: holder,
|
||||
tools: getEditorTools(true),
|
||||
autofocus: true,
|
||||
defaultBlock: 'markdown',
|
||||
onChange: async (api, event) => {
|
||||
enablePlyr()
|
||||
@@ -273,6 +272,7 @@ const lessonReference = createResource({
|
||||
|
||||
const convertToJSON = (lessonData) => {
|
||||
let blocks = []
|
||||
|
||||
if (lessonData.youtube) {
|
||||
let youtubeID = lessonData.youtube.split('/').pop()
|
||||
blocks.push({
|
||||
@@ -283,6 +283,20 @@ const convertToJSON = (lessonData) => {
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
if (lessonData.rutube) {
|
||||
let rutubeID = lessonData.rutube.includes('rutube.ru')
|
||||
? lessonData.rutube.split('/').pop()
|
||||
: lessonData.rutube;
|
||||
blocks.push({
|
||||
type: 'embed',
|
||||
data: {
|
||||
service: 'rutube',
|
||||
embed: `https://rutube.ru/play/embed/${rutubeID}`,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
lessonData.body.split('\n').forEach((block) => {
|
||||
if (block.includes('{{ YouTubeVideo')) {
|
||||
let youtubeID = block.match(/\(["']([^"']+?)["']\)/)[1]
|
||||
@@ -295,6 +309,18 @@ const convertToJSON = (lessonData) => {
|
||||
embed: youtubeID,
|
||||
},
|
||||
})
|
||||
} else if (block.includes('{{ RutubeVideo')) {
|
||||
let rutubeID = block.match(/\(["']([^"']+?)["']\)/)[1];
|
||||
if (rutubeID.includes('rutube.ru')) {
|
||||
rutubeID = rutubeID.split('/').pop();
|
||||
}
|
||||
blocks.push({
|
||||
type: 'embed',
|
||||
data: {
|
||||
service: 'rutube',
|
||||
embed: `https://rutube.ru/play/embed/${rutubeID}`,
|
||||
},
|
||||
});
|
||||
} else if (block.includes('{{ Quiz')) {
|
||||
let quiz = block.match(/\(["']([^"']+?)["']\)/)[1]
|
||||
blocks.push({
|
||||
@@ -459,17 +485,17 @@ const editCurrentLesson = () => {
|
||||
|
||||
const validateLesson = () => {
|
||||
if (!lesson.title) {
|
||||
return 'Title is required'
|
||||
return __('Title is required')
|
||||
}
|
||||
if (!lesson.content) {
|
||||
return 'Content is required'
|
||||
return __('Content is required')
|
||||
}
|
||||
}
|
||||
|
||||
const breadcrumbs = computed(() => {
|
||||
let crumbs = [
|
||||
{
|
||||
label: 'Courses',
|
||||
label: __('Courses'),
|
||||
route: { name: 'Courses' },
|
||||
},
|
||||
{
|
||||
@@ -480,7 +506,7 @@ const breadcrumbs = computed(() => {
|
||||
|
||||
if (lessonDetails?.data?.lesson) {
|
||||
crumbs.push({
|
||||
label: lessonDetails.data.lesson.title,
|
||||
label: __(lessonDetails.data.lesson.title),
|
||||
route: {
|
||||
name: 'Lesson',
|
||||
params: {
|
||||
@@ -492,7 +518,7 @@ const breadcrumbs = computed(() => {
|
||||
})
|
||||
}
|
||||
crumbs.push({
|
||||
label: lessonDetails?.data?.lesson ? 'Edit Lesson' : 'Create Lesson',
|
||||
label: lessonDetails?.data?.lesson ? __('Edit Lesson') : __('Create Lesson'),
|
||||
route: {
|
||||
name: 'LessonForm',
|
||||
params: {
|
||||
@@ -508,8 +534,8 @@ const breadcrumbs = computed(() => {
|
||||
usePageMeta(() => {
|
||||
return {
|
||||
title: lessonDetails?.data?.lesson
|
||||
? lessonDetails.data.lesson.title
|
||||
: 'New Lesson',
|
||||
? __(lessonDetails.data.lesson.title)
|
||||
: __('New Lesson'),
|
||||
icon: brand.favicon,
|
||||
}
|
||||
})
|
||||
|
||||
183
frontend/src/pages/MyPoints.vue
Normal file
183
frontend/src/pages/MyPoints.vue
Normal file
@@ -0,0 +1,183 @@
|
||||
<template>
|
||||
<div v-if="!$user.data">
|
||||
<NoPermission />
|
||||
</div>
|
||||
|
||||
<div v-else class="min-h-screen bg-50">
|
||||
<header class="sticky top-0 z-10 flex items-center justify-between border-b bg-surface-white px-5 py-3">
|
||||
<Breadcrumbs :items="breadcrumbs" />
|
||||
</header>
|
||||
|
||||
<div class="p-5 pb-10">
|
||||
<h2 class="text-lg text-ink-gray-9 font-semibold">{{__('My points')}}</h2>
|
||||
|
||||
<!-- Загрузка -->
|
||||
<div v-if="energyPoints.loading" class="text-center py-16 text-gray-600">
|
||||
{{__('Loading points...')}}
|
||||
</div>
|
||||
|
||||
<!-- Нет баллов -->
|
||||
<div v-else-if="!energyPoints.data?.length" class="bg-white rounded-xl shadow-xl mt-4 p-12 text-center">
|
||||
<p class="text-xl text-gray-800">{{__('You don`t have any points yet')}}</p>
|
||||
<p class="text-sm text-gray-700 mt-2">{{__('Participate in the activities — the points will appear!')}}</p>
|
||||
</div>
|
||||
|
||||
<!-- Есть баллы -->
|
||||
<div v-else>
|
||||
|
||||
<div class="grid grid-cols-1 md:grid-cols-2 gap-8">
|
||||
|
||||
<!-- ЛЕВАЯ КОЛОНКА — список баллов -->
|
||||
<div class="bg-white rounded-xl shadow-xl mt-4">
|
||||
<ul class="divide-y divide-gray-200">
|
||||
<li v-for="item in visibleItems" :key="item.name" class="p-6 hover:bg-gray-50">
|
||||
<div class="flex items-center justify-between">
|
||||
<div class="flex items-center gap-5">
|
||||
<div class="text-2xl font-bold"
|
||||
:class="item.points > 0 ? 'text-green-600' : 'text-red-600'">
|
||||
{{ item.points > 0 ? '+' : '' }}{{ item.points }}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<p class="font-medium text-gray-900">
|
||||
{{__( item.rule || 'Accrual of points' )}}
|
||||
</p>
|
||||
<p class="text-sm text-gray-500">
|
||||
{{ dayjs(item.creation).format('DD MMMM YYYY в HH:mm') }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<div v-if="!showAll && energyPoints.data.length > 5" class="p-6 text-center">
|
||||
<button
|
||||
@click="showAll = true"
|
||||
class="px-4 py-2 bg-gray-2 text-gray rounded-lg shadow-xl hover:bg-gray-3 transition">
|
||||
{{__('Load more')}}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ПРАВАЯ КОЛОНКА — итоги -->
|
||||
<div class="space-y-6 text-teal-900">
|
||||
<!-- БЛОК "Ты сегодня получил баллы" -->
|
||||
<div class="bg-teal-600/20 rounded-xl p-6 shadow-xl mt-4">
|
||||
<p class="text-lg opacity-80">{{__('Your stats')}}</p>
|
||||
<p class="text-sm opacity-80 mt-1">
|
||||
{{__('You`ve earned a lot today:')}}<strong>{{ todayPoints }}</strong>
|
||||
</p>
|
||||
<p class="text-sm opacity-80 mt-3">
|
||||
{{ todayPoints > 0 ? __('Keep it up !') : __('You need to work out a little!') }}
|
||||
</p>
|
||||
<p class="text-sm opacity-80 mt-3">
|
||||
{{ differencePoints > 0 ? `${__('This is')} ${differencePoints} ${__('more than yesterday')}`
|
||||
: differencePoints < 0 ? `${__('This is')} ${Math.abs(differencePoints)} ${__('less than yesterday')}`
|
||||
: __('This is the same as yesterday') }}
|
||||
</p>
|
||||
<p class="text-sm opacity-80 mt-3">
|
||||
{{__('You`ve earned a lot in the last week:')}}<strong>{{ weeklyPoints }}</strong>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="bg-teal-600/30 rounded-xl p-6 shadow-xl mt-4">
|
||||
<p class="text-lg opacity-80">{{__('Total points')}}</p>
|
||||
<p class="text-5xl font-bold mt-3">{{ totalPoints }}</p>
|
||||
</div>
|
||||
|
||||
<div class="bg-teal-600/40 rounded-xl p-6 shadow-xl mt-4">
|
||||
<p class="text-lg font-semibold opacity-90">{{__('Additionally, upon admission to the MPSU')}}</p>
|
||||
<p class="text-5xl font-bold mt-3">+{{ additionalPoints }}</p>
|
||||
<p class="text-sm opacity-70 mt-3">{{__('maximum of 10 points')}}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { inject, computed, onMounted, ref } from 'vue'
|
||||
import { createResource, Breadcrumbs } from 'frappe-ui'
|
||||
import NoPermission from '@/components/NoPermission.vue'
|
||||
|
||||
const $user = inject('$user')
|
||||
const dayjs = inject('$dayjs')
|
||||
|
||||
// Главное — фильтруем по email, как в LMS!
|
||||
const energyPoints = createResource({
|
||||
url: 'frappe.client.get_list',
|
||||
params: {
|
||||
doctype: 'Energy Point Log',
|
||||
fields: ['name', 'points', 'rule', 'creation'],
|
||||
filters: {
|
||||
user: $user.data.email // ← вот так, как в LMS — по email!
|
||||
},
|
||||
order_by: 'creation desc',
|
||||
limit_page_length: 1000
|
||||
},
|
||||
auto: false,
|
||||
onSuccess(data) {
|
||||
console.log('Баллы загружены:', data.length, 'записей')
|
||||
}
|
||||
})
|
||||
|
||||
const totalPoints = computed(() => {
|
||||
const list = Array.isArray(energyPoints.data) ? energyPoints.data : []
|
||||
return list.reduce((sum, item) => sum + (item.points || 0), 0)
|
||||
})
|
||||
|
||||
const additionalPoints = computed(() => {
|
||||
const bonus = Math.floor(totalPoints.value / 100)
|
||||
return bonus < 10 ? bonus : 10
|
||||
})
|
||||
|
||||
const breadcrumbs = computed(() => [
|
||||
{ label: __('Home'), route: '/' },
|
||||
{ label: __('My Points') }
|
||||
])
|
||||
|
||||
const showAll = ref(false)
|
||||
|
||||
const visibleItems = computed(() => {
|
||||
if (!Array.isArray(energyPoints.data)) return []
|
||||
return showAll.value
|
||||
? energyPoints.data // показать все
|
||||
: energyPoints.data.slice(0, 5) // первые 5
|
||||
})
|
||||
|
||||
function getPointsByDate(dateString) {
|
||||
if (!Array.isArray(energyPoints.data)) return 0
|
||||
|
||||
return energyPoints.data
|
||||
.filter(item => dayjs(item.creation).format('YYYY-MM-DD') === dateString)
|
||||
.reduce((sum, item) => sum + (item.points || 0), 0)
|
||||
}
|
||||
|
||||
const today = dayjs().format('YYYY-MM-DD')
|
||||
const yesterday = dayjs().subtract(1, 'day').format('YYYY-MM-DD')
|
||||
|
||||
const todayPoints = computed(() => getPointsByDate(today))
|
||||
const yesterdayPoints = computed(() => getPointsByDate(yesterday))
|
||||
|
||||
const differencePoints = computed(() =>
|
||||
todayPoints.value - yesterdayPoints.value
|
||||
)
|
||||
|
||||
const weeklyPoints = computed(() => {
|
||||
if (!Array.isArray(energyPoints.data)) return 0
|
||||
|
||||
const weekAgo = dayjs().subtract(7, 'day').startOf('day')
|
||||
|
||||
return energyPoints.data
|
||||
.filter(item => dayjs(item.creation).isAfter(weekAgo))
|
||||
.reduce((sum, item) => sum + (item.points || 0), 0)
|
||||
})
|
||||
onMounted(() => {
|
||||
if ($user.data) {
|
||||
energyPoints.fetch()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
762
frontend/src/pages/ParentProfile.vue
Normal file
762
frontend/src/pages/ParentProfile.vue
Normal file
@@ -0,0 +1,762 @@
|
||||
<template>
|
||||
<div class="min-h-screen bg-white">
|
||||
<NoPermission v-if="!$user.data" />
|
||||
|
||||
<div v-else-if="profile.error" class="p-6">
|
||||
<div class="max-w-4xl mx-auto bg-white rounded-xl shadow-sm p-6 border border-red-200">
|
||||
<p class="text-red-500 text-lg font-medium">Ошибка загрузки профиля: {{ profile.error.message }}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-else-if="profile.data">
|
||||
<header class="sticky top-0 z-10 flex items-center justify-between bg-white px-6 py-4">
|
||||
<Breadcrumbs class="h-7" :items="breadcrumbs" />
|
||||
</header>
|
||||
|
||||
<div class="mx-auto max-w-6xl px-4 py-6">
|
||||
<!-- Profile Header -->
|
||||
<div v-if="!schoolProfileNotFound" class="bg-gradient-to-r from-teal-100 to-teal-600 rounded-2xl shadow-sm border border-gray-200 p-6 -mt-4 relative">
|
||||
<div class="flex flex-col md:flex-row md:items-center gap-6">
|
||||
<div class="flex-1">
|
||||
<h2 class="text-3xl font-bold text-gray-900">{{ displayName }}</h2>
|
||||
<div
|
||||
v-if="profile.data.headline"
|
||||
v-html="
|
||||
DOMPurify.sanitize(decodeEntities(profile.data.headline), {
|
||||
ALLOWED_TAGS: [
|
||||
'b',
|
||||
'i',
|
||||
'em',
|
||||
'strong',
|
||||
'a',
|
||||
'p',
|
||||
'br',
|
||||
'ul',
|
||||
'ol',
|
||||
'li',
|
||||
'img',
|
||||
],
|
||||
ALLOWED_ATTR: ['href', 'target', 'rel', 'src'],
|
||||
})
|
||||
"
|
||||
class="ProseMirror prose prose-table:table-fixed prose-td:p-2 prose-th:p-2 prose-td:border prose-th:border prose-td:border-outline-gray-2 prose-th:border-outline-gray-2 prose-td:relative prose-th:relative prose-th:bg-surface-gray-2 prose-sm max-w-none !whitespace-normal mt-2 text-gray-700"
|
||||
></div>
|
||||
</div>
|
||||
|
||||
<div v-if="$user.data && isSessionUser()" class="md:ml-auto">
|
||||
<Button @click="toggleEdit()" class="bg-white hover:bg-gray-100 px-5 py-2.5 rounded-lg transition-colors duration-200">
|
||||
<template #prefix>
|
||||
<Edit class="w-4 h-4 stroke-1.5" />
|
||||
</template>
|
||||
{{ editMode ? 'Отменить редактирование' : 'Редактировать профиль' }}
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- VIEW MODE -->
|
||||
<div v-if="!editMode" class="mt-6">
|
||||
<!-- Пустой профиль родителя -->
|
||||
<div v-if="schoolProfileNotFound" class="bg-white rounded-2xl shadow-sm border border-gray-200 overflow-hidden">
|
||||
<div class="p-8 text-center">
|
||||
<div class="max-w-md mx-auto">
|
||||
<div class="mx-auto w-20 h-20 bg-teal-100 rounded-full flex items-center justify-center mb-6">
|
||||
<svg class="w-10 h-10 text-teal-600" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z" />
|
||||
</svg>
|
||||
</div>
|
||||
|
||||
<h3 class="text-2xl font-bold text-gray-900 mb-3">Профиль родителя еще не заполнен</h3>
|
||||
|
||||
<p class="text-gray-600 mb-6">
|
||||
Чтобы лучше понимать потребности вашего ребёнка и получать персонализированные рекомендации,
|
||||
заполните информацию о себе и своём ребёнке.
|
||||
</p>
|
||||
|
||||
<div class="bg-teal-50 border border-teal-100 rounded-lg p-5 mb-6 text-left">
|
||||
<h4 class="font-semibold text-teal-800 mb-3 flex items-center gap-2">
|
||||
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path fill-rule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd" />
|
||||
</svg>
|
||||
Заполнив профиль, вы сможете:
|
||||
</h4>
|
||||
<ul class="space-y-2 text-sm text-gray-700">
|
||||
<li class="flex items-start gap-2">
|
||||
<svg class="w-4 h-4 text-teal-500 mt-0.5 flex-shrink-0" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd" />
|
||||
</svg>
|
||||
<span>Получать персонализированные рекомендации для развития ребёнка</span>
|
||||
</li>
|
||||
<li class="flex items-start gap-2">
|
||||
<svg class="w-4 h-4 text-teal-500 mt-0.5 flex-shrink-0" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd" />
|
||||
</svg>
|
||||
<span>Находить подходящих наставников для вашего ребёнка</span>
|
||||
</li>
|
||||
<li class="flex items-start gap-2">
|
||||
<svg class="w-4 h-4 text-teal-500 mt-0.5 flex-shrink-0" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd" />
|
||||
</svg>
|
||||
<span>Быть в курсе успехов и прогресса вашего ребёнка</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<Button
|
||||
@click="toggleEdit()"
|
||||
class="bg-teal-600 hover:bg-teal-700 text-white px-8 py-3 rounded-lg font-medium transition-colors duration-200 shadow-sm hover:shadow-md"
|
||||
>
|
||||
<template #prefix>
|
||||
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536 3.536L6.5 21.036H3v-3.572L16.732 3.732z" />
|
||||
</svg>
|
||||
</template>
|
||||
Заполнить профиль родителя
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Загружающийся профиль -->
|
||||
<div v-else-if="schoolProfile.loading" class="bg-white rounded-2xl shadow-sm border border-gray-200 p-8">
|
||||
<div class="flex items-center justify-center py-12">
|
||||
<div class="animate-spin rounded-full h-12 w-12 border-b-2 border-primary-600"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Ошибка загрузки (кроме DoesNotExistError) -->
|
||||
<div v-else-if="schoolProfile.error && !schoolProfileNotFound" class="bg-white rounded-2xl shadow-sm border border-red-200 p-6">
|
||||
<p class="text-red-500 text-lg font-medium">Ошибка загрузки данных родителя: {{ schoolProfile.error.message }}</p>
|
||||
</div>
|
||||
|
||||
<!-- Загруженный профиль родителя -->
|
||||
<div v-else-if="schoolProfile.data && !schoolProfileNotFound" class="space-y-6">
|
||||
<!-- Основная информация -->
|
||||
<div class="bg-white rounded-2xl shadow-sm border border-gray-200 overflow-hidden">
|
||||
<div class="px-6 py-4 border-b border-gray-100 bg-teal-400">
|
||||
<h3 class="text-xl font-semibold text-white">Личная информация</h3>
|
||||
</div>
|
||||
<div class="p-6">
|
||||
<div class="grid grid-cols-1 lg:grid-cols-2 gap-6">
|
||||
<div class="space-y-4">
|
||||
<div class="flex items-start">
|
||||
<span class="inline-block w-48 text-gray-700 font-medium">Фамилия:</span>
|
||||
<span class="text-gray-900">{{ schoolProfile.data.last_name || '—' }}</span>
|
||||
</div>
|
||||
<div class="flex items-start">
|
||||
<span class="inline-block w-48 text-gray-700 font-medium">Имя:</span>
|
||||
<span class="text-gray-900">{{ schoolProfile.data.first_name || '—' }}</span>
|
||||
</div>
|
||||
<div class="flex items-start">
|
||||
<span class="inline-block w-48 text-gray-700 font-medium">Отчество:</span>
|
||||
<span class="text-gray-900">{{ schoolProfile.data.middle_name || '—' }}</span>
|
||||
</div>
|
||||
<div class="flex items-start">
|
||||
<span class="inline-block w-48 text-gray-700 font-medium">Дата рождения:</span>
|
||||
<span class="text-gray-900">{{ formattedDate(schoolProfile.data.birth_date) || '—' }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="space-y-4">
|
||||
<div class="flex items-start">
|
||||
<span class="inline-block w-48 text-gray-700 font-medium">Телефон:</span>
|
||||
<span class="text-gray-900 font-mono">{{ maskPrivate(schoolProfile.data.phone) }}</span>
|
||||
</div>
|
||||
<div class="flex items-start">
|
||||
<span class="inline-block w-48 text-gray-700 font-medium">Email:</span>
|
||||
<span class="text-gray-900 font-mono">{{ maskPrivate(schoolProfile.data.email_private) }}</span>
|
||||
</div>
|
||||
<div class="flex items-start">
|
||||
<span class="inline-block w-48 text-gray-700 font-medium">Telegram:</span>
|
||||
<div class="flex-1">
|
||||
<a v-if="schoolProfile.data.telegram"
|
||||
:href="formatTelegram(schoolProfile.data.telegram)"
|
||||
target="_blank"
|
||||
class="inline-flex items-center gap-2 text-primary-600 hover:text-primary-700 font-medium transition-colors">
|
||||
<span>{{ schoolProfile.data.telegram.replace('@', '') }}</span>
|
||||
<svg class="w-4 h-4" fill="currentColor" viewBox="0 0 24 24">
|
||||
<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm4.64 6.8c-.15 1.58-.8 5.42-1.13 7.19-.14.75-.42 1-.68 1.03-.58.05-1.02-.38-1.58-.75-.88-.58-1.38-.94-2.23-1.5-.99-.65-.35-1.01.22-1.59.15-.15 2.71-2.48 2.76-2.69.01-.03.01-.14-.06-.2-.07-.06-.17-.04-.24-.02-.1.02-1.69 1.09-4.78 3.2-.45.31-.86.46-1.23.45-.41-.01-1.2-.23-1.79-.42-.72-.23-1.29-.36-1.24-.76.03-.24.37-.48 1.01-.74 3.97-1.67 6.62-2.77 7.94-3.31 3.26-1.33 3.94-1.56 4.38-1.56.08 0 .27.02.39.12.1.08.13.19.14.27-.01.06.01.24 0 .38z"/>
|
||||
</svg>
|
||||
</a>
|
||||
<span v-else class="text-gray-500">—</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Информация о ребенке -->
|
||||
<div class="bg-white rounded-2xl shadow-sm border border-gray-200 overflow-hidden">
|
||||
<div class="px-6 py-4 border-b border-gray-100 bg-teal-400">
|
||||
<h3 class="text-xl font-semibold text-white">Информация о ребёнке</h3>
|
||||
</div>
|
||||
<div class="p-6">
|
||||
<div class="grid grid-cols-1 lg:grid-cols-2 gap-6">
|
||||
<div class="space-y-4">
|
||||
<div class="flex items-start">
|
||||
<span class="inline-block w-48 text-gray-700 font-medium">ФИО ребёнка:</span>
|
||||
<span class="text-gray-900">{{ schoolProfile.data.child_name || '—' }}</span>
|
||||
</div>
|
||||
<div class="flex items-start">
|
||||
<span class="inline-block w-48 text-gray-700 font-medium">Телефон ребёнка:</span>
|
||||
<span class="text-gray-900 font-mono">{{ maskPrivate(schoolProfile.data.child_phone) || '—' }}</span>
|
||||
</div>
|
||||
<div class="flex items-start">
|
||||
<span class="inline-block w-48 text-gray-700 font-medium">Email ребёнка:</span>
|
||||
<span class="text-gray-900 font-mono">{{ maskPrivate(schoolProfile.data.child_email) || '—' }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="space-y-4">
|
||||
<div class="flex items-start">
|
||||
<span class="inline-block w-48 text-gray-700 font-medium">Цели для ребёнка:</span>
|
||||
<div class="flex-1">
|
||||
<div class="p-4 bg-teal-50 rounded-lg border border-teal-100">
|
||||
<p class="text-gray-700 leading-relaxed whitespace-pre-line">{{ schoolProfile.data.goals || 'Цели не указаны' }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-else class="bg-white rounded-2xl shadow-sm border border-gray-200 p-8">
|
||||
<div class="text-center py-12">
|
||||
<div class="mx-auto w-16 h-16 bg-gray-100 rounded-full flex items-center justify-center mb-4">
|
||||
<svg class="w-8 h-8 text-gray-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4.354a4 4 0 110 5.292M15 21H3v-1a6 6 0 0112 0v1zm0 0h6v-1a6 6 0 00-9-5.197m13.5 6.197h-6"/>
|
||||
</svg>
|
||||
</div>
|
||||
<h3 class="text-xl font-semibold text-gray-900 mb-2">Данные профиля не найдены</h3>
|
||||
<p class="text-gray-600">Информация о родителе отсутствует</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- EDIT MODE -->
|
||||
<div v-else class="mt-6">
|
||||
<div class="bg-white rounded-2xl shadow-sm border border-gray-200 overflow-hidden">
|
||||
<div class="px-6 py-4 border-b border-gray-100 bg-teal-400">
|
||||
<h3 class="text-xl font-semibold text-white">Редактирование профиля родителя</h3>
|
||||
<p class="text-sm text-gray-200 mt-1">Заполните информацию о себе и своём ребёнке</p>
|
||||
</div>
|
||||
|
||||
<div class="p-6">
|
||||
<div class="grid grid-cols-1 lg:grid-cols-2 gap-6">
|
||||
<!-- Левая колонка - Личная информация -->
|
||||
<div class="space-y-6">
|
||||
<h4 class="text-lg font-semibold text-gray-900 border-b pb-2">Личная информация</h4>
|
||||
|
||||
<Input
|
||||
v-model="form.last_name"
|
||||
label="Фамилия"
|
||||
class="bg-gray-50 border-gray-300 focus:border-primary-500 focus:ring-primary-500"
|
||||
/>
|
||||
|
||||
<Input
|
||||
v-model="form.first_name"
|
||||
label="Имя"
|
||||
class="bg-gray-50 border-gray-300 focus:border-primary-500 focus:ring-primary-500"
|
||||
/>
|
||||
|
||||
<Input
|
||||
v-model="form.middle_name"
|
||||
label="Отчество"
|
||||
class="bg-gray-50 border-gray-300 focus:border-primary-500 focus:ring-primary-500"
|
||||
/>
|
||||
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-700 mb-2">Дата рождения</label>
|
||||
<DatePicker
|
||||
v-model="form.birth_date"
|
||||
class="w-full bg-gray-50 border-gray-300 rounded-lg focus:border-primary-500 focus:ring-primary-500"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<Input
|
||||
v-model="form.phone"
|
||||
label="Телефон (не публиковать)"
|
||||
placeholder="+7 (XXX) XXX-XX-XX"
|
||||
class="bg-gray-50 border-gray-300 focus:border-primary-500 focus:ring-primary-500"
|
||||
/>
|
||||
|
||||
<Input
|
||||
v-model="form.email_private"
|
||||
label="Email (не публиковать)"
|
||||
type="email"
|
||||
placeholder="example@email.com"
|
||||
class="bg-gray-50 border-gray-300 focus:border-primary-500 focus:ring-primary-500"
|
||||
/>
|
||||
|
||||
<Input
|
||||
v-model="form.telegram"
|
||||
label="Telegram"
|
||||
placeholder="username или t.me/username"
|
||||
class="bg-gray-50 border-gray-300 focus:border-primary-500 focus:ring-primary-500"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<!-- Правая колонка - Информация о ребенке -->
|
||||
<div class="space-y-6">
|
||||
<h4 class="text-lg font-semibold text-gray-900 border-b pb-2">Информация о ребёнке</h4>
|
||||
|
||||
<Input
|
||||
v-model="form.child_name"
|
||||
label="ФИО ребёнка"
|
||||
placeholder="Иванов Иван Иванович"
|
||||
class="bg-gray-50 border-gray-300 focus:border-primary-500 focus:ring-primary-500"
|
||||
/>
|
||||
|
||||
<Input
|
||||
v-model="form.child_phone"
|
||||
label="Телефон ребёнка"
|
||||
placeholder="+7 (XXX) XXX-XX-XX"
|
||||
class="bg-gray-50 border-gray-300 focus:border-primary-500 focus:ring-primary-500"
|
||||
/>
|
||||
|
||||
<Input
|
||||
v-model="form.child_email"
|
||||
label="Email ребёнка"
|
||||
type="email"
|
||||
placeholder="child@email.com"
|
||||
class="bg-gray-50 border-gray-300 focus:border-primary-500 focus:ring-primary-500"
|
||||
/>
|
||||
|
||||
<Textarea
|
||||
v-model="form.goals"
|
||||
label="Какие цели Вы ставите своему ребёнку?"
|
||||
rows="6"
|
||||
placeholder="Опишите ваши ожидания и цели для развития вашего ребёнка..."
|
||||
class="bg-gray-50 border-gray-300 focus:border-primary-500 focus:ring-primary-500"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Кнопки действий -->
|
||||
<div class="mt-8 pt-6 border-t border-gray-200 flex gap-3">
|
||||
<Button
|
||||
@click="saveProfile"
|
||||
:loading="saving"
|
||||
class="bg-teal-400 hover:bg-teal-700 text-white px-8 py-3 rounded-lg font-medium transition-colors duration-200 flex items-center gap-2"
|
||||
>
|
||||
{{ saving ? 'Сохранение...' : 'Сохранить изменения' }}
|
||||
</Button>
|
||||
|
||||
<Button
|
||||
variant="outline"
|
||||
@click="toggleEdit()"
|
||||
class="border-gray-300 text-gray-700 hover:bg-gray-50 px-6 py-3 rounded-lg font-medium transition-colors duration-200"
|
||||
>
|
||||
Отмена
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-else class="flex items-center justify-center min-h-screen">
|
||||
<div class="text-center">
|
||||
<div class="animate-spin rounded-full h-16 w-16 border-b-2 border-primary-600 mx-auto"></div>
|
||||
<p class="mt-4 text-lg text-gray-600">Загрузка профиля...</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
/* Плавные переходы для интерактивных элементов */
|
||||
.border-gray-300 {
|
||||
transition: border-color 0.2s ease;
|
||||
}
|
||||
|
||||
.bg-primary-50 {
|
||||
background-color: rgba(59, 130, 246, 0.05);
|
||||
}
|
||||
|
||||
/* Стилизация скроллбара для выпадающих списков */
|
||||
.overflow-y-auto::-webkit-scrollbar {
|
||||
width: 6px;
|
||||
}
|
||||
|
||||
.overflow-y-auto::-webkit-scrollbar-track {
|
||||
background: #f1f1f1;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.overflow-y-auto::-webkit-scrollbar-thumb {
|
||||
background: #c1c1c1;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.overflow-y-auto::-webkit-scrollbar-thumb:hover {
|
||||
background: #a1a1a1;
|
||||
}
|
||||
|
||||
/* Анимация для кнопок */
|
||||
.transition-colors {
|
||||
transition-property: background-color, border-color, color, fill, stroke;
|
||||
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
||||
transition-duration: 200ms;
|
||||
}
|
||||
</style>
|
||||
|
||||
<!-- Скрипт остается без изменений, только нужно добавить импорты -->
|
||||
|
||||
<script setup>
|
||||
import { ref, computed, inject, watch, onMounted } from 'vue';
|
||||
import { Breadcrumbs, createResource, Button, Input, DatePicker, Select, Textarea } from 'frappe-ui';
|
||||
import { sessionStore } from '@/stores/session';
|
||||
import NoPermission from '@/components/NoPermission.vue';
|
||||
import { Edit } from 'lucide-vue-next';
|
||||
import { convertToTitleCase, updateDocumentTitle } from '@/utils';
|
||||
import debounce from 'lodash/debounce';
|
||||
import { decodeEntities } from '@/utils'
|
||||
import DOMPurify from 'dompurify'
|
||||
|
||||
const { user } = sessionStore();
|
||||
const $user = inject('$user');
|
||||
const schoolProfileNotFound = ref(false);
|
||||
|
||||
// Логирование инициализации
|
||||
console.log('[DEBUG] Инициализация компонента:', {
|
||||
user: user,
|
||||
$user: $user.data,
|
||||
username: $user.data?.username,
|
||||
});
|
||||
|
||||
const props = defineProps({
|
||||
username: {
|
||||
type: String,
|
||||
required: false,
|
||||
default: '',
|
||||
},
|
||||
});
|
||||
|
||||
const effectiveUsername = computed(() => {
|
||||
const username = props.username || $user.data?.username || '';
|
||||
console.log('[DEBUG] Вычисление effectiveUsername:', { propsUsername: props.username, sessionUsername: $user.data?.username, result: username });
|
||||
return username;
|
||||
});
|
||||
|
||||
const editMode = ref(false);
|
||||
const saving = ref(false);
|
||||
|
||||
const profile = createResource({
|
||||
url: 'frappe.client.get',
|
||||
makeParams(values) {
|
||||
const username = effectiveUsername.value;
|
||||
console.log('[DEBUG] Запрос profile:', { doctype: 'User', filters: { username } });
|
||||
return {
|
||||
doctype: 'User',
|
||||
filters: { username },
|
||||
};
|
||||
},
|
||||
onSuccess(data) {
|
||||
console.log('[DEBUG] Профиль загружен:', data);
|
||||
},
|
||||
onError(error) {
|
||||
console.error('[DEBUG] Ошибка загрузки профиля:', error);
|
||||
window.frappe?.msgprint({
|
||||
title: 'Ошибка',
|
||||
message: 'Не удалось загрузить профиль пользователя: ' + (error.message || 'Неизвестная ошибка'),
|
||||
indicator: 'red',
|
||||
});
|
||||
},
|
||||
});
|
||||
|
||||
const schoolProfile = createResource({
|
||||
url: 'frappe.client.get',
|
||||
params: {
|
||||
doctype: 'Schoolchildren Profile',
|
||||
filters: { user:user },
|
||||
},
|
||||
auto: false,
|
||||
onSuccess(data) {
|
||||
console.log('[DEBUG] Профиль школьника загружен:', data);
|
||||
},
|
||||
onError(error) {
|
||||
// Проверяем, является ли ошибка "не найдено"
|
||||
if (error.exc_type === 'DoesNotExistError' || error.message?.includes('DoesNotExist')) {
|
||||
console.log('[DEBUG] Профиль родителя не найден, создаем новый');
|
||||
schoolProfileNotFound.value = true;
|
||||
} else {
|
||||
console.error('[DEBUG] Ошибка загрузки профиля родителя:', error);
|
||||
window.frappe?.msgprint({
|
||||
title: 'Ошибка',
|
||||
message: 'Не удалось загрузить профиль родителя: ' + (error.message || 'Неизвестная ошибка'),
|
||||
indicator: 'red',
|
||||
});
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
const form = ref({
|
||||
first_name: '',
|
||||
last_name: '',
|
||||
middle_name: '',
|
||||
birth_date: '',
|
||||
phone: '',
|
||||
email_private: '',
|
||||
telegram: '',
|
||||
child_name: '',
|
||||
child_phone: '',
|
||||
child_email: '',
|
||||
goals: '',
|
||||
|
||||
});
|
||||
|
||||
const breadcrumbs = computed(() => {
|
||||
const username = effectiveUsername.value;
|
||||
const crumbs = [
|
||||
{
|
||||
label: 'People',
|
||||
route: { name: 'People' },
|
||||
},
|
||||
{
|
||||
label: profile.data?.full_name || 'Профиль',
|
||||
route: username ? {
|
||||
name: 'Profile',
|
||||
params: { username },
|
||||
} : undefined,
|
||||
},
|
||||
];
|
||||
console.log('[DEBUG] Хлебные крошки:', crumbs);
|
||||
return crumbs;
|
||||
});
|
||||
|
||||
const pageMeta = computed(() => {
|
||||
const meta = {
|
||||
title: profile.data?.full_name || 'Профиль',
|
||||
description: profile.data?.headline || '',
|
||||
};
|
||||
console.log('[DEBUG] Мета-данные страницы:', meta);
|
||||
return meta;
|
||||
});
|
||||
|
||||
const displayName = computed(() => {
|
||||
if (!profile.data) {
|
||||
console.log('[DEBUG] displayName: profile.data не загружен');
|
||||
return 'Загрузка...';
|
||||
}
|
||||
const name = profile.data?.full_name || `${form.value.first_name || ''} ${form.value.last_name || ''}`.trim();
|
||||
console.log('[DEBUG] Отображаемое имя:', name);
|
||||
return name;
|
||||
});
|
||||
|
||||
const isSessionUser = () => {
|
||||
const sessionUser = $user.data?.username;
|
||||
const profileUser = effectiveUsername.value;
|
||||
const isSession = sessionUser === profileUser;
|
||||
console.log('[DEBUG] Проверка isSessionUser:', { sessionUser, profileUser, isSession });
|
||||
return isSession;
|
||||
};
|
||||
|
||||
function formattedDate(d) {
|
||||
if (!d) return '';
|
||||
try {
|
||||
return new Date(d).toLocaleDateString('ru-RU');
|
||||
} catch (e) {
|
||||
console.error('[DEBUG] Ошибка форматирования даты:', e, { date: d });
|
||||
return d;
|
||||
}
|
||||
}
|
||||
|
||||
function maskPrivate(val) {
|
||||
if (!val) return '-';
|
||||
if (val.includes('@')) {
|
||||
const parts = val.split('@');
|
||||
return parts[0].slice(0, 1) + '***@' + parts[1];
|
||||
}
|
||||
return val.slice(0, 3) + '***' + val.slice(-2);
|
||||
}
|
||||
|
||||
function formatTelegram(t) {
|
||||
if (!t) return '';
|
||||
if (t.startsWith('t.me/') || t.startsWith('https://t.me/')) return (t.startsWith('http') ? t : 'https://' + t);
|
||||
return 'https://t.me/' + t.replace(/^@/, '');
|
||||
}
|
||||
|
||||
function fillFormFromProfile() {
|
||||
console.log('[DEBUG] Заполнение формы:', {
|
||||
schoolProfile: schoolProfile.data,
|
||||
profile: profile.data,
|
||||
currentForm: JSON.stringify(form.value, null, 2),
|
||||
});
|
||||
form.value.first_name = schoolProfile.data?.first_name || profile.data?.first_name || '';
|
||||
form.value.last_name = schoolProfile.data?.last_name || profile.data?.last_name || '';
|
||||
form.value.middle_name = schoolProfile.data?.middle_name || '';
|
||||
form.value.birth_date = schoolProfile.data?.birth_date || '';
|
||||
form.value.phone = schoolProfile.data?.phone || '';
|
||||
form.value.email_private = schoolProfile.data?.email_private || '';
|
||||
form.value.telegram = schoolProfile.data?.telegram || '';
|
||||
form.value.child_name = schoolProfile.data?.child_name || '';
|
||||
form.value.child_phone = schoolProfile.data?.child_phone || '';
|
||||
form.value.child_email = schoolProfile.data?.child_email || '';
|
||||
form.value.goals = schoolProfile.data?.goals || '';
|
||||
|
||||
console.log('[DEBUG] Форма после заполнения:', JSON.stringify(form.value, null, 2));
|
||||
}
|
||||
|
||||
|
||||
function toggleEdit() {
|
||||
editMode.value = !editMode.value;
|
||||
if (editMode.value) fillFormFromProfile();
|
||||
console.log('[DEBUG] Переключение режима редактирования:', { editMode: editMode.value });
|
||||
}
|
||||
|
||||
function validateExams(exams) {
|
||||
console.log('[DEBUG] Валидация exams:', { exams, validOptions: examOptions });
|
||||
return exams.every(exam => examOptions.includes(exam));
|
||||
}
|
||||
|
||||
function validateLearnSubjects(subjects) {
|
||||
console.log('[DEBUG] Валидация learn_subjects:', { subjects, validOptions: learnOptions });
|
||||
return subjects.every(subject => learnOptions.includes(subject));
|
||||
}
|
||||
|
||||
async function saveProfile() {
|
||||
console.log('[DEBUG] Сохранение профиля:', { form: form.value });
|
||||
saving.value = true;
|
||||
try {
|
||||
// Создаём копию данных формы
|
||||
const formData = { ...form.value };
|
||||
console.log('[DEBUG] Копия formData:', JSON.stringify(formData, null, 2));
|
||||
|
||||
// Обновление full_name в User, если нужно
|
||||
if (formData.first_name || formData.last_name) {
|
||||
const fullName = `${formData.first_name || ''} ${formData.last_name || ''}`.trim();
|
||||
console.log('[DEBUG] Обновление User.full_name:', { name: profile.data?.name, fullName });
|
||||
await createResource({
|
||||
url: 'frappe.client.set_value',
|
||||
params: {
|
||||
doctype: 'User',
|
||||
name: profile.data?.name,
|
||||
fieldname: 'full_name',
|
||||
value: fullName,
|
||||
},
|
||||
}).submit();
|
||||
}
|
||||
|
||||
// Получаем docname
|
||||
let docname = '';
|
||||
try {
|
||||
await schoolProfile.reload();
|
||||
console.log('[DEBUG] Schoolprofile:', { schoolProfile });
|
||||
docname = schoolProfile?.data?.name;
|
||||
console.log('[DEBUG] Выбранное имя документа:', docname);
|
||||
} catch (error) {
|
||||
console.log('[DEBUG] Ошибка загрузки schoolProfile, продолжаем с profile:', error.message);
|
||||
}
|
||||
|
||||
// Формируем payload из копии данных формы
|
||||
let payload = {
|
||||
doctype: 'Schoolchildren Profile',
|
||||
user: profile.data?.name,
|
||||
first_name: formData.first_name,
|
||||
last_name: formData.last_name,
|
||||
middle_name: formData.middle_name,
|
||||
birth_date: formData.birth_date,
|
||||
phone: formData.phone,
|
||||
email_private: formData.email_private,
|
||||
telegram: formData.telegram,
|
||||
child_name: formData.child_name,
|
||||
child_phone: formData.child_phone,
|
||||
child_email: formData.child_email,
|
||||
goals: formData.goals,
|
||||
|
||||
last_updated: new Date().toISOString(),
|
||||
};
|
||||
console.log('[DEBUG] Сохранение Schoolchildren Profile (payload):', { docname, payload });
|
||||
|
||||
// Сохранение или создание документа
|
||||
if (docname) {
|
||||
await createResource({
|
||||
url: 'frappe.client.save',
|
||||
params: { doc: { ...schoolProfile.data, ...payload } },
|
||||
}).submit();
|
||||
} else {
|
||||
await createResource({
|
||||
url: 'frappe.client.insert',
|
||||
params: { doc: payload },
|
||||
}).submit();
|
||||
}
|
||||
|
||||
editMode.value = false;
|
||||
// После успешного сохранения в конце функции saveProfile
|
||||
schoolProfileNotFound.value = false;
|
||||
if (window.frappe && window.frappe.msgprint) window.frappe.msgprint('Профиль сохранён');
|
||||
console.log('[DEBUG] Профиль успешно сохранён');
|
||||
} catch (e) {
|
||||
console.error('[DEBUG] Ошибка при сохранении профиля:', e);
|
||||
if (window.frappe && window.frappe.msgprint) window.frappe.msgprint({
|
||||
title: 'Ошибка',
|
||||
message: (e && e.message) || 'Ошибка при сохранении',
|
||||
indicator: 'red',
|
||||
});
|
||||
} finally {
|
||||
saving.value = false;
|
||||
}
|
||||
await schoolProfile.reload();
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
console.log('[DEBUG] Компонент смонтирован:', {
|
||||
propsUsername: props.username,
|
||||
sessionUsername: $user.data?.username,
|
||||
user: user,
|
||||
$user: $user.data,
|
||||
});
|
||||
if ($user.data) {
|
||||
console.log('[DEBUG] Запуск profile.reload()');
|
||||
profile.reload();
|
||||
}
|
||||
});
|
||||
|
||||
watch(
|
||||
() => props.username,
|
||||
(newUsername, oldUsername) => {
|
||||
console.log('[DEBUG] Изменение props.username:', { old: oldUsername, new: newUsername });
|
||||
profile.reload();
|
||||
}
|
||||
);
|
||||
|
||||
watch(
|
||||
() => profile.data,
|
||||
(newData, oldData) => {
|
||||
console.log('[DEBUG] Изменение profile.data:', { old: oldData, new: newData });
|
||||
if (newData) {
|
||||
console.log('[DEBUG] Запуск schoolProfile.reload()');
|
||||
schoolProfile.reload();
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
watch(
|
||||
() => schoolProfile.data,
|
||||
(newData, oldData) => {
|
||||
console.log('[DEBUG] Изменение schoolProfile.data:', { old: oldData, new: newData });
|
||||
if (newData && !editMode.value) {
|
||||
console.log('[DEBUG] Заполнение формы из schoolProfile');
|
||||
fillFormFromProfile();
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
watch(
|
||||
() => effectiveUsername.value,
|
||||
(newUsername) => {
|
||||
console.log('[DEBUG] Изменение effectiveUsername для schoolProfile:', newUsername);
|
||||
schoolProfile.update({
|
||||
params: {
|
||||
doctype: 'Schoolchildren Profile',
|
||||
filters: { user: newUsername },
|
||||
},
|
||||
});
|
||||
}
|
||||
);
|
||||
</script>
|
||||
@@ -124,19 +124,13 @@ const props = defineProps({
|
||||
|
||||
onMounted(() => {
|
||||
if ($user.data) profile.reload()
|
||||
|
||||
setActiveTab()
|
||||
})
|
||||
|
||||
const profile = createResource({
|
||||
url: 'frappe.client.get',
|
||||
makeParams(values) {
|
||||
return {
|
||||
doctype: 'User',
|
||||
filters: {
|
||||
username: props.username,
|
||||
},
|
||||
}
|
||||
url: 'lms.lms.api.get_profile_details',
|
||||
params: {
|
||||
username: props.username,
|
||||
},
|
||||
})
|
||||
|
||||
@@ -194,24 +188,25 @@ const isSessionUser = () => {
|
||||
return $user.data?.email === profile.data?.email
|
||||
}
|
||||
|
||||
const hasHigherAccess = () => {
|
||||
return $user.data?.is_evaluator || $user.data?.is_moderator
|
||||
}
|
||||
|
||||
const getTabButtons = () => {
|
||||
let buttons = [{ label: 'About' }, { label: 'Certificates' }]
|
||||
if ($user.data?.is_moderator) buttons.push({ label: 'Roles' })
|
||||
if (
|
||||
isSessionUser() &&
|
||||
($user.data?.is_evaluator || $user.data?.is_moderator)
|
||||
) {
|
||||
|
||||
if (hasHigherAccess()) {
|
||||
buttons.push({ label: 'Slots' })
|
||||
buttons.push({ label: 'Schedule' })
|
||||
}
|
||||
|
||||
return buttons
|
||||
}
|
||||
|
||||
const breadcrumbs = computed(() => {
|
||||
let crumbs = [
|
||||
{
|
||||
label: 'People',
|
||||
label: __('People'),
|
||||
},
|
||||
{
|
||||
label: profile.data?.full_name,
|
||||
|
||||
@@ -29,6 +29,62 @@
|
||||
{{ __('No introduction') }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Points Section -->
|
||||
<div class="mt-7 mb-10" v-if="energyPoints.data?.length">
|
||||
<h2 class="mb-3 text-lg font-semibold text-ink-gray-9">
|
||||
{{ __('Points') }}
|
||||
</h2>
|
||||
<h2 class="mb-3 text-lg font-semibold text-ink-gray-9">
|
||||
{{ __('The last 10 score records have been uploaded') }}
|
||||
</h2>
|
||||
<ul class="space-y-4">
|
||||
<li v-for="item in energyPoints.data.slice(0, 10)" :key="item.name" class="text-sm text-gray-700">
|
||||
<div class="flex justify-between">
|
||||
<span>{{ __('Points') }}: {{ item.points }}</span>
|
||||
<span>{{ dayjs(item.creation).format('DD-MM-YYYY') }}</span>
|
||||
</div>
|
||||
<div v-if="item.rule" class="text-ink-gray-7">
|
||||
{{ __('Reason') }}: {{ item.rule }}
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="mt-4 text-sm">
|
||||
<div class="font-semibold">
|
||||
{{ __('Total Points') }}: {{ totalPoints }}
|
||||
</div>
|
||||
<div class="font-semibold">
|
||||
{{ __('Additional Points for MPGU Admission') }}: {{ additionalPoints }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else class="mt-7 text-ink-gray-7 text-sm italic">
|
||||
{{ __('No points yet') }}
|
||||
</div>
|
||||
|
||||
<!-- Courses Section -->
|
||||
<div class="mt-7 mb-10" v-if="coursesWithTitles.length">
|
||||
<h2 class="mb-3 text-lg font-semibold text-ink-gray-9">
|
||||
{{ __('Completed Courses') }}
|
||||
</h2>
|
||||
<div class="grid grid-cols-1 gap-4">
|
||||
<div v-for="course in coursesWithTitles" :key="course.name">
|
||||
<a
|
||||
:href="`/lms/courses/${course.course}`"
|
||||
class="text-base text-ink-gray-9 hover:text-blue-600"
|
||||
>
|
||||
{{ course.title || course.course }} <!-- Отображаем title, если есть, иначе course -->
|
||||
</a>
|
||||
<div class="text-sm text-ink-gray-7">
|
||||
{{ __('Completed on') }}: {{ dayjs(course.creation).format('DD MMM YYYY') }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else class="mt-7 text-ink-gray-7 text-sm italic">
|
||||
{{ __('No completed courses yet') }}
|
||||
</div>
|
||||
|
||||
<div class="mt-7 mb-10" v-if="badges.data?.length">
|
||||
<h2 class="mb-3 text-lg font-semibold text-ink-gray-9">
|
||||
{{ __('Achievements') }}
|
||||
@@ -114,7 +170,7 @@
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import { inject } from 'vue'
|
||||
import { inject, computed, ref, watch } from 'vue'
|
||||
import { createResource, Popover, Button } from 'frappe-ui'
|
||||
import { X, LinkedinIcon, Twitter } from 'lucide-vue-next'
|
||||
import { sessionStore } from '@/stores/session'
|
||||
@@ -153,6 +209,96 @@ const badges = createResource({
|
||||
},
|
||||
})
|
||||
|
||||
const courses = createResource({
|
||||
url: 'frappe.client.get_list',
|
||||
params: {
|
||||
doctype: 'LMS Course Progress',
|
||||
fields: ['name', 'member', 'course', 'status', 'creation'],
|
||||
filters: {
|
||||
member: props.profile.data.email,
|
||||
status: 'Complete',
|
||||
},
|
||||
},
|
||||
auto: true,
|
||||
onSuccess(data) {
|
||||
console.log('LMS Course Progress data:', data) // Отладка
|
||||
},
|
||||
})
|
||||
|
||||
const courseTitles = ref({})
|
||||
const coursesWithTitles = computed(() => {
|
||||
if (!courses.data) return []
|
||||
const result = courses.data.map(course => ({
|
||||
...course,
|
||||
title: courseTitles.value[course.course] || null,
|
||||
}))
|
||||
console.log('Courses with titles:', result) // Отладка
|
||||
return result
|
||||
})
|
||||
|
||||
// Запрашиваем title для каждого курса
|
||||
watch(
|
||||
() => courses.data,
|
||||
(newCourses) => {
|
||||
if (newCourses && newCourses.length) {
|
||||
const courseIds = newCourses.map(course => course.course)
|
||||
console.log('Course IDs:', courseIds) // Отладка
|
||||
createResource({
|
||||
url: 'frappe.client.get_list',
|
||||
params: {
|
||||
doctype: 'LMS Course',
|
||||
fields: ['name', 'title'],
|
||||
filters: {
|
||||
name: ['in', courseIds],
|
||||
},
|
||||
},
|
||||
auto: true,
|
||||
onSuccess(data) {
|
||||
console.log('Raw course titles data:', data) // Отладка сырых данных
|
||||
const titles = {}
|
||||
data.forEach(course => {
|
||||
titles[course.name] = course.title
|
||||
})
|
||||
courseTitles.value = titles
|
||||
console.log('Processed course titles:', titles) // Отладка обработанных titles
|
||||
},
|
||||
onError(error) {
|
||||
console.error('Error fetching course titles:', error) // Отладка ошибок
|
||||
},
|
||||
})
|
||||
}
|
||||
},
|
||||
{ immediate: true }
|
||||
)
|
||||
|
||||
const energyPoints = createResource({
|
||||
url: 'frappe.client.get_list',
|
||||
params: {
|
||||
doctype: 'Energy Point Log',
|
||||
fields: ['name', 'user', 'points', 'rule', 'creation'],
|
||||
filters: {
|
||||
user: props.profile.data.email,
|
||||
},
|
||||
limit_page_length: 1000,
|
||||
},
|
||||
auto: true,
|
||||
onSuccess(data) {
|
||||
console.log('Energy Points data:', data) // Отладка
|
||||
data.forEach(item => {
|
||||
console.log('Points for', item.name, ':', item.points, typeof item.points)
|
||||
})
|
||||
},
|
||||
})
|
||||
|
||||
const totalPoints = computed(() => {
|
||||
return energyPoints.data?.reduce((sum, item) => sum + (item.points || 0), 0) || 0
|
||||
})
|
||||
|
||||
const additionalPoints = computed(() => {
|
||||
const points = Math.floor(totalPoints.value / 100)
|
||||
return points < 10 ? points : 10
|
||||
})
|
||||
|
||||
const shareOnSocial = (badge, medium) => {
|
||||
let shareUrl
|
||||
const url = encodeURIComponent(
|
||||
|
||||
@@ -3,7 +3,10 @@
|
||||
<h2 class="mb-3 text-lg font-semibold text-ink-gray-9">
|
||||
{{ __('Certificates') }}
|
||||
</h2>
|
||||
<div class="grid grod-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
|
||||
<div
|
||||
v-if="certificates.data?.length"
|
||||
class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4"
|
||||
>
|
||||
<div
|
||||
v-for="certificate in certificates.data"
|
||||
:key="certificate.name"
|
||||
@@ -19,6 +22,9 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else class="text-sm italic text-ink-gray-5">
|
||||
{{ __('You have not received any certificates yet.') }}
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
</Calendar>
|
||||
</div>
|
||||
</div>
|
||||
<Event v-model="showEvent" :event="currentEvent" />
|
||||
<Event v-if="showEvent" v-model="showEvent" :event="currentEvent" />
|
||||
</template>
|
||||
<script setup>
|
||||
import { Calendar, createListResource, Button } from 'frappe-ui'
|
||||
@@ -57,7 +57,7 @@ const props = defineProps({
|
||||
const evaluations = createListResource({
|
||||
doctype: 'LMS Certificate Request',
|
||||
filters: {
|
||||
evaluator: user.data?.name,
|
||||
evaluator: props.profile.data?.name,
|
||||
status: ['!=', 'Cancelled'],
|
||||
},
|
||||
fields: [
|
||||
|
||||
@@ -43,18 +43,22 @@
|
||||
:options="days"
|
||||
v-model="slot.day"
|
||||
@focusout.stop="update(slot.name, 'day', slot.day)"
|
||||
:disabled="!isSessionUser()"
|
||||
/>
|
||||
<FormControl
|
||||
type="time"
|
||||
v-model="slot.start_time"
|
||||
@focusout.stop="update(slot.name, 'start_time', slot.start_time)"
|
||||
:disabled="!isSessionUser()"
|
||||
/>
|
||||
<FormControl
|
||||
type="time"
|
||||
v-model="slot.end_time"
|
||||
@focusout.stop="update(slot.name, 'end_time', slot.end_time)"
|
||||
:disabled="!isSessionUser()"
|
||||
/>
|
||||
<X
|
||||
v-if="isSessionUser()"
|
||||
@click="deleteRow(slot.name)"
|
||||
class="w-6 h-auto stroke-1.5 text-red-900 rounded-md cursor-pointer p-1 bg-surface-red-2 hidden group-hover:block"
|
||||
/>
|
||||
@@ -69,20 +73,23 @@
|
||||
:options="days"
|
||||
v-model="newSlot.day"
|
||||
@focusout.stop="add()"
|
||||
:disabled="!isSessionUser()"
|
||||
/>
|
||||
<FormControl
|
||||
type="time"
|
||||
v-model="newSlot.start_time"
|
||||
@focusout.stop="add()"
|
||||
:disabled="!isSessionUser()"
|
||||
/>
|
||||
<FormControl
|
||||
type="time"
|
||||
v-model="newSlot.end_time"
|
||||
@focusout.stop="add()"
|
||||
:disabled="!isSessionUser()"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<Button @click="showSlotsTemplate = 1">
|
||||
<Button v-if="isSessionUser()" @click="showSlotsTemplate = 1">
|
||||
<template #prefix>
|
||||
<Plus class="w-4 h-4 stroke-1.5 text-ink-gray-7" />
|
||||
</template>
|
||||
@@ -98,6 +105,7 @@
|
||||
type="date"
|
||||
:label="__('From')"
|
||||
v-model="from"
|
||||
:disabled="!isSessionUser()"
|
||||
@blur="
|
||||
() => {
|
||||
updateUnavailability.submit({
|
||||
@@ -111,6 +119,7 @@
|
||||
type="date"
|
||||
:label="__('To')"
|
||||
v-model="to"
|
||||
:disabled="!isSessionUser()"
|
||||
@blur="
|
||||
() => {
|
||||
updateUnavailability.submit({
|
||||
@@ -122,7 +131,7 @@
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div v-if="isSessionUser()">
|
||||
<h2 class="mb-4 text-lg font-semibold text-ink-gray-9">
|
||||
{{ __('My calendar') }}
|
||||
</h2>
|
||||
@@ -157,11 +166,19 @@ const props = defineProps({
|
||||
})
|
||||
|
||||
onMounted(() => {
|
||||
if (user.data?.name !== props.profile.data?.name) {
|
||||
if (user.data?.name !== props.profile.data?.name && !hasHigherAccess()) {
|
||||
window.location.href = `/user/${props.profile.data?.username}`
|
||||
}
|
||||
})
|
||||
|
||||
const hasHigherAccess = () => {
|
||||
return user.data?.is_evaluator || user.data?.is_moderator
|
||||
}
|
||||
|
||||
const isSessionUser = () => {
|
||||
return user.data?.email === props.profile.data?.email
|
||||
}
|
||||
|
||||
const showSlotsTemplate = ref(0)
|
||||
const from = ref(null)
|
||||
const to = ref(null)
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
</div>
|
||||
<div class="grid grid-cols-2 h-[calc(100vh_-_3rem)]">
|
||||
<div class="border-r py-5 px-8 h-full">
|
||||
<div class="font-semibold mb-2">
|
||||
<div class="font-semibold mb-2 text-ink-gray-9">
|
||||
{{ __('Problem Statement') }}
|
||||
</div>
|
||||
<div
|
||||
@@ -31,7 +31,7 @@
|
||||
</div>
|
||||
<div>
|
||||
<div class="flex items-center justify-between p-2 bg-surface-gray-2">
|
||||
<div class="font-semibold">
|
||||
<div class="font-semibold text-ink-gray-9">
|
||||
{{ exercise.doc?.language }}
|
||||
</div>
|
||||
<div class="space-x-2">
|
||||
@@ -89,7 +89,9 @@
|
||||
class="py-3"
|
||||
>
|
||||
<div class="flex items-center mb-3">
|
||||
<span class=""> {{ __('Test {0}').format(index + 1) }} - </span>
|
||||
<span class="text-ink-gray-9">
|
||||
{{ __('Test {0}').format(index + 1) }} -
|
||||
</span>
|
||||
<span
|
||||
class="font-semibold ml-2 mr-1"
|
||||
:class="
|
||||
@@ -112,13 +114,13 @@
|
||||
<div class="text-xs text-ink-gray-7">
|
||||
{{ __('Input') }}
|
||||
</div>
|
||||
<div>{{ testCase.input }}</div>
|
||||
<div class="text-ink-gray-9">{{ testCase.input }}</div>
|
||||
</div>
|
||||
<div class="space-y-2">
|
||||
<div class="text-xs text-ink-gray-7">
|
||||
{{ __('Your Output') }}
|
||||
</div>
|
||||
<div>
|
||||
<div class="text-ink-gray-9">
|
||||
{{ testCase.output }}
|
||||
</div>
|
||||
</div>
|
||||
@@ -126,7 +128,9 @@
|
||||
<div class="text-xs text-ink-gray-7">
|
||||
{{ __('Expected Output') }}
|
||||
</div>
|
||||
<div>{{ testCase.expected_output }}</div>
|
||||
<div class="text-ink-gray-9">
|
||||
{{ testCase.expected_output }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -153,6 +157,7 @@ import { Play, X, Check, Settings } from 'lucide-vue-next'
|
||||
import { sessionStore } from '@/stores/session'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { openSettings } from '@/utils'
|
||||
import { useSettings } from '@/stores/settings'
|
||||
|
||||
const user = inject<any>('$user')
|
||||
const code = ref<string | null>('')
|
||||
@@ -162,7 +167,8 @@ const errorMessage = ref<string | null>(null)
|
||||
const testCaseSection = ref<HTMLElement | null>(null)
|
||||
const testCases = ref<TestCase[]>([])
|
||||
const boilerplate = ref<string>('')
|
||||
const { brand, livecodeURL } = sessionStore()
|
||||
const { brand } = sessionStore()
|
||||
const { livecodeURL } = useSettings()
|
||||
const router = useRouter()
|
||||
const fromLesson = ref(false)
|
||||
const falconURL = ref<string>('https://falcon.frappe.io/')
|
||||
|
||||
@@ -25,17 +25,17 @@
|
||||
@click="openForm(program.name)"
|
||||
class="border rounded-md p-3 hover:border-outline-gray-3 cursor-pointer space-y-2"
|
||||
>
|
||||
<div class="text-lg font-semibold">
|
||||
<div class="text-lg font-semibold text-ink-gray-9">
|
||||
{{ program.name }}
|
||||
</div>
|
||||
<div class="flex items-center space-x-1">
|
||||
<div class="flex items-center space-x-1 text-ink-gray-7">
|
||||
<BookOpen class="h-4 w-4 stroke-1.5 mr-1" />
|
||||
<span>
|
||||
{{ program.course_count }}
|
||||
{{ program.course_count == 1 ? __('Course') : __('Courses') }}
|
||||
</span>
|
||||
</div>
|
||||
<div class="flex items-center space-x-1">
|
||||
<div class="flex items-center space-x-1 text-ink-gray-7">
|
||||
<User class="h-4 w-4 stroke-1.5 mr-1" />
|
||||
<span>
|
||||
{{ program.member_count || 0 }}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
class="sticky top-0 z-10 flex items-center justify-between border-b bg-surface-white px-3 py-2.5 sm:px-5"
|
||||
>
|
||||
<Breadcrumbs :items="breadcrumbs" />
|
||||
<div v-if="!readOnlyMode" class="space-x-2">
|
||||
<div v-if="!readOnlyMode" class="flex items-center space-x-2">
|
||||
<Badge v-if="quizDetails.isDirty" theme="orange">
|
||||
{{ __('Not Saved') }}
|
||||
</Badge>
|
||||
@@ -254,11 +254,7 @@ const props = defineProps({
|
||||
const questions = ref([])
|
||||
|
||||
onMounted(() => {
|
||||
if (
|
||||
props.quizID == 'new' &&
|
||||
!user.data?.is_moderator &&
|
||||
!user.data?.is_instructor
|
||||
) {
|
||||
if (!user.data?.is_moderator && !user.data?.is_instructor) {
|
||||
router.push({ name: 'Courses' })
|
||||
}
|
||||
if (props.quizID !== 'new') {
|
||||
|
||||
@@ -11,6 +11,32 @@
|
||||
>
|
||||
<Quiz :quizName="quizID" />
|
||||
</div>
|
||||
<div>
|
||||
<!--<button @click="toggleChatGPT" class="btn btn-primary">Решить с ChatGPT</button>-->
|
||||
</div>
|
||||
<div v-if="showChat" class="chat-container mt-4">
|
||||
<h2>AI-тьютор</h2>
|
||||
<div class="chat-window">
|
||||
<div id="chat-box" class="chat-box">
|
||||
<div v-for="(message, index) in chatHistory" :key="index" class="message">
|
||||
<span :class="{ 'user-message': message.isUser, 'ai-message': !message.isUser }">
|
||||
{{ message.text }}
|
||||
</span>
|
||||
</div>
|
||||
<div v-if="chatHistory.length === 0" class="placeholder-text">Загрузка ответа...</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="chat-input mt-4">
|
||||
<input
|
||||
v-model="userInput"
|
||||
type="text"
|
||||
placeholder="Введите ваше сообщение..."
|
||||
class="w-full p-2 border rounded-md"
|
||||
@keyup.enter="sendMessage"
|
||||
/>
|
||||
<button @click="sendMessage" class="btn btn-primary ml-2">Отправить</button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import Quiz from '@/components/Quiz.vue'
|
||||
@@ -24,6 +50,12 @@ const user = inject('$user')
|
||||
const router = useRouter()
|
||||
const fromLesson = ref(false)
|
||||
|
||||
const showChat = ref(false)
|
||||
const chatResponse = ref(null) // Временная переменная для текущего ответа
|
||||
const currentQuestionIndex = ref(0) // Индекс текущего вопроса
|
||||
const userInput = ref('') // Поле для ввода сообщения
|
||||
const chatHistory = ref([]) // История сообщений
|
||||
|
||||
onMounted(() => {
|
||||
if (!user.data) {
|
||||
router.push({ name: 'Courses' })
|
||||
@@ -41,6 +73,21 @@ const props = defineProps({
|
||||
},
|
||||
})
|
||||
|
||||
const quizData = createResource({
|
||||
url: 'frappe.client.get',
|
||||
params: {
|
||||
doctype: 'LMS Quiz',
|
||||
name: props.quizID,
|
||||
},
|
||||
auto: true,
|
||||
onSuccess: (data) => {
|
||||
console.log('[DEBUG] quizData onSuccess:', data)
|
||||
},
|
||||
onError: (err) => {
|
||||
console.error('[DEBUG] quizData onError:', err)
|
||||
},
|
||||
})
|
||||
|
||||
const title = createResource({
|
||||
url: 'frappe.client.get_value',
|
||||
params: {
|
||||
@@ -63,4 +110,283 @@ usePageMeta(() => {
|
||||
icon: brand.favicon,
|
||||
}
|
||||
})
|
||||
|
||||
const handleCurrentQuestion = (index) => {
|
||||
currentQuestionIndex.value = index
|
||||
console.log('[DEBUG] Текущий индекс вопроса из Quiz.vue:', index)
|
||||
}
|
||||
|
||||
const sendMessage = async () => {
|
||||
if (!userInput.value.trim()) return;
|
||||
|
||||
// Добавляем сообщение пользователя в историю
|
||||
chatHistory.value.push({ text: userInput.value, isUser: true });
|
||||
console.log('[DEBUG] Пользовательское сообщение:', userInput.value);
|
||||
|
||||
// Сбрасываем поле ввода
|
||||
const userMessage = userInput.value;
|
||||
userInput.value = '';
|
||||
|
||||
try {
|
||||
console.log('[DEBUG] Отправка запроса к прокси с пользовательским сообщением...');
|
||||
const res = await fetch('https://openai.enlightrussia.ru/chat', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'X-API-KEY': 'a38ed6248c82e31f014b7459479d4c75154e41a331f8a4d9b4afc4b10cbc884a'
|
||||
},
|
||||
body: JSON.stringify({
|
||||
prompt: generatePrompt(userMessage),
|
||||
model: 'gpt-4o',
|
||||
system_prompt: `Ты — опытный, доброжелательный и очень терпеливый учитель. Твоя задача — сопровождать ученика в самостоятельном разборе задачи, не раскрывая ему готовое решение и не выдавая правильного ответа напрямую.
|
||||
Ни при каких условиях нельзя выдавать готовый ответ. Ученик должен сам дойти до него. Обязательно нужно разбирать процесс решений по шагам, задавая ученику по одному вопросу за один шаг и ожидая от него ответа.
|
||||
Говори и отвечай на русском языке, простыми и понятными формулировками. Будь вежлив, отзывчив и дружелюбен. Показывай искреннее желание помочь. Подбадривай ученика, если он ошибается или затрудняется.`
|
||||
})
|
||||
});
|
||||
|
||||
console.log('[DEBUG] Ответ от прокси:', res.status, res.statusText);
|
||||
if (!res.ok) {
|
||||
const errorText = await res.text();
|
||||
console.log('[DEBUG] Ошибка ответа от прокси:', errorText);
|
||||
throw new Error(`Ошибка API: ${res.status} ${errorText}`);
|
||||
}
|
||||
|
||||
const data = await res.json();
|
||||
console.log('[DEBUG] Получен ответ от GPT:', data);
|
||||
chatHistory.value.push({ text: data.answer, isUser: false });
|
||||
} catch (err) {
|
||||
console.error('[DEBUG] Ошибка в sendMessage:', err);
|
||||
chatHistory.value.push({ text: `Ошибка: ${err.message}`, isUser: false });
|
||||
}
|
||||
};
|
||||
|
||||
const toggleChatGPT = async () => {
|
||||
console.log('[DEBUG] toggleChatGPT вызван, showChat:', showChat.value);
|
||||
showChat.value = !showChat.value;
|
||||
if (!showChat.value) {
|
||||
chatResponse.value = null;
|
||||
chatHistory.value = [];
|
||||
console.log('[DEBUG] Чат закрыт, chatResponse и история сброшены');
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
console.log('[DEBUG] Начало обработки, quizData:', quizData);
|
||||
if (quizData.loading) {
|
||||
chatHistory.value.push({ text: 'Загрузка данных квиза...', isUser: false });
|
||||
console.log('[DEBUG] Данные квиза загружаются');
|
||||
return;
|
||||
}
|
||||
|
||||
if (quizData.error) {
|
||||
throw new Error(`Ошибка загрузки квиза: ${quizData.error.message}`);
|
||||
}
|
||||
|
||||
const quiz = quizData.data;
|
||||
if (!quiz) {
|
||||
chatHistory.value.push({ text: 'Данные квиза не загружены', isUser: false });
|
||||
console.log('[DEBUG] quizData.data отсутствует');
|
||||
return;
|
||||
}
|
||||
const quiz_title = quiz.title || 'Без названия';
|
||||
console.log('[DEBUG] Получен quiz:', quiz, quiz_title);
|
||||
if (!quiz.questions || quiz.questions.length === 0) {
|
||||
chatHistory.value.push({ text: 'Вопросы не найдены', isUser: false });
|
||||
console.log('[DEBUG] Вопросы не найдены в quiz:', quiz);
|
||||
return;
|
||||
}
|
||||
|
||||
// Используем текущий индекс
|
||||
const currentQuestion = quiz.questions[currentQuestionIndex.value];
|
||||
if (!currentQuestion?.question_detail) {
|
||||
chatHistory.value.push({ text: 'Детали вопроса не найдены', isUser: false });
|
||||
console.log('[DEBUG] Текущий вопрос отсутствует:', currentQuestion);
|
||||
return;
|
||||
}
|
||||
|
||||
// Создаём и ждём загрузки данных вопроса
|
||||
const questionData = await new Promise((resolve) => {
|
||||
const resource = createResource({
|
||||
url: 'frappe.client.get',
|
||||
params: {
|
||||
doctype: 'LMS Question',
|
||||
name: currentQuestion.question,
|
||||
},
|
||||
auto: true,
|
||||
onSuccess: (data) => {
|
||||
console.log('[DEBUG] questionData onSuccess:', data);
|
||||
resolve(data);
|
||||
},
|
||||
onError: (err) => {
|
||||
console.error('[DEBUG] questionData onError:', err);
|
||||
resolve(null);
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
if (!questionData) {
|
||||
chatHistory.value.push({ text: 'Данные вопроса не загружены', isUser: false });
|
||||
console.log('[DEBUG] Данные вопроса отсутствуют');
|
||||
return;
|
||||
}
|
||||
|
||||
let questionDataPrompt, question, prompt, correct_answer, options = [], possibilitys = [];
|
||||
|
||||
if (questionData.type === "Choices") {
|
||||
question = currentQuestion.question_detail;
|
||||
options = [
|
||||
questionData.option_1 || '',
|
||||
questionData.option_2 || '',
|
||||
questionData.option_3 || '',
|
||||
questionData.option_4 || '',
|
||||
].filter(Boolean);
|
||||
correct_answer = null;
|
||||
for (let i = 1; i <= 4; i++) {
|
||||
if (questionData[`is_correct_${i}`] === 1) {
|
||||
correct_answer = questionData[`option_${i}`];
|
||||
console.log(`Правильный ответ ${i}:`, correct_answer);
|
||||
break;
|
||||
}
|
||||
}
|
||||
console.log('[DEBUG] Получен вопрос, варианты и ответ:', { question, options, correct_answer });
|
||||
questionDataPrompt = `Это вопрос типа: ${questionData.type} из квиза под названием ${quiz_title}.\n${question}\nВарианты ответа: ${options.join(', ')}\nПравильный ответ: ${correct_answer}`;
|
||||
console.log('[DEBUG] Данные для промта:', questionDataPrompt)
|
||||
prompt = generatePrompt(questionDataPrompt);
|
||||
} else if (questionData.type === "User Input") {
|
||||
question = currentQuestion.question_detail;
|
||||
possibilitys = [
|
||||
questionData.possibility_1 || '',
|
||||
questionData.possibility_2 || '',
|
||||
questionData.possibility_3 || '',
|
||||
questionData.possibility_4 || '',
|
||||
].filter(Boolean);
|
||||
console.log('[DEBUG] Получен вопрос и возможные варианты:', { question, possibilitys });
|
||||
questionDataPrompt = `Это вопрос типа: ${questionData.type} из квиза под названием ${quiz_title}.\n${question}\nВозможные варианты ответа: ${possibilitys.join(', ')}`;
|
||||
console.log('[DEBUG] Данные для промта:', questionDataPrompt)
|
||||
prompt = generatePrompt(questionDataPrompt);
|
||||
} else {
|
||||
question = currentQuestion.question_detail;
|
||||
console.log('[DEBUG] Получен вопрос:', { question });
|
||||
questionDataPrompt = `Это вопрос типа: ${questionData.type} из квиза под названием ${quiz_title}.\n${question}`;
|
||||
console.log('[DEBUG] Данные для промта:', questionDataPrompt)
|
||||
prompt = generatePrompt(questionDataPrompt);
|
||||
}
|
||||
|
||||
if (!question) {
|
||||
chatHistory.value.push({ text: 'Текст вопроса не найден', isUser: false });
|
||||
console.log('[DEBUG] Текст вопроса отсутствует в currentQuestion:', currentQuestion);
|
||||
return;
|
||||
}
|
||||
|
||||
console.log('[DEBUG] Сформирован промпт:', prompt);
|
||||
console.log('[DEBUG] Отправка запроса к прокси...');
|
||||
const res = await fetch('https://openai.enlightrussia.ru/chat', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'X-API-KEY': 'a38ed6248c82e31f014b7459479d4c75154e41a331f8a4d9b4afc4b10cbc884a'
|
||||
},
|
||||
body: JSON.stringify({
|
||||
prompt: prompt,
|
||||
model: 'gpt-4o',
|
||||
system_prompt: `1. Роль
|
||||
Ты — опытный, доброжелательный и очень терпеливый учитель. Твоя задача — сопровождать ученика в самостоятельном разборе задачи, не раскрывая ему готовое решение и не выдавая правильного ответа напрямую.
|
||||
Ни при каких условиях нельзя выдавать готовый ответ. Ученик должен сам дойти до него. Обязательно нужно разбирать процесс решений по шагам, задавая ученику по одному вопросу за один шаг и ожидая от него ответа.
|
||||
2. Стиль общения
|
||||
Говори и отвечай на русском языке, простыми и понятными формулировками.
|
||||
Будь вежлив, отзывчив и дружелюбен.
|
||||
Показывай искреннее желание помочь.
|
||||
Подбадривай ученика, если он ошибается или затрудняется.
|
||||
3. Пошаговый подход
|
||||
Начинай с запроса к ученику: попроси его показать или описать задание. Если возможно, пусть он загрузит скриншот, документ или текст задания.
|
||||
Не говори финальный ответ сразу. Вместо этого:
|
||||
1. Спроси, что ученик уже знает или какие идеи у него есть.
|
||||
2. Дай наводящие вопросы, чтобы понять, в каком месте он испытывает затруднение.
|
||||
3. Подсказывай принципы или формулы, которые могут помочь, но не окончательный результат.
|
||||
4. Делай это пошагово, пока ученик не найдёт решение самостоятельно (или не выскажет версию, близкую к правильной).
|
||||
При необходимости:
|
||||
Повтори ключевые определения и формулы.
|
||||
Предложи разобрать аналогичный, но более простой пример. Обязательно нужно разбирать процесс решений по шагам, задавая ученику по одному вопросу за один шаг и ожидая от него ответа. Ни в коем случае не давай сразу решение.`
|
||||
})
|
||||
});
|
||||
|
||||
console.log('[DEBUG] Ответ от прокси:', res.status, res.statusText);
|
||||
if (!res.ok) {
|
||||
const errorText = await res.text();
|
||||
console.log('[DEBUG] Ошибка ответа от прокси:', errorText);
|
||||
throw new Error(`Ошибка API: ${res.status} ${errorText}`);
|
||||
}
|
||||
|
||||
const data = await res.json();
|
||||
console.log('[DEBUG] Получен ответ от GPT:', data);
|
||||
chatHistory.value.push({ text: data.answer, isUser: false });
|
||||
chatResponse.value = null; // Сбрасываем chatResponse после добавления в историю
|
||||
} catch (err) {
|
||||
console.error('[DEBUG] Ошибка в toggleChatGPT:', err);
|
||||
chatHistory.value.push({ text: `Ошибка: ${err.message}`, isUser: false });
|
||||
chatResponse.value = null;
|
||||
}
|
||||
};
|
||||
|
||||
// Функция для генерации промпта с историей
|
||||
const generatePrompt = (userMsg) => {
|
||||
let prompt = `Текущая задача: "${userMsg}".\n`;
|
||||
prompt += 'История диалога:\n';
|
||||
chatHistory.value.forEach(msg => {
|
||||
prompt += `${msg.isUser ? 'Ученик' : 'Учитель'}: ${msg.text}\n`;
|
||||
});
|
||||
prompt += `\nНовое сообщение от ученика: ${userMsg}`;
|
||||
return prompt;
|
||||
};
|
||||
|
||||
//updateDocumentTitle(pageMeta)
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.chat-container {
|
||||
max-width: 700px;
|
||||
margin: 0 auto;
|
||||
padding: 20px;
|
||||
border: 1px solid #e5e7eb;
|
||||
border-radius: 8px;
|
||||
background: #fff;
|
||||
}
|
||||
.chat-window {
|
||||
max-height: 400px;
|
||||
overflow-y: auto;
|
||||
padding: 10px;
|
||||
border: 1px solid #e5e7eb;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.chat-box {
|
||||
min-height: 100px;
|
||||
}
|
||||
.placeholder-text {
|
||||
color: #94a3b8;
|
||||
text-align: center;
|
||||
}
|
||||
.message {
|
||||
margin: 5px 0;
|
||||
}
|
||||
.user-message {
|
||||
background-color: #e3f2fd;
|
||||
padding: 5px 10px;
|
||||
border-radius: 5px;
|
||||
display: inline-block;
|
||||
}
|
||||
.ai-message {
|
||||
background-color: #f0f0f0;
|
||||
padding: 5px 10px;
|
||||
border-radius: 5px;
|
||||
display: inline-block;
|
||||
}
|
||||
.chat-input input {
|
||||
border: 1px solid #e5e7eb;
|
||||
}
|
||||
.btn-primary {
|
||||
background-color: #2563eb;
|
||||
color: white;
|
||||
padding: 8px 16px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -56,8 +56,8 @@
|
||||
<span class="font-semibold"> {{ __('Question') }}: </span>
|
||||
<span class="leading-5" v-html="row.question"> </span>
|
||||
</div>
|
||||
<div class="">
|
||||
<span class="font-semibold"> {{ __('Answer') }} </span>
|
||||
<div class="text-ink-gray-9">
|
||||
<span class="font-semibold"> {{ __('Answer') }}: </span>
|
||||
<span class="leading-5" v-html="row.answer"></span>
|
||||
</div>
|
||||
<div class="grid grid-cols-2 gap-5">
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<Breadcrumbs :items="breadcrumbs" />
|
||||
</header>
|
||||
<div v-if="submissions.data?.length" class="md:w-3/4 md:mx-auto py-5 mx-5">
|
||||
<div class="text-xl font-semibold mb-5">
|
||||
<div class="text-xl font-semibold mb-5 text-ink-gray-9">
|
||||
{{ submissions.data[0].quiz_title }}
|
||||
</div>
|
||||
<ListView
|
||||
@@ -40,7 +40,7 @@
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
<EmptyState v-else />
|
||||
<EmptyState v-else type="Quiz Submissions" />
|
||||
</template>
|
||||
<script setup>
|
||||
import {
|
||||
|
||||
923
frontend/src/pages/SchoolchildrenProfile.vue
Normal file
923
frontend/src/pages/SchoolchildrenProfile.vue
Normal file
@@ -0,0 +1,923 @@
|
||||
<template>
|
||||
<div class="min-h-screen bg-white">
|
||||
<NoPermission v-if="!$user.data" />
|
||||
|
||||
<div v-else-if="profile.error" class="p-6">
|
||||
<div class="max-w-4xl mx-auto bg-white rounded-xl shadow-sm p-6 border border-red-200">
|
||||
<p class="text-red-500 text-lg font-medium">Ошибка загрузки профиля: {{ profile.error.message }}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-else-if="profile.data">
|
||||
<header class="sticky top-0 z-10 flex items-center justify-between bg-white px-6 py-4">
|
||||
<Breadcrumbs class="h-7" :items="breadcrumbs" />
|
||||
</header>
|
||||
|
||||
<div class="mx-auto max-w-6xl px-4 py-6">
|
||||
<!-- Profile Header -->
|
||||
<div v-if="!schoolProfileNotFound" class="bg-gradient-to-r from-teal-100 to-teal-600 rounded-2xl shadow-sm border border-gray-200 p-6 -mt-4 relative">
|
||||
<div class="flex flex-col md:flex-row md:items-center gap-6">
|
||||
<div class="flex-1">
|
||||
<h2 class="text-3xl font-bold text-gray-900">{{ displayName }}</h2>
|
||||
<div
|
||||
v-if="profile.data.bio"
|
||||
v-html="
|
||||
DOMPurify.sanitize(decodeEntities(profile.data.bio), {
|
||||
ALLOWED_TAGS: [
|
||||
'b',
|
||||
'i',
|
||||
'em',
|
||||
'strong',
|
||||
'a',
|
||||
'p',
|
||||
'br',
|
||||
'ul',
|
||||
'ol',
|
||||
'li',
|
||||
'img',
|
||||
],
|
||||
ALLOWED_ATTR: ['href', 'target', 'rel', 'src'],
|
||||
})
|
||||
"
|
||||
class="ProseMirror prose prose-table:table-fixed prose-td:p-2 prose-th:p-2 prose-td:border prose-th:border prose-td:border-outline-gray-2 prose-th:border-outline-gray-2 prose-td:relative prose-th:relative prose-th:bg-surface-gray-2 prose-sm max-w-none !whitespace-normal mt-2 text-gray-700"
|
||||
></div>
|
||||
</div>
|
||||
|
||||
<div v-if="$user.data && isSessionUser() && !schoolProfileNotFound" class="md:ml-auto">
|
||||
<Button @click="toggleEdit()" class="bg-white hover:bg-gray-100 px-5 py-2.5 rounded-lg transition-colors duration-200">
|
||||
<template #prefix>
|
||||
<Edit class="w-4 h-4 stroke-1.5" />
|
||||
</template>
|
||||
{{ editMode ? 'Отменить редактирование' : 'Редактировать профиль' }}
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- VIEW MODE -->
|
||||
<div v-if="!editMode" class="mt-6">
|
||||
<!-- Пустой профиль -->
|
||||
<div v-if="schoolProfileNotFound" class="bg-white rounded-2xl shadow-sm border border-gray-200 overflow-hidden">
|
||||
<div class="p-8 text-center">
|
||||
<div class="max-w-md mx-auto">
|
||||
<div class="mx-auto w-20 h-20 bg-teal-100 rounded-full flex items-center justify-center mb-6">
|
||||
<svg class="w-10 h-10 text-teal-600" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z" />
|
||||
</svg>
|
||||
</div>
|
||||
|
||||
<h3 class="text-2xl font-bold text-gray-900 mb-3">Профиль школьника еще не заполнен</h3>
|
||||
|
||||
<p class="text-gray-600 mb-6">
|
||||
Чтобы получить доступ ко всем возможностям платформы, заполните информацию о себе.
|
||||
Это поможет наставникам лучше понять ваши интересы и цели.
|
||||
</p>
|
||||
|
||||
<div class="bg-teal-50 border border-teal-100 rounded-lg p-5 mb-6 text-left">
|
||||
<h4 class="font-semibold text-teal-800 mb-3 flex items-center gap-2">
|
||||
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path fill-rule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd" />
|
||||
</svg>
|
||||
Заполнив профиль, вы получите:
|
||||
</h4>
|
||||
<ul class="space-y-2 text-sm text-gray-700">
|
||||
<li class="flex items-start gap-2">
|
||||
<svg class="w-4 h-4 text-teal-500 mt-0.5 flex-shrink-0" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd" />
|
||||
</svg>
|
||||
<span>Персонализированные рекомендации по обучению</span>
|
||||
</li>
|
||||
<li class="flex items-start gap-2">
|
||||
<svg class="w-4 h-4 text-teal-500 mt-0.5 flex-shrink-0" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd" />
|
||||
</svg>
|
||||
<span>Подбор наставников по вашим интересам</span>
|
||||
</li>
|
||||
<li class="flex items-start gap-2">
|
||||
<svg class="w-4 h-4 text-teal-500 mt-0.5 flex-shrink-0" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd" />
|
||||
</svg>
|
||||
<span>Доступ к закрытым мероприятиям и курсам</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<Button
|
||||
@click="toggleEdit()"
|
||||
class="bg-teal-600 hover:bg-teal-700 text-white px-8 py-3 rounded-lg font-medium transition-colors duration-200 shadow-sm hover:shadow-md"
|
||||
>
|
||||
<template #prefix>
|
||||
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536 3.536L6.5 21.036H3v-3.572L16.732 3.732z" />
|
||||
</svg>
|
||||
</template>
|
||||
Заполнить профиль школьника
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Загружающийся профиль -->
|
||||
<div v-else-if="schoolProfile.loading" class="bg-white rounded-2xl shadow-sm border border-gray-200 p-8">
|
||||
<div class="flex items-center justify-center py-12">
|
||||
<div class="animate-spin rounded-full h-12 w-12 border-b-2 border-primary-600"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Ошибка загрузки (кроме DoesNotExistError) -->
|
||||
<div v-else-if="schoolProfile.error && !schoolProfileNotFound" class="bg-white rounded-2xl shadow-sm border border-red-200 p-6">
|
||||
<p class="text-red-500 text-lg font-medium">Ошибка загрузки данных школьника: {{ schoolProfile.error.message }}</p>
|
||||
</div>
|
||||
|
||||
<!-- Загруженный профиль -->
|
||||
<div v-else-if="schoolProfile.data && !schoolProfileNotFound" class="space-y-6">
|
||||
<!-- Основная информация -->
|
||||
<div class="bg-white rounded-2xl shadow-sm border border-gray-200 overflow-hidden">
|
||||
<div class="px-6 py-4 border-b border-gray-100 bg-teal-400">
|
||||
<h3 class="text-xl font-semibold text-white">Основная информация</h3>
|
||||
</div>
|
||||
<div class="p-6">
|
||||
<div class="grid grid-cols-1 lg:grid-cols-2 gap-6">
|
||||
<div class="space-y-4">
|
||||
<div class="flex items-start">
|
||||
<span class="inline-block w-48 text-gray-700 font-medium">Фамилия:</span>
|
||||
<span class="text-gray-900">{{ schoolProfile.data.last_name || '—' }}</span>
|
||||
</div>
|
||||
<div class="flex items-start">
|
||||
<span class="inline-block w-48 text-gray-700 font-medium">Имя:</span>
|
||||
<span class="text-gray-900">{{ schoolProfile.data.first_name || '—' }}</span>
|
||||
</div>
|
||||
<div class="flex items-start">
|
||||
<span class="inline-block w-48 text-gray-700 font-medium">Отчество:</span>
|
||||
<span class="text-gray-900">{{ schoolProfile.data.middle_name || '—' }}</span>
|
||||
</div>
|
||||
<div class="flex items-start">
|
||||
<span class="inline-block w-48 text-gray-700 font-medium">Дата рождения:</span>
|
||||
<span class="text-gray-900">{{ formattedDate(schoolProfile.data.birth_date) || '—' }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="space-y-4">
|
||||
<div class="flex items-start">
|
||||
<span class="inline-block w-48 text-gray-700 font-medium">Школа:</span>
|
||||
<span class="text-gray-900">{{ schoolProfile.data.school || '—' }}</span>
|
||||
</div>
|
||||
<div class="flex items-start">
|
||||
<span class="inline-block w-48 text-gray-700 font-medium">Класс:</span>
|
||||
<span class="text-gray-900">{{ schoolProfile.data.grade || '—' }}</span>
|
||||
</div>
|
||||
<div class="flex items-start">
|
||||
<span class="inline-block w-48 text-gray-700 font-medium">Телефон:</span>
|
||||
<span class="text-gray-900 font-mono">{{ maskPrivate(schoolProfile.data.phone) }}</span>
|
||||
</div>
|
||||
<div class="flex items-start">
|
||||
<span class="inline-block w-48 text-gray-700 font-medium">Email:</span>
|
||||
<span class="text-gray-900 font-mono">{{ maskPrivate(schoolProfile.data.email_private) }}</span>
|
||||
</div>
|
||||
<div class="flex items-start">
|
||||
<span class="inline-block w-48 text-gray-700 font-medium">Telegram:</span>
|
||||
<div class="flex-1">
|
||||
<a v-if="schoolProfile.data.telegram"
|
||||
:href="formatTelegram(schoolProfile.data.telegram)"
|
||||
target="_blank"
|
||||
class="inline-flex items-center gap-2 text-primary-600 hover:text-primary-700 font-medium transition-colors">
|
||||
<span>{{ schoolProfile.data.telegram.replace('@', '') }}</span>
|
||||
<svg class="w-4 h-4" fill="currentColor" viewBox="0 0 24 24">
|
||||
<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm4.64 6.8c-.15 1.58-.8 5.42-1.13 7.19-.14.75-.42 1-.68 1.03-.58.05-1.02-.38-1.58-.75-.88-.58-1.38-.94-2.23-1.5-.99-.65-.35-1.01.22-1.59.15-.15 2.71-2.48 2.76-2.69.01-.03.01-.14-.06-.2-.07-.06-.17-.04-.24-.02-.1.02-1.69 1.09-4.78 3.2-.45.31-.86.46-1.23.45-.41-.01-1.2-.23-1.79-.42-.72-.23-1.29-.36-1.24-.76.03-.24.37-.48 1.01-.74 3.97-1.67 6.62-2.77 7.94-3.31 3.26-1.33 3.94-1.56 4.38-1.56.08 0 .27.02.39.12.1.08.13.19.14.27-.01.06.01.24 0 .38z"/>
|
||||
</svg>
|
||||
</a>
|
||||
<span v-else class="text-gray-500">—</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ЕГЭ и Предметы для обучения -->
|
||||
<div class="grid grid-cols-1 lg:grid-cols-2 gap-6">
|
||||
<div class="bg-white rounded-2xl shadow-sm border border-gray-200 overflow-hidden">
|
||||
<div class="px-6 py-4 border-b border-gray-100 bg-teal-400">
|
||||
<h3 class="text-xl font-semibold text-white">ЕГЭ (планируется)</h3>
|
||||
</div>
|
||||
<div class="p-6">
|
||||
<div v-if="schoolProfile.data.exams && schoolProfile.data.exams.length > 0" class="flex flex-wrap gap-2">
|
||||
<span v-for="exam in schoolProfile.data.exams" :key="exam"
|
||||
class="inline-flex items-center px-3 py-1 rounded-full text-sm font-medium bg-teal-100">
|
||||
{{ exam }}
|
||||
</span>
|
||||
</div>
|
||||
<p v-else class="text-gray-500 italic">Не указано</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bg-white rounded-2xl shadow-sm border border-gray-200 overflow-hidden">
|
||||
<div class="px-6 py-4 border-b border-gray-100 bg-teal-400">
|
||||
<h3 class="text-xl font-semibold text-white">Чему хочется научиться</h3>
|
||||
</div>
|
||||
<div class="p-6">
|
||||
<div v-if="schoolProfile.data.learn_subjects && schoolProfile.data.learn_subjects.length > 0" class="flex flex-wrap gap-2">
|
||||
<span v-for="subject in schoolProfile.data.learn_subjects" :key="subject"
|
||||
class="inline-flex items-center px-3 py-1 rounded-full text-sm font-medium bg-teal-100">
|
||||
{{ subject }}
|
||||
</span>
|
||||
</div>
|
||||
<p v-else class="text-gray-500 italic">Не указано</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- О себе, интересах и мечтах -->
|
||||
<div class="grid grid-cols-1 lg:grid-cols-3 gap-6">
|
||||
<div class="bg-white rounded-2xl shadow-sm border border-gray-200 overflow-hidden">
|
||||
<div class="px-6 py-4 border-b border-gray-100 bg-teal-400">
|
||||
<h3 class="text-xl font-semibold text-white">Коротко о своих интересах</h3>
|
||||
</div>
|
||||
<div class="p-6">
|
||||
<p class="text-gray-700 leading-relaxed whitespace-pre-line">{{ schoolProfile.data.interests || 'Информация не указана' }}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bg-white rounded-2xl shadow-sm border border-gray-200 overflow-hidden">
|
||||
<div class="px-6 py-4 border-b border-gray-100 bg-teal-400">
|
||||
<h3 class="text-xl font-semibold text-white">Коротко о себе</h3>
|
||||
</div>
|
||||
<div class="p-6">
|
||||
<p class="text-gray-700 leading-relaxed whitespace-pre-line">{{ schoolProfile.data.about_me || 'Информация не указана' }}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bg-white rounded-2xl shadow-sm border border-gray-200 overflow-hidden">
|
||||
<div class="px-6 py-4 border-b border-gray-100 bg-teal-400">
|
||||
<h3 class="text-xl font-semibold text-white">Коротко о мечтах</h3>
|
||||
</div>
|
||||
<div class="p-6">
|
||||
<p class="text-gray-700 leading-relaxed whitespace-pre-line">{{ schoolProfile.data.dreams || 'Информация не указана' }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-else class="bg-white rounded-2xl shadow-sm border border-gray-200 p-8">
|
||||
<div class="text-center py-12">
|
||||
<div class="mx-auto w-16 h-16 bg-gray-100 rounded-full flex items-center justify-center mb-4">
|
||||
<svg class="w-8 h-8 text-gray-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"/>
|
||||
</svg>
|
||||
</div>
|
||||
<h3 class="text-xl font-semibold text-gray-900 mb-2">Данные профиля не найдены</h3>
|
||||
<p class="text-gray-600">Информация о школьнике отсутствует</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- EDIT MODE -->
|
||||
<div v-else class="mt-6">
|
||||
<div class="bg-white rounded-2xl shadow-sm border border-gray-200 overflow-hidden">
|
||||
<div class="px-6 py-4 border-b border-gray-100 bg-teal-400">
|
||||
<h3 class="text-xl font-semibold text-white">Редактирование профиля школьника</h3>
|
||||
<p class="text-sm text-gray-200 mt-1">Заполните информацию о себе</p>
|
||||
</div>
|
||||
|
||||
<div class="p-6">
|
||||
<div class="grid grid-cols-1 lg:grid-cols-2 gap-6">
|
||||
<!-- Левая колонка -->
|
||||
<div class="space-y-6">
|
||||
<h4 class="text-lg font-semibold text-gray-900 border-b pb-2">Личная информация</h4>
|
||||
|
||||
<Input
|
||||
v-model="form.last_name"
|
||||
label="Фамилия"
|
||||
class="bg-gray-50 border-gray-300 focus:border-primary-500 focus:ring-primary-500"
|
||||
/>
|
||||
|
||||
<Input
|
||||
v-model="form.first_name"
|
||||
label="Имя"
|
||||
class="bg-gray-50 border-gray-300 focus:border-primary-500 focus:ring-primary-500"
|
||||
/>
|
||||
|
||||
<Input
|
||||
v-model="form.middle_name"
|
||||
label="Отчество"
|
||||
class="bg-gray-50 border-gray-300 focus:border-primary-500 focus:ring-primary-500"
|
||||
/>
|
||||
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-700 mb-2">Дата рождения</label>
|
||||
<DatePicker
|
||||
v-model="form.birth_date"
|
||||
class="w-full bg-gray-50 border-gray-300 rounded-lg focus:border-primary-500 focus:ring-primary-500"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<Input
|
||||
v-model="form.phone"
|
||||
label="Телефон (не публиковать)"
|
||||
placeholder="+7 (XXX) XXX-XX-XX"
|
||||
class="bg-gray-50 border-gray-300 focus:border-primary-500 focus:ring-primary-500"
|
||||
/>
|
||||
|
||||
<Input
|
||||
v-model="form.email_private"
|
||||
label="Email (не публиковать)"
|
||||
type="email"
|
||||
placeholder="example@email.com"
|
||||
class="bg-gray-50 border-gray-300 focus:border-primary-500 focus:ring-primary-500"
|
||||
/>
|
||||
|
||||
<Input
|
||||
v-model="form.telegram"
|
||||
label="Telegram"
|
||||
placeholder="username или t.me/username"
|
||||
class="bg-gray-50 border-gray-300 focus:border-primary-500 focus:ring-primary-500"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<!-- Правая колонка -->
|
||||
<div class="space-y-6">
|
||||
<h4 class="text-lg font-semibold text-gray-900 border-b pb-2">Образование</h4>
|
||||
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-700 mb-2">Школа</label>
|
||||
<input
|
||||
type="text"
|
||||
v-model="schoolQuery"
|
||||
@input="debouncedSearchSchool"
|
||||
class="w-full bg-gray-50 border border-gray-300 rounded-lg px-4 py-2.5 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-transparent transition-colors"
|
||||
placeholder="Начните вводить название школы"
|
||||
/>
|
||||
<div v-if="schoolResults.length" class="mt-2 border border-gray-300 rounded-lg overflow-hidden shadow-lg bg-white">
|
||||
<div
|
||||
v-for="s in schoolResults"
|
||||
:key="s.school"
|
||||
class="p-3 cursor-pointer hover:bg-primary-50 border-b border-gray-100 last:border-b-0 transition-colors"
|
||||
@click="selectSchool(s)"
|
||||
>
|
||||
<div class="font-medium text-gray-900">{{ s.school }}</div>
|
||||
<div class="text-xs text-gray-500 mt-1">{{ s.adress }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="form.school_name && !schoolResults.length" class="mt-2 text-sm text-gray-600">
|
||||
<span class="font-medium">Выбрана:</span> {{ form.school_name }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-700 mb-2">Класс</label>
|
||||
<Select
|
||||
v-model="form.grade"
|
||||
:options="['10', '11']"
|
||||
class="bg-gray-50 border-gray-300 focus:border-primary-500 focus:ring-primary-500"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="block mb-3 font-medium text-gray-700">ЕГЭ (отметьте):</label>
|
||||
<div class="grid grid-cols-2 gap-3 max-h-48 overflow-y-auto p-3 border border-gray-200 rounded-lg bg-gray-50">
|
||||
<label v-for="e in examOptions" :key="e" class="flex items-center space-x-3 p-2 hover:bg-white rounded-md transition-colors cursor-pointer">
|
||||
<input type="checkbox" :value="e" v-model="form.exams"
|
||||
class="h-4 w-4 text-teal-600 focus:ring-teal-500 border-gray-300 rounded" />
|
||||
<span class="text-sm text-gray-700">{{ e }}</span>
|
||||
</label>
|
||||
</div>
|
||||
<p v-if="form.exams.length > 0" class="mt-2 text-sm text-gray-600">
|
||||
Выбрано: {{ form.exams.length }} предмет(ов)
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="block mb-3 font-medium text-gray-700">Чему хочется научиться:</label>
|
||||
<div class="grid grid-cols-2 gap-3 max-h-48 overflow-y-auto p-3 border border-gray-200 rounded-lg bg-gray-50">
|
||||
<label v-for="s in learnOptions" :key="s" class="flex items-center space-x-3 p-2 hover:bg-white rounded-md transition-colors cursor-pointer">
|
||||
<input type="checkbox" :value="s" v-model="form.learn_subjects"
|
||||
class="h-4 w-4 text-teal-600 focus:ring-teal-500 border-gray-300 rounded" />
|
||||
<span class="text-sm text-gray-700">{{ s }}</span>
|
||||
</label>
|
||||
</div>
|
||||
<p v-if="form.learn_subjects.length > 0" class="mt-2 text-sm text-gray-600">
|
||||
Выбрано: {{ form.learn_subjects.length }} направлений
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Текстовые поля -->
|
||||
<div class="mt-8 space-y-6">
|
||||
<h4 class="text-lg font-semibold text-gray-900 border-b pb-2">Дополнительная информация</h4>
|
||||
|
||||
<Textarea
|
||||
v-model="form.interests"
|
||||
label="Коротко о своих интересах (2-3 предложения)"
|
||||
rows="4"
|
||||
class="bg-gray-50 border-gray-300 focus:border-primary-500 focus:ring-primary-500"
|
||||
/>
|
||||
|
||||
<div class="grid grid-cols-1 lg:grid-cols-2 gap-6">
|
||||
<Textarea
|
||||
v-model="form.about_me"
|
||||
label="Коротко о себе"
|
||||
rows="4"
|
||||
class="bg-gray-50 border-gray-300 focus:border-primary-500 focus:ring-primary-500"
|
||||
/>
|
||||
|
||||
<Textarea
|
||||
v-model="form.dreams"
|
||||
label="Коротко о своих мечтах"
|
||||
rows="4"
|
||||
class="bg-gray-50 border-gray-300 focus:border-primary-500 focus:ring-primary-500"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Кнопки действий -->
|
||||
<div class="mt-8 pt-6 border-t border-gray-200 flex gap-3">
|
||||
<Button
|
||||
@click="saveProfile"
|
||||
:loading="saving"
|
||||
class="bg-teal-400 hover:bg-teal-700 text-white px-8 py-3 rounded-lg font-medium transition-colors duration-200 flex items-center gap-2"
|
||||
>
|
||||
{{ saving ? 'Сохранение...' : 'Сохранить изменения' }}
|
||||
</Button>
|
||||
|
||||
<Button
|
||||
variant="outline"
|
||||
@click="toggleEdit()"
|
||||
class="border-gray-300 text-gray-700 hover:bg-gray-50 px-6 py-3 rounded-lg font-medium transition-colors duration-200"
|
||||
>
|
||||
Отмена
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-else class="flex items-center justify-center min-h-screen">
|
||||
<div class="text-center">
|
||||
<div class="animate-spin rounded-full h-16 w-16 border-b-2 border-primary-600 mx-auto"></div>
|
||||
<p class="mt-4 text-lg text-gray-600">Загрузка профиля...</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
/* Плавные переходы для интерактивных элементов */
|
||||
.border-gray-300 {
|
||||
transition: border-color 0.2s ease;
|
||||
}
|
||||
|
||||
.bg-primary-50 {
|
||||
background-color: rgba(59, 130, 246, 0.05);
|
||||
}
|
||||
|
||||
/* Стилизация скроллбара для выпадающих списков */
|
||||
.overflow-y-auto::-webkit-scrollbar {
|
||||
width: 6px;
|
||||
}
|
||||
|
||||
.overflow-y-auto::-webkit-scrollbar-track {
|
||||
background: #f1f1f1;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.overflow-y-auto::-webkit-scrollbar-thumb {
|
||||
background: #c1c1c1;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.overflow-y-auto::-webkit-scrollbar-thumb:hover {
|
||||
background: #a1a1a1;
|
||||
}
|
||||
</style>
|
||||
|
||||
<!-- Скрипт остается без изменений -->
|
||||
|
||||
<script setup>
|
||||
import { ref, computed, inject, watch, onMounted } from 'vue';
|
||||
import { Breadcrumbs, createResource, Button, Input, DatePicker, Select, Textarea } from 'frappe-ui';
|
||||
import { sessionStore } from '@/stores/session';
|
||||
import NoPermission from '@/components/NoPermission.vue';
|
||||
import { Edit } from 'lucide-vue-next';
|
||||
import { convertToTitleCase, updateDocumentTitle } from '@/utils';
|
||||
import debounce from 'lodash/debounce';
|
||||
import { decodeEntities } from '@/utils'
|
||||
import DOMPurify from 'dompurify'
|
||||
|
||||
const { user } = sessionStore();
|
||||
const $user = inject('$user');
|
||||
const schoolProfileNotFound = ref(false);
|
||||
|
||||
// Логирование инициализации
|
||||
console.log('[DEBUG] Инициализация компонента:', {
|
||||
user: user,
|
||||
$user: $user.data,
|
||||
username: $user.data?.username,
|
||||
});
|
||||
|
||||
const props = defineProps({
|
||||
username: {
|
||||
type: String,
|
||||
required: false,
|
||||
default: '',
|
||||
},
|
||||
});
|
||||
|
||||
const effectiveUsername = computed(() => {
|
||||
const username = props.username || $user.data?.username || '';
|
||||
console.log('[DEBUG] Вычисление effectiveUsername:', { propsUsername: props.username, sessionUsername: $user.data?.username, result: username });
|
||||
return username;
|
||||
});
|
||||
|
||||
const editMode = ref(false);
|
||||
const saving = ref(false);
|
||||
|
||||
const examOptions = [
|
||||
'Русский язык', 'Математика(базовый)', 'Математика(профильный)', 'Физика', 'Химия', 'Информатика',
|
||||
'Биология', 'История', 'География', 'Английский язык', 'Немецкий язык', 'Французский язык', 'Испанский язык',
|
||||
'Китайский язык', 'Обществознание', 'Литература'
|
||||
];
|
||||
|
||||
const learnOptions = [
|
||||
'Программирование', 'Дизайн', 'Актерское мастерство', 'Риторика', 'Робототехника', 'Иностранные языки',
|
||||
'Математика углубленно', 'Физика углубленно'
|
||||
];
|
||||
|
||||
const profile = createResource({
|
||||
url: 'frappe.client.get',
|
||||
makeParams(values) {
|
||||
const username = effectiveUsername.value;
|
||||
console.log('[DEBUG] Запрос profile:', { doctype: 'User', filters: { username } });
|
||||
return {
|
||||
doctype: 'User',
|
||||
filters: { username },
|
||||
};
|
||||
},
|
||||
onSuccess(data) {
|
||||
console.log('[DEBUG] Профиль загружен:', data);
|
||||
},
|
||||
onError(error) {
|
||||
console.error('[DEBUG] Ошибка загрузки профиля:', error);
|
||||
window.frappe?.msgprint({
|
||||
title: 'Ошибка',
|
||||
message: 'Не удалось загрузить профиль пользователя: ' + (error.message || 'Неизвестная ошибка'),
|
||||
indicator: 'red',
|
||||
});
|
||||
},
|
||||
});
|
||||
|
||||
const schoolProfile = createResource({
|
||||
url: 'frappe.client.get',
|
||||
params: {
|
||||
doctype: 'Schoolchildren Profile',
|
||||
filters: { user:user },
|
||||
},
|
||||
auto: false,
|
||||
transform(data) {
|
||||
if (!data) {
|
||||
schoolProfileNotFound.value = true;
|
||||
return null;
|
||||
}
|
||||
let doc = data || {};
|
||||
console.log('[DEBUG] Данные schoolProfile до трансформации:', doc);
|
||||
try {
|
||||
doc.exams = doc.exams ? doc.exams.map(e => e.exam_subject) : [];
|
||||
doc.learn_subjects = doc.learn_subjects ? doc.learn_subjects.map(s => s.learn_subject) : [];
|
||||
} catch (e) {
|
||||
console.error('[DEBUG] Ошибка трансформации данных:', e);
|
||||
doc.exams = [];
|
||||
doc.learn_subjects = [];
|
||||
}
|
||||
console.log('[DEBUG] Данные schoolProfile после трансформации:', doc);
|
||||
return doc;
|
||||
},
|
||||
onSuccess(data) {
|
||||
console.log('[DEBUG] Профиль школьника загружен:', data);
|
||||
},
|
||||
onError(error) {
|
||||
// Проверяем, является ли ошибка "не найдено"
|
||||
if (error.exc_type === 'DoesNotExistError' || error.message?.includes('DoesNotExist')) {
|
||||
console.log('[DEBUG] Профиль школьника не найден, создаем новый');
|
||||
schoolProfileNotFound.value = true;
|
||||
} else {
|
||||
console.error('[DEBUG] Ошибка загрузки профиля школьника:', error);
|
||||
window.frappe?.msgprint({
|
||||
title: 'Ошибка',
|
||||
message: 'Не удалось загрузить профиль школьника: ' + (error.message || 'Неизвестная ошибка'),
|
||||
indicator: 'red',
|
||||
});
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
const form = ref({
|
||||
first_name: '',
|
||||
last_name: '',
|
||||
middle_name: '',
|
||||
birth_date: '',
|
||||
school: '',
|
||||
//school_name: '',
|
||||
grade: '',
|
||||
phone: '',
|
||||
email_private: '',
|
||||
telegram: '',
|
||||
exams: [],
|
||||
learn_subjects: [],
|
||||
interests: '',
|
||||
about_me: '',
|
||||
dreams: ''
|
||||
});
|
||||
|
||||
const breadcrumbs = computed(() => {
|
||||
const username = effectiveUsername.value;
|
||||
const crumbs = [
|
||||
{
|
||||
label: 'People',
|
||||
route: { name: 'People' },
|
||||
},
|
||||
{
|
||||
label: profile.data?.full_name || 'Профиль',
|
||||
route: username ? {
|
||||
name: 'Profile',
|
||||
params: { username },
|
||||
} : undefined,
|
||||
},
|
||||
];
|
||||
console.log('[DEBUG] Хлебные крошки:', crumbs);
|
||||
return crumbs;
|
||||
});
|
||||
|
||||
const pageMeta = computed(() => {
|
||||
const meta = {
|
||||
title: profile.data?.full_name || 'Профиль',
|
||||
description: profile.data?.headline || '',
|
||||
};
|
||||
console.log('[DEBUG] Мета-данные страницы:', meta);
|
||||
return meta;
|
||||
});
|
||||
|
||||
const displayName = computed(() => {
|
||||
if (!profile.data) {
|
||||
console.log('[DEBUG] displayName: profile.data не загружен');
|
||||
return 'Загрузка...';
|
||||
}
|
||||
const name = profile.data?.full_name || `${form.value.first_name || ''} ${form.value.last_name || ''}`.trim();
|
||||
console.log('[DEBUG] Отображаемое имя:', name);
|
||||
return name;
|
||||
});
|
||||
|
||||
const isSessionUser = () => {
|
||||
const sessionUser = $user.data?.username;
|
||||
const profileUser = effectiveUsername.value;
|
||||
const isSession = sessionUser === profileUser;
|
||||
console.log('[DEBUG] Проверка isSessionUser:', { sessionUser, profileUser, isSession });
|
||||
return isSession;
|
||||
};
|
||||
|
||||
function formattedDate(d) {
|
||||
if (!d) return '';
|
||||
try {
|
||||
return new Date(d).toLocaleDateString('ru-RU');
|
||||
} catch (e) {
|
||||
console.error('[DEBUG] Ошибка форматирования даты:', e, { date: d });
|
||||
return d;
|
||||
}
|
||||
}
|
||||
|
||||
function maskPrivate(val) {
|
||||
if (!val) return '-';
|
||||
if (val.includes('@')) {
|
||||
const parts = val.split('@');
|
||||
return parts[0].slice(0, 1) + '***@' + parts[1];
|
||||
}
|
||||
return val.slice(0, 3) + '***' + val.slice(-2);
|
||||
}
|
||||
|
||||
function formatTelegram(t) {
|
||||
if (!t) return '';
|
||||
if (t.startsWith('t.me/') || t.startsWith('https://t.me/')) return (t.startsWith('http') ? t : 'https://' + t);
|
||||
return 'https://t.me/' + t.replace(/^@/, '');
|
||||
}
|
||||
|
||||
function fillFormFromProfile() {
|
||||
console.log('[DEBUG] Заполнение формы:', {
|
||||
schoolProfile: schoolProfile.data,
|
||||
profile: profile.data,
|
||||
currentForm: JSON.stringify(form.value, null, 2),
|
||||
});
|
||||
form.value.first_name = schoolProfile.data?.first_name || profile.data?.first_name || '';
|
||||
form.value.last_name = schoolProfile.data?.last_name || profile.data?.last_name || '';
|
||||
form.value.middle_name = schoolProfile.data?.middle_name || '';
|
||||
form.value.birth_date = schoolProfile.data?.birth_date || '';
|
||||
form.value.school = schoolProfile.data?.school || '';
|
||||
form.value.grade = schoolProfile.data?.grade || '';
|
||||
form.value.phone = schoolProfile.data?.phone || '';
|
||||
form.value.email_private = schoolProfile.data?.email_private || '';
|
||||
form.value.telegram = schoolProfile.data?.telegram || '';
|
||||
form.value.exams = schoolProfile.data?.exams ? schoolProfile.data.exams : [];
|
||||
form.value.learn_subjects = schoolProfile.data?.learn_subjects ? schoolProfile.data.learn_subjects : [];
|
||||
form.value.interests = schoolProfile.data?.interests || '';
|
||||
form.value.about_me = schoolProfile.data?.about_me || '';
|
||||
form.value.dreams = schoolProfile.data?.dreams || '';
|
||||
console.log('[DEBUG] Форма после заполнения:', JSON.stringify(form.value, null, 2));
|
||||
}
|
||||
|
||||
|
||||
function toggleEdit() {
|
||||
editMode.value = !editMode.value;
|
||||
if (editMode.value) fillFormFromProfile();
|
||||
console.log('[DEBUG] Переключение режима редактирования:', { editMode: editMode.value });
|
||||
}
|
||||
|
||||
function validateExams(exams) {
|
||||
console.log('[DEBUG] Валидация exams:', { exams, validOptions: examOptions });
|
||||
return exams.every(exam => examOptions.includes(exam));
|
||||
}
|
||||
|
||||
function validateLearnSubjects(subjects) {
|
||||
console.log('[DEBUG] Валидация learn_subjects:', { subjects, validOptions: learnOptions });
|
||||
return subjects.every(subject => learnOptions.includes(subject));
|
||||
}
|
||||
|
||||
async function saveProfile() {
|
||||
console.log('[DEBUG] Сохранение профиля:', { form: form.value });
|
||||
saving.value = true;
|
||||
try {
|
||||
// Создаём копию данных формы
|
||||
const formData = { ...form.value };
|
||||
console.log('[DEBUG] Копия formData:', JSON.stringify(formData, null, 2));
|
||||
|
||||
// Обновление full_name в User, если нужно
|
||||
if (formData.first_name || formData.last_name) {
|
||||
const fullName = `${formData.first_name || ''} ${formData.last_name || ''}`.trim();
|
||||
console.log('[DEBUG] Обновление User.full_name:', { name: profile.data?.name, fullName });
|
||||
await createResource({
|
||||
url: 'frappe.client.set_value',
|
||||
params: {
|
||||
doctype: 'User',
|
||||
name: profile.data?.name,
|
||||
fieldname: 'full_name',
|
||||
value: fullName,
|
||||
},
|
||||
}).submit();
|
||||
}
|
||||
|
||||
// Получаем docname
|
||||
let docname = '';
|
||||
try {
|
||||
await schoolProfile.reload();
|
||||
console.log('[DEBUG] Schoolprofile:', { schoolProfile });
|
||||
docname = schoolProfile?.data?.name;
|
||||
console.log('[DEBUG] Выбранное имя документа:', docname);
|
||||
} catch (error) {
|
||||
console.log('[DEBUG] Ошибка загрузки schoolProfile, продолжаем с profile:', error.message);
|
||||
}
|
||||
|
||||
// Формируем payload из копии данных формы
|
||||
let payload = {
|
||||
doctype: 'Schoolchildren Profile',
|
||||
user: profile.data?.name,
|
||||
first_name: formData.first_name,
|
||||
last_name: formData.last_name,
|
||||
middle_name: formData.middle_name,
|
||||
birth_date: formData.birth_date,
|
||||
school: formData.school || '',
|
||||
grade: formData.grade,
|
||||
phone: formData.phone,
|
||||
email_private: formData.email_private,
|
||||
telegram: formData.telegram,
|
||||
exams: Array.isArray(formData.exams) ? formData.exams.map(exam => ({ exam_subject: exam })) : [],
|
||||
learn_subjects: Array.isArray(formData.learn_subjects) ? formData.learn_subjects.map(subject => ({ learn_subject: subject })) : [],
|
||||
interests: formData.interests,
|
||||
about_me: formData.about_me,
|
||||
dreams: formData.dreams,
|
||||
last_updated: new Date().toISOString(),
|
||||
};
|
||||
console.log('[DEBUG] Сохранение Schoolchildren Profile (payload):', { docname, payload });
|
||||
|
||||
// Сохранение или создание документа
|
||||
if (docname) {
|
||||
await createResource({
|
||||
url: 'frappe.client.save',
|
||||
params: { doc: { ...schoolProfile.data, ...payload } },
|
||||
}).submit();
|
||||
} else {
|
||||
await createResource({
|
||||
url: 'frappe.client.insert',
|
||||
params: { doc: payload },
|
||||
}).submit();
|
||||
}
|
||||
|
||||
editMode.value = false;
|
||||
schoolProfileNotFound.value = false;
|
||||
if (window.frappe && window.frappe.msgprint) window.frappe.msgprint('Профиль сохранён');
|
||||
console.log('[DEBUG] Профиль успешно сохранён');
|
||||
} catch (e) {
|
||||
console.error('[DEBUG] Ошибка при сохранении профиля:', e);
|
||||
if (window.frappe && window.frappe.msgprint) window.frappe.msgprint({
|
||||
title: 'Ошибка',
|
||||
message: (e && e.message) || 'Ошибка при сохранении',
|
||||
indicator: 'red',
|
||||
});
|
||||
} finally {
|
||||
saving.value = false;
|
||||
}
|
||||
await schoolProfile.reload();
|
||||
}
|
||||
|
||||
const schoolQuery = ref('');
|
||||
const schoolResults = ref([]);
|
||||
|
||||
async function searchSchool(q) {
|
||||
if (!q) {
|
||||
schoolResults.value = [];
|
||||
return;
|
||||
}
|
||||
try {
|
||||
console.log('[DEBUG] Поиск школы:', { query: q });
|
||||
const res = await createResource({
|
||||
url: 'frappe.client.get_list',
|
||||
params: {
|
||||
doctype: 'Schools',
|
||||
fields: ['school', 'address'],
|
||||
filters: [['school', 'like', '%' + q + '%']],
|
||||
limit_page_length: 20,
|
||||
},
|
||||
}).submit();
|
||||
schoolResults.value = res || [];
|
||||
console.log('[DEBUG] Результаты поиска школы:', schoolResults.value);
|
||||
} catch (e) {
|
||||
schoolResults.value = [];
|
||||
console.error('[DEBUG] Ошибка поиска школы:', e);
|
||||
}
|
||||
}
|
||||
|
||||
const debouncedSearchSchool = debounce(() => searchSchool(schoolQuery.value), 300);
|
||||
|
||||
function selectSchool(s) {
|
||||
form.value.school = s.school;
|
||||
//form.value.school_name = s.school_name;
|
||||
schoolResults.value = [];
|
||||
schoolQuery.value = s.school;
|
||||
console.log('[DEBUG] Выбрана школа:', { school: s });
|
||||
console.log('[DEBUG] Форма после заполнения:', JSON.stringify(form.value, null, 2));
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
console.log('[DEBUG] Компонент смонтирован:', {
|
||||
propsUsername: props.username,
|
||||
sessionUsername: $user.data?.username,
|
||||
user: user,
|
||||
$user: $user.data,
|
||||
});
|
||||
if ($user.data) {
|
||||
console.log('[DEBUG] Запуск profile.reload()');
|
||||
profile.reload();
|
||||
}
|
||||
});
|
||||
|
||||
watch(
|
||||
() => props.username,
|
||||
(newUsername, oldUsername) => {
|
||||
console.log('[DEBUG] Изменение props.username:', { old: oldUsername, new: newUsername });
|
||||
profile.reload();
|
||||
}
|
||||
);
|
||||
|
||||
watch(
|
||||
() => profile.data,
|
||||
(newData, oldData) => {
|
||||
console.log('[DEBUG] Изменение profile.data:', { old: oldData, new: newData });
|
||||
if (newData) {
|
||||
console.log('[DEBUG] Запуск schoolProfile.reload()');
|
||||
schoolProfile.reload();
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
watch(
|
||||
() => schoolProfile.data,
|
||||
(newData, oldData) => {
|
||||
console.log('[DEBUG] Изменение schoolProfile.data:', { old: oldData, new: newData });
|
||||
if (newData && !editMode.value && !schoolProfileNotFound.value) {
|
||||
console.log('[DEBUG] Заполнение формы из schoolProfile');
|
||||
fillFormFromProfile();
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
watch(
|
||||
() => effectiveUsername.value,
|
||||
(newUsername) => {
|
||||
console.log('[DEBUG] Изменение effectiveUsername для schoolProfile:', newUsername);
|
||||
schoolProfile.update({
|
||||
params: {
|
||||
doctype: 'Schoolchildren Profile',
|
||||
filters: { user: newUsername },
|
||||
},
|
||||
});
|
||||
}
|
||||
);
|
||||
</script>
|
||||
1133
frontend/src/pages/StudentProfile.vue
Normal file
1133
frontend/src/pages/StudentProfile.vue
Normal file
File diff suppressed because it is too large
Load Diff
7
frontend/src/pages/Test.vue
Normal file
7
frontend/src/pages/Test.vue
Normal file
@@ -0,0 +1,7 @@
|
||||
<template>
|
||||
<div class="min-h-screen p-6">
|
||||
<div class="text-center mb-8">
|
||||
<h1 class="text-3xl font-bold text-gray-800 mb-2">Тестовая страница</h1>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@@ -9,6 +9,43 @@ const routes = [
|
||||
name: 'Home',
|
||||
component: () => import('@/pages/Home/Home.vue'),
|
||||
},
|
||||
//Test of page
|
||||
{
|
||||
path: '/test',
|
||||
name: 'Test',
|
||||
component: () => import('@/pages/Test.vue'),
|
||||
},
|
||||
{
|
||||
path: '/schoolchildren',
|
||||
name: 'SchoolchildrenProfile',
|
||||
component: () => import('@/pages/SchoolchildrenProfile.vue'),
|
||||
},
|
||||
{
|
||||
path: '/student',
|
||||
name: 'StudentProfile',
|
||||
component: () => import('@/pages/StudentProfile.vue'),
|
||||
},
|
||||
{
|
||||
path: '/coursecreator',
|
||||
name: 'CourseCreatorProfile',
|
||||
component: () => import('@/pages/CourseCreatorProfile.vue'),
|
||||
},
|
||||
{
|
||||
path: '/parent',
|
||||
name: 'ParentProfile',
|
||||
component: () => import('@/pages/ParentProfile.vue'),
|
||||
},
|
||||
{
|
||||
path: '/mypoints',
|
||||
name: 'MyPoints',
|
||||
component: () => import('@/pages/MyPoints.vue'),
|
||||
},
|
||||
{
|
||||
path: '/leaderboard',
|
||||
name: 'LeaderBoard',
|
||||
component: () => import('@/pages/LeaderBoard.vue'),
|
||||
},
|
||||
// End of test of page
|
||||
{
|
||||
path: '/courses',
|
||||
name: 'Courses',
|
||||
|
||||
@@ -54,16 +54,6 @@ export const sessionStore = defineStore('lms-session', () => {
|
||||
},
|
||||
})
|
||||
|
||||
const livecodeURL = createResource({
|
||||
url: 'frappe.client.get_single_value',
|
||||
params: {
|
||||
doctype: 'LMS Settings',
|
||||
field: 'livecode_url',
|
||||
},
|
||||
cache: 'livecodeURL',
|
||||
auto: user.value ? true : false,
|
||||
})
|
||||
|
||||
return {
|
||||
user,
|
||||
isLoggedIn,
|
||||
@@ -71,6 +61,5 @@ export const sessionStore = defineStore('lms-session', () => {
|
||||
logout,
|
||||
brand,
|
||||
branding,
|
||||
livecodeURL,
|
||||
}
|
||||
})
|
||||
|
||||
@@ -41,6 +41,13 @@ export const useSettings = defineStore('settings', () => {
|
||||
auto: false,
|
||||
})
|
||||
|
||||
const livecodeURL = createResource({
|
||||
url: 'lms.lms.api.get_lms_setting',
|
||||
params: { field: 'livecode_url' },
|
||||
auto: true,
|
||||
cache: ['livecodeURL'],
|
||||
})
|
||||
|
||||
return {
|
||||
isSettingsOpen,
|
||||
activeTab,
|
||||
@@ -49,5 +56,6 @@ export const useSettings = defineStore('settings', () => {
|
||||
contactUsEmail,
|
||||
contactUsURL,
|
||||
sidebarSettings,
|
||||
livecodeURL,
|
||||
}
|
||||
})
|
||||
|
||||
@@ -239,6 +239,15 @@ export function getEditorTools() {
|
||||
'https://codesandbox.io/embed/<%= remote_id %>?view=editor+%2B+preview&module=%2Findex.html',
|
||||
html: "<iframe style='width: 100%; height: 500px; border: 0; border-radius: 4px; overflow: hidden;' sandbox='allow-mods allow-forms allow-popups allow-scripts allow-same-origin' frameborder='0' allowfullscreen='true'></iframe>",
|
||||
},
|
||||
rutube: {
|
||||
regex: /(?:https?:\/\/)?(?:www\.)?rutube\.ru\/(?:video\/|play\/embed\/)([^#&?=]*)/,
|
||||
embedUrl:
|
||||
'https://rutube.ru/play/embed/<%= remote_id %>',
|
||||
html: '<iframe style="width:100%; height: 30rem;" frameborder="0" allowfullscreen></iframe>',
|
||||
height: 320,
|
||||
width: 580,
|
||||
id: ([id]) => id,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
5568
frontend/yarn.lock
Normal file
5568
frontend/yarn.lock
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1 +1 @@
|
||||
__version__ = "2.38.0"
|
||||
__version__ = "2.39.2"
|
||||
|
||||
@@ -20,7 +20,8 @@ def get_sales_data(site_info):
|
||||
"LMS Programming Exercise",
|
||||
"LMS Program",
|
||||
"LMS Certificate",
|
||||
"LMS Evaluation",
|
||||
"LMS Certificate Request",
|
||||
"LMS Certificate Evaluation",
|
||||
]
|
||||
|
||||
for doctype in doctypes:
|
||||
|
||||
@@ -105,7 +105,7 @@ doc_events = {
|
||||
"Notification Log": {"on_change": "lms.lms.utils.publish_notifications"},
|
||||
"User": {
|
||||
"validate": "lms.lms.user.validate_username_duplicates",
|
||||
"after_insert": "lms.lms.user.after_insert",
|
||||
#"after_insert": "lms.lms.user.after_insert",
|
||||
},
|
||||
}
|
||||
|
||||
@@ -222,6 +222,7 @@ lms_markdown_macro_renderers = {
|
||||
"Exercise": "lms.plugins.exercise_renderer",
|
||||
"Quiz": "lms.plugins.quiz_renderer",
|
||||
"YouTubeVideo": "lms.plugins.youtube_video_renderer",
|
||||
"RuTubeVideo": "lms.plugins.rutube_video_renderer",
|
||||
"Video": "lms.plugins.video_renderer",
|
||||
"Assignment": "lms.plugins.assignment_renderer",
|
||||
"Embed": "lms.plugins.embed_renderer",
|
||||
|
||||
@@ -470,16 +470,22 @@ def get_assigned_badges(member):
|
||||
|
||||
@frappe.whitelist()
|
||||
def get_all_users():
|
||||
frappe.only_for(["Moderator", "Course Creator", "Batch Evaluator"])
|
||||
users = frappe.get_all(
|
||||
"User",
|
||||
{
|
||||
"enabled": 1,
|
||||
},
|
||||
["name", "full_name", "user_image"],
|
||||
)
|
||||
frappe.only_for(["Moderator", "Course Creator", "Batch Evaluator", "LMS Student", "LMS Schoolchild", "Parent"])
|
||||
users = frappe.get_all(
|
||||
"User",
|
||||
{"enabled": 1},
|
||||
["name", "full_name", "user_image", "email", "username"]
|
||||
)
|
||||
|
||||
return {user.name: user for user in users}
|
||||
for user in users:
|
||||
roles = frappe.get_all(
|
||||
"Has Role",
|
||||
filters={"parent": user.name},
|
||||
fields=["role"]
|
||||
)
|
||||
user["roles"] = [role["role"] for role in roles]
|
||||
|
||||
return users
|
||||
|
||||
|
||||
@frappe.whitelist()
|
||||
@@ -1672,3 +1678,13 @@ def get_pwa_manifest():
|
||||
}
|
||||
|
||||
return Response(json.dumps(manifest), status=200, content_type="application/manifest+json")
|
||||
|
||||
|
||||
@frappe.whitelist()
|
||||
def get_profile_details(username):
|
||||
return frappe.db.get_value(
|
||||
"User",
|
||||
{"username": username},
|
||||
["full_name", "name", "username", "user_image", "bio", "headline", "cover_image"],
|
||||
as_dict=True,
|
||||
)
|
||||
|
||||
@@ -4,16 +4,17 @@
|
||||
import frappe
|
||||
from frappe.model.document import Document
|
||||
|
||||
from lms.lms.api import update_course_statistics
|
||||
from lms.lms.utils import get_course_progress
|
||||
from lms.lms.utils import get_course_progress, get_lesson_count
|
||||
|
||||
|
||||
class CourseChapter(Document):
|
||||
def on_update(self):
|
||||
self.recalculate_course_progress()
|
||||
update_course_statistics()
|
||||
self.update_lesson_count()
|
||||
frappe.enqueue(method=self.recalculate_course_progress, queue="short", timeout=300, is_async=True)
|
||||
|
||||
def recalculate_course_progress(self):
|
||||
"""Recalculate course progress if a new lesson is added or removed"""
|
||||
previous_lessons = self.get_doc_before_save() and self.get_doc_before_save().as_dict().lessons
|
||||
current_lessons = self.lessons
|
||||
|
||||
@@ -22,3 +23,7 @@ class CourseChapter(Document):
|
||||
for enrollment in enrolled_members:
|
||||
new_progress = get_course_progress(self.course, enrollment.member)
|
||||
frappe.db.set_value("LMS Enrollment", enrollment.name, "progress", new_progress)
|
||||
|
||||
def update_lesson_count(self):
|
||||
"""Update lesson count in the course"""
|
||||
frappe.db.set_value("LMS Course", self.course, "lessons", get_lesson_count(self.course))
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
"instructor_notes",
|
||||
"section_break_6",
|
||||
"youtube",
|
||||
"rutube",
|
||||
"column_break_9",
|
||||
"quiz_id",
|
||||
"section_break_16",
|
||||
@@ -104,6 +105,12 @@
|
||||
"fieldtype": "Data",
|
||||
"label": "YouTube Video URL"
|
||||
},
|
||||
{
|
||||
"description": "RuTube Video will appear at the top of the lesson.",
|
||||
"fieldname": "rutube",
|
||||
"fieldtype": "Data",
|
||||
"label": "RuTube Video URL"
|
||||
},
|
||||
{
|
||||
"fieldname": "section_break_16",
|
||||
"fieldtype": "Section Break",
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
"grid_page_length": 50,
|
||||
"index_web_pages_for_search": 1,
|
||||
"links": [],
|
||||
"modified": "2025-07-07 20:37:22.449149",
|
||||
"modified": "2025-11-06 11:38:35.903520",
|
||||
"modified_by": "sayali@frappe.io",
|
||||
"module": "LMS",
|
||||
"name": "LMS Badge Assignment",
|
||||
@@ -135,6 +135,30 @@
|
||||
"report": 1,
|
||||
"role": "LMS Student",
|
||||
"share": 1
|
||||
},
|
||||
{
|
||||
"create": 1,
|
||||
"delete": 1,
|
||||
"email": 1,
|
||||
"export": 1,
|
||||
"print": 1,
|
||||
"read": 1,
|
||||
"report": 1,
|
||||
"role": "Batch Evaluator",
|
||||
"share": 1,
|
||||
"write": 1
|
||||
},
|
||||
{
|
||||
"create": 1,
|
||||
"delete": 1,
|
||||
"email": 1,
|
||||
"export": 1,
|
||||
"print": 1,
|
||||
"read": 1,
|
||||
"report": 1,
|
||||
"role": "Course Creator",
|
||||
"share": 1,
|
||||
"write": 1
|
||||
}
|
||||
],
|
||||
"row_format": "Dynamic",
|
||||
|
||||
@@ -133,7 +133,6 @@
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"fetch_from": "batch_name.timezone",
|
||||
"fieldname": "timezone",
|
||||
"fieldtype": "Data",
|
||||
"label": "Timezone",
|
||||
@@ -155,10 +154,11 @@
|
||||
"read_only": 1
|
||||
}
|
||||
],
|
||||
"grid_page_length": 50,
|
||||
"index_web_pages_for_search": 1,
|
||||
"links": [],
|
||||
"modified": "2025-02-19 17:20:02.526294",
|
||||
"modified_by": "Administrator",
|
||||
"modified": "2025-10-13 14:30:57.897102",
|
||||
"modified_by": "sayali@frappe.io",
|
||||
"module": "LMS",
|
||||
"name": "LMS Certificate Request",
|
||||
"owner": "Administrator",
|
||||
@@ -211,6 +211,7 @@
|
||||
"write": 1
|
||||
}
|
||||
],
|
||||
"row_format": "Dynamic",
|
||||
"sort_field": "modified",
|
||||
"sort_order": "DESC",
|
||||
"states": [
|
||||
@@ -228,4 +229,4 @@
|
||||
}
|
||||
],
|
||||
"title_field": "member_name"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,6 +28,7 @@ class LMSCertificateRequest(Document):
|
||||
self.validate_slot()
|
||||
self.validate_if_existing_requests()
|
||||
self.validate_evaluation_end_date()
|
||||
self.validate_timezone()
|
||||
|
||||
def after_insert(self):
|
||||
self.send_notification()
|
||||
@@ -113,6 +114,20 @@ class LMSCertificateRequest(Document):
|
||||
)
|
||||
)
|
||||
|
||||
def validate_timezone(self):
|
||||
if self.timezone:
|
||||
return
|
||||
if self.batch_name:
|
||||
timezone = frappe.db.get_value("LMS Batch", self.batch_name, "timezone")
|
||||
if timezone:
|
||||
self.timezone = timezone
|
||||
return
|
||||
if self.course:
|
||||
timezone = frappe.db.get_value("LMS Course", self.course, "timezone")
|
||||
if timezone:
|
||||
self.timezone = timezone
|
||||
return
|
||||
|
||||
def send_notification(self):
|
||||
outgoing_email_account = frappe.get_cached_value(
|
||||
"Email Account", {"default_outgoing": 1, "enable_outgoing": 1}, "name"
|
||||
|
||||
@@ -43,11 +43,14 @@
|
||||
"paid_course",
|
||||
"enable_certification",
|
||||
"paid_certificate",
|
||||
"evaluator",
|
||||
"column_break_acoj",
|
||||
"section_break_vqbh",
|
||||
"course_price",
|
||||
"currency",
|
||||
"amount_usd",
|
||||
"column_break_sflq",
|
||||
"evaluator",
|
||||
"timezone",
|
||||
"tab_4_tab",
|
||||
"statistics_section",
|
||||
"enrollments",
|
||||
@@ -278,6 +281,20 @@
|
||||
"fieldtype": "Select",
|
||||
"label": "Color",
|
||||
"options": "Red\nBlue\nGreen\nAmber\nCyan\nOrange\nPink\nPurple\nTeal\nViolet\nYellow\nGray"
|
||||
},
|
||||
{
|
||||
"fieldname": "section_break_vqbh",
|
||||
"fieldtype": "Section Break"
|
||||
},
|
||||
{
|
||||
"fieldname": "column_break_sflq",
|
||||
"fieldtype": "Column Break"
|
||||
},
|
||||
{
|
||||
"depends_on": "paid_certificate",
|
||||
"fieldname": "timezone",
|
||||
"fieldtype": "Data",
|
||||
"label": "Timezone"
|
||||
}
|
||||
],
|
||||
"is_published_field": "published",
|
||||
@@ -296,7 +313,7 @@
|
||||
}
|
||||
],
|
||||
"make_attachments_public": 1,
|
||||
"modified": "2025-07-25 17:50:44.983391",
|
||||
"modified": "2025-10-13 15:08:11.734204",
|
||||
"modified_by": "sayali@frappe.io",
|
||||
"module": "LMS",
|
||||
"name": "LMS Course",
|
||||
|
||||
@@ -68,6 +68,9 @@ class LMSCourse(Document):
|
||||
if self.paid_certificate and not self.evaluator:
|
||||
frappe.throw(_("Evaluator is required for paid certificates."))
|
||||
|
||||
if self.paid_certificate and not self.timezone:
|
||||
frappe.throw(_("Timezone is required for paid certificates."))
|
||||
|
||||
def validate_amount_and_currency(self):
|
||||
if self.paid_course and (cint(self.course_price) < 0 or not self.currency):
|
||||
frappe.throw(_("Amount and currency are required for paid courses."))
|
||||
|
||||
@@ -35,6 +35,7 @@ def find_macros(text):
|
||||
>>> find_macros(text)
|
||||
[
|
||||
('YouTubeVideo': 'abcd1234')
|
||||
('RuTubeVideo': 'abcd1234')
|
||||
('Exercise', 'two-circles'),
|
||||
('Exercise', 'four-circles')
|
||||
]
|
||||
@@ -119,5 +120,7 @@ def sanitize_html(html, macro):
|
||||
classname = ""
|
||||
if macro == "YouTubeVideo":
|
||||
classname = "lesson-video"
|
||||
elif macro == "RutubeVideo": # Добавлено
|
||||
classname = "rutube-video"
|
||||
|
||||
return "<div class='" + classname + "'>" + "\n".join(str(node) for node in nodes) + "</div>"
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import frappe
|
||||
from frappe import _
|
||||
from frappe.model.naming import append_number_if_name_exists
|
||||
from frappe.utils import escape_html, random_string
|
||||
from frappe.website.utils import cleanup_page_name, is_signup_disabled
|
||||
|
||||
from frappe.website.utils import cleanup_page_name
|
||||
from frappe.website.utils import is_signup_disabled
|
||||
from frappe.utils import random_string, escape_html
|
||||
from lms.lms.utils import get_country_code
|
||||
|
||||
|
||||
@@ -19,12 +19,12 @@ def validate_username_duplicates(doc, method):
|
||||
doc.username = doc.email.replace("@", "").replace(".", "")
|
||||
|
||||
|
||||
def after_insert(doc, method):
|
||||
doc.add_roles("LMS Student")
|
||||
'''def after_insert(doc, method):
|
||||
doc.add_roles("LMS Student")'''
|
||||
|
||||
|
||||
@frappe.whitelist(allow_guest=True)
|
||||
def sign_up(email, full_name, verify_terms, user_category):
|
||||
def sign_up(email, full_name, verify_terms, user_category, user_role, phone):
|
||||
if is_signup_disabled():
|
||||
frappe.throw(_("Sign Up is disabled"), _("Not Allowed"))
|
||||
|
||||
@@ -48,6 +48,7 @@ def sign_up(email, full_name, verify_terms, user_category):
|
||||
{
|
||||
"doctype": "User",
|
||||
"email": email,
|
||||
"phone": escape_html(phone),
|
||||
"first_name": escape_html(full_name),
|
||||
"verify_terms": verify_terms,
|
||||
"user_category": user_category,
|
||||
@@ -62,11 +63,15 @@ def sign_up(email, full_name, verify_terms, user_category):
|
||||
user.insert()
|
||||
|
||||
# set default signup role as per Portal Settings
|
||||
default_role = frappe.db.get_single_value("Portal Settings", "default_role")
|
||||
default_role = frappe.db.get_value("Portal Settings", None, "default_role")
|
||||
if default_role:
|
||||
user.add_roles(default_role)
|
||||
elif user_role: # set Role
|
||||
user.add_roles(user_role) # Если роль передана, добавляем её
|
||||
else:
|
||||
user.add_roles("LMS Student") # Иначе добавляем роль по умолчанию
|
||||
|
||||
user.add_roles("LMS Student")
|
||||
#user.add_roles("LMS Student")
|
||||
set_country_from_ip(None, user.name)
|
||||
|
||||
if user.flags.email_sent:
|
||||
@@ -79,8 +84,8 @@ def set_country_from_ip(login_manager=None, user=None):
|
||||
if not user and login_manager:
|
||||
user = login_manager.user
|
||||
user_country = frappe.db.get_value("User", user, "country")
|
||||
if user_country:
|
||||
return
|
||||
# if user_country:
|
||||
# return
|
||||
frappe.db.set_value("User", user, "country", get_country_code())
|
||||
return
|
||||
|
||||
|
||||
@@ -2,15 +2,15 @@ import hashlib
|
||||
import json
|
||||
import re
|
||||
import string
|
||||
from datetime import datetime, timedelta
|
||||
from datetime import timedelta
|
||||
|
||||
import frappe
|
||||
import razorpay
|
||||
import requests
|
||||
from frappe import _
|
||||
from frappe.desk.doctype.dashboard_chart.dashboard_chart import get_result
|
||||
from frappe.desk.doctype.notification_log.notification_log import make_notification_logs
|
||||
from frappe.desk.notifications import extract_mentions
|
||||
from frappe.rate_limiter import rate_limit
|
||||
from frappe.utils import (
|
||||
add_months,
|
||||
ceil,
|
||||
@@ -18,7 +18,6 @@ from frappe.utils import (
|
||||
cstr,
|
||||
flt,
|
||||
fmt_money,
|
||||
format_date,
|
||||
format_datetime,
|
||||
get_datetime,
|
||||
get_fullname,
|
||||
@@ -27,7 +26,6 @@ from frappe.utils import (
|
||||
nowtime,
|
||||
pretty_date,
|
||||
)
|
||||
from frappe.utils.dateutils import get_period
|
||||
|
||||
from lms.lms.md import find_macros, markdown_to_html
|
||||
|
||||
@@ -147,6 +145,7 @@ def get_lesson_details(chapter, progress=False):
|
||||
"body",
|
||||
"creation",
|
||||
"youtube",
|
||||
"rutube",
|
||||
"quiz_id",
|
||||
"question",
|
||||
"file_type",
|
||||
@@ -181,6 +180,7 @@ def get_lesson_icon(body, content):
|
||||
|
||||
if block.get("type") == "embed" and block.get("data").get("service") in [
|
||||
"youtube",
|
||||
"rutube",
|
||||
"vimeo",
|
||||
"cloudflareStream",
|
||||
"bunnyStream",
|
||||
@@ -194,7 +194,7 @@ def get_lesson_icon(body, content):
|
||||
|
||||
macros = find_macros(body)
|
||||
for macro in macros:
|
||||
if macro[0] == "YouTubeVideo" or macro[0] == "Video":
|
||||
if macro[0] == "YouTubeVideo" or macro[0] == "Video" or macro[0] == "RuTubeVideo" :
|
||||
return "icon-youtube"
|
||||
elif macro[0] == "Quiz":
|
||||
return "icon-quiz"
|
||||
@@ -203,6 +203,7 @@ def get_lesson_icon(body, content):
|
||||
|
||||
|
||||
@frappe.whitelist(allow_guest=True)
|
||||
@rate_limit(limit=50, seconds=60 * 60)
|
||||
def get_tags(course):
|
||||
tags = frappe.db.get_value("LMS Course", course, "tags")
|
||||
return tags.split(",") if tags else []
|
||||
@@ -247,6 +248,7 @@ def get_average_rating(course):
|
||||
|
||||
|
||||
@frappe.whitelist(allow_guest=True)
|
||||
@rate_limit(limit=50, seconds=60 * 60)
|
||||
def get_reviews(course):
|
||||
reviews = frappe.get_all(
|
||||
"LMS Course Review",
|
||||
@@ -334,12 +336,17 @@ def render_html(lesson):
|
||||
youtube = lesson.youtube
|
||||
quiz_id = lesson.quiz_id
|
||||
body = lesson.body
|
||||
rutube = lesson.get("rutube")
|
||||
|
||||
if youtube and "/" in youtube:
|
||||
youtube = youtube.split("/")[-1]
|
||||
|
||||
if rutube and "/" in rutube:
|
||||
rutube = rutube.split("/")[-1]
|
||||
|
||||
quiz_id = "{{ Quiz('" + quiz_id + "') }}" if quiz_id else ""
|
||||
youtube = "{{ YouTubeVideo('" + youtube + "') }}" if youtube else ""
|
||||
rutube = "{{ RutubeVideo('" + rutube + "') }}" if rutube else ""
|
||||
text = youtube + body + quiz_id
|
||||
|
||||
if lesson.question:
|
||||
@@ -737,6 +744,7 @@ def has_lessons(course):
|
||||
|
||||
|
||||
@frappe.whitelist(allow_guest=True)
|
||||
@rate_limit(limit=50, seconds=60 * 60)
|
||||
def get_chart_data(
|
||||
chart_name,
|
||||
timespan="Select Date Range",
|
||||
@@ -784,6 +792,7 @@ def get_chart_data(
|
||||
|
||||
|
||||
@frappe.whitelist(allow_guest=True)
|
||||
@rate_limit(limit=50, seconds=60 * 60)
|
||||
def get_course_completion_data():
|
||||
all_membership = frappe.db.count("LMS Enrollment")
|
||||
completed = frappe.db.count("LMS Enrollment", {"progress": ["like", "%100%"]})
|
||||
@@ -959,6 +968,7 @@ def change_currency(amount, currency, country=None):
|
||||
|
||||
|
||||
@frappe.whitelist(allow_guest=True)
|
||||
@rate_limit(limit=50, seconds=60 * 60)
|
||||
def get_courses(filters=None, start=0):
|
||||
"""Returns the list of courses."""
|
||||
|
||||
@@ -1099,6 +1109,7 @@ def get_course_fields():
|
||||
|
||||
|
||||
@frappe.whitelist(allow_guest=True)
|
||||
@rate_limit(limit=50, seconds=60 * 60)
|
||||
def get_course_details(course):
|
||||
course_details = frappe.db.get_value(
|
||||
"LMS Course",
|
||||
@@ -1193,6 +1204,7 @@ def get_categorized_courses(courses):
|
||||
|
||||
|
||||
@frappe.whitelist(allow_guest=True)
|
||||
@rate_limit(limit=50, seconds=60 * 60)
|
||||
def get_course_outline(course, progress=False):
|
||||
"""Returns the course outline."""
|
||||
outline = []
|
||||
@@ -1220,6 +1232,7 @@ def get_course_outline(course, progress=False):
|
||||
|
||||
|
||||
@frappe.whitelist(allow_guest=True)
|
||||
@rate_limit(limit=50, seconds=60 * 60)
|
||||
def get_lesson(course, chapter, lesson):
|
||||
chapter_name = frappe.db.get_value("Chapter Reference", {"parent": course, "idx": chapter}, "chapter")
|
||||
lesson_name = frappe.db.get_value("Lesson Reference", {"parent": chapter_name, "idx": lesson}, "lesson")
|
||||
@@ -1270,6 +1283,7 @@ def get_lesson(course, chapter, lesson):
|
||||
"body",
|
||||
"creation",
|
||||
"youtube",
|
||||
"rutube",
|
||||
"quiz_id",
|
||||
"question",
|
||||
"file_type",
|
||||
@@ -1330,6 +1344,7 @@ def get_neighbour_lesson(course, chapter, lesson):
|
||||
|
||||
|
||||
@frappe.whitelist(allow_guest=True)
|
||||
@rate_limit(limit=50, seconds=60 * 60)
|
||||
def get_batch_details(batch):
|
||||
batch_students = frappe.get_all("LMS Batch Enrollment", {"batch": batch}, pluck="member")
|
||||
if (
|
||||
@@ -1450,6 +1465,7 @@ def get_question_details(question):
|
||||
|
||||
|
||||
@frappe.whitelist(allow_guest=True)
|
||||
@rate_limit(limit=50, seconds=60 * 60)
|
||||
def get_batch_courses(batch):
|
||||
courses = []
|
||||
course_list = frappe.get_all("Batch Course", {"parent": batch}, ["name", "course"])
|
||||
@@ -1807,6 +1823,7 @@ def get_lesson_creation_details(course, chapter, lesson):
|
||||
"instructor_notes",
|
||||
"instructor_content",
|
||||
"youtube",
|
||||
"rutube",
|
||||
"quiz_id",
|
||||
],
|
||||
as_dict=1,
|
||||
@@ -2024,6 +2041,7 @@ def enroll_in_program(program):
|
||||
|
||||
|
||||
@frappe.whitelist(allow_guest=True)
|
||||
@rate_limit(limit=50, seconds=60 * 60)
|
||||
def get_batches(filters=None, start=0, order_by="start_date"):
|
||||
if not filters:
|
||||
filters = {}
|
||||
@@ -2137,6 +2155,7 @@ def get_palette(full_name):
|
||||
|
||||
|
||||
@frappe.whitelist(allow_guest=True)
|
||||
@rate_limit(limit=50, seconds=60 * 60)
|
||||
def get_related_courses(course):
|
||||
related_course_details = []
|
||||
related_courses = frappe.get_all("Related Courses", {"parent": course}, order_by="idx", pluck="course")
|
||||
|
||||
297
lms/locale/ar.po
297
lms/locale/ar.po
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: frappe\n"
|
||||
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
||||
"POT-Creation-Date: 2025-10-03 16:04+0000\n"
|
||||
"PO-Revision-Date: 2025-10-07 11:33\n"
|
||||
"POT-Creation-Date: 2025-10-31 16:04+0000\n"
|
||||
"PO-Revision-Date: 2025-11-02 19:07\n"
|
||||
"Last-Translator: jannat@frappe.io\n"
|
||||
"Language-Team: Arabic\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -196,7 +196,7 @@ msgstr ""
|
||||
msgid "Add a Student"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:585
|
||||
#: frontend/src/components/AppSidebar.vue:600
|
||||
msgid "Add a chapter"
|
||||
msgstr ""
|
||||
|
||||
@@ -208,7 +208,7 @@ msgstr ""
|
||||
msgid "Add a keyword and then press enter"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:586
|
||||
#: frontend/src/components/AppSidebar.vue:601
|
||||
msgid "Add a lesson"
|
||||
msgstr ""
|
||||
|
||||
@@ -216,12 +216,12 @@ msgstr ""
|
||||
msgid "Add a new member"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:166
|
||||
#: frontend/src/components/Modals/Question.vue:167
|
||||
#: frontend/src/pages/QuizForm.vue:200
|
||||
msgid "Add a new question"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:600
|
||||
#: frontend/src/components/AppSidebar.vue:615
|
||||
msgid "Add a program"
|
||||
msgstr ""
|
||||
|
||||
@@ -245,7 +245,7 @@ msgstr ""
|
||||
msgid "Add at least one possible answer for this question: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:549
|
||||
#: frontend/src/components/AppSidebar.vue:564
|
||||
msgid "Add courses to your batch"
|
||||
msgstr ""
|
||||
|
||||
@@ -253,7 +253,7 @@ msgstr ""
|
||||
msgid "Add quiz to this video"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:528
|
||||
#: frontend/src/components/AppSidebar.vue:543
|
||||
msgid "Add students to your batch"
|
||||
msgstr ""
|
||||
|
||||
@@ -269,11 +269,11 @@ msgstr ""
|
||||
msgid "Add your assignment as {0}"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:461
|
||||
#: frontend/src/components/AppSidebar.vue:476
|
||||
msgid "Add your first chapter"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:477
|
||||
#: frontend/src/components/AppSidebar.vue:492
|
||||
msgid "Add your first lesson"
|
||||
msgstr ""
|
||||
|
||||
@@ -378,11 +378,11 @@ msgstr ""
|
||||
msgid "Amount and currency are required for paid batches."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:76
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:79
|
||||
msgid "Amount and currency are required for paid certificates."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:73
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:76
|
||||
msgid "Amount and currency are required for paid courses."
|
||||
msgstr ""
|
||||
|
||||
@@ -508,7 +508,7 @@ msgid "Assessment {0} has already been added to this batch."
|
||||
msgstr ""
|
||||
|
||||
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
||||
#: frontend/src/components/AppSidebar.vue:603
|
||||
#: frontend/src/components/AppSidebar.vue:618
|
||||
#: frontend/src/components/Assessments.vue:5
|
||||
#: frontend/src/components/BatchStudents.vue:32
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
@@ -573,11 +573,11 @@ msgstr ""
|
||||
msgid "Assignment created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:24
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:27
|
||||
msgid "Assignment for Lesson {0} by {1} already exists."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Assignment.vue:359
|
||||
#: frontend/src/components/Assignment.vue:362
|
||||
msgid "Assignment submitted successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -590,7 +590,7 @@ msgstr ""
|
||||
msgid "Assignment will appear at the bottom of the lesson."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:607
|
||||
#: frontend/src/components/AppSidebar.vue:622
|
||||
#: frontend/src/components/Settings/Badges.vue:163
|
||||
#: frontend/src/pages/Assignments.vue:208 lms/www/lms.py:271
|
||||
msgid "Assignments"
|
||||
@@ -1017,7 +1017,7 @@ msgstr ""
|
||||
#. Enrollment'
|
||||
#. Label of a Card Break in the LMS Workspace
|
||||
#. Label of a Link in the LMS Workspace
|
||||
#: frontend/src/components/AppSidebar.vue:611
|
||||
#: frontend/src/components/AppSidebar.vue:626
|
||||
#: frontend/src/components/Modals/Event.vue:381
|
||||
#: frontend/src/pages/BatchForm.vue:69 frontend/src/pages/Batches.vue:58
|
||||
#: frontend/src/pages/CourseCertification.vue:10
|
||||
@@ -1040,6 +1040,11 @@ msgstr ""
|
||||
msgid "Certification Name"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the certifications (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Certifications"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/BatchStudents.vue:17
|
||||
msgid "Certified"
|
||||
msgstr ""
|
||||
@@ -1052,8 +1057,7 @@ msgstr ""
|
||||
msgid "Certified Members"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the certified_participants (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:300
|
||||
#: lms/www/lms.py:300
|
||||
msgid "Certified Participants"
|
||||
msgstr ""
|
||||
|
||||
@@ -1061,7 +1065,7 @@ msgstr ""
|
||||
msgid "Change"
|
||||
msgstr "تغيير"
|
||||
|
||||
#: frontend/src/components/Assignment.vue:345
|
||||
#: frontend/src/components/Assignment.vue:348
|
||||
msgid "Changes saved successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -1272,7 +1276,7 @@ msgstr ""
|
||||
msgid "Collaboration Preference"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:142
|
||||
#: frontend/src/components/AppSidebar.vue:145
|
||||
msgid "Collapse"
|
||||
msgstr "انهيار"
|
||||
|
||||
@@ -1291,7 +1295,7 @@ msgstr ""
|
||||
msgid "Color"
|
||||
msgstr "اللون"
|
||||
|
||||
#: frontend/src/pages/BatchForm.vue:306 frontend/src/pages/CourseForm.vue:300
|
||||
#: frontend/src/pages/BatchForm.vue:306 frontend/src/pages/CourseForm.vue:312
|
||||
msgid "Comma separated keywords for SEO"
|
||||
msgstr ""
|
||||
|
||||
@@ -1301,7 +1305,7 @@ msgstr ""
|
||||
#. Label of the comments (Text Editor) field in DocType 'LMS Assignment
|
||||
#. Submission'
|
||||
#. Label of the comments (Small Text) field in DocType 'LMS Mentor Request'
|
||||
#: frontend/src/components/Assignment.vue:167
|
||||
#: frontend/src/components/Assignment.vue:170
|
||||
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
||||
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -1309,7 +1313,7 @@ msgstr ""
|
||||
msgid "Comments"
|
||||
msgstr "تعليقات"
|
||||
|
||||
#: frontend/src/components/Assignment.vue:145
|
||||
#: frontend/src/components/Assignment.vue:148
|
||||
msgid "Comments by Evaluator"
|
||||
msgstr ""
|
||||
|
||||
@@ -1464,6 +1468,22 @@ msgstr "نموذج البريد الإلكتروني للتأكيد"
|
||||
msgid "Congratulations on getting certified!"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the contact_us_tab (Tab Break) field in DocType 'LMS Settings'
|
||||
#: frontend/src/components/ContactUsEmail.vue:5
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us"
|
||||
msgstr "اتصل بنا"
|
||||
|
||||
#. Label of the contact_us_email (Data) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us Email"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the contact_us_url (Data) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us URL"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/CourseCardOverlay.vue:63
|
||||
#: frontend/src/pages/Lesson.vue:97
|
||||
msgid "Contact the Administrator to enroll for this course."
|
||||
@@ -1677,7 +1697,7 @@ msgstr ""
|
||||
msgid "Course Name"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseDetail.vue:78 frontend/src/pages/CourseForm.vue:310
|
||||
#: frontend/src/pages/CourseDetail.vue:78 frontend/src/pages/CourseForm.vue:322
|
||||
msgid "Course Outline"
|
||||
msgstr ""
|
||||
|
||||
@@ -1714,15 +1734,15 @@ msgstr ""
|
||||
msgid "Course added to program successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:547
|
||||
#: frontend/src/pages/CourseForm.vue:559
|
||||
msgid "Course created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:584
|
||||
#: frontend/src/pages/CourseForm.vue:596
|
||||
msgid "Course deleted successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:567
|
||||
#: frontend/src/pages/CourseForm.vue:579
|
||||
msgid "Course updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -1815,15 +1835,15 @@ msgstr ""
|
||||
msgid "Create a Quiz"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:593
|
||||
#: frontend/src/components/AppSidebar.vue:608
|
||||
msgid "Create a batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:584
|
||||
#: frontend/src/components/AppSidebar.vue:599
|
||||
msgid "Create a course"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:594
|
||||
#: frontend/src/components/AppSidebar.vue:609
|
||||
msgid "Create a live class"
|
||||
msgstr ""
|
||||
|
||||
@@ -1835,15 +1855,15 @@ msgstr ""
|
||||
msgid "Create an Assignment"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:518
|
||||
#: frontend/src/components/AppSidebar.vue:533
|
||||
msgid "Create your first batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:449
|
||||
#: frontend/src/components/AppSidebar.vue:464
|
||||
msgid "Create your first course"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:496
|
||||
#: frontend/src/components/AppSidebar.vue:511
|
||||
msgid "Create your first quiz"
|
||||
msgstr ""
|
||||
|
||||
@@ -1851,11 +1871,11 @@ msgstr ""
|
||||
msgid "Created"
|
||||
msgstr "أنشأ"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:590
|
||||
#: frontend/src/components/AppSidebar.vue:605
|
||||
msgid "Creating a batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:581
|
||||
#: frontend/src/components/AppSidebar.vue:596
|
||||
msgid "Creating a course"
|
||||
msgstr ""
|
||||
|
||||
@@ -1863,7 +1883,7 @@ msgstr ""
|
||||
#. Label of the currency (Link) field in DocType 'LMS Course'
|
||||
#. Label of the currency (Link) field in DocType 'LMS Payment'
|
||||
#: frontend/src/components/Settings/TransactionDetails.vue:64
|
||||
#: frontend/src/pages/BatchForm.vue:285 frontend/src/pages/CourseForm.vue:279
|
||||
#: frontend/src/pages/BatchForm.vue:285 frontend/src/pages/CourseForm.vue:282
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
#: lms/lms/doctype/lms_payment/lms_payment.json
|
||||
@@ -1879,7 +1899,7 @@ msgstr ""
|
||||
msgid "Current Streak"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:617
|
||||
#: frontend/src/components/AppSidebar.vue:632
|
||||
msgid "Custom Certificate Templates"
|
||||
msgstr ""
|
||||
|
||||
@@ -1979,7 +1999,7 @@ msgstr ""
|
||||
#: frontend/src/components/CourseOutline.vue:360
|
||||
#: frontend/src/components/DiscussionReplies.vue:41
|
||||
#: frontend/src/components/Settings/Badges.vue:171
|
||||
#: frontend/src/pages/BatchForm.vue:565 frontend/src/pages/CourseForm.vue:597
|
||||
#: frontend/src/pages/BatchForm.vue:565 frontend/src/pages/CourseForm.vue:609
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseForm.vue:67
|
||||
#: frontend/src/pages/Programs/ProgramForm.vue:231
|
||||
msgid "Delete"
|
||||
@@ -1989,7 +2009,7 @@ msgstr "حذف"
|
||||
msgid "Delete Chapter"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:591
|
||||
#: frontend/src/pages/CourseForm.vue:603
|
||||
msgid "Delete Course"
|
||||
msgstr ""
|
||||
|
||||
@@ -2001,7 +2021,7 @@ msgstr ""
|
||||
msgid "Delete this lesson?"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:592
|
||||
#: frontend/src/pages/CourseForm.vue:604
|
||||
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
||||
msgstr ""
|
||||
|
||||
@@ -2251,6 +2271,10 @@ msgstr "قوالب البريد الإلكتروني"
|
||||
msgid "Email Templates deleted successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:57
|
||||
msgid "Email sent successfully"
|
||||
msgstr "تم إرسال البريد الإلكتروني بنجاح"
|
||||
|
||||
#. Label of the show_emails (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Emails"
|
||||
@@ -2266,7 +2290,7 @@ msgstr "الموظف"
|
||||
msgid "Enable"
|
||||
msgstr "تمكين"
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:21
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:22
|
||||
msgid "Enable Google API in Google Settings to send calendar invites for evaluations."
|
||||
msgstr ""
|
||||
|
||||
@@ -2365,7 +2389,7 @@ msgstr ""
|
||||
msgid "Enrollment Count"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:1880
|
||||
#: lms/lms/utils.py:1888
|
||||
msgid "Enrollment Failed, {0}"
|
||||
msgstr ""
|
||||
|
||||
@@ -2382,7 +2406,7 @@ msgstr ""
|
||||
msgid "Enrollments"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:26
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:27
|
||||
msgid "Enter Client Id and Client Secret in Google Settings to send calendar invites for evaluations."
|
||||
msgstr ""
|
||||
|
||||
@@ -2402,7 +2426,7 @@ msgstr ""
|
||||
msgid "Error creating email template"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:191
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:190
|
||||
msgid "Error creating live class. Please try again. {0}"
|
||||
msgstr ""
|
||||
|
||||
@@ -2467,7 +2491,7 @@ msgstr ""
|
||||
#. Label of the evaluator (Link) field in DocType 'LMS Course'
|
||||
#: frontend/src/components/Modals/BatchCourseModal.vue:37
|
||||
#: frontend/src/components/Modals/BulkCertificates.vue:22
|
||||
#: frontend/src/pages/CourseForm.vue:268 frontend/src/pages/ProfileRoles.vue:32
|
||||
#: frontend/src/pages/CourseForm.vue:269 frontend/src/pages/ProfileRoles.vue:32
|
||||
#: lms/lms/doctype/batch_course/batch_course.json
|
||||
#: lms/lms/doctype/course_evaluator/course_evaluator.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -2555,7 +2579,7 @@ msgstr ""
|
||||
msgid "Exercise Title"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:142
|
||||
#: frontend/src/components/AppSidebar.vue:145
|
||||
msgid "Expand"
|
||||
msgstr "وسعت"
|
||||
|
||||
@@ -2625,10 +2649,14 @@ msgstr ""
|
||||
msgid "Failed to enroll in program: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:137
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:144
|
||||
msgid "Failed to fetch attendance data from Zoom for class {0}: {1}"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:63
|
||||
msgid "Failed to send email"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseSubmission.vue:358
|
||||
msgid "Failed to submit. Please try again. {0}"
|
||||
msgstr ""
|
||||
@@ -2814,7 +2842,7 @@ msgstr ""
|
||||
|
||||
#: frontend/src/components/CertificationLinks.vue:34
|
||||
#: frontend/src/components/CertificationLinks.vue:50
|
||||
#: frontend/src/components/CourseCard.vue:125
|
||||
#: frontend/src/components/CourseCard.vue:126
|
||||
#: frontend/src/pages/CertifiedParticipants.vue:11
|
||||
msgid "Get Certified"
|
||||
msgstr ""
|
||||
@@ -2843,7 +2871,7 @@ msgid "Google Meet Link"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the grade (Data) field in DocType 'Education Detail'
|
||||
#: frontend/src/components/Assignment.vue:161
|
||||
#: frontend/src/components/Assignment.vue:164
|
||||
#: lms/lms/doctype/education_detail/education_detail.json
|
||||
msgid "Grade"
|
||||
msgstr ""
|
||||
@@ -2858,7 +2886,7 @@ msgstr ""
|
||||
msgid "Grade Type"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Assignment.vue:156
|
||||
#: frontend/src/components/Assignment.vue:159
|
||||
msgid "Grading"
|
||||
msgstr ""
|
||||
|
||||
@@ -2898,7 +2926,7 @@ msgstr ""
|
||||
msgid "Hello"
|
||||
msgstr "مرحبًا"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:128
|
||||
#: frontend/src/components/AppSidebar.vue:131
|
||||
msgid "Help"
|
||||
msgstr "مساعدة"
|
||||
|
||||
@@ -2963,7 +2991,7 @@ msgstr ""
|
||||
msgid "Hints"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:5 frontend/src/pages/Home/Home.vue:153
|
||||
#: frontend/src/pages/Home/Home.vue:5 frontend/src/pages/Home/Home.vue:154
|
||||
msgid "Home"
|
||||
msgstr "الصفحة الرئيسية"
|
||||
|
||||
@@ -2995,7 +3023,7 @@ msgstr ""
|
||||
msgid "I am unavailable"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:338
|
||||
#: frontend/src/pages/QuizForm.vue:334
|
||||
msgid "ID"
|
||||
msgstr "هوية شخصية"
|
||||
|
||||
@@ -3155,7 +3183,7 @@ msgstr ""
|
||||
|
||||
#. Label of the instructor (Link) field in DocType 'Cohort'
|
||||
#. Label of the instructor (Link) field in DocType 'Course Instructor'
|
||||
#: frontend/src/pages/Home/Home.vue:148 lms/lms/doctype/cohort/cohort.json
|
||||
#: frontend/src/pages/Home/Home.vue:149 lms/lms/doctype/cohort/cohort.json
|
||||
#: lms/lms/doctype/course_instructor/course_instructor.json
|
||||
msgid "Instructor"
|
||||
msgstr ""
|
||||
@@ -3191,8 +3219,8 @@ msgstr ""
|
||||
msgid "Interest"
|
||||
msgstr "فائدة"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:573
|
||||
#: frontend/src/components/AppSidebar.vue:576
|
||||
#: frontend/src/components/AppSidebar.vue:588
|
||||
#: frontend/src/components/AppSidebar.vue:591
|
||||
msgid "Introduction"
|
||||
msgstr "مقدمة"
|
||||
|
||||
@@ -3214,7 +3242,7 @@ msgstr ""
|
||||
msgid "Invite Only"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:507
|
||||
#: frontend/src/components/AppSidebar.vue:522
|
||||
msgid "Invite your team and students"
|
||||
msgstr ""
|
||||
|
||||
@@ -3251,7 +3279,7 @@ msgstr ""
|
||||
msgid "Issue Date"
|
||||
msgstr "تاريخ القضية"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:614
|
||||
#: frontend/src/components/AppSidebar.vue:629
|
||||
msgid "Issue a Certificate"
|
||||
msgstr ""
|
||||
|
||||
@@ -3264,7 +3292,7 @@ msgid "Issued On"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/ProfileAbout.vue:73
|
||||
#: frontend/src/pages/ProfileCertificates.vue:17
|
||||
#: frontend/src/pages/ProfileCertificates.vue:20
|
||||
#: lms/templates/certificates_section.html:11
|
||||
msgid "Issued on"
|
||||
msgstr ""
|
||||
@@ -3679,7 +3707,7 @@ msgstr ""
|
||||
msgid "Learning Consistency"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:598
|
||||
#: frontend/src/components/AppSidebar.vue:613
|
||||
msgid "Learning Paths"
|
||||
msgstr ""
|
||||
|
||||
@@ -3728,7 +3756,7 @@ msgstr ""
|
||||
msgid "Lesson Title"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/LessonForm.vue:426
|
||||
#: frontend/src/pages/LessonForm.vue:425
|
||||
msgid "Lesson created successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -3740,7 +3768,7 @@ msgstr ""
|
||||
msgid "Lesson moved successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/LessonForm.vue:450
|
||||
#: frontend/src/pages/LessonForm.vue:449
|
||||
msgid "Lesson updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -3889,7 +3917,7 @@ msgstr ""
|
||||
msgid "Manage Batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:119
|
||||
#: frontend/src/pages/Home/Home.vue:120
|
||||
msgid "Manage your courses and batches at a glance"
|
||||
msgstr ""
|
||||
|
||||
@@ -3920,7 +3948,7 @@ msgstr ""
|
||||
#. Label of the marks (Int) field in DocType 'LMS Quiz Result'
|
||||
#: frontend/src/components/Modals/Question.vue:40
|
||||
#: frontend/src/components/Modals/Question.vue:106
|
||||
#: frontend/src/components/Quiz.vue:120 frontend/src/pages/QuizForm.vue:348
|
||||
#: frontend/src/components/Quiz.vue:120 frontend/src/pages/QuizForm.vue:344
|
||||
#: frontend/src/pages/QuizSubmission.vue:64
|
||||
#: lms/lms/doctype/lms_quiz_question/lms_quiz_question.json
|
||||
#: lms/lms/doctype/lms_quiz_result/lms_quiz_result.json
|
||||
@@ -4199,8 +4227,12 @@ msgstr ""
|
||||
msgid "Mentor Request Status Update Template"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:19
|
||||
msgid "Message"
|
||||
msgstr "رسالة"
|
||||
|
||||
#. Label of the meta_description (Small Text) field in DocType 'LMS Settings'
|
||||
#: frontend/src/pages/BatchForm.vue:297 frontend/src/pages/CourseForm.vue:291
|
||||
#: frontend/src/pages/BatchForm.vue:297 frontend/src/pages/CourseForm.vue:303
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Meta Description"
|
||||
msgstr "ميتا الوصف"
|
||||
@@ -4214,12 +4246,12 @@ msgid "Meta Image"
|
||||
msgstr "صورة ميتا"
|
||||
|
||||
#. Label of the meta_keywords (Small Text) field in DocType 'LMS Settings'
|
||||
#: frontend/src/pages/BatchForm.vue:303 frontend/src/pages/CourseForm.vue:297
|
||||
#: frontend/src/pages/BatchForm.vue:303 frontend/src/pages/CourseForm.vue:309
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Meta Keywords"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/BatchForm.vue:292 frontend/src/pages/CourseForm.vue:286
|
||||
#: frontend/src/pages/BatchForm.vue:292 frontend/src/pages/CourseForm.vue:298
|
||||
msgid "Meta Tags"
|
||||
msgstr "العلامات الفوقية"
|
||||
|
||||
@@ -4290,7 +4322,7 @@ msgstr ""
|
||||
msgid "Monday"
|
||||
msgstr "يوم الاثنين"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:622
|
||||
#: frontend/src/components/AppSidebar.vue:637
|
||||
msgid "Monetization"
|
||||
msgstr ""
|
||||
|
||||
@@ -4346,7 +4378,7 @@ msgstr "جديد"
|
||||
msgid "New Batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:678 lms/www/lms.py:93
|
||||
#: frontend/src/pages/CourseForm.vue:690 lms/www/lms.py:93
|
||||
msgid "New Course"
|
||||
msgstr ""
|
||||
|
||||
@@ -4370,7 +4402,7 @@ msgstr ""
|
||||
msgid "New Question"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:404 frontend/src/pages/QuizForm.vue:412
|
||||
#: frontend/src/pages/QuizForm.vue:400 frontend/src/pages/QuizForm.vue:408
|
||||
msgid "New Quiz"
|
||||
msgstr ""
|
||||
|
||||
@@ -4950,7 +4982,7 @@ msgstr "رقم الهاتف"
|
||||
msgid "Pink"
|
||||
msgstr "وردي"
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:34
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:35
|
||||
msgid "Please add <a href='{0}'>{1}</a> for <a href='{2}'>{3}</a> to send calendar invites for evaluations."
|
||||
msgstr ""
|
||||
|
||||
@@ -4974,7 +5006,7 @@ msgstr ""
|
||||
msgid "Please complete the previous course to unlock this one."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:197
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:196
|
||||
msgid "Please enable the zoom account to use this feature."
|
||||
msgstr ""
|
||||
|
||||
@@ -4990,8 +5022,16 @@ msgstr ""
|
||||
msgid "Please enter a title."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:29
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:80
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:51
|
||||
msgid "Please enter a valid Contact Us Email."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:53
|
||||
msgid "Please enter a valid Contact Us URL."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:32
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:107
|
||||
msgid "Please enter a valid URL."
|
||||
msgstr ""
|
||||
|
||||
@@ -5003,7 +5043,7 @@ msgstr ""
|
||||
msgid "Please enter a valid timestamp"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:74
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:101
|
||||
msgid "Please enter the URL for assignment submission."
|
||||
msgstr ""
|
||||
|
||||
@@ -5031,7 +5071,7 @@ msgstr ""
|
||||
msgid "Please login to continue with payment."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:2012
|
||||
#: lms/lms/utils.py:2020
|
||||
msgid "Please login to enroll in the program."
|
||||
msgstr ""
|
||||
|
||||
@@ -5088,7 +5128,7 @@ msgstr ""
|
||||
msgid "Please upload a SCORM package"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:77
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:104
|
||||
msgid "Please upload the assignment file."
|
||||
msgstr ""
|
||||
|
||||
@@ -5134,7 +5174,7 @@ msgstr "بعد"
|
||||
msgid "Postal Code"
|
||||
msgstr "الرمز البريدي"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:122
|
||||
#: frontend/src/components/AppSidebar.vue:125
|
||||
msgid "Powered by Learning"
|
||||
msgstr ""
|
||||
|
||||
@@ -5411,7 +5451,7 @@ msgstr ""
|
||||
#: frontend/src/components/Assignment.vue:20
|
||||
#: frontend/src/components/Modals/AssignmentForm.vue:32
|
||||
#: frontend/src/components/Modals/Question.vue:27
|
||||
#: frontend/src/pages/QuizForm.vue:343 frontend/src/pages/QuizSubmission.vue:56
|
||||
#: frontend/src/pages/QuizForm.vue:339 frontend/src/pages/QuizSubmission.vue:56
|
||||
#: lms/lms/doctype/course_lesson/course_lesson.json
|
||||
#: lms/lms/doctype/lms_assignment/lms_assignment.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -5431,11 +5471,11 @@ msgstr ""
|
||||
msgid "Question Name"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:284
|
||||
#: frontend/src/components/Modals/Question.vue:285
|
||||
msgid "Question added successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:334
|
||||
#: frontend/src/components/Modals/Question.vue:335
|
||||
msgid "Question updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -5452,7 +5492,7 @@ msgstr ""
|
||||
msgid "Questions"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:385
|
||||
#: frontend/src/pages/QuizForm.vue:381
|
||||
msgid "Questions deleted successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -5502,7 +5542,7 @@ msgstr ""
|
||||
msgid "Quiz is not available to Guest users. Please login to continue."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:310
|
||||
#: frontend/src/pages/QuizForm.vue:306
|
||||
msgid "Quiz updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -5511,8 +5551,8 @@ msgstr ""
|
||||
msgid "Quiz will appear at the bottom of the lesson."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:606
|
||||
#: frontend/src/pages/QuizForm.vue:396 frontend/src/pages/Quizzes.vue:275
|
||||
#: frontend/src/components/AppSidebar.vue:621
|
||||
#: frontend/src/pages/QuizForm.vue:392 frontend/src/pages/Quizzes.vue:275
|
||||
#: frontend/src/pages/Quizzes.vue:285 lms/www/lms.py:249
|
||||
msgid "Quizzes"
|
||||
msgstr ""
|
||||
@@ -5655,7 +5695,7 @@ msgstr "استئنف"
|
||||
msgid "Resume Video"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:142
|
||||
#: frontend/src/pages/Home/Home.vue:143
|
||||
msgid "Resume where you left off"
|
||||
msgstr ""
|
||||
|
||||
@@ -5696,7 +5736,7 @@ msgstr ""
|
||||
msgid "Role updated successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:634
|
||||
#: frontend/src/components/AppSidebar.vue:649
|
||||
msgid "Roles"
|
||||
msgstr "الصلاحيات"
|
||||
|
||||
@@ -5914,6 +5954,10 @@ msgstr ""
|
||||
msgid "Select an assignment"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:33
|
||||
msgid "Send"
|
||||
msgstr "إرسال"
|
||||
|
||||
#: lms/lms/doctype/lms_batch_enrollment/lms_batch_enrollment.js:7
|
||||
msgid "Send Confirmation Email"
|
||||
msgstr ""
|
||||
@@ -5945,16 +5989,16 @@ msgstr ""
|
||||
msgid "Set your Password"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:577
|
||||
#: frontend/src/components/AppSidebar.vue:592
|
||||
msgid "Setting up"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:627
|
||||
#: frontend/src/components/AppSidebar.vue:642
|
||||
msgid "Setting up payment gateway"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:632
|
||||
#: frontend/src/components/Settings/Settings.vue:7
|
||||
#: frontend/src/components/AppSidebar.vue:647
|
||||
#: frontend/src/components/Settings/Settings.vue:9
|
||||
#: frontend/src/pages/BatchForm.vue:53 frontend/src/pages/CourseForm.vue:142
|
||||
#: frontend/src/pages/ProfileRoles.vue:4
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseSubmission.vue:19
|
||||
@@ -6252,7 +6296,7 @@ msgstr ""
|
||||
#. Option for the 'User Category' (Select) field in DocType 'User'
|
||||
#. Option for the 'Required Role' (Select) field in DocType 'Cohort Web Page'
|
||||
#. Option for the 'Member Type' (Select) field in DocType 'LMS Enrollment'
|
||||
#: frontend/src/pages/Home/Home.vue:147 frontend/src/pages/ProfileRoles.vue:38
|
||||
#: frontend/src/pages/Home/Home.vue:148 frontend/src/pages/ProfileRoles.vue:38
|
||||
#: lms/fixtures/custom_field.json
|
||||
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
||||
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
||||
@@ -6289,6 +6333,7 @@ msgstr ""
|
||||
msgid "Subgroup"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:13
|
||||
#: frontend/src/components/Modals/AnnouncementModal.vue:20
|
||||
#: frontend/src/components/Modals/EmailTemplateModal.vue:31
|
||||
msgid "Subject"
|
||||
@@ -6524,7 +6569,7 @@ msgstr ""
|
||||
msgid "Thanks and Regards"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:1904
|
||||
#: lms/lms/utils.py:1912
|
||||
msgid "The batch is full. Please contact the Administrator."
|
||||
msgstr ""
|
||||
|
||||
@@ -6536,11 +6581,11 @@ msgstr ""
|
||||
msgid "The course {0} is now available on {1}."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:55
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:56
|
||||
msgid "The evaluator of this course is unavailable from {0} to {1}. Please select a date after {1}"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:73
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:74
|
||||
msgid "The slot is already booked by another participant."
|
||||
msgstr ""
|
||||
|
||||
@@ -6576,7 +6621,7 @@ msgstr ""
|
||||
msgid "There are no {0} on this site."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:40
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:67
|
||||
msgid "There has been an update on your submission for assignment {0}"
|
||||
msgstr ""
|
||||
|
||||
@@ -6613,7 +6658,7 @@ msgstr ""
|
||||
msgid "This course has:"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:1765
|
||||
#: lms/lms/utils.py:1773
|
||||
msgid "This course is free."
|
||||
msgstr ""
|
||||
|
||||
@@ -6649,8 +6694,8 @@ msgstr ""
|
||||
msgid "This quiz consists of {0} questions."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:75
|
||||
#: frontend/src/components/AppSidebar.vue:115
|
||||
#: frontend/src/components/AppSidebar.vue:78
|
||||
#: frontend/src/components/AppSidebar.vue:118
|
||||
msgid "This site is being updated. You will not be able to make any changes. Full access will be restored shortly."
|
||||
msgstr ""
|
||||
|
||||
@@ -6721,15 +6766,21 @@ msgstr ""
|
||||
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Batch'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Certificate Request'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Course'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Live Class'
|
||||
#: frontend/src/components/Modals/LiveClassModal.vue:59
|
||||
#: frontend/src/pages/BatchForm.vue:114
|
||||
#: frontend/src/pages/BatchForm.vue:114 frontend/src/pages/CourseForm.vue:288
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.json
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.json
|
||||
msgid "Timezone"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:72
|
||||
msgid "Timezone is required for paid certificates."
|
||||
msgstr ""
|
||||
|
||||
#: lms/templates/emails/batch_confirmation.html:21
|
||||
#: lms/templates/emails/batch_start_reminder.html:16
|
||||
#: lms/templates/emails/live_class_reminder.html:16
|
||||
@@ -6799,7 +6850,7 @@ msgstr "إلى"
|
||||
msgid "To Date"
|
||||
msgstr "إلى تاريخ"
|
||||
|
||||
#: lms/lms/utils.py:1776
|
||||
#: lms/lms/utils.py:1784
|
||||
msgid "To join this batch, please contact the Administrator."
|
||||
msgstr ""
|
||||
|
||||
@@ -7226,7 +7277,7 @@ msgstr ""
|
||||
msgid "Yellow"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:95
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:96
|
||||
msgid "You already have an evaluation on {0} at {1} for the course {2}."
|
||||
msgstr ""
|
||||
|
||||
@@ -7279,11 +7330,11 @@ msgstr ""
|
||||
msgid "You cannot change the roles in read-only mode."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:111
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:112
|
||||
msgid "You cannot schedule evaluations after {0}."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:102
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:103
|
||||
msgid "You cannot schedule evaluations for past slots."
|
||||
msgstr ""
|
||||
|
||||
@@ -7340,19 +7391,23 @@ msgstr ""
|
||||
msgid "You have got a score of {0} for the quiz {1}"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/ProfileCertificates.vue:26
|
||||
msgid "You have not received any certificates yet."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/widgets/NoPreviewModal.html:12
|
||||
msgid "You have opted to be notified for this course. You will receive an email when the course becomes available."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:102 frontend/src/pages/Home/Home.vue:125
|
||||
#: frontend/src/pages/Home/Home.vue:103 frontend/src/pages/Home/Home.vue:126
|
||||
msgid "You have {0} upcoming {1} and {2} {3} scheduled."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:109 frontend/src/pages/Home/Home.vue:132
|
||||
#: frontend/src/pages/Home/Home.vue:110 frontend/src/pages/Home/Home.vue:133
|
||||
msgid "You have {0} upcoming {1}."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:114 frontend/src/pages/Home/Home.vue:137
|
||||
#: frontend/src/pages/Home/Home.vue:115 frontend/src/pages/Home/Home.vue:138
|
||||
msgid "You have {0} {1} scheduled."
|
||||
msgstr ""
|
||||
|
||||
@@ -7400,7 +7455,7 @@ msgstr ""
|
||||
msgid "Your Output"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:309
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:308
|
||||
msgid "Your batch {0} is starting tomorrow"
|
||||
msgstr ""
|
||||
|
||||
@@ -7408,7 +7463,7 @@ msgstr ""
|
||||
msgid "Your calendar is set."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:88
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:95
|
||||
msgid "Your class on {0} is today"
|
||||
msgstr ""
|
||||
|
||||
@@ -7421,7 +7476,7 @@ msgstr ""
|
||||
msgid "Your evaluation for the course {0} has been scheduled on {1} at {2} {3}."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:121
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:136
|
||||
msgid "Your evaluation slot has been booked"
|
||||
msgstr ""
|
||||
|
||||
@@ -7474,8 +7529,8 @@ msgstr "أنشطة"
|
||||
msgid "activity"
|
||||
msgstr "نشاط"
|
||||
|
||||
#: frontend/src/components/CourseInstructors.vue:22
|
||||
#: frontend/src/components/CourseInstructors.vue:41
|
||||
#: frontend/src/components/CourseInstructors.vue:24
|
||||
#: frontend/src/components/CourseInstructors.vue:45
|
||||
msgid "and"
|
||||
msgstr "و"
|
||||
|
||||
@@ -7538,11 +7593,15 @@ msgstr ""
|
||||
msgid "days"
|
||||
msgstr "أيام"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:100 frontend/src/pages/Home/Home.vue:123
|
||||
#: frontend/src/pages/CourseForm.vue:290
|
||||
msgid "e.g. IST, UTC, GMT..."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:101 frontend/src/pages/Home/Home.vue:124
|
||||
msgid "evaluation"
|
||||
msgstr "تقييم"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:100 frontend/src/pages/Home/Home.vue:123
|
||||
#: frontend/src/pages/Home/Home.vue:101 frontend/src/pages/Home/Home.vue:124
|
||||
msgid "evaluations"
|
||||
msgstr ""
|
||||
|
||||
@@ -7562,11 +7621,11 @@ msgstr ""
|
||||
msgid "lessons"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:98 frontend/src/pages/Home/Home.vue:122
|
||||
#: frontend/src/pages/Home/Home.vue:99 frontend/src/pages/Home/Home.vue:123
|
||||
msgid "live class"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:98 frontend/src/pages/Home/Home.vue:122
|
||||
#: frontend/src/pages/Home/Home.vue:99 frontend/src/pages/Home/Home.vue:123
|
||||
msgid "live classes"
|
||||
msgstr ""
|
||||
|
||||
@@ -7584,11 +7643,11 @@ msgstr "الطلاب"
|
||||
msgid "minutes"
|
||||
msgstr "الدقائق"
|
||||
|
||||
#: frontend/src/components/CourseInstructors.vue:41
|
||||
#: frontend/src/components/CourseInstructors.vue:45
|
||||
msgid "others"
|
||||
msgstr "بدلات أخرى"
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:344
|
||||
#: frontend/src/pages/QuizForm.vue:340
|
||||
msgid "question_detail"
|
||||
msgstr ""
|
||||
|
||||
|
||||
297
lms/locale/bs.po
297
lms/locale/bs.po
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: frappe\n"
|
||||
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
||||
"POT-Creation-Date: 2025-10-03 16:04+0000\n"
|
||||
"PO-Revision-Date: 2025-10-06 10:51\n"
|
||||
"POT-Creation-Date: 2025-10-31 16:04+0000\n"
|
||||
"PO-Revision-Date: 2025-11-02 19:07\n"
|
||||
"Last-Translator: jannat@frappe.io\n"
|
||||
"Language-Team: Bosnian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -196,7 +196,7 @@ msgstr "Dodaj Lekciju"
|
||||
msgid "Add a Student"
|
||||
msgstr "Dodaj Studenta"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:585
|
||||
#: frontend/src/components/AppSidebar.vue:600
|
||||
msgid "Add a chapter"
|
||||
msgstr "Dodaj Poglavlje"
|
||||
|
||||
@@ -208,7 +208,7 @@ msgstr "Dodaj Kurs"
|
||||
msgid "Add a keyword and then press enter"
|
||||
msgstr "Dodaj ključnu riječ, a zatim pritisnite enter"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:586
|
||||
#: frontend/src/components/AppSidebar.vue:601
|
||||
msgid "Add a lesson"
|
||||
msgstr "Dodaj Lekciju"
|
||||
|
||||
@@ -216,12 +216,12 @@ msgstr "Dodaj Lekciju"
|
||||
msgid "Add a new member"
|
||||
msgstr "Dodaj novog člana"
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:166
|
||||
#: frontend/src/components/Modals/Question.vue:167
|
||||
#: frontend/src/pages/QuizForm.vue:200
|
||||
msgid "Add a new question"
|
||||
msgstr "Dodaj novo pitanje"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:600
|
||||
#: frontend/src/components/AppSidebar.vue:615
|
||||
msgid "Add a program"
|
||||
msgstr "Dodaj program"
|
||||
|
||||
@@ -245,7 +245,7 @@ msgstr "Dodaj zadatak svojoj lekciji"
|
||||
msgid "Add at least one possible answer for this question: {0}"
|
||||
msgstr "Dodaj barem jedan mogući odgovor na ovo pitanje: {0}"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:549
|
||||
#: frontend/src/components/AppSidebar.vue:564
|
||||
msgid "Add courses to your batch"
|
||||
msgstr "Dodaj kurseve u vašu grupu"
|
||||
|
||||
@@ -253,7 +253,7 @@ msgstr "Dodaj kurseve u vašu grupu"
|
||||
msgid "Add quiz to this video"
|
||||
msgstr "Dodaj kviz ovom videu"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:528
|
||||
#: frontend/src/components/AppSidebar.vue:543
|
||||
msgid "Add students to your batch"
|
||||
msgstr "Dodaj učenike u vašu grupu"
|
||||
|
||||
@@ -269,11 +269,11 @@ msgstr "Dodaj web stranicu na bočnu traku"
|
||||
msgid "Add your assignment as {0}"
|
||||
msgstr "Dodaj zadatak kao {0}"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:461
|
||||
#: frontend/src/components/AppSidebar.vue:476
|
||||
msgid "Add your first chapter"
|
||||
msgstr "Dodaj vaše prvo poglavlje"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:477
|
||||
#: frontend/src/components/AppSidebar.vue:492
|
||||
msgid "Add your first lesson"
|
||||
msgstr "Dodaj vašu prvu lekciju"
|
||||
|
||||
@@ -378,11 +378,11 @@ msgstr "Iznos (USD)"
|
||||
msgid "Amount and currency are required for paid batches."
|
||||
msgstr "Iznos i Valuta su obavezni za plaćene grupe."
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:76
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:79
|
||||
msgid "Amount and currency are required for paid certificates."
|
||||
msgstr "Iznos i valuta su obevezni za plaćene certifikate."
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:73
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:76
|
||||
msgid "Amount and currency are required for paid courses."
|
||||
msgstr "Iznos i valuta su potrebni za plaćene kurseve."
|
||||
|
||||
@@ -508,7 +508,7 @@ msgid "Assessment {0} has already been added to this batch."
|
||||
msgstr "Procjena {0} je već dodana ovoj grupi."
|
||||
|
||||
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
||||
#: frontend/src/components/AppSidebar.vue:603
|
||||
#: frontend/src/components/AppSidebar.vue:618
|
||||
#: frontend/src/components/Assessments.vue:5
|
||||
#: frontend/src/components/BatchStudents.vue:32
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
@@ -573,11 +573,11 @@ msgstr "Naziv Zadatka"
|
||||
msgid "Assignment created successfully"
|
||||
msgstr "Zadatak je uspješno kreiran"
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:24
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:27
|
||||
msgid "Assignment for Lesson {0} by {1} already exists."
|
||||
msgstr "Zadatak za Lekciju {0} od {1} već postoji."
|
||||
|
||||
#: frontend/src/components/Assignment.vue:359
|
||||
#: frontend/src/components/Assignment.vue:362
|
||||
msgid "Assignment submitted successfully"
|
||||
msgstr "Zadatak uspješno predan"
|
||||
|
||||
@@ -590,7 +590,7 @@ msgstr "Zadatak je uspješno ažuriran"
|
||||
msgid "Assignment will appear at the bottom of the lesson."
|
||||
msgstr "Zadatak će se pojaviti na dnu lekcije."
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:607
|
||||
#: frontend/src/components/AppSidebar.vue:622
|
||||
#: frontend/src/components/Settings/Badges.vue:163
|
||||
#: frontend/src/pages/Assignments.vue:208 lms/www/lms.py:271
|
||||
msgid "Assignments"
|
||||
@@ -1017,7 +1017,7 @@ msgstr "Certifikati su uspješno generirani"
|
||||
#. Enrollment'
|
||||
#. Label of a Card Break in the LMS Workspace
|
||||
#. Label of a Link in the LMS Workspace
|
||||
#: frontend/src/components/AppSidebar.vue:611
|
||||
#: frontend/src/components/AppSidebar.vue:626
|
||||
#: frontend/src/components/Modals/Event.vue:381
|
||||
#: frontend/src/pages/BatchForm.vue:69 frontend/src/pages/Batches.vue:58
|
||||
#: frontend/src/pages/CourseCertification.vue:10
|
||||
@@ -1040,6 +1040,11 @@ msgstr "Detalji Certifikacije"
|
||||
msgid "Certification Name"
|
||||
msgstr "Naziv Certifikacije"
|
||||
|
||||
#. Label of the certifications (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Certifications"
|
||||
msgstr "Certifikacije"
|
||||
|
||||
#: frontend/src/components/BatchStudents.vue:17
|
||||
msgid "Certified"
|
||||
msgstr "Certificirano"
|
||||
@@ -1052,8 +1057,7 @@ msgstr "Certificirano"
|
||||
msgid "Certified Members"
|
||||
msgstr "Certificirani Članovi"
|
||||
|
||||
#. Label of the certified_participants (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:300
|
||||
#: lms/www/lms.py:300
|
||||
msgid "Certified Participants"
|
||||
msgstr "Certificirani Učesnici"
|
||||
|
||||
@@ -1061,7 +1065,7 @@ msgstr "Certificirani Učesnici"
|
||||
msgid "Change"
|
||||
msgstr "Promjeni"
|
||||
|
||||
#: frontend/src/components/Assignment.vue:345
|
||||
#: frontend/src/components/Assignment.vue:348
|
||||
msgid "Changes saved successfully"
|
||||
msgstr "Promjene su uspješno spremljene"
|
||||
|
||||
@@ -1272,7 +1276,7 @@ msgstr "Web stranica Grupe"
|
||||
msgid "Collaboration Preference"
|
||||
msgstr "Preference Saradnje"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:142
|
||||
#: frontend/src/components/AppSidebar.vue:145
|
||||
msgid "Collapse"
|
||||
msgstr "Sklopi"
|
||||
|
||||
@@ -1291,7 +1295,7 @@ msgstr "Ime Koledža"
|
||||
msgid "Color"
|
||||
msgstr "Boja"
|
||||
|
||||
#: frontend/src/pages/BatchForm.vue:306 frontend/src/pages/CourseForm.vue:300
|
||||
#: frontend/src/pages/BatchForm.vue:306 frontend/src/pages/CourseForm.vue:312
|
||||
msgid "Comma separated keywords for SEO"
|
||||
msgstr "Ključne riječi odvojene zarezom za SEO"
|
||||
|
||||
@@ -1301,7 +1305,7 @@ msgstr "Ključne riječi odvojene zarezom za SEO"
|
||||
#. Label of the comments (Text Editor) field in DocType 'LMS Assignment
|
||||
#. Submission'
|
||||
#. Label of the comments (Small Text) field in DocType 'LMS Mentor Request'
|
||||
#: frontend/src/components/Assignment.vue:167
|
||||
#: frontend/src/components/Assignment.vue:170
|
||||
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
||||
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -1309,7 +1313,7 @@ msgstr "Ključne riječi odvojene zarezom za SEO"
|
||||
msgid "Comments"
|
||||
msgstr "Komentari"
|
||||
|
||||
#: frontend/src/components/Assignment.vue:145
|
||||
#: frontend/src/components/Assignment.vue:148
|
||||
msgid "Comments by Evaluator"
|
||||
msgstr "Komentari Ocjenjivača"
|
||||
|
||||
@@ -1464,6 +1468,22 @@ msgstr "Šablon e-pošte za potvrdu"
|
||||
msgid "Congratulations on getting certified!"
|
||||
msgstr "Čestitamo na certificiranju!"
|
||||
|
||||
#. Label of the contact_us_tab (Tab Break) field in DocType 'LMS Settings'
|
||||
#: frontend/src/components/ContactUsEmail.vue:5
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us"
|
||||
msgstr "Kontaktirajte nas"
|
||||
|
||||
#. Label of the contact_us_email (Data) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us Email"
|
||||
msgstr "Kontakt E-pošta"
|
||||
|
||||
#. Label of the contact_us_url (Data) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us URL"
|
||||
msgstr "Kontakt URL"
|
||||
|
||||
#: frontend/src/components/CourseCardOverlay.vue:63
|
||||
#: frontend/src/pages/Lesson.vue:97
|
||||
msgid "Contact the Administrator to enroll for this course."
|
||||
@@ -1677,7 +1697,7 @@ msgstr "Lista Kurseva"
|
||||
msgid "Course Name"
|
||||
msgstr "Naziv Kursa"
|
||||
|
||||
#: frontend/src/pages/CourseDetail.vue:78 frontend/src/pages/CourseForm.vue:310
|
||||
#: frontend/src/pages/CourseDetail.vue:78 frontend/src/pages/CourseForm.vue:322
|
||||
msgid "Course Outline"
|
||||
msgstr "Pregled Kursa"
|
||||
|
||||
@@ -1714,15 +1734,15 @@ msgstr "Naziv Kursa"
|
||||
msgid "Course added to program successfully"
|
||||
msgstr "Kurs je uspješno dodan u program"
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:547
|
||||
#: frontend/src/pages/CourseForm.vue:559
|
||||
msgid "Course created successfully"
|
||||
msgstr "Kurs je uspješno kreiran"
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:584
|
||||
#: frontend/src/pages/CourseForm.vue:596
|
||||
msgid "Course deleted successfully"
|
||||
msgstr "Kurs uspješno izbrisan"
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:567
|
||||
#: frontend/src/pages/CourseForm.vue:579
|
||||
msgid "Course updated successfully"
|
||||
msgstr "Kurs je uspješno ažuriran"
|
||||
|
||||
@@ -1815,15 +1835,15 @@ msgstr "Kreiraj Razred Uživo"
|
||||
msgid "Create a Quiz"
|
||||
msgstr "Napravi Kviz"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:593
|
||||
#: frontend/src/components/AppSidebar.vue:608
|
||||
msgid "Create a batch"
|
||||
msgstr "Kreiraj grupu"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:584
|
||||
#: frontend/src/components/AppSidebar.vue:599
|
||||
msgid "Create a course"
|
||||
msgstr "Kreiraj kurs"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:594
|
||||
#: frontend/src/components/AppSidebar.vue:609
|
||||
msgid "Create a live class"
|
||||
msgstr "Kreiraj čas uživo"
|
||||
|
||||
@@ -1835,15 +1855,15 @@ msgstr "Kreiraj novu Značku"
|
||||
msgid "Create an Assignment"
|
||||
msgstr "Kreiraj Zadatak"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:518
|
||||
#: frontend/src/components/AppSidebar.vue:533
|
||||
msgid "Create your first batch"
|
||||
msgstr "Kreiraj vašu prvu seriju"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:449
|
||||
#: frontend/src/components/AppSidebar.vue:464
|
||||
msgid "Create your first course"
|
||||
msgstr "Kreiraj vaš prvi kurs"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:496
|
||||
#: frontend/src/components/AppSidebar.vue:511
|
||||
msgid "Create your first quiz"
|
||||
msgstr "Kreiraj vašj prvi kviz"
|
||||
|
||||
@@ -1851,11 +1871,11 @@ msgstr "Kreiraj vašj prvi kviz"
|
||||
msgid "Created"
|
||||
msgstr "Kreirano"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:590
|
||||
#: frontend/src/components/AppSidebar.vue:605
|
||||
msgid "Creating a batch"
|
||||
msgstr "Kreiranje grupe u toku"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:581
|
||||
#: frontend/src/components/AppSidebar.vue:596
|
||||
msgid "Creating a course"
|
||||
msgstr "Kreiranje kursa u toku"
|
||||
|
||||
@@ -1863,7 +1883,7 @@ msgstr "Kreiranje kursa u toku"
|
||||
#. Label of the currency (Link) field in DocType 'LMS Course'
|
||||
#. Label of the currency (Link) field in DocType 'LMS Payment'
|
||||
#: frontend/src/components/Settings/TransactionDetails.vue:64
|
||||
#: frontend/src/pages/BatchForm.vue:285 frontend/src/pages/CourseForm.vue:279
|
||||
#: frontend/src/pages/BatchForm.vue:285 frontend/src/pages/CourseForm.vue:282
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
#: lms/lms/doctype/lms_payment/lms_payment.json
|
||||
@@ -1879,7 +1899,7 @@ msgstr "Trenutna Lekcija"
|
||||
msgid "Current Streak"
|
||||
msgstr "Aktuelni Period"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:617
|
||||
#: frontend/src/components/AppSidebar.vue:632
|
||||
msgid "Custom Certificate Templates"
|
||||
msgstr "Prilagođeni Šabloni Certifikata"
|
||||
|
||||
@@ -1979,7 +1999,7 @@ msgstr "Tip Stepena"
|
||||
#: frontend/src/components/CourseOutline.vue:360
|
||||
#: frontend/src/components/DiscussionReplies.vue:41
|
||||
#: frontend/src/components/Settings/Badges.vue:171
|
||||
#: frontend/src/pages/BatchForm.vue:565 frontend/src/pages/CourseForm.vue:597
|
||||
#: frontend/src/pages/BatchForm.vue:565 frontend/src/pages/CourseForm.vue:609
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseForm.vue:67
|
||||
#: frontend/src/pages/Programs/ProgramForm.vue:231
|
||||
msgid "Delete"
|
||||
@@ -1989,7 +2009,7 @@ msgstr "Izbriši"
|
||||
msgid "Delete Chapter"
|
||||
msgstr "Izbriši Poglavlje"
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:591
|
||||
#: frontend/src/pages/CourseForm.vue:603
|
||||
msgid "Delete Course"
|
||||
msgstr "Izbriši Kurs"
|
||||
|
||||
@@ -2001,7 +2021,7 @@ msgstr "Izbriši ovo Poglavlje?"
|
||||
msgid "Delete this lesson?"
|
||||
msgstr "Izbriši ovu Lekciju?"
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:592
|
||||
#: frontend/src/pages/CourseForm.vue:604
|
||||
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
||||
msgstr "Brisanjem kursa izbrisat će se i sva njegova poglavlja i lekcije. Jeste li sigurni da želite izbrisati ovaj kurs?"
|
||||
|
||||
@@ -2251,6 +2271,10 @@ msgstr "Šablon e-pošte"
|
||||
msgid "Email Templates deleted successfully"
|
||||
msgstr "Šabloni e-pošte uspješno izbrisani"
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:57
|
||||
msgid "Email sent successfully"
|
||||
msgstr "E-pošta je uspješno poslana"
|
||||
|
||||
#. Label of the show_emails (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Emails"
|
||||
@@ -2266,7 +2290,7 @@ msgstr "Personal"
|
||||
msgid "Enable"
|
||||
msgstr "Omogući"
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:21
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:22
|
||||
msgid "Enable Google API in Google Settings to send calendar invites for evaluations."
|
||||
msgstr "Omogućite Google API u Google Postavkama za slanje kalendarskih pozivnica za ocjenjivanje."
|
||||
|
||||
@@ -2365,7 +2389,7 @@ msgstr "Potvrda upisa za {0}"
|
||||
msgid "Enrollment Count"
|
||||
msgstr "Broj Upisa"
|
||||
|
||||
#: lms/lms/utils.py:1880
|
||||
#: lms/lms/utils.py:1888
|
||||
msgid "Enrollment Failed, {0}"
|
||||
msgstr "Prijava nije uspjela, {0}"
|
||||
|
||||
@@ -2382,7 +2406,7 @@ msgstr "Upis za Program {0}"
|
||||
msgid "Enrollments"
|
||||
msgstr "Upisi"
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:26
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:27
|
||||
msgid "Enter Client Id and Client Secret in Google Settings to send calendar invites for evaluations."
|
||||
msgstr "Unesite Klijent Id i Klijent Tajnu u Google Postavke da pošaljete kalendarske pozivnice za ocjenjivanje."
|
||||
|
||||
@@ -2402,7 +2426,7 @@ msgstr "Greška pri kreiranju značke"
|
||||
msgid "Error creating email template"
|
||||
msgstr "Greška pri kreiranju šablona e-pošte"
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:191
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:190
|
||||
msgid "Error creating live class. Please try again. {0}"
|
||||
msgstr "Greška pri kreiranju časa uživo. Pokušaj ponovo. {0}"
|
||||
|
||||
@@ -2467,7 +2491,7 @@ msgstr "Evaluacija je uspješno sačuvana"
|
||||
#. Label of the evaluator (Link) field in DocType 'LMS Course'
|
||||
#: frontend/src/components/Modals/BatchCourseModal.vue:37
|
||||
#: frontend/src/components/Modals/BulkCertificates.vue:22
|
||||
#: frontend/src/pages/CourseForm.vue:268 frontend/src/pages/ProfileRoles.vue:32
|
||||
#: frontend/src/pages/CourseForm.vue:269 frontend/src/pages/ProfileRoles.vue:32
|
||||
#: lms/lms/doctype/batch_course/batch_course.json
|
||||
#: lms/lms/doctype/course_evaluator/course_evaluator.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -2555,7 +2579,7 @@ msgstr "Prijava Vježbe"
|
||||
msgid "Exercise Title"
|
||||
msgstr "Naziv Vježbe"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:142
|
||||
#: frontend/src/components/AppSidebar.vue:145
|
||||
msgid "Expand"
|
||||
msgstr "Proširi"
|
||||
|
||||
@@ -2625,10 +2649,14 @@ msgstr "Nije uspjelo kreiranje dodjele značke: "
|
||||
msgid "Failed to enroll in program: {0}"
|
||||
msgstr "Neuspješan upis u program: {0}"
|
||||
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:137
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:144
|
||||
msgid "Failed to fetch attendance data from Zoom for class {0}: {1}"
|
||||
msgstr "Nije moguće preuzeti podatke o prisustvu sa Zooma za čas {0}: {1}"
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:63
|
||||
msgid "Failed to send email"
|
||||
msgstr "Slanje e-pošte nije uspjelo"
|
||||
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseSubmission.vue:358
|
||||
msgid "Failed to submit. Please try again. {0}"
|
||||
msgstr "Podnošenje nije uspjelo. Pokušaj ponovo. {0}"
|
||||
@@ -2814,7 +2842,7 @@ msgstr "Preuzmi Certifikat"
|
||||
|
||||
#: frontend/src/components/CertificationLinks.vue:34
|
||||
#: frontend/src/components/CertificationLinks.vue:50
|
||||
#: frontend/src/components/CourseCard.vue:125
|
||||
#: frontend/src/components/CourseCard.vue:126
|
||||
#: frontend/src/pages/CertifiedParticipants.vue:11
|
||||
msgid "Get Certified"
|
||||
msgstr "Certificiraj se"
|
||||
@@ -2843,7 +2871,7 @@ msgid "Google Meet Link"
|
||||
msgstr "Google Meet veza"
|
||||
|
||||
#. Label of the grade (Data) field in DocType 'Education Detail'
|
||||
#: frontend/src/components/Assignment.vue:161
|
||||
#: frontend/src/components/Assignment.vue:164
|
||||
#: lms/lms/doctype/education_detail/education_detail.json
|
||||
msgid "Grade"
|
||||
msgstr "Ocjena"
|
||||
@@ -2858,7 +2886,7 @@ msgstr "Dodjela Ocjena"
|
||||
msgid "Grade Type"
|
||||
msgstr "Tip Ocjene"
|
||||
|
||||
#: frontend/src/components/Assignment.vue:156
|
||||
#: frontend/src/components/Assignment.vue:159
|
||||
msgid "Grading"
|
||||
msgstr "Ocjenjivanje"
|
||||
|
||||
@@ -2898,7 +2926,7 @@ msgstr "Naslov"
|
||||
msgid "Hello"
|
||||
msgstr "Zdravo"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:128
|
||||
#: frontend/src/components/AppSidebar.vue:131
|
||||
msgid "Help"
|
||||
msgstr "Pomoć"
|
||||
|
||||
@@ -2963,7 +2991,7 @@ msgstr "Istaknuti Tekst"
|
||||
msgid "Hints"
|
||||
msgstr "Nagovještaji"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:5 frontend/src/pages/Home/Home.vue:153
|
||||
#: frontend/src/pages/Home/Home.vue:5 frontend/src/pages/Home/Home.vue:154
|
||||
msgid "Home"
|
||||
msgstr "Početna"
|
||||
|
||||
@@ -2995,7 +3023,7 @@ msgstr "Tražim posao"
|
||||
msgid "I am unavailable"
|
||||
msgstr "Ja sam nedostupan/nedostupna"
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:338
|
||||
#: frontend/src/pages/QuizForm.vue:334
|
||||
msgid "ID"
|
||||
msgstr "ID"
|
||||
|
||||
@@ -3155,7 +3183,7 @@ msgstr "Naziv Institucije"
|
||||
|
||||
#. Label of the instructor (Link) field in DocType 'Cohort'
|
||||
#. Label of the instructor (Link) field in DocType 'Course Instructor'
|
||||
#: frontend/src/pages/Home/Home.vue:148 lms/lms/doctype/cohort/cohort.json
|
||||
#: frontend/src/pages/Home/Home.vue:149 lms/lms/doctype/cohort/cohort.json
|
||||
#: lms/lms/doctype/course_instructor/course_instructor.json
|
||||
msgid "Instructor"
|
||||
msgstr "Instruktor"
|
||||
@@ -3191,8 +3219,8 @@ msgstr "Komentari Instruktora"
|
||||
msgid "Interest"
|
||||
msgstr "Kamata"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:573
|
||||
#: frontend/src/components/AppSidebar.vue:576
|
||||
#: frontend/src/components/AppSidebar.vue:588
|
||||
#: frontend/src/components/AppSidebar.vue:591
|
||||
msgid "Introduction"
|
||||
msgstr "Uvod"
|
||||
|
||||
@@ -3214,7 +3242,7 @@ msgstr "Pozivni Kod"
|
||||
msgid "Invite Only"
|
||||
msgstr "Samo po Pozivu"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:507
|
||||
#: frontend/src/components/AppSidebar.vue:522
|
||||
msgid "Invite your team and students"
|
||||
msgstr "Pozovi vaš tim i učenike"
|
||||
|
||||
@@ -3251,7 +3279,7 @@ msgstr "SCORM Paket"
|
||||
msgid "Issue Date"
|
||||
msgstr "Datum Izdavanja"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:614
|
||||
#: frontend/src/components/AppSidebar.vue:629
|
||||
msgid "Issue a Certificate"
|
||||
msgstr "Izdaj Certifikat"
|
||||
|
||||
@@ -3264,7 +3292,7 @@ msgid "Issued On"
|
||||
msgstr "Izdato"
|
||||
|
||||
#: frontend/src/pages/ProfileAbout.vue:73
|
||||
#: frontend/src/pages/ProfileCertificates.vue:17
|
||||
#: frontend/src/pages/ProfileCertificates.vue:20
|
||||
#: lms/templates/certificates_section.html:11
|
||||
msgid "Issued on"
|
||||
msgstr "Izdato"
|
||||
@@ -3679,7 +3707,7 @@ msgstr "Pokreni Datoteku"
|
||||
msgid "Learning Consistency"
|
||||
msgstr "Konzistentnost Učenja"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:598
|
||||
#: frontend/src/components/AppSidebar.vue:613
|
||||
msgid "Learning Paths"
|
||||
msgstr "Putevi Učenja"
|
||||
|
||||
@@ -3728,7 +3756,7 @@ msgstr "Referenca Lekcije"
|
||||
msgid "Lesson Title"
|
||||
msgstr "Naziv Lekcije"
|
||||
|
||||
#: frontend/src/pages/LessonForm.vue:426
|
||||
#: frontend/src/pages/LessonForm.vue:425
|
||||
msgid "Lesson created successfully"
|
||||
msgstr "Lekcija je uspješno kreirana"
|
||||
|
||||
@@ -3740,7 +3768,7 @@ msgstr "Lekcija je uspješno izbrisana"
|
||||
msgid "Lesson moved successfully"
|
||||
msgstr "Lekcija je uspješno premještena"
|
||||
|
||||
#: frontend/src/pages/LessonForm.vue:450
|
||||
#: frontend/src/pages/LessonForm.vue:449
|
||||
msgid "Lesson updated successfully"
|
||||
msgstr "Lekcija je uspješno ažurirana"
|
||||
|
||||
@@ -3889,7 +3917,7 @@ msgstr "Unesi ispravanu faktura adresu jer će se koristiti u vašoj fakturi."
|
||||
msgid "Manage Batch"
|
||||
msgstr "Upravljaj Grupom"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:119
|
||||
#: frontend/src/pages/Home/Home.vue:120
|
||||
msgid "Manage your courses and batches at a glance"
|
||||
msgstr "Upravljajte svojim kursevima i grupama na prvi pogled"
|
||||
|
||||
@@ -3920,7 +3948,7 @@ msgstr "Označi sve kao pročitano"
|
||||
#. Label of the marks (Int) field in DocType 'LMS Quiz Result'
|
||||
#: frontend/src/components/Modals/Question.vue:40
|
||||
#: frontend/src/components/Modals/Question.vue:106
|
||||
#: frontend/src/components/Quiz.vue:120 frontend/src/pages/QuizForm.vue:348
|
||||
#: frontend/src/components/Quiz.vue:120 frontend/src/pages/QuizForm.vue:344
|
||||
#: frontend/src/pages/QuizSubmission.vue:64
|
||||
#: lms/lms/doctype/lms_quiz_question/lms_quiz_question.json
|
||||
#: lms/lms/doctype/lms_quiz_result/lms_quiz_result.json
|
||||
@@ -4199,8 +4227,12 @@ msgstr "Šablon Kreiranje Zahtjeva za Mentora"
|
||||
msgid "Mentor Request Status Update Template"
|
||||
msgstr "Status Šablona Kreiranja Zahtjeva za Mentora"
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:19
|
||||
msgid "Message"
|
||||
msgstr "Poruka"
|
||||
|
||||
#. Label of the meta_description (Small Text) field in DocType 'LMS Settings'
|
||||
#: frontend/src/pages/BatchForm.vue:297 frontend/src/pages/CourseForm.vue:291
|
||||
#: frontend/src/pages/BatchForm.vue:297 frontend/src/pages/CourseForm.vue:303
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Meta Description"
|
||||
msgstr "Meta Opis"
|
||||
@@ -4214,12 +4246,12 @@ msgid "Meta Image"
|
||||
msgstr "Meta Slika"
|
||||
|
||||
#. Label of the meta_keywords (Small Text) field in DocType 'LMS Settings'
|
||||
#: frontend/src/pages/BatchForm.vue:303 frontend/src/pages/CourseForm.vue:297
|
||||
#: frontend/src/pages/BatchForm.vue:303 frontend/src/pages/CourseForm.vue:309
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Meta Keywords"
|
||||
msgstr "Meta Ključne Riječi"
|
||||
|
||||
#: frontend/src/pages/BatchForm.vue:292 frontend/src/pages/CourseForm.vue:286
|
||||
#: frontend/src/pages/BatchForm.vue:292 frontend/src/pages/CourseForm.vue:298
|
||||
msgid "Meta Tags"
|
||||
msgstr "Meta tagovi"
|
||||
|
||||
@@ -4290,7 +4322,7 @@ msgstr "Modul je netačan."
|
||||
msgid "Monday"
|
||||
msgstr "Ponedjeljak"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:622
|
||||
#: frontend/src/components/AppSidebar.vue:637
|
||||
msgid "Monetization"
|
||||
msgstr "Monetizacija"
|
||||
|
||||
@@ -4346,7 +4378,7 @@ msgstr "Novi"
|
||||
msgid "New Batch"
|
||||
msgstr "Nova Grupa"
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:678 lms/www/lms.py:93
|
||||
#: frontend/src/pages/CourseForm.vue:690 lms/www/lms.py:93
|
||||
msgid "New Course"
|
||||
msgstr "Novi Kurs"
|
||||
|
||||
@@ -4370,7 +4402,7 @@ msgstr "Novi Sistem Plaćanja"
|
||||
msgid "New Question"
|
||||
msgstr "Novo Pitanje"
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:404 frontend/src/pages/QuizForm.vue:412
|
||||
#: frontend/src/pages/QuizForm.vue:400 frontend/src/pages/QuizForm.vue:408
|
||||
msgid "New Quiz"
|
||||
msgstr "Novi Kviz"
|
||||
|
||||
@@ -4950,7 +4982,7 @@ msgstr "Broj Telefona"
|
||||
msgid "Pink"
|
||||
msgstr "Roza"
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:34
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:35
|
||||
msgid "Please add <a href='{0}'>{1}</a> for <a href='{2}'>{3}</a> to send calendar invites for evaluations."
|
||||
msgstr "Dodaj <a href='{0}'>{1}</a> za <a href='{2}'>{3}</a> za slanje kalendarskih pozivnica za ocjenjivanje."
|
||||
|
||||
@@ -4974,7 +5006,7 @@ msgstr "Klikni na sljedeće dugme da postavite novu lozinku"
|
||||
msgid "Please complete the previous course to unlock this one."
|
||||
msgstr "Molimo vas da završite prethodni kurs da biste otključali ovaj."
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:197
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:196
|
||||
msgid "Please enable the zoom account to use this feature."
|
||||
msgstr "Omogući Zoom račun da biste koristili ovu funkciju."
|
||||
|
||||
@@ -4990,8 +5022,16 @@ msgstr "Popuni sva pitanja za {0} minuta."
|
||||
msgid "Please enter a title."
|
||||
msgstr "Unesi Naziv"
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:29
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:80
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:51
|
||||
msgid "Please enter a valid Contact Us Email."
|
||||
msgstr "Unesi važeću kontakt adresu e-pošte."
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:53
|
||||
msgid "Please enter a valid Contact Us URL."
|
||||
msgstr "Unesi važeći URL za kontakt."
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:32
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:107
|
||||
msgid "Please enter a valid URL."
|
||||
msgstr "Unesi važeći URL."
|
||||
|
||||
@@ -5003,7 +5043,7 @@ msgstr "Unesi važeće vrijeme u formatu HH:mm."
|
||||
msgid "Please enter a valid timestamp"
|
||||
msgstr "Unesi važeću vremensku oznaku"
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:74
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:101
|
||||
msgid "Please enter the URL for assignment submission."
|
||||
msgstr "Unesi URL za podnošenje zadatka."
|
||||
|
||||
@@ -5031,7 +5071,7 @@ msgstr "Prijavi se da pristupiš ovoj stranici."
|
||||
msgid "Please login to continue with payment."
|
||||
msgstr "Prijavi se da nastaviš s plaćanjem."
|
||||
|
||||
#: lms/lms/utils.py:2012
|
||||
#: lms/lms/utils.py:2020
|
||||
msgid "Please login to enroll in the program."
|
||||
msgstr "Molimo vas da se prijavite da biste se prijavili u program."
|
||||
|
||||
@@ -5088,7 +5128,7 @@ msgstr "Poduzmi odgovarajuće mjere na {0}"
|
||||
msgid "Please upload a SCORM package"
|
||||
msgstr "Učitaj SCORM Paket"
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:77
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:104
|
||||
msgid "Please upload the assignment file."
|
||||
msgstr "Učitaj datoteku zadatka."
|
||||
|
||||
@@ -5134,7 +5174,7 @@ msgstr "Objava"
|
||||
msgid "Postal Code"
|
||||
msgstr "Poštanski Broj"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:122
|
||||
#: frontend/src/components/AppSidebar.vue:125
|
||||
msgid "Powered by Learning"
|
||||
msgstr "Pokreće se od Učenje"
|
||||
|
||||
@@ -5411,7 +5451,7 @@ msgstr "Python"
|
||||
#: frontend/src/components/Assignment.vue:20
|
||||
#: frontend/src/components/Modals/AssignmentForm.vue:32
|
||||
#: frontend/src/components/Modals/Question.vue:27
|
||||
#: frontend/src/pages/QuizForm.vue:343 frontend/src/pages/QuizSubmission.vue:56
|
||||
#: frontend/src/pages/QuizForm.vue:339 frontend/src/pages/QuizSubmission.vue:56
|
||||
#: lms/lms/doctype/course_lesson/course_lesson.json
|
||||
#: lms/lms/doctype/lms_assignment/lms_assignment.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -5431,11 +5471,11 @@ msgstr "Detalj Pitanja"
|
||||
msgid "Question Name"
|
||||
msgstr "Naziv Pitanja"
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:284
|
||||
#: frontend/src/components/Modals/Question.vue:285
|
||||
msgid "Question added successfully"
|
||||
msgstr "Pitanje je uspješno dodano"
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:334
|
||||
#: frontend/src/components/Modals/Question.vue:335
|
||||
msgid "Question updated successfully"
|
||||
msgstr "Pitanje je uspješno ažurirano"
|
||||
|
||||
@@ -5452,7 +5492,7 @@ msgstr "Pitanje {0} od {1}"
|
||||
msgid "Questions"
|
||||
msgstr "Pitanja"
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:385
|
||||
#: frontend/src/pages/QuizForm.vue:381
|
||||
msgid "Questions deleted successfully"
|
||||
msgstr "Pitanja su uspješno izbrisana"
|
||||
|
||||
@@ -5502,7 +5542,7 @@ msgstr "Kviz je uspješno kreiran"
|
||||
msgid "Quiz is not available to Guest users. Please login to continue."
|
||||
msgstr "Kviz nije dostupan gostima. Prijavi se da nastaviš."
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:310
|
||||
#: frontend/src/pages/QuizForm.vue:306
|
||||
msgid "Quiz updated successfully"
|
||||
msgstr "Kviz je uspješno ažuriran"
|
||||
|
||||
@@ -5511,8 +5551,8 @@ msgstr "Kviz je uspješno ažuriran"
|
||||
msgid "Quiz will appear at the bottom of the lesson."
|
||||
msgstr "Kviz će se pojaviti na dnu lekcije."
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:606
|
||||
#: frontend/src/pages/QuizForm.vue:396 frontend/src/pages/Quizzes.vue:275
|
||||
#: frontend/src/components/AppSidebar.vue:621
|
||||
#: frontend/src/pages/QuizForm.vue:392 frontend/src/pages/Quizzes.vue:275
|
||||
#: frontend/src/pages/Quizzes.vue:285 lms/www/lms.py:249
|
||||
msgid "Quizzes"
|
||||
msgstr "Kvizovi"
|
||||
@@ -5655,7 +5695,7 @@ msgstr "Nastavi"
|
||||
msgid "Resume Video"
|
||||
msgstr "Nastavi Video"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:142
|
||||
#: frontend/src/pages/Home/Home.vue:143
|
||||
msgid "Resume where you left off"
|
||||
msgstr "Nastavite od tamo gdje ste stali"
|
||||
|
||||
@@ -5696,7 +5736,7 @@ msgstr "Preferenca Uloge"
|
||||
msgid "Role updated successfully"
|
||||
msgstr "Uloga je uspješno ažurirana"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:634
|
||||
#: frontend/src/components/AppSidebar.vue:649
|
||||
msgid "Roles"
|
||||
msgstr "Uloge"
|
||||
|
||||
@@ -5914,6 +5954,10 @@ msgstr "Odaberi termin"
|
||||
msgid "Select an assignment"
|
||||
msgstr "Odaberi Zadatak"
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:33
|
||||
msgid "Send"
|
||||
msgstr "Pošalji"
|
||||
|
||||
#: lms/lms/doctype/lms_batch_enrollment/lms_batch_enrollment.js:7
|
||||
msgid "Send Confirmation Email"
|
||||
msgstr "Pošalji potvrdnu e-poštu"
|
||||
@@ -5945,16 +5989,16 @@ msgstr "Postavi boju"
|
||||
msgid "Set your Password"
|
||||
msgstr "Postavite svoju Lozinku"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:577
|
||||
#: frontend/src/components/AppSidebar.vue:592
|
||||
msgid "Setting up"
|
||||
msgstr "Postavljanje"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:627
|
||||
#: frontend/src/components/AppSidebar.vue:642
|
||||
msgid "Setting up payment gateway"
|
||||
msgstr "Postavljanje Platnog Prolaza"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:632
|
||||
#: frontend/src/components/Settings/Settings.vue:7
|
||||
#: frontend/src/components/AppSidebar.vue:647
|
||||
#: frontend/src/components/Settings/Settings.vue:9
|
||||
#: frontend/src/pages/BatchForm.vue:53 frontend/src/pages/CourseForm.vue:142
|
||||
#: frontend/src/pages/ProfileRoles.vue:4
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseSubmission.vue:19
|
||||
@@ -6252,7 +6296,7 @@ msgstr "Status/Rezultat"
|
||||
#. Option for the 'User Category' (Select) field in DocType 'User'
|
||||
#. Option for the 'Required Role' (Select) field in DocType 'Cohort Web Page'
|
||||
#. Option for the 'Member Type' (Select) field in DocType 'LMS Enrollment'
|
||||
#: frontend/src/pages/Home/Home.vue:147 frontend/src/pages/ProfileRoles.vue:38
|
||||
#: frontend/src/pages/Home/Home.vue:148 frontend/src/pages/ProfileRoles.vue:38
|
||||
#: lms/fixtures/custom_field.json
|
||||
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
||||
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
||||
@@ -6289,6 +6333,7 @@ msgstr "Studenti će biti upisani u plaćenu grupu kada završe uplatu"
|
||||
msgid "Subgroup"
|
||||
msgstr "Podgrupa"
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:13
|
||||
#: frontend/src/components/Modals/AnnouncementModal.vue:20
|
||||
#: frontend/src/components/Modals/EmailTemplateModal.vue:31
|
||||
msgid "Subject"
|
||||
@@ -6524,7 +6569,7 @@ msgstr "Hvala vam na povratnim informacijama."
|
||||
msgid "Thanks and Regards"
|
||||
msgstr "Hvala i Pozdrav"
|
||||
|
||||
#: lms/lms/utils.py:1904
|
||||
#: lms/lms/utils.py:1912
|
||||
msgid "The batch is full. Please contact the Administrator."
|
||||
msgstr "Grupa je popunjena. Kontaktiraj Administratora."
|
||||
|
||||
@@ -6536,11 +6581,11 @@ msgstr "Grupa za koju ste se prijavili počinje sutra. Pripremite se i dođete n
|
||||
msgid "The course {0} is now available on {1}."
|
||||
msgstr "Kurs {0} je sada dostupan na {1}."
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:55
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:56
|
||||
msgid "The evaluator of this course is unavailable from {0} to {1}. Please select a date after {1}"
|
||||
msgstr "Ocjenjivač ovog kursa je nedostupan od {0} do {1}. Odaberi datum nakon {1}"
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:73
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:74
|
||||
msgid "The slot is already booked by another participant."
|
||||
msgstr "Termin je već rezervirao drugi učesnik."
|
||||
|
||||
@@ -6576,7 +6621,7 @@ msgstr "Trenutno nema {0}. Pratite nas, nova iskustva učenja su uskoro!"
|
||||
msgid "There are no {0} on this site."
|
||||
msgstr "Na ovoj stranici nema {0}."
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:40
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:67
|
||||
msgid "There has been an update on your submission for assignment {0}"
|
||||
msgstr "Došlo je do ažuriranja vaše prijave za zadatak {0}"
|
||||
|
||||
@@ -6613,7 +6658,7 @@ msgstr "Ovaj čas je završen"
|
||||
msgid "This course has:"
|
||||
msgstr "Ovaj kurs ima:"
|
||||
|
||||
#: lms/lms/utils.py:1765
|
||||
#: lms/lms/utils.py:1773
|
||||
msgid "This course is free."
|
||||
msgstr "Ovaj kurs je besplatan."
|
||||
|
||||
@@ -6649,8 +6694,8 @@ msgstr "Ovaj program se sastoji od {0} kurseva"
|
||||
msgid "This quiz consists of {0} questions."
|
||||
msgstr "Ovaj kviz se sastoji od {0} pitanja."
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:75
|
||||
#: frontend/src/components/AppSidebar.vue:115
|
||||
#: frontend/src/components/AppSidebar.vue:78
|
||||
#: frontend/src/components/AppSidebar.vue:118
|
||||
msgid "This site is being updated. You will not be able to make any changes. Full access will be restored shortly."
|
||||
msgstr "Ova stranica se ažurira. Nećete moći vršiti nikakve promjene. Puni pristup će uskoro biti vraćen."
|
||||
|
||||
@@ -6721,15 +6766,21 @@ msgstr "Vremenski Šablon"
|
||||
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Batch'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Certificate Request'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Course'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Live Class'
|
||||
#: frontend/src/components/Modals/LiveClassModal.vue:59
|
||||
#: frontend/src/pages/BatchForm.vue:114
|
||||
#: frontend/src/pages/BatchForm.vue:114 frontend/src/pages/CourseForm.vue:288
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.json
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.json
|
||||
msgid "Timezone"
|
||||
msgstr "Vremenska Zona"
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:72
|
||||
msgid "Timezone is required for paid certificates."
|
||||
msgstr "Za plaćene certifikate potrebna je vremenska zona."
|
||||
|
||||
#: lms/templates/emails/batch_confirmation.html:21
|
||||
#: lms/templates/emails/batch_start_reminder.html:16
|
||||
#: lms/templates/emails/live_class_reminder.html:16
|
||||
@@ -6799,7 +6850,7 @@ msgstr "Do"
|
||||
msgid "To Date"
|
||||
msgstr "Do Datuma"
|
||||
|
||||
#: lms/lms/utils.py:1776
|
||||
#: lms/lms/utils.py:1784
|
||||
msgid "To join this batch, please contact the Administrator."
|
||||
msgstr "Da biste se pridružili ovoj grupi, kontaktirajte administratora."
|
||||
|
||||
@@ -7226,7 +7277,7 @@ msgstr "Napišite svoj odgovor ovdje"
|
||||
msgid "Yellow"
|
||||
msgstr "Žuta"
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:95
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:96
|
||||
msgid "You already have an evaluation on {0} at {1} for the course {2}."
|
||||
msgstr "Već imate ocjenjivanje na {0} na {1} za kurs {2}."
|
||||
|
||||
@@ -7279,11 +7330,11 @@ msgstr "Ne možete promijeniti dostupnost dok se stranica ažurira."
|
||||
msgid "You cannot change the roles in read-only mode."
|
||||
msgstr "Ne možete mijenjati uloge u načinu rada samo za čitanje."
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:111
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:112
|
||||
msgid "You cannot schedule evaluations after {0}."
|
||||
msgstr "Ne možete zakazati ocjenjivanje nakon {0}."
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:102
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:103
|
||||
msgid "You cannot schedule evaluations for past slots."
|
||||
msgstr "Ne možete zakazati ocjenjivanje za prošle termine."
|
||||
|
||||
@@ -7340,19 +7391,23 @@ msgstr "Premašili ste maksimalan broj pokušaja ({0}) za ovaj kviz"
|
||||
msgid "You have got a score of {0} for the quiz {1}"
|
||||
msgstr "Imate ocjenu {0} za kviz {1}"
|
||||
|
||||
#: frontend/src/pages/ProfileCertificates.vue:26
|
||||
msgid "You have not received any certificates yet."
|
||||
msgstr "Još niste primili nijedan certifikat."
|
||||
|
||||
#: lms/lms/widgets/NoPreviewModal.html:12
|
||||
msgid "You have opted to be notified for this course. You will receive an email when the course becomes available."
|
||||
msgstr "Odlučili ste da budete obaviješteni o ovom kursu. Primit ćete e-poštu kada kurs postane dostupan."
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:102 frontend/src/pages/Home/Home.vue:125
|
||||
#: frontend/src/pages/Home/Home.vue:103 frontend/src/pages/Home/Home.vue:126
|
||||
msgid "You have {0} upcoming {1} and {2} {3} scheduled."
|
||||
msgstr "Imate zakazano {0} predstojećih {1} i {2} {3}."
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:109 frontend/src/pages/Home/Home.vue:132
|
||||
#: frontend/src/pages/Home/Home.vue:110 frontend/src/pages/Home/Home.vue:133
|
||||
msgid "You have {0} upcoming {1}."
|
||||
msgstr "Imate {0} predstojećih {1}."
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:114 frontend/src/pages/Home/Home.vue:137
|
||||
#: frontend/src/pages/Home/Home.vue:115 frontend/src/pages/Home/Home.vue:138
|
||||
msgid "You have {0} {1} scheduled."
|
||||
msgstr "Imate zakazano {0} {1}."
|
||||
|
||||
@@ -7400,7 +7455,7 @@ msgstr "Vaš račun je uspješno kreiran!"
|
||||
msgid "Your Output"
|
||||
msgstr "Vaš Rezultat"
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:309
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:308
|
||||
msgid "Your batch {0} is starting tomorrow"
|
||||
msgstr "Vaša grupa {0} počinje sutra"
|
||||
|
||||
@@ -7408,7 +7463,7 @@ msgstr "Vaša grupa {0} počinje sutra"
|
||||
msgid "Your calendar is set."
|
||||
msgstr "Vaš kalendar je postavljen."
|
||||
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:88
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:95
|
||||
msgid "Your class on {0} is today"
|
||||
msgstr "Vaš čas {0} je danas"
|
||||
|
||||
@@ -7421,7 +7476,7 @@ msgstr "Vaš upis u {{ batch_name }} je potvrđen"
|
||||
msgid "Your evaluation for the course {0} has been scheduled on {1} at {2} {3}."
|
||||
msgstr "Vaša ocjena za kurs {0} je zakazana za {1} u {2} {3}."
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:121
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:136
|
||||
msgid "Your evaluation slot has been booked"
|
||||
msgstr "Vaš termin za ocjenjivanje je rezervisan"
|
||||
|
||||
@@ -7474,8 +7529,8 @@ msgstr "aktivnosti"
|
||||
msgid "activity"
|
||||
msgstr "aktivnost"
|
||||
|
||||
#: frontend/src/components/CourseInstructors.vue:22
|
||||
#: frontend/src/components/CourseInstructors.vue:41
|
||||
#: frontend/src/components/CourseInstructors.vue:24
|
||||
#: frontend/src/components/CourseInstructors.vue:45
|
||||
msgid "and"
|
||||
msgstr "i"
|
||||
|
||||
@@ -7538,11 +7593,15 @@ msgstr "dnevni period"
|
||||
msgid "days"
|
||||
msgstr "dana"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:100 frontend/src/pages/Home/Home.vue:123
|
||||
#: frontend/src/pages/CourseForm.vue:290
|
||||
msgid "e.g. IST, UTC, GMT..."
|
||||
msgstr "npr. IST, UTC, GMT..."
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:101 frontend/src/pages/Home/Home.vue:124
|
||||
msgid "evaluation"
|
||||
msgstr "evaluacija"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:100 frontend/src/pages/Home/Home.vue:123
|
||||
#: frontend/src/pages/Home/Home.vue:101 frontend/src/pages/Home/Home.vue:124
|
||||
msgid "evaluations"
|
||||
msgstr "evaluacije"
|
||||
|
||||
@@ -7562,11 +7621,11 @@ msgstr "jane@example.com"
|
||||
msgid "lessons"
|
||||
msgstr "lekcije"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:98 frontend/src/pages/Home/Home.vue:122
|
||||
#: frontend/src/pages/Home/Home.vue:99 frontend/src/pages/Home/Home.vue:123
|
||||
msgid "live class"
|
||||
msgstr "čas uživo"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:98 frontend/src/pages/Home/Home.vue:122
|
||||
#: frontend/src/pages/Home/Home.vue:99 frontend/src/pages/Home/Home.vue:123
|
||||
msgid "live classes"
|
||||
msgstr "časovi uživo"
|
||||
|
||||
@@ -7584,11 +7643,11 @@ msgstr "članovi"
|
||||
msgid "minutes"
|
||||
msgstr "minuta"
|
||||
|
||||
#: frontend/src/components/CourseInstructors.vue:41
|
||||
#: frontend/src/components/CourseInstructors.vue:45
|
||||
msgid "others"
|
||||
msgstr "ostalo"
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:344
|
||||
#: frontend/src/pages/QuizForm.vue:340
|
||||
msgid "question_detail"
|
||||
msgstr "pitanje_detalj"
|
||||
|
||||
|
||||
297
lms/locale/cs.po
297
lms/locale/cs.po
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: frappe\n"
|
||||
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
||||
"POT-Creation-Date: 2025-10-03 16:04+0000\n"
|
||||
"PO-Revision-Date: 2025-10-06 10:50\n"
|
||||
"POT-Creation-Date: 2025-10-31 16:04+0000\n"
|
||||
"PO-Revision-Date: 2025-11-02 19:07\n"
|
||||
"Last-Translator: jannat@frappe.io\n"
|
||||
"Language-Team: Czech\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -196,7 +196,7 @@ msgstr ""
|
||||
msgid "Add a Student"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:585
|
||||
#: frontend/src/components/AppSidebar.vue:600
|
||||
msgid "Add a chapter"
|
||||
msgstr ""
|
||||
|
||||
@@ -208,7 +208,7 @@ msgstr ""
|
||||
msgid "Add a keyword and then press enter"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:586
|
||||
#: frontend/src/components/AppSidebar.vue:601
|
||||
msgid "Add a lesson"
|
||||
msgstr ""
|
||||
|
||||
@@ -216,12 +216,12 @@ msgstr ""
|
||||
msgid "Add a new member"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:166
|
||||
#: frontend/src/components/Modals/Question.vue:167
|
||||
#: frontend/src/pages/QuizForm.vue:200
|
||||
msgid "Add a new question"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:600
|
||||
#: frontend/src/components/AppSidebar.vue:615
|
||||
msgid "Add a program"
|
||||
msgstr ""
|
||||
|
||||
@@ -245,7 +245,7 @@ msgstr ""
|
||||
msgid "Add at least one possible answer for this question: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:549
|
||||
#: frontend/src/components/AppSidebar.vue:564
|
||||
msgid "Add courses to your batch"
|
||||
msgstr ""
|
||||
|
||||
@@ -253,7 +253,7 @@ msgstr ""
|
||||
msgid "Add quiz to this video"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:528
|
||||
#: frontend/src/components/AppSidebar.vue:543
|
||||
msgid "Add students to your batch"
|
||||
msgstr ""
|
||||
|
||||
@@ -269,11 +269,11 @@ msgstr ""
|
||||
msgid "Add your assignment as {0}"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:461
|
||||
#: frontend/src/components/AppSidebar.vue:476
|
||||
msgid "Add your first chapter"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:477
|
||||
#: frontend/src/components/AppSidebar.vue:492
|
||||
msgid "Add your first lesson"
|
||||
msgstr ""
|
||||
|
||||
@@ -378,11 +378,11 @@ msgstr ""
|
||||
msgid "Amount and currency are required for paid batches."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:76
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:79
|
||||
msgid "Amount and currency are required for paid certificates."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:73
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:76
|
||||
msgid "Amount and currency are required for paid courses."
|
||||
msgstr ""
|
||||
|
||||
@@ -508,7 +508,7 @@ msgid "Assessment {0} has already been added to this batch."
|
||||
msgstr ""
|
||||
|
||||
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
||||
#: frontend/src/components/AppSidebar.vue:603
|
||||
#: frontend/src/components/AppSidebar.vue:618
|
||||
#: frontend/src/components/Assessments.vue:5
|
||||
#: frontend/src/components/BatchStudents.vue:32
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
@@ -573,11 +573,11 @@ msgstr ""
|
||||
msgid "Assignment created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:24
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:27
|
||||
msgid "Assignment for Lesson {0} by {1} already exists."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Assignment.vue:359
|
||||
#: frontend/src/components/Assignment.vue:362
|
||||
msgid "Assignment submitted successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -590,7 +590,7 @@ msgstr ""
|
||||
msgid "Assignment will appear at the bottom of the lesson."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:607
|
||||
#: frontend/src/components/AppSidebar.vue:622
|
||||
#: frontend/src/components/Settings/Badges.vue:163
|
||||
#: frontend/src/pages/Assignments.vue:208 lms/www/lms.py:271
|
||||
msgid "Assignments"
|
||||
@@ -1017,7 +1017,7 @@ msgstr ""
|
||||
#. Enrollment'
|
||||
#. Label of a Card Break in the LMS Workspace
|
||||
#. Label of a Link in the LMS Workspace
|
||||
#: frontend/src/components/AppSidebar.vue:611
|
||||
#: frontend/src/components/AppSidebar.vue:626
|
||||
#: frontend/src/components/Modals/Event.vue:381
|
||||
#: frontend/src/pages/BatchForm.vue:69 frontend/src/pages/Batches.vue:58
|
||||
#: frontend/src/pages/CourseCertification.vue:10
|
||||
@@ -1040,6 +1040,11 @@ msgstr ""
|
||||
msgid "Certification Name"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the certifications (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Certifications"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/BatchStudents.vue:17
|
||||
msgid "Certified"
|
||||
msgstr ""
|
||||
@@ -1052,8 +1057,7 @@ msgstr ""
|
||||
msgid "Certified Members"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the certified_participants (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:300
|
||||
#: lms/www/lms.py:300
|
||||
msgid "Certified Participants"
|
||||
msgstr ""
|
||||
|
||||
@@ -1061,7 +1065,7 @@ msgstr ""
|
||||
msgid "Change"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Assignment.vue:345
|
||||
#: frontend/src/components/Assignment.vue:348
|
||||
msgid "Changes saved successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -1272,7 +1276,7 @@ msgstr ""
|
||||
msgid "Collaboration Preference"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:142
|
||||
#: frontend/src/components/AppSidebar.vue:145
|
||||
msgid "Collapse"
|
||||
msgstr ""
|
||||
|
||||
@@ -1291,7 +1295,7 @@ msgstr ""
|
||||
msgid "Color"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/BatchForm.vue:306 frontend/src/pages/CourseForm.vue:300
|
||||
#: frontend/src/pages/BatchForm.vue:306 frontend/src/pages/CourseForm.vue:312
|
||||
msgid "Comma separated keywords for SEO"
|
||||
msgstr ""
|
||||
|
||||
@@ -1301,7 +1305,7 @@ msgstr ""
|
||||
#. Label of the comments (Text Editor) field in DocType 'LMS Assignment
|
||||
#. Submission'
|
||||
#. Label of the comments (Small Text) field in DocType 'LMS Mentor Request'
|
||||
#: frontend/src/components/Assignment.vue:167
|
||||
#: frontend/src/components/Assignment.vue:170
|
||||
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
||||
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -1309,7 +1313,7 @@ msgstr ""
|
||||
msgid "Comments"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Assignment.vue:145
|
||||
#: frontend/src/components/Assignment.vue:148
|
||||
msgid "Comments by Evaluator"
|
||||
msgstr ""
|
||||
|
||||
@@ -1464,6 +1468,22 @@ msgstr ""
|
||||
msgid "Congratulations on getting certified!"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the contact_us_tab (Tab Break) field in DocType 'LMS Settings'
|
||||
#: frontend/src/components/ContactUsEmail.vue:5
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us"
|
||||
msgstr "Kontaktujte nás"
|
||||
|
||||
#. Label of the contact_us_email (Data) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us Email"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the contact_us_url (Data) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us URL"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/CourseCardOverlay.vue:63
|
||||
#: frontend/src/pages/Lesson.vue:97
|
||||
msgid "Contact the Administrator to enroll for this course."
|
||||
@@ -1677,7 +1697,7 @@ msgstr ""
|
||||
msgid "Course Name"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseDetail.vue:78 frontend/src/pages/CourseForm.vue:310
|
||||
#: frontend/src/pages/CourseDetail.vue:78 frontend/src/pages/CourseForm.vue:322
|
||||
msgid "Course Outline"
|
||||
msgstr ""
|
||||
|
||||
@@ -1714,15 +1734,15 @@ msgstr ""
|
||||
msgid "Course added to program successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:547
|
||||
#: frontend/src/pages/CourseForm.vue:559
|
||||
msgid "Course created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:584
|
||||
#: frontend/src/pages/CourseForm.vue:596
|
||||
msgid "Course deleted successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:567
|
||||
#: frontend/src/pages/CourseForm.vue:579
|
||||
msgid "Course updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -1815,15 +1835,15 @@ msgstr ""
|
||||
msgid "Create a Quiz"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:593
|
||||
#: frontend/src/components/AppSidebar.vue:608
|
||||
msgid "Create a batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:584
|
||||
#: frontend/src/components/AppSidebar.vue:599
|
||||
msgid "Create a course"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:594
|
||||
#: frontend/src/components/AppSidebar.vue:609
|
||||
msgid "Create a live class"
|
||||
msgstr ""
|
||||
|
||||
@@ -1835,15 +1855,15 @@ msgstr ""
|
||||
msgid "Create an Assignment"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:518
|
||||
#: frontend/src/components/AppSidebar.vue:533
|
||||
msgid "Create your first batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:449
|
||||
#: frontend/src/components/AppSidebar.vue:464
|
||||
msgid "Create your first course"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:496
|
||||
#: frontend/src/components/AppSidebar.vue:511
|
||||
msgid "Create your first quiz"
|
||||
msgstr ""
|
||||
|
||||
@@ -1851,11 +1871,11 @@ msgstr ""
|
||||
msgid "Created"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:590
|
||||
#: frontend/src/components/AppSidebar.vue:605
|
||||
msgid "Creating a batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:581
|
||||
#: frontend/src/components/AppSidebar.vue:596
|
||||
msgid "Creating a course"
|
||||
msgstr ""
|
||||
|
||||
@@ -1863,7 +1883,7 @@ msgstr ""
|
||||
#. Label of the currency (Link) field in DocType 'LMS Course'
|
||||
#. Label of the currency (Link) field in DocType 'LMS Payment'
|
||||
#: frontend/src/components/Settings/TransactionDetails.vue:64
|
||||
#: frontend/src/pages/BatchForm.vue:285 frontend/src/pages/CourseForm.vue:279
|
||||
#: frontend/src/pages/BatchForm.vue:285 frontend/src/pages/CourseForm.vue:282
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
#: lms/lms/doctype/lms_payment/lms_payment.json
|
||||
@@ -1879,7 +1899,7 @@ msgstr ""
|
||||
msgid "Current Streak"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:617
|
||||
#: frontend/src/components/AppSidebar.vue:632
|
||||
msgid "Custom Certificate Templates"
|
||||
msgstr ""
|
||||
|
||||
@@ -1979,7 +1999,7 @@ msgstr ""
|
||||
#: frontend/src/components/CourseOutline.vue:360
|
||||
#: frontend/src/components/DiscussionReplies.vue:41
|
||||
#: frontend/src/components/Settings/Badges.vue:171
|
||||
#: frontend/src/pages/BatchForm.vue:565 frontend/src/pages/CourseForm.vue:597
|
||||
#: frontend/src/pages/BatchForm.vue:565 frontend/src/pages/CourseForm.vue:609
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseForm.vue:67
|
||||
#: frontend/src/pages/Programs/ProgramForm.vue:231
|
||||
msgid "Delete"
|
||||
@@ -1989,7 +2009,7 @@ msgstr ""
|
||||
msgid "Delete Chapter"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:591
|
||||
#: frontend/src/pages/CourseForm.vue:603
|
||||
msgid "Delete Course"
|
||||
msgstr ""
|
||||
|
||||
@@ -2001,7 +2021,7 @@ msgstr ""
|
||||
msgid "Delete this lesson?"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:592
|
||||
#: frontend/src/pages/CourseForm.vue:604
|
||||
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
||||
msgstr ""
|
||||
|
||||
@@ -2251,6 +2271,10 @@ msgstr ""
|
||||
msgid "Email Templates deleted successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:57
|
||||
msgid "Email sent successfully"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the show_emails (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Emails"
|
||||
@@ -2266,7 +2290,7 @@ msgstr ""
|
||||
msgid "Enable"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:21
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:22
|
||||
msgid "Enable Google API in Google Settings to send calendar invites for evaluations."
|
||||
msgstr ""
|
||||
|
||||
@@ -2365,7 +2389,7 @@ msgstr ""
|
||||
msgid "Enrollment Count"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:1880
|
||||
#: lms/lms/utils.py:1888
|
||||
msgid "Enrollment Failed, {0}"
|
||||
msgstr ""
|
||||
|
||||
@@ -2382,7 +2406,7 @@ msgstr ""
|
||||
msgid "Enrollments"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:26
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:27
|
||||
msgid "Enter Client Id and Client Secret in Google Settings to send calendar invites for evaluations."
|
||||
msgstr ""
|
||||
|
||||
@@ -2402,7 +2426,7 @@ msgstr ""
|
||||
msgid "Error creating email template"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:191
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:190
|
||||
msgid "Error creating live class. Please try again. {0}"
|
||||
msgstr ""
|
||||
|
||||
@@ -2467,7 +2491,7 @@ msgstr ""
|
||||
#. Label of the evaluator (Link) field in DocType 'LMS Course'
|
||||
#: frontend/src/components/Modals/BatchCourseModal.vue:37
|
||||
#: frontend/src/components/Modals/BulkCertificates.vue:22
|
||||
#: frontend/src/pages/CourseForm.vue:268 frontend/src/pages/ProfileRoles.vue:32
|
||||
#: frontend/src/pages/CourseForm.vue:269 frontend/src/pages/ProfileRoles.vue:32
|
||||
#: lms/lms/doctype/batch_course/batch_course.json
|
||||
#: lms/lms/doctype/course_evaluator/course_evaluator.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -2555,7 +2579,7 @@ msgstr ""
|
||||
msgid "Exercise Title"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:142
|
||||
#: frontend/src/components/AppSidebar.vue:145
|
||||
msgid "Expand"
|
||||
msgstr ""
|
||||
|
||||
@@ -2625,10 +2649,14 @@ msgstr ""
|
||||
msgid "Failed to enroll in program: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:137
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:144
|
||||
msgid "Failed to fetch attendance data from Zoom for class {0}: {1}"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:63
|
||||
msgid "Failed to send email"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseSubmission.vue:358
|
||||
msgid "Failed to submit. Please try again. {0}"
|
||||
msgstr ""
|
||||
@@ -2814,7 +2842,7 @@ msgstr ""
|
||||
|
||||
#: frontend/src/components/CertificationLinks.vue:34
|
||||
#: frontend/src/components/CertificationLinks.vue:50
|
||||
#: frontend/src/components/CourseCard.vue:125
|
||||
#: frontend/src/components/CourseCard.vue:126
|
||||
#: frontend/src/pages/CertifiedParticipants.vue:11
|
||||
msgid "Get Certified"
|
||||
msgstr ""
|
||||
@@ -2843,7 +2871,7 @@ msgid "Google Meet Link"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the grade (Data) field in DocType 'Education Detail'
|
||||
#: frontend/src/components/Assignment.vue:161
|
||||
#: frontend/src/components/Assignment.vue:164
|
||||
#: lms/lms/doctype/education_detail/education_detail.json
|
||||
msgid "Grade"
|
||||
msgstr ""
|
||||
@@ -2858,7 +2886,7 @@ msgstr ""
|
||||
msgid "Grade Type"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Assignment.vue:156
|
||||
#: frontend/src/components/Assignment.vue:159
|
||||
msgid "Grading"
|
||||
msgstr ""
|
||||
|
||||
@@ -2898,7 +2926,7 @@ msgstr ""
|
||||
msgid "Hello"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:128
|
||||
#: frontend/src/components/AppSidebar.vue:131
|
||||
msgid "Help"
|
||||
msgstr ""
|
||||
|
||||
@@ -2963,7 +2991,7 @@ msgstr ""
|
||||
msgid "Hints"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:5 frontend/src/pages/Home/Home.vue:153
|
||||
#: frontend/src/pages/Home/Home.vue:5 frontend/src/pages/Home/Home.vue:154
|
||||
msgid "Home"
|
||||
msgstr ""
|
||||
|
||||
@@ -2995,7 +3023,7 @@ msgstr ""
|
||||
msgid "I am unavailable"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:338
|
||||
#: frontend/src/pages/QuizForm.vue:334
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
@@ -3155,7 +3183,7 @@ msgstr ""
|
||||
|
||||
#. Label of the instructor (Link) field in DocType 'Cohort'
|
||||
#. Label of the instructor (Link) field in DocType 'Course Instructor'
|
||||
#: frontend/src/pages/Home/Home.vue:148 lms/lms/doctype/cohort/cohort.json
|
||||
#: frontend/src/pages/Home/Home.vue:149 lms/lms/doctype/cohort/cohort.json
|
||||
#: lms/lms/doctype/course_instructor/course_instructor.json
|
||||
msgid "Instructor"
|
||||
msgstr ""
|
||||
@@ -3191,8 +3219,8 @@ msgstr ""
|
||||
msgid "Interest"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:573
|
||||
#: frontend/src/components/AppSidebar.vue:576
|
||||
#: frontend/src/components/AppSidebar.vue:588
|
||||
#: frontend/src/components/AppSidebar.vue:591
|
||||
msgid "Introduction"
|
||||
msgstr ""
|
||||
|
||||
@@ -3214,7 +3242,7 @@ msgstr ""
|
||||
msgid "Invite Only"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:507
|
||||
#: frontend/src/components/AppSidebar.vue:522
|
||||
msgid "Invite your team and students"
|
||||
msgstr ""
|
||||
|
||||
@@ -3251,7 +3279,7 @@ msgstr ""
|
||||
msgid "Issue Date"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:614
|
||||
#: frontend/src/components/AppSidebar.vue:629
|
||||
msgid "Issue a Certificate"
|
||||
msgstr ""
|
||||
|
||||
@@ -3264,7 +3292,7 @@ msgid "Issued On"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/ProfileAbout.vue:73
|
||||
#: frontend/src/pages/ProfileCertificates.vue:17
|
||||
#: frontend/src/pages/ProfileCertificates.vue:20
|
||||
#: lms/templates/certificates_section.html:11
|
||||
msgid "Issued on"
|
||||
msgstr ""
|
||||
@@ -3679,7 +3707,7 @@ msgstr ""
|
||||
msgid "Learning Consistency"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:598
|
||||
#: frontend/src/components/AppSidebar.vue:613
|
||||
msgid "Learning Paths"
|
||||
msgstr ""
|
||||
|
||||
@@ -3728,7 +3756,7 @@ msgstr ""
|
||||
msgid "Lesson Title"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/LessonForm.vue:426
|
||||
#: frontend/src/pages/LessonForm.vue:425
|
||||
msgid "Lesson created successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -3740,7 +3768,7 @@ msgstr ""
|
||||
msgid "Lesson moved successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/LessonForm.vue:450
|
||||
#: frontend/src/pages/LessonForm.vue:449
|
||||
msgid "Lesson updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -3889,7 +3917,7 @@ msgstr ""
|
||||
msgid "Manage Batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:119
|
||||
#: frontend/src/pages/Home/Home.vue:120
|
||||
msgid "Manage your courses and batches at a glance"
|
||||
msgstr ""
|
||||
|
||||
@@ -3920,7 +3948,7 @@ msgstr ""
|
||||
#. Label of the marks (Int) field in DocType 'LMS Quiz Result'
|
||||
#: frontend/src/components/Modals/Question.vue:40
|
||||
#: frontend/src/components/Modals/Question.vue:106
|
||||
#: frontend/src/components/Quiz.vue:120 frontend/src/pages/QuizForm.vue:348
|
||||
#: frontend/src/components/Quiz.vue:120 frontend/src/pages/QuizForm.vue:344
|
||||
#: frontend/src/pages/QuizSubmission.vue:64
|
||||
#: lms/lms/doctype/lms_quiz_question/lms_quiz_question.json
|
||||
#: lms/lms/doctype/lms_quiz_result/lms_quiz_result.json
|
||||
@@ -4199,8 +4227,12 @@ msgstr ""
|
||||
msgid "Mentor Request Status Update Template"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:19
|
||||
msgid "Message"
|
||||
msgstr "Zpráva"
|
||||
|
||||
#. Label of the meta_description (Small Text) field in DocType 'LMS Settings'
|
||||
#: frontend/src/pages/BatchForm.vue:297 frontend/src/pages/CourseForm.vue:291
|
||||
#: frontend/src/pages/BatchForm.vue:297 frontend/src/pages/CourseForm.vue:303
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Meta Description"
|
||||
msgstr ""
|
||||
@@ -4214,12 +4246,12 @@ msgid "Meta Image"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the meta_keywords (Small Text) field in DocType 'LMS Settings'
|
||||
#: frontend/src/pages/BatchForm.vue:303 frontend/src/pages/CourseForm.vue:297
|
||||
#: frontend/src/pages/BatchForm.vue:303 frontend/src/pages/CourseForm.vue:309
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Meta Keywords"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/BatchForm.vue:292 frontend/src/pages/CourseForm.vue:286
|
||||
#: frontend/src/pages/BatchForm.vue:292 frontend/src/pages/CourseForm.vue:298
|
||||
msgid "Meta Tags"
|
||||
msgstr ""
|
||||
|
||||
@@ -4290,7 +4322,7 @@ msgstr ""
|
||||
msgid "Monday"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:622
|
||||
#: frontend/src/components/AppSidebar.vue:637
|
||||
msgid "Monetization"
|
||||
msgstr ""
|
||||
|
||||
@@ -4346,7 +4378,7 @@ msgstr ""
|
||||
msgid "New Batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:678 lms/www/lms.py:93
|
||||
#: frontend/src/pages/CourseForm.vue:690 lms/www/lms.py:93
|
||||
msgid "New Course"
|
||||
msgstr ""
|
||||
|
||||
@@ -4370,7 +4402,7 @@ msgstr ""
|
||||
msgid "New Question"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:404 frontend/src/pages/QuizForm.vue:412
|
||||
#: frontend/src/pages/QuizForm.vue:400 frontend/src/pages/QuizForm.vue:408
|
||||
msgid "New Quiz"
|
||||
msgstr ""
|
||||
|
||||
@@ -4950,7 +4982,7 @@ msgstr ""
|
||||
msgid "Pink"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:34
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:35
|
||||
msgid "Please add <a href='{0}'>{1}</a> for <a href='{2}'>{3}</a> to send calendar invites for evaluations."
|
||||
msgstr ""
|
||||
|
||||
@@ -4974,7 +5006,7 @@ msgstr ""
|
||||
msgid "Please complete the previous course to unlock this one."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:197
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:196
|
||||
msgid "Please enable the zoom account to use this feature."
|
||||
msgstr ""
|
||||
|
||||
@@ -4990,8 +5022,16 @@ msgstr ""
|
||||
msgid "Please enter a title."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:29
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:80
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:51
|
||||
msgid "Please enter a valid Contact Us Email."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:53
|
||||
msgid "Please enter a valid Contact Us URL."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:32
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:107
|
||||
msgid "Please enter a valid URL."
|
||||
msgstr ""
|
||||
|
||||
@@ -5003,7 +5043,7 @@ msgstr ""
|
||||
msgid "Please enter a valid timestamp"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:74
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:101
|
||||
msgid "Please enter the URL for assignment submission."
|
||||
msgstr ""
|
||||
|
||||
@@ -5031,7 +5071,7 @@ msgstr ""
|
||||
msgid "Please login to continue with payment."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:2012
|
||||
#: lms/lms/utils.py:2020
|
||||
msgid "Please login to enroll in the program."
|
||||
msgstr ""
|
||||
|
||||
@@ -5088,7 +5128,7 @@ msgstr ""
|
||||
msgid "Please upload a SCORM package"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:77
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:104
|
||||
msgid "Please upload the assignment file."
|
||||
msgstr ""
|
||||
|
||||
@@ -5134,7 +5174,7 @@ msgstr ""
|
||||
msgid "Postal Code"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:122
|
||||
#: frontend/src/components/AppSidebar.vue:125
|
||||
msgid "Powered by Learning"
|
||||
msgstr ""
|
||||
|
||||
@@ -5411,7 +5451,7 @@ msgstr ""
|
||||
#: frontend/src/components/Assignment.vue:20
|
||||
#: frontend/src/components/Modals/AssignmentForm.vue:32
|
||||
#: frontend/src/components/Modals/Question.vue:27
|
||||
#: frontend/src/pages/QuizForm.vue:343 frontend/src/pages/QuizSubmission.vue:56
|
||||
#: frontend/src/pages/QuizForm.vue:339 frontend/src/pages/QuizSubmission.vue:56
|
||||
#: lms/lms/doctype/course_lesson/course_lesson.json
|
||||
#: lms/lms/doctype/lms_assignment/lms_assignment.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -5431,11 +5471,11 @@ msgstr ""
|
||||
msgid "Question Name"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:284
|
||||
#: frontend/src/components/Modals/Question.vue:285
|
||||
msgid "Question added successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:334
|
||||
#: frontend/src/components/Modals/Question.vue:335
|
||||
msgid "Question updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -5452,7 +5492,7 @@ msgstr ""
|
||||
msgid "Questions"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:385
|
||||
#: frontend/src/pages/QuizForm.vue:381
|
||||
msgid "Questions deleted successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -5502,7 +5542,7 @@ msgstr ""
|
||||
msgid "Quiz is not available to Guest users. Please login to continue."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:310
|
||||
#: frontend/src/pages/QuizForm.vue:306
|
||||
msgid "Quiz updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -5511,8 +5551,8 @@ msgstr ""
|
||||
msgid "Quiz will appear at the bottom of the lesson."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:606
|
||||
#: frontend/src/pages/QuizForm.vue:396 frontend/src/pages/Quizzes.vue:275
|
||||
#: frontend/src/components/AppSidebar.vue:621
|
||||
#: frontend/src/pages/QuizForm.vue:392 frontend/src/pages/Quizzes.vue:275
|
||||
#: frontend/src/pages/Quizzes.vue:285 lms/www/lms.py:249
|
||||
msgid "Quizzes"
|
||||
msgstr ""
|
||||
@@ -5655,7 +5695,7 @@ msgstr ""
|
||||
msgid "Resume Video"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:142
|
||||
#: frontend/src/pages/Home/Home.vue:143
|
||||
msgid "Resume where you left off"
|
||||
msgstr ""
|
||||
|
||||
@@ -5696,7 +5736,7 @@ msgstr ""
|
||||
msgid "Role updated successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:634
|
||||
#: frontend/src/components/AppSidebar.vue:649
|
||||
msgid "Roles"
|
||||
msgstr ""
|
||||
|
||||
@@ -5914,6 +5954,10 @@ msgstr ""
|
||||
msgid "Select an assignment"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:33
|
||||
msgid "Send"
|
||||
msgstr "Odeslat"
|
||||
|
||||
#: lms/lms/doctype/lms_batch_enrollment/lms_batch_enrollment.js:7
|
||||
msgid "Send Confirmation Email"
|
||||
msgstr ""
|
||||
@@ -5945,16 +5989,16 @@ msgstr ""
|
||||
msgid "Set your Password"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:577
|
||||
#: frontend/src/components/AppSidebar.vue:592
|
||||
msgid "Setting up"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:627
|
||||
#: frontend/src/components/AppSidebar.vue:642
|
||||
msgid "Setting up payment gateway"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:632
|
||||
#: frontend/src/components/Settings/Settings.vue:7
|
||||
#: frontend/src/components/AppSidebar.vue:647
|
||||
#: frontend/src/components/Settings/Settings.vue:9
|
||||
#: frontend/src/pages/BatchForm.vue:53 frontend/src/pages/CourseForm.vue:142
|
||||
#: frontend/src/pages/ProfileRoles.vue:4
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseSubmission.vue:19
|
||||
@@ -6252,7 +6296,7 @@ msgstr ""
|
||||
#. Option for the 'User Category' (Select) field in DocType 'User'
|
||||
#. Option for the 'Required Role' (Select) field in DocType 'Cohort Web Page'
|
||||
#. Option for the 'Member Type' (Select) field in DocType 'LMS Enrollment'
|
||||
#: frontend/src/pages/Home/Home.vue:147 frontend/src/pages/ProfileRoles.vue:38
|
||||
#: frontend/src/pages/Home/Home.vue:148 frontend/src/pages/ProfileRoles.vue:38
|
||||
#: lms/fixtures/custom_field.json
|
||||
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
||||
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
||||
@@ -6289,6 +6333,7 @@ msgstr ""
|
||||
msgid "Subgroup"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:13
|
||||
#: frontend/src/components/Modals/AnnouncementModal.vue:20
|
||||
#: frontend/src/components/Modals/EmailTemplateModal.vue:31
|
||||
msgid "Subject"
|
||||
@@ -6524,7 +6569,7 @@ msgstr ""
|
||||
msgid "Thanks and Regards"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:1904
|
||||
#: lms/lms/utils.py:1912
|
||||
msgid "The batch is full. Please contact the Administrator."
|
||||
msgstr ""
|
||||
|
||||
@@ -6536,11 +6581,11 @@ msgstr ""
|
||||
msgid "The course {0} is now available on {1}."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:55
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:56
|
||||
msgid "The evaluator of this course is unavailable from {0} to {1}. Please select a date after {1}"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:73
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:74
|
||||
msgid "The slot is already booked by another participant."
|
||||
msgstr ""
|
||||
|
||||
@@ -6576,7 +6621,7 @@ msgstr ""
|
||||
msgid "There are no {0} on this site."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:40
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:67
|
||||
msgid "There has been an update on your submission for assignment {0}"
|
||||
msgstr ""
|
||||
|
||||
@@ -6613,7 +6658,7 @@ msgstr ""
|
||||
msgid "This course has:"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:1765
|
||||
#: lms/lms/utils.py:1773
|
||||
msgid "This course is free."
|
||||
msgstr ""
|
||||
|
||||
@@ -6649,8 +6694,8 @@ msgstr ""
|
||||
msgid "This quiz consists of {0} questions."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:75
|
||||
#: frontend/src/components/AppSidebar.vue:115
|
||||
#: frontend/src/components/AppSidebar.vue:78
|
||||
#: frontend/src/components/AppSidebar.vue:118
|
||||
msgid "This site is being updated. You will not be able to make any changes. Full access will be restored shortly."
|
||||
msgstr ""
|
||||
|
||||
@@ -6721,15 +6766,21 @@ msgstr ""
|
||||
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Batch'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Certificate Request'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Course'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Live Class'
|
||||
#: frontend/src/components/Modals/LiveClassModal.vue:59
|
||||
#: frontend/src/pages/BatchForm.vue:114
|
||||
#: frontend/src/pages/BatchForm.vue:114 frontend/src/pages/CourseForm.vue:288
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.json
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.json
|
||||
msgid "Timezone"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:72
|
||||
msgid "Timezone is required for paid certificates."
|
||||
msgstr ""
|
||||
|
||||
#: lms/templates/emails/batch_confirmation.html:21
|
||||
#: lms/templates/emails/batch_start_reminder.html:16
|
||||
#: lms/templates/emails/live_class_reminder.html:16
|
||||
@@ -6799,7 +6850,7 @@ msgstr ""
|
||||
msgid "To Date"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:1776
|
||||
#: lms/lms/utils.py:1784
|
||||
msgid "To join this batch, please contact the Administrator."
|
||||
msgstr ""
|
||||
|
||||
@@ -7226,7 +7277,7 @@ msgstr ""
|
||||
msgid "Yellow"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:95
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:96
|
||||
msgid "You already have an evaluation on {0} at {1} for the course {2}."
|
||||
msgstr ""
|
||||
|
||||
@@ -7279,11 +7330,11 @@ msgstr ""
|
||||
msgid "You cannot change the roles in read-only mode."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:111
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:112
|
||||
msgid "You cannot schedule evaluations after {0}."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:102
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:103
|
||||
msgid "You cannot schedule evaluations for past slots."
|
||||
msgstr ""
|
||||
|
||||
@@ -7340,19 +7391,23 @@ msgstr ""
|
||||
msgid "You have got a score of {0} for the quiz {1}"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/ProfileCertificates.vue:26
|
||||
msgid "You have not received any certificates yet."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/widgets/NoPreviewModal.html:12
|
||||
msgid "You have opted to be notified for this course. You will receive an email when the course becomes available."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:102 frontend/src/pages/Home/Home.vue:125
|
||||
#: frontend/src/pages/Home/Home.vue:103 frontend/src/pages/Home/Home.vue:126
|
||||
msgid "You have {0} upcoming {1} and {2} {3} scheduled."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:109 frontend/src/pages/Home/Home.vue:132
|
||||
#: frontend/src/pages/Home/Home.vue:110 frontend/src/pages/Home/Home.vue:133
|
||||
msgid "You have {0} upcoming {1}."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:114 frontend/src/pages/Home/Home.vue:137
|
||||
#: frontend/src/pages/Home/Home.vue:115 frontend/src/pages/Home/Home.vue:138
|
||||
msgid "You have {0} {1} scheduled."
|
||||
msgstr ""
|
||||
|
||||
@@ -7400,7 +7455,7 @@ msgstr ""
|
||||
msgid "Your Output"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:309
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:308
|
||||
msgid "Your batch {0} is starting tomorrow"
|
||||
msgstr ""
|
||||
|
||||
@@ -7408,7 +7463,7 @@ msgstr ""
|
||||
msgid "Your calendar is set."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:88
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:95
|
||||
msgid "Your class on {0} is today"
|
||||
msgstr ""
|
||||
|
||||
@@ -7421,7 +7476,7 @@ msgstr ""
|
||||
msgid "Your evaluation for the course {0} has been scheduled on {1} at {2} {3}."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:121
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:136
|
||||
msgid "Your evaluation slot has been booked"
|
||||
msgstr ""
|
||||
|
||||
@@ -7474,8 +7529,8 @@ msgstr ""
|
||||
msgid "activity"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/CourseInstructors.vue:22
|
||||
#: frontend/src/components/CourseInstructors.vue:41
|
||||
#: frontend/src/components/CourseInstructors.vue:24
|
||||
#: frontend/src/components/CourseInstructors.vue:45
|
||||
msgid "and"
|
||||
msgstr "a"
|
||||
|
||||
@@ -7538,11 +7593,15 @@ msgstr ""
|
||||
msgid "days"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:100 frontend/src/pages/Home/Home.vue:123
|
||||
#: frontend/src/pages/CourseForm.vue:290
|
||||
msgid "e.g. IST, UTC, GMT..."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:101 frontend/src/pages/Home/Home.vue:124
|
||||
msgid "evaluation"
|
||||
msgstr "hodnocení"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:100 frontend/src/pages/Home/Home.vue:123
|
||||
#: frontend/src/pages/Home/Home.vue:101 frontend/src/pages/Home/Home.vue:124
|
||||
msgid "evaluations"
|
||||
msgstr ""
|
||||
|
||||
@@ -7562,11 +7621,11 @@ msgstr ""
|
||||
msgid "lessons"
|
||||
msgstr "lekce"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:98 frontend/src/pages/Home/Home.vue:122
|
||||
#: frontend/src/pages/Home/Home.vue:99 frontend/src/pages/Home/Home.vue:123
|
||||
msgid "live class"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:98 frontend/src/pages/Home/Home.vue:122
|
||||
#: frontend/src/pages/Home/Home.vue:99 frontend/src/pages/Home/Home.vue:123
|
||||
msgid "live classes"
|
||||
msgstr ""
|
||||
|
||||
@@ -7584,11 +7643,11 @@ msgstr ""
|
||||
msgid "minutes"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/CourseInstructors.vue:41
|
||||
#: frontend/src/components/CourseInstructors.vue:45
|
||||
msgid "others"
|
||||
msgstr "ostatní"
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:344
|
||||
#: frontend/src/pages/QuizForm.vue:340
|
||||
msgid "question_detail"
|
||||
msgstr ""
|
||||
|
||||
|
||||
339
lms/locale/da.po
339
lms/locale/da.po
File diff suppressed because it is too large
Load Diff
297
lms/locale/de.po
297
lms/locale/de.po
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: frappe\n"
|
||||
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
||||
"POT-Creation-Date: 2025-10-03 16:04+0000\n"
|
||||
"PO-Revision-Date: 2025-10-06 10:50\n"
|
||||
"POT-Creation-Date: 2025-10-31 16:04+0000\n"
|
||||
"PO-Revision-Date: 2025-11-02 19:07\n"
|
||||
"Last-Translator: jannat@frappe.io\n"
|
||||
"Language-Team: German\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -196,7 +196,7 @@ msgstr "Lektion hinzufügen"
|
||||
msgid "Add a Student"
|
||||
msgstr "Schüler hinzufügen"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:585
|
||||
#: frontend/src/components/AppSidebar.vue:600
|
||||
msgid "Add a chapter"
|
||||
msgstr ""
|
||||
|
||||
@@ -208,7 +208,7 @@ msgstr "Kurs hinzufügen"
|
||||
msgid "Add a keyword and then press enter"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:586
|
||||
#: frontend/src/components/AppSidebar.vue:601
|
||||
msgid "Add a lesson"
|
||||
msgstr ""
|
||||
|
||||
@@ -216,12 +216,12 @@ msgstr ""
|
||||
msgid "Add a new member"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:166
|
||||
#: frontend/src/components/Modals/Question.vue:167
|
||||
#: frontend/src/pages/QuizForm.vue:200
|
||||
msgid "Add a new question"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:600
|
||||
#: frontend/src/components/AppSidebar.vue:615
|
||||
msgid "Add a program"
|
||||
msgstr ""
|
||||
|
||||
@@ -245,7 +245,7 @@ msgstr ""
|
||||
msgid "Add at least one possible answer for this question: {0}"
|
||||
msgstr "Fügen Sie mindestens eine mögliche Antwort für diese Frage hinzu: {0}"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:549
|
||||
#: frontend/src/components/AppSidebar.vue:564
|
||||
msgid "Add courses to your batch"
|
||||
msgstr ""
|
||||
|
||||
@@ -253,7 +253,7 @@ msgstr ""
|
||||
msgid "Add quiz to this video"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:528
|
||||
#: frontend/src/components/AppSidebar.vue:543
|
||||
msgid "Add students to your batch"
|
||||
msgstr ""
|
||||
|
||||
@@ -269,11 +269,11 @@ msgstr "Webseite zur Seitenleiste hinzufügen"
|
||||
msgid "Add your assignment as {0}"
|
||||
msgstr "Aufgabe als {0} hinzufügen"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:461
|
||||
#: frontend/src/components/AppSidebar.vue:476
|
||||
msgid "Add your first chapter"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:477
|
||||
#: frontend/src/components/AppSidebar.vue:492
|
||||
msgid "Add your first lesson"
|
||||
msgstr ""
|
||||
|
||||
@@ -378,11 +378,11 @@ msgstr "Betrag (USD)"
|
||||
msgid "Amount and currency are required for paid batches."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:76
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:79
|
||||
msgid "Amount and currency are required for paid certificates."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:73
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:76
|
||||
msgid "Amount and currency are required for paid courses."
|
||||
msgstr ""
|
||||
|
||||
@@ -508,7 +508,7 @@ msgid "Assessment {0} has already been added to this batch."
|
||||
msgstr ""
|
||||
|
||||
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
||||
#: frontend/src/components/AppSidebar.vue:603
|
||||
#: frontend/src/components/AppSidebar.vue:618
|
||||
#: frontend/src/components/Assessments.vue:5
|
||||
#: frontend/src/components/BatchStudents.vue:32
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
@@ -573,11 +573,11 @@ msgstr "Aufgabentitel"
|
||||
msgid "Assignment created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:24
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:27
|
||||
msgid "Assignment for Lesson {0} by {1} already exists."
|
||||
msgstr "Die Aufgabe für Lektion {0} von {1} existiert bereits."
|
||||
|
||||
#: frontend/src/components/Assignment.vue:359
|
||||
#: frontend/src/components/Assignment.vue:362
|
||||
msgid "Assignment submitted successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -590,7 +590,7 @@ msgstr ""
|
||||
msgid "Assignment will appear at the bottom of the lesson."
|
||||
msgstr "Die Aufgabe wird unten in der Lektion angezeigt."
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:607
|
||||
#: frontend/src/components/AppSidebar.vue:622
|
||||
#: frontend/src/components/Settings/Badges.vue:163
|
||||
#: frontend/src/pages/Assignments.vue:208 lms/www/lms.py:271
|
||||
msgid "Assignments"
|
||||
@@ -1017,7 +1017,7 @@ msgstr ""
|
||||
#. Enrollment'
|
||||
#. Label of a Card Break in the LMS Workspace
|
||||
#. Label of a Link in the LMS Workspace
|
||||
#: frontend/src/components/AppSidebar.vue:611
|
||||
#: frontend/src/components/AppSidebar.vue:626
|
||||
#: frontend/src/components/Modals/Event.vue:381
|
||||
#: frontend/src/pages/BatchForm.vue:69 frontend/src/pages/Batches.vue:58
|
||||
#: frontend/src/pages/CourseCertification.vue:10
|
||||
@@ -1040,6 +1040,11 @@ msgstr ""
|
||||
msgid "Certification Name"
|
||||
msgstr "Zertifizierungsname"
|
||||
|
||||
#. Label of the certifications (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Certifications"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/BatchStudents.vue:17
|
||||
msgid "Certified"
|
||||
msgstr ""
|
||||
@@ -1052,8 +1057,7 @@ msgstr ""
|
||||
msgid "Certified Members"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the certified_participants (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:300
|
||||
#: lms/www/lms.py:300
|
||||
msgid "Certified Participants"
|
||||
msgstr "Zertifizierte Teilnehmer"
|
||||
|
||||
@@ -1061,7 +1065,7 @@ msgstr "Zertifizierte Teilnehmer"
|
||||
msgid "Change"
|
||||
msgstr "Ändern"
|
||||
|
||||
#: frontend/src/components/Assignment.vue:345
|
||||
#: frontend/src/components/Assignment.vue:348
|
||||
msgid "Changes saved successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -1272,7 +1276,7 @@ msgstr "Kohorten-Webseite"
|
||||
msgid "Collaboration Preference"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:142
|
||||
#: frontend/src/components/AppSidebar.vue:145
|
||||
msgid "Collapse"
|
||||
msgstr "Zuklappen"
|
||||
|
||||
@@ -1291,7 +1295,7 @@ msgstr ""
|
||||
msgid "Color"
|
||||
msgstr "Farbe"
|
||||
|
||||
#: frontend/src/pages/BatchForm.vue:306 frontend/src/pages/CourseForm.vue:300
|
||||
#: frontend/src/pages/BatchForm.vue:306 frontend/src/pages/CourseForm.vue:312
|
||||
msgid "Comma separated keywords for SEO"
|
||||
msgstr ""
|
||||
|
||||
@@ -1301,7 +1305,7 @@ msgstr ""
|
||||
#. Label of the comments (Text Editor) field in DocType 'LMS Assignment
|
||||
#. Submission'
|
||||
#. Label of the comments (Small Text) field in DocType 'LMS Mentor Request'
|
||||
#: frontend/src/components/Assignment.vue:167
|
||||
#: frontend/src/components/Assignment.vue:170
|
||||
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
||||
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -1309,7 +1313,7 @@ msgstr ""
|
||||
msgid "Comments"
|
||||
msgstr "Kommentare"
|
||||
|
||||
#: frontend/src/components/Assignment.vue:145
|
||||
#: frontend/src/components/Assignment.vue:148
|
||||
msgid "Comments by Evaluator"
|
||||
msgstr ""
|
||||
|
||||
@@ -1464,6 +1468,22 @@ msgstr "Bestätigungs-E-Mail-Vorlage"
|
||||
msgid "Congratulations on getting certified!"
|
||||
msgstr "Herzlichen Glückwunsch zur Zertifizierung!"
|
||||
|
||||
#. Label of the contact_us_tab (Tab Break) field in DocType 'LMS Settings'
|
||||
#: frontend/src/components/ContactUsEmail.vue:5
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us"
|
||||
msgstr "Kontakt"
|
||||
|
||||
#. Label of the contact_us_email (Data) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us Email"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the contact_us_url (Data) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us URL"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/CourseCardOverlay.vue:63
|
||||
#: frontend/src/pages/Lesson.vue:97
|
||||
msgid "Contact the Administrator to enroll for this course."
|
||||
@@ -1677,7 +1697,7 @@ msgstr "Kursliste"
|
||||
msgid "Course Name"
|
||||
msgstr "Kursname"
|
||||
|
||||
#: frontend/src/pages/CourseDetail.vue:78 frontend/src/pages/CourseForm.vue:310
|
||||
#: frontend/src/pages/CourseDetail.vue:78 frontend/src/pages/CourseForm.vue:322
|
||||
msgid "Course Outline"
|
||||
msgstr ""
|
||||
|
||||
@@ -1714,15 +1734,15 @@ msgstr "Kurstitel"
|
||||
msgid "Course added to program successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:547
|
||||
#: frontend/src/pages/CourseForm.vue:559
|
||||
msgid "Course created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:584
|
||||
#: frontend/src/pages/CourseForm.vue:596
|
||||
msgid "Course deleted successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:567
|
||||
#: frontend/src/pages/CourseForm.vue:579
|
||||
msgid "Course updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -1815,15 +1835,15 @@ msgstr "Eine Live-Klasse erstellen"
|
||||
msgid "Create a Quiz"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:593
|
||||
#: frontend/src/components/AppSidebar.vue:608
|
||||
msgid "Create a batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:584
|
||||
#: frontend/src/components/AppSidebar.vue:599
|
||||
msgid "Create a course"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:594
|
||||
#: frontend/src/components/AppSidebar.vue:609
|
||||
msgid "Create a live class"
|
||||
msgstr ""
|
||||
|
||||
@@ -1835,15 +1855,15 @@ msgstr ""
|
||||
msgid "Create an Assignment"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:518
|
||||
#: frontend/src/components/AppSidebar.vue:533
|
||||
msgid "Create your first batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:449
|
||||
#: frontend/src/components/AppSidebar.vue:464
|
||||
msgid "Create your first course"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:496
|
||||
#: frontend/src/components/AppSidebar.vue:511
|
||||
msgid "Create your first quiz"
|
||||
msgstr ""
|
||||
|
||||
@@ -1851,11 +1871,11 @@ msgstr ""
|
||||
msgid "Created"
|
||||
msgstr "Erstellt"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:590
|
||||
#: frontend/src/components/AppSidebar.vue:605
|
||||
msgid "Creating a batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:581
|
||||
#: frontend/src/components/AppSidebar.vue:596
|
||||
msgid "Creating a course"
|
||||
msgstr ""
|
||||
|
||||
@@ -1863,7 +1883,7 @@ msgstr ""
|
||||
#. Label of the currency (Link) field in DocType 'LMS Course'
|
||||
#. Label of the currency (Link) field in DocType 'LMS Payment'
|
||||
#: frontend/src/components/Settings/TransactionDetails.vue:64
|
||||
#: frontend/src/pages/BatchForm.vue:285 frontend/src/pages/CourseForm.vue:279
|
||||
#: frontend/src/pages/BatchForm.vue:285 frontend/src/pages/CourseForm.vue:282
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
#: lms/lms/doctype/lms_payment/lms_payment.json
|
||||
@@ -1879,7 +1899,7 @@ msgstr "Aktuelle Lektion"
|
||||
msgid "Current Streak"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:617
|
||||
#: frontend/src/components/AppSidebar.vue:632
|
||||
msgid "Custom Certificate Templates"
|
||||
msgstr ""
|
||||
|
||||
@@ -1979,7 +1999,7 @@ msgstr "Abschlussart"
|
||||
#: frontend/src/components/CourseOutline.vue:360
|
||||
#: frontend/src/components/DiscussionReplies.vue:41
|
||||
#: frontend/src/components/Settings/Badges.vue:171
|
||||
#: frontend/src/pages/BatchForm.vue:565 frontend/src/pages/CourseForm.vue:597
|
||||
#: frontend/src/pages/BatchForm.vue:565 frontend/src/pages/CourseForm.vue:609
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseForm.vue:67
|
||||
#: frontend/src/pages/Programs/ProgramForm.vue:231
|
||||
msgid "Delete"
|
||||
@@ -1989,7 +2009,7 @@ msgstr "Löschen"
|
||||
msgid "Delete Chapter"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:591
|
||||
#: frontend/src/pages/CourseForm.vue:603
|
||||
msgid "Delete Course"
|
||||
msgstr ""
|
||||
|
||||
@@ -2001,7 +2021,7 @@ msgstr ""
|
||||
msgid "Delete this lesson?"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:592
|
||||
#: frontend/src/pages/CourseForm.vue:604
|
||||
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
||||
msgstr ""
|
||||
|
||||
@@ -2251,6 +2271,10 @@ msgstr "E-Mail-Vorlagen"
|
||||
msgid "Email Templates deleted successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:57
|
||||
msgid "Email sent successfully"
|
||||
msgstr "Email wurde erfolgreich Versendet"
|
||||
|
||||
#. Label of the show_emails (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Emails"
|
||||
@@ -2266,7 +2290,7 @@ msgstr "Mitarbeiter"
|
||||
msgid "Enable"
|
||||
msgstr "ermöglichen"
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:21
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:22
|
||||
msgid "Enable Google API in Google Settings to send calendar invites for evaluations."
|
||||
msgstr "Aktivieren Sie die Google API in den Google-Einstellungen, um Kalendereinladungen für Bewertungen zu versenden."
|
||||
|
||||
@@ -2365,7 +2389,7 @@ msgstr ""
|
||||
msgid "Enrollment Count"
|
||||
msgstr "Anzahl der Einschreibungen"
|
||||
|
||||
#: lms/lms/utils.py:1880
|
||||
#: lms/lms/utils.py:1888
|
||||
msgid "Enrollment Failed, {0}"
|
||||
msgstr ""
|
||||
|
||||
@@ -2382,7 +2406,7 @@ msgstr ""
|
||||
msgid "Enrollments"
|
||||
msgstr "Einschreibungen"
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:26
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:27
|
||||
msgid "Enter Client Id and Client Secret in Google Settings to send calendar invites for evaluations."
|
||||
msgstr "Geben Sie die Client-Id und das Client-Geheimnis in den Google-Einstellungen ein, um Kalendereinladungen für Bewertungen zu versenden."
|
||||
|
||||
@@ -2402,7 +2426,7 @@ msgstr ""
|
||||
msgid "Error creating email template"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:191
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:190
|
||||
msgid "Error creating live class. Please try again. {0}"
|
||||
msgstr ""
|
||||
|
||||
@@ -2467,7 +2491,7 @@ msgstr ""
|
||||
#. Label of the evaluator (Link) field in DocType 'LMS Course'
|
||||
#: frontend/src/components/Modals/BatchCourseModal.vue:37
|
||||
#: frontend/src/components/Modals/BulkCertificates.vue:22
|
||||
#: frontend/src/pages/CourseForm.vue:268 frontend/src/pages/ProfileRoles.vue:32
|
||||
#: frontend/src/pages/CourseForm.vue:269 frontend/src/pages/ProfileRoles.vue:32
|
||||
#: lms/lms/doctype/batch_course/batch_course.json
|
||||
#: lms/lms/doctype/course_evaluator/course_evaluator.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -2555,7 +2579,7 @@ msgstr ""
|
||||
msgid "Exercise Title"
|
||||
msgstr "Übungstitel"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:142
|
||||
#: frontend/src/components/AppSidebar.vue:145
|
||||
msgid "Expand"
|
||||
msgstr "Erweitern"
|
||||
|
||||
@@ -2625,10 +2649,14 @@ msgstr ""
|
||||
msgid "Failed to enroll in program: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:137
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:144
|
||||
msgid "Failed to fetch attendance data from Zoom for class {0}: {1}"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:63
|
||||
msgid "Failed to send email"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseSubmission.vue:358
|
||||
msgid "Failed to submit. Please try again. {0}"
|
||||
msgstr ""
|
||||
@@ -2814,7 +2842,7 @@ msgstr ""
|
||||
|
||||
#: frontend/src/components/CertificationLinks.vue:34
|
||||
#: frontend/src/components/CertificationLinks.vue:50
|
||||
#: frontend/src/components/CourseCard.vue:125
|
||||
#: frontend/src/components/CourseCard.vue:126
|
||||
#: frontend/src/pages/CertifiedParticipants.vue:11
|
||||
msgid "Get Certified"
|
||||
msgstr ""
|
||||
@@ -2843,7 +2871,7 @@ msgid "Google Meet Link"
|
||||
msgstr "Google Meet-Link"
|
||||
|
||||
#. Label of the grade (Data) field in DocType 'Education Detail'
|
||||
#: frontend/src/components/Assignment.vue:161
|
||||
#: frontend/src/components/Assignment.vue:164
|
||||
#: lms/lms/doctype/education_detail/education_detail.json
|
||||
msgid "Grade"
|
||||
msgstr "Stufe"
|
||||
@@ -2858,7 +2886,7 @@ msgstr "Notenvergabe"
|
||||
msgid "Grade Type"
|
||||
msgstr "Notentyp"
|
||||
|
||||
#: frontend/src/components/Assignment.vue:156
|
||||
#: frontend/src/components/Assignment.vue:159
|
||||
msgid "Grading"
|
||||
msgstr ""
|
||||
|
||||
@@ -2898,7 +2926,7 @@ msgstr "Überschrift"
|
||||
msgid "Hello"
|
||||
msgstr "Hallo"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:128
|
||||
#: frontend/src/components/AppSidebar.vue:131
|
||||
msgid "Help"
|
||||
msgstr "Hilfe"
|
||||
|
||||
@@ -2963,7 +2991,7 @@ msgstr ""
|
||||
msgid "Hints"
|
||||
msgstr "Hinweise"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:5 frontend/src/pages/Home/Home.vue:153
|
||||
#: frontend/src/pages/Home/Home.vue:5 frontend/src/pages/Home/Home.vue:154
|
||||
msgid "Home"
|
||||
msgstr "Startseite"
|
||||
|
||||
@@ -2995,7 +3023,7 @@ msgstr ""
|
||||
msgid "I am unavailable"
|
||||
msgstr "Ich bin nicht verfügbar"
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:338
|
||||
#: frontend/src/pages/QuizForm.vue:334
|
||||
msgid "ID"
|
||||
msgstr "ID"
|
||||
|
||||
@@ -3155,7 +3183,7 @@ msgstr ""
|
||||
|
||||
#. Label of the instructor (Link) field in DocType 'Cohort'
|
||||
#. Label of the instructor (Link) field in DocType 'Course Instructor'
|
||||
#: frontend/src/pages/Home/Home.vue:148 lms/lms/doctype/cohort/cohort.json
|
||||
#: frontend/src/pages/Home/Home.vue:149 lms/lms/doctype/cohort/cohort.json
|
||||
#: lms/lms/doctype/course_instructor/course_instructor.json
|
||||
msgid "Instructor"
|
||||
msgstr "Dozent"
|
||||
@@ -3191,8 +3219,8 @@ msgstr "Kommentare der Dozenten"
|
||||
msgid "Interest"
|
||||
msgstr "Zinsen"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:573
|
||||
#: frontend/src/components/AppSidebar.vue:576
|
||||
#: frontend/src/components/AppSidebar.vue:588
|
||||
#: frontend/src/components/AppSidebar.vue:591
|
||||
msgid "Introduction"
|
||||
msgstr "Einleitung"
|
||||
|
||||
@@ -3214,7 +3242,7 @@ msgstr "Einladungscode"
|
||||
msgid "Invite Only"
|
||||
msgstr "Nur auf Einladung"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:507
|
||||
#: frontend/src/components/AppSidebar.vue:522
|
||||
msgid "Invite your team and students"
|
||||
msgstr ""
|
||||
|
||||
@@ -3251,7 +3279,7 @@ msgstr ""
|
||||
msgid "Issue Date"
|
||||
msgstr "Anfragedatum"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:614
|
||||
#: frontend/src/components/AppSidebar.vue:629
|
||||
msgid "Issue a Certificate"
|
||||
msgstr ""
|
||||
|
||||
@@ -3264,7 +3292,7 @@ msgid "Issued On"
|
||||
msgstr "Ausgestellt am"
|
||||
|
||||
#: frontend/src/pages/ProfileAbout.vue:73
|
||||
#: frontend/src/pages/ProfileCertificates.vue:17
|
||||
#: frontend/src/pages/ProfileCertificates.vue:20
|
||||
#: lms/templates/certificates_section.html:11
|
||||
msgid "Issued on"
|
||||
msgstr "Ausgestellt am"
|
||||
@@ -3679,7 +3707,7 @@ msgstr ""
|
||||
msgid "Learning Consistency"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:598
|
||||
#: frontend/src/components/AppSidebar.vue:613
|
||||
msgid "Learning Paths"
|
||||
msgstr ""
|
||||
|
||||
@@ -3728,7 +3756,7 @@ msgstr ""
|
||||
msgid "Lesson Title"
|
||||
msgstr "Titel der Unterrichtseinheit"
|
||||
|
||||
#: frontend/src/pages/LessonForm.vue:426
|
||||
#: frontend/src/pages/LessonForm.vue:425
|
||||
msgid "Lesson created successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -3740,7 +3768,7 @@ msgstr ""
|
||||
msgid "Lesson moved successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/LessonForm.vue:450
|
||||
#: frontend/src/pages/LessonForm.vue:449
|
||||
msgid "Lesson updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -3889,7 +3917,7 @@ msgstr ""
|
||||
msgid "Manage Batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:119
|
||||
#: frontend/src/pages/Home/Home.vue:120
|
||||
msgid "Manage your courses and batches at a glance"
|
||||
msgstr ""
|
||||
|
||||
@@ -3920,7 +3948,7 @@ msgstr "Alle als gelesen markieren"
|
||||
#. Label of the marks (Int) field in DocType 'LMS Quiz Result'
|
||||
#: frontend/src/components/Modals/Question.vue:40
|
||||
#: frontend/src/components/Modals/Question.vue:106
|
||||
#: frontend/src/components/Quiz.vue:120 frontend/src/pages/QuizForm.vue:348
|
||||
#: frontend/src/components/Quiz.vue:120 frontend/src/pages/QuizForm.vue:344
|
||||
#: frontend/src/pages/QuizSubmission.vue:64
|
||||
#: lms/lms/doctype/lms_quiz_question/lms_quiz_question.json
|
||||
#: lms/lms/doctype/lms_quiz_result/lms_quiz_result.json
|
||||
@@ -4199,8 +4227,12 @@ msgstr ""
|
||||
msgid "Mentor Request Status Update Template"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:19
|
||||
msgid "Message"
|
||||
msgstr "Nachricht"
|
||||
|
||||
#. Label of the meta_description (Small Text) field in DocType 'LMS Settings'
|
||||
#: frontend/src/pages/BatchForm.vue:297 frontend/src/pages/CourseForm.vue:291
|
||||
#: frontend/src/pages/BatchForm.vue:297 frontend/src/pages/CourseForm.vue:303
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Meta Description"
|
||||
msgstr "Meta Beschreibung"
|
||||
@@ -4214,12 +4246,12 @@ msgid "Meta Image"
|
||||
msgstr "Meta-Bild"
|
||||
|
||||
#. Label of the meta_keywords (Small Text) field in DocType 'LMS Settings'
|
||||
#: frontend/src/pages/BatchForm.vue:303 frontend/src/pages/CourseForm.vue:297
|
||||
#: frontend/src/pages/BatchForm.vue:303 frontend/src/pages/CourseForm.vue:309
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Meta Keywords"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/BatchForm.vue:292 frontend/src/pages/CourseForm.vue:286
|
||||
#: frontend/src/pages/BatchForm.vue:292 frontend/src/pages/CourseForm.vue:298
|
||||
msgid "Meta Tags"
|
||||
msgstr "Meta-Tags"
|
||||
|
||||
@@ -4290,7 +4322,7 @@ msgstr ""
|
||||
msgid "Monday"
|
||||
msgstr "Montag"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:622
|
||||
#: frontend/src/components/AppSidebar.vue:637
|
||||
msgid "Monetization"
|
||||
msgstr ""
|
||||
|
||||
@@ -4346,7 +4378,7 @@ msgstr "Neu"
|
||||
msgid "New Batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:678 lms/www/lms.py:93
|
||||
#: frontend/src/pages/CourseForm.vue:690 lms/www/lms.py:93
|
||||
msgid "New Course"
|
||||
msgstr "Neuer Kurs"
|
||||
|
||||
@@ -4370,7 +4402,7 @@ msgstr ""
|
||||
msgid "New Question"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:404 frontend/src/pages/QuizForm.vue:412
|
||||
#: frontend/src/pages/QuizForm.vue:400 frontend/src/pages/QuizForm.vue:408
|
||||
msgid "New Quiz"
|
||||
msgstr ""
|
||||
|
||||
@@ -4950,7 +4982,7 @@ msgstr "Telefonnummer"
|
||||
msgid "Pink"
|
||||
msgstr "Rosa"
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:34
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:35
|
||||
msgid "Please add <a href='{0}'>{1}</a> for <a href='{2}'>{3}</a> to send calendar invites for evaluations."
|
||||
msgstr ""
|
||||
|
||||
@@ -4974,7 +5006,7 @@ msgstr "Bitte klicken Sie auf die folgende Schaltfläche, um Ihr neues Passwort
|
||||
msgid "Please complete the previous course to unlock this one."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:197
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:196
|
||||
msgid "Please enable the zoom account to use this feature."
|
||||
msgstr ""
|
||||
|
||||
@@ -4990,8 +5022,16 @@ msgstr ""
|
||||
msgid "Please enter a title."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:29
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:80
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:51
|
||||
msgid "Please enter a valid Contact Us Email."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:53
|
||||
msgid "Please enter a valid Contact Us URL."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:32
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:107
|
||||
msgid "Please enter a valid URL."
|
||||
msgstr "Bitte geben Sie eine gültige URL ein."
|
||||
|
||||
@@ -5003,7 +5043,7 @@ msgstr ""
|
||||
msgid "Please enter a valid timestamp"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:74
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:101
|
||||
msgid "Please enter the URL for assignment submission."
|
||||
msgstr "Bitte geben Sie die URL zur Aufgabeneinreichung ein."
|
||||
|
||||
@@ -5031,7 +5071,7 @@ msgstr "Bitte melden Sie sich an, um auf diese Seite zuzugreifen."
|
||||
msgid "Please login to continue with payment."
|
||||
msgstr "Bitte loggen Sie sich ein, um mit der Zahlung fortzufahren."
|
||||
|
||||
#: lms/lms/utils.py:2012
|
||||
#: lms/lms/utils.py:2020
|
||||
msgid "Please login to enroll in the program."
|
||||
msgstr ""
|
||||
|
||||
@@ -5088,7 +5128,7 @@ msgstr ""
|
||||
msgid "Please upload a SCORM package"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:77
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:104
|
||||
msgid "Please upload the assignment file."
|
||||
msgstr ""
|
||||
|
||||
@@ -5134,7 +5174,7 @@ msgstr "Absenden"
|
||||
msgid "Postal Code"
|
||||
msgstr "Postleitzahl"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:122
|
||||
#: frontend/src/components/AppSidebar.vue:125
|
||||
msgid "Powered by Learning"
|
||||
msgstr ""
|
||||
|
||||
@@ -5411,7 +5451,7 @@ msgstr "Python"
|
||||
#: frontend/src/components/Assignment.vue:20
|
||||
#: frontend/src/components/Modals/AssignmentForm.vue:32
|
||||
#: frontend/src/components/Modals/Question.vue:27
|
||||
#: frontend/src/pages/QuizForm.vue:343 frontend/src/pages/QuizSubmission.vue:56
|
||||
#: frontend/src/pages/QuizForm.vue:339 frontend/src/pages/QuizSubmission.vue:56
|
||||
#: lms/lms/doctype/course_lesson/course_lesson.json
|
||||
#: lms/lms/doctype/lms_assignment/lms_assignment.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -5431,11 +5471,11 @@ msgstr ""
|
||||
msgid "Question Name"
|
||||
msgstr "Name der Frage"
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:284
|
||||
#: frontend/src/components/Modals/Question.vue:285
|
||||
msgid "Question added successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:334
|
||||
#: frontend/src/components/Modals/Question.vue:335
|
||||
msgid "Question updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -5452,7 +5492,7 @@ msgstr "Frage {0} von {1}"
|
||||
msgid "Questions"
|
||||
msgstr "Fragen"
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:385
|
||||
#: frontend/src/pages/QuizForm.vue:381
|
||||
msgid "Questions deleted successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -5502,7 +5542,7 @@ msgstr ""
|
||||
msgid "Quiz is not available to Guest users. Please login to continue."
|
||||
msgstr "Das Quiz ist für Gastbenutzer nicht verfügbar. Bitte melden Sie sich an, um fortzufahren."
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:310
|
||||
#: frontend/src/pages/QuizForm.vue:306
|
||||
msgid "Quiz updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -5511,8 +5551,8 @@ msgstr ""
|
||||
msgid "Quiz will appear at the bottom of the lesson."
|
||||
msgstr "Das Quiz wird am Ende der Lektion angezeigt."
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:606
|
||||
#: frontend/src/pages/QuizForm.vue:396 frontend/src/pages/Quizzes.vue:275
|
||||
#: frontend/src/components/AppSidebar.vue:621
|
||||
#: frontend/src/pages/QuizForm.vue:392 frontend/src/pages/Quizzes.vue:275
|
||||
#: frontend/src/pages/Quizzes.vue:285 lms/www/lms.py:249
|
||||
msgid "Quizzes"
|
||||
msgstr ""
|
||||
@@ -5655,7 +5695,7 @@ msgstr "Fortsetzen"
|
||||
msgid "Resume Video"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:142
|
||||
#: frontend/src/pages/Home/Home.vue:143
|
||||
msgid "Resume where you left off"
|
||||
msgstr ""
|
||||
|
||||
@@ -5696,7 +5736,7 @@ msgstr ""
|
||||
msgid "Role updated successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:634
|
||||
#: frontend/src/components/AppSidebar.vue:649
|
||||
msgid "Roles"
|
||||
msgstr "Rollen"
|
||||
|
||||
@@ -5914,6 +5954,10 @@ msgstr ""
|
||||
msgid "Select an assignment"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:33
|
||||
msgid "Send"
|
||||
msgstr "Absenden"
|
||||
|
||||
#: lms/lms/doctype/lms_batch_enrollment/lms_batch_enrollment.js:7
|
||||
msgid "Send Confirmation Email"
|
||||
msgstr ""
|
||||
@@ -5945,16 +5989,16 @@ msgstr ""
|
||||
msgid "Set your Password"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:577
|
||||
#: frontend/src/components/AppSidebar.vue:592
|
||||
msgid "Setting up"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:627
|
||||
#: frontend/src/components/AppSidebar.vue:642
|
||||
msgid "Setting up payment gateway"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:632
|
||||
#: frontend/src/components/Settings/Settings.vue:7
|
||||
#: frontend/src/components/AppSidebar.vue:647
|
||||
#: frontend/src/components/Settings/Settings.vue:9
|
||||
#: frontend/src/pages/BatchForm.vue:53 frontend/src/pages/CourseForm.vue:142
|
||||
#: frontend/src/pages/ProfileRoles.vue:4
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseSubmission.vue:19
|
||||
@@ -6252,7 +6296,7 @@ msgstr "Status/Punktzahl"
|
||||
#. Option for the 'User Category' (Select) field in DocType 'User'
|
||||
#. Option for the 'Required Role' (Select) field in DocType 'Cohort Web Page'
|
||||
#. Option for the 'Member Type' (Select) field in DocType 'LMS Enrollment'
|
||||
#: frontend/src/pages/Home/Home.vue:147 frontend/src/pages/ProfileRoles.vue:38
|
||||
#: frontend/src/pages/Home/Home.vue:148 frontend/src/pages/ProfileRoles.vue:38
|
||||
#: lms/fixtures/custom_field.json
|
||||
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
||||
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
||||
@@ -6289,6 +6333,7 @@ msgstr ""
|
||||
msgid "Subgroup"
|
||||
msgstr "Untergruppe"
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:13
|
||||
#: frontend/src/components/Modals/AnnouncementModal.vue:20
|
||||
#: frontend/src/components/Modals/EmailTemplateModal.vue:31
|
||||
msgid "Subject"
|
||||
@@ -6524,7 +6569,7 @@ msgstr ""
|
||||
msgid "Thanks and Regards"
|
||||
msgstr "Danke und Grüße"
|
||||
|
||||
#: lms/lms/utils.py:1904
|
||||
#: lms/lms/utils.py:1912
|
||||
msgid "The batch is full. Please contact the Administrator."
|
||||
msgstr ""
|
||||
|
||||
@@ -6536,11 +6581,11 @@ msgstr ""
|
||||
msgid "The course {0} is now available on {1}."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:55
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:56
|
||||
msgid "The evaluator of this course is unavailable from {0} to {1}. Please select a date after {1}"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:73
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:74
|
||||
msgid "The slot is already booked by another participant."
|
||||
msgstr "Der Platz ist bereits von einem anderen Teilnehmer gebucht."
|
||||
|
||||
@@ -6576,7 +6621,7 @@ msgstr ""
|
||||
msgid "There are no {0} on this site."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:40
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:67
|
||||
msgid "There has been an update on your submission for assignment {0}"
|
||||
msgstr ""
|
||||
|
||||
@@ -6613,7 +6658,7 @@ msgstr ""
|
||||
msgid "This course has:"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:1765
|
||||
#: lms/lms/utils.py:1773
|
||||
msgid "This course is free."
|
||||
msgstr "Dieser Kurs ist kostenlos."
|
||||
|
||||
@@ -6649,8 +6694,8 @@ msgstr ""
|
||||
msgid "This quiz consists of {0} questions."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:75
|
||||
#: frontend/src/components/AppSidebar.vue:115
|
||||
#: frontend/src/components/AppSidebar.vue:78
|
||||
#: frontend/src/components/AppSidebar.vue:118
|
||||
msgid "This site is being updated. You will not be able to make any changes. Full access will be restored shortly."
|
||||
msgstr ""
|
||||
|
||||
@@ -6721,15 +6766,21 @@ msgstr "Stundenplan-Vorlage"
|
||||
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Batch'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Certificate Request'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Course'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Live Class'
|
||||
#: frontend/src/components/Modals/LiveClassModal.vue:59
|
||||
#: frontend/src/pages/BatchForm.vue:114
|
||||
#: frontend/src/pages/BatchForm.vue:114 frontend/src/pages/CourseForm.vue:288
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.json
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.json
|
||||
msgid "Timezone"
|
||||
msgstr "Zeitzone"
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:72
|
||||
msgid "Timezone is required for paid certificates."
|
||||
msgstr ""
|
||||
|
||||
#: lms/templates/emails/batch_confirmation.html:21
|
||||
#: lms/templates/emails/batch_start_reminder.html:16
|
||||
#: lms/templates/emails/live_class_reminder.html:16
|
||||
@@ -6799,7 +6850,7 @@ msgstr "An"
|
||||
msgid "To Date"
|
||||
msgstr "Bis-Datum"
|
||||
|
||||
#: lms/lms/utils.py:1776
|
||||
#: lms/lms/utils.py:1784
|
||||
msgid "To join this batch, please contact the Administrator."
|
||||
msgstr "Um dieser Gruppe beizutreten, wenden Sie sich bitte an den Administrator."
|
||||
|
||||
@@ -7226,7 +7277,7 @@ msgstr "Schreiben Sie hier Ihre Antwort"
|
||||
msgid "Yellow"
|
||||
msgstr "Gelb"
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:95
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:96
|
||||
msgid "You already have an evaluation on {0} at {1} for the course {2}."
|
||||
msgstr ""
|
||||
|
||||
@@ -7279,11 +7330,11 @@ msgstr ""
|
||||
msgid "You cannot change the roles in read-only mode."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:111
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:112
|
||||
msgid "You cannot schedule evaluations after {0}."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:102
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:103
|
||||
msgid "You cannot schedule evaluations for past slots."
|
||||
msgstr ""
|
||||
|
||||
@@ -7340,19 +7391,23 @@ msgstr ""
|
||||
msgid "You have got a score of {0} for the quiz {1}"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/ProfileCertificates.vue:26
|
||||
msgid "You have not received any certificates yet."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/widgets/NoPreviewModal.html:12
|
||||
msgid "You have opted to be notified for this course. You will receive an email when the course becomes available."
|
||||
msgstr "Sie haben sich für eine Benachrichtigung zu diesem Kurs entschieden. Sie erhalten eine E-Mail, sobald der Kurs verfügbar ist."
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:102 frontend/src/pages/Home/Home.vue:125
|
||||
#: frontend/src/pages/Home/Home.vue:103 frontend/src/pages/Home/Home.vue:126
|
||||
msgid "You have {0} upcoming {1} and {2} {3} scheduled."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:109 frontend/src/pages/Home/Home.vue:132
|
||||
#: frontend/src/pages/Home/Home.vue:110 frontend/src/pages/Home/Home.vue:133
|
||||
msgid "You have {0} upcoming {1}."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:114 frontend/src/pages/Home/Home.vue:137
|
||||
#: frontend/src/pages/Home/Home.vue:115 frontend/src/pages/Home/Home.vue:138
|
||||
msgid "You have {0} {1} scheduled."
|
||||
msgstr ""
|
||||
|
||||
@@ -7400,7 +7455,7 @@ msgstr "Ihr Konto wurde erfolgreich erstellt!"
|
||||
msgid "Your Output"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:309
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:308
|
||||
msgid "Your batch {0} is starting tomorrow"
|
||||
msgstr ""
|
||||
|
||||
@@ -7408,7 +7463,7 @@ msgstr ""
|
||||
msgid "Your calendar is set."
|
||||
msgstr "Ihr Kalender ist eingestellt."
|
||||
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:88
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:95
|
||||
msgid "Your class on {0} is today"
|
||||
msgstr ""
|
||||
|
||||
@@ -7421,7 +7476,7 @@ msgstr ""
|
||||
msgid "Your evaluation for the course {0} has been scheduled on {1} at {2} {3}."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:121
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:136
|
||||
msgid "Your evaluation slot has been booked"
|
||||
msgstr ""
|
||||
|
||||
@@ -7474,8 +7529,8 @@ msgstr "aktivitäten"
|
||||
msgid "activity"
|
||||
msgstr "aktivität"
|
||||
|
||||
#: frontend/src/components/CourseInstructors.vue:22
|
||||
#: frontend/src/components/CourseInstructors.vue:41
|
||||
#: frontend/src/components/CourseInstructors.vue:24
|
||||
#: frontend/src/components/CourseInstructors.vue:45
|
||||
msgid "and"
|
||||
msgstr "und"
|
||||
|
||||
@@ -7538,11 +7593,15 @@ msgstr ""
|
||||
msgid "days"
|
||||
msgstr "tage"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:100 frontend/src/pages/Home/Home.vue:123
|
||||
#: frontend/src/pages/CourseForm.vue:290
|
||||
msgid "e.g. IST, UTC, GMT..."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:101 frontend/src/pages/Home/Home.vue:124
|
||||
msgid "evaluation"
|
||||
msgstr "beurteilung"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:100 frontend/src/pages/Home/Home.vue:123
|
||||
#: frontend/src/pages/Home/Home.vue:101 frontend/src/pages/Home/Home.vue:124
|
||||
msgid "evaluations"
|
||||
msgstr ""
|
||||
|
||||
@@ -7562,11 +7621,11 @@ msgstr "beate@beispiel.de"
|
||||
msgid "lessons"
|
||||
msgstr "unterrichtseinheiten"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:98 frontend/src/pages/Home/Home.vue:122
|
||||
#: frontend/src/pages/Home/Home.vue:99 frontend/src/pages/Home/Home.vue:123
|
||||
msgid "live class"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:98 frontend/src/pages/Home/Home.vue:122
|
||||
#: frontend/src/pages/Home/Home.vue:99 frontend/src/pages/Home/Home.vue:123
|
||||
msgid "live classes"
|
||||
msgstr ""
|
||||
|
||||
@@ -7584,11 +7643,11 @@ msgstr "mitglieder"
|
||||
msgid "minutes"
|
||||
msgstr "Minuten"
|
||||
|
||||
#: frontend/src/components/CourseInstructors.vue:41
|
||||
#: frontend/src/components/CourseInstructors.vue:45
|
||||
msgid "others"
|
||||
msgstr "andere"
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:344
|
||||
#: frontend/src/pages/QuizForm.vue:340
|
||||
msgid "question_detail"
|
||||
msgstr ""
|
||||
|
||||
|
||||
297
lms/locale/eo.po
297
lms/locale/eo.po
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: frappe\n"
|
||||
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
||||
"POT-Creation-Date: 2025-10-03 16:04+0000\n"
|
||||
"PO-Revision-Date: 2025-10-06 10:51\n"
|
||||
"POT-Creation-Date: 2025-10-31 16:04+0000\n"
|
||||
"PO-Revision-Date: 2025-10-31 17:33\n"
|
||||
"Last-Translator: jannat@frappe.io\n"
|
||||
"Language-Team: Esperanto\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -196,7 +196,7 @@ msgstr "crwdns149222:0crwdne149222:0"
|
||||
msgid "Add a Student"
|
||||
msgstr "crwdns149224:0crwdne149224:0"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:585
|
||||
#: frontend/src/components/AppSidebar.vue:600
|
||||
msgid "Add a chapter"
|
||||
msgstr "crwdns151726:0crwdne151726:0"
|
||||
|
||||
@@ -208,7 +208,7 @@ msgstr "crwdns149226:0crwdne149226:0"
|
||||
msgid "Add a keyword and then press enter"
|
||||
msgstr "crwdns152004:0crwdne152004:0"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:586
|
||||
#: frontend/src/components/AppSidebar.vue:601
|
||||
msgid "Add a lesson"
|
||||
msgstr "crwdns151728:0crwdne151728:0"
|
||||
|
||||
@@ -216,12 +216,12 @@ msgstr "crwdns151728:0crwdne151728:0"
|
||||
msgid "Add a new member"
|
||||
msgstr "crwdns155798:0crwdne155798:0"
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:166
|
||||
#: frontend/src/components/Modals/Question.vue:167
|
||||
#: frontend/src/pages/QuizForm.vue:200
|
||||
msgid "Add a new question"
|
||||
msgstr "crwdns149228:0crwdne149228:0"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:600
|
||||
#: frontend/src/components/AppSidebar.vue:615
|
||||
msgid "Add a program"
|
||||
msgstr "crwdns159750:0crwdne159750:0"
|
||||
|
||||
@@ -245,7 +245,7 @@ msgstr "crwdns152104:0crwdne152104:0"
|
||||
msgid "Add at least one possible answer for this question: {0}"
|
||||
msgstr "crwdns149236:0{0}crwdne149236:0"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:549
|
||||
#: frontend/src/components/AppSidebar.vue:564
|
||||
msgid "Add courses to your batch"
|
||||
msgstr "crwdns154437:0crwdne154437:0"
|
||||
|
||||
@@ -253,7 +253,7 @@ msgstr "crwdns154437:0crwdne154437:0"
|
||||
msgid "Add quiz to this video"
|
||||
msgstr "crwdns155290:0crwdne155290:0"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:528
|
||||
#: frontend/src/components/AppSidebar.vue:543
|
||||
msgid "Add students to your batch"
|
||||
msgstr "crwdns154439:0crwdne154439:0"
|
||||
|
||||
@@ -269,11 +269,11 @@ msgstr "crwdns149238:0crwdne149238:0"
|
||||
msgid "Add your assignment as {0}"
|
||||
msgstr "crwdns149240:0{0}crwdne149240:0"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:461
|
||||
#: frontend/src/components/AppSidebar.vue:476
|
||||
msgid "Add your first chapter"
|
||||
msgstr "crwdns154441:0crwdne154441:0"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:477
|
||||
#: frontend/src/components/AppSidebar.vue:492
|
||||
msgid "Add your first lesson"
|
||||
msgstr "crwdns154443:0crwdne154443:0"
|
||||
|
||||
@@ -378,11 +378,11 @@ msgstr "crwdns149270:0crwdne149270:0"
|
||||
msgid "Amount and currency are required for paid batches."
|
||||
msgstr "crwdns151730:0crwdne151730:0"
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:76
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:79
|
||||
msgid "Amount and currency are required for paid certificates."
|
||||
msgstr "crwdns152599:0crwdne152599:0"
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:73
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:76
|
||||
msgid "Amount and currency are required for paid courses."
|
||||
msgstr "crwdns151732:0crwdne151732:0"
|
||||
|
||||
@@ -508,7 +508,7 @@ msgid "Assessment {0} has already been added to this batch."
|
||||
msgstr "crwdns149308:0{0}crwdne149308:0"
|
||||
|
||||
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
||||
#: frontend/src/components/AppSidebar.vue:603
|
||||
#: frontend/src/components/AppSidebar.vue:618
|
||||
#: frontend/src/components/Assessments.vue:5
|
||||
#: frontend/src/components/BatchStudents.vue:32
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
@@ -573,11 +573,11 @@ msgstr "crwdns149320:0crwdne149320:0"
|
||||
msgid "Assignment created successfully"
|
||||
msgstr "crwdns154596:0crwdne154596:0"
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:24
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:27
|
||||
msgid "Assignment for Lesson {0} by {1} already exists."
|
||||
msgstr "crwdns149322:0{0}crwdnd149322:0{1}crwdne149322:0"
|
||||
|
||||
#: frontend/src/components/Assignment.vue:359
|
||||
#: frontend/src/components/Assignment.vue:362
|
||||
msgid "Assignment submitted successfully"
|
||||
msgstr "crwdns155072:0crwdne155072:0"
|
||||
|
||||
@@ -590,7 +590,7 @@ msgstr "crwdns154598:0crwdne154598:0"
|
||||
msgid "Assignment will appear at the bottom of the lesson."
|
||||
msgstr "crwdns149324:0crwdne149324:0"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:607
|
||||
#: frontend/src/components/AppSidebar.vue:622
|
||||
#: frontend/src/components/Settings/Badges.vue:163
|
||||
#: frontend/src/pages/Assignments.vue:208 lms/www/lms.py:271
|
||||
msgid "Assignments"
|
||||
@@ -1017,7 +1017,7 @@ msgstr "crwdns151924:0crwdne151924:0"
|
||||
#. Enrollment'
|
||||
#. Label of a Card Break in the LMS Workspace
|
||||
#. Label of a Link in the LMS Workspace
|
||||
#: frontend/src/components/AppSidebar.vue:611
|
||||
#: frontend/src/components/AppSidebar.vue:626
|
||||
#: frontend/src/components/Modals/Event.vue:381
|
||||
#: frontend/src/pages/BatchForm.vue:69 frontend/src/pages/Batches.vue:58
|
||||
#: frontend/src/pages/CourseCertification.vue:10
|
||||
@@ -1040,6 +1040,11 @@ msgstr "crwdns149432:0crwdne149432:0"
|
||||
msgid "Certification Name"
|
||||
msgstr "crwdns149436:0crwdne149436:0"
|
||||
|
||||
#. Label of the certifications (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Certifications"
|
||||
msgstr "crwdns160250:0crwdne160250:0"
|
||||
|
||||
#: frontend/src/components/BatchStudents.vue:17
|
||||
msgid "Certified"
|
||||
msgstr "crwdns152422:0crwdne152422:0"
|
||||
@@ -1052,8 +1057,7 @@ msgstr "crwdns152422:0crwdne152422:0"
|
||||
msgid "Certified Members"
|
||||
msgstr "crwdns154600:0crwdne154600:0"
|
||||
|
||||
#. Label of the certified_participants (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:300
|
||||
#: lms/www/lms.py:300
|
||||
msgid "Certified Participants"
|
||||
msgstr "crwdns149438:0crwdne149438:0"
|
||||
|
||||
@@ -1061,7 +1065,7 @@ msgstr "crwdns149438:0crwdne149438:0"
|
||||
msgid "Change"
|
||||
msgstr "crwdns149440:0crwdne149440:0"
|
||||
|
||||
#: frontend/src/components/Assignment.vue:345
|
||||
#: frontend/src/components/Assignment.vue:348
|
||||
msgid "Changes saved successfully"
|
||||
msgstr "crwdns152110:0crwdne152110:0"
|
||||
|
||||
@@ -1272,7 +1276,7 @@ msgstr "crwdns149490:0crwdne149490:0"
|
||||
msgid "Collaboration Preference"
|
||||
msgstr "crwdns149492:0crwdne149492:0"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:142
|
||||
#: frontend/src/components/AppSidebar.vue:145
|
||||
msgid "Collapse"
|
||||
msgstr "crwdns154602:0crwdne154602:0"
|
||||
|
||||
@@ -1291,7 +1295,7 @@ msgstr "crwdns149496:0crwdne149496:0"
|
||||
msgid "Color"
|
||||
msgstr "crwdns149498:0crwdne149498:0"
|
||||
|
||||
#: frontend/src/pages/BatchForm.vue:306 frontend/src/pages/CourseForm.vue:300
|
||||
#: frontend/src/pages/BatchForm.vue:306 frontend/src/pages/CourseForm.vue:312
|
||||
msgid "Comma separated keywords for SEO"
|
||||
msgstr "crwdns155232:0crwdne155232:0"
|
||||
|
||||
@@ -1301,7 +1305,7 @@ msgstr "crwdns155232:0crwdne155232:0"
|
||||
#. Label of the comments (Text Editor) field in DocType 'LMS Assignment
|
||||
#. Submission'
|
||||
#. Label of the comments (Small Text) field in DocType 'LMS Mentor Request'
|
||||
#: frontend/src/components/Assignment.vue:167
|
||||
#: frontend/src/components/Assignment.vue:170
|
||||
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
||||
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -1309,7 +1313,7 @@ msgstr "crwdns155232:0crwdne155232:0"
|
||||
msgid "Comments"
|
||||
msgstr "crwdns149500:0crwdne149500:0"
|
||||
|
||||
#: frontend/src/components/Assignment.vue:145
|
||||
#: frontend/src/components/Assignment.vue:148
|
||||
msgid "Comments by Evaluator"
|
||||
msgstr "crwdns152114:0crwdne152114:0"
|
||||
|
||||
@@ -1464,6 +1468,22 @@ msgstr "crwdns152481:0crwdne152481:0"
|
||||
msgid "Congratulations on getting certified!"
|
||||
msgstr "crwdns149534:0crwdne149534:0"
|
||||
|
||||
#. Label of the contact_us_tab (Tab Break) field in DocType 'LMS Settings'
|
||||
#: frontend/src/components/ContactUsEmail.vue:5
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us"
|
||||
msgstr "crwdns160252:0crwdne160252:0"
|
||||
|
||||
#. Label of the contact_us_email (Data) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us Email"
|
||||
msgstr "crwdns160254:0crwdne160254:0"
|
||||
|
||||
#. Label of the contact_us_url (Data) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us URL"
|
||||
msgstr "crwdns160256:0crwdne160256:0"
|
||||
|
||||
#: frontend/src/components/CourseCardOverlay.vue:63
|
||||
#: frontend/src/pages/Lesson.vue:97
|
||||
msgid "Contact the Administrator to enroll for this course."
|
||||
@@ -1677,7 +1697,7 @@ msgstr "crwdns149578:0crwdne149578:0"
|
||||
msgid "Course Name"
|
||||
msgstr "crwdns149580:0crwdne149580:0"
|
||||
|
||||
#: frontend/src/pages/CourseDetail.vue:78 frontend/src/pages/CourseForm.vue:310
|
||||
#: frontend/src/pages/CourseDetail.vue:78 frontend/src/pages/CourseForm.vue:322
|
||||
msgid "Course Outline"
|
||||
msgstr "crwdns151624:0crwdne151624:0"
|
||||
|
||||
@@ -1714,15 +1734,15 @@ msgstr "crwdns149590:0crwdne149590:0"
|
||||
msgid "Course added to program successfully"
|
||||
msgstr "crwdns158496:0crwdne158496:0"
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:547
|
||||
#: frontend/src/pages/CourseForm.vue:559
|
||||
msgid "Course created successfully"
|
||||
msgstr "crwdns155084:0crwdne155084:0"
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:584
|
||||
#: frontend/src/pages/CourseForm.vue:596
|
||||
msgid "Course deleted successfully"
|
||||
msgstr "crwdns151586:0crwdne151586:0"
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:567
|
||||
#: frontend/src/pages/CourseForm.vue:579
|
||||
msgid "Course updated successfully"
|
||||
msgstr "crwdns155086:0crwdne155086:0"
|
||||
|
||||
@@ -1815,15 +1835,15 @@ msgstr "crwdns149614:0crwdne149614:0"
|
||||
msgid "Create a Quiz"
|
||||
msgstr "crwdns155804:0crwdne155804:0"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:593
|
||||
#: frontend/src/components/AppSidebar.vue:608
|
||||
msgid "Create a batch"
|
||||
msgstr "crwdns154445:0crwdne154445:0"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:584
|
||||
#: frontend/src/components/AppSidebar.vue:599
|
||||
msgid "Create a course"
|
||||
msgstr "crwdns151738:0crwdne151738:0"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:594
|
||||
#: frontend/src/components/AppSidebar.vue:609
|
||||
msgid "Create a live class"
|
||||
msgstr "crwdns154447:0crwdne154447:0"
|
||||
|
||||
@@ -1835,15 +1855,15 @@ msgstr "crwdns155882:0crwdne155882:0"
|
||||
msgid "Create an Assignment"
|
||||
msgstr "crwdns154604:0crwdne154604:0"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:518
|
||||
#: frontend/src/components/AppSidebar.vue:533
|
||||
msgid "Create your first batch"
|
||||
msgstr "crwdns154449:0crwdne154449:0"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:449
|
||||
#: frontend/src/components/AppSidebar.vue:464
|
||||
msgid "Create your first course"
|
||||
msgstr "crwdns154451:0crwdne154451:0"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:496
|
||||
#: frontend/src/components/AppSidebar.vue:511
|
||||
msgid "Create your first quiz"
|
||||
msgstr "crwdns154453:0crwdne154453:0"
|
||||
|
||||
@@ -1851,11 +1871,11 @@ msgstr "crwdns154453:0crwdne154453:0"
|
||||
msgid "Created"
|
||||
msgstr "crwdns152116:0crwdne152116:0"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:590
|
||||
#: frontend/src/components/AppSidebar.vue:605
|
||||
msgid "Creating a batch"
|
||||
msgstr "crwdns154455:0crwdne154455:0"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:581
|
||||
#: frontend/src/components/AppSidebar.vue:596
|
||||
msgid "Creating a course"
|
||||
msgstr "crwdns154457:0crwdne154457:0"
|
||||
|
||||
@@ -1863,7 +1883,7 @@ msgstr "crwdns154457:0crwdne154457:0"
|
||||
#. Label of the currency (Link) field in DocType 'LMS Course'
|
||||
#. Label of the currency (Link) field in DocType 'LMS Payment'
|
||||
#: frontend/src/components/Settings/TransactionDetails.vue:64
|
||||
#: frontend/src/pages/BatchForm.vue:285 frontend/src/pages/CourseForm.vue:279
|
||||
#: frontend/src/pages/BatchForm.vue:285 frontend/src/pages/CourseForm.vue:282
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
#: lms/lms/doctype/lms_payment/lms_payment.json
|
||||
@@ -1879,7 +1899,7 @@ msgstr "crwdns149620:0crwdne149620:0"
|
||||
msgid "Current Streak"
|
||||
msgstr "crwdns159340:0crwdne159340:0"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:617
|
||||
#: frontend/src/components/AppSidebar.vue:632
|
||||
msgid "Custom Certificate Templates"
|
||||
msgstr "crwdns154459:0crwdne154459:0"
|
||||
|
||||
@@ -1979,7 +1999,7 @@ msgstr "crwdns149644:0crwdne149644:0"
|
||||
#: frontend/src/components/CourseOutline.vue:360
|
||||
#: frontend/src/components/DiscussionReplies.vue:41
|
||||
#: frontend/src/components/Settings/Badges.vue:171
|
||||
#: frontend/src/pages/BatchForm.vue:565 frontend/src/pages/CourseForm.vue:597
|
||||
#: frontend/src/pages/BatchForm.vue:565 frontend/src/pages/CourseForm.vue:609
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseForm.vue:67
|
||||
#: frontend/src/pages/Programs/ProgramForm.vue:231
|
||||
msgid "Delete"
|
||||
@@ -1989,7 +2009,7 @@ msgstr "crwdns149646:0crwdne149646:0"
|
||||
msgid "Delete Chapter"
|
||||
msgstr "crwdns151626:0crwdne151626:0"
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:591
|
||||
#: frontend/src/pages/CourseForm.vue:603
|
||||
msgid "Delete Course"
|
||||
msgstr "crwdns151588:0crwdne151588:0"
|
||||
|
||||
@@ -2001,7 +2021,7 @@ msgstr "crwdns151628:0crwdne151628:0"
|
||||
msgid "Delete this lesson?"
|
||||
msgstr "crwdns151630:0crwdne151630:0"
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:592
|
||||
#: frontend/src/pages/CourseForm.vue:604
|
||||
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
||||
msgstr "crwdns151590:0crwdne151590:0"
|
||||
|
||||
@@ -2251,6 +2271,10 @@ msgstr "crwdns149702:0crwdne149702:0"
|
||||
msgid "Email Templates deleted successfully"
|
||||
msgstr "crwdns155188:0crwdne155188:0"
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:57
|
||||
msgid "Email sent successfully"
|
||||
msgstr "crwdns160426:0crwdne160426:0"
|
||||
|
||||
#. Label of the show_emails (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Emails"
|
||||
@@ -2266,7 +2290,7 @@ msgstr "crwdns149706:0crwdne149706:0"
|
||||
msgid "Enable"
|
||||
msgstr "crwdns149708:0crwdne149708:0"
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:21
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:22
|
||||
msgid "Enable Google API in Google Settings to send calendar invites for evaluations."
|
||||
msgstr "crwdns149712:0crwdne149712:0"
|
||||
|
||||
@@ -2365,7 +2389,7 @@ msgstr "crwdns152430:0{0}crwdne152430:0"
|
||||
msgid "Enrollment Count"
|
||||
msgstr "crwdns149730:0crwdne149730:0"
|
||||
|
||||
#: lms/lms/utils.py:1880
|
||||
#: lms/lms/utils.py:1888
|
||||
msgid "Enrollment Failed, {0}"
|
||||
msgstr "crwdns158314:0{0}crwdne158314:0"
|
||||
|
||||
@@ -2382,7 +2406,7 @@ msgstr "crwdns158510:0{0}crwdne158510:0"
|
||||
msgid "Enrollments"
|
||||
msgstr "crwdns149734:0crwdne149734:0"
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:26
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:27
|
||||
msgid "Enter Client Id and Client Secret in Google Settings to send calendar invites for evaluations."
|
||||
msgstr "crwdns149736:0crwdne149736:0"
|
||||
|
||||
@@ -2402,7 +2426,7 @@ msgstr "crwdns155890:0crwdne155890:0"
|
||||
msgid "Error creating email template"
|
||||
msgstr "crwdns155190:0crwdne155190:0"
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:191
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:190
|
||||
msgid "Error creating live class. Please try again. {0}"
|
||||
msgstr "crwdns152489:0{0}crwdne152489:0"
|
||||
|
||||
@@ -2467,7 +2491,7 @@ msgstr "crwdns149756:0crwdne149756:0"
|
||||
#. Label of the evaluator (Link) field in DocType 'LMS Course'
|
||||
#: frontend/src/components/Modals/BatchCourseModal.vue:37
|
||||
#: frontend/src/components/Modals/BulkCertificates.vue:22
|
||||
#: frontend/src/pages/CourseForm.vue:268 frontend/src/pages/ProfileRoles.vue:32
|
||||
#: frontend/src/pages/CourseForm.vue:269 frontend/src/pages/ProfileRoles.vue:32
|
||||
#: lms/lms/doctype/batch_course/batch_course.json
|
||||
#: lms/lms/doctype/course_evaluator/course_evaluator.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -2555,7 +2579,7 @@ msgstr "crwdns149772:0crwdne149772:0"
|
||||
msgid "Exercise Title"
|
||||
msgstr "crwdns149774:0crwdne149774:0"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:142
|
||||
#: frontend/src/components/AppSidebar.vue:145
|
||||
msgid "Expand"
|
||||
msgstr "crwdns154608:0crwdne154608:0"
|
||||
|
||||
@@ -2625,10 +2649,14 @@ msgstr "crwdns155894:0crwdne155894:0"
|
||||
msgid "Failed to enroll in program: {0}"
|
||||
msgstr "crwdns158512:0{0}crwdne158512:0"
|
||||
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:137
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:144
|
||||
msgid "Failed to fetch attendance data from Zoom for class {0}: {1}"
|
||||
msgstr "crwdns155242:0{0}crwdnd155242:0{1}crwdne155242:0"
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:63
|
||||
msgid "Failed to send email"
|
||||
msgstr "crwdns160428:0crwdne160428:0"
|
||||
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseSubmission.vue:358
|
||||
msgid "Failed to submit. Please try again. {0}"
|
||||
msgstr "crwdns155708:0{0}crwdne155708:0"
|
||||
@@ -2814,7 +2842,7 @@ msgstr "crwdns149838:0crwdne149838:0"
|
||||
|
||||
#: frontend/src/components/CertificationLinks.vue:34
|
||||
#: frontend/src/components/CertificationLinks.vue:50
|
||||
#: frontend/src/components/CourseCard.vue:125
|
||||
#: frontend/src/components/CourseCard.vue:126
|
||||
#: frontend/src/pages/CertifiedParticipants.vue:11
|
||||
msgid "Get Certified"
|
||||
msgstr "crwdns152432:0crwdne152432:0"
|
||||
@@ -2843,7 +2871,7 @@ msgid "Google Meet Link"
|
||||
msgstr "crwdns149844:0crwdne149844:0"
|
||||
|
||||
#. Label of the grade (Data) field in DocType 'Education Detail'
|
||||
#: frontend/src/components/Assignment.vue:161
|
||||
#: frontend/src/components/Assignment.vue:164
|
||||
#: lms/lms/doctype/education_detail/education_detail.json
|
||||
msgid "Grade"
|
||||
msgstr "crwdns149846:0crwdne149846:0"
|
||||
@@ -2858,7 +2886,7 @@ msgstr "crwdns149848:0crwdne149848:0"
|
||||
msgid "Grade Type"
|
||||
msgstr "crwdns149850:0crwdne149850:0"
|
||||
|
||||
#: frontend/src/components/Assignment.vue:156
|
||||
#: frontend/src/components/Assignment.vue:159
|
||||
msgid "Grading"
|
||||
msgstr "crwdns152122:0crwdne152122:0"
|
||||
|
||||
@@ -2898,7 +2926,7 @@ msgstr "crwdns149856:0crwdne149856:0"
|
||||
msgid "Hello"
|
||||
msgstr "crwdns149858:0crwdne149858:0"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:128
|
||||
#: frontend/src/components/AppSidebar.vue:131
|
||||
msgid "Help"
|
||||
msgstr "crwdns154461:0crwdne154461:0"
|
||||
|
||||
@@ -2963,7 +2991,7 @@ msgstr "crwdns157418:0crwdne157418:0"
|
||||
msgid "Hints"
|
||||
msgstr "crwdns149878:0crwdne149878:0"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:5 frontend/src/pages/Home/Home.vue:153
|
||||
#: frontend/src/pages/Home/Home.vue:5 frontend/src/pages/Home/Home.vue:154
|
||||
msgid "Home"
|
||||
msgstr "crwdns159344:0crwdne159344:0"
|
||||
|
||||
@@ -2995,7 +3023,7 @@ msgstr "crwdns149892:0crwdne149892:0"
|
||||
msgid "I am unavailable"
|
||||
msgstr "crwdns149894:0crwdne149894:0"
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:338
|
||||
#: frontend/src/pages/QuizForm.vue:334
|
||||
msgid "ID"
|
||||
msgstr "crwdns149896:0crwdne149896:0"
|
||||
|
||||
@@ -3155,7 +3183,7 @@ msgstr "crwdns149934:0crwdne149934:0"
|
||||
|
||||
#. Label of the instructor (Link) field in DocType 'Cohort'
|
||||
#. Label of the instructor (Link) field in DocType 'Course Instructor'
|
||||
#: frontend/src/pages/Home/Home.vue:148 lms/lms/doctype/cohort/cohort.json
|
||||
#: frontend/src/pages/Home/Home.vue:149 lms/lms/doctype/cohort/cohort.json
|
||||
#: lms/lms/doctype/course_instructor/course_instructor.json
|
||||
msgid "Instructor"
|
||||
msgstr "crwdns149936:0crwdne149936:0"
|
||||
@@ -3191,8 +3219,8 @@ msgstr "crwdns149944:0crwdne149944:0"
|
||||
msgid "Interest"
|
||||
msgstr "crwdns149946:0crwdne149946:0"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:573
|
||||
#: frontend/src/components/AppSidebar.vue:576
|
||||
#: frontend/src/components/AppSidebar.vue:588
|
||||
#: frontend/src/components/AppSidebar.vue:591
|
||||
msgid "Introduction"
|
||||
msgstr "crwdns154463:0crwdne154463:0"
|
||||
|
||||
@@ -3214,7 +3242,7 @@ msgstr "crwdns149956:0crwdne149956:0"
|
||||
msgid "Invite Only"
|
||||
msgstr "crwdns149960:0crwdne149960:0"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:507
|
||||
#: frontend/src/components/AppSidebar.vue:522
|
||||
msgid "Invite your team and students"
|
||||
msgstr "crwdns154465:0crwdne154465:0"
|
||||
|
||||
@@ -3251,7 +3279,7 @@ msgstr "crwdns151636:0crwdne151636:0"
|
||||
msgid "Issue Date"
|
||||
msgstr "crwdns149968:0crwdne149968:0"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:614
|
||||
#: frontend/src/components/AppSidebar.vue:629
|
||||
msgid "Issue a Certificate"
|
||||
msgstr "crwdns154467:0crwdne154467:0"
|
||||
|
||||
@@ -3264,7 +3292,7 @@ msgid "Issued On"
|
||||
msgstr "crwdns149970:0crwdne149970:0"
|
||||
|
||||
#: frontend/src/pages/ProfileAbout.vue:73
|
||||
#: frontend/src/pages/ProfileCertificates.vue:17
|
||||
#: frontend/src/pages/ProfileCertificates.vue:20
|
||||
#: lms/templates/certificates_section.html:11
|
||||
msgid "Issued on"
|
||||
msgstr "crwdns149972:0crwdne149972:0"
|
||||
@@ -3679,7 +3707,7 @@ msgstr "crwdns151638:0crwdne151638:0"
|
||||
msgid "Learning Consistency"
|
||||
msgstr "crwdns159350:0crwdne159350:0"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:598
|
||||
#: frontend/src/components/AppSidebar.vue:613
|
||||
msgid "Learning Paths"
|
||||
msgstr "crwdns159760:0crwdne159760:0"
|
||||
|
||||
@@ -3728,7 +3756,7 @@ msgstr "crwdns150082:0crwdne150082:0"
|
||||
msgid "Lesson Title"
|
||||
msgstr "crwdns150084:0crwdne150084:0"
|
||||
|
||||
#: frontend/src/pages/LessonForm.vue:426
|
||||
#: frontend/src/pages/LessonForm.vue:425
|
||||
msgid "Lesson created successfully"
|
||||
msgstr "crwdns155092:0crwdne155092:0"
|
||||
|
||||
@@ -3740,7 +3768,7 @@ msgstr "crwdns155094:0crwdne155094:0"
|
||||
msgid "Lesson moved successfully"
|
||||
msgstr "crwdns155096:0crwdne155096:0"
|
||||
|
||||
#: frontend/src/pages/LessonForm.vue:450
|
||||
#: frontend/src/pages/LessonForm.vue:449
|
||||
msgid "Lesson updated successfully"
|
||||
msgstr "crwdns155098:0crwdne155098:0"
|
||||
|
||||
@@ -3889,7 +3917,7 @@ msgstr "crwdns152605:0crwdne152605:0"
|
||||
msgid "Manage Batch"
|
||||
msgstr "crwdns150132:0crwdne150132:0"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:119
|
||||
#: frontend/src/pages/Home/Home.vue:120
|
||||
msgid "Manage your courses and batches at a glance"
|
||||
msgstr "crwdns159354:0crwdne159354:0"
|
||||
|
||||
@@ -3920,7 +3948,7 @@ msgstr "crwdns150140:0crwdne150140:0"
|
||||
#. Label of the marks (Int) field in DocType 'LMS Quiz Result'
|
||||
#: frontend/src/components/Modals/Question.vue:40
|
||||
#: frontend/src/components/Modals/Question.vue:106
|
||||
#: frontend/src/components/Quiz.vue:120 frontend/src/pages/QuizForm.vue:348
|
||||
#: frontend/src/components/Quiz.vue:120 frontend/src/pages/QuizForm.vue:344
|
||||
#: frontend/src/pages/QuizSubmission.vue:64
|
||||
#: lms/lms/doctype/lms_quiz_question/lms_quiz_question.json
|
||||
#: lms/lms/doctype/lms_quiz_result/lms_quiz_result.json
|
||||
@@ -4199,8 +4227,12 @@ msgstr "crwdns150184:0crwdne150184:0"
|
||||
msgid "Mentor Request Status Update Template"
|
||||
msgstr "crwdns150186:0crwdne150186:0"
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:19
|
||||
msgid "Message"
|
||||
msgstr "crwdns160430:0crwdne160430:0"
|
||||
|
||||
#. Label of the meta_description (Small Text) field in DocType 'LMS Settings'
|
||||
#: frontend/src/pages/BatchForm.vue:297 frontend/src/pages/CourseForm.vue:291
|
||||
#: frontend/src/pages/BatchForm.vue:297 frontend/src/pages/CourseForm.vue:303
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Meta Description"
|
||||
msgstr "crwdns154526:0crwdne154526:0"
|
||||
@@ -4214,12 +4246,12 @@ msgid "Meta Image"
|
||||
msgstr "crwdns150190:0crwdne150190:0"
|
||||
|
||||
#. Label of the meta_keywords (Small Text) field in DocType 'LMS Settings'
|
||||
#: frontend/src/pages/BatchForm.vue:303 frontend/src/pages/CourseForm.vue:297
|
||||
#: frontend/src/pages/BatchForm.vue:303 frontend/src/pages/CourseForm.vue:309
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Meta Keywords"
|
||||
msgstr "crwdns154704:0crwdne154704:0"
|
||||
|
||||
#: frontend/src/pages/BatchForm.vue:292 frontend/src/pages/CourseForm.vue:286
|
||||
#: frontend/src/pages/BatchForm.vue:292 frontend/src/pages/CourseForm.vue:298
|
||||
msgid "Meta Tags"
|
||||
msgstr "crwdns155256:0crwdne155256:0"
|
||||
|
||||
@@ -4290,7 +4322,7 @@ msgstr "crwdns150202:0crwdne150202:0"
|
||||
msgid "Monday"
|
||||
msgstr "crwdns150204:0crwdne150204:0"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:622
|
||||
#: frontend/src/components/AppSidebar.vue:637
|
||||
msgid "Monetization"
|
||||
msgstr "crwdns154469:0crwdne154469:0"
|
||||
|
||||
@@ -4346,7 +4378,7 @@ msgstr "crwdns150214:0crwdne150214:0"
|
||||
msgid "New Batch"
|
||||
msgstr "crwdns150218:0crwdne150218:0"
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:678 lms/www/lms.py:93
|
||||
#: frontend/src/pages/CourseForm.vue:690 lms/www/lms.py:93
|
||||
msgid "New Course"
|
||||
msgstr "crwdns150220:0crwdne150220:0"
|
||||
|
||||
@@ -4370,7 +4402,7 @@ msgstr "crwdns159762:0crwdne159762:0"
|
||||
msgid "New Question"
|
||||
msgstr "crwdns150226:0crwdne150226:0"
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:404 frontend/src/pages/QuizForm.vue:412
|
||||
#: frontend/src/pages/QuizForm.vue:400 frontend/src/pages/QuizForm.vue:408
|
||||
msgid "New Quiz"
|
||||
msgstr "crwdns150228:0crwdne150228:0"
|
||||
|
||||
@@ -4950,7 +4982,7 @@ msgstr "crwdns150396:0crwdne150396:0"
|
||||
msgid "Pink"
|
||||
msgstr "crwdns157170:0crwdne157170:0"
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:34
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:35
|
||||
msgid "Please add <a href='{0}'>{1}</a> for <a href='{2}'>{3}</a> to send calendar invites for evaluations."
|
||||
msgstr "crwdns150400:0{0}crwdnd150400:0{1}crwdnd150400:0{2}crwdnd150400:0{3}crwdne150400:0"
|
||||
|
||||
@@ -4974,7 +5006,7 @@ msgstr "crwdns150406:0crwdne150406:0"
|
||||
msgid "Please complete the previous course to unlock this one."
|
||||
msgstr "crwdns158526:0crwdne158526:0"
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:197
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:196
|
||||
msgid "Please enable the zoom account to use this feature."
|
||||
msgstr "crwdns155266:0crwdne155266:0"
|
||||
|
||||
@@ -4990,8 +5022,16 @@ msgstr "crwdns150410:0{0}crwdne150410:0"
|
||||
msgid "Please enter a title."
|
||||
msgstr "crwdns151774:0crwdne151774:0"
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:29
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:80
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:51
|
||||
msgid "Please enter a valid Contact Us Email."
|
||||
msgstr "crwdns160258:0crwdne160258:0"
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:53
|
||||
msgid "Please enter a valid Contact Us URL."
|
||||
msgstr "crwdns160260:0crwdne160260:0"
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:32
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:107
|
||||
msgid "Please enter a valid URL."
|
||||
msgstr "crwdns150412:0crwdne150412:0"
|
||||
|
||||
@@ -5003,7 +5043,7 @@ msgstr "crwdns151776:0crwdne151776:0"
|
||||
msgid "Please enter a valid timestamp"
|
||||
msgstr "crwdns155294:0crwdne155294:0"
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:74
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:101
|
||||
msgid "Please enter the URL for assignment submission."
|
||||
msgstr "crwdns150414:0crwdne150414:0"
|
||||
|
||||
@@ -5031,7 +5071,7 @@ msgstr "crwdns150426:0crwdne150426:0"
|
||||
msgid "Please login to continue with payment."
|
||||
msgstr "crwdns150428:0crwdne150428:0"
|
||||
|
||||
#: lms/lms/utils.py:2012
|
||||
#: lms/lms/utils.py:2020
|
||||
msgid "Please login to enroll in the program."
|
||||
msgstr "crwdns158528:0crwdne158528:0"
|
||||
|
||||
@@ -5088,7 +5128,7 @@ msgstr "crwdns150432:0{0}crwdne150432:0"
|
||||
msgid "Please upload a SCORM package"
|
||||
msgstr "crwdns151646:0crwdne151646:0"
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:77
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:104
|
||||
msgid "Please upload the assignment file."
|
||||
msgstr "crwdns150434:0crwdne150434:0"
|
||||
|
||||
@@ -5134,7 +5174,7 @@ msgstr "crwdns150448:0crwdne150448:0"
|
||||
msgid "Postal Code"
|
||||
msgstr "crwdns150450:0crwdne150450:0"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:122
|
||||
#: frontend/src/components/AppSidebar.vue:125
|
||||
msgid "Powered by Learning"
|
||||
msgstr "crwdns154618:0crwdne154618:0"
|
||||
|
||||
@@ -5411,7 +5451,7 @@ msgstr "crwdns155756:0crwdne155756:0"
|
||||
#: frontend/src/components/Assignment.vue:20
|
||||
#: frontend/src/components/Modals/AssignmentForm.vue:32
|
||||
#: frontend/src/components/Modals/Question.vue:27
|
||||
#: frontend/src/pages/QuizForm.vue:343 frontend/src/pages/QuizSubmission.vue:56
|
||||
#: frontend/src/pages/QuizForm.vue:339 frontend/src/pages/QuizSubmission.vue:56
|
||||
#: lms/lms/doctype/course_lesson/course_lesson.json
|
||||
#: lms/lms/doctype/lms_assignment/lms_assignment.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -5431,11 +5471,11 @@ msgstr "crwdns150506:0crwdne150506:0"
|
||||
msgid "Question Name"
|
||||
msgstr "crwdns150508:0crwdne150508:0"
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:284
|
||||
#: frontend/src/components/Modals/Question.vue:285
|
||||
msgid "Question added successfully"
|
||||
msgstr "crwdns150510:0crwdne150510:0"
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:334
|
||||
#: frontend/src/components/Modals/Question.vue:335
|
||||
msgid "Question updated successfully"
|
||||
msgstr "crwdns150512:0crwdne150512:0"
|
||||
|
||||
@@ -5452,7 +5492,7 @@ msgstr "crwdns150516:0{0}crwdnd150516:0{1}crwdne150516:0"
|
||||
msgid "Questions"
|
||||
msgstr "crwdns150518:0crwdne150518:0"
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:385
|
||||
#: frontend/src/pages/QuizForm.vue:381
|
||||
msgid "Questions deleted successfully"
|
||||
msgstr "crwdns150520:0crwdne150520:0"
|
||||
|
||||
@@ -5502,7 +5542,7 @@ msgstr "crwdns150534:0crwdne150534:0"
|
||||
msgid "Quiz is not available to Guest users. Please login to continue."
|
||||
msgstr "crwdns150536:0crwdne150536:0"
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:310
|
||||
#: frontend/src/pages/QuizForm.vue:306
|
||||
msgid "Quiz updated successfully"
|
||||
msgstr "crwdns150538:0crwdne150538:0"
|
||||
|
||||
@@ -5511,8 +5551,8 @@ msgstr "crwdns150538:0crwdne150538:0"
|
||||
msgid "Quiz will appear at the bottom of the lesson."
|
||||
msgstr "crwdns150540:0crwdne150540:0"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:606
|
||||
#: frontend/src/pages/QuizForm.vue:396 frontend/src/pages/Quizzes.vue:275
|
||||
#: frontend/src/components/AppSidebar.vue:621
|
||||
#: frontend/src/pages/QuizForm.vue:392 frontend/src/pages/Quizzes.vue:275
|
||||
#: frontend/src/pages/Quizzes.vue:285 lms/www/lms.py:249
|
||||
msgid "Quizzes"
|
||||
msgstr "crwdns150542:0crwdne150542:0"
|
||||
@@ -5655,7 +5695,7 @@ msgstr "crwdns150582:0crwdne150582:0"
|
||||
msgid "Resume Video"
|
||||
msgstr "crwdns155300:0crwdne155300:0"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:142
|
||||
#: frontend/src/pages/Home/Home.vue:143
|
||||
msgid "Resume where you left off"
|
||||
msgstr "crwdns159368:0crwdne159368:0"
|
||||
|
||||
@@ -5696,7 +5736,7 @@ msgstr "crwdns150594:0crwdne150594:0"
|
||||
msgid "Role updated successfully"
|
||||
msgstr "crwdns155104:0crwdne155104:0"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:634
|
||||
#: frontend/src/components/AppSidebar.vue:649
|
||||
msgid "Roles"
|
||||
msgstr "crwdns154473:0crwdne154473:0"
|
||||
|
||||
@@ -5914,6 +5954,10 @@ msgstr "crwdns150640:0crwdne150640:0"
|
||||
msgid "Select an assignment"
|
||||
msgstr "crwdns152134:0crwdne152134:0"
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:33
|
||||
msgid "Send"
|
||||
msgstr "crwdns160432:0crwdne160432:0"
|
||||
|
||||
#: lms/lms/doctype/lms_batch_enrollment/lms_batch_enrollment.js:7
|
||||
msgid "Send Confirmation Email"
|
||||
msgstr "crwdns152450:0crwdne152450:0"
|
||||
@@ -5945,16 +5989,16 @@ msgstr "crwdns157176:0crwdne157176:0"
|
||||
msgid "Set your Password"
|
||||
msgstr "crwdns150646:0crwdne150646:0"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:577
|
||||
#: frontend/src/components/AppSidebar.vue:592
|
||||
msgid "Setting up"
|
||||
msgstr "crwdns154475:0crwdne154475:0"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:627
|
||||
#: frontend/src/components/AppSidebar.vue:642
|
||||
msgid "Setting up payment gateway"
|
||||
msgstr "crwdns154477:0crwdne154477:0"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:632
|
||||
#: frontend/src/components/Settings/Settings.vue:7
|
||||
#: frontend/src/components/AppSidebar.vue:647
|
||||
#: frontend/src/components/Settings/Settings.vue:9
|
||||
#: frontend/src/pages/BatchForm.vue:53 frontend/src/pages/CourseForm.vue:142
|
||||
#: frontend/src/pages/ProfileRoles.vue:4
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseSubmission.vue:19
|
||||
@@ -6252,7 +6296,7 @@ msgstr "crwdns150736:0crwdne150736:0"
|
||||
#. Option for the 'User Category' (Select) field in DocType 'User'
|
||||
#. Option for the 'Required Role' (Select) field in DocType 'Cohort Web Page'
|
||||
#. Option for the 'Member Type' (Select) field in DocType 'LMS Enrollment'
|
||||
#: frontend/src/pages/Home/Home.vue:147 frontend/src/pages/ProfileRoles.vue:38
|
||||
#: frontend/src/pages/Home/Home.vue:148 frontend/src/pages/ProfileRoles.vue:38
|
||||
#: lms/fixtures/custom_field.json
|
||||
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
||||
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
||||
@@ -6289,6 +6333,7 @@ msgstr "crwdns150752:0crwdne150752:0"
|
||||
msgid "Subgroup"
|
||||
msgstr "crwdns150754:0crwdne150754:0"
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:13
|
||||
#: frontend/src/components/Modals/AnnouncementModal.vue:20
|
||||
#: frontend/src/components/Modals/EmailTemplateModal.vue:31
|
||||
msgid "Subject"
|
||||
@@ -6524,7 +6569,7 @@ msgstr "crwdns155204:0crwdne155204:0"
|
||||
msgid "Thanks and Regards"
|
||||
msgstr "crwdns150794:0crwdne150794:0"
|
||||
|
||||
#: lms/lms/utils.py:1904
|
||||
#: lms/lms/utils.py:1912
|
||||
msgid "The batch is full. Please contact the Administrator."
|
||||
msgstr "crwdns152138:0crwdne152138:0"
|
||||
|
||||
@@ -6536,11 +6581,11 @@ msgstr "crwdns152517:0crwdne152517:0"
|
||||
msgid "The course {0} is now available on {1}."
|
||||
msgstr "crwdns150796:0{0}crwdnd150796:0{1}crwdne150796:0"
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:55
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:56
|
||||
msgid "The evaluator of this course is unavailable from {0} to {1}. Please select a date after {1}"
|
||||
msgstr "crwdns150798:0{0}crwdnd150798:0{1}crwdnd150798:0{1}crwdne150798:0"
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:73
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:74
|
||||
msgid "The slot is already booked by another participant."
|
||||
msgstr "crwdns150802:0crwdne150802:0"
|
||||
|
||||
@@ -6576,7 +6621,7 @@ msgstr "crwdns155114:0{0}crwdne155114:0"
|
||||
msgid "There are no {0} on this site."
|
||||
msgstr "crwdns150812:0{0}crwdne150812:0"
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:40
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:67
|
||||
msgid "There has been an update on your submission for assignment {0}"
|
||||
msgstr "crwdns152142:0{0}crwdne152142:0"
|
||||
|
||||
@@ -6613,7 +6658,7 @@ msgstr "crwdns152144:0crwdne152144:0"
|
||||
msgid "This course has:"
|
||||
msgstr "crwdns150820:0crwdne150820:0"
|
||||
|
||||
#: lms/lms/utils.py:1765
|
||||
#: lms/lms/utils.py:1773
|
||||
msgid "This course is free."
|
||||
msgstr "crwdns150822:0crwdne150822:0"
|
||||
|
||||
@@ -6649,8 +6694,8 @@ msgstr "crwdns158544:0{0}crwdne158544:0"
|
||||
msgid "This quiz consists of {0} questions."
|
||||
msgstr "crwdns150830:0{0}crwdne150830:0"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:75
|
||||
#: frontend/src/components/AppSidebar.vue:115
|
||||
#: frontend/src/components/AppSidebar.vue:78
|
||||
#: frontend/src/components/AppSidebar.vue:118
|
||||
msgid "This site is being updated. You will not be able to make any changes. Full access will be restored shortly."
|
||||
msgstr "crwdns154788:0crwdne154788:0"
|
||||
|
||||
@@ -6721,15 +6766,21 @@ msgstr "crwdns150844:0crwdne150844:0"
|
||||
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Batch'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Certificate Request'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Course'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Live Class'
|
||||
#: frontend/src/components/Modals/LiveClassModal.vue:59
|
||||
#: frontend/src/pages/BatchForm.vue:114
|
||||
#: frontend/src/pages/BatchForm.vue:114 frontend/src/pages/CourseForm.vue:288
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.json
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.json
|
||||
msgid "Timezone"
|
||||
msgstr "crwdns150846:0crwdne150846:0"
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:72
|
||||
msgid "Timezone is required for paid certificates."
|
||||
msgstr "crwdns160434:0crwdne160434:0"
|
||||
|
||||
#: lms/templates/emails/batch_confirmation.html:21
|
||||
#: lms/templates/emails/batch_start_reminder.html:16
|
||||
#: lms/templates/emails/live_class_reminder.html:16
|
||||
@@ -6799,7 +6850,7 @@ msgstr "crwdns150852:0crwdne150852:0"
|
||||
msgid "To Date"
|
||||
msgstr "crwdns150854:0crwdne150854:0"
|
||||
|
||||
#: lms/lms/utils.py:1776
|
||||
#: lms/lms/utils.py:1784
|
||||
msgid "To join this batch, please contact the Administrator."
|
||||
msgstr "crwdns150858:0crwdne150858:0"
|
||||
|
||||
@@ -7226,7 +7277,7 @@ msgstr "crwdns150976:0crwdne150976:0"
|
||||
msgid "Yellow"
|
||||
msgstr "crwdns157184:0crwdne157184:0"
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:95
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:96
|
||||
msgid "You already have an evaluation on {0} at {1} for the course {2}."
|
||||
msgstr "crwdns150978:0{0}crwdnd150978:0{1}crwdnd150978:0{2}crwdne150978:0"
|
||||
|
||||
@@ -7279,11 +7330,11 @@ msgstr "crwdns154790:0crwdne154790:0"
|
||||
msgid "You cannot change the roles in read-only mode."
|
||||
msgstr "crwdns154792:0crwdne154792:0"
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:111
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:112
|
||||
msgid "You cannot schedule evaluations after {0}."
|
||||
msgstr "crwdns150996:0{0}crwdne150996:0"
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:102
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:103
|
||||
msgid "You cannot schedule evaluations for past slots."
|
||||
msgstr "crwdns150998:0crwdne150998:0"
|
||||
|
||||
@@ -7340,19 +7391,23 @@ msgstr "crwdns152527:0{0}crwdne152527:0"
|
||||
msgid "You have got a score of {0} for the quiz {1}"
|
||||
msgstr "crwdns151852:0{0}crwdnd151852:0{1}crwdne151852:0"
|
||||
|
||||
#: frontend/src/pages/ProfileCertificates.vue:26
|
||||
msgid "You have not received any certificates yet."
|
||||
msgstr "crwdns160436:0crwdne160436:0"
|
||||
|
||||
#: lms/lms/widgets/NoPreviewModal.html:12
|
||||
msgid "You have opted to be notified for this course. You will receive an email when the course becomes available."
|
||||
msgstr "crwdns151018:0crwdne151018:0"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:102 frontend/src/pages/Home/Home.vue:125
|
||||
#: frontend/src/pages/Home/Home.vue:103 frontend/src/pages/Home/Home.vue:126
|
||||
msgid "You have {0} upcoming {1} and {2} {3} scheduled."
|
||||
msgstr "crwdns159386:0{0}crwdnd159386:0{1}crwdnd159386:0{2}crwdnd159386:0{3}crwdne159386:0"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:109 frontend/src/pages/Home/Home.vue:132
|
||||
#: frontend/src/pages/Home/Home.vue:110 frontend/src/pages/Home/Home.vue:133
|
||||
msgid "You have {0} upcoming {1}."
|
||||
msgstr "crwdns159388:0{0}crwdnd159388:0{1}crwdne159388:0"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:114 frontend/src/pages/Home/Home.vue:137
|
||||
#: frontend/src/pages/Home/Home.vue:115 frontend/src/pages/Home/Home.vue:138
|
||||
msgid "You have {0} {1} scheduled."
|
||||
msgstr "crwdns159390:0{0}crwdnd159390:0{1}crwdne159390:0"
|
||||
|
||||
@@ -7400,7 +7455,7 @@ msgstr "crwdns151034:0crwdne151034:0"
|
||||
msgid "Your Output"
|
||||
msgstr "crwdns155772:0crwdne155772:0"
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:309
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:308
|
||||
msgid "Your batch {0} is starting tomorrow"
|
||||
msgstr "crwdns154222:0{0}crwdne154222:0"
|
||||
|
||||
@@ -7408,7 +7463,7 @@ msgstr "crwdns154222:0{0}crwdne154222:0"
|
||||
msgid "Your calendar is set."
|
||||
msgstr "crwdns151036:0crwdne151036:0"
|
||||
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:88
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:95
|
||||
msgid "Your class on {0} is today"
|
||||
msgstr "crwdns154224:0{0}crwdne154224:0"
|
||||
|
||||
@@ -7421,7 +7476,7 @@ msgstr "crwdns155212:0{{ batch_name }}crwdne155212:0"
|
||||
msgid "Your evaluation for the course {0} has been scheduled on {1} at {2} {3}."
|
||||
msgstr "crwdns151038:0{0}crwdnd151038:0{1}crwdnd151038:0{2}crwdnd151038:0{3}crwdne151038:0"
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:121
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:136
|
||||
msgid "Your evaluation slot has been booked"
|
||||
msgstr "crwdns151040:0crwdne151040:0"
|
||||
|
||||
@@ -7474,8 +7529,8 @@ msgstr "crwdns152176:0crwdne152176:0"
|
||||
msgid "activity"
|
||||
msgstr "crwdns152178:0crwdne152178:0"
|
||||
|
||||
#: frontend/src/components/CourseInstructors.vue:22
|
||||
#: frontend/src/components/CourseInstructors.vue:41
|
||||
#: frontend/src/components/CourseInstructors.vue:24
|
||||
#: frontend/src/components/CourseInstructors.vue:45
|
||||
msgid "and"
|
||||
msgstr "crwdns157186:0crwdne157186:0"
|
||||
|
||||
@@ -7538,11 +7593,15 @@ msgstr "crwdns159396:0crwdne159396:0"
|
||||
msgid "days"
|
||||
msgstr "crwdns159398:0crwdne159398:0"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:100 frontend/src/pages/Home/Home.vue:123
|
||||
#: frontend/src/pages/CourseForm.vue:290
|
||||
msgid "e.g. IST, UTC, GMT..."
|
||||
msgstr "crwdns160438:0crwdne160438:0"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:101 frontend/src/pages/Home/Home.vue:124
|
||||
msgid "evaluation"
|
||||
msgstr "crwdns159400:0crwdne159400:0"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:100 frontend/src/pages/Home/Home.vue:123
|
||||
#: frontend/src/pages/Home/Home.vue:101 frontend/src/pages/Home/Home.vue:124
|
||||
msgid "evaluations"
|
||||
msgstr "crwdns159402:0crwdne159402:0"
|
||||
|
||||
@@ -7562,11 +7621,11 @@ msgstr "crwdns151062:0crwdne151062:0"
|
||||
msgid "lessons"
|
||||
msgstr "crwdns158550:0crwdne158550:0"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:98 frontend/src/pages/Home/Home.vue:122
|
||||
#: frontend/src/pages/Home/Home.vue:99 frontend/src/pages/Home/Home.vue:123
|
||||
msgid "live class"
|
||||
msgstr "crwdns159404:0crwdne159404:0"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:98 frontend/src/pages/Home/Home.vue:122
|
||||
#: frontend/src/pages/Home/Home.vue:99 frontend/src/pages/Home/Home.vue:123
|
||||
msgid "live classes"
|
||||
msgstr "crwdns159406:0crwdne159406:0"
|
||||
|
||||
@@ -7584,11 +7643,11 @@ msgstr "crwdns151800:0crwdne151800:0"
|
||||
msgid "minutes"
|
||||
msgstr "crwdns155280:0crwdne155280:0"
|
||||
|
||||
#: frontend/src/components/CourseInstructors.vue:41
|
||||
#: frontend/src/components/CourseInstructors.vue:45
|
||||
msgid "others"
|
||||
msgstr "crwdns157188:0crwdne157188:0"
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:344
|
||||
#: frontend/src/pages/QuizForm.vue:340
|
||||
msgid "question_detail"
|
||||
msgstr "crwdns151070:0crwdne151070:0"
|
||||
|
||||
|
||||
297
lms/locale/es.po
297
lms/locale/es.po
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: frappe\n"
|
||||
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
||||
"POT-Creation-Date: 2025-10-03 16:04+0000\n"
|
||||
"PO-Revision-Date: 2025-10-06 10:50\n"
|
||||
"POT-Creation-Date: 2025-10-31 16:04+0000\n"
|
||||
"PO-Revision-Date: 2025-11-02 19:07\n"
|
||||
"Last-Translator: jannat@frappe.io\n"
|
||||
"Language-Team: Spanish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -196,7 +196,7 @@ msgstr "Añadir una lección"
|
||||
msgid "Add a Student"
|
||||
msgstr "Añadir a un estudiante"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:585
|
||||
#: frontend/src/components/AppSidebar.vue:600
|
||||
msgid "Add a chapter"
|
||||
msgstr "Añadir un capítulo"
|
||||
|
||||
@@ -208,7 +208,7 @@ msgstr "Añadir un curso"
|
||||
msgid "Add a keyword and then press enter"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:586
|
||||
#: frontend/src/components/AppSidebar.vue:601
|
||||
msgid "Add a lesson"
|
||||
msgstr "Añadir una lección"
|
||||
|
||||
@@ -216,12 +216,12 @@ msgstr "Añadir una lección"
|
||||
msgid "Add a new member"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:166
|
||||
#: frontend/src/components/Modals/Question.vue:167
|
||||
#: frontend/src/pages/QuizForm.vue:200
|
||||
msgid "Add a new question"
|
||||
msgstr "Añadir una nueva pregunta"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:600
|
||||
#: frontend/src/components/AppSidebar.vue:615
|
||||
msgid "Add a program"
|
||||
msgstr ""
|
||||
|
||||
@@ -245,7 +245,7 @@ msgstr ""
|
||||
msgid "Add at least one possible answer for this question: {0}"
|
||||
msgstr "Añadir al menos una respuesta posible para esta pregunta: {0}"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:549
|
||||
#: frontend/src/components/AppSidebar.vue:564
|
||||
msgid "Add courses to your batch"
|
||||
msgstr ""
|
||||
|
||||
@@ -253,7 +253,7 @@ msgstr ""
|
||||
msgid "Add quiz to this video"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:528
|
||||
#: frontend/src/components/AppSidebar.vue:543
|
||||
msgid "Add students to your batch"
|
||||
msgstr ""
|
||||
|
||||
@@ -269,11 +269,11 @@ msgstr "Agregar página web a la barra lateral"
|
||||
msgid "Add your assignment as {0}"
|
||||
msgstr "Añadir su tarea como {0}"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:461
|
||||
#: frontend/src/components/AppSidebar.vue:476
|
||||
msgid "Add your first chapter"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:477
|
||||
#: frontend/src/components/AppSidebar.vue:492
|
||||
msgid "Add your first lesson"
|
||||
msgstr ""
|
||||
|
||||
@@ -378,11 +378,11 @@ msgstr "Importe (USD)"
|
||||
msgid "Amount and currency are required for paid batches."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:76
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:79
|
||||
msgid "Amount and currency are required for paid certificates."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:73
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:76
|
||||
msgid "Amount and currency are required for paid courses."
|
||||
msgstr ""
|
||||
|
||||
@@ -508,7 +508,7 @@ msgid "Assessment {0} has already been added to this batch."
|
||||
msgstr "La evaluación {0} ya se ha agregado a este lote."
|
||||
|
||||
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
||||
#: frontend/src/components/AppSidebar.vue:603
|
||||
#: frontend/src/components/AppSidebar.vue:618
|
||||
#: frontend/src/components/Assessments.vue:5
|
||||
#: frontend/src/components/BatchStudents.vue:32
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
@@ -573,11 +573,11 @@ msgstr "Título de la tarea"
|
||||
msgid "Assignment created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:24
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:27
|
||||
msgid "Assignment for Lesson {0} by {1} already exists."
|
||||
msgstr "Ya existe una asignación para la lección {0} por {1}."
|
||||
|
||||
#: frontend/src/components/Assignment.vue:359
|
||||
#: frontend/src/components/Assignment.vue:362
|
||||
msgid "Assignment submitted successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -590,7 +590,7 @@ msgstr ""
|
||||
msgid "Assignment will appear at the bottom of the lesson."
|
||||
msgstr "La tarea aparecerá al final de la lección."
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:607
|
||||
#: frontend/src/components/AppSidebar.vue:622
|
||||
#: frontend/src/components/Settings/Badges.vue:163
|
||||
#: frontend/src/pages/Assignments.vue:208 lms/www/lms.py:271
|
||||
msgid "Assignments"
|
||||
@@ -1017,7 +1017,7 @@ msgstr ""
|
||||
#. Enrollment'
|
||||
#. Label of a Card Break in the LMS Workspace
|
||||
#. Label of a Link in the LMS Workspace
|
||||
#: frontend/src/components/AppSidebar.vue:611
|
||||
#: frontend/src/components/AppSidebar.vue:626
|
||||
#: frontend/src/components/Modals/Event.vue:381
|
||||
#: frontend/src/pages/BatchForm.vue:69 frontend/src/pages/Batches.vue:58
|
||||
#: frontend/src/pages/CourseCertification.vue:10
|
||||
@@ -1040,6 +1040,11 @@ msgstr "Detalles de certificación"
|
||||
msgid "Certification Name"
|
||||
msgstr "Nombre de la certificación"
|
||||
|
||||
#. Label of the certifications (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Certifications"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/BatchStudents.vue:17
|
||||
msgid "Certified"
|
||||
msgstr ""
|
||||
@@ -1052,8 +1057,7 @@ msgstr ""
|
||||
msgid "Certified Members"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the certified_participants (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:300
|
||||
#: lms/www/lms.py:300
|
||||
msgid "Certified Participants"
|
||||
msgstr "Participantes certificados"
|
||||
|
||||
@@ -1061,7 +1065,7 @@ msgstr "Participantes certificados"
|
||||
msgid "Change"
|
||||
msgstr "Cambio"
|
||||
|
||||
#: frontend/src/components/Assignment.vue:345
|
||||
#: frontend/src/components/Assignment.vue:348
|
||||
msgid "Changes saved successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -1272,7 +1276,7 @@ msgstr "Página web de Cohorte"
|
||||
msgid "Collaboration Preference"
|
||||
msgstr "Preferencia de colaboración"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:142
|
||||
#: frontend/src/components/AppSidebar.vue:145
|
||||
msgid "Collapse"
|
||||
msgstr "Colapso"
|
||||
|
||||
@@ -1291,7 +1295,7 @@ msgstr "Nombre de la academia"
|
||||
msgid "Color"
|
||||
msgstr "Color"
|
||||
|
||||
#: frontend/src/pages/BatchForm.vue:306 frontend/src/pages/CourseForm.vue:300
|
||||
#: frontend/src/pages/BatchForm.vue:306 frontend/src/pages/CourseForm.vue:312
|
||||
msgid "Comma separated keywords for SEO"
|
||||
msgstr ""
|
||||
|
||||
@@ -1301,7 +1305,7 @@ msgstr ""
|
||||
#. Label of the comments (Text Editor) field in DocType 'LMS Assignment
|
||||
#. Submission'
|
||||
#. Label of the comments (Small Text) field in DocType 'LMS Mentor Request'
|
||||
#: frontend/src/components/Assignment.vue:167
|
||||
#: frontend/src/components/Assignment.vue:170
|
||||
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
||||
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -1309,7 +1313,7 @@ msgstr ""
|
||||
msgid "Comments"
|
||||
msgstr "Comentarios"
|
||||
|
||||
#: frontend/src/components/Assignment.vue:145
|
||||
#: frontend/src/components/Assignment.vue:148
|
||||
msgid "Comments by Evaluator"
|
||||
msgstr ""
|
||||
|
||||
@@ -1464,6 +1468,22 @@ msgstr "Plantilla de correo electrónico de confirmación"
|
||||
msgid "Congratulations on getting certified!"
|
||||
msgstr "¡Felicidades por obtener la certificación!"
|
||||
|
||||
#. Label of the contact_us_tab (Tab Break) field in DocType 'LMS Settings'
|
||||
#: frontend/src/components/ContactUsEmail.vue:5
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us"
|
||||
msgstr "Contáctanos"
|
||||
|
||||
#. Label of the contact_us_email (Data) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us Email"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the contact_us_url (Data) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us URL"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/CourseCardOverlay.vue:63
|
||||
#: frontend/src/pages/Lesson.vue:97
|
||||
msgid "Contact the Administrator to enroll for this course."
|
||||
@@ -1677,7 +1697,7 @@ msgstr "Lista de Cursos"
|
||||
msgid "Course Name"
|
||||
msgstr "Nombre del Curso"
|
||||
|
||||
#: frontend/src/pages/CourseDetail.vue:78 frontend/src/pages/CourseForm.vue:310
|
||||
#: frontend/src/pages/CourseDetail.vue:78 frontend/src/pages/CourseForm.vue:322
|
||||
msgid "Course Outline"
|
||||
msgstr ""
|
||||
|
||||
@@ -1714,15 +1734,15 @@ msgstr "Título del curso"
|
||||
msgid "Course added to program successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:547
|
||||
#: frontend/src/pages/CourseForm.vue:559
|
||||
msgid "Course created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:584
|
||||
#: frontend/src/pages/CourseForm.vue:596
|
||||
msgid "Course deleted successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:567
|
||||
#: frontend/src/pages/CourseForm.vue:579
|
||||
msgid "Course updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -1815,15 +1835,15 @@ msgstr "Crear una clase en vivo"
|
||||
msgid "Create a Quiz"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:593
|
||||
#: frontend/src/components/AppSidebar.vue:608
|
||||
msgid "Create a batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:584
|
||||
#: frontend/src/components/AppSidebar.vue:599
|
||||
msgid "Create a course"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:594
|
||||
#: frontend/src/components/AppSidebar.vue:609
|
||||
msgid "Create a live class"
|
||||
msgstr ""
|
||||
|
||||
@@ -1835,15 +1855,15 @@ msgstr ""
|
||||
msgid "Create an Assignment"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:518
|
||||
#: frontend/src/components/AppSidebar.vue:533
|
||||
msgid "Create your first batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:449
|
||||
#: frontend/src/components/AppSidebar.vue:464
|
||||
msgid "Create your first course"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:496
|
||||
#: frontend/src/components/AppSidebar.vue:511
|
||||
msgid "Create your first quiz"
|
||||
msgstr ""
|
||||
|
||||
@@ -1851,11 +1871,11 @@ msgstr ""
|
||||
msgid "Created"
|
||||
msgstr "Creado"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:590
|
||||
#: frontend/src/components/AppSidebar.vue:605
|
||||
msgid "Creating a batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:581
|
||||
#: frontend/src/components/AppSidebar.vue:596
|
||||
msgid "Creating a course"
|
||||
msgstr ""
|
||||
|
||||
@@ -1863,7 +1883,7 @@ msgstr ""
|
||||
#. Label of the currency (Link) field in DocType 'LMS Course'
|
||||
#. Label of the currency (Link) field in DocType 'LMS Payment'
|
||||
#: frontend/src/components/Settings/TransactionDetails.vue:64
|
||||
#: frontend/src/pages/BatchForm.vue:285 frontend/src/pages/CourseForm.vue:279
|
||||
#: frontend/src/pages/BatchForm.vue:285 frontend/src/pages/CourseForm.vue:282
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
#: lms/lms/doctype/lms_payment/lms_payment.json
|
||||
@@ -1879,7 +1899,7 @@ msgstr "Lección actual"
|
||||
msgid "Current Streak"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:617
|
||||
#: frontend/src/components/AppSidebar.vue:632
|
||||
msgid "Custom Certificate Templates"
|
||||
msgstr ""
|
||||
|
||||
@@ -1979,7 +1999,7 @@ msgstr "Tipo de Grado"
|
||||
#: frontend/src/components/CourseOutline.vue:360
|
||||
#: frontend/src/components/DiscussionReplies.vue:41
|
||||
#: frontend/src/components/Settings/Badges.vue:171
|
||||
#: frontend/src/pages/BatchForm.vue:565 frontend/src/pages/CourseForm.vue:597
|
||||
#: frontend/src/pages/BatchForm.vue:565 frontend/src/pages/CourseForm.vue:609
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseForm.vue:67
|
||||
#: frontend/src/pages/Programs/ProgramForm.vue:231
|
||||
msgid "Delete"
|
||||
@@ -1989,7 +2009,7 @@ msgstr "Eliminar"
|
||||
msgid "Delete Chapter"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:591
|
||||
#: frontend/src/pages/CourseForm.vue:603
|
||||
msgid "Delete Course"
|
||||
msgstr ""
|
||||
|
||||
@@ -2001,7 +2021,7 @@ msgstr ""
|
||||
msgid "Delete this lesson?"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:592
|
||||
#: frontend/src/pages/CourseForm.vue:604
|
||||
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
||||
msgstr ""
|
||||
|
||||
@@ -2251,6 +2271,10 @@ msgstr "Plantillas de correo"
|
||||
msgid "Email Templates deleted successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:57
|
||||
msgid "Email sent successfully"
|
||||
msgstr "Correo electrónico enviado correctamente"
|
||||
|
||||
#. Label of the show_emails (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Emails"
|
||||
@@ -2266,7 +2290,7 @@ msgstr "Empleado"
|
||||
msgid "Enable"
|
||||
msgstr "Habilitar"
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:21
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:22
|
||||
msgid "Enable Google API in Google Settings to send calendar invites for evaluations."
|
||||
msgstr "Habilite la API de Google en la configuración de Google para enviar invitaciones de calendario para evaluaciones."
|
||||
|
||||
@@ -2365,7 +2389,7 @@ msgstr ""
|
||||
msgid "Enrollment Count"
|
||||
msgstr "Recuento de inscripciones"
|
||||
|
||||
#: lms/lms/utils.py:1880
|
||||
#: lms/lms/utils.py:1888
|
||||
msgid "Enrollment Failed, {0}"
|
||||
msgstr ""
|
||||
|
||||
@@ -2382,7 +2406,7 @@ msgstr ""
|
||||
msgid "Enrollments"
|
||||
msgstr "Inscripciones"
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:26
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:27
|
||||
msgid "Enter Client Id and Client Secret in Google Settings to send calendar invites for evaluations."
|
||||
msgstr "Ingrese el ID del cliente y el secreto del cliente en la configuración de Google para enviar invitaciones al calendario para evaluaciones."
|
||||
|
||||
@@ -2402,7 +2426,7 @@ msgstr ""
|
||||
msgid "Error creating email template"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:191
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:190
|
||||
msgid "Error creating live class. Please try again. {0}"
|
||||
msgstr ""
|
||||
|
||||
@@ -2467,7 +2491,7 @@ msgstr "La evaluación se guardó correctamente"
|
||||
#. Label of the evaluator (Link) field in DocType 'LMS Course'
|
||||
#: frontend/src/components/Modals/BatchCourseModal.vue:37
|
||||
#: frontend/src/components/Modals/BulkCertificates.vue:22
|
||||
#: frontend/src/pages/CourseForm.vue:268 frontend/src/pages/ProfileRoles.vue:32
|
||||
#: frontend/src/pages/CourseForm.vue:269 frontend/src/pages/ProfileRoles.vue:32
|
||||
#: lms/lms/doctype/batch_course/batch_course.json
|
||||
#: lms/lms/doctype/course_evaluator/course_evaluator.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -2555,7 +2579,7 @@ msgstr "Entregas de ejercicios"
|
||||
msgid "Exercise Title"
|
||||
msgstr "Título del ejercicio"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:142
|
||||
#: frontend/src/components/AppSidebar.vue:145
|
||||
msgid "Expand"
|
||||
msgstr "Expandir"
|
||||
|
||||
@@ -2625,10 +2649,14 @@ msgstr ""
|
||||
msgid "Failed to enroll in program: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:137
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:144
|
||||
msgid "Failed to fetch attendance data from Zoom for class {0}: {1}"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:63
|
||||
msgid "Failed to send email"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseSubmission.vue:358
|
||||
msgid "Failed to submit. Please try again. {0}"
|
||||
msgstr ""
|
||||
@@ -2814,7 +2842,7 @@ msgstr "Obtener certificado"
|
||||
|
||||
#: frontend/src/components/CertificationLinks.vue:34
|
||||
#: frontend/src/components/CertificationLinks.vue:50
|
||||
#: frontend/src/components/CourseCard.vue:125
|
||||
#: frontend/src/components/CourseCard.vue:126
|
||||
#: frontend/src/pages/CertifiedParticipants.vue:11
|
||||
msgid "Get Certified"
|
||||
msgstr ""
|
||||
@@ -2843,7 +2871,7 @@ msgid "Google Meet Link"
|
||||
msgstr "Enlace Google Meet"
|
||||
|
||||
#. Label of the grade (Data) field in DocType 'Education Detail'
|
||||
#: frontend/src/components/Assignment.vue:161
|
||||
#: frontend/src/components/Assignment.vue:164
|
||||
#: lms/lms/doctype/education_detail/education_detail.json
|
||||
msgid "Grade"
|
||||
msgstr "Calificación"
|
||||
@@ -2858,7 +2886,7 @@ msgstr "Calificar asignación"
|
||||
msgid "Grade Type"
|
||||
msgstr "Tipo de grado"
|
||||
|
||||
#: frontend/src/components/Assignment.vue:156
|
||||
#: frontend/src/components/Assignment.vue:159
|
||||
msgid "Grading"
|
||||
msgstr ""
|
||||
|
||||
@@ -2898,7 +2926,7 @@ msgstr "Titular"
|
||||
msgid "Hello"
|
||||
msgstr "Hola"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:128
|
||||
#: frontend/src/components/AppSidebar.vue:131
|
||||
msgid "Help"
|
||||
msgstr "Ayuda"
|
||||
|
||||
@@ -2963,7 +2991,7 @@ msgstr ""
|
||||
msgid "Hints"
|
||||
msgstr "Consejos"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:5 frontend/src/pages/Home/Home.vue:153
|
||||
#: frontend/src/pages/Home/Home.vue:5 frontend/src/pages/Home/Home.vue:154
|
||||
msgid "Home"
|
||||
msgstr "Inicio"
|
||||
|
||||
@@ -2995,7 +3023,7 @@ msgstr "Estoy buscando un trabajo"
|
||||
msgid "I am unavailable"
|
||||
msgstr "No estoy disponible"
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:338
|
||||
#: frontend/src/pages/QuizForm.vue:334
|
||||
msgid "ID"
|
||||
msgstr "Identificador"
|
||||
|
||||
@@ -3155,7 +3183,7 @@ msgstr "Nombre de Institución"
|
||||
|
||||
#. Label of the instructor (Link) field in DocType 'Cohort'
|
||||
#. Label of the instructor (Link) field in DocType 'Course Instructor'
|
||||
#: frontend/src/pages/Home/Home.vue:148 lms/lms/doctype/cohort/cohort.json
|
||||
#: frontend/src/pages/Home/Home.vue:149 lms/lms/doctype/cohort/cohort.json
|
||||
#: lms/lms/doctype/course_instructor/course_instructor.json
|
||||
msgid "Instructor"
|
||||
msgstr "Instructor"
|
||||
@@ -3191,8 +3219,8 @@ msgstr "Comentarios del instructor"
|
||||
msgid "Interest"
|
||||
msgstr "Interesar"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:573
|
||||
#: frontend/src/components/AppSidebar.vue:576
|
||||
#: frontend/src/components/AppSidebar.vue:588
|
||||
#: frontend/src/components/AppSidebar.vue:591
|
||||
msgid "Introduction"
|
||||
msgstr "Introducción"
|
||||
|
||||
@@ -3214,7 +3242,7 @@ msgstr "Código de Invitación"
|
||||
msgid "Invite Only"
|
||||
msgstr "Solo por invitación"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:507
|
||||
#: frontend/src/components/AppSidebar.vue:522
|
||||
msgid "Invite your team and students"
|
||||
msgstr ""
|
||||
|
||||
@@ -3251,7 +3279,7 @@ msgstr ""
|
||||
msgid "Issue Date"
|
||||
msgstr "Fecha de emisión"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:614
|
||||
#: frontend/src/components/AppSidebar.vue:629
|
||||
msgid "Issue a Certificate"
|
||||
msgstr ""
|
||||
|
||||
@@ -3264,7 +3292,7 @@ msgid "Issued On"
|
||||
msgstr "Emitido el"
|
||||
|
||||
#: frontend/src/pages/ProfileAbout.vue:73
|
||||
#: frontend/src/pages/ProfileCertificates.vue:17
|
||||
#: frontend/src/pages/ProfileCertificates.vue:20
|
||||
#: lms/templates/certificates_section.html:11
|
||||
msgid "Issued on"
|
||||
msgstr "Emitido el"
|
||||
@@ -3679,7 +3707,7 @@ msgstr ""
|
||||
msgid "Learning Consistency"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:598
|
||||
#: frontend/src/components/AppSidebar.vue:613
|
||||
msgid "Learning Paths"
|
||||
msgstr ""
|
||||
|
||||
@@ -3728,7 +3756,7 @@ msgstr "Referencia de la lección"
|
||||
msgid "Lesson Title"
|
||||
msgstr "Título de la lección"
|
||||
|
||||
#: frontend/src/pages/LessonForm.vue:426
|
||||
#: frontend/src/pages/LessonForm.vue:425
|
||||
msgid "Lesson created successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -3740,7 +3768,7 @@ msgstr ""
|
||||
msgid "Lesson moved successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/LessonForm.vue:450
|
||||
#: frontend/src/pages/LessonForm.vue:449
|
||||
msgid "Lesson updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -3889,7 +3917,7 @@ msgstr ""
|
||||
msgid "Manage Batch"
|
||||
msgstr "Administrar grupo"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:119
|
||||
#: frontend/src/pages/Home/Home.vue:120
|
||||
msgid "Manage your courses and batches at a glance"
|
||||
msgstr ""
|
||||
|
||||
@@ -3920,7 +3948,7 @@ msgstr "Marcar todo como leídas"
|
||||
#. Label of the marks (Int) field in DocType 'LMS Quiz Result'
|
||||
#: frontend/src/components/Modals/Question.vue:40
|
||||
#: frontend/src/components/Modals/Question.vue:106
|
||||
#: frontend/src/components/Quiz.vue:120 frontend/src/pages/QuizForm.vue:348
|
||||
#: frontend/src/components/Quiz.vue:120 frontend/src/pages/QuizForm.vue:344
|
||||
#: frontend/src/pages/QuizSubmission.vue:64
|
||||
#: lms/lms/doctype/lms_quiz_question/lms_quiz_question.json
|
||||
#: lms/lms/doctype/lms_quiz_result/lms_quiz_result.json
|
||||
@@ -4199,8 +4227,12 @@ msgstr "Plantilla de creación de solicitud de mentor"
|
||||
msgid "Mentor Request Status Update Template"
|
||||
msgstr "Plantilla de actualización del estado de la solicitud de mentor"
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:19
|
||||
msgid "Message"
|
||||
msgstr "Mensaje"
|
||||
|
||||
#. Label of the meta_description (Small Text) field in DocType 'LMS Settings'
|
||||
#: frontend/src/pages/BatchForm.vue:297 frontend/src/pages/CourseForm.vue:291
|
||||
#: frontend/src/pages/BatchForm.vue:297 frontend/src/pages/CourseForm.vue:303
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Meta Description"
|
||||
msgstr "Metadescripción"
|
||||
@@ -4214,12 +4246,12 @@ msgid "Meta Image"
|
||||
msgstr "Meta imagen"
|
||||
|
||||
#. Label of the meta_keywords (Small Text) field in DocType 'LMS Settings'
|
||||
#: frontend/src/pages/BatchForm.vue:303 frontend/src/pages/CourseForm.vue:297
|
||||
#: frontend/src/pages/BatchForm.vue:303 frontend/src/pages/CourseForm.vue:309
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Meta Keywords"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/BatchForm.vue:292 frontend/src/pages/CourseForm.vue:286
|
||||
#: frontend/src/pages/BatchForm.vue:292 frontend/src/pages/CourseForm.vue:298
|
||||
msgid "Meta Tags"
|
||||
msgstr "Metaetiquetas"
|
||||
|
||||
@@ -4290,7 +4322,7 @@ msgstr "Módulo incorrecto."
|
||||
msgid "Monday"
|
||||
msgstr "Lunes"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:622
|
||||
#: frontend/src/components/AppSidebar.vue:637
|
||||
msgid "Monetization"
|
||||
msgstr ""
|
||||
|
||||
@@ -4346,7 +4378,7 @@ msgstr "Nuevo"
|
||||
msgid "New Batch"
|
||||
msgstr "Nuevo lote"
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:678 lms/www/lms.py:93
|
||||
#: frontend/src/pages/CourseForm.vue:690 lms/www/lms.py:93
|
||||
msgid "New Course"
|
||||
msgstr "Nuevo curso"
|
||||
|
||||
@@ -4370,7 +4402,7 @@ msgstr ""
|
||||
msgid "New Question"
|
||||
msgstr "Nueva pregunta"
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:404 frontend/src/pages/QuizForm.vue:412
|
||||
#: frontend/src/pages/QuizForm.vue:400 frontend/src/pages/QuizForm.vue:408
|
||||
msgid "New Quiz"
|
||||
msgstr "Nuevo cuestionario"
|
||||
|
||||
@@ -4950,7 +4982,7 @@ msgstr "Número de teléfono"
|
||||
msgid "Pink"
|
||||
msgstr "Rosa"
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:34
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:35
|
||||
msgid "Please add <a href='{0}'>{1}</a> for <a href='{2}'>{3}</a> to send calendar invites for evaluations."
|
||||
msgstr "Agregue <a href='{0}'>{1}</a> para <a href='{2}'>{3}</a> para enviar invitaciones de calendario para evaluaciones."
|
||||
|
||||
@@ -4974,7 +5006,7 @@ msgstr "Haga clic en el siguiente botón para establecer su nueva contraseña"
|
||||
msgid "Please complete the previous course to unlock this one."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:197
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:196
|
||||
msgid "Please enable the zoom account to use this feature."
|
||||
msgstr ""
|
||||
|
||||
@@ -4990,8 +5022,16 @@ msgstr "Asegúrese de completar todas las preguntas en {0} minutos."
|
||||
msgid "Please enter a title."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:29
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:80
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:51
|
||||
msgid "Please enter a valid Contact Us Email."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:53
|
||||
msgid "Please enter a valid Contact Us URL."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:32
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:107
|
||||
msgid "Please enter a valid URL."
|
||||
msgstr "Introduce una URL válida."
|
||||
|
||||
@@ -5003,7 +5043,7 @@ msgstr ""
|
||||
msgid "Please enter a valid timestamp"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:74
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:101
|
||||
msgid "Please enter the URL for assignment submission."
|
||||
msgstr "Por favor, introduzca la URL para el envío de la tarea."
|
||||
|
||||
@@ -5031,7 +5071,7 @@ msgstr "Por favor inicie sesión para acceder a esta página."
|
||||
msgid "Please login to continue with payment."
|
||||
msgstr "Por favor inicie sesión para continuar con el pago."
|
||||
|
||||
#: lms/lms/utils.py:2012
|
||||
#: lms/lms/utils.py:2020
|
||||
msgid "Please login to enroll in the program."
|
||||
msgstr ""
|
||||
|
||||
@@ -5088,7 +5128,7 @@ msgstr "Tome las medidas adecuadas en {0}"
|
||||
msgid "Please upload a SCORM package"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:77
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:104
|
||||
msgid "Please upload the assignment file."
|
||||
msgstr "Por favor, suba el archivo de la tarea."
|
||||
|
||||
@@ -5134,7 +5174,7 @@ msgstr "Publicar"
|
||||
msgid "Postal Code"
|
||||
msgstr "Codigo postal"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:122
|
||||
#: frontend/src/components/AppSidebar.vue:125
|
||||
msgid "Powered by Learning"
|
||||
msgstr ""
|
||||
|
||||
@@ -5411,7 +5451,7 @@ msgstr "Python"
|
||||
#: frontend/src/components/Assignment.vue:20
|
||||
#: frontend/src/components/Modals/AssignmentForm.vue:32
|
||||
#: frontend/src/components/Modals/Question.vue:27
|
||||
#: frontend/src/pages/QuizForm.vue:343 frontend/src/pages/QuizSubmission.vue:56
|
||||
#: frontend/src/pages/QuizForm.vue:339 frontend/src/pages/QuizSubmission.vue:56
|
||||
#: lms/lms/doctype/course_lesson/course_lesson.json
|
||||
#: lms/lms/doctype/lms_assignment/lms_assignment.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -5431,11 +5471,11 @@ msgstr "Detalle de la pregunta"
|
||||
msgid "Question Name"
|
||||
msgstr "Nombre de la Pregunta"
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:284
|
||||
#: frontend/src/components/Modals/Question.vue:285
|
||||
msgid "Question added successfully"
|
||||
msgstr "Pregunta añadida correctamente"
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:334
|
||||
#: frontend/src/components/Modals/Question.vue:335
|
||||
msgid "Question updated successfully"
|
||||
msgstr "Pregunta actualizada correctamente"
|
||||
|
||||
@@ -5452,7 +5492,7 @@ msgstr "Pregunta {0} de {1}"
|
||||
msgid "Questions"
|
||||
msgstr "Preguntas"
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:385
|
||||
#: frontend/src/pages/QuizForm.vue:381
|
||||
msgid "Questions deleted successfully"
|
||||
msgstr "Preguntas eliminadas correctamente"
|
||||
|
||||
@@ -5502,7 +5542,7 @@ msgstr "Cuestionario creado correctamente"
|
||||
msgid "Quiz is not available to Guest users. Please login to continue."
|
||||
msgstr "El cuestionario no está disponible para usuarios invitados. Por favor inicie sesión para continuar."
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:310
|
||||
#: frontend/src/pages/QuizForm.vue:306
|
||||
msgid "Quiz updated successfully"
|
||||
msgstr "Cuestionario actualizado correctamente"
|
||||
|
||||
@@ -5511,8 +5551,8 @@ msgstr "Cuestionario actualizado correctamente"
|
||||
msgid "Quiz will appear at the bottom of the lesson."
|
||||
msgstr "El cuestionario aparecerá al final de la lección."
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:606
|
||||
#: frontend/src/pages/QuizForm.vue:396 frontend/src/pages/Quizzes.vue:275
|
||||
#: frontend/src/components/AppSidebar.vue:621
|
||||
#: frontend/src/pages/QuizForm.vue:392 frontend/src/pages/Quizzes.vue:275
|
||||
#: frontend/src/pages/Quizzes.vue:285 lms/www/lms.py:249
|
||||
msgid "Quizzes"
|
||||
msgstr "Cuestionarios"
|
||||
@@ -5655,7 +5695,7 @@ msgstr "Reanudar"
|
||||
msgid "Resume Video"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:142
|
||||
#: frontend/src/pages/Home/Home.vue:143
|
||||
msgid "Resume where you left off"
|
||||
msgstr ""
|
||||
|
||||
@@ -5696,7 +5736,7 @@ msgstr "Preferencia de rol"
|
||||
msgid "Role updated successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:634
|
||||
#: frontend/src/components/AppSidebar.vue:649
|
||||
msgid "Roles"
|
||||
msgstr "Roles"
|
||||
|
||||
@@ -5914,6 +5954,10 @@ msgstr "Selecciona un Espacio"
|
||||
msgid "Select an assignment"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:33
|
||||
msgid "Send"
|
||||
msgstr "Enviar"
|
||||
|
||||
#: lms/lms/doctype/lms_batch_enrollment/lms_batch_enrollment.js:7
|
||||
msgid "Send Confirmation Email"
|
||||
msgstr ""
|
||||
@@ -5945,16 +5989,16 @@ msgstr ""
|
||||
msgid "Set your Password"
|
||||
msgstr "Establecer Contraseña"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:577
|
||||
#: frontend/src/components/AppSidebar.vue:592
|
||||
msgid "Setting up"
|
||||
msgstr "Puesta en marcha"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:627
|
||||
#: frontend/src/components/AppSidebar.vue:642
|
||||
msgid "Setting up payment gateway"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:632
|
||||
#: frontend/src/components/Settings/Settings.vue:7
|
||||
#: frontend/src/components/AppSidebar.vue:647
|
||||
#: frontend/src/components/Settings/Settings.vue:9
|
||||
#: frontend/src/pages/BatchForm.vue:53 frontend/src/pages/CourseForm.vue:142
|
||||
#: frontend/src/pages/ProfileRoles.vue:4
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseSubmission.vue:19
|
||||
@@ -6252,7 +6296,7 @@ msgstr "Estado/Puntuación"
|
||||
#. Option for the 'User Category' (Select) field in DocType 'User'
|
||||
#. Option for the 'Required Role' (Select) field in DocType 'Cohort Web Page'
|
||||
#. Option for the 'Member Type' (Select) field in DocType 'LMS Enrollment'
|
||||
#: frontend/src/pages/Home/Home.vue:147 frontend/src/pages/ProfileRoles.vue:38
|
||||
#: frontend/src/pages/Home/Home.vue:148 frontend/src/pages/ProfileRoles.vue:38
|
||||
#: lms/fixtures/custom_field.json
|
||||
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
||||
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
||||
@@ -6289,6 +6333,7 @@ msgstr "Los estudiantes serán inscritos en un lote pago una vez que completen e
|
||||
msgid "Subgroup"
|
||||
msgstr "Subgrupo"
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:13
|
||||
#: frontend/src/components/Modals/AnnouncementModal.vue:20
|
||||
#: frontend/src/components/Modals/EmailTemplateModal.vue:31
|
||||
msgid "Subject"
|
||||
@@ -6524,7 +6569,7 @@ msgstr ""
|
||||
msgid "Thanks and Regards"
|
||||
msgstr "Gracias y saludos"
|
||||
|
||||
#: lms/lms/utils.py:1904
|
||||
#: lms/lms/utils.py:1912
|
||||
msgid "The batch is full. Please contact the Administrator."
|
||||
msgstr ""
|
||||
|
||||
@@ -6536,11 +6581,11 @@ msgstr ""
|
||||
msgid "The course {0} is now available on {1}."
|
||||
msgstr "El curso {0} ya está disponible en {1}."
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:55
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:56
|
||||
msgid "The evaluator of this course is unavailable from {0} to {1}. Please select a date after {1}"
|
||||
msgstr "El evaluador de este curso no está disponible desde el {0} hasta el {1}. Seleccione una fecha posterior al {1}"
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:73
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:74
|
||||
msgid "The slot is already booked by another participant."
|
||||
msgstr "La plaza ya está reservada por otro participante."
|
||||
|
||||
@@ -6576,7 +6621,7 @@ msgstr ""
|
||||
msgid "There are no {0} on this site."
|
||||
msgstr "No hay {0} en este sitio."
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:40
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:67
|
||||
msgid "There has been an update on your submission for assignment {0}"
|
||||
msgstr ""
|
||||
|
||||
@@ -6613,7 +6658,7 @@ msgstr ""
|
||||
msgid "This course has:"
|
||||
msgstr "Este curso tiene:"
|
||||
|
||||
#: lms/lms/utils.py:1765
|
||||
#: lms/lms/utils.py:1773
|
||||
msgid "This course is free."
|
||||
msgstr "Este curso es gratuito."
|
||||
|
||||
@@ -6649,8 +6694,8 @@ msgstr ""
|
||||
msgid "This quiz consists of {0} questions."
|
||||
msgstr "Este cuestionario consta de {0} preguntas."
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:75
|
||||
#: frontend/src/components/AppSidebar.vue:115
|
||||
#: frontend/src/components/AppSidebar.vue:78
|
||||
#: frontend/src/components/AppSidebar.vue:118
|
||||
msgid "This site is being updated. You will not be able to make any changes. Full access will be restored shortly."
|
||||
msgstr ""
|
||||
|
||||
@@ -6721,15 +6766,21 @@ msgstr "Plantilla de horario"
|
||||
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Batch'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Certificate Request'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Course'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Live Class'
|
||||
#: frontend/src/components/Modals/LiveClassModal.vue:59
|
||||
#: frontend/src/pages/BatchForm.vue:114
|
||||
#: frontend/src/pages/BatchForm.vue:114 frontend/src/pages/CourseForm.vue:288
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.json
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.json
|
||||
msgid "Timezone"
|
||||
msgstr "Zona Horaria"
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:72
|
||||
msgid "Timezone is required for paid certificates."
|
||||
msgstr ""
|
||||
|
||||
#: lms/templates/emails/batch_confirmation.html:21
|
||||
#: lms/templates/emails/batch_start_reminder.html:16
|
||||
#: lms/templates/emails/live_class_reminder.html:16
|
||||
@@ -6799,7 +6850,7 @@ msgstr "A"
|
||||
msgid "To Date"
|
||||
msgstr "Hasta la fecha"
|
||||
|
||||
#: lms/lms/utils.py:1776
|
||||
#: lms/lms/utils.py:1784
|
||||
msgid "To join this batch, please contact the Administrator."
|
||||
msgstr "Para unirse a este lote, comuníquese con el Administrador."
|
||||
|
||||
@@ -7226,7 +7277,7 @@ msgstr "Escriba su respuesta aquí"
|
||||
msgid "Yellow"
|
||||
msgstr "Amarillo"
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:95
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:96
|
||||
msgid "You already have an evaluation on {0} at {1} for the course {2}."
|
||||
msgstr "Ya tiene una evaluación en {0} en {1} para el curso {2}."
|
||||
|
||||
@@ -7279,11 +7330,11 @@ msgstr ""
|
||||
msgid "You cannot change the roles in read-only mode."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:111
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:112
|
||||
msgid "You cannot schedule evaluations after {0}."
|
||||
msgstr "No puede programar evaluaciones después de {0}."
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:102
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:103
|
||||
msgid "You cannot schedule evaluations for past slots."
|
||||
msgstr "No puede programar evaluaciones para espacios anteriores."
|
||||
|
||||
@@ -7340,19 +7391,23 @@ msgstr ""
|
||||
msgid "You have got a score of {0} for the quiz {1}"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/ProfileCertificates.vue:26
|
||||
msgid "You have not received any certificates yet."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/widgets/NoPreviewModal.html:12
|
||||
msgid "You have opted to be notified for this course. You will receive an email when the course becomes available."
|
||||
msgstr "Has optado por recibir notificaciones sobre este curso. Recibirás un correo electrónico cuando el curso esté disponible."
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:102 frontend/src/pages/Home/Home.vue:125
|
||||
#: frontend/src/pages/Home/Home.vue:103 frontend/src/pages/Home/Home.vue:126
|
||||
msgid "You have {0} upcoming {1} and {2} {3} scheduled."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:109 frontend/src/pages/Home/Home.vue:132
|
||||
#: frontend/src/pages/Home/Home.vue:110 frontend/src/pages/Home/Home.vue:133
|
||||
msgid "You have {0} upcoming {1}."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:114 frontend/src/pages/Home/Home.vue:137
|
||||
#: frontend/src/pages/Home/Home.vue:115 frontend/src/pages/Home/Home.vue:138
|
||||
msgid "You have {0} {1} scheduled."
|
||||
msgstr ""
|
||||
|
||||
@@ -7400,7 +7455,7 @@ msgstr "¡Su cuenta ha sido creada satisfactoriamente!"
|
||||
msgid "Your Output"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:309
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:308
|
||||
msgid "Your batch {0} is starting tomorrow"
|
||||
msgstr ""
|
||||
|
||||
@@ -7408,7 +7463,7 @@ msgstr ""
|
||||
msgid "Your calendar is set."
|
||||
msgstr "Su calendario está configurado."
|
||||
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:88
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:95
|
||||
msgid "Your class on {0} is today"
|
||||
msgstr ""
|
||||
|
||||
@@ -7421,7 +7476,7 @@ msgstr ""
|
||||
msgid "Your evaluation for the course {0} has been scheduled on {1} at {2} {3}."
|
||||
msgstr "Su evaluación para el curso {0} ha sido programada para el {1} a las {2} {3}."
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:121
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:136
|
||||
msgid "Your evaluation slot has been booked"
|
||||
msgstr "Su franja horaria de evaluación ha sido reservada"
|
||||
|
||||
@@ -7474,8 +7529,8 @@ msgstr "actividades"
|
||||
msgid "activity"
|
||||
msgstr "actividad"
|
||||
|
||||
#: frontend/src/components/CourseInstructors.vue:22
|
||||
#: frontend/src/components/CourseInstructors.vue:41
|
||||
#: frontend/src/components/CourseInstructors.vue:24
|
||||
#: frontend/src/components/CourseInstructors.vue:45
|
||||
msgid "and"
|
||||
msgstr "y"
|
||||
|
||||
@@ -7538,11 +7593,15 @@ msgstr ""
|
||||
msgid "days"
|
||||
msgstr "dias"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:100 frontend/src/pages/Home/Home.vue:123
|
||||
#: frontend/src/pages/CourseForm.vue:290
|
||||
msgid "e.g. IST, UTC, GMT..."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:101 frontend/src/pages/Home/Home.vue:124
|
||||
msgid "evaluation"
|
||||
msgstr "evaluación"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:100 frontend/src/pages/Home/Home.vue:123
|
||||
#: frontend/src/pages/Home/Home.vue:101 frontend/src/pages/Home/Home.vue:124
|
||||
msgid "evaluations"
|
||||
msgstr ""
|
||||
|
||||
@@ -7562,11 +7621,11 @@ msgstr "juan@example.com"
|
||||
msgid "lessons"
|
||||
msgstr "lecciones"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:98 frontend/src/pages/Home/Home.vue:122
|
||||
#: frontend/src/pages/Home/Home.vue:99 frontend/src/pages/Home/Home.vue:123
|
||||
msgid "live class"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:98 frontend/src/pages/Home/Home.vue:122
|
||||
#: frontend/src/pages/Home/Home.vue:99 frontend/src/pages/Home/Home.vue:123
|
||||
msgid "live classes"
|
||||
msgstr ""
|
||||
|
||||
@@ -7584,11 +7643,11 @@ msgstr "miembros"
|
||||
msgid "minutes"
|
||||
msgstr "minutos"
|
||||
|
||||
#: frontend/src/components/CourseInstructors.vue:41
|
||||
#: frontend/src/components/CourseInstructors.vue:45
|
||||
msgid "others"
|
||||
msgstr "otros"
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:344
|
||||
#: frontend/src/pages/QuizForm.vue:340
|
||||
msgid "question_detail"
|
||||
msgstr "pregunta_detalle"
|
||||
|
||||
|
||||
315
lms/locale/fa.po
315
lms/locale/fa.po
File diff suppressed because it is too large
Load Diff
297
lms/locale/fr.po
297
lms/locale/fr.po
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: frappe\n"
|
||||
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
||||
"POT-Creation-Date: 2025-10-03 16:04+0000\n"
|
||||
"PO-Revision-Date: 2025-10-07 11:33\n"
|
||||
"POT-Creation-Date: 2025-10-31 16:04+0000\n"
|
||||
"PO-Revision-Date: 2025-11-02 19:07\n"
|
||||
"Last-Translator: jannat@frappe.io\n"
|
||||
"Language-Team: French\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -196,7 +196,7 @@ msgstr "Ajouter une leçon"
|
||||
msgid "Add a Student"
|
||||
msgstr "Ajouter un élève"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:585
|
||||
#: frontend/src/components/AppSidebar.vue:600
|
||||
msgid "Add a chapter"
|
||||
msgstr ""
|
||||
|
||||
@@ -208,7 +208,7 @@ msgstr "Ajouter un cours"
|
||||
msgid "Add a keyword and then press enter"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:586
|
||||
#: frontend/src/components/AppSidebar.vue:601
|
||||
msgid "Add a lesson"
|
||||
msgstr ""
|
||||
|
||||
@@ -216,12 +216,12 @@ msgstr ""
|
||||
msgid "Add a new member"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:166
|
||||
#: frontend/src/components/Modals/Question.vue:167
|
||||
#: frontend/src/pages/QuizForm.vue:200
|
||||
msgid "Add a new question"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:600
|
||||
#: frontend/src/components/AppSidebar.vue:615
|
||||
msgid "Add a program"
|
||||
msgstr ""
|
||||
|
||||
@@ -245,7 +245,7 @@ msgstr ""
|
||||
msgid "Add at least one possible answer for this question: {0}"
|
||||
msgstr "Ajoutez au moins une réponse possible à cette question : {0}"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:549
|
||||
#: frontend/src/components/AppSidebar.vue:564
|
||||
msgid "Add courses to your batch"
|
||||
msgstr ""
|
||||
|
||||
@@ -253,7 +253,7 @@ msgstr ""
|
||||
msgid "Add quiz to this video"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:528
|
||||
#: frontend/src/components/AppSidebar.vue:543
|
||||
msgid "Add students to your batch"
|
||||
msgstr ""
|
||||
|
||||
@@ -269,11 +269,11 @@ msgstr "Ajouter une page Web à la barre latérale"
|
||||
msgid "Add your assignment as {0}"
|
||||
msgstr "Ajoutez votre devoir comme {0}"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:461
|
||||
#: frontend/src/components/AppSidebar.vue:476
|
||||
msgid "Add your first chapter"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:477
|
||||
#: frontend/src/components/AppSidebar.vue:492
|
||||
msgid "Add your first lesson"
|
||||
msgstr ""
|
||||
|
||||
@@ -378,11 +378,11 @@ msgstr "Montant (USD)"
|
||||
msgid "Amount and currency are required for paid batches."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:76
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:79
|
||||
msgid "Amount and currency are required for paid certificates."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:73
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:76
|
||||
msgid "Amount and currency are required for paid courses."
|
||||
msgstr ""
|
||||
|
||||
@@ -508,7 +508,7 @@ msgid "Assessment {0} has already been added to this batch."
|
||||
msgstr "L'évaluation {0} a déjà été ajoutée à ce lot."
|
||||
|
||||
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
||||
#: frontend/src/components/AppSidebar.vue:603
|
||||
#: frontend/src/components/AppSidebar.vue:618
|
||||
#: frontend/src/components/Assessments.vue:5
|
||||
#: frontend/src/components/BatchStudents.vue:32
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
@@ -573,11 +573,11 @@ msgstr "Titre du devoir"
|
||||
msgid "Assignment created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:24
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:27
|
||||
msgid "Assignment for Lesson {0} by {1} already exists."
|
||||
msgstr "Le devoir pour la leçon {0} de {1} existe déjà."
|
||||
|
||||
#: frontend/src/components/Assignment.vue:359
|
||||
#: frontend/src/components/Assignment.vue:362
|
||||
msgid "Assignment submitted successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -590,7 +590,7 @@ msgstr ""
|
||||
msgid "Assignment will appear at the bottom of the lesson."
|
||||
msgstr "Le devoir apparaîtra au bas de la leçon."
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:607
|
||||
#: frontend/src/components/AppSidebar.vue:622
|
||||
#: frontend/src/components/Settings/Badges.vue:163
|
||||
#: frontend/src/pages/Assignments.vue:208 lms/www/lms.py:271
|
||||
msgid "Assignments"
|
||||
@@ -1017,7 +1017,7 @@ msgstr ""
|
||||
#. Enrollment'
|
||||
#. Label of a Card Break in the LMS Workspace
|
||||
#. Label of a Link in the LMS Workspace
|
||||
#: frontend/src/components/AppSidebar.vue:611
|
||||
#: frontend/src/components/AppSidebar.vue:626
|
||||
#: frontend/src/components/Modals/Event.vue:381
|
||||
#: frontend/src/pages/BatchForm.vue:69 frontend/src/pages/Batches.vue:58
|
||||
#: frontend/src/pages/CourseCertification.vue:10
|
||||
@@ -1040,6 +1040,11 @@ msgstr ""
|
||||
msgid "Certification Name"
|
||||
msgstr "Nom de la certification"
|
||||
|
||||
#. Label of the certifications (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Certifications"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/BatchStudents.vue:17
|
||||
msgid "Certified"
|
||||
msgstr ""
|
||||
@@ -1052,8 +1057,7 @@ msgstr ""
|
||||
msgid "Certified Members"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the certified_participants (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:300
|
||||
#: lms/www/lms.py:300
|
||||
msgid "Certified Participants"
|
||||
msgstr "Participants certifiés"
|
||||
|
||||
@@ -1061,7 +1065,7 @@ msgstr "Participants certifiés"
|
||||
msgid "Change"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Assignment.vue:345
|
||||
#: frontend/src/components/Assignment.vue:348
|
||||
msgid "Changes saved successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -1272,7 +1276,7 @@ msgstr "Page Web de la cohorte"
|
||||
msgid "Collaboration Preference"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:142
|
||||
#: frontend/src/components/AppSidebar.vue:145
|
||||
msgid "Collapse"
|
||||
msgstr "Réduire"
|
||||
|
||||
@@ -1291,7 +1295,7 @@ msgstr ""
|
||||
msgid "Color"
|
||||
msgstr "Couleur"
|
||||
|
||||
#: frontend/src/pages/BatchForm.vue:306 frontend/src/pages/CourseForm.vue:300
|
||||
#: frontend/src/pages/BatchForm.vue:306 frontend/src/pages/CourseForm.vue:312
|
||||
msgid "Comma separated keywords for SEO"
|
||||
msgstr ""
|
||||
|
||||
@@ -1301,7 +1305,7 @@ msgstr ""
|
||||
#. Label of the comments (Text Editor) field in DocType 'LMS Assignment
|
||||
#. Submission'
|
||||
#. Label of the comments (Small Text) field in DocType 'LMS Mentor Request'
|
||||
#: frontend/src/components/Assignment.vue:167
|
||||
#: frontend/src/components/Assignment.vue:170
|
||||
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
||||
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -1309,7 +1313,7 @@ msgstr ""
|
||||
msgid "Comments"
|
||||
msgstr "Commentaires"
|
||||
|
||||
#: frontend/src/components/Assignment.vue:145
|
||||
#: frontend/src/components/Assignment.vue:148
|
||||
msgid "Comments by Evaluator"
|
||||
msgstr ""
|
||||
|
||||
@@ -1464,6 +1468,22 @@ msgstr "Modèle de courriel de confirmation"
|
||||
msgid "Congratulations on getting certified!"
|
||||
msgstr "Félicitations pour votre certification !"
|
||||
|
||||
#. Label of the contact_us_tab (Tab Break) field in DocType 'LMS Settings'
|
||||
#: frontend/src/components/ContactUsEmail.vue:5
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the contact_us_email (Data) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us Email"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the contact_us_url (Data) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us URL"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/CourseCardOverlay.vue:63
|
||||
#: frontend/src/pages/Lesson.vue:97
|
||||
msgid "Contact the Administrator to enroll for this course."
|
||||
@@ -1677,7 +1697,7 @@ msgstr "Liste de cours"
|
||||
msgid "Course Name"
|
||||
msgstr "Nom du cours"
|
||||
|
||||
#: frontend/src/pages/CourseDetail.vue:78 frontend/src/pages/CourseForm.vue:310
|
||||
#: frontend/src/pages/CourseDetail.vue:78 frontend/src/pages/CourseForm.vue:322
|
||||
msgid "Course Outline"
|
||||
msgstr ""
|
||||
|
||||
@@ -1714,15 +1734,15 @@ msgstr "Titre du cours"
|
||||
msgid "Course added to program successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:547
|
||||
#: frontend/src/pages/CourseForm.vue:559
|
||||
msgid "Course created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:584
|
||||
#: frontend/src/pages/CourseForm.vue:596
|
||||
msgid "Course deleted successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:567
|
||||
#: frontend/src/pages/CourseForm.vue:579
|
||||
msgid "Course updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -1815,15 +1835,15 @@ msgstr "Créer une classe en direct"
|
||||
msgid "Create a Quiz"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:593
|
||||
#: frontend/src/components/AppSidebar.vue:608
|
||||
msgid "Create a batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:584
|
||||
#: frontend/src/components/AppSidebar.vue:599
|
||||
msgid "Create a course"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:594
|
||||
#: frontend/src/components/AppSidebar.vue:609
|
||||
msgid "Create a live class"
|
||||
msgstr ""
|
||||
|
||||
@@ -1835,15 +1855,15 @@ msgstr ""
|
||||
msgid "Create an Assignment"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:518
|
||||
#: frontend/src/components/AppSidebar.vue:533
|
||||
msgid "Create your first batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:449
|
||||
#: frontend/src/components/AppSidebar.vue:464
|
||||
msgid "Create your first course"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:496
|
||||
#: frontend/src/components/AppSidebar.vue:511
|
||||
msgid "Create your first quiz"
|
||||
msgstr ""
|
||||
|
||||
@@ -1851,11 +1871,11 @@ msgstr ""
|
||||
msgid "Created"
|
||||
msgstr "Créé"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:590
|
||||
#: frontend/src/components/AppSidebar.vue:605
|
||||
msgid "Creating a batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:581
|
||||
#: frontend/src/components/AppSidebar.vue:596
|
||||
msgid "Creating a course"
|
||||
msgstr ""
|
||||
|
||||
@@ -1863,7 +1883,7 @@ msgstr ""
|
||||
#. Label of the currency (Link) field in DocType 'LMS Course'
|
||||
#. Label of the currency (Link) field in DocType 'LMS Payment'
|
||||
#: frontend/src/components/Settings/TransactionDetails.vue:64
|
||||
#: frontend/src/pages/BatchForm.vue:285 frontend/src/pages/CourseForm.vue:279
|
||||
#: frontend/src/pages/BatchForm.vue:285 frontend/src/pages/CourseForm.vue:282
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
#: lms/lms/doctype/lms_payment/lms_payment.json
|
||||
@@ -1879,7 +1899,7 @@ msgstr "Leçon actuelle"
|
||||
msgid "Current Streak"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:617
|
||||
#: frontend/src/components/AppSidebar.vue:632
|
||||
msgid "Custom Certificate Templates"
|
||||
msgstr ""
|
||||
|
||||
@@ -1979,7 +1999,7 @@ msgstr "Type de diplôme"
|
||||
#: frontend/src/components/CourseOutline.vue:360
|
||||
#: frontend/src/components/DiscussionReplies.vue:41
|
||||
#: frontend/src/components/Settings/Badges.vue:171
|
||||
#: frontend/src/pages/BatchForm.vue:565 frontend/src/pages/CourseForm.vue:597
|
||||
#: frontend/src/pages/BatchForm.vue:565 frontend/src/pages/CourseForm.vue:609
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseForm.vue:67
|
||||
#: frontend/src/pages/Programs/ProgramForm.vue:231
|
||||
msgid "Delete"
|
||||
@@ -1989,7 +2009,7 @@ msgstr "Supprimer"
|
||||
msgid "Delete Chapter"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:591
|
||||
#: frontend/src/pages/CourseForm.vue:603
|
||||
msgid "Delete Course"
|
||||
msgstr ""
|
||||
|
||||
@@ -2001,7 +2021,7 @@ msgstr ""
|
||||
msgid "Delete this lesson?"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:592
|
||||
#: frontend/src/pages/CourseForm.vue:604
|
||||
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
||||
msgstr ""
|
||||
|
||||
@@ -2251,6 +2271,10 @@ msgstr "Modèles d’Email"
|
||||
msgid "Email Templates deleted successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:57
|
||||
msgid "Email sent successfully"
|
||||
msgstr "E-mail envoyé avec succès"
|
||||
|
||||
#. Label of the show_emails (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Emails"
|
||||
@@ -2266,7 +2290,7 @@ msgstr "Employé"
|
||||
msgid "Enable"
|
||||
msgstr "Activer"
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:21
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:22
|
||||
msgid "Enable Google API in Google Settings to send calendar invites for evaluations."
|
||||
msgstr ""
|
||||
|
||||
@@ -2365,7 +2389,7 @@ msgstr ""
|
||||
msgid "Enrollment Count"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:1880
|
||||
#: lms/lms/utils.py:1888
|
||||
msgid "Enrollment Failed, {0}"
|
||||
msgstr ""
|
||||
|
||||
@@ -2382,7 +2406,7 @@ msgstr ""
|
||||
msgid "Enrollments"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:26
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:27
|
||||
msgid "Enter Client Id and Client Secret in Google Settings to send calendar invites for evaluations."
|
||||
msgstr ""
|
||||
|
||||
@@ -2402,7 +2426,7 @@ msgstr ""
|
||||
msgid "Error creating email template"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:191
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:190
|
||||
msgid "Error creating live class. Please try again. {0}"
|
||||
msgstr ""
|
||||
|
||||
@@ -2467,7 +2491,7 @@ msgstr ""
|
||||
#. Label of the evaluator (Link) field in DocType 'LMS Course'
|
||||
#: frontend/src/components/Modals/BatchCourseModal.vue:37
|
||||
#: frontend/src/components/Modals/BulkCertificates.vue:22
|
||||
#: frontend/src/pages/CourseForm.vue:268 frontend/src/pages/ProfileRoles.vue:32
|
||||
#: frontend/src/pages/CourseForm.vue:269 frontend/src/pages/ProfileRoles.vue:32
|
||||
#: lms/lms/doctype/batch_course/batch_course.json
|
||||
#: lms/lms/doctype/course_evaluator/course_evaluator.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -2555,7 +2579,7 @@ msgstr ""
|
||||
msgid "Exercise Title"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:142
|
||||
#: frontend/src/components/AppSidebar.vue:145
|
||||
msgid "Expand"
|
||||
msgstr "Développer"
|
||||
|
||||
@@ -2625,10 +2649,14 @@ msgstr ""
|
||||
msgid "Failed to enroll in program: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:137
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:144
|
||||
msgid "Failed to fetch attendance data from Zoom for class {0}: {1}"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:63
|
||||
msgid "Failed to send email"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseSubmission.vue:358
|
||||
msgid "Failed to submit. Please try again. {0}"
|
||||
msgstr ""
|
||||
@@ -2814,7 +2842,7 @@ msgstr ""
|
||||
|
||||
#: frontend/src/components/CertificationLinks.vue:34
|
||||
#: frontend/src/components/CertificationLinks.vue:50
|
||||
#: frontend/src/components/CourseCard.vue:125
|
||||
#: frontend/src/components/CourseCard.vue:126
|
||||
#: frontend/src/pages/CertifiedParticipants.vue:11
|
||||
msgid "Get Certified"
|
||||
msgstr ""
|
||||
@@ -2843,7 +2871,7 @@ msgid "Google Meet Link"
|
||||
msgstr "Lien Google Meet"
|
||||
|
||||
#. Label of the grade (Data) field in DocType 'Education Detail'
|
||||
#: frontend/src/components/Assignment.vue:161
|
||||
#: frontend/src/components/Assignment.vue:164
|
||||
#: lms/lms/doctype/education_detail/education_detail.json
|
||||
msgid "Grade"
|
||||
msgstr "Note"
|
||||
@@ -2858,7 +2886,7 @@ msgstr ""
|
||||
msgid "Grade Type"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Assignment.vue:156
|
||||
#: frontend/src/components/Assignment.vue:159
|
||||
msgid "Grading"
|
||||
msgstr ""
|
||||
|
||||
@@ -2898,7 +2926,7 @@ msgstr ""
|
||||
msgid "Hello"
|
||||
msgstr "Bonjour"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:128
|
||||
#: frontend/src/components/AppSidebar.vue:131
|
||||
msgid "Help"
|
||||
msgstr "Aidez-moi"
|
||||
|
||||
@@ -2963,7 +2991,7 @@ msgstr ""
|
||||
msgid "Hints"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:5 frontend/src/pages/Home/Home.vue:153
|
||||
#: frontend/src/pages/Home/Home.vue:5 frontend/src/pages/Home/Home.vue:154
|
||||
msgid "Home"
|
||||
msgstr "Accueil"
|
||||
|
||||
@@ -2995,7 +3023,7 @@ msgstr ""
|
||||
msgid "I am unavailable"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:338
|
||||
#: frontend/src/pages/QuizForm.vue:334
|
||||
msgid "ID"
|
||||
msgstr "Identifiant"
|
||||
|
||||
@@ -3155,7 +3183,7 @@ msgstr ""
|
||||
|
||||
#. Label of the instructor (Link) field in DocType 'Cohort'
|
||||
#. Label of the instructor (Link) field in DocType 'Course Instructor'
|
||||
#: frontend/src/pages/Home/Home.vue:148 lms/lms/doctype/cohort/cohort.json
|
||||
#: frontend/src/pages/Home/Home.vue:149 lms/lms/doctype/cohort/cohort.json
|
||||
#: lms/lms/doctype/course_instructor/course_instructor.json
|
||||
msgid "Instructor"
|
||||
msgstr ""
|
||||
@@ -3191,8 +3219,8 @@ msgstr ""
|
||||
msgid "Interest"
|
||||
msgstr "Intérêt"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:573
|
||||
#: frontend/src/components/AppSidebar.vue:576
|
||||
#: frontend/src/components/AppSidebar.vue:588
|
||||
#: frontend/src/components/AppSidebar.vue:591
|
||||
msgid "Introduction"
|
||||
msgstr ""
|
||||
|
||||
@@ -3214,7 +3242,7 @@ msgstr ""
|
||||
msgid "Invite Only"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:507
|
||||
#: frontend/src/components/AppSidebar.vue:522
|
||||
msgid "Invite your team and students"
|
||||
msgstr ""
|
||||
|
||||
@@ -3251,7 +3279,7 @@ msgstr ""
|
||||
msgid "Issue Date"
|
||||
msgstr "Date d'Émission"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:614
|
||||
#: frontend/src/components/AppSidebar.vue:629
|
||||
msgid "Issue a Certificate"
|
||||
msgstr ""
|
||||
|
||||
@@ -3264,7 +3292,7 @@ msgid "Issued On"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/ProfileAbout.vue:73
|
||||
#: frontend/src/pages/ProfileCertificates.vue:17
|
||||
#: frontend/src/pages/ProfileCertificates.vue:20
|
||||
#: lms/templates/certificates_section.html:11
|
||||
msgid "Issued on"
|
||||
msgstr ""
|
||||
@@ -3679,7 +3707,7 @@ msgstr ""
|
||||
msgid "Learning Consistency"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:598
|
||||
#: frontend/src/components/AppSidebar.vue:613
|
||||
msgid "Learning Paths"
|
||||
msgstr ""
|
||||
|
||||
@@ -3728,7 +3756,7 @@ msgstr ""
|
||||
msgid "Lesson Title"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/LessonForm.vue:426
|
||||
#: frontend/src/pages/LessonForm.vue:425
|
||||
msgid "Lesson created successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -3740,7 +3768,7 @@ msgstr ""
|
||||
msgid "Lesson moved successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/LessonForm.vue:450
|
||||
#: frontend/src/pages/LessonForm.vue:449
|
||||
msgid "Lesson updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -3889,7 +3917,7 @@ msgstr ""
|
||||
msgid "Manage Batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:119
|
||||
#: frontend/src/pages/Home/Home.vue:120
|
||||
msgid "Manage your courses and batches at a glance"
|
||||
msgstr ""
|
||||
|
||||
@@ -3920,7 +3948,7 @@ msgstr "Marquer tout comme lu"
|
||||
#. Label of the marks (Int) field in DocType 'LMS Quiz Result'
|
||||
#: frontend/src/components/Modals/Question.vue:40
|
||||
#: frontend/src/components/Modals/Question.vue:106
|
||||
#: frontend/src/components/Quiz.vue:120 frontend/src/pages/QuizForm.vue:348
|
||||
#: frontend/src/components/Quiz.vue:120 frontend/src/pages/QuizForm.vue:344
|
||||
#: frontend/src/pages/QuizSubmission.vue:64
|
||||
#: lms/lms/doctype/lms_quiz_question/lms_quiz_question.json
|
||||
#: lms/lms/doctype/lms_quiz_result/lms_quiz_result.json
|
||||
@@ -4199,8 +4227,12 @@ msgstr ""
|
||||
msgid "Mentor Request Status Update Template"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:19
|
||||
msgid "Message"
|
||||
msgstr "Message"
|
||||
|
||||
#. Label of the meta_description (Small Text) field in DocType 'LMS Settings'
|
||||
#: frontend/src/pages/BatchForm.vue:297 frontend/src/pages/CourseForm.vue:291
|
||||
#: frontend/src/pages/BatchForm.vue:297 frontend/src/pages/CourseForm.vue:303
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Meta Description"
|
||||
msgstr ""
|
||||
@@ -4214,12 +4246,12 @@ msgid "Meta Image"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the meta_keywords (Small Text) field in DocType 'LMS Settings'
|
||||
#: frontend/src/pages/BatchForm.vue:303 frontend/src/pages/CourseForm.vue:297
|
||||
#: frontend/src/pages/BatchForm.vue:303 frontend/src/pages/CourseForm.vue:309
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Meta Keywords"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/BatchForm.vue:292 frontend/src/pages/CourseForm.vue:286
|
||||
#: frontend/src/pages/BatchForm.vue:292 frontend/src/pages/CourseForm.vue:298
|
||||
msgid "Meta Tags"
|
||||
msgstr ""
|
||||
|
||||
@@ -4290,7 +4322,7 @@ msgstr ""
|
||||
msgid "Monday"
|
||||
msgstr "Lundi"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:622
|
||||
#: frontend/src/components/AppSidebar.vue:637
|
||||
msgid "Monetization"
|
||||
msgstr ""
|
||||
|
||||
@@ -4346,7 +4378,7 @@ msgstr "Nouveau"
|
||||
msgid "New Batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:678 lms/www/lms.py:93
|
||||
#: frontend/src/pages/CourseForm.vue:690 lms/www/lms.py:93
|
||||
msgid "New Course"
|
||||
msgstr ""
|
||||
|
||||
@@ -4370,7 +4402,7 @@ msgstr ""
|
||||
msgid "New Question"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:404 frontend/src/pages/QuizForm.vue:412
|
||||
#: frontend/src/pages/QuizForm.vue:400 frontend/src/pages/QuizForm.vue:408
|
||||
msgid "New Quiz"
|
||||
msgstr ""
|
||||
|
||||
@@ -4950,7 +4982,7 @@ msgstr "Numéro de téléphone"
|
||||
msgid "Pink"
|
||||
msgstr "Rose"
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:34
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:35
|
||||
msgid "Please add <a href='{0}'>{1}</a> for <a href='{2}'>{3}</a> to send calendar invites for evaluations."
|
||||
msgstr ""
|
||||
|
||||
@@ -4974,7 +5006,7 @@ msgstr ""
|
||||
msgid "Please complete the previous course to unlock this one."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:197
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:196
|
||||
msgid "Please enable the zoom account to use this feature."
|
||||
msgstr ""
|
||||
|
||||
@@ -4990,8 +5022,16 @@ msgstr ""
|
||||
msgid "Please enter a title."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:29
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:80
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:51
|
||||
msgid "Please enter a valid Contact Us Email."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:53
|
||||
msgid "Please enter a valid Contact Us URL."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:32
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:107
|
||||
msgid "Please enter a valid URL."
|
||||
msgstr "Veuillez saisir une URL valide."
|
||||
|
||||
@@ -5003,7 +5043,7 @@ msgstr ""
|
||||
msgid "Please enter a valid timestamp"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:74
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:101
|
||||
msgid "Please enter the URL for assignment submission."
|
||||
msgstr ""
|
||||
|
||||
@@ -5031,7 +5071,7 @@ msgstr ""
|
||||
msgid "Please login to continue with payment."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:2012
|
||||
#: lms/lms/utils.py:2020
|
||||
msgid "Please login to enroll in the program."
|
||||
msgstr ""
|
||||
|
||||
@@ -5088,7 +5128,7 @@ msgstr ""
|
||||
msgid "Please upload a SCORM package"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:77
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:104
|
||||
msgid "Please upload the assignment file."
|
||||
msgstr ""
|
||||
|
||||
@@ -5134,7 +5174,7 @@ msgstr "Poster"
|
||||
msgid "Postal Code"
|
||||
msgstr "code postal"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:122
|
||||
#: frontend/src/components/AppSidebar.vue:125
|
||||
msgid "Powered by Learning"
|
||||
msgstr ""
|
||||
|
||||
@@ -5411,7 +5451,7 @@ msgstr ""
|
||||
#: frontend/src/components/Assignment.vue:20
|
||||
#: frontend/src/components/Modals/AssignmentForm.vue:32
|
||||
#: frontend/src/components/Modals/Question.vue:27
|
||||
#: frontend/src/pages/QuizForm.vue:343 frontend/src/pages/QuizSubmission.vue:56
|
||||
#: frontend/src/pages/QuizForm.vue:339 frontend/src/pages/QuizSubmission.vue:56
|
||||
#: lms/lms/doctype/course_lesson/course_lesson.json
|
||||
#: lms/lms/doctype/lms_assignment/lms_assignment.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -5431,11 +5471,11 @@ msgstr ""
|
||||
msgid "Question Name"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:284
|
||||
#: frontend/src/components/Modals/Question.vue:285
|
||||
msgid "Question added successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:334
|
||||
#: frontend/src/components/Modals/Question.vue:335
|
||||
msgid "Question updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -5452,7 +5492,7 @@ msgstr ""
|
||||
msgid "Questions"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:385
|
||||
#: frontend/src/pages/QuizForm.vue:381
|
||||
msgid "Questions deleted successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -5502,7 +5542,7 @@ msgstr ""
|
||||
msgid "Quiz is not available to Guest users. Please login to continue."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:310
|
||||
#: frontend/src/pages/QuizForm.vue:306
|
||||
msgid "Quiz updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -5511,8 +5551,8 @@ msgstr ""
|
||||
msgid "Quiz will appear at the bottom of the lesson."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:606
|
||||
#: frontend/src/pages/QuizForm.vue:396 frontend/src/pages/Quizzes.vue:275
|
||||
#: frontend/src/components/AppSidebar.vue:621
|
||||
#: frontend/src/pages/QuizForm.vue:392 frontend/src/pages/Quizzes.vue:275
|
||||
#: frontend/src/pages/Quizzes.vue:285 lms/www/lms.py:249
|
||||
msgid "Quizzes"
|
||||
msgstr ""
|
||||
@@ -5655,7 +5695,7 @@ msgstr "CV"
|
||||
msgid "Resume Video"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:142
|
||||
#: frontend/src/pages/Home/Home.vue:143
|
||||
msgid "Resume where you left off"
|
||||
msgstr ""
|
||||
|
||||
@@ -5696,7 +5736,7 @@ msgstr ""
|
||||
msgid "Role updated successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:634
|
||||
#: frontend/src/components/AppSidebar.vue:649
|
||||
msgid "Roles"
|
||||
msgstr "Rôles"
|
||||
|
||||
@@ -5914,6 +5954,10 @@ msgstr ""
|
||||
msgid "Select an assignment"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:33
|
||||
msgid "Send"
|
||||
msgstr "Envoyer"
|
||||
|
||||
#: lms/lms/doctype/lms_batch_enrollment/lms_batch_enrollment.js:7
|
||||
msgid "Send Confirmation Email"
|
||||
msgstr ""
|
||||
@@ -5945,16 +5989,16 @@ msgstr "Définir la couleur"
|
||||
msgid "Set your Password"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:577
|
||||
#: frontend/src/components/AppSidebar.vue:592
|
||||
msgid "Setting up"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:627
|
||||
#: frontend/src/components/AppSidebar.vue:642
|
||||
msgid "Setting up payment gateway"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:632
|
||||
#: frontend/src/components/Settings/Settings.vue:7
|
||||
#: frontend/src/components/AppSidebar.vue:647
|
||||
#: frontend/src/components/Settings/Settings.vue:9
|
||||
#: frontend/src/pages/BatchForm.vue:53 frontend/src/pages/CourseForm.vue:142
|
||||
#: frontend/src/pages/ProfileRoles.vue:4
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseSubmission.vue:19
|
||||
@@ -6252,7 +6296,7 @@ msgstr ""
|
||||
#. Option for the 'User Category' (Select) field in DocType 'User'
|
||||
#. Option for the 'Required Role' (Select) field in DocType 'Cohort Web Page'
|
||||
#. Option for the 'Member Type' (Select) field in DocType 'LMS Enrollment'
|
||||
#: frontend/src/pages/Home/Home.vue:147 frontend/src/pages/ProfileRoles.vue:38
|
||||
#: frontend/src/pages/Home/Home.vue:148 frontend/src/pages/ProfileRoles.vue:38
|
||||
#: lms/fixtures/custom_field.json
|
||||
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
||||
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
||||
@@ -6289,6 +6333,7 @@ msgstr ""
|
||||
msgid "Subgroup"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:13
|
||||
#: frontend/src/components/Modals/AnnouncementModal.vue:20
|
||||
#: frontend/src/components/Modals/EmailTemplateModal.vue:31
|
||||
msgid "Subject"
|
||||
@@ -6524,7 +6569,7 @@ msgstr ""
|
||||
msgid "Thanks and Regards"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:1904
|
||||
#: lms/lms/utils.py:1912
|
||||
msgid "The batch is full. Please contact the Administrator."
|
||||
msgstr ""
|
||||
|
||||
@@ -6536,11 +6581,11 @@ msgstr ""
|
||||
msgid "The course {0} is now available on {1}."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:55
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:56
|
||||
msgid "The evaluator of this course is unavailable from {0} to {1}. Please select a date after {1}"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:73
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:74
|
||||
msgid "The slot is already booked by another participant."
|
||||
msgstr ""
|
||||
|
||||
@@ -6576,7 +6621,7 @@ msgstr ""
|
||||
msgid "There are no {0} on this site."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:40
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:67
|
||||
msgid "There has been an update on your submission for assignment {0}"
|
||||
msgstr ""
|
||||
|
||||
@@ -6613,7 +6658,7 @@ msgstr ""
|
||||
msgid "This course has:"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:1765
|
||||
#: lms/lms/utils.py:1773
|
||||
msgid "This course is free."
|
||||
msgstr ""
|
||||
|
||||
@@ -6649,8 +6694,8 @@ msgstr ""
|
||||
msgid "This quiz consists of {0} questions."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:75
|
||||
#: frontend/src/components/AppSidebar.vue:115
|
||||
#: frontend/src/components/AppSidebar.vue:78
|
||||
#: frontend/src/components/AppSidebar.vue:118
|
||||
msgid "This site is being updated. You will not be able to make any changes. Full access will be restored shortly."
|
||||
msgstr ""
|
||||
|
||||
@@ -6721,15 +6766,21 @@ msgstr ""
|
||||
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Batch'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Certificate Request'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Course'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Live Class'
|
||||
#: frontend/src/components/Modals/LiveClassModal.vue:59
|
||||
#: frontend/src/pages/BatchForm.vue:114
|
||||
#: frontend/src/pages/BatchForm.vue:114 frontend/src/pages/CourseForm.vue:288
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.json
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.json
|
||||
msgid "Timezone"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:72
|
||||
msgid "Timezone is required for paid certificates."
|
||||
msgstr ""
|
||||
|
||||
#: lms/templates/emails/batch_confirmation.html:21
|
||||
#: lms/templates/emails/batch_start_reminder.html:16
|
||||
#: lms/templates/emails/live_class_reminder.html:16
|
||||
@@ -6799,7 +6850,7 @@ msgstr "À"
|
||||
msgid "To Date"
|
||||
msgstr "Jusqu'au"
|
||||
|
||||
#: lms/lms/utils.py:1776
|
||||
#: lms/lms/utils.py:1784
|
||||
msgid "To join this batch, please contact the Administrator."
|
||||
msgstr ""
|
||||
|
||||
@@ -7226,7 +7277,7 @@ msgstr ""
|
||||
msgid "Yellow"
|
||||
msgstr "Jaune"
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:95
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:96
|
||||
msgid "You already have an evaluation on {0} at {1} for the course {2}."
|
||||
msgstr ""
|
||||
|
||||
@@ -7279,11 +7330,11 @@ msgstr ""
|
||||
msgid "You cannot change the roles in read-only mode."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:111
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:112
|
||||
msgid "You cannot schedule evaluations after {0}."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:102
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:103
|
||||
msgid "You cannot schedule evaluations for past slots."
|
||||
msgstr ""
|
||||
|
||||
@@ -7340,19 +7391,23 @@ msgstr ""
|
||||
msgid "You have got a score of {0} for the quiz {1}"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/ProfileCertificates.vue:26
|
||||
msgid "You have not received any certificates yet."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/widgets/NoPreviewModal.html:12
|
||||
msgid "You have opted to be notified for this course. You will receive an email when the course becomes available."
|
||||
msgstr "Vous avez choisi d'être notifié pour ce cours. Vous recevrez un courriel lorsque le cours sera disponible."
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:102 frontend/src/pages/Home/Home.vue:125
|
||||
#: frontend/src/pages/Home/Home.vue:103 frontend/src/pages/Home/Home.vue:126
|
||||
msgid "You have {0} upcoming {1} and {2} {3} scheduled."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:109 frontend/src/pages/Home/Home.vue:132
|
||||
#: frontend/src/pages/Home/Home.vue:110 frontend/src/pages/Home/Home.vue:133
|
||||
msgid "You have {0} upcoming {1}."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:114 frontend/src/pages/Home/Home.vue:137
|
||||
#: frontend/src/pages/Home/Home.vue:115 frontend/src/pages/Home/Home.vue:138
|
||||
msgid "You have {0} {1} scheduled."
|
||||
msgstr ""
|
||||
|
||||
@@ -7400,7 +7455,7 @@ msgstr ""
|
||||
msgid "Your Output"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:309
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:308
|
||||
msgid "Your batch {0} is starting tomorrow"
|
||||
msgstr ""
|
||||
|
||||
@@ -7408,7 +7463,7 @@ msgstr ""
|
||||
msgid "Your calendar is set."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:88
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:95
|
||||
msgid "Your class on {0} is today"
|
||||
msgstr ""
|
||||
|
||||
@@ -7421,7 +7476,7 @@ msgstr ""
|
||||
msgid "Your evaluation for the course {0} has been scheduled on {1} at {2} {3}."
|
||||
msgstr "Votre évaluation pour le cours {0} a été programmée le {1} à {2} {3}."
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:121
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:136
|
||||
msgid "Your evaluation slot has been booked"
|
||||
msgstr ""
|
||||
|
||||
@@ -7474,8 +7529,8 @@ msgstr "activités"
|
||||
msgid "activity"
|
||||
msgstr "historique"
|
||||
|
||||
#: frontend/src/components/CourseInstructors.vue:22
|
||||
#: frontend/src/components/CourseInstructors.vue:41
|
||||
#: frontend/src/components/CourseInstructors.vue:24
|
||||
#: frontend/src/components/CourseInstructors.vue:45
|
||||
msgid "and"
|
||||
msgstr "et"
|
||||
|
||||
@@ -7538,11 +7593,15 @@ msgstr ""
|
||||
msgid "days"
|
||||
msgstr "jours"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:100 frontend/src/pages/Home/Home.vue:123
|
||||
#: frontend/src/pages/CourseForm.vue:290
|
||||
msgid "e.g. IST, UTC, GMT..."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:101 frontend/src/pages/Home/Home.vue:124
|
||||
msgid "evaluation"
|
||||
msgstr "évaluation"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:100 frontend/src/pages/Home/Home.vue:123
|
||||
#: frontend/src/pages/Home/Home.vue:101 frontend/src/pages/Home/Home.vue:124
|
||||
msgid "evaluations"
|
||||
msgstr ""
|
||||
|
||||
@@ -7562,11 +7621,11 @@ msgstr ""
|
||||
msgid "lessons"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:98 frontend/src/pages/Home/Home.vue:122
|
||||
#: frontend/src/pages/Home/Home.vue:99 frontend/src/pages/Home/Home.vue:123
|
||||
msgid "live class"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:98 frontend/src/pages/Home/Home.vue:122
|
||||
#: frontend/src/pages/Home/Home.vue:99 frontend/src/pages/Home/Home.vue:123
|
||||
msgid "live classes"
|
||||
msgstr ""
|
||||
|
||||
@@ -7584,11 +7643,11 @@ msgstr ""
|
||||
msgid "minutes"
|
||||
msgstr "procès-verbal"
|
||||
|
||||
#: frontend/src/components/CourseInstructors.vue:41
|
||||
#: frontend/src/components/CourseInstructors.vue:45
|
||||
msgid "others"
|
||||
msgstr "autres"
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:344
|
||||
#: frontend/src/pages/QuizForm.vue:340
|
||||
msgid "question_detail"
|
||||
msgstr ""
|
||||
|
||||
|
||||
299
lms/locale/hr.po
299
lms/locale/hr.po
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: frappe\n"
|
||||
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
||||
"POT-Creation-Date: 2025-10-03 16:04+0000\n"
|
||||
"PO-Revision-Date: 2025-10-06 10:51\n"
|
||||
"POT-Creation-Date: 2025-10-31 16:04+0000\n"
|
||||
"PO-Revision-Date: 2025-11-02 19:07\n"
|
||||
"Last-Translator: jannat@frappe.io\n"
|
||||
"Language-Team: Croatian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -196,7 +196,7 @@ msgstr "Dodaj Lekciju"
|
||||
msgid "Add a Student"
|
||||
msgstr "Dodaj Studenta"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:585
|
||||
#: frontend/src/components/AppSidebar.vue:600
|
||||
msgid "Add a chapter"
|
||||
msgstr "Dodaj Poglavlje"
|
||||
|
||||
@@ -208,7 +208,7 @@ msgstr "Dodaj Tečaj"
|
||||
msgid "Add a keyword and then press enter"
|
||||
msgstr "Dodaj ključnu riječ, a zatim pritisnite enter"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:586
|
||||
#: frontend/src/components/AppSidebar.vue:601
|
||||
msgid "Add a lesson"
|
||||
msgstr "Dodaj Lekciju"
|
||||
|
||||
@@ -216,12 +216,12 @@ msgstr "Dodaj Lekciju"
|
||||
msgid "Add a new member"
|
||||
msgstr "Dodaj novog člana"
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:166
|
||||
#: frontend/src/components/Modals/Question.vue:167
|
||||
#: frontend/src/pages/QuizForm.vue:200
|
||||
msgid "Add a new question"
|
||||
msgstr "Dodaj novo pitanje"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:600
|
||||
#: frontend/src/components/AppSidebar.vue:615
|
||||
msgid "Add a program"
|
||||
msgstr "Dodaj program"
|
||||
|
||||
@@ -245,7 +245,7 @@ msgstr "Dodaj zadatak svojoj lekciji"
|
||||
msgid "Add at least one possible answer for this question: {0}"
|
||||
msgstr "Dodaj barem jedan mogući odgovor na ovo pitanje: {0}"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:549
|
||||
#: frontend/src/components/AppSidebar.vue:564
|
||||
msgid "Add courses to your batch"
|
||||
msgstr "Dodaj tečajeve vašoj grupi"
|
||||
|
||||
@@ -253,7 +253,7 @@ msgstr "Dodaj tečajeve vašoj grupi"
|
||||
msgid "Add quiz to this video"
|
||||
msgstr "Dodaj kviz ovom videu"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:528
|
||||
#: frontend/src/components/AppSidebar.vue:543
|
||||
msgid "Add students to your batch"
|
||||
msgstr "Dodaj učenike u vašu grupu"
|
||||
|
||||
@@ -269,11 +269,11 @@ msgstr "Dodaj web stranicu na bočnu traku"
|
||||
msgid "Add your assignment as {0}"
|
||||
msgstr "Dodaj zadatak kao {0}"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:461
|
||||
#: frontend/src/components/AppSidebar.vue:476
|
||||
msgid "Add your first chapter"
|
||||
msgstr "Dodaj vaše prvo poglavlje"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:477
|
||||
#: frontend/src/components/AppSidebar.vue:492
|
||||
msgid "Add your first lesson"
|
||||
msgstr "Dodaj vašu prvu lekciju"
|
||||
|
||||
@@ -378,11 +378,11 @@ msgstr "Iznos (USD)"
|
||||
msgid "Amount and currency are required for paid batches."
|
||||
msgstr "Iznos i Valuta su obavezni za plaćene grupe."
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:76
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:79
|
||||
msgid "Amount and currency are required for paid certificates."
|
||||
msgstr "Iznos i valuta su obevezni za plaćene certifikate."
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:73
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:76
|
||||
msgid "Amount and currency are required for paid courses."
|
||||
msgstr "Iznos i valuta su potrebni za plaćene kurseve."
|
||||
|
||||
@@ -508,7 +508,7 @@ msgid "Assessment {0} has already been added to this batch."
|
||||
msgstr "Procjena {0} je već dodana ovoj grupi."
|
||||
|
||||
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
||||
#: frontend/src/components/AppSidebar.vue:603
|
||||
#: frontend/src/components/AppSidebar.vue:618
|
||||
#: frontend/src/components/Assessments.vue:5
|
||||
#: frontend/src/components/BatchStudents.vue:32
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
@@ -573,11 +573,11 @@ msgstr "Naziv Zadatka"
|
||||
msgid "Assignment created successfully"
|
||||
msgstr "Zadatak je uspješno napravljen"
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:24
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:27
|
||||
msgid "Assignment for Lesson {0} by {1} already exists."
|
||||
msgstr "Zadatak za Lekciju {0} od {1} već postoji."
|
||||
|
||||
#: frontend/src/components/Assignment.vue:359
|
||||
#: frontend/src/components/Assignment.vue:362
|
||||
msgid "Assignment submitted successfully"
|
||||
msgstr "Zadatak uspješno predan"
|
||||
|
||||
@@ -590,7 +590,7 @@ msgstr "Zadatak je uspješno ažuriran"
|
||||
msgid "Assignment will appear at the bottom of the lesson."
|
||||
msgstr "Zadatak će se pojaviti na dnu lekcije."
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:607
|
||||
#: frontend/src/components/AppSidebar.vue:622
|
||||
#: frontend/src/components/Settings/Badges.vue:163
|
||||
#: frontend/src/pages/Assignments.vue:208 lms/www/lms.py:271
|
||||
msgid "Assignments"
|
||||
@@ -721,7 +721,7 @@ msgstr "Značka je uspješno ažurirana"
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.json
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.json
|
||||
msgid "Batch"
|
||||
msgstr "Šarža"
|
||||
msgstr "Grupa"
|
||||
|
||||
#. Label of the batch_confirmation_template (Link) field in DocType 'LMS
|
||||
#. Settings'
|
||||
@@ -1017,7 +1017,7 @@ msgstr "Certifikati su uspješno generirani"
|
||||
#. Enrollment'
|
||||
#. Label of a Card Break in the LMS Workspace
|
||||
#. Label of a Link in the LMS Workspace
|
||||
#: frontend/src/components/AppSidebar.vue:611
|
||||
#: frontend/src/components/AppSidebar.vue:626
|
||||
#: frontend/src/components/Modals/Event.vue:381
|
||||
#: frontend/src/pages/BatchForm.vue:69 frontend/src/pages/Batches.vue:58
|
||||
#: frontend/src/pages/CourseCertification.vue:10
|
||||
@@ -1040,6 +1040,11 @@ msgstr "Detalji Certifikacije"
|
||||
msgid "Certification Name"
|
||||
msgstr "Naziv Certifikacije"
|
||||
|
||||
#. Label of the certifications (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Certifications"
|
||||
msgstr "Certifikacije"
|
||||
|
||||
#: frontend/src/components/BatchStudents.vue:17
|
||||
msgid "Certified"
|
||||
msgstr "Certificiran"
|
||||
@@ -1052,8 +1057,7 @@ msgstr "Certificiran"
|
||||
msgid "Certified Members"
|
||||
msgstr "Certificirani Članovi"
|
||||
|
||||
#. Label of the certified_participants (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:300
|
||||
#: lms/www/lms.py:300
|
||||
msgid "Certified Participants"
|
||||
msgstr "Certificirani Sudionici"
|
||||
|
||||
@@ -1061,7 +1065,7 @@ msgstr "Certificirani Sudionici"
|
||||
msgid "Change"
|
||||
msgstr "Promjeni"
|
||||
|
||||
#: frontend/src/components/Assignment.vue:345
|
||||
#: frontend/src/components/Assignment.vue:348
|
||||
msgid "Changes saved successfully"
|
||||
msgstr "Promjene su uspješno spremljene"
|
||||
|
||||
@@ -1272,7 +1276,7 @@ msgstr "Web stranica Grupe"
|
||||
msgid "Collaboration Preference"
|
||||
msgstr "Preference Saradnje"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:142
|
||||
#: frontend/src/components/AppSidebar.vue:145
|
||||
msgid "Collapse"
|
||||
msgstr "Sklopi"
|
||||
|
||||
@@ -1291,7 +1295,7 @@ msgstr "Ime Koledža"
|
||||
msgid "Color"
|
||||
msgstr "Boja"
|
||||
|
||||
#: frontend/src/pages/BatchForm.vue:306 frontend/src/pages/CourseForm.vue:300
|
||||
#: frontend/src/pages/BatchForm.vue:306 frontend/src/pages/CourseForm.vue:312
|
||||
msgid "Comma separated keywords for SEO"
|
||||
msgstr "Ključne riječi odvojene zarezom za SEO"
|
||||
|
||||
@@ -1301,7 +1305,7 @@ msgstr "Ključne riječi odvojene zarezom za SEO"
|
||||
#. Label of the comments (Text Editor) field in DocType 'LMS Assignment
|
||||
#. Submission'
|
||||
#. Label of the comments (Small Text) field in DocType 'LMS Mentor Request'
|
||||
#: frontend/src/components/Assignment.vue:167
|
||||
#: frontend/src/components/Assignment.vue:170
|
||||
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
||||
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -1309,7 +1313,7 @@ msgstr "Ključne riječi odvojene zarezom za SEO"
|
||||
msgid "Comments"
|
||||
msgstr "Komentari"
|
||||
|
||||
#: frontend/src/components/Assignment.vue:145
|
||||
#: frontend/src/components/Assignment.vue:148
|
||||
msgid "Comments by Evaluator"
|
||||
msgstr "Komentari Ocjenjivača"
|
||||
|
||||
@@ -1464,6 +1468,22 @@ msgstr "Šablon e-pošte za potvrdu"
|
||||
msgid "Congratulations on getting certified!"
|
||||
msgstr "Čestitamo na certificiranju!"
|
||||
|
||||
#. Label of the contact_us_tab (Tab Break) field in DocType 'LMS Settings'
|
||||
#: frontend/src/components/ContactUsEmail.vue:5
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us"
|
||||
msgstr "Kontaktirajte nas"
|
||||
|
||||
#. Label of the contact_us_email (Data) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us Email"
|
||||
msgstr "Kontakt E-pošta"
|
||||
|
||||
#. Label of the contact_us_url (Data) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us URL"
|
||||
msgstr "Kontakt URL"
|
||||
|
||||
#: frontend/src/components/CourseCardOverlay.vue:63
|
||||
#: frontend/src/pages/Lesson.vue:97
|
||||
msgid "Contact the Administrator to enroll for this course."
|
||||
@@ -1677,7 +1697,7 @@ msgstr "Lista Kurseva"
|
||||
msgid "Course Name"
|
||||
msgstr "Naziv Kursa"
|
||||
|
||||
#: frontend/src/pages/CourseDetail.vue:78 frontend/src/pages/CourseForm.vue:310
|
||||
#: frontend/src/pages/CourseDetail.vue:78 frontend/src/pages/CourseForm.vue:322
|
||||
msgid "Course Outline"
|
||||
msgstr "Pregled Kursa"
|
||||
|
||||
@@ -1714,15 +1734,15 @@ msgstr "Naziv Kursa"
|
||||
msgid "Course added to program successfully"
|
||||
msgstr "Tečaj je uspješno dodan u program"
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:547
|
||||
#: frontend/src/pages/CourseForm.vue:559
|
||||
msgid "Course created successfully"
|
||||
msgstr "Tečaj je uspješno kreiran"
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:584
|
||||
#: frontend/src/pages/CourseForm.vue:596
|
||||
msgid "Course deleted successfully"
|
||||
msgstr "Kurs uspješno izbrisan"
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:567
|
||||
#: frontend/src/pages/CourseForm.vue:579
|
||||
msgid "Course updated successfully"
|
||||
msgstr "Tečaj je uspješno ažuriran"
|
||||
|
||||
@@ -1815,15 +1835,15 @@ msgstr "Kreiraj Razred Uživo"
|
||||
msgid "Create a Quiz"
|
||||
msgstr "Izradi Kviz"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:593
|
||||
#: frontend/src/components/AppSidebar.vue:608
|
||||
msgid "Create a batch"
|
||||
msgstr "Napravi grupu"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:584
|
||||
#: frontend/src/components/AppSidebar.vue:599
|
||||
msgid "Create a course"
|
||||
msgstr "Kreiraj kurs"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:594
|
||||
#: frontend/src/components/AppSidebar.vue:609
|
||||
msgid "Create a live class"
|
||||
msgstr "Napravi Razred Uživo"
|
||||
|
||||
@@ -1835,15 +1855,15 @@ msgstr "Izradi novu Značku"
|
||||
msgid "Create an Assignment"
|
||||
msgstr "Napravi Zadatak"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:518
|
||||
#: frontend/src/components/AppSidebar.vue:533
|
||||
msgid "Create your first batch"
|
||||
msgstr "Napravi vašu prvu seriju"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:449
|
||||
#: frontend/src/components/AppSidebar.vue:464
|
||||
msgid "Create your first course"
|
||||
msgstr "Napravi vaš prvi kurs"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:496
|
||||
#: frontend/src/components/AppSidebar.vue:511
|
||||
msgid "Create your first quiz"
|
||||
msgstr "Napravi vašj prvi kviz"
|
||||
|
||||
@@ -1851,11 +1871,11 @@ msgstr "Napravi vašj prvi kviz"
|
||||
msgid "Created"
|
||||
msgstr "Kreirano"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:590
|
||||
#: frontend/src/components/AppSidebar.vue:605
|
||||
msgid "Creating a batch"
|
||||
msgstr "Iyrada grupe u toku"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:581
|
||||
#: frontend/src/components/AppSidebar.vue:596
|
||||
msgid "Creating a course"
|
||||
msgstr "Izrada tečaja u toku"
|
||||
|
||||
@@ -1863,7 +1883,7 @@ msgstr "Izrada tečaja u toku"
|
||||
#. Label of the currency (Link) field in DocType 'LMS Course'
|
||||
#. Label of the currency (Link) field in DocType 'LMS Payment'
|
||||
#: frontend/src/components/Settings/TransactionDetails.vue:64
|
||||
#: frontend/src/pages/BatchForm.vue:285 frontend/src/pages/CourseForm.vue:279
|
||||
#: frontend/src/pages/BatchForm.vue:285 frontend/src/pages/CourseForm.vue:282
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
#: lms/lms/doctype/lms_payment/lms_payment.json
|
||||
@@ -1879,7 +1899,7 @@ msgstr "Trenutna Lekcija"
|
||||
msgid "Current Streak"
|
||||
msgstr "Aktuelni Period"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:617
|
||||
#: frontend/src/components/AppSidebar.vue:632
|
||||
msgid "Custom Certificate Templates"
|
||||
msgstr "Prilagođeni Predlošci Certifikata"
|
||||
|
||||
@@ -1979,7 +1999,7 @@ msgstr "Tip Stepena"
|
||||
#: frontend/src/components/CourseOutline.vue:360
|
||||
#: frontend/src/components/DiscussionReplies.vue:41
|
||||
#: frontend/src/components/Settings/Badges.vue:171
|
||||
#: frontend/src/pages/BatchForm.vue:565 frontend/src/pages/CourseForm.vue:597
|
||||
#: frontend/src/pages/BatchForm.vue:565 frontend/src/pages/CourseForm.vue:609
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseForm.vue:67
|
||||
#: frontend/src/pages/Programs/ProgramForm.vue:231
|
||||
msgid "Delete"
|
||||
@@ -1989,7 +2009,7 @@ msgstr "Izbriši"
|
||||
msgid "Delete Chapter"
|
||||
msgstr "Izbriši Poglavlje"
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:591
|
||||
#: frontend/src/pages/CourseForm.vue:603
|
||||
msgid "Delete Course"
|
||||
msgstr "Izbriši Kurs"
|
||||
|
||||
@@ -2001,7 +2021,7 @@ msgstr "Izbriši ovo Poglavlje?"
|
||||
msgid "Delete this lesson?"
|
||||
msgstr "Izbriši ovu Lekciju?"
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:592
|
||||
#: frontend/src/pages/CourseForm.vue:604
|
||||
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
||||
msgstr "Brisanjem kursa izbrisat će se i sva njegova poglavlja i lekcije. Jeste li sigurni da želite izbrisati ovaj kurs?"
|
||||
|
||||
@@ -2251,6 +2271,10 @@ msgstr "Šablon e-pošte"
|
||||
msgid "Email Templates deleted successfully"
|
||||
msgstr "Predlošci e-pošte uspješno su izbrisani"
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:57
|
||||
msgid "Email sent successfully"
|
||||
msgstr "E-pošta je uspješno poslana"
|
||||
|
||||
#. Label of the show_emails (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Emails"
|
||||
@@ -2266,7 +2290,7 @@ msgstr "Personal"
|
||||
msgid "Enable"
|
||||
msgstr "Omogući"
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:21
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:22
|
||||
msgid "Enable Google API in Google Settings to send calendar invites for evaluations."
|
||||
msgstr "Omogućite Google API u Google Postavkama za slanje kalendarskih pozivnica za ocjenjivanje."
|
||||
|
||||
@@ -2365,7 +2389,7 @@ msgstr "Potvrda upisa za {0}"
|
||||
msgid "Enrollment Count"
|
||||
msgstr "Broj Upisa"
|
||||
|
||||
#: lms/lms/utils.py:1880
|
||||
#: lms/lms/utils.py:1888
|
||||
msgid "Enrollment Failed, {0}"
|
||||
msgstr "Upis nije uspio, {0}"
|
||||
|
||||
@@ -2382,7 +2406,7 @@ msgstr "Upis za Program {0}"
|
||||
msgid "Enrollments"
|
||||
msgstr "Upisi"
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:26
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:27
|
||||
msgid "Enter Client Id and Client Secret in Google Settings to send calendar invites for evaluations."
|
||||
msgstr "Unesite Klijent Id i Klijent Tajnu u Google Postavke da pošaljete kalendarske pozivnice za ocjenjivanje."
|
||||
|
||||
@@ -2402,7 +2426,7 @@ msgstr "Pogreška pri izradi značke"
|
||||
msgid "Error creating email template"
|
||||
msgstr "Pogreška pri izradi predloška e-pošte"
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:191
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:190
|
||||
msgid "Error creating live class. Please try again. {0}"
|
||||
msgstr "Greška pri kreiranju časa uživo. Pokušaj ponovo. {0}"
|
||||
|
||||
@@ -2467,7 +2491,7 @@ msgstr "Evaluacija je uspješno sačuvana"
|
||||
#. Label of the evaluator (Link) field in DocType 'LMS Course'
|
||||
#: frontend/src/components/Modals/BatchCourseModal.vue:37
|
||||
#: frontend/src/components/Modals/BulkCertificates.vue:22
|
||||
#: frontend/src/pages/CourseForm.vue:268 frontend/src/pages/ProfileRoles.vue:32
|
||||
#: frontend/src/pages/CourseForm.vue:269 frontend/src/pages/ProfileRoles.vue:32
|
||||
#: lms/lms/doctype/batch_course/batch_course.json
|
||||
#: lms/lms/doctype/course_evaluator/course_evaluator.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -2555,7 +2579,7 @@ msgstr "Prijava Vježbe"
|
||||
msgid "Exercise Title"
|
||||
msgstr "Naziv Vježbe"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:142
|
||||
#: frontend/src/components/AppSidebar.vue:145
|
||||
msgid "Expand"
|
||||
msgstr "Proširi"
|
||||
|
||||
@@ -2625,10 +2649,14 @@ msgstr "Nije uspjelo stvaranje dodjele značke: "
|
||||
msgid "Failed to enroll in program: {0}"
|
||||
msgstr "Upis u program nije uspio: {0}"
|
||||
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:137
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:144
|
||||
msgid "Failed to fetch attendance data from Zoom for class {0}: {1}"
|
||||
msgstr "Nije uspjelo preuzimanje podataka o prisutnosti sa Zooma za čas {0}: {1}"
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:63
|
||||
msgid "Failed to send email"
|
||||
msgstr "Slanje e-pošte nije uspjelo"
|
||||
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseSubmission.vue:358
|
||||
msgid "Failed to submit. Please try again. {0}"
|
||||
msgstr "Podnošenje nije uspjelo. Pokušaj ponovo. {0}"
|
||||
@@ -2814,7 +2842,7 @@ msgstr "Preuzmi Certifikat"
|
||||
|
||||
#: frontend/src/components/CertificationLinks.vue:34
|
||||
#: frontend/src/components/CertificationLinks.vue:50
|
||||
#: frontend/src/components/CourseCard.vue:125
|
||||
#: frontend/src/components/CourseCard.vue:126
|
||||
#: frontend/src/pages/CertifiedParticipants.vue:11
|
||||
msgid "Get Certified"
|
||||
msgstr "Certificiraj se"
|
||||
@@ -2843,7 +2871,7 @@ msgid "Google Meet Link"
|
||||
msgstr "Google Meet veza"
|
||||
|
||||
#. Label of the grade (Data) field in DocType 'Education Detail'
|
||||
#: frontend/src/components/Assignment.vue:161
|
||||
#: frontend/src/components/Assignment.vue:164
|
||||
#: lms/lms/doctype/education_detail/education_detail.json
|
||||
msgid "Grade"
|
||||
msgstr "Ocjena"
|
||||
@@ -2858,7 +2886,7 @@ msgstr "Dodjela Ocjena"
|
||||
msgid "Grade Type"
|
||||
msgstr "Tip Ocjene"
|
||||
|
||||
#: frontend/src/components/Assignment.vue:156
|
||||
#: frontend/src/components/Assignment.vue:159
|
||||
msgid "Grading"
|
||||
msgstr "Ocjenjivanje"
|
||||
|
||||
@@ -2898,7 +2926,7 @@ msgstr "Naslov"
|
||||
msgid "Hello"
|
||||
msgstr "Zdravo"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:128
|
||||
#: frontend/src/components/AppSidebar.vue:131
|
||||
msgid "Help"
|
||||
msgstr "Pomoć"
|
||||
|
||||
@@ -2963,7 +2991,7 @@ msgstr "Istaknuti Tekst"
|
||||
msgid "Hints"
|
||||
msgstr "Nagovještaji"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:5 frontend/src/pages/Home/Home.vue:153
|
||||
#: frontend/src/pages/Home/Home.vue:5 frontend/src/pages/Home/Home.vue:154
|
||||
msgid "Home"
|
||||
msgstr "Početna"
|
||||
|
||||
@@ -2995,7 +3023,7 @@ msgstr "Tražim posao"
|
||||
msgid "I am unavailable"
|
||||
msgstr "Ja sam nedostupan/nedostupna"
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:338
|
||||
#: frontend/src/pages/QuizForm.vue:334
|
||||
msgid "ID"
|
||||
msgstr "ID"
|
||||
|
||||
@@ -3155,7 +3183,7 @@ msgstr "Naziv Institucije"
|
||||
|
||||
#. Label of the instructor (Link) field in DocType 'Cohort'
|
||||
#. Label of the instructor (Link) field in DocType 'Course Instructor'
|
||||
#: frontend/src/pages/Home/Home.vue:148 lms/lms/doctype/cohort/cohort.json
|
||||
#: frontend/src/pages/Home/Home.vue:149 lms/lms/doctype/cohort/cohort.json
|
||||
#: lms/lms/doctype/course_instructor/course_instructor.json
|
||||
msgid "Instructor"
|
||||
msgstr "Instruktor"
|
||||
@@ -3191,8 +3219,8 @@ msgstr "Komentari Instruktora"
|
||||
msgid "Interest"
|
||||
msgstr "Kamata"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:573
|
||||
#: frontend/src/components/AppSidebar.vue:576
|
||||
#: frontend/src/components/AppSidebar.vue:588
|
||||
#: frontend/src/components/AppSidebar.vue:591
|
||||
msgid "Introduction"
|
||||
msgstr "Uvod"
|
||||
|
||||
@@ -3214,7 +3242,7 @@ msgstr "Pozivni Kod"
|
||||
msgid "Invite Only"
|
||||
msgstr "Samo po Pozivu"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:507
|
||||
#: frontend/src/components/AppSidebar.vue:522
|
||||
msgid "Invite your team and students"
|
||||
msgstr "Pozovi vaš tim i učenike"
|
||||
|
||||
@@ -3251,7 +3279,7 @@ msgstr "SCORM Paket"
|
||||
msgid "Issue Date"
|
||||
msgstr "Datum Izdavanja"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:614
|
||||
#: frontend/src/components/AppSidebar.vue:629
|
||||
msgid "Issue a Certificate"
|
||||
msgstr "Izdaj Certifikat"
|
||||
|
||||
@@ -3264,7 +3292,7 @@ msgid "Issued On"
|
||||
msgstr "Izdato"
|
||||
|
||||
#: frontend/src/pages/ProfileAbout.vue:73
|
||||
#: frontend/src/pages/ProfileCertificates.vue:17
|
||||
#: frontend/src/pages/ProfileCertificates.vue:20
|
||||
#: lms/templates/certificates_section.html:11
|
||||
msgid "Issued on"
|
||||
msgstr "Izdato"
|
||||
@@ -3679,7 +3707,7 @@ msgstr "Pokreni Datoteku"
|
||||
msgid "Learning Consistency"
|
||||
msgstr "Dosljednost Učenja"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:598
|
||||
#: frontend/src/components/AppSidebar.vue:613
|
||||
msgid "Learning Paths"
|
||||
msgstr "Putovi Učenja"
|
||||
|
||||
@@ -3728,7 +3756,7 @@ msgstr "Referenca Lekcije"
|
||||
msgid "Lesson Title"
|
||||
msgstr "Naziv Lekcije"
|
||||
|
||||
#: frontend/src/pages/LessonForm.vue:426
|
||||
#: frontend/src/pages/LessonForm.vue:425
|
||||
msgid "Lesson created successfully"
|
||||
msgstr "Lekcija je uspješno kreirana"
|
||||
|
||||
@@ -3740,7 +3768,7 @@ msgstr "Lekcija je uspješno izbrisana"
|
||||
msgid "Lesson moved successfully"
|
||||
msgstr "Lekcija je uspješno premještena"
|
||||
|
||||
#: frontend/src/pages/LessonForm.vue:450
|
||||
#: frontend/src/pages/LessonForm.vue:449
|
||||
msgid "Lesson updated successfully"
|
||||
msgstr "Lekcija je uspješno ažurirana"
|
||||
|
||||
@@ -3889,7 +3917,7 @@ msgstr "Unesi ispravanu faktura adresu jer će se koristiti u vašoj fakturi."
|
||||
msgid "Manage Batch"
|
||||
msgstr "Upravljaj Grupom"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:119
|
||||
#: frontend/src/pages/Home/Home.vue:120
|
||||
msgid "Manage your courses and batches at a glance"
|
||||
msgstr "Upravljajte svojim tečajevima i grupama na prvi pogled"
|
||||
|
||||
@@ -3920,7 +3948,7 @@ msgstr "Označi sve kao pročitano"
|
||||
#. Label of the marks (Int) field in DocType 'LMS Quiz Result'
|
||||
#: frontend/src/components/Modals/Question.vue:40
|
||||
#: frontend/src/components/Modals/Question.vue:106
|
||||
#: frontend/src/components/Quiz.vue:120 frontend/src/pages/QuizForm.vue:348
|
||||
#: frontend/src/components/Quiz.vue:120 frontend/src/pages/QuizForm.vue:344
|
||||
#: frontend/src/pages/QuizSubmission.vue:64
|
||||
#: lms/lms/doctype/lms_quiz_question/lms_quiz_question.json
|
||||
#: lms/lms/doctype/lms_quiz_result/lms_quiz_result.json
|
||||
@@ -4199,8 +4227,12 @@ msgstr "Šablon Kreiranje Zahtjeva za Mentora"
|
||||
msgid "Mentor Request Status Update Template"
|
||||
msgstr "Status Šablona Kreiranja Zahtjeva za Mentora"
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:19
|
||||
msgid "Message"
|
||||
msgstr "Poruka"
|
||||
|
||||
#. Label of the meta_description (Small Text) field in DocType 'LMS Settings'
|
||||
#: frontend/src/pages/BatchForm.vue:297 frontend/src/pages/CourseForm.vue:291
|
||||
#: frontend/src/pages/BatchForm.vue:297 frontend/src/pages/CourseForm.vue:303
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Meta Description"
|
||||
msgstr "Meta Opis"
|
||||
@@ -4214,12 +4246,12 @@ msgid "Meta Image"
|
||||
msgstr "Meta Slika"
|
||||
|
||||
#. Label of the meta_keywords (Small Text) field in DocType 'LMS Settings'
|
||||
#: frontend/src/pages/BatchForm.vue:303 frontend/src/pages/CourseForm.vue:297
|
||||
#: frontend/src/pages/BatchForm.vue:303 frontend/src/pages/CourseForm.vue:309
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Meta Keywords"
|
||||
msgstr "Meta Ključne Riječi"
|
||||
|
||||
#: frontend/src/pages/BatchForm.vue:292 frontend/src/pages/CourseForm.vue:286
|
||||
#: frontend/src/pages/BatchForm.vue:292 frontend/src/pages/CourseForm.vue:298
|
||||
msgid "Meta Tags"
|
||||
msgstr "Meta tagovi"
|
||||
|
||||
@@ -4290,7 +4322,7 @@ msgstr "Modul je netačan."
|
||||
msgid "Monday"
|
||||
msgstr "Ponedjeljak"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:622
|
||||
#: frontend/src/components/AppSidebar.vue:637
|
||||
msgid "Monetization"
|
||||
msgstr "Monetizacija"
|
||||
|
||||
@@ -4346,7 +4378,7 @@ msgstr "Novi"
|
||||
msgid "New Batch"
|
||||
msgstr "Nova Grupa"
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:678 lms/www/lms.py:93
|
||||
#: frontend/src/pages/CourseForm.vue:690 lms/www/lms.py:93
|
||||
msgid "New Course"
|
||||
msgstr "Novi Kurs"
|
||||
|
||||
@@ -4370,7 +4402,7 @@ msgstr "Novi Sustav Plaćanja"
|
||||
msgid "New Question"
|
||||
msgstr "Novo Pitanje"
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:404 frontend/src/pages/QuizForm.vue:412
|
||||
#: frontend/src/pages/QuizForm.vue:400 frontend/src/pages/QuizForm.vue:408
|
||||
msgid "New Quiz"
|
||||
msgstr "Novi Kviz"
|
||||
|
||||
@@ -4950,7 +4982,7 @@ msgstr "Broj Telefona"
|
||||
msgid "Pink"
|
||||
msgstr "Roza"
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:34
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:35
|
||||
msgid "Please add <a href='{0}'>{1}</a> for <a href='{2}'>{3}</a> to send calendar invites for evaluations."
|
||||
msgstr "Dodaj <a href='{0}'>{1}</a> za <a href='{2}'>{3}</a> za slanje kalendarskih pozivnica za ocjenjivanje."
|
||||
|
||||
@@ -4974,7 +5006,7 @@ msgstr "Klikni na sljedeće dugme da postavite novu lozinku"
|
||||
msgid "Please complete the previous course to unlock this one."
|
||||
msgstr "Molimo vas da završite prethodni tečaj kako biste otključali ovaj."
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:197
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:196
|
||||
msgid "Please enable the zoom account to use this feature."
|
||||
msgstr "Omogući Zoom račun da biste koristili ovu funkciju."
|
||||
|
||||
@@ -4990,8 +5022,16 @@ msgstr "Popuni sva pitanja za {0} minuta."
|
||||
msgid "Please enter a title."
|
||||
msgstr "Unesi Naziv"
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:29
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:80
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:51
|
||||
msgid "Please enter a valid Contact Us Email."
|
||||
msgstr "Unesi važeću kontakt adresu e-pošte."
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:53
|
||||
msgid "Please enter a valid Contact Us URL."
|
||||
msgstr "Unesi važeći URL za kontakt."
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:32
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:107
|
||||
msgid "Please enter a valid URL."
|
||||
msgstr "Unesi važeći URL."
|
||||
|
||||
@@ -5003,7 +5043,7 @@ msgstr "Unesi važeće vrijeme u formatu HH:mm."
|
||||
msgid "Please enter a valid timestamp"
|
||||
msgstr "Unesi valjanu vremensku oznaku"
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:74
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:101
|
||||
msgid "Please enter the URL for assignment submission."
|
||||
msgstr "Unesi URL za podnošenje zadatka."
|
||||
|
||||
@@ -5031,7 +5071,7 @@ msgstr "Prijavi se da pristupiš ovoj stranici."
|
||||
msgid "Please login to continue with payment."
|
||||
msgstr "Prijavi se da nastaviš s plaćanjem."
|
||||
|
||||
#: lms/lms/utils.py:2012
|
||||
#: lms/lms/utils.py:2020
|
||||
msgid "Please login to enroll in the program."
|
||||
msgstr "Molimo prijavite se kako biste se prijavili u program."
|
||||
|
||||
@@ -5088,7 +5128,7 @@ msgstr "Poduzmi odgovarajuće mjere na {0}"
|
||||
msgid "Please upload a SCORM package"
|
||||
msgstr "Učitaj SCORM Paket"
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:77
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:104
|
||||
msgid "Please upload the assignment file."
|
||||
msgstr "Učitaj datoteku zadatka."
|
||||
|
||||
@@ -5134,7 +5174,7 @@ msgstr "Objava"
|
||||
msgid "Postal Code"
|
||||
msgstr "Poštanski Broj"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:122
|
||||
#: frontend/src/components/AppSidebar.vue:125
|
||||
msgid "Powered by Learning"
|
||||
msgstr "Pokreće se od Učenje"
|
||||
|
||||
@@ -5411,7 +5451,7 @@ msgstr "Python"
|
||||
#: frontend/src/components/Assignment.vue:20
|
||||
#: frontend/src/components/Modals/AssignmentForm.vue:32
|
||||
#: frontend/src/components/Modals/Question.vue:27
|
||||
#: frontend/src/pages/QuizForm.vue:343 frontend/src/pages/QuizSubmission.vue:56
|
||||
#: frontend/src/pages/QuizForm.vue:339 frontend/src/pages/QuizSubmission.vue:56
|
||||
#: lms/lms/doctype/course_lesson/course_lesson.json
|
||||
#: lms/lms/doctype/lms_assignment/lms_assignment.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -5431,11 +5471,11 @@ msgstr "Detalj Pitanja"
|
||||
msgid "Question Name"
|
||||
msgstr "Naziv Pitanja"
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:284
|
||||
#: frontend/src/components/Modals/Question.vue:285
|
||||
msgid "Question added successfully"
|
||||
msgstr "Pitanje je uspješno dodano"
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:334
|
||||
#: frontend/src/components/Modals/Question.vue:335
|
||||
msgid "Question updated successfully"
|
||||
msgstr "Pitanje je uspješno ažurirano"
|
||||
|
||||
@@ -5452,7 +5492,7 @@ msgstr "Pitanje {0} od {1}"
|
||||
msgid "Questions"
|
||||
msgstr "Pitanja"
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:385
|
||||
#: frontend/src/pages/QuizForm.vue:381
|
||||
msgid "Questions deleted successfully"
|
||||
msgstr "Pitanja su uspješno izbrisana"
|
||||
|
||||
@@ -5502,7 +5542,7 @@ msgstr "Kviz je uspješno kreiran"
|
||||
msgid "Quiz is not available to Guest users. Please login to continue."
|
||||
msgstr "Kviz nije dostupan gostima. Prijavi se da nastaviš."
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:310
|
||||
#: frontend/src/pages/QuizForm.vue:306
|
||||
msgid "Quiz updated successfully"
|
||||
msgstr "Kviz je uspješno ažuriran"
|
||||
|
||||
@@ -5511,8 +5551,8 @@ msgstr "Kviz je uspješno ažuriran"
|
||||
msgid "Quiz will appear at the bottom of the lesson."
|
||||
msgstr "Kviz će se pojaviti na dnu lekcije."
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:606
|
||||
#: frontend/src/pages/QuizForm.vue:396 frontend/src/pages/Quizzes.vue:275
|
||||
#: frontend/src/components/AppSidebar.vue:621
|
||||
#: frontend/src/pages/QuizForm.vue:392 frontend/src/pages/Quizzes.vue:275
|
||||
#: frontend/src/pages/Quizzes.vue:285 lms/www/lms.py:249
|
||||
msgid "Quizzes"
|
||||
msgstr "Kvizovi"
|
||||
@@ -5655,7 +5695,7 @@ msgstr "Nastavi"
|
||||
msgid "Resume Video"
|
||||
msgstr "Nastavi Video"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:142
|
||||
#: frontend/src/pages/Home/Home.vue:143
|
||||
msgid "Resume where you left off"
|
||||
msgstr "Nastavite od tamo gdje ste stali"
|
||||
|
||||
@@ -5696,7 +5736,7 @@ msgstr "Preferenca Uloge"
|
||||
msgid "Role updated successfully"
|
||||
msgstr "Uloga je uspješno ažurirana"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:634
|
||||
#: frontend/src/components/AppSidebar.vue:649
|
||||
msgid "Roles"
|
||||
msgstr "Uloge"
|
||||
|
||||
@@ -5914,6 +5954,10 @@ msgstr "Odaberi termin"
|
||||
msgid "Select an assignment"
|
||||
msgstr "Odaberi Zadatak"
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:33
|
||||
msgid "Send"
|
||||
msgstr "Pošalji"
|
||||
|
||||
#: lms/lms/doctype/lms_batch_enrollment/lms_batch_enrollment.js:7
|
||||
msgid "Send Confirmation Email"
|
||||
msgstr "Pošalji potvrdnu e-poštu"
|
||||
@@ -5945,16 +5989,16 @@ msgstr "Postavi boju"
|
||||
msgid "Set your Password"
|
||||
msgstr "Postavite svoju Lozinku"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:577
|
||||
#: frontend/src/components/AppSidebar.vue:592
|
||||
msgid "Setting up"
|
||||
msgstr "Postavljanje"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:627
|
||||
#: frontend/src/components/AppSidebar.vue:642
|
||||
msgid "Setting up payment gateway"
|
||||
msgstr "Postavljanje Platnog Prolaza"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:632
|
||||
#: frontend/src/components/Settings/Settings.vue:7
|
||||
#: frontend/src/components/AppSidebar.vue:647
|
||||
#: frontend/src/components/Settings/Settings.vue:9
|
||||
#: frontend/src/pages/BatchForm.vue:53 frontend/src/pages/CourseForm.vue:142
|
||||
#: frontend/src/pages/ProfileRoles.vue:4
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseSubmission.vue:19
|
||||
@@ -6252,7 +6296,7 @@ msgstr "Status/Rezultat"
|
||||
#. Option for the 'User Category' (Select) field in DocType 'User'
|
||||
#. Option for the 'Required Role' (Select) field in DocType 'Cohort Web Page'
|
||||
#. Option for the 'Member Type' (Select) field in DocType 'LMS Enrollment'
|
||||
#: frontend/src/pages/Home/Home.vue:147 frontend/src/pages/ProfileRoles.vue:38
|
||||
#: frontend/src/pages/Home/Home.vue:148 frontend/src/pages/ProfileRoles.vue:38
|
||||
#: lms/fixtures/custom_field.json
|
||||
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
||||
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
||||
@@ -6289,6 +6333,7 @@ msgstr "Studenti će biti upisani u plaćenu grupu kada završe uplatu"
|
||||
msgid "Subgroup"
|
||||
msgstr "Podgrupa"
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:13
|
||||
#: frontend/src/components/Modals/AnnouncementModal.vue:20
|
||||
#: frontend/src/components/Modals/EmailTemplateModal.vue:31
|
||||
msgid "Subject"
|
||||
@@ -6524,7 +6569,7 @@ msgstr "Hvala vam na povratnim informacijama."
|
||||
msgid "Thanks and Regards"
|
||||
msgstr "Hvala i Pozdrav"
|
||||
|
||||
#: lms/lms/utils.py:1904
|
||||
#: lms/lms/utils.py:1912
|
||||
msgid "The batch is full. Please contact the Administrator."
|
||||
msgstr "Grupa je popunjena. Kontaktiraj Administratora."
|
||||
|
||||
@@ -6536,11 +6581,11 @@ msgstr "Grupa za koju ste se prijavili počinje sutra. Pripremite se i dođete n
|
||||
msgid "The course {0} is now available on {1}."
|
||||
msgstr "Kurs {0} je sada dostupan na {1}."
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:55
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:56
|
||||
msgid "The evaluator of this course is unavailable from {0} to {1}. Please select a date after {1}"
|
||||
msgstr "Ocjenjivač ovog kursa je nedostupan od {0} do {1}. Odaberi datum nakon {1}"
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:73
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:74
|
||||
msgid "The slot is already booked by another participant."
|
||||
msgstr "Termin je već rezervirao drugi učesnik."
|
||||
|
||||
@@ -6576,7 +6621,7 @@ msgstr "Trenutno nema {0} . Pratite nas, nova iskustva učenja su na putu!"
|
||||
msgid "There are no {0} on this site."
|
||||
msgstr "Na ovoj stranici nema {0}."
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:40
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:67
|
||||
msgid "There has been an update on your submission for assignment {0}"
|
||||
msgstr "Došlo je do ažuriranja vaše prijave za zadatak {0}"
|
||||
|
||||
@@ -6613,7 +6658,7 @@ msgstr "Ovaj čas je završen"
|
||||
msgid "This course has:"
|
||||
msgstr "Ovaj kurs ima:"
|
||||
|
||||
#: lms/lms/utils.py:1765
|
||||
#: lms/lms/utils.py:1773
|
||||
msgid "This course is free."
|
||||
msgstr "Ovaj kurs je besplatan."
|
||||
|
||||
@@ -6649,8 +6694,8 @@ msgstr "Ovaj program se sastoji od {0} tečajeva"
|
||||
msgid "This quiz consists of {0} questions."
|
||||
msgstr "Ovaj kviz se sastoji od {0} pitanja."
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:75
|
||||
#: frontend/src/components/AppSidebar.vue:115
|
||||
#: frontend/src/components/AppSidebar.vue:78
|
||||
#: frontend/src/components/AppSidebar.vue:118
|
||||
msgid "This site is being updated. You will not be able to make any changes. Full access will be restored shortly."
|
||||
msgstr "Ova stranica se ažurira. Nećete moći unositi nikakve promjene. Potpuni pristup bit će uskoro vraćen."
|
||||
|
||||
@@ -6721,15 +6766,21 @@ msgstr "Vremenski Šablon"
|
||||
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Batch'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Certificate Request'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Course'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Live Class'
|
||||
#: frontend/src/components/Modals/LiveClassModal.vue:59
|
||||
#: frontend/src/pages/BatchForm.vue:114
|
||||
#: frontend/src/pages/BatchForm.vue:114 frontend/src/pages/CourseForm.vue:288
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.json
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.json
|
||||
msgid "Timezone"
|
||||
msgstr "Vremenska Zona"
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:72
|
||||
msgid "Timezone is required for paid certificates."
|
||||
msgstr "Za plaćene certifikate potrebna je vremenska zona."
|
||||
|
||||
#: lms/templates/emails/batch_confirmation.html:21
|
||||
#: lms/templates/emails/batch_start_reminder.html:16
|
||||
#: lms/templates/emails/live_class_reminder.html:16
|
||||
@@ -6799,7 +6850,7 @@ msgstr "Do"
|
||||
msgid "To Date"
|
||||
msgstr "Do Datuma"
|
||||
|
||||
#: lms/lms/utils.py:1776
|
||||
#: lms/lms/utils.py:1784
|
||||
msgid "To join this batch, please contact the Administrator."
|
||||
msgstr "Da biste se pridružili ovoj grupi, kontaktirajte administratora."
|
||||
|
||||
@@ -7226,7 +7277,7 @@ msgstr "Napišite svoj odgovor ovdje"
|
||||
msgid "Yellow"
|
||||
msgstr "Žuta"
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:95
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:96
|
||||
msgid "You already have an evaluation on {0} at {1} for the course {2}."
|
||||
msgstr "Već imate ocjenjivanje na {0} na {1} za kurs {2}."
|
||||
|
||||
@@ -7279,11 +7330,11 @@ msgstr "Ne možete promijeniti dostupnost dok se stranica ažurira."
|
||||
msgid "You cannot change the roles in read-only mode."
|
||||
msgstr "Ne možete mijenjati uloge u načinu rada samo za čitanje."
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:111
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:112
|
||||
msgid "You cannot schedule evaluations after {0}."
|
||||
msgstr "Ne možete zakazati ocjenjivanje nakon {0}."
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:102
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:103
|
||||
msgid "You cannot schedule evaluations for past slots."
|
||||
msgstr "Ne možete zakazati ocjenjivanje za prošle termine."
|
||||
|
||||
@@ -7340,19 +7391,23 @@ msgstr "Premašili ste maksimalan broj pokušaja ({0}) za ovaj kviz"
|
||||
msgid "You have got a score of {0} for the quiz {1}"
|
||||
msgstr "Imate ocjenu {0} za kviz {1}"
|
||||
|
||||
#: frontend/src/pages/ProfileCertificates.vue:26
|
||||
msgid "You have not received any certificates yet."
|
||||
msgstr "Još niste primili nikakve certifikate."
|
||||
|
||||
#: lms/lms/widgets/NoPreviewModal.html:12
|
||||
msgid "You have opted to be notified for this course. You will receive an email when the course becomes available."
|
||||
msgstr "Odlučili ste da budete obaviješteni o ovom kursu. Primit ćete e-poštu kada kurs postane dostupan."
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:102 frontend/src/pages/Home/Home.vue:125
|
||||
#: frontend/src/pages/Home/Home.vue:103 frontend/src/pages/Home/Home.vue:126
|
||||
msgid "You have {0} upcoming {1} and {2} {3} scheduled."
|
||||
msgstr "Imate zakazano {0} nadolazećih {1} i {2} {3}."
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:109 frontend/src/pages/Home/Home.vue:132
|
||||
#: frontend/src/pages/Home/Home.vue:110 frontend/src/pages/Home/Home.vue:133
|
||||
msgid "You have {0} upcoming {1}."
|
||||
msgstr "Imate {0} nadolazećih {1}."
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:114 frontend/src/pages/Home/Home.vue:137
|
||||
#: frontend/src/pages/Home/Home.vue:115 frontend/src/pages/Home/Home.vue:138
|
||||
msgid "You have {0} {1} scheduled."
|
||||
msgstr "Imate zakazano {0} {1}."
|
||||
|
||||
@@ -7400,7 +7455,7 @@ msgstr "Vaš račun je uspješno kreiran!"
|
||||
msgid "Your Output"
|
||||
msgstr "Vaš Rezultat"
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:309
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:308
|
||||
msgid "Your batch {0} is starting tomorrow"
|
||||
msgstr "Vaša grupa {0} počinje sutra"
|
||||
|
||||
@@ -7408,7 +7463,7 @@ msgstr "Vaša grupa {0} počinje sutra"
|
||||
msgid "Your calendar is set."
|
||||
msgstr "Vaš kalendar je postavljen."
|
||||
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:88
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:95
|
||||
msgid "Your class on {0} is today"
|
||||
msgstr "Vaš čas {0} je danas"
|
||||
|
||||
@@ -7421,7 +7476,7 @@ msgstr "Vaš upis u {{ batch_name }} je potvrđen"
|
||||
msgid "Your evaluation for the course {0} has been scheduled on {1} at {2} {3}."
|
||||
msgstr "Vaša ocjena za kurs {0} je zakazana za {1} u {2} {3}."
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:121
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:136
|
||||
msgid "Your evaluation slot has been booked"
|
||||
msgstr "Vaš termin za ocjenjivanje je rezervisan"
|
||||
|
||||
@@ -7474,8 +7529,8 @@ msgstr "aktivnosti"
|
||||
msgid "activity"
|
||||
msgstr "aktivnost"
|
||||
|
||||
#: frontend/src/components/CourseInstructors.vue:22
|
||||
#: frontend/src/components/CourseInstructors.vue:41
|
||||
#: frontend/src/components/CourseInstructors.vue:24
|
||||
#: frontend/src/components/CourseInstructors.vue:45
|
||||
msgid "and"
|
||||
msgstr "i"
|
||||
|
||||
@@ -7538,11 +7593,15 @@ msgstr "dnevni period"
|
||||
msgid "days"
|
||||
msgstr "dana"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:100 frontend/src/pages/Home/Home.vue:123
|
||||
#: frontend/src/pages/CourseForm.vue:290
|
||||
msgid "e.g. IST, UTC, GMT..."
|
||||
msgstr "npr. IST, UTC, GMT..."
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:101 frontend/src/pages/Home/Home.vue:124
|
||||
msgid "evaluation"
|
||||
msgstr "evaluacija"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:100 frontend/src/pages/Home/Home.vue:123
|
||||
#: frontend/src/pages/Home/Home.vue:101 frontend/src/pages/Home/Home.vue:124
|
||||
msgid "evaluations"
|
||||
msgstr "evaluacije"
|
||||
|
||||
@@ -7562,11 +7621,11 @@ msgstr "jane@example.com"
|
||||
msgid "lessons"
|
||||
msgstr "lekcije"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:98 frontend/src/pages/Home/Home.vue:122
|
||||
#: frontend/src/pages/Home/Home.vue:99 frontend/src/pages/Home/Home.vue:123
|
||||
msgid "live class"
|
||||
msgstr "nastava uživo"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:98 frontend/src/pages/Home/Home.vue:122
|
||||
#: frontend/src/pages/Home/Home.vue:99 frontend/src/pages/Home/Home.vue:123
|
||||
msgid "live classes"
|
||||
msgstr "nastava uživo"
|
||||
|
||||
@@ -7584,11 +7643,11 @@ msgstr "članovi"
|
||||
msgid "minutes"
|
||||
msgstr "minuta"
|
||||
|
||||
#: frontend/src/components/CourseInstructors.vue:41
|
||||
#: frontend/src/components/CourseInstructors.vue:45
|
||||
msgid "others"
|
||||
msgstr "ostalo"
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:344
|
||||
#: frontend/src/pages/QuizForm.vue:340
|
||||
msgid "question_detail"
|
||||
msgstr "pitanje_detalj"
|
||||
|
||||
|
||||
297
lms/locale/hu.po
297
lms/locale/hu.po
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: frappe\n"
|
||||
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
||||
"POT-Creation-Date: 2025-10-03 16:04+0000\n"
|
||||
"PO-Revision-Date: 2025-10-06 10:50\n"
|
||||
"POT-Creation-Date: 2025-10-31 16:04+0000\n"
|
||||
"PO-Revision-Date: 2025-11-02 19:07\n"
|
||||
"Last-Translator: jannat@frappe.io\n"
|
||||
"Language-Team: Hungarian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -196,7 +196,7 @@ msgstr ""
|
||||
msgid "Add a Student"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:585
|
||||
#: frontend/src/components/AppSidebar.vue:600
|
||||
msgid "Add a chapter"
|
||||
msgstr ""
|
||||
|
||||
@@ -208,7 +208,7 @@ msgstr ""
|
||||
msgid "Add a keyword and then press enter"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:586
|
||||
#: frontend/src/components/AppSidebar.vue:601
|
||||
msgid "Add a lesson"
|
||||
msgstr ""
|
||||
|
||||
@@ -216,12 +216,12 @@ msgstr ""
|
||||
msgid "Add a new member"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:166
|
||||
#: frontend/src/components/Modals/Question.vue:167
|
||||
#: frontend/src/pages/QuizForm.vue:200
|
||||
msgid "Add a new question"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:600
|
||||
#: frontend/src/components/AppSidebar.vue:615
|
||||
msgid "Add a program"
|
||||
msgstr ""
|
||||
|
||||
@@ -245,7 +245,7 @@ msgstr ""
|
||||
msgid "Add at least one possible answer for this question: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:549
|
||||
#: frontend/src/components/AppSidebar.vue:564
|
||||
msgid "Add courses to your batch"
|
||||
msgstr ""
|
||||
|
||||
@@ -253,7 +253,7 @@ msgstr ""
|
||||
msgid "Add quiz to this video"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:528
|
||||
#: frontend/src/components/AppSidebar.vue:543
|
||||
msgid "Add students to your batch"
|
||||
msgstr ""
|
||||
|
||||
@@ -269,11 +269,11 @@ msgstr ""
|
||||
msgid "Add your assignment as {0}"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:461
|
||||
#: frontend/src/components/AppSidebar.vue:476
|
||||
msgid "Add your first chapter"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:477
|
||||
#: frontend/src/components/AppSidebar.vue:492
|
||||
msgid "Add your first lesson"
|
||||
msgstr ""
|
||||
|
||||
@@ -378,11 +378,11 @@ msgstr ""
|
||||
msgid "Amount and currency are required for paid batches."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:76
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:79
|
||||
msgid "Amount and currency are required for paid certificates."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:73
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:76
|
||||
msgid "Amount and currency are required for paid courses."
|
||||
msgstr ""
|
||||
|
||||
@@ -508,7 +508,7 @@ msgid "Assessment {0} has already been added to this batch."
|
||||
msgstr ""
|
||||
|
||||
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
||||
#: frontend/src/components/AppSidebar.vue:603
|
||||
#: frontend/src/components/AppSidebar.vue:618
|
||||
#: frontend/src/components/Assessments.vue:5
|
||||
#: frontend/src/components/BatchStudents.vue:32
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
@@ -573,11 +573,11 @@ msgstr ""
|
||||
msgid "Assignment created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:24
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:27
|
||||
msgid "Assignment for Lesson {0} by {1} already exists."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Assignment.vue:359
|
||||
#: frontend/src/components/Assignment.vue:362
|
||||
msgid "Assignment submitted successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -590,7 +590,7 @@ msgstr ""
|
||||
msgid "Assignment will appear at the bottom of the lesson."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:607
|
||||
#: frontend/src/components/AppSidebar.vue:622
|
||||
#: frontend/src/components/Settings/Badges.vue:163
|
||||
#: frontend/src/pages/Assignments.vue:208 lms/www/lms.py:271
|
||||
msgid "Assignments"
|
||||
@@ -1017,7 +1017,7 @@ msgstr ""
|
||||
#. Enrollment'
|
||||
#. Label of a Card Break in the LMS Workspace
|
||||
#. Label of a Link in the LMS Workspace
|
||||
#: frontend/src/components/AppSidebar.vue:611
|
||||
#: frontend/src/components/AppSidebar.vue:626
|
||||
#: frontend/src/components/Modals/Event.vue:381
|
||||
#: frontend/src/pages/BatchForm.vue:69 frontend/src/pages/Batches.vue:58
|
||||
#: frontend/src/pages/CourseCertification.vue:10
|
||||
@@ -1040,6 +1040,11 @@ msgstr ""
|
||||
msgid "Certification Name"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the certifications (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Certifications"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/BatchStudents.vue:17
|
||||
msgid "Certified"
|
||||
msgstr ""
|
||||
@@ -1052,8 +1057,7 @@ msgstr ""
|
||||
msgid "Certified Members"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the certified_participants (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:300
|
||||
#: lms/www/lms.py:300
|
||||
msgid "Certified Participants"
|
||||
msgstr ""
|
||||
|
||||
@@ -1061,7 +1065,7 @@ msgstr ""
|
||||
msgid "Change"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Assignment.vue:345
|
||||
#: frontend/src/components/Assignment.vue:348
|
||||
msgid "Changes saved successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -1272,7 +1276,7 @@ msgstr ""
|
||||
msgid "Collaboration Preference"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:142
|
||||
#: frontend/src/components/AppSidebar.vue:145
|
||||
msgid "Collapse"
|
||||
msgstr "Összeomlás"
|
||||
|
||||
@@ -1291,7 +1295,7 @@ msgstr ""
|
||||
msgid "Color"
|
||||
msgstr "Szín"
|
||||
|
||||
#: frontend/src/pages/BatchForm.vue:306 frontend/src/pages/CourseForm.vue:300
|
||||
#: frontend/src/pages/BatchForm.vue:306 frontend/src/pages/CourseForm.vue:312
|
||||
msgid "Comma separated keywords for SEO"
|
||||
msgstr ""
|
||||
|
||||
@@ -1301,7 +1305,7 @@ msgstr ""
|
||||
#. Label of the comments (Text Editor) field in DocType 'LMS Assignment
|
||||
#. Submission'
|
||||
#. Label of the comments (Small Text) field in DocType 'LMS Mentor Request'
|
||||
#: frontend/src/components/Assignment.vue:167
|
||||
#: frontend/src/components/Assignment.vue:170
|
||||
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
||||
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -1309,7 +1313,7 @@ msgstr ""
|
||||
msgid "Comments"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Assignment.vue:145
|
||||
#: frontend/src/components/Assignment.vue:148
|
||||
msgid "Comments by Evaluator"
|
||||
msgstr ""
|
||||
|
||||
@@ -1464,6 +1468,22 @@ msgstr ""
|
||||
msgid "Congratulations on getting certified!"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the contact_us_tab (Tab Break) field in DocType 'LMS Settings'
|
||||
#: frontend/src/components/ContactUsEmail.vue:5
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us"
|
||||
msgstr "Lépjen kapcsolatba velünk"
|
||||
|
||||
#. Label of the contact_us_email (Data) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us Email"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the contact_us_url (Data) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us URL"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/CourseCardOverlay.vue:63
|
||||
#: frontend/src/pages/Lesson.vue:97
|
||||
msgid "Contact the Administrator to enroll for this course."
|
||||
@@ -1677,7 +1697,7 @@ msgstr ""
|
||||
msgid "Course Name"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseDetail.vue:78 frontend/src/pages/CourseForm.vue:310
|
||||
#: frontend/src/pages/CourseDetail.vue:78 frontend/src/pages/CourseForm.vue:322
|
||||
msgid "Course Outline"
|
||||
msgstr ""
|
||||
|
||||
@@ -1714,15 +1734,15 @@ msgstr ""
|
||||
msgid "Course added to program successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:547
|
||||
#: frontend/src/pages/CourseForm.vue:559
|
||||
msgid "Course created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:584
|
||||
#: frontend/src/pages/CourseForm.vue:596
|
||||
msgid "Course deleted successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:567
|
||||
#: frontend/src/pages/CourseForm.vue:579
|
||||
msgid "Course updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -1815,15 +1835,15 @@ msgstr ""
|
||||
msgid "Create a Quiz"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:593
|
||||
#: frontend/src/components/AppSidebar.vue:608
|
||||
msgid "Create a batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:584
|
||||
#: frontend/src/components/AppSidebar.vue:599
|
||||
msgid "Create a course"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:594
|
||||
#: frontend/src/components/AppSidebar.vue:609
|
||||
msgid "Create a live class"
|
||||
msgstr ""
|
||||
|
||||
@@ -1835,15 +1855,15 @@ msgstr ""
|
||||
msgid "Create an Assignment"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:518
|
||||
#: frontend/src/components/AppSidebar.vue:533
|
||||
msgid "Create your first batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:449
|
||||
#: frontend/src/components/AppSidebar.vue:464
|
||||
msgid "Create your first course"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:496
|
||||
#: frontend/src/components/AppSidebar.vue:511
|
||||
msgid "Create your first quiz"
|
||||
msgstr ""
|
||||
|
||||
@@ -1851,11 +1871,11 @@ msgstr ""
|
||||
msgid "Created"
|
||||
msgstr "Alkotó"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:590
|
||||
#: frontend/src/components/AppSidebar.vue:605
|
||||
msgid "Creating a batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:581
|
||||
#: frontend/src/components/AppSidebar.vue:596
|
||||
msgid "Creating a course"
|
||||
msgstr ""
|
||||
|
||||
@@ -1863,7 +1883,7 @@ msgstr ""
|
||||
#. Label of the currency (Link) field in DocType 'LMS Course'
|
||||
#. Label of the currency (Link) field in DocType 'LMS Payment'
|
||||
#: frontend/src/components/Settings/TransactionDetails.vue:64
|
||||
#: frontend/src/pages/BatchForm.vue:285 frontend/src/pages/CourseForm.vue:279
|
||||
#: frontend/src/pages/BatchForm.vue:285 frontend/src/pages/CourseForm.vue:282
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
#: lms/lms/doctype/lms_payment/lms_payment.json
|
||||
@@ -1879,7 +1899,7 @@ msgstr ""
|
||||
msgid "Current Streak"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:617
|
||||
#: frontend/src/components/AppSidebar.vue:632
|
||||
msgid "Custom Certificate Templates"
|
||||
msgstr ""
|
||||
|
||||
@@ -1979,7 +1999,7 @@ msgstr ""
|
||||
#: frontend/src/components/CourseOutline.vue:360
|
||||
#: frontend/src/components/DiscussionReplies.vue:41
|
||||
#: frontend/src/components/Settings/Badges.vue:171
|
||||
#: frontend/src/pages/BatchForm.vue:565 frontend/src/pages/CourseForm.vue:597
|
||||
#: frontend/src/pages/BatchForm.vue:565 frontend/src/pages/CourseForm.vue:609
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseForm.vue:67
|
||||
#: frontend/src/pages/Programs/ProgramForm.vue:231
|
||||
msgid "Delete"
|
||||
@@ -1989,7 +2009,7 @@ msgstr ""
|
||||
msgid "Delete Chapter"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:591
|
||||
#: frontend/src/pages/CourseForm.vue:603
|
||||
msgid "Delete Course"
|
||||
msgstr ""
|
||||
|
||||
@@ -2001,7 +2021,7 @@ msgstr ""
|
||||
msgid "Delete this lesson?"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:592
|
||||
#: frontend/src/pages/CourseForm.vue:604
|
||||
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
||||
msgstr ""
|
||||
|
||||
@@ -2251,6 +2271,10 @@ msgstr "E-mail sablonok"
|
||||
msgid "Email Templates deleted successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:57
|
||||
msgid "Email sent successfully"
|
||||
msgstr "Az e-mail sikeresen elküldve"
|
||||
|
||||
#. Label of the show_emails (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Emails"
|
||||
@@ -2266,7 +2290,7 @@ msgstr ""
|
||||
msgid "Enable"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:21
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:22
|
||||
msgid "Enable Google API in Google Settings to send calendar invites for evaluations."
|
||||
msgstr ""
|
||||
|
||||
@@ -2365,7 +2389,7 @@ msgstr ""
|
||||
msgid "Enrollment Count"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:1880
|
||||
#: lms/lms/utils.py:1888
|
||||
msgid "Enrollment Failed, {0}"
|
||||
msgstr ""
|
||||
|
||||
@@ -2382,7 +2406,7 @@ msgstr ""
|
||||
msgid "Enrollments"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:26
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:27
|
||||
msgid "Enter Client Id and Client Secret in Google Settings to send calendar invites for evaluations."
|
||||
msgstr ""
|
||||
|
||||
@@ -2402,7 +2426,7 @@ msgstr ""
|
||||
msgid "Error creating email template"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:191
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:190
|
||||
msgid "Error creating live class. Please try again. {0}"
|
||||
msgstr ""
|
||||
|
||||
@@ -2467,7 +2491,7 @@ msgstr ""
|
||||
#. Label of the evaluator (Link) field in DocType 'LMS Course'
|
||||
#: frontend/src/components/Modals/BatchCourseModal.vue:37
|
||||
#: frontend/src/components/Modals/BulkCertificates.vue:22
|
||||
#: frontend/src/pages/CourseForm.vue:268 frontend/src/pages/ProfileRoles.vue:32
|
||||
#: frontend/src/pages/CourseForm.vue:269 frontend/src/pages/ProfileRoles.vue:32
|
||||
#: lms/lms/doctype/batch_course/batch_course.json
|
||||
#: lms/lms/doctype/course_evaluator/course_evaluator.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -2555,7 +2579,7 @@ msgstr ""
|
||||
msgid "Exercise Title"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:142
|
||||
#: frontend/src/components/AppSidebar.vue:145
|
||||
msgid "Expand"
|
||||
msgstr "Kiterjed"
|
||||
|
||||
@@ -2625,10 +2649,14 @@ msgstr ""
|
||||
msgid "Failed to enroll in program: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:137
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:144
|
||||
msgid "Failed to fetch attendance data from Zoom for class {0}: {1}"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:63
|
||||
msgid "Failed to send email"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseSubmission.vue:358
|
||||
msgid "Failed to submit. Please try again. {0}"
|
||||
msgstr ""
|
||||
@@ -2814,7 +2842,7 @@ msgstr ""
|
||||
|
||||
#: frontend/src/components/CertificationLinks.vue:34
|
||||
#: frontend/src/components/CertificationLinks.vue:50
|
||||
#: frontend/src/components/CourseCard.vue:125
|
||||
#: frontend/src/components/CourseCard.vue:126
|
||||
#: frontend/src/pages/CertifiedParticipants.vue:11
|
||||
msgid "Get Certified"
|
||||
msgstr ""
|
||||
@@ -2843,7 +2871,7 @@ msgid "Google Meet Link"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the grade (Data) field in DocType 'Education Detail'
|
||||
#: frontend/src/components/Assignment.vue:161
|
||||
#: frontend/src/components/Assignment.vue:164
|
||||
#: lms/lms/doctype/education_detail/education_detail.json
|
||||
msgid "Grade"
|
||||
msgstr ""
|
||||
@@ -2858,7 +2886,7 @@ msgstr ""
|
||||
msgid "Grade Type"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Assignment.vue:156
|
||||
#: frontend/src/components/Assignment.vue:159
|
||||
msgid "Grading"
|
||||
msgstr ""
|
||||
|
||||
@@ -2898,7 +2926,7 @@ msgstr ""
|
||||
msgid "Hello"
|
||||
msgstr "Szia"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:128
|
||||
#: frontend/src/components/AppSidebar.vue:131
|
||||
msgid "Help"
|
||||
msgstr ""
|
||||
|
||||
@@ -2963,7 +2991,7 @@ msgstr ""
|
||||
msgid "Hints"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:5 frontend/src/pages/Home/Home.vue:153
|
||||
#: frontend/src/pages/Home/Home.vue:5 frontend/src/pages/Home/Home.vue:154
|
||||
msgid "Home"
|
||||
msgstr ""
|
||||
|
||||
@@ -2995,7 +3023,7 @@ msgstr ""
|
||||
msgid "I am unavailable"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:338
|
||||
#: frontend/src/pages/QuizForm.vue:334
|
||||
msgid "ID"
|
||||
msgstr "ID"
|
||||
|
||||
@@ -3155,7 +3183,7 @@ msgstr ""
|
||||
|
||||
#. Label of the instructor (Link) field in DocType 'Cohort'
|
||||
#. Label of the instructor (Link) field in DocType 'Course Instructor'
|
||||
#: frontend/src/pages/Home/Home.vue:148 lms/lms/doctype/cohort/cohort.json
|
||||
#: frontend/src/pages/Home/Home.vue:149 lms/lms/doctype/cohort/cohort.json
|
||||
#: lms/lms/doctype/course_instructor/course_instructor.json
|
||||
msgid "Instructor"
|
||||
msgstr ""
|
||||
@@ -3191,8 +3219,8 @@ msgstr ""
|
||||
msgid "Interest"
|
||||
msgstr "Érdek"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:573
|
||||
#: frontend/src/components/AppSidebar.vue:576
|
||||
#: frontend/src/components/AppSidebar.vue:588
|
||||
#: frontend/src/components/AppSidebar.vue:591
|
||||
msgid "Introduction"
|
||||
msgstr "Bevezetés"
|
||||
|
||||
@@ -3214,7 +3242,7 @@ msgstr ""
|
||||
msgid "Invite Only"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:507
|
||||
#: frontend/src/components/AppSidebar.vue:522
|
||||
msgid "Invite your team and students"
|
||||
msgstr ""
|
||||
|
||||
@@ -3251,7 +3279,7 @@ msgstr ""
|
||||
msgid "Issue Date"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:614
|
||||
#: frontend/src/components/AppSidebar.vue:629
|
||||
msgid "Issue a Certificate"
|
||||
msgstr ""
|
||||
|
||||
@@ -3264,7 +3292,7 @@ msgid "Issued On"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/ProfileAbout.vue:73
|
||||
#: frontend/src/pages/ProfileCertificates.vue:17
|
||||
#: frontend/src/pages/ProfileCertificates.vue:20
|
||||
#: lms/templates/certificates_section.html:11
|
||||
msgid "Issued on"
|
||||
msgstr ""
|
||||
@@ -3679,7 +3707,7 @@ msgstr ""
|
||||
msgid "Learning Consistency"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:598
|
||||
#: frontend/src/components/AppSidebar.vue:613
|
||||
msgid "Learning Paths"
|
||||
msgstr ""
|
||||
|
||||
@@ -3728,7 +3756,7 @@ msgstr ""
|
||||
msgid "Lesson Title"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/LessonForm.vue:426
|
||||
#: frontend/src/pages/LessonForm.vue:425
|
||||
msgid "Lesson created successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -3740,7 +3768,7 @@ msgstr ""
|
||||
msgid "Lesson moved successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/LessonForm.vue:450
|
||||
#: frontend/src/pages/LessonForm.vue:449
|
||||
msgid "Lesson updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -3889,7 +3917,7 @@ msgstr ""
|
||||
msgid "Manage Batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:119
|
||||
#: frontend/src/pages/Home/Home.vue:120
|
||||
msgid "Manage your courses and batches at a glance"
|
||||
msgstr ""
|
||||
|
||||
@@ -3920,7 +3948,7 @@ msgstr "Mindegyik megjelölése olvasottként"
|
||||
#. Label of the marks (Int) field in DocType 'LMS Quiz Result'
|
||||
#: frontend/src/components/Modals/Question.vue:40
|
||||
#: frontend/src/components/Modals/Question.vue:106
|
||||
#: frontend/src/components/Quiz.vue:120 frontend/src/pages/QuizForm.vue:348
|
||||
#: frontend/src/components/Quiz.vue:120 frontend/src/pages/QuizForm.vue:344
|
||||
#: frontend/src/pages/QuizSubmission.vue:64
|
||||
#: lms/lms/doctype/lms_quiz_question/lms_quiz_question.json
|
||||
#: lms/lms/doctype/lms_quiz_result/lms_quiz_result.json
|
||||
@@ -4199,8 +4227,12 @@ msgstr ""
|
||||
msgid "Mentor Request Status Update Template"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:19
|
||||
msgid "Message"
|
||||
msgstr "Üzenet"
|
||||
|
||||
#. Label of the meta_description (Small Text) field in DocType 'LMS Settings'
|
||||
#: frontend/src/pages/BatchForm.vue:297 frontend/src/pages/CourseForm.vue:291
|
||||
#: frontend/src/pages/BatchForm.vue:297 frontend/src/pages/CourseForm.vue:303
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Meta Description"
|
||||
msgstr "Meta Leírás"
|
||||
@@ -4214,12 +4246,12 @@ msgid "Meta Image"
|
||||
msgstr "Meta kép"
|
||||
|
||||
#. Label of the meta_keywords (Small Text) field in DocType 'LMS Settings'
|
||||
#: frontend/src/pages/BatchForm.vue:303 frontend/src/pages/CourseForm.vue:297
|
||||
#: frontend/src/pages/BatchForm.vue:303 frontend/src/pages/CourseForm.vue:309
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Meta Keywords"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/BatchForm.vue:292 frontend/src/pages/CourseForm.vue:286
|
||||
#: frontend/src/pages/BatchForm.vue:292 frontend/src/pages/CourseForm.vue:298
|
||||
msgid "Meta Tags"
|
||||
msgstr ""
|
||||
|
||||
@@ -4290,7 +4322,7 @@ msgstr ""
|
||||
msgid "Monday"
|
||||
msgstr "Hétfő"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:622
|
||||
#: frontend/src/components/AppSidebar.vue:637
|
||||
msgid "Monetization"
|
||||
msgstr ""
|
||||
|
||||
@@ -4346,7 +4378,7 @@ msgstr ""
|
||||
msgid "New Batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:678 lms/www/lms.py:93
|
||||
#: frontend/src/pages/CourseForm.vue:690 lms/www/lms.py:93
|
||||
msgid "New Course"
|
||||
msgstr ""
|
||||
|
||||
@@ -4370,7 +4402,7 @@ msgstr ""
|
||||
msgid "New Question"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:404 frontend/src/pages/QuizForm.vue:412
|
||||
#: frontend/src/pages/QuizForm.vue:400 frontend/src/pages/QuizForm.vue:408
|
||||
msgid "New Quiz"
|
||||
msgstr ""
|
||||
|
||||
@@ -4950,7 +4982,7 @@ msgstr ""
|
||||
msgid "Pink"
|
||||
msgstr "Rózsaszín"
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:34
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:35
|
||||
msgid "Please add <a href='{0}'>{1}</a> for <a href='{2}'>{3}</a> to send calendar invites for evaluations."
|
||||
msgstr ""
|
||||
|
||||
@@ -4974,7 +5006,7 @@ msgstr ""
|
||||
msgid "Please complete the previous course to unlock this one."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:197
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:196
|
||||
msgid "Please enable the zoom account to use this feature."
|
||||
msgstr ""
|
||||
|
||||
@@ -4990,8 +5022,16 @@ msgstr ""
|
||||
msgid "Please enter a title."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:29
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:80
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:51
|
||||
msgid "Please enter a valid Contact Us Email."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:53
|
||||
msgid "Please enter a valid Contact Us URL."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:32
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:107
|
||||
msgid "Please enter a valid URL."
|
||||
msgstr ""
|
||||
|
||||
@@ -5003,7 +5043,7 @@ msgstr ""
|
||||
msgid "Please enter a valid timestamp"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:74
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:101
|
||||
msgid "Please enter the URL for assignment submission."
|
||||
msgstr ""
|
||||
|
||||
@@ -5031,7 +5071,7 @@ msgstr ""
|
||||
msgid "Please login to continue with payment."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:2012
|
||||
#: lms/lms/utils.py:2020
|
||||
msgid "Please login to enroll in the program."
|
||||
msgstr ""
|
||||
|
||||
@@ -5088,7 +5128,7 @@ msgstr ""
|
||||
msgid "Please upload a SCORM package"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:77
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:104
|
||||
msgid "Please upload the assignment file."
|
||||
msgstr ""
|
||||
|
||||
@@ -5134,7 +5174,7 @@ msgstr "Hozzászólás"
|
||||
msgid "Postal Code"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:122
|
||||
#: frontend/src/components/AppSidebar.vue:125
|
||||
msgid "Powered by Learning"
|
||||
msgstr ""
|
||||
|
||||
@@ -5411,7 +5451,7 @@ msgstr "Python"
|
||||
#: frontend/src/components/Assignment.vue:20
|
||||
#: frontend/src/components/Modals/AssignmentForm.vue:32
|
||||
#: frontend/src/components/Modals/Question.vue:27
|
||||
#: frontend/src/pages/QuizForm.vue:343 frontend/src/pages/QuizSubmission.vue:56
|
||||
#: frontend/src/pages/QuizForm.vue:339 frontend/src/pages/QuizSubmission.vue:56
|
||||
#: lms/lms/doctype/course_lesson/course_lesson.json
|
||||
#: lms/lms/doctype/lms_assignment/lms_assignment.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -5431,11 +5471,11 @@ msgstr ""
|
||||
msgid "Question Name"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:284
|
||||
#: frontend/src/components/Modals/Question.vue:285
|
||||
msgid "Question added successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:334
|
||||
#: frontend/src/components/Modals/Question.vue:335
|
||||
msgid "Question updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -5452,7 +5492,7 @@ msgstr ""
|
||||
msgid "Questions"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:385
|
||||
#: frontend/src/pages/QuizForm.vue:381
|
||||
msgid "Questions deleted successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -5502,7 +5542,7 @@ msgstr ""
|
||||
msgid "Quiz is not available to Guest users. Please login to continue."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:310
|
||||
#: frontend/src/pages/QuizForm.vue:306
|
||||
msgid "Quiz updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -5511,8 +5551,8 @@ msgstr ""
|
||||
msgid "Quiz will appear at the bottom of the lesson."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:606
|
||||
#: frontend/src/pages/QuizForm.vue:396 frontend/src/pages/Quizzes.vue:275
|
||||
#: frontend/src/components/AppSidebar.vue:621
|
||||
#: frontend/src/pages/QuizForm.vue:392 frontend/src/pages/Quizzes.vue:275
|
||||
#: frontend/src/pages/Quizzes.vue:285 lms/www/lms.py:249
|
||||
msgid "Quizzes"
|
||||
msgstr ""
|
||||
@@ -5655,7 +5695,7 @@ msgstr ""
|
||||
msgid "Resume Video"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:142
|
||||
#: frontend/src/pages/Home/Home.vue:143
|
||||
msgid "Resume where you left off"
|
||||
msgstr ""
|
||||
|
||||
@@ -5696,7 +5736,7 @@ msgstr ""
|
||||
msgid "Role updated successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:634
|
||||
#: frontend/src/components/AppSidebar.vue:649
|
||||
msgid "Roles"
|
||||
msgstr "Beosztások"
|
||||
|
||||
@@ -5914,6 +5954,10 @@ msgstr ""
|
||||
msgid "Select an assignment"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:33
|
||||
msgid "Send"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch_enrollment/lms_batch_enrollment.js:7
|
||||
msgid "Send Confirmation Email"
|
||||
msgstr ""
|
||||
@@ -5945,16 +5989,16 @@ msgstr ""
|
||||
msgid "Set your Password"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:577
|
||||
#: frontend/src/components/AppSidebar.vue:592
|
||||
msgid "Setting up"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:627
|
||||
#: frontend/src/components/AppSidebar.vue:642
|
||||
msgid "Setting up payment gateway"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:632
|
||||
#: frontend/src/components/Settings/Settings.vue:7
|
||||
#: frontend/src/components/AppSidebar.vue:647
|
||||
#: frontend/src/components/Settings/Settings.vue:9
|
||||
#: frontend/src/pages/BatchForm.vue:53 frontend/src/pages/CourseForm.vue:142
|
||||
#: frontend/src/pages/ProfileRoles.vue:4
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseSubmission.vue:19
|
||||
@@ -6252,7 +6296,7 @@ msgstr ""
|
||||
#. Option for the 'User Category' (Select) field in DocType 'User'
|
||||
#. Option for the 'Required Role' (Select) field in DocType 'Cohort Web Page'
|
||||
#. Option for the 'Member Type' (Select) field in DocType 'LMS Enrollment'
|
||||
#: frontend/src/pages/Home/Home.vue:147 frontend/src/pages/ProfileRoles.vue:38
|
||||
#: frontend/src/pages/Home/Home.vue:148 frontend/src/pages/ProfileRoles.vue:38
|
||||
#: lms/fixtures/custom_field.json
|
||||
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
||||
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
||||
@@ -6289,6 +6333,7 @@ msgstr ""
|
||||
msgid "Subgroup"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:13
|
||||
#: frontend/src/components/Modals/AnnouncementModal.vue:20
|
||||
#: frontend/src/components/Modals/EmailTemplateModal.vue:31
|
||||
msgid "Subject"
|
||||
@@ -6524,7 +6569,7 @@ msgstr ""
|
||||
msgid "Thanks and Regards"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:1904
|
||||
#: lms/lms/utils.py:1912
|
||||
msgid "The batch is full. Please contact the Administrator."
|
||||
msgstr ""
|
||||
|
||||
@@ -6536,11 +6581,11 @@ msgstr ""
|
||||
msgid "The course {0} is now available on {1}."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:55
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:56
|
||||
msgid "The evaluator of this course is unavailable from {0} to {1}. Please select a date after {1}"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:73
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:74
|
||||
msgid "The slot is already booked by another participant."
|
||||
msgstr ""
|
||||
|
||||
@@ -6576,7 +6621,7 @@ msgstr ""
|
||||
msgid "There are no {0} on this site."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:40
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:67
|
||||
msgid "There has been an update on your submission for assignment {0}"
|
||||
msgstr ""
|
||||
|
||||
@@ -6613,7 +6658,7 @@ msgstr ""
|
||||
msgid "This course has:"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:1765
|
||||
#: lms/lms/utils.py:1773
|
||||
msgid "This course is free."
|
||||
msgstr ""
|
||||
|
||||
@@ -6649,8 +6694,8 @@ msgstr ""
|
||||
msgid "This quiz consists of {0} questions."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:75
|
||||
#: frontend/src/components/AppSidebar.vue:115
|
||||
#: frontend/src/components/AppSidebar.vue:78
|
||||
#: frontend/src/components/AppSidebar.vue:118
|
||||
msgid "This site is being updated. You will not be able to make any changes. Full access will be restored shortly."
|
||||
msgstr ""
|
||||
|
||||
@@ -6721,15 +6766,21 @@ msgstr ""
|
||||
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Batch'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Certificate Request'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Course'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Live Class'
|
||||
#: frontend/src/components/Modals/LiveClassModal.vue:59
|
||||
#: frontend/src/pages/BatchForm.vue:114
|
||||
#: frontend/src/pages/BatchForm.vue:114 frontend/src/pages/CourseForm.vue:288
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.json
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.json
|
||||
msgid "Timezone"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:72
|
||||
msgid "Timezone is required for paid certificates."
|
||||
msgstr ""
|
||||
|
||||
#: lms/templates/emails/batch_confirmation.html:21
|
||||
#: lms/templates/emails/batch_start_reminder.html:16
|
||||
#: lms/templates/emails/live_class_reminder.html:16
|
||||
@@ -6799,7 +6850,7 @@ msgstr ""
|
||||
msgid "To Date"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:1776
|
||||
#: lms/lms/utils.py:1784
|
||||
msgid "To join this batch, please contact the Administrator."
|
||||
msgstr ""
|
||||
|
||||
@@ -7226,7 +7277,7 @@ msgstr ""
|
||||
msgid "Yellow"
|
||||
msgstr "Sárga"
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:95
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:96
|
||||
msgid "You already have an evaluation on {0} at {1} for the course {2}."
|
||||
msgstr ""
|
||||
|
||||
@@ -7279,11 +7330,11 @@ msgstr ""
|
||||
msgid "You cannot change the roles in read-only mode."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:111
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:112
|
||||
msgid "You cannot schedule evaluations after {0}."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:102
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:103
|
||||
msgid "You cannot schedule evaluations for past slots."
|
||||
msgstr ""
|
||||
|
||||
@@ -7340,19 +7391,23 @@ msgstr ""
|
||||
msgid "You have got a score of {0} for the quiz {1}"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/ProfileCertificates.vue:26
|
||||
msgid "You have not received any certificates yet."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/widgets/NoPreviewModal.html:12
|
||||
msgid "You have opted to be notified for this course. You will receive an email when the course becomes available."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:102 frontend/src/pages/Home/Home.vue:125
|
||||
#: frontend/src/pages/Home/Home.vue:103 frontend/src/pages/Home/Home.vue:126
|
||||
msgid "You have {0} upcoming {1} and {2} {3} scheduled."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:109 frontend/src/pages/Home/Home.vue:132
|
||||
#: frontend/src/pages/Home/Home.vue:110 frontend/src/pages/Home/Home.vue:133
|
||||
msgid "You have {0} upcoming {1}."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:114 frontend/src/pages/Home/Home.vue:137
|
||||
#: frontend/src/pages/Home/Home.vue:115 frontend/src/pages/Home/Home.vue:138
|
||||
msgid "You have {0} {1} scheduled."
|
||||
msgstr ""
|
||||
|
||||
@@ -7400,7 +7455,7 @@ msgstr ""
|
||||
msgid "Your Output"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:309
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:308
|
||||
msgid "Your batch {0} is starting tomorrow"
|
||||
msgstr ""
|
||||
|
||||
@@ -7408,7 +7463,7 @@ msgstr ""
|
||||
msgid "Your calendar is set."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:88
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:95
|
||||
msgid "Your class on {0} is today"
|
||||
msgstr ""
|
||||
|
||||
@@ -7421,7 +7476,7 @@ msgstr ""
|
||||
msgid "Your evaluation for the course {0} has been scheduled on {1} at {2} {3}."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:121
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:136
|
||||
msgid "Your evaluation slot has been booked"
|
||||
msgstr ""
|
||||
|
||||
@@ -7474,8 +7529,8 @@ msgstr "tevékenységek"
|
||||
msgid "activity"
|
||||
msgstr "tevékenység"
|
||||
|
||||
#: frontend/src/components/CourseInstructors.vue:22
|
||||
#: frontend/src/components/CourseInstructors.vue:41
|
||||
#: frontend/src/components/CourseInstructors.vue:24
|
||||
#: frontend/src/components/CourseInstructors.vue:45
|
||||
msgid "and"
|
||||
msgstr ""
|
||||
|
||||
@@ -7538,11 +7593,15 @@ msgstr ""
|
||||
msgid "days"
|
||||
msgstr "napok"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:100 frontend/src/pages/Home/Home.vue:123
|
||||
#: frontend/src/pages/CourseForm.vue:290
|
||||
msgid "e.g. IST, UTC, GMT..."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:101 frontend/src/pages/Home/Home.vue:124
|
||||
msgid "evaluation"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:100 frontend/src/pages/Home/Home.vue:123
|
||||
#: frontend/src/pages/Home/Home.vue:101 frontend/src/pages/Home/Home.vue:124
|
||||
msgid "evaluations"
|
||||
msgstr ""
|
||||
|
||||
@@ -7562,11 +7621,11 @@ msgstr "nev@pelda.hu"
|
||||
msgid "lessons"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:98 frontend/src/pages/Home/Home.vue:122
|
||||
#: frontend/src/pages/Home/Home.vue:99 frontend/src/pages/Home/Home.vue:123
|
||||
msgid "live class"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:98 frontend/src/pages/Home/Home.vue:122
|
||||
#: frontend/src/pages/Home/Home.vue:99 frontend/src/pages/Home/Home.vue:123
|
||||
msgid "live classes"
|
||||
msgstr ""
|
||||
|
||||
@@ -7584,11 +7643,11 @@ msgstr "tagok"
|
||||
msgid "minutes"
|
||||
msgstr "percek"
|
||||
|
||||
#: frontend/src/components/CourseInstructors.vue:41
|
||||
#: frontend/src/components/CourseInstructors.vue:45
|
||||
msgid "others"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:344
|
||||
#: frontend/src/pages/QuizForm.vue:340
|
||||
msgid "question_detail"
|
||||
msgstr ""
|
||||
|
||||
|
||||
297
lms/locale/id.po
297
lms/locale/id.po
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: frappe\n"
|
||||
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
||||
"POT-Creation-Date: 2025-10-03 16:04+0000\n"
|
||||
"PO-Revision-Date: 2025-10-06 10:51\n"
|
||||
"POT-Creation-Date: 2025-10-31 16:04+0000\n"
|
||||
"PO-Revision-Date: 2025-11-02 19:07\n"
|
||||
"Last-Translator: jannat@frappe.io\n"
|
||||
"Language-Team: Indonesian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -196,7 +196,7 @@ msgstr ""
|
||||
msgid "Add a Student"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:585
|
||||
#: frontend/src/components/AppSidebar.vue:600
|
||||
msgid "Add a chapter"
|
||||
msgstr ""
|
||||
|
||||
@@ -208,7 +208,7 @@ msgstr ""
|
||||
msgid "Add a keyword and then press enter"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:586
|
||||
#: frontend/src/components/AppSidebar.vue:601
|
||||
msgid "Add a lesson"
|
||||
msgstr ""
|
||||
|
||||
@@ -216,12 +216,12 @@ msgstr ""
|
||||
msgid "Add a new member"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:166
|
||||
#: frontend/src/components/Modals/Question.vue:167
|
||||
#: frontend/src/pages/QuizForm.vue:200
|
||||
msgid "Add a new question"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:600
|
||||
#: frontend/src/components/AppSidebar.vue:615
|
||||
msgid "Add a program"
|
||||
msgstr ""
|
||||
|
||||
@@ -245,7 +245,7 @@ msgstr ""
|
||||
msgid "Add at least one possible answer for this question: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:549
|
||||
#: frontend/src/components/AppSidebar.vue:564
|
||||
msgid "Add courses to your batch"
|
||||
msgstr ""
|
||||
|
||||
@@ -253,7 +253,7 @@ msgstr ""
|
||||
msgid "Add quiz to this video"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:528
|
||||
#: frontend/src/components/AppSidebar.vue:543
|
||||
msgid "Add students to your batch"
|
||||
msgstr ""
|
||||
|
||||
@@ -269,11 +269,11 @@ msgstr ""
|
||||
msgid "Add your assignment as {0}"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:461
|
||||
#: frontend/src/components/AppSidebar.vue:476
|
||||
msgid "Add your first chapter"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:477
|
||||
#: frontend/src/components/AppSidebar.vue:492
|
||||
msgid "Add your first lesson"
|
||||
msgstr ""
|
||||
|
||||
@@ -378,11 +378,11 @@ msgstr ""
|
||||
msgid "Amount and currency are required for paid batches."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:76
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:79
|
||||
msgid "Amount and currency are required for paid certificates."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:73
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:76
|
||||
msgid "Amount and currency are required for paid courses."
|
||||
msgstr ""
|
||||
|
||||
@@ -508,7 +508,7 @@ msgid "Assessment {0} has already been added to this batch."
|
||||
msgstr ""
|
||||
|
||||
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
||||
#: frontend/src/components/AppSidebar.vue:603
|
||||
#: frontend/src/components/AppSidebar.vue:618
|
||||
#: frontend/src/components/Assessments.vue:5
|
||||
#: frontend/src/components/BatchStudents.vue:32
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
@@ -573,11 +573,11 @@ msgstr ""
|
||||
msgid "Assignment created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:24
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:27
|
||||
msgid "Assignment for Lesson {0} by {1} already exists."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Assignment.vue:359
|
||||
#: frontend/src/components/Assignment.vue:362
|
||||
msgid "Assignment submitted successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -590,7 +590,7 @@ msgstr ""
|
||||
msgid "Assignment will appear at the bottom of the lesson."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:607
|
||||
#: frontend/src/components/AppSidebar.vue:622
|
||||
#: frontend/src/components/Settings/Badges.vue:163
|
||||
#: frontend/src/pages/Assignments.vue:208 lms/www/lms.py:271
|
||||
msgid "Assignments"
|
||||
@@ -1017,7 +1017,7 @@ msgstr ""
|
||||
#. Enrollment'
|
||||
#. Label of a Card Break in the LMS Workspace
|
||||
#. Label of a Link in the LMS Workspace
|
||||
#: frontend/src/components/AppSidebar.vue:611
|
||||
#: frontend/src/components/AppSidebar.vue:626
|
||||
#: frontend/src/components/Modals/Event.vue:381
|
||||
#: frontend/src/pages/BatchForm.vue:69 frontend/src/pages/Batches.vue:58
|
||||
#: frontend/src/pages/CourseCertification.vue:10
|
||||
@@ -1040,6 +1040,11 @@ msgstr ""
|
||||
msgid "Certification Name"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the certifications (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Certifications"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/BatchStudents.vue:17
|
||||
msgid "Certified"
|
||||
msgstr ""
|
||||
@@ -1052,8 +1057,7 @@ msgstr ""
|
||||
msgid "Certified Members"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the certified_participants (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:300
|
||||
#: lms/www/lms.py:300
|
||||
msgid "Certified Participants"
|
||||
msgstr ""
|
||||
|
||||
@@ -1061,7 +1065,7 @@ msgstr ""
|
||||
msgid "Change"
|
||||
msgstr "Perubahan"
|
||||
|
||||
#: frontend/src/components/Assignment.vue:345
|
||||
#: frontend/src/components/Assignment.vue:348
|
||||
msgid "Changes saved successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -1272,7 +1276,7 @@ msgstr ""
|
||||
msgid "Collaboration Preference"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:142
|
||||
#: frontend/src/components/AppSidebar.vue:145
|
||||
msgid "Collapse"
|
||||
msgstr "Jatuh"
|
||||
|
||||
@@ -1291,7 +1295,7 @@ msgstr ""
|
||||
msgid "Color"
|
||||
msgstr "Warna"
|
||||
|
||||
#: frontend/src/pages/BatchForm.vue:306 frontend/src/pages/CourseForm.vue:300
|
||||
#: frontend/src/pages/BatchForm.vue:306 frontend/src/pages/CourseForm.vue:312
|
||||
msgid "Comma separated keywords for SEO"
|
||||
msgstr ""
|
||||
|
||||
@@ -1301,7 +1305,7 @@ msgstr ""
|
||||
#. Label of the comments (Text Editor) field in DocType 'LMS Assignment
|
||||
#. Submission'
|
||||
#. Label of the comments (Small Text) field in DocType 'LMS Mentor Request'
|
||||
#: frontend/src/components/Assignment.vue:167
|
||||
#: frontend/src/components/Assignment.vue:170
|
||||
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
||||
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -1309,7 +1313,7 @@ msgstr ""
|
||||
msgid "Comments"
|
||||
msgstr "Komentar"
|
||||
|
||||
#: frontend/src/components/Assignment.vue:145
|
||||
#: frontend/src/components/Assignment.vue:148
|
||||
msgid "Comments by Evaluator"
|
||||
msgstr ""
|
||||
|
||||
@@ -1464,6 +1468,22 @@ msgstr ""
|
||||
msgid "Congratulations on getting certified!"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the contact_us_tab (Tab Break) field in DocType 'LMS Settings'
|
||||
#: frontend/src/components/ContactUsEmail.vue:5
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the contact_us_email (Data) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us Email"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the contact_us_url (Data) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us URL"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/CourseCardOverlay.vue:63
|
||||
#: frontend/src/pages/Lesson.vue:97
|
||||
msgid "Contact the Administrator to enroll for this course."
|
||||
@@ -1677,7 +1697,7 @@ msgstr ""
|
||||
msgid "Course Name"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseDetail.vue:78 frontend/src/pages/CourseForm.vue:310
|
||||
#: frontend/src/pages/CourseDetail.vue:78 frontend/src/pages/CourseForm.vue:322
|
||||
msgid "Course Outline"
|
||||
msgstr ""
|
||||
|
||||
@@ -1714,15 +1734,15 @@ msgstr ""
|
||||
msgid "Course added to program successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:547
|
||||
#: frontend/src/pages/CourseForm.vue:559
|
||||
msgid "Course created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:584
|
||||
#: frontend/src/pages/CourseForm.vue:596
|
||||
msgid "Course deleted successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:567
|
||||
#: frontend/src/pages/CourseForm.vue:579
|
||||
msgid "Course updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -1815,15 +1835,15 @@ msgstr ""
|
||||
msgid "Create a Quiz"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:593
|
||||
#: frontend/src/components/AppSidebar.vue:608
|
||||
msgid "Create a batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:584
|
||||
#: frontend/src/components/AppSidebar.vue:599
|
||||
msgid "Create a course"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:594
|
||||
#: frontend/src/components/AppSidebar.vue:609
|
||||
msgid "Create a live class"
|
||||
msgstr ""
|
||||
|
||||
@@ -1835,15 +1855,15 @@ msgstr ""
|
||||
msgid "Create an Assignment"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:518
|
||||
#: frontend/src/components/AppSidebar.vue:533
|
||||
msgid "Create your first batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:449
|
||||
#: frontend/src/components/AppSidebar.vue:464
|
||||
msgid "Create your first course"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:496
|
||||
#: frontend/src/components/AppSidebar.vue:511
|
||||
msgid "Create your first quiz"
|
||||
msgstr ""
|
||||
|
||||
@@ -1851,11 +1871,11 @@ msgstr ""
|
||||
msgid "Created"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:590
|
||||
#: frontend/src/components/AppSidebar.vue:605
|
||||
msgid "Creating a batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:581
|
||||
#: frontend/src/components/AppSidebar.vue:596
|
||||
msgid "Creating a course"
|
||||
msgstr ""
|
||||
|
||||
@@ -1863,7 +1883,7 @@ msgstr ""
|
||||
#. Label of the currency (Link) field in DocType 'LMS Course'
|
||||
#. Label of the currency (Link) field in DocType 'LMS Payment'
|
||||
#: frontend/src/components/Settings/TransactionDetails.vue:64
|
||||
#: frontend/src/pages/BatchForm.vue:285 frontend/src/pages/CourseForm.vue:279
|
||||
#: frontend/src/pages/BatchForm.vue:285 frontend/src/pages/CourseForm.vue:282
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
#: lms/lms/doctype/lms_payment/lms_payment.json
|
||||
@@ -1879,7 +1899,7 @@ msgstr ""
|
||||
msgid "Current Streak"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:617
|
||||
#: frontend/src/components/AppSidebar.vue:632
|
||||
msgid "Custom Certificate Templates"
|
||||
msgstr ""
|
||||
|
||||
@@ -1979,7 +1999,7 @@ msgstr ""
|
||||
#: frontend/src/components/CourseOutline.vue:360
|
||||
#: frontend/src/components/DiscussionReplies.vue:41
|
||||
#: frontend/src/components/Settings/Badges.vue:171
|
||||
#: frontend/src/pages/BatchForm.vue:565 frontend/src/pages/CourseForm.vue:597
|
||||
#: frontend/src/pages/BatchForm.vue:565 frontend/src/pages/CourseForm.vue:609
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseForm.vue:67
|
||||
#: frontend/src/pages/Programs/ProgramForm.vue:231
|
||||
msgid "Delete"
|
||||
@@ -1989,7 +2009,7 @@ msgstr "Hapus"
|
||||
msgid "Delete Chapter"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:591
|
||||
#: frontend/src/pages/CourseForm.vue:603
|
||||
msgid "Delete Course"
|
||||
msgstr ""
|
||||
|
||||
@@ -2001,7 +2021,7 @@ msgstr ""
|
||||
msgid "Delete this lesson?"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:592
|
||||
#: frontend/src/pages/CourseForm.vue:604
|
||||
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
||||
msgstr ""
|
||||
|
||||
@@ -2251,6 +2271,10 @@ msgstr ""
|
||||
msgid "Email Templates deleted successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:57
|
||||
msgid "Email sent successfully"
|
||||
msgstr "Email berhasil dikirim"
|
||||
|
||||
#. Label of the show_emails (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Emails"
|
||||
@@ -2266,7 +2290,7 @@ msgstr "Karyawan"
|
||||
msgid "Enable"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:21
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:22
|
||||
msgid "Enable Google API in Google Settings to send calendar invites for evaluations."
|
||||
msgstr ""
|
||||
|
||||
@@ -2365,7 +2389,7 @@ msgstr ""
|
||||
msgid "Enrollment Count"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:1880
|
||||
#: lms/lms/utils.py:1888
|
||||
msgid "Enrollment Failed, {0}"
|
||||
msgstr ""
|
||||
|
||||
@@ -2382,7 +2406,7 @@ msgstr ""
|
||||
msgid "Enrollments"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:26
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:27
|
||||
msgid "Enter Client Id and Client Secret in Google Settings to send calendar invites for evaluations."
|
||||
msgstr ""
|
||||
|
||||
@@ -2402,7 +2426,7 @@ msgstr ""
|
||||
msgid "Error creating email template"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:191
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:190
|
||||
msgid "Error creating live class. Please try again. {0}"
|
||||
msgstr ""
|
||||
|
||||
@@ -2467,7 +2491,7 @@ msgstr ""
|
||||
#. Label of the evaluator (Link) field in DocType 'LMS Course'
|
||||
#: frontend/src/components/Modals/BatchCourseModal.vue:37
|
||||
#: frontend/src/components/Modals/BulkCertificates.vue:22
|
||||
#: frontend/src/pages/CourseForm.vue:268 frontend/src/pages/ProfileRoles.vue:32
|
||||
#: frontend/src/pages/CourseForm.vue:269 frontend/src/pages/ProfileRoles.vue:32
|
||||
#: lms/lms/doctype/batch_course/batch_course.json
|
||||
#: lms/lms/doctype/course_evaluator/course_evaluator.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -2555,7 +2579,7 @@ msgstr ""
|
||||
msgid "Exercise Title"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:142
|
||||
#: frontend/src/components/AppSidebar.vue:145
|
||||
msgid "Expand"
|
||||
msgstr "Memperluas"
|
||||
|
||||
@@ -2625,10 +2649,14 @@ msgstr ""
|
||||
msgid "Failed to enroll in program: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:137
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:144
|
||||
msgid "Failed to fetch attendance data from Zoom for class {0}: {1}"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:63
|
||||
msgid "Failed to send email"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseSubmission.vue:358
|
||||
msgid "Failed to submit. Please try again. {0}"
|
||||
msgstr ""
|
||||
@@ -2814,7 +2842,7 @@ msgstr ""
|
||||
|
||||
#: frontend/src/components/CertificationLinks.vue:34
|
||||
#: frontend/src/components/CertificationLinks.vue:50
|
||||
#: frontend/src/components/CourseCard.vue:125
|
||||
#: frontend/src/components/CourseCard.vue:126
|
||||
#: frontend/src/pages/CertifiedParticipants.vue:11
|
||||
msgid "Get Certified"
|
||||
msgstr ""
|
||||
@@ -2843,7 +2871,7 @@ msgid "Google Meet Link"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the grade (Data) field in DocType 'Education Detail'
|
||||
#: frontend/src/components/Assignment.vue:161
|
||||
#: frontend/src/components/Assignment.vue:164
|
||||
#: lms/lms/doctype/education_detail/education_detail.json
|
||||
msgid "Grade"
|
||||
msgstr ""
|
||||
@@ -2858,7 +2886,7 @@ msgstr ""
|
||||
msgid "Grade Type"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Assignment.vue:156
|
||||
#: frontend/src/components/Assignment.vue:159
|
||||
msgid "Grading"
|
||||
msgstr ""
|
||||
|
||||
@@ -2898,7 +2926,7 @@ msgstr ""
|
||||
msgid "Hello"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:128
|
||||
#: frontend/src/components/AppSidebar.vue:131
|
||||
msgid "Help"
|
||||
msgstr "Bantuan"
|
||||
|
||||
@@ -2963,7 +2991,7 @@ msgstr ""
|
||||
msgid "Hints"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:5 frontend/src/pages/Home/Home.vue:153
|
||||
#: frontend/src/pages/Home/Home.vue:5 frontend/src/pages/Home/Home.vue:154
|
||||
msgid "Home"
|
||||
msgstr "Rumah"
|
||||
|
||||
@@ -2995,7 +3023,7 @@ msgstr ""
|
||||
msgid "I am unavailable"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:338
|
||||
#: frontend/src/pages/QuizForm.vue:334
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
@@ -3155,7 +3183,7 @@ msgstr ""
|
||||
|
||||
#. Label of the instructor (Link) field in DocType 'Cohort'
|
||||
#. Label of the instructor (Link) field in DocType 'Course Instructor'
|
||||
#: frontend/src/pages/Home/Home.vue:148 lms/lms/doctype/cohort/cohort.json
|
||||
#: frontend/src/pages/Home/Home.vue:149 lms/lms/doctype/cohort/cohort.json
|
||||
#: lms/lms/doctype/course_instructor/course_instructor.json
|
||||
msgid "Instructor"
|
||||
msgstr ""
|
||||
@@ -3191,8 +3219,8 @@ msgstr ""
|
||||
msgid "Interest"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:573
|
||||
#: frontend/src/components/AppSidebar.vue:576
|
||||
#: frontend/src/components/AppSidebar.vue:588
|
||||
#: frontend/src/components/AppSidebar.vue:591
|
||||
msgid "Introduction"
|
||||
msgstr ""
|
||||
|
||||
@@ -3214,7 +3242,7 @@ msgstr ""
|
||||
msgid "Invite Only"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:507
|
||||
#: frontend/src/components/AppSidebar.vue:522
|
||||
msgid "Invite your team and students"
|
||||
msgstr ""
|
||||
|
||||
@@ -3251,7 +3279,7 @@ msgstr ""
|
||||
msgid "Issue Date"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:614
|
||||
#: frontend/src/components/AppSidebar.vue:629
|
||||
msgid "Issue a Certificate"
|
||||
msgstr ""
|
||||
|
||||
@@ -3264,7 +3292,7 @@ msgid "Issued On"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/ProfileAbout.vue:73
|
||||
#: frontend/src/pages/ProfileCertificates.vue:17
|
||||
#: frontend/src/pages/ProfileCertificates.vue:20
|
||||
#: lms/templates/certificates_section.html:11
|
||||
msgid "Issued on"
|
||||
msgstr ""
|
||||
@@ -3679,7 +3707,7 @@ msgstr ""
|
||||
msgid "Learning Consistency"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:598
|
||||
#: frontend/src/components/AppSidebar.vue:613
|
||||
msgid "Learning Paths"
|
||||
msgstr ""
|
||||
|
||||
@@ -3728,7 +3756,7 @@ msgstr ""
|
||||
msgid "Lesson Title"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/LessonForm.vue:426
|
||||
#: frontend/src/pages/LessonForm.vue:425
|
||||
msgid "Lesson created successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -3740,7 +3768,7 @@ msgstr ""
|
||||
msgid "Lesson moved successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/LessonForm.vue:450
|
||||
#: frontend/src/pages/LessonForm.vue:449
|
||||
msgid "Lesson updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -3889,7 +3917,7 @@ msgstr ""
|
||||
msgid "Manage Batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:119
|
||||
#: frontend/src/pages/Home/Home.vue:120
|
||||
msgid "Manage your courses and batches at a glance"
|
||||
msgstr ""
|
||||
|
||||
@@ -3920,7 +3948,7 @@ msgstr ""
|
||||
#. Label of the marks (Int) field in DocType 'LMS Quiz Result'
|
||||
#: frontend/src/components/Modals/Question.vue:40
|
||||
#: frontend/src/components/Modals/Question.vue:106
|
||||
#: frontend/src/components/Quiz.vue:120 frontend/src/pages/QuizForm.vue:348
|
||||
#: frontend/src/components/Quiz.vue:120 frontend/src/pages/QuizForm.vue:344
|
||||
#: frontend/src/pages/QuizSubmission.vue:64
|
||||
#: lms/lms/doctype/lms_quiz_question/lms_quiz_question.json
|
||||
#: lms/lms/doctype/lms_quiz_result/lms_quiz_result.json
|
||||
@@ -4199,8 +4227,12 @@ msgstr ""
|
||||
msgid "Mentor Request Status Update Template"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:19
|
||||
msgid "Message"
|
||||
msgstr "Pesan"
|
||||
|
||||
#. Label of the meta_description (Small Text) field in DocType 'LMS Settings'
|
||||
#: frontend/src/pages/BatchForm.vue:297 frontend/src/pages/CourseForm.vue:291
|
||||
#: frontend/src/pages/BatchForm.vue:297 frontend/src/pages/CourseForm.vue:303
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Meta Description"
|
||||
msgstr "Deskripsi meta"
|
||||
@@ -4214,12 +4246,12 @@ msgid "Meta Image"
|
||||
msgstr "Gambar Meta"
|
||||
|
||||
#. Label of the meta_keywords (Small Text) field in DocType 'LMS Settings'
|
||||
#: frontend/src/pages/BatchForm.vue:303 frontend/src/pages/CourseForm.vue:297
|
||||
#: frontend/src/pages/BatchForm.vue:303 frontend/src/pages/CourseForm.vue:309
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Meta Keywords"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/BatchForm.vue:292 frontend/src/pages/CourseForm.vue:286
|
||||
#: frontend/src/pages/BatchForm.vue:292 frontend/src/pages/CourseForm.vue:298
|
||||
msgid "Meta Tags"
|
||||
msgstr ""
|
||||
|
||||
@@ -4290,7 +4322,7 @@ msgstr ""
|
||||
msgid "Monday"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:622
|
||||
#: frontend/src/components/AppSidebar.vue:637
|
||||
msgid "Monetization"
|
||||
msgstr ""
|
||||
|
||||
@@ -4346,7 +4378,7 @@ msgstr "Baru"
|
||||
msgid "New Batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:678 lms/www/lms.py:93
|
||||
#: frontend/src/pages/CourseForm.vue:690 lms/www/lms.py:93
|
||||
msgid "New Course"
|
||||
msgstr ""
|
||||
|
||||
@@ -4370,7 +4402,7 @@ msgstr ""
|
||||
msgid "New Question"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:404 frontend/src/pages/QuizForm.vue:412
|
||||
#: frontend/src/pages/QuizForm.vue:400 frontend/src/pages/QuizForm.vue:408
|
||||
msgid "New Quiz"
|
||||
msgstr ""
|
||||
|
||||
@@ -4950,7 +4982,7 @@ msgstr "Nomor telepon"
|
||||
msgid "Pink"
|
||||
msgstr "Merah Muda"
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:34
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:35
|
||||
msgid "Please add <a href='{0}'>{1}</a> for <a href='{2}'>{3}</a> to send calendar invites for evaluations."
|
||||
msgstr ""
|
||||
|
||||
@@ -4974,7 +5006,7 @@ msgstr ""
|
||||
msgid "Please complete the previous course to unlock this one."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:197
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:196
|
||||
msgid "Please enable the zoom account to use this feature."
|
||||
msgstr ""
|
||||
|
||||
@@ -4990,8 +5022,16 @@ msgstr ""
|
||||
msgid "Please enter a title."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:29
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:80
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:51
|
||||
msgid "Please enter a valid Contact Us Email."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:53
|
||||
msgid "Please enter a valid Contact Us URL."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:32
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:107
|
||||
msgid "Please enter a valid URL."
|
||||
msgstr ""
|
||||
|
||||
@@ -5003,7 +5043,7 @@ msgstr ""
|
||||
msgid "Please enter a valid timestamp"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:74
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:101
|
||||
msgid "Please enter the URL for assignment submission."
|
||||
msgstr ""
|
||||
|
||||
@@ -5031,7 +5071,7 @@ msgstr ""
|
||||
msgid "Please login to continue with payment."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:2012
|
||||
#: lms/lms/utils.py:2020
|
||||
msgid "Please login to enroll in the program."
|
||||
msgstr ""
|
||||
|
||||
@@ -5088,7 +5128,7 @@ msgstr ""
|
||||
msgid "Please upload a SCORM package"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:77
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:104
|
||||
msgid "Please upload the assignment file."
|
||||
msgstr ""
|
||||
|
||||
@@ -5134,7 +5174,7 @@ msgstr ""
|
||||
msgid "Postal Code"
|
||||
msgstr "kode Pos"
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:122
|
||||
#: frontend/src/components/AppSidebar.vue:125
|
||||
msgid "Powered by Learning"
|
||||
msgstr ""
|
||||
|
||||
@@ -5411,7 +5451,7 @@ msgstr ""
|
||||
#: frontend/src/components/Assignment.vue:20
|
||||
#: frontend/src/components/Modals/AssignmentForm.vue:32
|
||||
#: frontend/src/components/Modals/Question.vue:27
|
||||
#: frontend/src/pages/QuizForm.vue:343 frontend/src/pages/QuizSubmission.vue:56
|
||||
#: frontend/src/pages/QuizForm.vue:339 frontend/src/pages/QuizSubmission.vue:56
|
||||
#: lms/lms/doctype/course_lesson/course_lesson.json
|
||||
#: lms/lms/doctype/lms_assignment/lms_assignment.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -5431,11 +5471,11 @@ msgstr ""
|
||||
msgid "Question Name"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:284
|
||||
#: frontend/src/components/Modals/Question.vue:285
|
||||
msgid "Question added successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:334
|
||||
#: frontend/src/components/Modals/Question.vue:335
|
||||
msgid "Question updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -5452,7 +5492,7 @@ msgstr ""
|
||||
msgid "Questions"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:385
|
||||
#: frontend/src/pages/QuizForm.vue:381
|
||||
msgid "Questions deleted successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -5502,7 +5542,7 @@ msgstr ""
|
||||
msgid "Quiz is not available to Guest users. Please login to continue."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:310
|
||||
#: frontend/src/pages/QuizForm.vue:306
|
||||
msgid "Quiz updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -5511,8 +5551,8 @@ msgstr ""
|
||||
msgid "Quiz will appear at the bottom of the lesson."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:606
|
||||
#: frontend/src/pages/QuizForm.vue:396 frontend/src/pages/Quizzes.vue:275
|
||||
#: frontend/src/components/AppSidebar.vue:621
|
||||
#: frontend/src/pages/QuizForm.vue:392 frontend/src/pages/Quizzes.vue:275
|
||||
#: frontend/src/pages/Quizzes.vue:285 lms/www/lms.py:249
|
||||
msgid "Quizzes"
|
||||
msgstr ""
|
||||
@@ -5655,7 +5695,7 @@ msgstr "Lanjut"
|
||||
msgid "Resume Video"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:142
|
||||
#: frontend/src/pages/Home/Home.vue:143
|
||||
msgid "Resume where you left off"
|
||||
msgstr ""
|
||||
|
||||
@@ -5696,7 +5736,7 @@ msgstr ""
|
||||
msgid "Role updated successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:634
|
||||
#: frontend/src/components/AppSidebar.vue:649
|
||||
msgid "Roles"
|
||||
msgstr "4.1.2 Roles(Peran)"
|
||||
|
||||
@@ -5914,6 +5954,10 @@ msgstr ""
|
||||
msgid "Select an assignment"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:33
|
||||
msgid "Send"
|
||||
msgstr "Kirim"
|
||||
|
||||
#: lms/lms/doctype/lms_batch_enrollment/lms_batch_enrollment.js:7
|
||||
msgid "Send Confirmation Email"
|
||||
msgstr ""
|
||||
@@ -5945,16 +5989,16 @@ msgstr ""
|
||||
msgid "Set your Password"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:577
|
||||
#: frontend/src/components/AppSidebar.vue:592
|
||||
msgid "Setting up"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:627
|
||||
#: frontend/src/components/AppSidebar.vue:642
|
||||
msgid "Setting up payment gateway"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:632
|
||||
#: frontend/src/components/Settings/Settings.vue:7
|
||||
#: frontend/src/components/AppSidebar.vue:647
|
||||
#: frontend/src/components/Settings/Settings.vue:9
|
||||
#: frontend/src/pages/BatchForm.vue:53 frontend/src/pages/CourseForm.vue:142
|
||||
#: frontend/src/pages/ProfileRoles.vue:4
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseSubmission.vue:19
|
||||
@@ -6252,7 +6296,7 @@ msgstr ""
|
||||
#. Option for the 'User Category' (Select) field in DocType 'User'
|
||||
#. Option for the 'Required Role' (Select) field in DocType 'Cohort Web Page'
|
||||
#. Option for the 'Member Type' (Select) field in DocType 'LMS Enrollment'
|
||||
#: frontend/src/pages/Home/Home.vue:147 frontend/src/pages/ProfileRoles.vue:38
|
||||
#: frontend/src/pages/Home/Home.vue:148 frontend/src/pages/ProfileRoles.vue:38
|
||||
#: lms/fixtures/custom_field.json
|
||||
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
||||
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
||||
@@ -6289,6 +6333,7 @@ msgstr ""
|
||||
msgid "Subgroup"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:13
|
||||
#: frontend/src/components/Modals/AnnouncementModal.vue:20
|
||||
#: frontend/src/components/Modals/EmailTemplateModal.vue:31
|
||||
msgid "Subject"
|
||||
@@ -6524,7 +6569,7 @@ msgstr ""
|
||||
msgid "Thanks and Regards"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:1904
|
||||
#: lms/lms/utils.py:1912
|
||||
msgid "The batch is full. Please contact the Administrator."
|
||||
msgstr ""
|
||||
|
||||
@@ -6536,11 +6581,11 @@ msgstr ""
|
||||
msgid "The course {0} is now available on {1}."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:55
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:56
|
||||
msgid "The evaluator of this course is unavailable from {0} to {1}. Please select a date after {1}"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:73
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:74
|
||||
msgid "The slot is already booked by another participant."
|
||||
msgstr ""
|
||||
|
||||
@@ -6576,7 +6621,7 @@ msgstr ""
|
||||
msgid "There are no {0} on this site."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:40
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:67
|
||||
msgid "There has been an update on your submission for assignment {0}"
|
||||
msgstr ""
|
||||
|
||||
@@ -6613,7 +6658,7 @@ msgstr ""
|
||||
msgid "This course has:"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:1765
|
||||
#: lms/lms/utils.py:1773
|
||||
msgid "This course is free."
|
||||
msgstr ""
|
||||
|
||||
@@ -6649,8 +6694,8 @@ msgstr ""
|
||||
msgid "This quiz consists of {0} questions."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:75
|
||||
#: frontend/src/components/AppSidebar.vue:115
|
||||
#: frontend/src/components/AppSidebar.vue:78
|
||||
#: frontend/src/components/AppSidebar.vue:118
|
||||
msgid "This site is being updated. You will not be able to make any changes. Full access will be restored shortly."
|
||||
msgstr ""
|
||||
|
||||
@@ -6721,15 +6766,21 @@ msgstr ""
|
||||
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Batch'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Certificate Request'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Course'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Live Class'
|
||||
#: frontend/src/components/Modals/LiveClassModal.vue:59
|
||||
#: frontend/src/pages/BatchForm.vue:114
|
||||
#: frontend/src/pages/BatchForm.vue:114 frontend/src/pages/CourseForm.vue:288
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.json
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.json
|
||||
msgid "Timezone"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:72
|
||||
msgid "Timezone is required for paid certificates."
|
||||
msgstr ""
|
||||
|
||||
#: lms/templates/emails/batch_confirmation.html:21
|
||||
#: lms/templates/emails/batch_start_reminder.html:16
|
||||
#: lms/templates/emails/live_class_reminder.html:16
|
||||
@@ -6799,7 +6850,7 @@ msgstr "Untuk"
|
||||
msgid "To Date"
|
||||
msgstr "Untuk Tanggal"
|
||||
|
||||
#: lms/lms/utils.py:1776
|
||||
#: lms/lms/utils.py:1784
|
||||
msgid "To join this batch, please contact the Administrator."
|
||||
msgstr ""
|
||||
|
||||
@@ -7226,7 +7277,7 @@ msgstr ""
|
||||
msgid "Yellow"
|
||||
msgstr "Kuning"
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:95
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:96
|
||||
msgid "You already have an evaluation on {0} at {1} for the course {2}."
|
||||
msgstr ""
|
||||
|
||||
@@ -7279,11 +7330,11 @@ msgstr ""
|
||||
msgid "You cannot change the roles in read-only mode."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:111
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:112
|
||||
msgid "You cannot schedule evaluations after {0}."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:102
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:103
|
||||
msgid "You cannot schedule evaluations for past slots."
|
||||
msgstr ""
|
||||
|
||||
@@ -7340,19 +7391,23 @@ msgstr ""
|
||||
msgid "You have got a score of {0} for the quiz {1}"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/ProfileCertificates.vue:26
|
||||
msgid "You have not received any certificates yet."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/widgets/NoPreviewModal.html:12
|
||||
msgid "You have opted to be notified for this course. You will receive an email when the course becomes available."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:102 frontend/src/pages/Home/Home.vue:125
|
||||
#: frontend/src/pages/Home/Home.vue:103 frontend/src/pages/Home/Home.vue:126
|
||||
msgid "You have {0} upcoming {1} and {2} {3} scheduled."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:109 frontend/src/pages/Home/Home.vue:132
|
||||
#: frontend/src/pages/Home/Home.vue:110 frontend/src/pages/Home/Home.vue:133
|
||||
msgid "You have {0} upcoming {1}."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:114 frontend/src/pages/Home/Home.vue:137
|
||||
#: frontend/src/pages/Home/Home.vue:115 frontend/src/pages/Home/Home.vue:138
|
||||
msgid "You have {0} {1} scheduled."
|
||||
msgstr ""
|
||||
|
||||
@@ -7400,7 +7455,7 @@ msgstr ""
|
||||
msgid "Your Output"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:309
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:308
|
||||
msgid "Your batch {0} is starting tomorrow"
|
||||
msgstr ""
|
||||
|
||||
@@ -7408,7 +7463,7 @@ msgstr ""
|
||||
msgid "Your calendar is set."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:88
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:95
|
||||
msgid "Your class on {0} is today"
|
||||
msgstr ""
|
||||
|
||||
@@ -7421,7 +7476,7 @@ msgstr ""
|
||||
msgid "Your evaluation for the course {0} has been scheduled on {1} at {2} {3}."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:121
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:136
|
||||
msgid "Your evaluation slot has been booked"
|
||||
msgstr ""
|
||||
|
||||
@@ -7474,8 +7529,8 @@ msgstr ""
|
||||
msgid "activity"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/CourseInstructors.vue:22
|
||||
#: frontend/src/components/CourseInstructors.vue:41
|
||||
#: frontend/src/components/CourseInstructors.vue:24
|
||||
#: frontend/src/components/CourseInstructors.vue:45
|
||||
msgid "and"
|
||||
msgstr "dan"
|
||||
|
||||
@@ -7538,11 +7593,15 @@ msgstr ""
|
||||
msgid "days"
|
||||
msgstr "hari"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:100 frontend/src/pages/Home/Home.vue:123
|
||||
#: frontend/src/pages/CourseForm.vue:290
|
||||
msgid "e.g. IST, UTC, GMT..."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:101 frontend/src/pages/Home/Home.vue:124
|
||||
msgid "evaluation"
|
||||
msgstr "evaluasi"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:100 frontend/src/pages/Home/Home.vue:123
|
||||
#: frontend/src/pages/Home/Home.vue:101 frontend/src/pages/Home/Home.vue:124
|
||||
msgid "evaluations"
|
||||
msgstr ""
|
||||
|
||||
@@ -7562,11 +7621,11 @@ msgstr ""
|
||||
msgid "lessons"
|
||||
msgstr "pelajaran"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:98 frontend/src/pages/Home/Home.vue:122
|
||||
#: frontend/src/pages/Home/Home.vue:99 frontend/src/pages/Home/Home.vue:123
|
||||
msgid "live class"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:98 frontend/src/pages/Home/Home.vue:122
|
||||
#: frontend/src/pages/Home/Home.vue:99 frontend/src/pages/Home/Home.vue:123
|
||||
msgid "live classes"
|
||||
msgstr ""
|
||||
|
||||
@@ -7584,11 +7643,11 @@ msgstr ""
|
||||
msgid "minutes"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/CourseInstructors.vue:41
|
||||
#: frontend/src/components/CourseInstructors.vue:45
|
||||
msgid "others"
|
||||
msgstr "lainnya"
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:344
|
||||
#: frontend/src/pages/QuizForm.vue:340
|
||||
msgid "question_detail"
|
||||
msgstr ""
|
||||
|
||||
|
||||
297
lms/locale/it.po
297
lms/locale/it.po
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: frappe\n"
|
||||
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
||||
"POT-Creation-Date: 2025-10-03 16:04+0000\n"
|
||||
"PO-Revision-Date: 2025-10-06 10:50\n"
|
||||
"POT-Creation-Date: 2025-10-31 16:04+0000\n"
|
||||
"PO-Revision-Date: 2025-11-02 19:07\n"
|
||||
"Last-Translator: jannat@frappe.io\n"
|
||||
"Language-Team: Italian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -196,7 +196,7 @@ msgstr ""
|
||||
msgid "Add a Student"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:585
|
||||
#: frontend/src/components/AppSidebar.vue:600
|
||||
msgid "Add a chapter"
|
||||
msgstr ""
|
||||
|
||||
@@ -208,7 +208,7 @@ msgstr ""
|
||||
msgid "Add a keyword and then press enter"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:586
|
||||
#: frontend/src/components/AppSidebar.vue:601
|
||||
msgid "Add a lesson"
|
||||
msgstr ""
|
||||
|
||||
@@ -216,12 +216,12 @@ msgstr ""
|
||||
msgid "Add a new member"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:166
|
||||
#: frontend/src/components/Modals/Question.vue:167
|
||||
#: frontend/src/pages/QuizForm.vue:200
|
||||
msgid "Add a new question"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:600
|
||||
#: frontend/src/components/AppSidebar.vue:615
|
||||
msgid "Add a program"
|
||||
msgstr ""
|
||||
|
||||
@@ -245,7 +245,7 @@ msgstr ""
|
||||
msgid "Add at least one possible answer for this question: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:549
|
||||
#: frontend/src/components/AppSidebar.vue:564
|
||||
msgid "Add courses to your batch"
|
||||
msgstr ""
|
||||
|
||||
@@ -253,7 +253,7 @@ msgstr ""
|
||||
msgid "Add quiz to this video"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:528
|
||||
#: frontend/src/components/AppSidebar.vue:543
|
||||
msgid "Add students to your batch"
|
||||
msgstr ""
|
||||
|
||||
@@ -269,11 +269,11 @@ msgstr ""
|
||||
msgid "Add your assignment as {0}"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:461
|
||||
#: frontend/src/components/AppSidebar.vue:476
|
||||
msgid "Add your first chapter"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:477
|
||||
#: frontend/src/components/AppSidebar.vue:492
|
||||
msgid "Add your first lesson"
|
||||
msgstr ""
|
||||
|
||||
@@ -378,11 +378,11 @@ msgstr ""
|
||||
msgid "Amount and currency are required for paid batches."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:76
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:79
|
||||
msgid "Amount and currency are required for paid certificates."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:73
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:76
|
||||
msgid "Amount and currency are required for paid courses."
|
||||
msgstr ""
|
||||
|
||||
@@ -508,7 +508,7 @@ msgid "Assessment {0} has already been added to this batch."
|
||||
msgstr ""
|
||||
|
||||
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
||||
#: frontend/src/components/AppSidebar.vue:603
|
||||
#: frontend/src/components/AppSidebar.vue:618
|
||||
#: frontend/src/components/Assessments.vue:5
|
||||
#: frontend/src/components/BatchStudents.vue:32
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
@@ -573,11 +573,11 @@ msgstr ""
|
||||
msgid "Assignment created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:24
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:27
|
||||
msgid "Assignment for Lesson {0} by {1} already exists."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Assignment.vue:359
|
||||
#: frontend/src/components/Assignment.vue:362
|
||||
msgid "Assignment submitted successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -590,7 +590,7 @@ msgstr ""
|
||||
msgid "Assignment will appear at the bottom of the lesson."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:607
|
||||
#: frontend/src/components/AppSidebar.vue:622
|
||||
#: frontend/src/components/Settings/Badges.vue:163
|
||||
#: frontend/src/pages/Assignments.vue:208 lms/www/lms.py:271
|
||||
msgid "Assignments"
|
||||
@@ -1017,7 +1017,7 @@ msgstr ""
|
||||
#. Enrollment'
|
||||
#. Label of a Card Break in the LMS Workspace
|
||||
#. Label of a Link in the LMS Workspace
|
||||
#: frontend/src/components/AppSidebar.vue:611
|
||||
#: frontend/src/components/AppSidebar.vue:626
|
||||
#: frontend/src/components/Modals/Event.vue:381
|
||||
#: frontend/src/pages/BatchForm.vue:69 frontend/src/pages/Batches.vue:58
|
||||
#: frontend/src/pages/CourseCertification.vue:10
|
||||
@@ -1040,6 +1040,11 @@ msgstr ""
|
||||
msgid "Certification Name"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the certifications (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Certifications"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/BatchStudents.vue:17
|
||||
msgid "Certified"
|
||||
msgstr ""
|
||||
@@ -1052,8 +1057,7 @@ msgstr ""
|
||||
msgid "Certified Members"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the certified_participants (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:300
|
||||
#: lms/www/lms.py:300
|
||||
msgid "Certified Participants"
|
||||
msgstr ""
|
||||
|
||||
@@ -1061,7 +1065,7 @@ msgstr ""
|
||||
msgid "Change"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Assignment.vue:345
|
||||
#: frontend/src/components/Assignment.vue:348
|
||||
msgid "Changes saved successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -1272,7 +1276,7 @@ msgstr ""
|
||||
msgid "Collaboration Preference"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:142
|
||||
#: frontend/src/components/AppSidebar.vue:145
|
||||
msgid "Collapse"
|
||||
msgstr ""
|
||||
|
||||
@@ -1291,7 +1295,7 @@ msgstr ""
|
||||
msgid "Color"
|
||||
msgstr "Colore"
|
||||
|
||||
#: frontend/src/pages/BatchForm.vue:306 frontend/src/pages/CourseForm.vue:300
|
||||
#: frontend/src/pages/BatchForm.vue:306 frontend/src/pages/CourseForm.vue:312
|
||||
msgid "Comma separated keywords for SEO"
|
||||
msgstr ""
|
||||
|
||||
@@ -1301,7 +1305,7 @@ msgstr ""
|
||||
#. Label of the comments (Text Editor) field in DocType 'LMS Assignment
|
||||
#. Submission'
|
||||
#. Label of the comments (Small Text) field in DocType 'LMS Mentor Request'
|
||||
#: frontend/src/components/Assignment.vue:167
|
||||
#: frontend/src/components/Assignment.vue:170
|
||||
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
||||
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -1309,7 +1313,7 @@ msgstr ""
|
||||
msgid "Comments"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Assignment.vue:145
|
||||
#: frontend/src/components/Assignment.vue:148
|
||||
msgid "Comments by Evaluator"
|
||||
msgstr ""
|
||||
|
||||
@@ -1464,6 +1468,22 @@ msgstr ""
|
||||
msgid "Congratulations on getting certified!"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the contact_us_tab (Tab Break) field in DocType 'LMS Settings'
|
||||
#: frontend/src/components/ContactUsEmail.vue:5
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the contact_us_email (Data) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us Email"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the contact_us_url (Data) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us URL"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/CourseCardOverlay.vue:63
|
||||
#: frontend/src/pages/Lesson.vue:97
|
||||
msgid "Contact the Administrator to enroll for this course."
|
||||
@@ -1677,7 +1697,7 @@ msgstr ""
|
||||
msgid "Course Name"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseDetail.vue:78 frontend/src/pages/CourseForm.vue:310
|
||||
#: frontend/src/pages/CourseDetail.vue:78 frontend/src/pages/CourseForm.vue:322
|
||||
msgid "Course Outline"
|
||||
msgstr ""
|
||||
|
||||
@@ -1714,15 +1734,15 @@ msgstr ""
|
||||
msgid "Course added to program successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:547
|
||||
#: frontend/src/pages/CourseForm.vue:559
|
||||
msgid "Course created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:584
|
||||
#: frontend/src/pages/CourseForm.vue:596
|
||||
msgid "Course deleted successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:567
|
||||
#: frontend/src/pages/CourseForm.vue:579
|
||||
msgid "Course updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -1815,15 +1835,15 @@ msgstr ""
|
||||
msgid "Create a Quiz"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:593
|
||||
#: frontend/src/components/AppSidebar.vue:608
|
||||
msgid "Create a batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:584
|
||||
#: frontend/src/components/AppSidebar.vue:599
|
||||
msgid "Create a course"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:594
|
||||
#: frontend/src/components/AppSidebar.vue:609
|
||||
msgid "Create a live class"
|
||||
msgstr ""
|
||||
|
||||
@@ -1835,15 +1855,15 @@ msgstr ""
|
||||
msgid "Create an Assignment"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:518
|
||||
#: frontend/src/components/AppSidebar.vue:533
|
||||
msgid "Create your first batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:449
|
||||
#: frontend/src/components/AppSidebar.vue:464
|
||||
msgid "Create your first course"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:496
|
||||
#: frontend/src/components/AppSidebar.vue:511
|
||||
msgid "Create your first quiz"
|
||||
msgstr ""
|
||||
|
||||
@@ -1851,11 +1871,11 @@ msgstr ""
|
||||
msgid "Created"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:590
|
||||
#: frontend/src/components/AppSidebar.vue:605
|
||||
msgid "Creating a batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:581
|
||||
#: frontend/src/components/AppSidebar.vue:596
|
||||
msgid "Creating a course"
|
||||
msgstr ""
|
||||
|
||||
@@ -1863,7 +1883,7 @@ msgstr ""
|
||||
#. Label of the currency (Link) field in DocType 'LMS Course'
|
||||
#. Label of the currency (Link) field in DocType 'LMS Payment'
|
||||
#: frontend/src/components/Settings/TransactionDetails.vue:64
|
||||
#: frontend/src/pages/BatchForm.vue:285 frontend/src/pages/CourseForm.vue:279
|
||||
#: frontend/src/pages/BatchForm.vue:285 frontend/src/pages/CourseForm.vue:282
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
#: lms/lms/doctype/lms_payment/lms_payment.json
|
||||
@@ -1879,7 +1899,7 @@ msgstr ""
|
||||
msgid "Current Streak"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:617
|
||||
#: frontend/src/components/AppSidebar.vue:632
|
||||
msgid "Custom Certificate Templates"
|
||||
msgstr ""
|
||||
|
||||
@@ -1979,7 +1999,7 @@ msgstr ""
|
||||
#: frontend/src/components/CourseOutline.vue:360
|
||||
#: frontend/src/components/DiscussionReplies.vue:41
|
||||
#: frontend/src/components/Settings/Badges.vue:171
|
||||
#: frontend/src/pages/BatchForm.vue:565 frontend/src/pages/CourseForm.vue:597
|
||||
#: frontend/src/pages/BatchForm.vue:565 frontend/src/pages/CourseForm.vue:609
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseForm.vue:67
|
||||
#: frontend/src/pages/Programs/ProgramForm.vue:231
|
||||
msgid "Delete"
|
||||
@@ -1989,7 +2009,7 @@ msgstr "Elimina"
|
||||
msgid "Delete Chapter"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:591
|
||||
#: frontend/src/pages/CourseForm.vue:603
|
||||
msgid "Delete Course"
|
||||
msgstr ""
|
||||
|
||||
@@ -2001,7 +2021,7 @@ msgstr ""
|
||||
msgid "Delete this lesson?"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:592
|
||||
#: frontend/src/pages/CourseForm.vue:604
|
||||
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
||||
msgstr ""
|
||||
|
||||
@@ -2251,6 +2271,10 @@ msgstr ""
|
||||
msgid "Email Templates deleted successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:57
|
||||
msgid "Email sent successfully"
|
||||
msgstr "Email inviata con successo"
|
||||
|
||||
#. Label of the show_emails (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Emails"
|
||||
@@ -2266,7 +2290,7 @@ msgstr "Dipendente"
|
||||
msgid "Enable"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:21
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:22
|
||||
msgid "Enable Google API in Google Settings to send calendar invites for evaluations."
|
||||
msgstr ""
|
||||
|
||||
@@ -2365,7 +2389,7 @@ msgstr ""
|
||||
msgid "Enrollment Count"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:1880
|
||||
#: lms/lms/utils.py:1888
|
||||
msgid "Enrollment Failed, {0}"
|
||||
msgstr ""
|
||||
|
||||
@@ -2382,7 +2406,7 @@ msgstr ""
|
||||
msgid "Enrollments"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:26
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:27
|
||||
msgid "Enter Client Id and Client Secret in Google Settings to send calendar invites for evaluations."
|
||||
msgstr ""
|
||||
|
||||
@@ -2402,7 +2426,7 @@ msgstr ""
|
||||
msgid "Error creating email template"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:191
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:190
|
||||
msgid "Error creating live class. Please try again. {0}"
|
||||
msgstr ""
|
||||
|
||||
@@ -2467,7 +2491,7 @@ msgstr ""
|
||||
#. Label of the evaluator (Link) field in DocType 'LMS Course'
|
||||
#: frontend/src/components/Modals/BatchCourseModal.vue:37
|
||||
#: frontend/src/components/Modals/BulkCertificates.vue:22
|
||||
#: frontend/src/pages/CourseForm.vue:268 frontend/src/pages/ProfileRoles.vue:32
|
||||
#: frontend/src/pages/CourseForm.vue:269 frontend/src/pages/ProfileRoles.vue:32
|
||||
#: lms/lms/doctype/batch_course/batch_course.json
|
||||
#: lms/lms/doctype/course_evaluator/course_evaluator.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -2555,7 +2579,7 @@ msgstr ""
|
||||
msgid "Exercise Title"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:142
|
||||
#: frontend/src/components/AppSidebar.vue:145
|
||||
msgid "Expand"
|
||||
msgstr "Espandi"
|
||||
|
||||
@@ -2625,10 +2649,14 @@ msgstr ""
|
||||
msgid "Failed to enroll in program: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:137
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:144
|
||||
msgid "Failed to fetch attendance data from Zoom for class {0}: {1}"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:63
|
||||
msgid "Failed to send email"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseSubmission.vue:358
|
||||
msgid "Failed to submit. Please try again. {0}"
|
||||
msgstr ""
|
||||
@@ -2814,7 +2842,7 @@ msgstr ""
|
||||
|
||||
#: frontend/src/components/CertificationLinks.vue:34
|
||||
#: frontend/src/components/CertificationLinks.vue:50
|
||||
#: frontend/src/components/CourseCard.vue:125
|
||||
#: frontend/src/components/CourseCard.vue:126
|
||||
#: frontend/src/pages/CertifiedParticipants.vue:11
|
||||
msgid "Get Certified"
|
||||
msgstr ""
|
||||
@@ -2843,7 +2871,7 @@ msgid "Google Meet Link"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the grade (Data) field in DocType 'Education Detail'
|
||||
#: frontend/src/components/Assignment.vue:161
|
||||
#: frontend/src/components/Assignment.vue:164
|
||||
#: lms/lms/doctype/education_detail/education_detail.json
|
||||
msgid "Grade"
|
||||
msgstr ""
|
||||
@@ -2858,7 +2886,7 @@ msgstr ""
|
||||
msgid "Grade Type"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Assignment.vue:156
|
||||
#: frontend/src/components/Assignment.vue:159
|
||||
msgid "Grading"
|
||||
msgstr ""
|
||||
|
||||
@@ -2898,7 +2926,7 @@ msgstr ""
|
||||
msgid "Hello"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:128
|
||||
#: frontend/src/components/AppSidebar.vue:131
|
||||
msgid "Help"
|
||||
msgstr ""
|
||||
|
||||
@@ -2963,7 +2991,7 @@ msgstr ""
|
||||
msgid "Hints"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:5 frontend/src/pages/Home/Home.vue:153
|
||||
#: frontend/src/pages/Home/Home.vue:5 frontend/src/pages/Home/Home.vue:154
|
||||
msgid "Home"
|
||||
msgstr "Home"
|
||||
|
||||
@@ -2995,7 +3023,7 @@ msgstr ""
|
||||
msgid "I am unavailable"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:338
|
||||
#: frontend/src/pages/QuizForm.vue:334
|
||||
msgid "ID"
|
||||
msgstr "ID"
|
||||
|
||||
@@ -3155,7 +3183,7 @@ msgstr ""
|
||||
|
||||
#. Label of the instructor (Link) field in DocType 'Cohort'
|
||||
#. Label of the instructor (Link) field in DocType 'Course Instructor'
|
||||
#: frontend/src/pages/Home/Home.vue:148 lms/lms/doctype/cohort/cohort.json
|
||||
#: frontend/src/pages/Home/Home.vue:149 lms/lms/doctype/cohort/cohort.json
|
||||
#: lms/lms/doctype/course_instructor/course_instructor.json
|
||||
msgid "Instructor"
|
||||
msgstr ""
|
||||
@@ -3191,8 +3219,8 @@ msgstr ""
|
||||
msgid "Interest"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:573
|
||||
#: frontend/src/components/AppSidebar.vue:576
|
||||
#: frontend/src/components/AppSidebar.vue:588
|
||||
#: frontend/src/components/AppSidebar.vue:591
|
||||
msgid "Introduction"
|
||||
msgstr ""
|
||||
|
||||
@@ -3214,7 +3242,7 @@ msgstr ""
|
||||
msgid "Invite Only"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:507
|
||||
#: frontend/src/components/AppSidebar.vue:522
|
||||
msgid "Invite your team and students"
|
||||
msgstr ""
|
||||
|
||||
@@ -3251,7 +3279,7 @@ msgstr ""
|
||||
msgid "Issue Date"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:614
|
||||
#: frontend/src/components/AppSidebar.vue:629
|
||||
msgid "Issue a Certificate"
|
||||
msgstr ""
|
||||
|
||||
@@ -3264,7 +3292,7 @@ msgid "Issued On"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/ProfileAbout.vue:73
|
||||
#: frontend/src/pages/ProfileCertificates.vue:17
|
||||
#: frontend/src/pages/ProfileCertificates.vue:20
|
||||
#: lms/templates/certificates_section.html:11
|
||||
msgid "Issued on"
|
||||
msgstr ""
|
||||
@@ -3679,7 +3707,7 @@ msgstr ""
|
||||
msgid "Learning Consistency"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:598
|
||||
#: frontend/src/components/AppSidebar.vue:613
|
||||
msgid "Learning Paths"
|
||||
msgstr ""
|
||||
|
||||
@@ -3728,7 +3756,7 @@ msgstr ""
|
||||
msgid "Lesson Title"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/LessonForm.vue:426
|
||||
#: frontend/src/pages/LessonForm.vue:425
|
||||
msgid "Lesson created successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -3740,7 +3768,7 @@ msgstr ""
|
||||
msgid "Lesson moved successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/LessonForm.vue:450
|
||||
#: frontend/src/pages/LessonForm.vue:449
|
||||
msgid "Lesson updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -3889,7 +3917,7 @@ msgstr ""
|
||||
msgid "Manage Batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:119
|
||||
#: frontend/src/pages/Home/Home.vue:120
|
||||
msgid "Manage your courses and batches at a glance"
|
||||
msgstr ""
|
||||
|
||||
@@ -3920,7 +3948,7 @@ msgstr ""
|
||||
#. Label of the marks (Int) field in DocType 'LMS Quiz Result'
|
||||
#: frontend/src/components/Modals/Question.vue:40
|
||||
#: frontend/src/components/Modals/Question.vue:106
|
||||
#: frontend/src/components/Quiz.vue:120 frontend/src/pages/QuizForm.vue:348
|
||||
#: frontend/src/components/Quiz.vue:120 frontend/src/pages/QuizForm.vue:344
|
||||
#: frontend/src/pages/QuizSubmission.vue:64
|
||||
#: lms/lms/doctype/lms_quiz_question/lms_quiz_question.json
|
||||
#: lms/lms/doctype/lms_quiz_result/lms_quiz_result.json
|
||||
@@ -4199,8 +4227,12 @@ msgstr ""
|
||||
msgid "Mentor Request Status Update Template"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:19
|
||||
msgid "Message"
|
||||
msgstr "Messaggio"
|
||||
|
||||
#. Label of the meta_description (Small Text) field in DocType 'LMS Settings'
|
||||
#: frontend/src/pages/BatchForm.vue:297 frontend/src/pages/CourseForm.vue:291
|
||||
#: frontend/src/pages/BatchForm.vue:297 frontend/src/pages/CourseForm.vue:303
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Meta Description"
|
||||
msgstr ""
|
||||
@@ -4214,12 +4246,12 @@ msgid "Meta Image"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the meta_keywords (Small Text) field in DocType 'LMS Settings'
|
||||
#: frontend/src/pages/BatchForm.vue:303 frontend/src/pages/CourseForm.vue:297
|
||||
#: frontend/src/pages/BatchForm.vue:303 frontend/src/pages/CourseForm.vue:309
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Meta Keywords"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/BatchForm.vue:292 frontend/src/pages/CourseForm.vue:286
|
||||
#: frontend/src/pages/BatchForm.vue:292 frontend/src/pages/CourseForm.vue:298
|
||||
msgid "Meta Tags"
|
||||
msgstr ""
|
||||
|
||||
@@ -4290,7 +4322,7 @@ msgstr ""
|
||||
msgid "Monday"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:622
|
||||
#: frontend/src/components/AppSidebar.vue:637
|
||||
msgid "Monetization"
|
||||
msgstr ""
|
||||
|
||||
@@ -4346,7 +4378,7 @@ msgstr ""
|
||||
msgid "New Batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:678 lms/www/lms.py:93
|
||||
#: frontend/src/pages/CourseForm.vue:690 lms/www/lms.py:93
|
||||
msgid "New Course"
|
||||
msgstr ""
|
||||
|
||||
@@ -4370,7 +4402,7 @@ msgstr ""
|
||||
msgid "New Question"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:404 frontend/src/pages/QuizForm.vue:412
|
||||
#: frontend/src/pages/QuizForm.vue:400 frontend/src/pages/QuizForm.vue:408
|
||||
msgid "New Quiz"
|
||||
msgstr ""
|
||||
|
||||
@@ -4950,7 +4982,7 @@ msgstr ""
|
||||
msgid "Pink"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:34
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:35
|
||||
msgid "Please add <a href='{0}'>{1}</a> for <a href='{2}'>{3}</a> to send calendar invites for evaluations."
|
||||
msgstr ""
|
||||
|
||||
@@ -4974,7 +5006,7 @@ msgstr ""
|
||||
msgid "Please complete the previous course to unlock this one."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:197
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:196
|
||||
msgid "Please enable the zoom account to use this feature."
|
||||
msgstr ""
|
||||
|
||||
@@ -4990,8 +5022,16 @@ msgstr ""
|
||||
msgid "Please enter a title."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:29
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:80
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:51
|
||||
msgid "Please enter a valid Contact Us Email."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:53
|
||||
msgid "Please enter a valid Contact Us URL."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:32
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:107
|
||||
msgid "Please enter a valid URL."
|
||||
msgstr ""
|
||||
|
||||
@@ -5003,7 +5043,7 @@ msgstr ""
|
||||
msgid "Please enter a valid timestamp"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:74
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:101
|
||||
msgid "Please enter the URL for assignment submission."
|
||||
msgstr ""
|
||||
|
||||
@@ -5031,7 +5071,7 @@ msgstr ""
|
||||
msgid "Please login to continue with payment."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:2012
|
||||
#: lms/lms/utils.py:2020
|
||||
msgid "Please login to enroll in the program."
|
||||
msgstr ""
|
||||
|
||||
@@ -5088,7 +5128,7 @@ msgstr ""
|
||||
msgid "Please upload a SCORM package"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:77
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:104
|
||||
msgid "Please upload the assignment file."
|
||||
msgstr ""
|
||||
|
||||
@@ -5134,7 +5174,7 @@ msgstr ""
|
||||
msgid "Postal Code"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:122
|
||||
#: frontend/src/components/AppSidebar.vue:125
|
||||
msgid "Powered by Learning"
|
||||
msgstr ""
|
||||
|
||||
@@ -5411,7 +5451,7 @@ msgstr ""
|
||||
#: frontend/src/components/Assignment.vue:20
|
||||
#: frontend/src/components/Modals/AssignmentForm.vue:32
|
||||
#: frontend/src/components/Modals/Question.vue:27
|
||||
#: frontend/src/pages/QuizForm.vue:343 frontend/src/pages/QuizSubmission.vue:56
|
||||
#: frontend/src/pages/QuizForm.vue:339 frontend/src/pages/QuizSubmission.vue:56
|
||||
#: lms/lms/doctype/course_lesson/course_lesson.json
|
||||
#: lms/lms/doctype/lms_assignment/lms_assignment.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -5431,11 +5471,11 @@ msgstr ""
|
||||
msgid "Question Name"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:284
|
||||
#: frontend/src/components/Modals/Question.vue:285
|
||||
msgid "Question added successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:334
|
||||
#: frontend/src/components/Modals/Question.vue:335
|
||||
msgid "Question updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -5452,7 +5492,7 @@ msgstr ""
|
||||
msgid "Questions"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:385
|
||||
#: frontend/src/pages/QuizForm.vue:381
|
||||
msgid "Questions deleted successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -5502,7 +5542,7 @@ msgstr ""
|
||||
msgid "Quiz is not available to Guest users. Please login to continue."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:310
|
||||
#: frontend/src/pages/QuizForm.vue:306
|
||||
msgid "Quiz updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -5511,8 +5551,8 @@ msgstr ""
|
||||
msgid "Quiz will appear at the bottom of the lesson."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:606
|
||||
#: frontend/src/pages/QuizForm.vue:396 frontend/src/pages/Quizzes.vue:275
|
||||
#: frontend/src/components/AppSidebar.vue:621
|
||||
#: frontend/src/pages/QuizForm.vue:392 frontend/src/pages/Quizzes.vue:275
|
||||
#: frontend/src/pages/Quizzes.vue:285 lms/www/lms.py:249
|
||||
msgid "Quizzes"
|
||||
msgstr ""
|
||||
@@ -5655,7 +5695,7 @@ msgstr ""
|
||||
msgid "Resume Video"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:142
|
||||
#: frontend/src/pages/Home/Home.vue:143
|
||||
msgid "Resume where you left off"
|
||||
msgstr ""
|
||||
|
||||
@@ -5696,7 +5736,7 @@ msgstr ""
|
||||
msgid "Role updated successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:634
|
||||
#: frontend/src/components/AppSidebar.vue:649
|
||||
msgid "Roles"
|
||||
msgstr "Ruoli"
|
||||
|
||||
@@ -5914,6 +5954,10 @@ msgstr ""
|
||||
msgid "Select an assignment"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:33
|
||||
msgid "Send"
|
||||
msgstr "Invia"
|
||||
|
||||
#: lms/lms/doctype/lms_batch_enrollment/lms_batch_enrollment.js:7
|
||||
msgid "Send Confirmation Email"
|
||||
msgstr ""
|
||||
@@ -5945,16 +5989,16 @@ msgstr "Imposta Colore"
|
||||
msgid "Set your Password"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:577
|
||||
#: frontend/src/components/AppSidebar.vue:592
|
||||
msgid "Setting up"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:627
|
||||
#: frontend/src/components/AppSidebar.vue:642
|
||||
msgid "Setting up payment gateway"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:632
|
||||
#: frontend/src/components/Settings/Settings.vue:7
|
||||
#: frontend/src/components/AppSidebar.vue:647
|
||||
#: frontend/src/components/Settings/Settings.vue:9
|
||||
#: frontend/src/pages/BatchForm.vue:53 frontend/src/pages/CourseForm.vue:142
|
||||
#: frontend/src/pages/ProfileRoles.vue:4
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseSubmission.vue:19
|
||||
@@ -6252,7 +6296,7 @@ msgstr ""
|
||||
#. Option for the 'User Category' (Select) field in DocType 'User'
|
||||
#. Option for the 'Required Role' (Select) field in DocType 'Cohort Web Page'
|
||||
#. Option for the 'Member Type' (Select) field in DocType 'LMS Enrollment'
|
||||
#: frontend/src/pages/Home/Home.vue:147 frontend/src/pages/ProfileRoles.vue:38
|
||||
#: frontend/src/pages/Home/Home.vue:148 frontend/src/pages/ProfileRoles.vue:38
|
||||
#: lms/fixtures/custom_field.json
|
||||
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
||||
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
||||
@@ -6289,6 +6333,7 @@ msgstr ""
|
||||
msgid "Subgroup"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:13
|
||||
#: frontend/src/components/Modals/AnnouncementModal.vue:20
|
||||
#: frontend/src/components/Modals/EmailTemplateModal.vue:31
|
||||
msgid "Subject"
|
||||
@@ -6524,7 +6569,7 @@ msgstr ""
|
||||
msgid "Thanks and Regards"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:1904
|
||||
#: lms/lms/utils.py:1912
|
||||
msgid "The batch is full. Please contact the Administrator."
|
||||
msgstr ""
|
||||
|
||||
@@ -6536,11 +6581,11 @@ msgstr ""
|
||||
msgid "The course {0} is now available on {1}."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:55
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:56
|
||||
msgid "The evaluator of this course is unavailable from {0} to {1}. Please select a date after {1}"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:73
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:74
|
||||
msgid "The slot is already booked by another participant."
|
||||
msgstr ""
|
||||
|
||||
@@ -6576,7 +6621,7 @@ msgstr ""
|
||||
msgid "There are no {0} on this site."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:40
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:67
|
||||
msgid "There has been an update on your submission for assignment {0}"
|
||||
msgstr ""
|
||||
|
||||
@@ -6613,7 +6658,7 @@ msgstr ""
|
||||
msgid "This course has:"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:1765
|
||||
#: lms/lms/utils.py:1773
|
||||
msgid "This course is free."
|
||||
msgstr ""
|
||||
|
||||
@@ -6649,8 +6694,8 @@ msgstr ""
|
||||
msgid "This quiz consists of {0} questions."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:75
|
||||
#: frontend/src/components/AppSidebar.vue:115
|
||||
#: frontend/src/components/AppSidebar.vue:78
|
||||
#: frontend/src/components/AppSidebar.vue:118
|
||||
msgid "This site is being updated. You will not be able to make any changes. Full access will be restored shortly."
|
||||
msgstr ""
|
||||
|
||||
@@ -6721,15 +6766,21 @@ msgstr ""
|
||||
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Batch'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Certificate Request'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Course'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Live Class'
|
||||
#: frontend/src/components/Modals/LiveClassModal.vue:59
|
||||
#: frontend/src/pages/BatchForm.vue:114
|
||||
#: frontend/src/pages/BatchForm.vue:114 frontend/src/pages/CourseForm.vue:288
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.json
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.json
|
||||
msgid "Timezone"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:72
|
||||
msgid "Timezone is required for paid certificates."
|
||||
msgstr ""
|
||||
|
||||
#: lms/templates/emails/batch_confirmation.html:21
|
||||
#: lms/templates/emails/batch_start_reminder.html:16
|
||||
#: lms/templates/emails/live_class_reminder.html:16
|
||||
@@ -6799,7 +6850,7 @@ msgstr "A"
|
||||
msgid "To Date"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:1776
|
||||
#: lms/lms/utils.py:1784
|
||||
msgid "To join this batch, please contact the Administrator."
|
||||
msgstr ""
|
||||
|
||||
@@ -7226,7 +7277,7 @@ msgstr ""
|
||||
msgid "Yellow"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:95
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:96
|
||||
msgid "You already have an evaluation on {0} at {1} for the course {2}."
|
||||
msgstr ""
|
||||
|
||||
@@ -7279,11 +7330,11 @@ msgstr ""
|
||||
msgid "You cannot change the roles in read-only mode."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:111
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:112
|
||||
msgid "You cannot schedule evaluations after {0}."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:102
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:103
|
||||
msgid "You cannot schedule evaluations for past slots."
|
||||
msgstr ""
|
||||
|
||||
@@ -7340,19 +7391,23 @@ msgstr ""
|
||||
msgid "You have got a score of {0} for the quiz {1}"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/ProfileCertificates.vue:26
|
||||
msgid "You have not received any certificates yet."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/widgets/NoPreviewModal.html:12
|
||||
msgid "You have opted to be notified for this course. You will receive an email when the course becomes available."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:102 frontend/src/pages/Home/Home.vue:125
|
||||
#: frontend/src/pages/Home/Home.vue:103 frontend/src/pages/Home/Home.vue:126
|
||||
msgid "You have {0} upcoming {1} and {2} {3} scheduled."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:109 frontend/src/pages/Home/Home.vue:132
|
||||
#: frontend/src/pages/Home/Home.vue:110 frontend/src/pages/Home/Home.vue:133
|
||||
msgid "You have {0} upcoming {1}."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:114 frontend/src/pages/Home/Home.vue:137
|
||||
#: frontend/src/pages/Home/Home.vue:115 frontend/src/pages/Home/Home.vue:138
|
||||
msgid "You have {0} {1} scheduled."
|
||||
msgstr ""
|
||||
|
||||
@@ -7400,7 +7455,7 @@ msgstr ""
|
||||
msgid "Your Output"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:309
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:308
|
||||
msgid "Your batch {0} is starting tomorrow"
|
||||
msgstr ""
|
||||
|
||||
@@ -7408,7 +7463,7 @@ msgstr ""
|
||||
msgid "Your calendar is set."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:88
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:95
|
||||
msgid "Your class on {0} is today"
|
||||
msgstr ""
|
||||
|
||||
@@ -7421,7 +7476,7 @@ msgstr ""
|
||||
msgid "Your evaluation for the course {0} has been scheduled on {1} at {2} {3}."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:121
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:136
|
||||
msgid "Your evaluation slot has been booked"
|
||||
msgstr ""
|
||||
|
||||
@@ -7474,8 +7529,8 @@ msgstr ""
|
||||
msgid "activity"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/CourseInstructors.vue:22
|
||||
#: frontend/src/components/CourseInstructors.vue:41
|
||||
#: frontend/src/components/CourseInstructors.vue:24
|
||||
#: frontend/src/components/CourseInstructors.vue:45
|
||||
msgid "and"
|
||||
msgstr ""
|
||||
|
||||
@@ -7538,11 +7593,15 @@ msgstr ""
|
||||
msgid "days"
|
||||
msgstr "giorni"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:100 frontend/src/pages/Home/Home.vue:123
|
||||
#: frontend/src/pages/CourseForm.vue:290
|
||||
msgid "e.g. IST, UTC, GMT..."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:101 frontend/src/pages/Home/Home.vue:124
|
||||
msgid "evaluation"
|
||||
msgstr "valutazione"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:100 frontend/src/pages/Home/Home.vue:123
|
||||
#: frontend/src/pages/Home/Home.vue:101 frontend/src/pages/Home/Home.vue:124
|
||||
msgid "evaluations"
|
||||
msgstr ""
|
||||
|
||||
@@ -7562,11 +7621,11 @@ msgstr ""
|
||||
msgid "lessons"
|
||||
msgstr "lezioni"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:98 frontend/src/pages/Home/Home.vue:122
|
||||
#: frontend/src/pages/Home/Home.vue:99 frontend/src/pages/Home/Home.vue:123
|
||||
msgid "live class"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:98 frontend/src/pages/Home/Home.vue:122
|
||||
#: frontend/src/pages/Home/Home.vue:99 frontend/src/pages/Home/Home.vue:123
|
||||
msgid "live classes"
|
||||
msgstr ""
|
||||
|
||||
@@ -7584,11 +7643,11 @@ msgstr ""
|
||||
msgid "minutes"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/CourseInstructors.vue:41
|
||||
#: frontend/src/components/CourseInstructors.vue:45
|
||||
msgid "others"
|
||||
msgstr "altri"
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:344
|
||||
#: frontend/src/pages/QuizForm.vue:340
|
||||
msgid "question_detail"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Frappe LMS VERSION\n"
|
||||
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
||||
"POT-Creation-Date: 2025-10-03 16:04+0000\n"
|
||||
"PO-Revision-Date: 2025-10-03 16:04+0000\n"
|
||||
"POT-Creation-Date: 2025-10-31 16:04+0000\n"
|
||||
"PO-Revision-Date: 2025-10-31 16:04+0000\n"
|
||||
"Last-Translator: jannat@frappe.io\n"
|
||||
"Language-Team: jannat@frappe.io\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -194,7 +194,7 @@ msgstr ""
|
||||
msgid "Add a Student"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:585
|
||||
#: frontend/src/components/AppSidebar.vue:600
|
||||
msgid "Add a chapter"
|
||||
msgstr ""
|
||||
|
||||
@@ -206,7 +206,7 @@ msgstr ""
|
||||
msgid "Add a keyword and then press enter"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:586
|
||||
#: frontend/src/components/AppSidebar.vue:601
|
||||
msgid "Add a lesson"
|
||||
msgstr ""
|
||||
|
||||
@@ -214,12 +214,12 @@ msgstr ""
|
||||
msgid "Add a new member"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:166
|
||||
#: frontend/src/components/Modals/Question.vue:167
|
||||
#: frontend/src/pages/QuizForm.vue:200
|
||||
msgid "Add a new question"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:600
|
||||
#: frontend/src/components/AppSidebar.vue:615
|
||||
msgid "Add a program"
|
||||
msgstr ""
|
||||
|
||||
@@ -243,7 +243,7 @@ msgstr ""
|
||||
msgid "Add at least one possible answer for this question: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:549
|
||||
#: frontend/src/components/AppSidebar.vue:564
|
||||
msgid "Add courses to your batch"
|
||||
msgstr ""
|
||||
|
||||
@@ -251,7 +251,7 @@ msgstr ""
|
||||
msgid "Add quiz to this video"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:528
|
||||
#: frontend/src/components/AppSidebar.vue:543
|
||||
msgid "Add students to your batch"
|
||||
msgstr ""
|
||||
|
||||
@@ -267,11 +267,11 @@ msgstr ""
|
||||
msgid "Add your assignment as {0}"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:461
|
||||
#: frontend/src/components/AppSidebar.vue:476
|
||||
msgid "Add your first chapter"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:477
|
||||
#: frontend/src/components/AppSidebar.vue:492
|
||||
msgid "Add your first lesson"
|
||||
msgstr ""
|
||||
|
||||
@@ -376,11 +376,11 @@ msgstr ""
|
||||
msgid "Amount and currency are required for paid batches."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:76
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:79
|
||||
msgid "Amount and currency are required for paid certificates."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:73
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:76
|
||||
msgid "Amount and currency are required for paid courses."
|
||||
msgstr ""
|
||||
|
||||
@@ -506,7 +506,7 @@ msgid "Assessment {0} has already been added to this batch."
|
||||
msgstr ""
|
||||
|
||||
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
||||
#: frontend/src/components/AppSidebar.vue:603
|
||||
#: frontend/src/components/AppSidebar.vue:618
|
||||
#: frontend/src/components/Assessments.vue:5
|
||||
#: frontend/src/components/BatchStudents.vue:32
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
@@ -571,11 +571,11 @@ msgstr ""
|
||||
msgid "Assignment created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:24
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:27
|
||||
msgid "Assignment for Lesson {0} by {1} already exists."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Assignment.vue:359
|
||||
#: frontend/src/components/Assignment.vue:362
|
||||
msgid "Assignment submitted successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -588,7 +588,7 @@ msgstr ""
|
||||
msgid "Assignment will appear at the bottom of the lesson."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:607
|
||||
#: frontend/src/components/AppSidebar.vue:622
|
||||
#: frontend/src/components/Settings/Badges.vue:163
|
||||
#: frontend/src/pages/Assignments.vue:208 lms/www/lms.py:271
|
||||
msgid "Assignments"
|
||||
@@ -1015,7 +1015,7 @@ msgstr ""
|
||||
#. Enrollment'
|
||||
#. Label of a Card Break in the LMS Workspace
|
||||
#. Label of a Link in the LMS Workspace
|
||||
#: frontend/src/components/AppSidebar.vue:611
|
||||
#: frontend/src/components/AppSidebar.vue:626
|
||||
#: frontend/src/components/Modals/Event.vue:381
|
||||
#: frontend/src/pages/BatchForm.vue:69 frontend/src/pages/Batches.vue:58
|
||||
#: frontend/src/pages/CourseCertification.vue:10
|
||||
@@ -1038,6 +1038,11 @@ msgstr ""
|
||||
msgid "Certification Name"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the certifications (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Certifications"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/BatchStudents.vue:17
|
||||
msgid "Certified"
|
||||
msgstr ""
|
||||
@@ -1050,8 +1055,7 @@ msgstr ""
|
||||
msgid "Certified Members"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the certified_participants (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:300
|
||||
#: lms/www/lms.py:300
|
||||
msgid "Certified Participants"
|
||||
msgstr ""
|
||||
|
||||
@@ -1059,7 +1063,7 @@ msgstr ""
|
||||
msgid "Change"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Assignment.vue:345
|
||||
#: frontend/src/components/Assignment.vue:348
|
||||
msgid "Changes saved successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -1270,7 +1274,7 @@ msgstr ""
|
||||
msgid "Collaboration Preference"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:142
|
||||
#: frontend/src/components/AppSidebar.vue:145
|
||||
msgid "Collapse"
|
||||
msgstr ""
|
||||
|
||||
@@ -1289,7 +1293,7 @@ msgstr ""
|
||||
msgid "Color"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/BatchForm.vue:306 frontend/src/pages/CourseForm.vue:300
|
||||
#: frontend/src/pages/BatchForm.vue:306 frontend/src/pages/CourseForm.vue:312
|
||||
msgid "Comma separated keywords for SEO"
|
||||
msgstr ""
|
||||
|
||||
@@ -1299,7 +1303,7 @@ msgstr ""
|
||||
#. Label of the comments (Text Editor) field in DocType 'LMS Assignment
|
||||
#. Submission'
|
||||
#. Label of the comments (Small Text) field in DocType 'LMS Mentor Request'
|
||||
#: frontend/src/components/Assignment.vue:167
|
||||
#: frontend/src/components/Assignment.vue:170
|
||||
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
||||
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -1307,7 +1311,7 @@ msgstr ""
|
||||
msgid "Comments"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Assignment.vue:145
|
||||
#: frontend/src/components/Assignment.vue:148
|
||||
msgid "Comments by Evaluator"
|
||||
msgstr ""
|
||||
|
||||
@@ -1462,6 +1466,22 @@ msgstr ""
|
||||
msgid "Congratulations on getting certified!"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the contact_us_tab (Tab Break) field in DocType 'LMS Settings'
|
||||
#: frontend/src/components/ContactUsEmail.vue:5
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the contact_us_email (Data) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us Email"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the contact_us_url (Data) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us URL"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/CourseCardOverlay.vue:63
|
||||
#: frontend/src/pages/Lesson.vue:97
|
||||
msgid "Contact the Administrator to enroll for this course."
|
||||
@@ -1675,7 +1695,7 @@ msgstr ""
|
||||
msgid "Course Name"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseDetail.vue:78 frontend/src/pages/CourseForm.vue:310
|
||||
#: frontend/src/pages/CourseDetail.vue:78 frontend/src/pages/CourseForm.vue:322
|
||||
msgid "Course Outline"
|
||||
msgstr ""
|
||||
|
||||
@@ -1712,15 +1732,15 @@ msgstr ""
|
||||
msgid "Course added to program successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:547
|
||||
#: frontend/src/pages/CourseForm.vue:559
|
||||
msgid "Course created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:584
|
||||
#: frontend/src/pages/CourseForm.vue:596
|
||||
msgid "Course deleted successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:567
|
||||
#: frontend/src/pages/CourseForm.vue:579
|
||||
msgid "Course updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -1813,15 +1833,15 @@ msgstr ""
|
||||
msgid "Create a Quiz"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:593
|
||||
#: frontend/src/components/AppSidebar.vue:608
|
||||
msgid "Create a batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:584
|
||||
#: frontend/src/components/AppSidebar.vue:599
|
||||
msgid "Create a course"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:594
|
||||
#: frontend/src/components/AppSidebar.vue:609
|
||||
msgid "Create a live class"
|
||||
msgstr ""
|
||||
|
||||
@@ -1833,15 +1853,15 @@ msgstr ""
|
||||
msgid "Create an Assignment"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:518
|
||||
#: frontend/src/components/AppSidebar.vue:533
|
||||
msgid "Create your first batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:449
|
||||
#: frontend/src/components/AppSidebar.vue:464
|
||||
msgid "Create your first course"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:496
|
||||
#: frontend/src/components/AppSidebar.vue:511
|
||||
msgid "Create your first quiz"
|
||||
msgstr ""
|
||||
|
||||
@@ -1849,11 +1869,11 @@ msgstr ""
|
||||
msgid "Created"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:590
|
||||
#: frontend/src/components/AppSidebar.vue:605
|
||||
msgid "Creating a batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:581
|
||||
#: frontend/src/components/AppSidebar.vue:596
|
||||
msgid "Creating a course"
|
||||
msgstr ""
|
||||
|
||||
@@ -1861,7 +1881,7 @@ msgstr ""
|
||||
#. Label of the currency (Link) field in DocType 'LMS Course'
|
||||
#. Label of the currency (Link) field in DocType 'LMS Payment'
|
||||
#: frontend/src/components/Settings/TransactionDetails.vue:64
|
||||
#: frontend/src/pages/BatchForm.vue:285 frontend/src/pages/CourseForm.vue:279
|
||||
#: frontend/src/pages/BatchForm.vue:285 frontend/src/pages/CourseForm.vue:282
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
#: lms/lms/doctype/lms_payment/lms_payment.json
|
||||
@@ -1877,7 +1897,7 @@ msgstr ""
|
||||
msgid "Current Streak"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:617
|
||||
#: frontend/src/components/AppSidebar.vue:632
|
||||
msgid "Custom Certificate Templates"
|
||||
msgstr ""
|
||||
|
||||
@@ -1977,7 +1997,7 @@ msgstr ""
|
||||
#: frontend/src/components/CourseOutline.vue:360
|
||||
#: frontend/src/components/DiscussionReplies.vue:41
|
||||
#: frontend/src/components/Settings/Badges.vue:171
|
||||
#: frontend/src/pages/BatchForm.vue:565 frontend/src/pages/CourseForm.vue:597
|
||||
#: frontend/src/pages/BatchForm.vue:565 frontend/src/pages/CourseForm.vue:609
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseForm.vue:67
|
||||
#: frontend/src/pages/Programs/ProgramForm.vue:231
|
||||
msgid "Delete"
|
||||
@@ -1987,7 +2007,7 @@ msgstr ""
|
||||
msgid "Delete Chapter"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:591
|
||||
#: frontend/src/pages/CourseForm.vue:603
|
||||
msgid "Delete Course"
|
||||
msgstr ""
|
||||
|
||||
@@ -1999,7 +2019,7 @@ msgstr ""
|
||||
msgid "Delete this lesson?"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:592
|
||||
#: frontend/src/pages/CourseForm.vue:604
|
||||
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
||||
msgstr ""
|
||||
|
||||
@@ -2249,6 +2269,10 @@ msgstr ""
|
||||
msgid "Email Templates deleted successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:57
|
||||
msgid "Email sent successfully"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the show_emails (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Emails"
|
||||
@@ -2264,7 +2288,7 @@ msgstr ""
|
||||
msgid "Enable"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:21
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:22
|
||||
msgid "Enable Google API in Google Settings to send calendar invites for evaluations."
|
||||
msgstr ""
|
||||
|
||||
@@ -2363,7 +2387,7 @@ msgstr ""
|
||||
msgid "Enrollment Count"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:1880
|
||||
#: lms/lms/utils.py:1888
|
||||
msgid "Enrollment Failed, {0}"
|
||||
msgstr ""
|
||||
|
||||
@@ -2380,7 +2404,7 @@ msgstr ""
|
||||
msgid "Enrollments"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:26
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:27
|
||||
msgid "Enter Client Id and Client Secret in Google Settings to send calendar invites for evaluations."
|
||||
msgstr ""
|
||||
|
||||
@@ -2400,7 +2424,7 @@ msgstr ""
|
||||
msgid "Error creating email template"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:191
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:190
|
||||
msgid "Error creating live class. Please try again. {0}"
|
||||
msgstr ""
|
||||
|
||||
@@ -2465,7 +2489,7 @@ msgstr ""
|
||||
#. Label of the evaluator (Link) field in DocType 'LMS Course'
|
||||
#: frontend/src/components/Modals/BatchCourseModal.vue:37
|
||||
#: frontend/src/components/Modals/BulkCertificates.vue:22
|
||||
#: frontend/src/pages/CourseForm.vue:268 frontend/src/pages/ProfileRoles.vue:32
|
||||
#: frontend/src/pages/CourseForm.vue:269 frontend/src/pages/ProfileRoles.vue:32
|
||||
#: lms/lms/doctype/batch_course/batch_course.json
|
||||
#: lms/lms/doctype/course_evaluator/course_evaluator.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -2553,7 +2577,7 @@ msgstr ""
|
||||
msgid "Exercise Title"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:142
|
||||
#: frontend/src/components/AppSidebar.vue:145
|
||||
msgid "Expand"
|
||||
msgstr ""
|
||||
|
||||
@@ -2623,10 +2647,14 @@ msgstr ""
|
||||
msgid "Failed to enroll in program: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:137
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:144
|
||||
msgid "Failed to fetch attendance data from Zoom for class {0}: {1}"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:63
|
||||
msgid "Failed to send email"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseSubmission.vue:358
|
||||
msgid "Failed to submit. Please try again. {0}"
|
||||
msgstr ""
|
||||
@@ -2812,7 +2840,7 @@ msgstr ""
|
||||
|
||||
#: frontend/src/components/CertificationLinks.vue:34
|
||||
#: frontend/src/components/CertificationLinks.vue:50
|
||||
#: frontend/src/components/CourseCard.vue:125
|
||||
#: frontend/src/components/CourseCard.vue:126
|
||||
#: frontend/src/pages/CertifiedParticipants.vue:11
|
||||
msgid "Get Certified"
|
||||
msgstr ""
|
||||
@@ -2841,7 +2869,7 @@ msgid "Google Meet Link"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the grade (Data) field in DocType 'Education Detail'
|
||||
#: frontend/src/components/Assignment.vue:161
|
||||
#: frontend/src/components/Assignment.vue:164
|
||||
#: lms/lms/doctype/education_detail/education_detail.json
|
||||
msgid "Grade"
|
||||
msgstr ""
|
||||
@@ -2856,7 +2884,7 @@ msgstr ""
|
||||
msgid "Grade Type"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Assignment.vue:156
|
||||
#: frontend/src/components/Assignment.vue:159
|
||||
msgid "Grading"
|
||||
msgstr ""
|
||||
|
||||
@@ -2896,7 +2924,7 @@ msgstr ""
|
||||
msgid "Hello"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:128
|
||||
#: frontend/src/components/AppSidebar.vue:131
|
||||
msgid "Help"
|
||||
msgstr ""
|
||||
|
||||
@@ -2961,7 +2989,7 @@ msgstr ""
|
||||
msgid "Hints"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:5 frontend/src/pages/Home/Home.vue:153
|
||||
#: frontend/src/pages/Home/Home.vue:5 frontend/src/pages/Home/Home.vue:154
|
||||
msgid "Home"
|
||||
msgstr ""
|
||||
|
||||
@@ -2993,7 +3021,7 @@ msgstr ""
|
||||
msgid "I am unavailable"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:338
|
||||
#: frontend/src/pages/QuizForm.vue:334
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
@@ -3153,7 +3181,7 @@ msgstr ""
|
||||
|
||||
#. Label of the instructor (Link) field in DocType 'Cohort'
|
||||
#. Label of the instructor (Link) field in DocType 'Course Instructor'
|
||||
#: frontend/src/pages/Home/Home.vue:148 lms/lms/doctype/cohort/cohort.json
|
||||
#: frontend/src/pages/Home/Home.vue:149 lms/lms/doctype/cohort/cohort.json
|
||||
#: lms/lms/doctype/course_instructor/course_instructor.json
|
||||
msgid "Instructor"
|
||||
msgstr ""
|
||||
@@ -3189,8 +3217,8 @@ msgstr ""
|
||||
msgid "Interest"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:573
|
||||
#: frontend/src/components/AppSidebar.vue:576
|
||||
#: frontend/src/components/AppSidebar.vue:588
|
||||
#: frontend/src/components/AppSidebar.vue:591
|
||||
msgid "Introduction"
|
||||
msgstr ""
|
||||
|
||||
@@ -3212,7 +3240,7 @@ msgstr ""
|
||||
msgid "Invite Only"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:507
|
||||
#: frontend/src/components/AppSidebar.vue:522
|
||||
msgid "Invite your team and students"
|
||||
msgstr ""
|
||||
|
||||
@@ -3249,7 +3277,7 @@ msgstr ""
|
||||
msgid "Issue Date"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:614
|
||||
#: frontend/src/components/AppSidebar.vue:629
|
||||
msgid "Issue a Certificate"
|
||||
msgstr ""
|
||||
|
||||
@@ -3262,7 +3290,7 @@ msgid "Issued On"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/ProfileAbout.vue:73
|
||||
#: frontend/src/pages/ProfileCertificates.vue:17
|
||||
#: frontend/src/pages/ProfileCertificates.vue:20
|
||||
#: lms/templates/certificates_section.html:11
|
||||
msgid "Issued on"
|
||||
msgstr ""
|
||||
@@ -3677,7 +3705,7 @@ msgstr ""
|
||||
msgid "Learning Consistency"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:598
|
||||
#: frontend/src/components/AppSidebar.vue:613
|
||||
msgid "Learning Paths"
|
||||
msgstr ""
|
||||
|
||||
@@ -3726,7 +3754,7 @@ msgstr ""
|
||||
msgid "Lesson Title"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/LessonForm.vue:426
|
||||
#: frontend/src/pages/LessonForm.vue:425
|
||||
msgid "Lesson created successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -3738,7 +3766,7 @@ msgstr ""
|
||||
msgid "Lesson moved successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/LessonForm.vue:450
|
||||
#: frontend/src/pages/LessonForm.vue:449
|
||||
msgid "Lesson updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -3887,7 +3915,7 @@ msgstr ""
|
||||
msgid "Manage Batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:119
|
||||
#: frontend/src/pages/Home/Home.vue:120
|
||||
msgid "Manage your courses and batches at a glance"
|
||||
msgstr ""
|
||||
|
||||
@@ -3918,7 +3946,7 @@ msgstr ""
|
||||
#. Label of the marks (Int) field in DocType 'LMS Quiz Result'
|
||||
#: frontend/src/components/Modals/Question.vue:40
|
||||
#: frontend/src/components/Modals/Question.vue:106
|
||||
#: frontend/src/components/Quiz.vue:120 frontend/src/pages/QuizForm.vue:348
|
||||
#: frontend/src/components/Quiz.vue:120 frontend/src/pages/QuizForm.vue:344
|
||||
#: frontend/src/pages/QuizSubmission.vue:64
|
||||
#: lms/lms/doctype/lms_quiz_question/lms_quiz_question.json
|
||||
#: lms/lms/doctype/lms_quiz_result/lms_quiz_result.json
|
||||
@@ -4197,8 +4225,12 @@ msgstr ""
|
||||
msgid "Mentor Request Status Update Template"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:19
|
||||
msgid "Message"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the meta_description (Small Text) field in DocType 'LMS Settings'
|
||||
#: frontend/src/pages/BatchForm.vue:297 frontend/src/pages/CourseForm.vue:291
|
||||
#: frontend/src/pages/BatchForm.vue:297 frontend/src/pages/CourseForm.vue:303
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Meta Description"
|
||||
msgstr ""
|
||||
@@ -4212,12 +4244,12 @@ msgid "Meta Image"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the meta_keywords (Small Text) field in DocType 'LMS Settings'
|
||||
#: frontend/src/pages/BatchForm.vue:303 frontend/src/pages/CourseForm.vue:297
|
||||
#: frontend/src/pages/BatchForm.vue:303 frontend/src/pages/CourseForm.vue:309
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Meta Keywords"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/BatchForm.vue:292 frontend/src/pages/CourseForm.vue:286
|
||||
#: frontend/src/pages/BatchForm.vue:292 frontend/src/pages/CourseForm.vue:298
|
||||
msgid "Meta Tags"
|
||||
msgstr ""
|
||||
|
||||
@@ -4288,7 +4320,7 @@ msgstr ""
|
||||
msgid "Monday"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:622
|
||||
#: frontend/src/components/AppSidebar.vue:637
|
||||
msgid "Monetization"
|
||||
msgstr ""
|
||||
|
||||
@@ -4344,7 +4376,7 @@ msgstr ""
|
||||
msgid "New Batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:678 lms/www/lms.py:93
|
||||
#: frontend/src/pages/CourseForm.vue:690 lms/www/lms.py:93
|
||||
msgid "New Course"
|
||||
msgstr ""
|
||||
|
||||
@@ -4368,7 +4400,7 @@ msgstr ""
|
||||
msgid "New Question"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:404 frontend/src/pages/QuizForm.vue:412
|
||||
#: frontend/src/pages/QuizForm.vue:400 frontend/src/pages/QuizForm.vue:408
|
||||
msgid "New Quiz"
|
||||
msgstr ""
|
||||
|
||||
@@ -4948,7 +4980,7 @@ msgstr ""
|
||||
msgid "Pink"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:34
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:35
|
||||
msgid "Please add <a href='{0}'>{1}</a> for <a href='{2}'>{3}</a> to send calendar invites for evaluations."
|
||||
msgstr ""
|
||||
|
||||
@@ -4972,7 +5004,7 @@ msgstr ""
|
||||
msgid "Please complete the previous course to unlock this one."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:197
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:196
|
||||
msgid "Please enable the zoom account to use this feature."
|
||||
msgstr ""
|
||||
|
||||
@@ -4988,8 +5020,16 @@ msgstr ""
|
||||
msgid "Please enter a title."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:29
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:80
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:51
|
||||
msgid "Please enter a valid Contact Us Email."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:53
|
||||
msgid "Please enter a valid Contact Us URL."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:32
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:107
|
||||
msgid "Please enter a valid URL."
|
||||
msgstr ""
|
||||
|
||||
@@ -5001,7 +5041,7 @@ msgstr ""
|
||||
msgid "Please enter a valid timestamp"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:74
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:101
|
||||
msgid "Please enter the URL for assignment submission."
|
||||
msgstr ""
|
||||
|
||||
@@ -5029,7 +5069,7 @@ msgstr ""
|
||||
msgid "Please login to continue with payment."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:2012
|
||||
#: lms/lms/utils.py:2020
|
||||
msgid "Please login to enroll in the program."
|
||||
msgstr ""
|
||||
|
||||
@@ -5086,7 +5126,7 @@ msgstr ""
|
||||
msgid "Please upload a SCORM package"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:77
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:104
|
||||
msgid "Please upload the assignment file."
|
||||
msgstr ""
|
||||
|
||||
@@ -5132,7 +5172,7 @@ msgstr ""
|
||||
msgid "Postal Code"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:122
|
||||
#: frontend/src/components/AppSidebar.vue:125
|
||||
msgid "Powered by Learning"
|
||||
msgstr ""
|
||||
|
||||
@@ -5409,7 +5449,7 @@ msgstr ""
|
||||
#: frontend/src/components/Assignment.vue:20
|
||||
#: frontend/src/components/Modals/AssignmentForm.vue:32
|
||||
#: frontend/src/components/Modals/Question.vue:27
|
||||
#: frontend/src/pages/QuizForm.vue:343 frontend/src/pages/QuizSubmission.vue:56
|
||||
#: frontend/src/pages/QuizForm.vue:339 frontend/src/pages/QuizSubmission.vue:56
|
||||
#: lms/lms/doctype/course_lesson/course_lesson.json
|
||||
#: lms/lms/doctype/lms_assignment/lms_assignment.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -5429,11 +5469,11 @@ msgstr ""
|
||||
msgid "Question Name"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:284
|
||||
#: frontend/src/components/Modals/Question.vue:285
|
||||
msgid "Question added successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:334
|
||||
#: frontend/src/components/Modals/Question.vue:335
|
||||
msgid "Question updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -5450,7 +5490,7 @@ msgstr ""
|
||||
msgid "Questions"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:385
|
||||
#: frontend/src/pages/QuizForm.vue:381
|
||||
msgid "Questions deleted successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -5500,7 +5540,7 @@ msgstr ""
|
||||
msgid "Quiz is not available to Guest users. Please login to continue."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:310
|
||||
#: frontend/src/pages/QuizForm.vue:306
|
||||
msgid "Quiz updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -5509,8 +5549,8 @@ msgstr ""
|
||||
msgid "Quiz will appear at the bottom of the lesson."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:606
|
||||
#: frontend/src/pages/QuizForm.vue:396 frontend/src/pages/Quizzes.vue:275
|
||||
#: frontend/src/components/AppSidebar.vue:621
|
||||
#: frontend/src/pages/QuizForm.vue:392 frontend/src/pages/Quizzes.vue:275
|
||||
#: frontend/src/pages/Quizzes.vue:285 lms/www/lms.py:249
|
||||
msgid "Quizzes"
|
||||
msgstr ""
|
||||
@@ -5653,7 +5693,7 @@ msgstr ""
|
||||
msgid "Resume Video"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:142
|
||||
#: frontend/src/pages/Home/Home.vue:143
|
||||
msgid "Resume where you left off"
|
||||
msgstr ""
|
||||
|
||||
@@ -5694,7 +5734,7 @@ msgstr ""
|
||||
msgid "Role updated successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:634
|
||||
#: frontend/src/components/AppSidebar.vue:649
|
||||
msgid "Roles"
|
||||
msgstr ""
|
||||
|
||||
@@ -5912,6 +5952,10 @@ msgstr ""
|
||||
msgid "Select an assignment"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:33
|
||||
msgid "Send"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch_enrollment/lms_batch_enrollment.js:7
|
||||
msgid "Send Confirmation Email"
|
||||
msgstr ""
|
||||
@@ -5943,16 +5987,16 @@ msgstr ""
|
||||
msgid "Set your Password"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:577
|
||||
#: frontend/src/components/AppSidebar.vue:592
|
||||
msgid "Setting up"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:627
|
||||
#: frontend/src/components/AppSidebar.vue:642
|
||||
msgid "Setting up payment gateway"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:632
|
||||
#: frontend/src/components/Settings/Settings.vue:7
|
||||
#: frontend/src/components/AppSidebar.vue:647
|
||||
#: frontend/src/components/Settings/Settings.vue:9
|
||||
#: frontend/src/pages/BatchForm.vue:53 frontend/src/pages/CourseForm.vue:142
|
||||
#: frontend/src/pages/ProfileRoles.vue:4
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseSubmission.vue:19
|
||||
@@ -6250,7 +6294,7 @@ msgstr ""
|
||||
#. Option for the 'User Category' (Select) field in DocType 'User'
|
||||
#. Option for the 'Required Role' (Select) field in DocType 'Cohort Web Page'
|
||||
#. Option for the 'Member Type' (Select) field in DocType 'LMS Enrollment'
|
||||
#: frontend/src/pages/Home/Home.vue:147 frontend/src/pages/ProfileRoles.vue:38
|
||||
#: frontend/src/pages/Home/Home.vue:148 frontend/src/pages/ProfileRoles.vue:38
|
||||
#: lms/fixtures/custom_field.json
|
||||
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
||||
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
||||
@@ -6287,6 +6331,7 @@ msgstr ""
|
||||
msgid "Subgroup"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:13
|
||||
#: frontend/src/components/Modals/AnnouncementModal.vue:20
|
||||
#: frontend/src/components/Modals/EmailTemplateModal.vue:31
|
||||
msgid "Subject"
|
||||
@@ -6522,7 +6567,7 @@ msgstr ""
|
||||
msgid "Thanks and Regards"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:1904
|
||||
#: lms/lms/utils.py:1912
|
||||
msgid "The batch is full. Please contact the Administrator."
|
||||
msgstr ""
|
||||
|
||||
@@ -6534,11 +6579,11 @@ msgstr ""
|
||||
msgid "The course {0} is now available on {1}."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:55
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:56
|
||||
msgid "The evaluator of this course is unavailable from {0} to {1}. Please select a date after {1}"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:73
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:74
|
||||
msgid "The slot is already booked by another participant."
|
||||
msgstr ""
|
||||
|
||||
@@ -6574,7 +6619,7 @@ msgstr ""
|
||||
msgid "There are no {0} on this site."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:40
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:67
|
||||
msgid "There has been an update on your submission for assignment {0}"
|
||||
msgstr ""
|
||||
|
||||
@@ -6611,7 +6656,7 @@ msgstr ""
|
||||
msgid "This course has:"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:1765
|
||||
#: lms/lms/utils.py:1773
|
||||
msgid "This course is free."
|
||||
msgstr ""
|
||||
|
||||
@@ -6647,8 +6692,8 @@ msgstr ""
|
||||
msgid "This quiz consists of {0} questions."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:75
|
||||
#: frontend/src/components/AppSidebar.vue:115
|
||||
#: frontend/src/components/AppSidebar.vue:78
|
||||
#: frontend/src/components/AppSidebar.vue:118
|
||||
msgid "This site is being updated. You will not be able to make any changes. Full access will be restored shortly."
|
||||
msgstr ""
|
||||
|
||||
@@ -6719,15 +6764,21 @@ msgstr ""
|
||||
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Batch'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Certificate Request'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Course'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Live Class'
|
||||
#: frontend/src/components/Modals/LiveClassModal.vue:59
|
||||
#: frontend/src/pages/BatchForm.vue:114
|
||||
#: frontend/src/pages/BatchForm.vue:114 frontend/src/pages/CourseForm.vue:288
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.json
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.json
|
||||
msgid "Timezone"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:72
|
||||
msgid "Timezone is required for paid certificates."
|
||||
msgstr ""
|
||||
|
||||
#: lms/templates/emails/batch_confirmation.html:21
|
||||
#: lms/templates/emails/batch_start_reminder.html:16
|
||||
#: lms/templates/emails/live_class_reminder.html:16
|
||||
@@ -6797,7 +6848,7 @@ msgstr ""
|
||||
msgid "To Date"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:1776
|
||||
#: lms/lms/utils.py:1784
|
||||
msgid "To join this batch, please contact the Administrator."
|
||||
msgstr ""
|
||||
|
||||
@@ -7224,7 +7275,7 @@ msgstr ""
|
||||
msgid "Yellow"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:95
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:96
|
||||
msgid "You already have an evaluation on {0} at {1} for the course {2}."
|
||||
msgstr ""
|
||||
|
||||
@@ -7277,11 +7328,11 @@ msgstr ""
|
||||
msgid "You cannot change the roles in read-only mode."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:111
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:112
|
||||
msgid "You cannot schedule evaluations after {0}."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:102
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:103
|
||||
msgid "You cannot schedule evaluations for past slots."
|
||||
msgstr ""
|
||||
|
||||
@@ -7338,19 +7389,23 @@ msgstr ""
|
||||
msgid "You have got a score of {0} for the quiz {1}"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/ProfileCertificates.vue:26
|
||||
msgid "You have not received any certificates yet."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/widgets/NoPreviewModal.html:12
|
||||
msgid "You have opted to be notified for this course. You will receive an email when the course becomes available."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:102 frontend/src/pages/Home/Home.vue:125
|
||||
#: frontend/src/pages/Home/Home.vue:103 frontend/src/pages/Home/Home.vue:126
|
||||
msgid "You have {0} upcoming {1} and {2} {3} scheduled."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:109 frontend/src/pages/Home/Home.vue:132
|
||||
#: frontend/src/pages/Home/Home.vue:110 frontend/src/pages/Home/Home.vue:133
|
||||
msgid "You have {0} upcoming {1}."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:114 frontend/src/pages/Home/Home.vue:137
|
||||
#: frontend/src/pages/Home/Home.vue:115 frontend/src/pages/Home/Home.vue:138
|
||||
msgid "You have {0} {1} scheduled."
|
||||
msgstr ""
|
||||
|
||||
@@ -7398,7 +7453,7 @@ msgstr ""
|
||||
msgid "Your Output"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:309
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:308
|
||||
msgid "Your batch {0} is starting tomorrow"
|
||||
msgstr ""
|
||||
|
||||
@@ -7406,7 +7461,7 @@ msgstr ""
|
||||
msgid "Your calendar is set."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:88
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:95
|
||||
msgid "Your class on {0} is today"
|
||||
msgstr ""
|
||||
|
||||
@@ -7419,7 +7474,7 @@ msgstr ""
|
||||
msgid "Your evaluation for the course {0} has been scheduled on {1} at {2} {3}."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:121
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:136
|
||||
msgid "Your evaluation slot has been booked"
|
||||
msgstr ""
|
||||
|
||||
@@ -7472,8 +7527,8 @@ msgstr ""
|
||||
msgid "activity"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/CourseInstructors.vue:22
|
||||
#: frontend/src/components/CourseInstructors.vue:41
|
||||
#: frontend/src/components/CourseInstructors.vue:24
|
||||
#: frontend/src/components/CourseInstructors.vue:45
|
||||
msgid "and"
|
||||
msgstr ""
|
||||
|
||||
@@ -7536,11 +7591,15 @@ msgstr ""
|
||||
msgid "days"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:100 frontend/src/pages/Home/Home.vue:123
|
||||
#: frontend/src/pages/CourseForm.vue:290
|
||||
msgid "e.g. IST, UTC, GMT..."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:101 frontend/src/pages/Home/Home.vue:124
|
||||
msgid "evaluation"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:100 frontend/src/pages/Home/Home.vue:123
|
||||
#: frontend/src/pages/Home/Home.vue:101 frontend/src/pages/Home/Home.vue:124
|
||||
msgid "evaluations"
|
||||
msgstr ""
|
||||
|
||||
@@ -7560,11 +7619,11 @@ msgstr ""
|
||||
msgid "lessons"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:98 frontend/src/pages/Home/Home.vue:122
|
||||
#: frontend/src/pages/Home/Home.vue:99 frontend/src/pages/Home/Home.vue:123
|
||||
msgid "live class"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:98 frontend/src/pages/Home/Home.vue:122
|
||||
#: frontend/src/pages/Home/Home.vue:99 frontend/src/pages/Home/Home.vue:123
|
||||
msgid "live classes"
|
||||
msgstr ""
|
||||
|
||||
@@ -7582,11 +7641,11 @@ msgstr ""
|
||||
msgid "minutes"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/CourseInstructors.vue:41
|
||||
#: frontend/src/components/CourseInstructors.vue:45
|
||||
msgid "others"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:344
|
||||
#: frontend/src/pages/QuizForm.vue:340
|
||||
msgid "question_detail"
|
||||
msgstr ""
|
||||
|
||||
|
||||
301
lms/locale/my.po
301
lms/locale/my.po
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: frappe\n"
|
||||
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
||||
"POT-Creation-Date: 2025-10-03 16:04+0000\n"
|
||||
"PO-Revision-Date: 2025-10-07 11:33\n"
|
||||
"POT-Creation-Date: 2025-10-31 16:04+0000\n"
|
||||
"PO-Revision-Date: 2025-11-02 19:07\n"
|
||||
"Last-Translator: jannat@frappe.io\n"
|
||||
"Language-Team: Burmese\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -196,7 +196,7 @@ msgstr ""
|
||||
msgid "Add a Student"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:585
|
||||
#: frontend/src/components/AppSidebar.vue:600
|
||||
msgid "Add a chapter"
|
||||
msgstr ""
|
||||
|
||||
@@ -208,7 +208,7 @@ msgstr ""
|
||||
msgid "Add a keyword and then press enter"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:586
|
||||
#: frontend/src/components/AppSidebar.vue:601
|
||||
msgid "Add a lesson"
|
||||
msgstr ""
|
||||
|
||||
@@ -216,12 +216,12 @@ msgstr ""
|
||||
msgid "Add a new member"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:166
|
||||
#: frontend/src/components/Modals/Question.vue:167
|
||||
#: frontend/src/pages/QuizForm.vue:200
|
||||
msgid "Add a new question"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:600
|
||||
#: frontend/src/components/AppSidebar.vue:615
|
||||
msgid "Add a program"
|
||||
msgstr ""
|
||||
|
||||
@@ -245,7 +245,7 @@ msgstr ""
|
||||
msgid "Add at least one possible answer for this question: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:549
|
||||
#: frontend/src/components/AppSidebar.vue:564
|
||||
msgid "Add courses to your batch"
|
||||
msgstr ""
|
||||
|
||||
@@ -253,7 +253,7 @@ msgstr ""
|
||||
msgid "Add quiz to this video"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:528
|
||||
#: frontend/src/components/AppSidebar.vue:543
|
||||
msgid "Add students to your batch"
|
||||
msgstr ""
|
||||
|
||||
@@ -269,11 +269,11 @@ msgstr ""
|
||||
msgid "Add your assignment as {0}"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:461
|
||||
#: frontend/src/components/AppSidebar.vue:476
|
||||
msgid "Add your first chapter"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:477
|
||||
#: frontend/src/components/AppSidebar.vue:492
|
||||
msgid "Add your first lesson"
|
||||
msgstr ""
|
||||
|
||||
@@ -378,11 +378,11 @@ msgstr ""
|
||||
msgid "Amount and currency are required for paid batches."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:76
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:79
|
||||
msgid "Amount and currency are required for paid certificates."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:73
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:76
|
||||
msgid "Amount and currency are required for paid courses."
|
||||
msgstr ""
|
||||
|
||||
@@ -508,7 +508,7 @@ msgid "Assessment {0} has already been added to this batch."
|
||||
msgstr ""
|
||||
|
||||
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
||||
#: frontend/src/components/AppSidebar.vue:603
|
||||
#: frontend/src/components/AppSidebar.vue:618
|
||||
#: frontend/src/components/Assessments.vue:5
|
||||
#: frontend/src/components/BatchStudents.vue:32
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
@@ -573,11 +573,11 @@ msgstr ""
|
||||
msgid "Assignment created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:24
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:27
|
||||
msgid "Assignment for Lesson {0} by {1} already exists."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Assignment.vue:359
|
||||
#: frontend/src/components/Assignment.vue:362
|
||||
msgid "Assignment submitted successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -590,7 +590,7 @@ msgstr ""
|
||||
msgid "Assignment will appear at the bottom of the lesson."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:607
|
||||
#: frontend/src/components/AppSidebar.vue:622
|
||||
#: frontend/src/components/Settings/Badges.vue:163
|
||||
#: frontend/src/pages/Assignments.vue:208 lms/www/lms.py:271
|
||||
msgid "Assignments"
|
||||
@@ -1017,7 +1017,7 @@ msgstr ""
|
||||
#. Enrollment'
|
||||
#. Label of a Card Break in the LMS Workspace
|
||||
#. Label of a Link in the LMS Workspace
|
||||
#: frontend/src/components/AppSidebar.vue:611
|
||||
#: frontend/src/components/AppSidebar.vue:626
|
||||
#: frontend/src/components/Modals/Event.vue:381
|
||||
#: frontend/src/pages/BatchForm.vue:69 frontend/src/pages/Batches.vue:58
|
||||
#: frontend/src/pages/CourseCertification.vue:10
|
||||
@@ -1040,6 +1040,11 @@ msgstr ""
|
||||
msgid "Certification Name"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the certifications (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Certifications"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/BatchStudents.vue:17
|
||||
msgid "Certified"
|
||||
msgstr ""
|
||||
@@ -1052,8 +1057,7 @@ msgstr ""
|
||||
msgid "Certified Members"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the certified_participants (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:300
|
||||
#: lms/www/lms.py:300
|
||||
msgid "Certified Participants"
|
||||
msgstr ""
|
||||
|
||||
@@ -1061,7 +1065,7 @@ msgstr ""
|
||||
msgid "Change"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Assignment.vue:345
|
||||
#: frontend/src/components/Assignment.vue:348
|
||||
msgid "Changes saved successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -1272,7 +1276,7 @@ msgstr ""
|
||||
msgid "Collaboration Preference"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:142
|
||||
#: frontend/src/components/AppSidebar.vue:145
|
||||
msgid "Collapse"
|
||||
msgstr ""
|
||||
|
||||
@@ -1289,9 +1293,9 @@ msgstr ""
|
||||
#: lms/lms/doctype/lms_lesson_note/lms_lesson_note.json
|
||||
#: lms/lms/doctype/lms_timetable_legend/lms_timetable_legend.json
|
||||
msgid "Color"
|
||||
msgstr ""
|
||||
msgstr "အရောင်"
|
||||
|
||||
#: frontend/src/pages/BatchForm.vue:306 frontend/src/pages/CourseForm.vue:300
|
||||
#: frontend/src/pages/BatchForm.vue:306 frontend/src/pages/CourseForm.vue:312
|
||||
msgid "Comma separated keywords for SEO"
|
||||
msgstr ""
|
||||
|
||||
@@ -1301,7 +1305,7 @@ msgstr ""
|
||||
#. Label of the comments (Text Editor) field in DocType 'LMS Assignment
|
||||
#. Submission'
|
||||
#. Label of the comments (Small Text) field in DocType 'LMS Mentor Request'
|
||||
#: frontend/src/components/Assignment.vue:167
|
||||
#: frontend/src/components/Assignment.vue:170
|
||||
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
||||
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -1309,7 +1313,7 @@ msgstr ""
|
||||
msgid "Comments"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Assignment.vue:145
|
||||
#: frontend/src/components/Assignment.vue:148
|
||||
msgid "Comments by Evaluator"
|
||||
msgstr ""
|
||||
|
||||
@@ -1464,6 +1468,22 @@ msgstr ""
|
||||
msgid "Congratulations on getting certified!"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the contact_us_tab (Tab Break) field in DocType 'LMS Settings'
|
||||
#: frontend/src/components/ContactUsEmail.vue:5
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the contact_us_email (Data) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us Email"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the contact_us_url (Data) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us URL"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/CourseCardOverlay.vue:63
|
||||
#: frontend/src/pages/Lesson.vue:97
|
||||
msgid "Contact the Administrator to enroll for this course."
|
||||
@@ -1677,7 +1697,7 @@ msgstr ""
|
||||
msgid "Course Name"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseDetail.vue:78 frontend/src/pages/CourseForm.vue:310
|
||||
#: frontend/src/pages/CourseDetail.vue:78 frontend/src/pages/CourseForm.vue:322
|
||||
msgid "Course Outline"
|
||||
msgstr ""
|
||||
|
||||
@@ -1714,15 +1734,15 @@ msgstr ""
|
||||
msgid "Course added to program successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:547
|
||||
#: frontend/src/pages/CourseForm.vue:559
|
||||
msgid "Course created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:584
|
||||
#: frontend/src/pages/CourseForm.vue:596
|
||||
msgid "Course deleted successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:567
|
||||
#: frontend/src/pages/CourseForm.vue:579
|
||||
msgid "Course updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -1815,15 +1835,15 @@ msgstr ""
|
||||
msgid "Create a Quiz"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:593
|
||||
#: frontend/src/components/AppSidebar.vue:608
|
||||
msgid "Create a batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:584
|
||||
#: frontend/src/components/AppSidebar.vue:599
|
||||
msgid "Create a course"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:594
|
||||
#: frontend/src/components/AppSidebar.vue:609
|
||||
msgid "Create a live class"
|
||||
msgstr ""
|
||||
|
||||
@@ -1835,15 +1855,15 @@ msgstr ""
|
||||
msgid "Create an Assignment"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:518
|
||||
#: frontend/src/components/AppSidebar.vue:533
|
||||
msgid "Create your first batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:449
|
||||
#: frontend/src/components/AppSidebar.vue:464
|
||||
msgid "Create your first course"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:496
|
||||
#: frontend/src/components/AppSidebar.vue:511
|
||||
msgid "Create your first quiz"
|
||||
msgstr ""
|
||||
|
||||
@@ -1851,11 +1871,11 @@ msgstr ""
|
||||
msgid "Created"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:590
|
||||
#: frontend/src/components/AppSidebar.vue:605
|
||||
msgid "Creating a batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:581
|
||||
#: frontend/src/components/AppSidebar.vue:596
|
||||
msgid "Creating a course"
|
||||
msgstr ""
|
||||
|
||||
@@ -1863,7 +1883,7 @@ msgstr ""
|
||||
#. Label of the currency (Link) field in DocType 'LMS Course'
|
||||
#. Label of the currency (Link) field in DocType 'LMS Payment'
|
||||
#: frontend/src/components/Settings/TransactionDetails.vue:64
|
||||
#: frontend/src/pages/BatchForm.vue:285 frontend/src/pages/CourseForm.vue:279
|
||||
#: frontend/src/pages/BatchForm.vue:285 frontend/src/pages/CourseForm.vue:282
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
#: lms/lms/doctype/lms_payment/lms_payment.json
|
||||
@@ -1879,7 +1899,7 @@ msgstr ""
|
||||
msgid "Current Streak"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:617
|
||||
#: frontend/src/components/AppSidebar.vue:632
|
||||
msgid "Custom Certificate Templates"
|
||||
msgstr ""
|
||||
|
||||
@@ -1946,7 +1966,7 @@ msgstr ""
|
||||
#: lms/lms/doctype/lms_batch_timetable/lms_batch_timetable.json
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.json
|
||||
msgid "Day"
|
||||
msgstr ""
|
||||
msgstr "နေ့"
|
||||
|
||||
#: lms/templates/emails/mentor_request_creation_email.html:2
|
||||
#: lms/templates/emails/mentor_request_status_update_email.html:2
|
||||
@@ -1979,7 +1999,7 @@ msgstr ""
|
||||
#: frontend/src/components/CourseOutline.vue:360
|
||||
#: frontend/src/components/DiscussionReplies.vue:41
|
||||
#: frontend/src/components/Settings/Badges.vue:171
|
||||
#: frontend/src/pages/BatchForm.vue:565 frontend/src/pages/CourseForm.vue:597
|
||||
#: frontend/src/pages/BatchForm.vue:565 frontend/src/pages/CourseForm.vue:609
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseForm.vue:67
|
||||
#: frontend/src/pages/Programs/ProgramForm.vue:231
|
||||
msgid "Delete"
|
||||
@@ -1989,7 +2009,7 @@ msgstr ""
|
||||
msgid "Delete Chapter"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:591
|
||||
#: frontend/src/pages/CourseForm.vue:603
|
||||
msgid "Delete Course"
|
||||
msgstr ""
|
||||
|
||||
@@ -2001,7 +2021,7 @@ msgstr ""
|
||||
msgid "Delete this lesson?"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:592
|
||||
#: frontend/src/pages/CourseForm.vue:604
|
||||
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
||||
msgstr ""
|
||||
|
||||
@@ -2251,6 +2271,10 @@ msgstr ""
|
||||
msgid "Email Templates deleted successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:57
|
||||
msgid "Email sent successfully"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the show_emails (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Emails"
|
||||
@@ -2266,7 +2290,7 @@ msgstr ""
|
||||
msgid "Enable"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:21
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:22
|
||||
msgid "Enable Google API in Google Settings to send calendar invites for evaluations."
|
||||
msgstr ""
|
||||
|
||||
@@ -2365,7 +2389,7 @@ msgstr ""
|
||||
msgid "Enrollment Count"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:1880
|
||||
#: lms/lms/utils.py:1888
|
||||
msgid "Enrollment Failed, {0}"
|
||||
msgstr ""
|
||||
|
||||
@@ -2382,7 +2406,7 @@ msgstr ""
|
||||
msgid "Enrollments"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:26
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:27
|
||||
msgid "Enter Client Id and Client Secret in Google Settings to send calendar invites for evaluations."
|
||||
msgstr ""
|
||||
|
||||
@@ -2402,7 +2426,7 @@ msgstr ""
|
||||
msgid "Error creating email template"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:191
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:190
|
||||
msgid "Error creating live class. Please try again. {0}"
|
||||
msgstr ""
|
||||
|
||||
@@ -2467,7 +2491,7 @@ msgstr ""
|
||||
#. Label of the evaluator (Link) field in DocType 'LMS Course'
|
||||
#: frontend/src/components/Modals/BatchCourseModal.vue:37
|
||||
#: frontend/src/components/Modals/BulkCertificates.vue:22
|
||||
#: frontend/src/pages/CourseForm.vue:268 frontend/src/pages/ProfileRoles.vue:32
|
||||
#: frontend/src/pages/CourseForm.vue:269 frontend/src/pages/ProfileRoles.vue:32
|
||||
#: lms/lms/doctype/batch_course/batch_course.json
|
||||
#: lms/lms/doctype/course_evaluator/course_evaluator.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -2555,7 +2579,7 @@ msgstr ""
|
||||
msgid "Exercise Title"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:142
|
||||
#: frontend/src/components/AppSidebar.vue:145
|
||||
msgid "Expand"
|
||||
msgstr ""
|
||||
|
||||
@@ -2625,10 +2649,14 @@ msgstr ""
|
||||
msgid "Failed to enroll in program: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:137
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:144
|
||||
msgid "Failed to fetch attendance data from Zoom for class {0}: {1}"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:63
|
||||
msgid "Failed to send email"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseSubmission.vue:358
|
||||
msgid "Failed to submit. Please try again. {0}"
|
||||
msgstr ""
|
||||
@@ -2814,7 +2842,7 @@ msgstr ""
|
||||
|
||||
#: frontend/src/components/CertificationLinks.vue:34
|
||||
#: frontend/src/components/CertificationLinks.vue:50
|
||||
#: frontend/src/components/CourseCard.vue:125
|
||||
#: frontend/src/components/CourseCard.vue:126
|
||||
#: frontend/src/pages/CertifiedParticipants.vue:11
|
||||
msgid "Get Certified"
|
||||
msgstr ""
|
||||
@@ -2843,7 +2871,7 @@ msgid "Google Meet Link"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the grade (Data) field in DocType 'Education Detail'
|
||||
#: frontend/src/components/Assignment.vue:161
|
||||
#: frontend/src/components/Assignment.vue:164
|
||||
#: lms/lms/doctype/education_detail/education_detail.json
|
||||
msgid "Grade"
|
||||
msgstr ""
|
||||
@@ -2858,7 +2886,7 @@ msgstr ""
|
||||
msgid "Grade Type"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Assignment.vue:156
|
||||
#: frontend/src/components/Assignment.vue:159
|
||||
msgid "Grading"
|
||||
msgstr ""
|
||||
|
||||
@@ -2898,7 +2926,7 @@ msgstr ""
|
||||
msgid "Hello"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:128
|
||||
#: frontend/src/components/AppSidebar.vue:131
|
||||
msgid "Help"
|
||||
msgstr ""
|
||||
|
||||
@@ -2963,7 +2991,7 @@ msgstr ""
|
||||
msgid "Hints"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:5 frontend/src/pages/Home/Home.vue:153
|
||||
#: frontend/src/pages/Home/Home.vue:5 frontend/src/pages/Home/Home.vue:154
|
||||
msgid "Home"
|
||||
msgstr ""
|
||||
|
||||
@@ -2995,7 +3023,7 @@ msgstr ""
|
||||
msgid "I am unavailable"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:338
|
||||
#: frontend/src/pages/QuizForm.vue:334
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
@@ -3155,7 +3183,7 @@ msgstr ""
|
||||
|
||||
#. Label of the instructor (Link) field in DocType 'Cohort'
|
||||
#. Label of the instructor (Link) field in DocType 'Course Instructor'
|
||||
#: frontend/src/pages/Home/Home.vue:148 lms/lms/doctype/cohort/cohort.json
|
||||
#: frontend/src/pages/Home/Home.vue:149 lms/lms/doctype/cohort/cohort.json
|
||||
#: lms/lms/doctype/course_instructor/course_instructor.json
|
||||
msgid "Instructor"
|
||||
msgstr ""
|
||||
@@ -3191,8 +3219,8 @@ msgstr ""
|
||||
msgid "Interest"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:573
|
||||
#: frontend/src/components/AppSidebar.vue:576
|
||||
#: frontend/src/components/AppSidebar.vue:588
|
||||
#: frontend/src/components/AppSidebar.vue:591
|
||||
msgid "Introduction"
|
||||
msgstr ""
|
||||
|
||||
@@ -3214,7 +3242,7 @@ msgstr ""
|
||||
msgid "Invite Only"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:507
|
||||
#: frontend/src/components/AppSidebar.vue:522
|
||||
msgid "Invite your team and students"
|
||||
msgstr ""
|
||||
|
||||
@@ -3251,7 +3279,7 @@ msgstr ""
|
||||
msgid "Issue Date"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:614
|
||||
#: frontend/src/components/AppSidebar.vue:629
|
||||
msgid "Issue a Certificate"
|
||||
msgstr ""
|
||||
|
||||
@@ -3264,7 +3292,7 @@ msgid "Issued On"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/ProfileAbout.vue:73
|
||||
#: frontend/src/pages/ProfileCertificates.vue:17
|
||||
#: frontend/src/pages/ProfileCertificates.vue:20
|
||||
#: lms/templates/certificates_section.html:11
|
||||
msgid "Issued on"
|
||||
msgstr ""
|
||||
@@ -3679,7 +3707,7 @@ msgstr ""
|
||||
msgid "Learning Consistency"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:598
|
||||
#: frontend/src/components/AppSidebar.vue:613
|
||||
msgid "Learning Paths"
|
||||
msgstr ""
|
||||
|
||||
@@ -3728,7 +3756,7 @@ msgstr ""
|
||||
msgid "Lesson Title"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/LessonForm.vue:426
|
||||
#: frontend/src/pages/LessonForm.vue:425
|
||||
msgid "Lesson created successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -3740,7 +3768,7 @@ msgstr ""
|
||||
msgid "Lesson moved successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/LessonForm.vue:450
|
||||
#: frontend/src/pages/LessonForm.vue:449
|
||||
msgid "Lesson updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -3889,7 +3917,7 @@ msgstr ""
|
||||
msgid "Manage Batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:119
|
||||
#: frontend/src/pages/Home/Home.vue:120
|
||||
msgid "Manage your courses and batches at a glance"
|
||||
msgstr ""
|
||||
|
||||
@@ -3920,7 +3948,7 @@ msgstr ""
|
||||
#. Label of the marks (Int) field in DocType 'LMS Quiz Result'
|
||||
#: frontend/src/components/Modals/Question.vue:40
|
||||
#: frontend/src/components/Modals/Question.vue:106
|
||||
#: frontend/src/components/Quiz.vue:120 frontend/src/pages/QuizForm.vue:348
|
||||
#: frontend/src/components/Quiz.vue:120 frontend/src/pages/QuizForm.vue:344
|
||||
#: frontend/src/pages/QuizSubmission.vue:64
|
||||
#: lms/lms/doctype/lms_quiz_question/lms_quiz_question.json
|
||||
#: lms/lms/doctype/lms_quiz_result/lms_quiz_result.json
|
||||
@@ -4199,8 +4227,12 @@ msgstr ""
|
||||
msgid "Mentor Request Status Update Template"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:19
|
||||
msgid "Message"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the meta_description (Small Text) field in DocType 'LMS Settings'
|
||||
#: frontend/src/pages/BatchForm.vue:297 frontend/src/pages/CourseForm.vue:291
|
||||
#: frontend/src/pages/BatchForm.vue:297 frontend/src/pages/CourseForm.vue:303
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Meta Description"
|
||||
msgstr ""
|
||||
@@ -4214,12 +4246,12 @@ msgid "Meta Image"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the meta_keywords (Small Text) field in DocType 'LMS Settings'
|
||||
#: frontend/src/pages/BatchForm.vue:303 frontend/src/pages/CourseForm.vue:297
|
||||
#: frontend/src/pages/BatchForm.vue:303 frontend/src/pages/CourseForm.vue:309
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Meta Keywords"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/BatchForm.vue:292 frontend/src/pages/CourseForm.vue:286
|
||||
#: frontend/src/pages/BatchForm.vue:292 frontend/src/pages/CourseForm.vue:298
|
||||
msgid "Meta Tags"
|
||||
msgstr ""
|
||||
|
||||
@@ -4290,7 +4322,7 @@ msgstr ""
|
||||
msgid "Monday"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:622
|
||||
#: frontend/src/components/AppSidebar.vue:637
|
||||
msgid "Monetization"
|
||||
msgstr ""
|
||||
|
||||
@@ -4346,7 +4378,7 @@ msgstr ""
|
||||
msgid "New Batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:678 lms/www/lms.py:93
|
||||
#: frontend/src/pages/CourseForm.vue:690 lms/www/lms.py:93
|
||||
msgid "New Course"
|
||||
msgstr ""
|
||||
|
||||
@@ -4370,7 +4402,7 @@ msgstr ""
|
||||
msgid "New Question"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:404 frontend/src/pages/QuizForm.vue:412
|
||||
#: frontend/src/pages/QuizForm.vue:400 frontend/src/pages/QuizForm.vue:408
|
||||
msgid "New Quiz"
|
||||
msgstr ""
|
||||
|
||||
@@ -4950,7 +4982,7 @@ msgstr ""
|
||||
msgid "Pink"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:34
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:35
|
||||
msgid "Please add <a href='{0}'>{1}</a> for <a href='{2}'>{3}</a> to send calendar invites for evaluations."
|
||||
msgstr ""
|
||||
|
||||
@@ -4974,7 +5006,7 @@ msgstr ""
|
||||
msgid "Please complete the previous course to unlock this one."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:197
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:196
|
||||
msgid "Please enable the zoom account to use this feature."
|
||||
msgstr ""
|
||||
|
||||
@@ -4990,8 +5022,16 @@ msgstr ""
|
||||
msgid "Please enter a title."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:29
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:80
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:51
|
||||
msgid "Please enter a valid Contact Us Email."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:53
|
||||
msgid "Please enter a valid Contact Us URL."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:32
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:107
|
||||
msgid "Please enter a valid URL."
|
||||
msgstr ""
|
||||
|
||||
@@ -5003,7 +5043,7 @@ msgstr ""
|
||||
msgid "Please enter a valid timestamp"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:74
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:101
|
||||
msgid "Please enter the URL for assignment submission."
|
||||
msgstr ""
|
||||
|
||||
@@ -5031,7 +5071,7 @@ msgstr ""
|
||||
msgid "Please login to continue with payment."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:2012
|
||||
#: lms/lms/utils.py:2020
|
||||
msgid "Please login to enroll in the program."
|
||||
msgstr ""
|
||||
|
||||
@@ -5088,7 +5128,7 @@ msgstr ""
|
||||
msgid "Please upload a SCORM package"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:77
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:104
|
||||
msgid "Please upload the assignment file."
|
||||
msgstr ""
|
||||
|
||||
@@ -5134,7 +5174,7 @@ msgstr ""
|
||||
msgid "Postal Code"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:122
|
||||
#: frontend/src/components/AppSidebar.vue:125
|
||||
msgid "Powered by Learning"
|
||||
msgstr ""
|
||||
|
||||
@@ -5411,7 +5451,7 @@ msgstr ""
|
||||
#: frontend/src/components/Assignment.vue:20
|
||||
#: frontend/src/components/Modals/AssignmentForm.vue:32
|
||||
#: frontend/src/components/Modals/Question.vue:27
|
||||
#: frontend/src/pages/QuizForm.vue:343 frontend/src/pages/QuizSubmission.vue:56
|
||||
#: frontend/src/pages/QuizForm.vue:339 frontend/src/pages/QuizSubmission.vue:56
|
||||
#: lms/lms/doctype/course_lesson/course_lesson.json
|
||||
#: lms/lms/doctype/lms_assignment/lms_assignment.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -5431,11 +5471,11 @@ msgstr ""
|
||||
msgid "Question Name"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:284
|
||||
#: frontend/src/components/Modals/Question.vue:285
|
||||
msgid "Question added successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:334
|
||||
#: frontend/src/components/Modals/Question.vue:335
|
||||
msgid "Question updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -5452,7 +5492,7 @@ msgstr ""
|
||||
msgid "Questions"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:385
|
||||
#: frontend/src/pages/QuizForm.vue:381
|
||||
msgid "Questions deleted successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -5502,7 +5542,7 @@ msgstr ""
|
||||
msgid "Quiz is not available to Guest users. Please login to continue."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:310
|
||||
#: frontend/src/pages/QuizForm.vue:306
|
||||
msgid "Quiz updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -5511,8 +5551,8 @@ msgstr ""
|
||||
msgid "Quiz will appear at the bottom of the lesson."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:606
|
||||
#: frontend/src/pages/QuizForm.vue:396 frontend/src/pages/Quizzes.vue:275
|
||||
#: frontend/src/components/AppSidebar.vue:621
|
||||
#: frontend/src/pages/QuizForm.vue:392 frontend/src/pages/Quizzes.vue:275
|
||||
#: frontend/src/pages/Quizzes.vue:285 lms/www/lms.py:249
|
||||
msgid "Quizzes"
|
||||
msgstr ""
|
||||
@@ -5655,7 +5695,7 @@ msgstr ""
|
||||
msgid "Resume Video"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:142
|
||||
#: frontend/src/pages/Home/Home.vue:143
|
||||
msgid "Resume where you left off"
|
||||
msgstr ""
|
||||
|
||||
@@ -5696,7 +5736,7 @@ msgstr ""
|
||||
msgid "Role updated successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:634
|
||||
#: frontend/src/components/AppSidebar.vue:649
|
||||
msgid "Roles"
|
||||
msgstr ""
|
||||
|
||||
@@ -5914,6 +5954,10 @@ msgstr ""
|
||||
msgid "Select an assignment"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:33
|
||||
msgid "Send"
|
||||
msgstr "ပေးပို့"
|
||||
|
||||
#: lms/lms/doctype/lms_batch_enrollment/lms_batch_enrollment.js:7
|
||||
msgid "Send Confirmation Email"
|
||||
msgstr ""
|
||||
@@ -5945,16 +5989,16 @@ msgstr ""
|
||||
msgid "Set your Password"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:577
|
||||
#: frontend/src/components/AppSidebar.vue:592
|
||||
msgid "Setting up"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:627
|
||||
#: frontend/src/components/AppSidebar.vue:642
|
||||
msgid "Setting up payment gateway"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:632
|
||||
#: frontend/src/components/Settings/Settings.vue:7
|
||||
#: frontend/src/components/AppSidebar.vue:647
|
||||
#: frontend/src/components/Settings/Settings.vue:9
|
||||
#: frontend/src/pages/BatchForm.vue:53 frontend/src/pages/CourseForm.vue:142
|
||||
#: frontend/src/pages/ProfileRoles.vue:4
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseSubmission.vue:19
|
||||
@@ -6252,7 +6296,7 @@ msgstr ""
|
||||
#. Option for the 'User Category' (Select) field in DocType 'User'
|
||||
#. Option for the 'Required Role' (Select) field in DocType 'Cohort Web Page'
|
||||
#. Option for the 'Member Type' (Select) field in DocType 'LMS Enrollment'
|
||||
#: frontend/src/pages/Home/Home.vue:147 frontend/src/pages/ProfileRoles.vue:38
|
||||
#: frontend/src/pages/Home/Home.vue:148 frontend/src/pages/ProfileRoles.vue:38
|
||||
#: lms/fixtures/custom_field.json
|
||||
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
||||
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
||||
@@ -6289,6 +6333,7 @@ msgstr ""
|
||||
msgid "Subgroup"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:13
|
||||
#: frontend/src/components/Modals/AnnouncementModal.vue:20
|
||||
#: frontend/src/components/Modals/EmailTemplateModal.vue:31
|
||||
msgid "Subject"
|
||||
@@ -6524,7 +6569,7 @@ msgstr ""
|
||||
msgid "Thanks and Regards"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:1904
|
||||
#: lms/lms/utils.py:1912
|
||||
msgid "The batch is full. Please contact the Administrator."
|
||||
msgstr ""
|
||||
|
||||
@@ -6536,11 +6581,11 @@ msgstr ""
|
||||
msgid "The course {0} is now available on {1}."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:55
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:56
|
||||
msgid "The evaluator of this course is unavailable from {0} to {1}. Please select a date after {1}"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:73
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:74
|
||||
msgid "The slot is already booked by another participant."
|
||||
msgstr ""
|
||||
|
||||
@@ -6576,7 +6621,7 @@ msgstr ""
|
||||
msgid "There are no {0} on this site."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:40
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:67
|
||||
msgid "There has been an update on your submission for assignment {0}"
|
||||
msgstr ""
|
||||
|
||||
@@ -6613,7 +6658,7 @@ msgstr ""
|
||||
msgid "This course has:"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:1765
|
||||
#: lms/lms/utils.py:1773
|
||||
msgid "This course is free."
|
||||
msgstr ""
|
||||
|
||||
@@ -6649,8 +6694,8 @@ msgstr ""
|
||||
msgid "This quiz consists of {0} questions."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:75
|
||||
#: frontend/src/components/AppSidebar.vue:115
|
||||
#: frontend/src/components/AppSidebar.vue:78
|
||||
#: frontend/src/components/AppSidebar.vue:118
|
||||
msgid "This site is being updated. You will not be able to make any changes. Full access will be restored shortly."
|
||||
msgstr ""
|
||||
|
||||
@@ -6721,15 +6766,21 @@ msgstr ""
|
||||
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Batch'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Certificate Request'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Course'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Live Class'
|
||||
#: frontend/src/components/Modals/LiveClassModal.vue:59
|
||||
#: frontend/src/pages/BatchForm.vue:114
|
||||
#: frontend/src/pages/BatchForm.vue:114 frontend/src/pages/CourseForm.vue:288
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.json
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.json
|
||||
msgid "Timezone"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:72
|
||||
msgid "Timezone is required for paid certificates."
|
||||
msgstr ""
|
||||
|
||||
#: lms/templates/emails/batch_confirmation.html:21
|
||||
#: lms/templates/emails/batch_start_reminder.html:16
|
||||
#: lms/templates/emails/live_class_reminder.html:16
|
||||
@@ -6799,7 +6850,7 @@ msgstr ""
|
||||
msgid "To Date"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:1776
|
||||
#: lms/lms/utils.py:1784
|
||||
msgid "To join this batch, please contact the Administrator."
|
||||
msgstr ""
|
||||
|
||||
@@ -7226,7 +7277,7 @@ msgstr ""
|
||||
msgid "Yellow"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:95
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:96
|
||||
msgid "You already have an evaluation on {0} at {1} for the course {2}."
|
||||
msgstr ""
|
||||
|
||||
@@ -7279,11 +7330,11 @@ msgstr ""
|
||||
msgid "You cannot change the roles in read-only mode."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:111
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:112
|
||||
msgid "You cannot schedule evaluations after {0}."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:102
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:103
|
||||
msgid "You cannot schedule evaluations for past slots."
|
||||
msgstr ""
|
||||
|
||||
@@ -7340,19 +7391,23 @@ msgstr ""
|
||||
msgid "You have got a score of {0} for the quiz {1}"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/ProfileCertificates.vue:26
|
||||
msgid "You have not received any certificates yet."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/widgets/NoPreviewModal.html:12
|
||||
msgid "You have opted to be notified for this course. You will receive an email when the course becomes available."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:102 frontend/src/pages/Home/Home.vue:125
|
||||
#: frontend/src/pages/Home/Home.vue:103 frontend/src/pages/Home/Home.vue:126
|
||||
msgid "You have {0} upcoming {1} and {2} {3} scheduled."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:109 frontend/src/pages/Home/Home.vue:132
|
||||
#: frontend/src/pages/Home/Home.vue:110 frontend/src/pages/Home/Home.vue:133
|
||||
msgid "You have {0} upcoming {1}."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:114 frontend/src/pages/Home/Home.vue:137
|
||||
#: frontend/src/pages/Home/Home.vue:115 frontend/src/pages/Home/Home.vue:138
|
||||
msgid "You have {0} {1} scheduled."
|
||||
msgstr ""
|
||||
|
||||
@@ -7400,7 +7455,7 @@ msgstr ""
|
||||
msgid "Your Output"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:309
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:308
|
||||
msgid "Your batch {0} is starting tomorrow"
|
||||
msgstr ""
|
||||
|
||||
@@ -7408,7 +7463,7 @@ msgstr ""
|
||||
msgid "Your calendar is set."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:88
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:95
|
||||
msgid "Your class on {0} is today"
|
||||
msgstr ""
|
||||
|
||||
@@ -7421,7 +7476,7 @@ msgstr ""
|
||||
msgid "Your evaluation for the course {0} has been scheduled on {1} at {2} {3}."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:121
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:136
|
||||
msgid "Your evaluation slot has been booked"
|
||||
msgstr ""
|
||||
|
||||
@@ -7474,8 +7529,8 @@ msgstr ""
|
||||
msgid "activity"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/CourseInstructors.vue:22
|
||||
#: frontend/src/components/CourseInstructors.vue:41
|
||||
#: frontend/src/components/CourseInstructors.vue:24
|
||||
#: frontend/src/components/CourseInstructors.vue:45
|
||||
msgid "and"
|
||||
msgstr ""
|
||||
|
||||
@@ -7538,11 +7593,15 @@ msgstr ""
|
||||
msgid "days"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:100 frontend/src/pages/Home/Home.vue:123
|
||||
#: frontend/src/pages/CourseForm.vue:290
|
||||
msgid "e.g. IST, UTC, GMT..."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:101 frontend/src/pages/Home/Home.vue:124
|
||||
msgid "evaluation"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:100 frontend/src/pages/Home/Home.vue:123
|
||||
#: frontend/src/pages/Home/Home.vue:101 frontend/src/pages/Home/Home.vue:124
|
||||
msgid "evaluations"
|
||||
msgstr ""
|
||||
|
||||
@@ -7562,11 +7621,11 @@ msgstr ""
|
||||
msgid "lessons"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:98 frontend/src/pages/Home/Home.vue:122
|
||||
#: frontend/src/pages/Home/Home.vue:99 frontend/src/pages/Home/Home.vue:123
|
||||
msgid "live class"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:98 frontend/src/pages/Home/Home.vue:122
|
||||
#: frontend/src/pages/Home/Home.vue:99 frontend/src/pages/Home/Home.vue:123
|
||||
msgid "live classes"
|
||||
msgstr ""
|
||||
|
||||
@@ -7584,11 +7643,11 @@ msgstr ""
|
||||
msgid "minutes"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/CourseInstructors.vue:41
|
||||
#: frontend/src/components/CourseInstructors.vue:45
|
||||
msgid "others"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:344
|
||||
#: frontend/src/pages/QuizForm.vue:340
|
||||
msgid "question_detail"
|
||||
msgstr ""
|
||||
|
||||
|
||||
333
lms/locale/nb.po
333
lms/locale/nb.po
File diff suppressed because it is too large
Load Diff
297
lms/locale/nl.po
297
lms/locale/nl.po
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: frappe\n"
|
||||
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
||||
"POT-Creation-Date: 2025-10-03 16:04+0000\n"
|
||||
"PO-Revision-Date: 2025-10-06 10:50\n"
|
||||
"POT-Creation-Date: 2025-10-31 16:04+0000\n"
|
||||
"PO-Revision-Date: 2025-11-02 19:07\n"
|
||||
"Last-Translator: jannat@frappe.io\n"
|
||||
"Language-Team: Dutch\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -196,7 +196,7 @@ msgstr ""
|
||||
msgid "Add a Student"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:585
|
||||
#: frontend/src/components/AppSidebar.vue:600
|
||||
msgid "Add a chapter"
|
||||
msgstr ""
|
||||
|
||||
@@ -208,7 +208,7 @@ msgstr ""
|
||||
msgid "Add a keyword and then press enter"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:586
|
||||
#: frontend/src/components/AppSidebar.vue:601
|
||||
msgid "Add a lesson"
|
||||
msgstr ""
|
||||
|
||||
@@ -216,12 +216,12 @@ msgstr ""
|
||||
msgid "Add a new member"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:166
|
||||
#: frontend/src/components/Modals/Question.vue:167
|
||||
#: frontend/src/pages/QuizForm.vue:200
|
||||
msgid "Add a new question"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:600
|
||||
#: frontend/src/components/AppSidebar.vue:615
|
||||
msgid "Add a program"
|
||||
msgstr ""
|
||||
|
||||
@@ -245,7 +245,7 @@ msgstr ""
|
||||
msgid "Add at least one possible answer for this question: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:549
|
||||
#: frontend/src/components/AppSidebar.vue:564
|
||||
msgid "Add courses to your batch"
|
||||
msgstr ""
|
||||
|
||||
@@ -253,7 +253,7 @@ msgstr ""
|
||||
msgid "Add quiz to this video"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:528
|
||||
#: frontend/src/components/AppSidebar.vue:543
|
||||
msgid "Add students to your batch"
|
||||
msgstr ""
|
||||
|
||||
@@ -269,11 +269,11 @@ msgstr ""
|
||||
msgid "Add your assignment as {0}"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:461
|
||||
#: frontend/src/components/AppSidebar.vue:476
|
||||
msgid "Add your first chapter"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:477
|
||||
#: frontend/src/components/AppSidebar.vue:492
|
||||
msgid "Add your first lesson"
|
||||
msgstr ""
|
||||
|
||||
@@ -378,11 +378,11 @@ msgstr ""
|
||||
msgid "Amount and currency are required for paid batches."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:76
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:79
|
||||
msgid "Amount and currency are required for paid certificates."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:73
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:76
|
||||
msgid "Amount and currency are required for paid courses."
|
||||
msgstr ""
|
||||
|
||||
@@ -508,7 +508,7 @@ msgid "Assessment {0} has already been added to this batch."
|
||||
msgstr ""
|
||||
|
||||
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
||||
#: frontend/src/components/AppSidebar.vue:603
|
||||
#: frontend/src/components/AppSidebar.vue:618
|
||||
#: frontend/src/components/Assessments.vue:5
|
||||
#: frontend/src/components/BatchStudents.vue:32
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
@@ -573,11 +573,11 @@ msgstr ""
|
||||
msgid "Assignment created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:24
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:27
|
||||
msgid "Assignment for Lesson {0} by {1} already exists."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Assignment.vue:359
|
||||
#: frontend/src/components/Assignment.vue:362
|
||||
msgid "Assignment submitted successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -590,7 +590,7 @@ msgstr ""
|
||||
msgid "Assignment will appear at the bottom of the lesson."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:607
|
||||
#: frontend/src/components/AppSidebar.vue:622
|
||||
#: frontend/src/components/Settings/Badges.vue:163
|
||||
#: frontend/src/pages/Assignments.vue:208 lms/www/lms.py:271
|
||||
msgid "Assignments"
|
||||
@@ -1017,7 +1017,7 @@ msgstr ""
|
||||
#. Enrollment'
|
||||
#. Label of a Card Break in the LMS Workspace
|
||||
#. Label of a Link in the LMS Workspace
|
||||
#: frontend/src/components/AppSidebar.vue:611
|
||||
#: frontend/src/components/AppSidebar.vue:626
|
||||
#: frontend/src/components/Modals/Event.vue:381
|
||||
#: frontend/src/pages/BatchForm.vue:69 frontend/src/pages/Batches.vue:58
|
||||
#: frontend/src/pages/CourseCertification.vue:10
|
||||
@@ -1040,6 +1040,11 @@ msgstr ""
|
||||
msgid "Certification Name"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the certifications (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Certifications"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/BatchStudents.vue:17
|
||||
msgid "Certified"
|
||||
msgstr ""
|
||||
@@ -1052,8 +1057,7 @@ msgstr ""
|
||||
msgid "Certified Members"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the certified_participants (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:300
|
||||
#: lms/www/lms.py:300
|
||||
msgid "Certified Participants"
|
||||
msgstr ""
|
||||
|
||||
@@ -1061,7 +1065,7 @@ msgstr ""
|
||||
msgid "Change"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Assignment.vue:345
|
||||
#: frontend/src/components/Assignment.vue:348
|
||||
msgid "Changes saved successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -1272,7 +1276,7 @@ msgstr ""
|
||||
msgid "Collaboration Preference"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:142
|
||||
#: frontend/src/components/AppSidebar.vue:145
|
||||
msgid "Collapse"
|
||||
msgstr ""
|
||||
|
||||
@@ -1291,7 +1295,7 @@ msgstr ""
|
||||
msgid "Color"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/BatchForm.vue:306 frontend/src/pages/CourseForm.vue:300
|
||||
#: frontend/src/pages/BatchForm.vue:306 frontend/src/pages/CourseForm.vue:312
|
||||
msgid "Comma separated keywords for SEO"
|
||||
msgstr ""
|
||||
|
||||
@@ -1301,7 +1305,7 @@ msgstr ""
|
||||
#. Label of the comments (Text Editor) field in DocType 'LMS Assignment
|
||||
#. Submission'
|
||||
#. Label of the comments (Small Text) field in DocType 'LMS Mentor Request'
|
||||
#: frontend/src/components/Assignment.vue:167
|
||||
#: frontend/src/components/Assignment.vue:170
|
||||
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
||||
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -1309,7 +1313,7 @@ msgstr ""
|
||||
msgid "Comments"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Assignment.vue:145
|
||||
#: frontend/src/components/Assignment.vue:148
|
||||
msgid "Comments by Evaluator"
|
||||
msgstr ""
|
||||
|
||||
@@ -1464,6 +1468,22 @@ msgstr ""
|
||||
msgid "Congratulations on getting certified!"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the contact_us_tab (Tab Break) field in DocType 'LMS Settings'
|
||||
#: frontend/src/components/ContactUsEmail.vue:5
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the contact_us_email (Data) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us Email"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the contact_us_url (Data) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Contact Us URL"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/CourseCardOverlay.vue:63
|
||||
#: frontend/src/pages/Lesson.vue:97
|
||||
msgid "Contact the Administrator to enroll for this course."
|
||||
@@ -1677,7 +1697,7 @@ msgstr ""
|
||||
msgid "Course Name"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseDetail.vue:78 frontend/src/pages/CourseForm.vue:310
|
||||
#: frontend/src/pages/CourseDetail.vue:78 frontend/src/pages/CourseForm.vue:322
|
||||
msgid "Course Outline"
|
||||
msgstr ""
|
||||
|
||||
@@ -1714,15 +1734,15 @@ msgstr ""
|
||||
msgid "Course added to program successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:547
|
||||
#: frontend/src/pages/CourseForm.vue:559
|
||||
msgid "Course created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:584
|
||||
#: frontend/src/pages/CourseForm.vue:596
|
||||
msgid "Course deleted successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:567
|
||||
#: frontend/src/pages/CourseForm.vue:579
|
||||
msgid "Course updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -1815,15 +1835,15 @@ msgstr ""
|
||||
msgid "Create a Quiz"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:593
|
||||
#: frontend/src/components/AppSidebar.vue:608
|
||||
msgid "Create a batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:584
|
||||
#: frontend/src/components/AppSidebar.vue:599
|
||||
msgid "Create a course"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:594
|
||||
#: frontend/src/components/AppSidebar.vue:609
|
||||
msgid "Create a live class"
|
||||
msgstr ""
|
||||
|
||||
@@ -1835,15 +1855,15 @@ msgstr ""
|
||||
msgid "Create an Assignment"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:518
|
||||
#: frontend/src/components/AppSidebar.vue:533
|
||||
msgid "Create your first batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:449
|
||||
#: frontend/src/components/AppSidebar.vue:464
|
||||
msgid "Create your first course"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:496
|
||||
#: frontend/src/components/AppSidebar.vue:511
|
||||
msgid "Create your first quiz"
|
||||
msgstr ""
|
||||
|
||||
@@ -1851,11 +1871,11 @@ msgstr ""
|
||||
msgid "Created"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:590
|
||||
#: frontend/src/components/AppSidebar.vue:605
|
||||
msgid "Creating a batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:581
|
||||
#: frontend/src/components/AppSidebar.vue:596
|
||||
msgid "Creating a course"
|
||||
msgstr ""
|
||||
|
||||
@@ -1863,7 +1883,7 @@ msgstr ""
|
||||
#. Label of the currency (Link) field in DocType 'LMS Course'
|
||||
#. Label of the currency (Link) field in DocType 'LMS Payment'
|
||||
#: frontend/src/components/Settings/TransactionDetails.vue:64
|
||||
#: frontend/src/pages/BatchForm.vue:285 frontend/src/pages/CourseForm.vue:279
|
||||
#: frontend/src/pages/BatchForm.vue:285 frontend/src/pages/CourseForm.vue:282
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
#: lms/lms/doctype/lms_payment/lms_payment.json
|
||||
@@ -1879,7 +1899,7 @@ msgstr ""
|
||||
msgid "Current Streak"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:617
|
||||
#: frontend/src/components/AppSidebar.vue:632
|
||||
msgid "Custom Certificate Templates"
|
||||
msgstr ""
|
||||
|
||||
@@ -1979,7 +1999,7 @@ msgstr ""
|
||||
#: frontend/src/components/CourseOutline.vue:360
|
||||
#: frontend/src/components/DiscussionReplies.vue:41
|
||||
#: frontend/src/components/Settings/Badges.vue:171
|
||||
#: frontend/src/pages/BatchForm.vue:565 frontend/src/pages/CourseForm.vue:597
|
||||
#: frontend/src/pages/BatchForm.vue:565 frontend/src/pages/CourseForm.vue:609
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseForm.vue:67
|
||||
#: frontend/src/pages/Programs/ProgramForm.vue:231
|
||||
msgid "Delete"
|
||||
@@ -1989,7 +2009,7 @@ msgstr ""
|
||||
msgid "Delete Chapter"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:591
|
||||
#: frontend/src/pages/CourseForm.vue:603
|
||||
msgid "Delete Course"
|
||||
msgstr ""
|
||||
|
||||
@@ -2001,7 +2021,7 @@ msgstr ""
|
||||
msgid "Delete this lesson?"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:592
|
||||
#: frontend/src/pages/CourseForm.vue:604
|
||||
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
||||
msgstr ""
|
||||
|
||||
@@ -2251,6 +2271,10 @@ msgstr ""
|
||||
msgid "Email Templates deleted successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:57
|
||||
msgid "Email sent successfully"
|
||||
msgstr "E-mail succesvol verzonden"
|
||||
|
||||
#. Label of the show_emails (Check) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Emails"
|
||||
@@ -2266,7 +2290,7 @@ msgstr ""
|
||||
msgid "Enable"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:21
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:22
|
||||
msgid "Enable Google API in Google Settings to send calendar invites for evaluations."
|
||||
msgstr ""
|
||||
|
||||
@@ -2365,7 +2389,7 @@ msgstr ""
|
||||
msgid "Enrollment Count"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:1880
|
||||
#: lms/lms/utils.py:1888
|
||||
msgid "Enrollment Failed, {0}"
|
||||
msgstr ""
|
||||
|
||||
@@ -2382,7 +2406,7 @@ msgstr ""
|
||||
msgid "Enrollments"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:26
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:27
|
||||
msgid "Enter Client Id and Client Secret in Google Settings to send calendar invites for evaluations."
|
||||
msgstr ""
|
||||
|
||||
@@ -2402,7 +2426,7 @@ msgstr ""
|
||||
msgid "Error creating email template"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:191
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:190
|
||||
msgid "Error creating live class. Please try again. {0}"
|
||||
msgstr ""
|
||||
|
||||
@@ -2467,7 +2491,7 @@ msgstr ""
|
||||
#. Label of the evaluator (Link) field in DocType 'LMS Course'
|
||||
#: frontend/src/components/Modals/BatchCourseModal.vue:37
|
||||
#: frontend/src/components/Modals/BulkCertificates.vue:22
|
||||
#: frontend/src/pages/CourseForm.vue:268 frontend/src/pages/ProfileRoles.vue:32
|
||||
#: frontend/src/pages/CourseForm.vue:269 frontend/src/pages/ProfileRoles.vue:32
|
||||
#: lms/lms/doctype/batch_course/batch_course.json
|
||||
#: lms/lms/doctype/course_evaluator/course_evaluator.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -2555,7 +2579,7 @@ msgstr ""
|
||||
msgid "Exercise Title"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:142
|
||||
#: frontend/src/components/AppSidebar.vue:145
|
||||
msgid "Expand"
|
||||
msgstr ""
|
||||
|
||||
@@ -2625,10 +2649,14 @@ msgstr ""
|
||||
msgid "Failed to enroll in program: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:137
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:144
|
||||
msgid "Failed to fetch attendance data from Zoom for class {0}: {1}"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:63
|
||||
msgid "Failed to send email"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseSubmission.vue:358
|
||||
msgid "Failed to submit. Please try again. {0}"
|
||||
msgstr ""
|
||||
@@ -2814,7 +2842,7 @@ msgstr ""
|
||||
|
||||
#: frontend/src/components/CertificationLinks.vue:34
|
||||
#: frontend/src/components/CertificationLinks.vue:50
|
||||
#: frontend/src/components/CourseCard.vue:125
|
||||
#: frontend/src/components/CourseCard.vue:126
|
||||
#: frontend/src/pages/CertifiedParticipants.vue:11
|
||||
msgid "Get Certified"
|
||||
msgstr ""
|
||||
@@ -2843,7 +2871,7 @@ msgid "Google Meet Link"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the grade (Data) field in DocType 'Education Detail'
|
||||
#: frontend/src/components/Assignment.vue:161
|
||||
#: frontend/src/components/Assignment.vue:164
|
||||
#: lms/lms/doctype/education_detail/education_detail.json
|
||||
msgid "Grade"
|
||||
msgstr ""
|
||||
@@ -2858,7 +2886,7 @@ msgstr ""
|
||||
msgid "Grade Type"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Assignment.vue:156
|
||||
#: frontend/src/components/Assignment.vue:159
|
||||
msgid "Grading"
|
||||
msgstr ""
|
||||
|
||||
@@ -2898,7 +2926,7 @@ msgstr ""
|
||||
msgid "Hello"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:128
|
||||
#: frontend/src/components/AppSidebar.vue:131
|
||||
msgid "Help"
|
||||
msgstr ""
|
||||
|
||||
@@ -2963,7 +2991,7 @@ msgstr ""
|
||||
msgid "Hints"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:5 frontend/src/pages/Home/Home.vue:153
|
||||
#: frontend/src/pages/Home/Home.vue:5 frontend/src/pages/Home/Home.vue:154
|
||||
msgid "Home"
|
||||
msgstr ""
|
||||
|
||||
@@ -2995,7 +3023,7 @@ msgstr ""
|
||||
msgid "I am unavailable"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:338
|
||||
#: frontend/src/pages/QuizForm.vue:334
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
@@ -3155,7 +3183,7 @@ msgstr ""
|
||||
|
||||
#. Label of the instructor (Link) field in DocType 'Cohort'
|
||||
#. Label of the instructor (Link) field in DocType 'Course Instructor'
|
||||
#: frontend/src/pages/Home/Home.vue:148 lms/lms/doctype/cohort/cohort.json
|
||||
#: frontend/src/pages/Home/Home.vue:149 lms/lms/doctype/cohort/cohort.json
|
||||
#: lms/lms/doctype/course_instructor/course_instructor.json
|
||||
msgid "Instructor"
|
||||
msgstr ""
|
||||
@@ -3191,8 +3219,8 @@ msgstr ""
|
||||
msgid "Interest"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:573
|
||||
#: frontend/src/components/AppSidebar.vue:576
|
||||
#: frontend/src/components/AppSidebar.vue:588
|
||||
#: frontend/src/components/AppSidebar.vue:591
|
||||
msgid "Introduction"
|
||||
msgstr ""
|
||||
|
||||
@@ -3214,7 +3242,7 @@ msgstr ""
|
||||
msgid "Invite Only"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:507
|
||||
#: frontend/src/components/AppSidebar.vue:522
|
||||
msgid "Invite your team and students"
|
||||
msgstr ""
|
||||
|
||||
@@ -3251,7 +3279,7 @@ msgstr ""
|
||||
msgid "Issue Date"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:614
|
||||
#: frontend/src/components/AppSidebar.vue:629
|
||||
msgid "Issue a Certificate"
|
||||
msgstr ""
|
||||
|
||||
@@ -3264,7 +3292,7 @@ msgid "Issued On"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/ProfileAbout.vue:73
|
||||
#: frontend/src/pages/ProfileCertificates.vue:17
|
||||
#: frontend/src/pages/ProfileCertificates.vue:20
|
||||
#: lms/templates/certificates_section.html:11
|
||||
msgid "Issued on"
|
||||
msgstr ""
|
||||
@@ -3679,7 +3707,7 @@ msgstr ""
|
||||
msgid "Learning Consistency"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:598
|
||||
#: frontend/src/components/AppSidebar.vue:613
|
||||
msgid "Learning Paths"
|
||||
msgstr ""
|
||||
|
||||
@@ -3728,7 +3756,7 @@ msgstr ""
|
||||
msgid "Lesson Title"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/LessonForm.vue:426
|
||||
#: frontend/src/pages/LessonForm.vue:425
|
||||
msgid "Lesson created successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -3740,7 +3768,7 @@ msgstr ""
|
||||
msgid "Lesson moved successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/LessonForm.vue:450
|
||||
#: frontend/src/pages/LessonForm.vue:449
|
||||
msgid "Lesson updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -3889,7 +3917,7 @@ msgstr ""
|
||||
msgid "Manage Batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:119
|
||||
#: frontend/src/pages/Home/Home.vue:120
|
||||
msgid "Manage your courses and batches at a glance"
|
||||
msgstr ""
|
||||
|
||||
@@ -3920,7 +3948,7 @@ msgstr ""
|
||||
#. Label of the marks (Int) field in DocType 'LMS Quiz Result'
|
||||
#: frontend/src/components/Modals/Question.vue:40
|
||||
#: frontend/src/components/Modals/Question.vue:106
|
||||
#: frontend/src/components/Quiz.vue:120 frontend/src/pages/QuizForm.vue:348
|
||||
#: frontend/src/components/Quiz.vue:120 frontend/src/pages/QuizForm.vue:344
|
||||
#: frontend/src/pages/QuizSubmission.vue:64
|
||||
#: lms/lms/doctype/lms_quiz_question/lms_quiz_question.json
|
||||
#: lms/lms/doctype/lms_quiz_result/lms_quiz_result.json
|
||||
@@ -4199,8 +4227,12 @@ msgstr ""
|
||||
msgid "Mentor Request Status Update Template"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:19
|
||||
msgid "Message"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the meta_description (Small Text) field in DocType 'LMS Settings'
|
||||
#: frontend/src/pages/BatchForm.vue:297 frontend/src/pages/CourseForm.vue:291
|
||||
#: frontend/src/pages/BatchForm.vue:297 frontend/src/pages/CourseForm.vue:303
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Meta Description"
|
||||
msgstr ""
|
||||
@@ -4214,12 +4246,12 @@ msgid "Meta Image"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the meta_keywords (Small Text) field in DocType 'LMS Settings'
|
||||
#: frontend/src/pages/BatchForm.vue:303 frontend/src/pages/CourseForm.vue:297
|
||||
#: frontend/src/pages/BatchForm.vue:303 frontend/src/pages/CourseForm.vue:309
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Meta Keywords"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/BatchForm.vue:292 frontend/src/pages/CourseForm.vue:286
|
||||
#: frontend/src/pages/BatchForm.vue:292 frontend/src/pages/CourseForm.vue:298
|
||||
msgid "Meta Tags"
|
||||
msgstr ""
|
||||
|
||||
@@ -4290,7 +4322,7 @@ msgstr ""
|
||||
msgid "Monday"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:622
|
||||
#: frontend/src/components/AppSidebar.vue:637
|
||||
msgid "Monetization"
|
||||
msgstr ""
|
||||
|
||||
@@ -4346,7 +4378,7 @@ msgstr ""
|
||||
msgid "New Batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:678 lms/www/lms.py:93
|
||||
#: frontend/src/pages/CourseForm.vue:690 lms/www/lms.py:93
|
||||
msgid "New Course"
|
||||
msgstr ""
|
||||
|
||||
@@ -4370,7 +4402,7 @@ msgstr ""
|
||||
msgid "New Question"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:404 frontend/src/pages/QuizForm.vue:412
|
||||
#: frontend/src/pages/QuizForm.vue:400 frontend/src/pages/QuizForm.vue:408
|
||||
msgid "New Quiz"
|
||||
msgstr ""
|
||||
|
||||
@@ -4950,7 +4982,7 @@ msgstr ""
|
||||
msgid "Pink"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:34
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:35
|
||||
msgid "Please add <a href='{0}'>{1}</a> for <a href='{2}'>{3}</a> to send calendar invites for evaluations."
|
||||
msgstr ""
|
||||
|
||||
@@ -4974,7 +5006,7 @@ msgstr ""
|
||||
msgid "Please complete the previous course to unlock this one."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:197
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:196
|
||||
msgid "Please enable the zoom account to use this feature."
|
||||
msgstr ""
|
||||
|
||||
@@ -4990,8 +5022,16 @@ msgstr ""
|
||||
msgid "Please enter a title."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:29
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:80
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:51
|
||||
msgid "Please enter a valid Contact Us Email."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:53
|
||||
msgid "Please enter a valid Contact Us URL."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:32
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:107
|
||||
msgid "Please enter a valid URL."
|
||||
msgstr ""
|
||||
|
||||
@@ -5003,7 +5043,7 @@ msgstr ""
|
||||
msgid "Please enter a valid timestamp"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:74
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:101
|
||||
msgid "Please enter the URL for assignment submission."
|
||||
msgstr ""
|
||||
|
||||
@@ -5031,7 +5071,7 @@ msgstr ""
|
||||
msgid "Please login to continue with payment."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:2012
|
||||
#: lms/lms/utils.py:2020
|
||||
msgid "Please login to enroll in the program."
|
||||
msgstr ""
|
||||
|
||||
@@ -5088,7 +5128,7 @@ msgstr ""
|
||||
msgid "Please upload a SCORM package"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:77
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:104
|
||||
msgid "Please upload the assignment file."
|
||||
msgstr ""
|
||||
|
||||
@@ -5134,7 +5174,7 @@ msgstr ""
|
||||
msgid "Postal Code"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:122
|
||||
#: frontend/src/components/AppSidebar.vue:125
|
||||
msgid "Powered by Learning"
|
||||
msgstr ""
|
||||
|
||||
@@ -5411,7 +5451,7 @@ msgstr ""
|
||||
#: frontend/src/components/Assignment.vue:20
|
||||
#: frontend/src/components/Modals/AssignmentForm.vue:32
|
||||
#: frontend/src/components/Modals/Question.vue:27
|
||||
#: frontend/src/pages/QuizForm.vue:343 frontend/src/pages/QuizSubmission.vue:56
|
||||
#: frontend/src/pages/QuizForm.vue:339 frontend/src/pages/QuizSubmission.vue:56
|
||||
#: lms/lms/doctype/course_lesson/course_lesson.json
|
||||
#: lms/lms/doctype/lms_assignment/lms_assignment.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
@@ -5431,11 +5471,11 @@ msgstr ""
|
||||
msgid "Question Name"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:284
|
||||
#: frontend/src/components/Modals/Question.vue:285
|
||||
msgid "Question added successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Modals/Question.vue:334
|
||||
#: frontend/src/components/Modals/Question.vue:335
|
||||
msgid "Question updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -5452,7 +5492,7 @@ msgstr ""
|
||||
msgid "Questions"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:385
|
||||
#: frontend/src/pages/QuizForm.vue:381
|
||||
msgid "Questions deleted successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -5502,7 +5542,7 @@ msgstr ""
|
||||
msgid "Quiz is not available to Guest users. Please login to continue."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:310
|
||||
#: frontend/src/pages/QuizForm.vue:306
|
||||
msgid "Quiz updated successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -5511,8 +5551,8 @@ msgstr ""
|
||||
msgid "Quiz will appear at the bottom of the lesson."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:606
|
||||
#: frontend/src/pages/QuizForm.vue:396 frontend/src/pages/Quizzes.vue:275
|
||||
#: frontend/src/components/AppSidebar.vue:621
|
||||
#: frontend/src/pages/QuizForm.vue:392 frontend/src/pages/Quizzes.vue:275
|
||||
#: frontend/src/pages/Quizzes.vue:285 lms/www/lms.py:249
|
||||
msgid "Quizzes"
|
||||
msgstr ""
|
||||
@@ -5655,7 +5695,7 @@ msgstr ""
|
||||
msgid "Resume Video"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:142
|
||||
#: frontend/src/pages/Home/Home.vue:143
|
||||
msgid "Resume where you left off"
|
||||
msgstr ""
|
||||
|
||||
@@ -5696,7 +5736,7 @@ msgstr ""
|
||||
msgid "Role updated successfully"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:634
|
||||
#: frontend/src/components/AppSidebar.vue:649
|
||||
msgid "Roles"
|
||||
msgstr ""
|
||||
|
||||
@@ -5914,6 +5954,10 @@ msgstr ""
|
||||
msgid "Select an assignment"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:33
|
||||
msgid "Send"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch_enrollment/lms_batch_enrollment.js:7
|
||||
msgid "Send Confirmation Email"
|
||||
msgstr ""
|
||||
@@ -5945,16 +5989,16 @@ msgstr ""
|
||||
msgid "Set your Password"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:577
|
||||
#: frontend/src/components/AppSidebar.vue:592
|
||||
msgid "Setting up"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:627
|
||||
#: frontend/src/components/AppSidebar.vue:642
|
||||
msgid "Setting up payment gateway"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:632
|
||||
#: frontend/src/components/Settings/Settings.vue:7
|
||||
#: frontend/src/components/AppSidebar.vue:647
|
||||
#: frontend/src/components/Settings/Settings.vue:9
|
||||
#: frontend/src/pages/BatchForm.vue:53 frontend/src/pages/CourseForm.vue:142
|
||||
#: frontend/src/pages/ProfileRoles.vue:4
|
||||
#: frontend/src/pages/ProgrammingExercises/ProgrammingExerciseSubmission.vue:19
|
||||
@@ -6252,7 +6296,7 @@ msgstr ""
|
||||
#. Option for the 'User Category' (Select) field in DocType 'User'
|
||||
#. Option for the 'Required Role' (Select) field in DocType 'Cohort Web Page'
|
||||
#. Option for the 'Member Type' (Select) field in DocType 'LMS Enrollment'
|
||||
#: frontend/src/pages/Home/Home.vue:147 frontend/src/pages/ProfileRoles.vue:38
|
||||
#: frontend/src/pages/Home/Home.vue:148 frontend/src/pages/ProfileRoles.vue:38
|
||||
#: lms/fixtures/custom_field.json
|
||||
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
||||
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
||||
@@ -6289,6 +6333,7 @@ msgstr ""
|
||||
msgid "Subgroup"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/ContactUsEmail.vue:13
|
||||
#: frontend/src/components/Modals/AnnouncementModal.vue:20
|
||||
#: frontend/src/components/Modals/EmailTemplateModal.vue:31
|
||||
msgid "Subject"
|
||||
@@ -6524,7 +6569,7 @@ msgstr ""
|
||||
msgid "Thanks and Regards"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:1904
|
||||
#: lms/lms/utils.py:1912
|
||||
msgid "The batch is full. Please contact the Administrator."
|
||||
msgstr ""
|
||||
|
||||
@@ -6536,11 +6581,11 @@ msgstr ""
|
||||
msgid "The course {0} is now available on {1}."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:55
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:56
|
||||
msgid "The evaluator of this course is unavailable from {0} to {1}. Please select a date after {1}"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:73
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:74
|
||||
msgid "The slot is already booked by another participant."
|
||||
msgstr ""
|
||||
|
||||
@@ -6576,7 +6621,7 @@ msgstr ""
|
||||
msgid "There are no {0} on this site."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:40
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py:67
|
||||
msgid "There has been an update on your submission for assignment {0}"
|
||||
msgstr ""
|
||||
|
||||
@@ -6613,7 +6658,7 @@ msgstr ""
|
||||
msgid "This course has:"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:1765
|
||||
#: lms/lms/utils.py:1773
|
||||
msgid "This course is free."
|
||||
msgstr ""
|
||||
|
||||
@@ -6649,8 +6694,8 @@ msgstr ""
|
||||
msgid "This quiz consists of {0} questions."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/AppSidebar.vue:75
|
||||
#: frontend/src/components/AppSidebar.vue:115
|
||||
#: frontend/src/components/AppSidebar.vue:78
|
||||
#: frontend/src/components/AppSidebar.vue:118
|
||||
msgid "This site is being updated. You will not be able to make any changes. Full access will be restored shortly."
|
||||
msgstr ""
|
||||
|
||||
@@ -6721,15 +6766,21 @@ msgstr ""
|
||||
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Batch'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Certificate Request'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Course'
|
||||
#. Label of the timezone (Data) field in DocType 'LMS Live Class'
|
||||
#: frontend/src/components/Modals/LiveClassModal.vue:59
|
||||
#: frontend/src/pages/BatchForm.vue:114
|
||||
#: frontend/src/pages/BatchForm.vue:114 frontend/src/pages/CourseForm.vue:288
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.json
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.json
|
||||
msgid "Timezone"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:72
|
||||
msgid "Timezone is required for paid certificates."
|
||||
msgstr ""
|
||||
|
||||
#: lms/templates/emails/batch_confirmation.html:21
|
||||
#: lms/templates/emails/batch_start_reminder.html:16
|
||||
#: lms/templates/emails/live_class_reminder.html:16
|
||||
@@ -6799,7 +6850,7 @@ msgstr ""
|
||||
msgid "To Date"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:1776
|
||||
#: lms/lms/utils.py:1784
|
||||
msgid "To join this batch, please contact the Administrator."
|
||||
msgstr ""
|
||||
|
||||
@@ -7226,7 +7277,7 @@ msgstr ""
|
||||
msgid "Yellow"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:95
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:96
|
||||
msgid "You already have an evaluation on {0} at {1} for the course {2}."
|
||||
msgstr ""
|
||||
|
||||
@@ -7279,11 +7330,11 @@ msgstr ""
|
||||
msgid "You cannot change the roles in read-only mode."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:111
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:112
|
||||
msgid "You cannot schedule evaluations after {0}."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:102
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:103
|
||||
msgid "You cannot schedule evaluations for past slots."
|
||||
msgstr ""
|
||||
|
||||
@@ -7340,19 +7391,23 @@ msgstr ""
|
||||
msgid "You have got a score of {0} for the quiz {1}"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/ProfileCertificates.vue:26
|
||||
msgid "You have not received any certificates yet."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/widgets/NoPreviewModal.html:12
|
||||
msgid "You have opted to be notified for this course. You will receive an email when the course becomes available."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:102 frontend/src/pages/Home/Home.vue:125
|
||||
#: frontend/src/pages/Home/Home.vue:103 frontend/src/pages/Home/Home.vue:126
|
||||
msgid "You have {0} upcoming {1} and {2} {3} scheduled."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:109 frontend/src/pages/Home/Home.vue:132
|
||||
#: frontend/src/pages/Home/Home.vue:110 frontend/src/pages/Home/Home.vue:133
|
||||
msgid "You have {0} upcoming {1}."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:114 frontend/src/pages/Home/Home.vue:137
|
||||
#: frontend/src/pages/Home/Home.vue:115 frontend/src/pages/Home/Home.vue:138
|
||||
msgid "You have {0} {1} scheduled."
|
||||
msgstr ""
|
||||
|
||||
@@ -7400,7 +7455,7 @@ msgstr ""
|
||||
msgid "Your Output"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:309
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:308
|
||||
msgid "Your batch {0} is starting tomorrow"
|
||||
msgstr ""
|
||||
|
||||
@@ -7408,7 +7463,7 @@ msgstr ""
|
||||
msgid "Your calendar is set."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:88
|
||||
#: lms/lms/doctype/lms_live_class/lms_live_class.py:95
|
||||
msgid "Your class on {0} is today"
|
||||
msgstr ""
|
||||
|
||||
@@ -7421,7 +7476,7 @@ msgstr ""
|
||||
msgid "Your evaluation for the course {0} has been scheduled on {1} at {2} {3}."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:121
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.py:136
|
||||
msgid "Your evaluation slot has been booked"
|
||||
msgstr ""
|
||||
|
||||
@@ -7474,8 +7529,8 @@ msgstr ""
|
||||
msgid "activity"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/CourseInstructors.vue:22
|
||||
#: frontend/src/components/CourseInstructors.vue:41
|
||||
#: frontend/src/components/CourseInstructors.vue:24
|
||||
#: frontend/src/components/CourseInstructors.vue:45
|
||||
msgid "and"
|
||||
msgstr ""
|
||||
|
||||
@@ -7538,11 +7593,15 @@ msgstr ""
|
||||
msgid "days"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:100 frontend/src/pages/Home/Home.vue:123
|
||||
#: frontend/src/pages/CourseForm.vue:290
|
||||
msgid "e.g. IST, UTC, GMT..."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:101 frontend/src/pages/Home/Home.vue:124
|
||||
msgid "evaluation"
|
||||
msgstr "evaluatie"
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:100 frontend/src/pages/Home/Home.vue:123
|
||||
#: frontend/src/pages/Home/Home.vue:101 frontend/src/pages/Home/Home.vue:124
|
||||
msgid "evaluations"
|
||||
msgstr ""
|
||||
|
||||
@@ -7562,11 +7621,11 @@ msgstr ""
|
||||
msgid "lessons"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:98 frontend/src/pages/Home/Home.vue:122
|
||||
#: frontend/src/pages/Home/Home.vue:99 frontend/src/pages/Home/Home.vue:123
|
||||
msgid "live class"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Home/Home.vue:98 frontend/src/pages/Home/Home.vue:122
|
||||
#: frontend/src/pages/Home/Home.vue:99 frontend/src/pages/Home/Home.vue:123
|
||||
msgid "live classes"
|
||||
msgstr ""
|
||||
|
||||
@@ -7584,11 +7643,11 @@ msgstr ""
|
||||
msgid "minutes"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/CourseInstructors.vue:41
|
||||
#: frontend/src/components/CourseInstructors.vue:45
|
||||
msgid "others"
|
||||
msgstr "anderen"
|
||||
|
||||
#: frontend/src/pages/QuizForm.vue:344
|
||||
#: frontend/src/pages/QuizForm.vue:340
|
||||
msgid "question_detail"
|
||||
msgstr ""
|
||||
|
||||
|
||||
357
lms/locale/pl.po
357
lms/locale/pl.po
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user