Compare commits

..

18 Commits

Author SHA1 Message Date
Frappe PR Bot
9b3906359b chore(release): Bumped to Version 2.25.0 2025-03-03 10:20:45 +00:00
Jannat Patel
4224580d6f Merge pull request #1351 from pateljannat/billing-flow-changes
fix: redirect to FC dashboard when login to FC
2025-03-03 14:59:21 +05:30
Jannat Patel
07d30647d8 chore: upgrading actions/cache to v4 for ci tests 2025-03-03 13:58:39 +05:30
Jannat Patel
263096fc77 fix: changed frappe cloud login flow 2025-03-03 13:53:16 +05:30
Jannat Patel
b510cbce7f Merge pull request #1347 from frappe/l10n_develop2
chore: sync translations from crowdin
2025-03-03 10:13:26 +05:30
Jannat Patel
0b84dc3266 Merge pull request #1346 from frappe/pot_develop_2025-02-28
chore: update POT file
2025-03-03 10:13:13 +05:30
Md Hussain Nagaria
7ee7b95eb5 Merge pull request #1350 from frappe/tz-autocomplete
feat: timezone autocomplete in live class & misc fixes
2025-03-03 06:35:07 +05:30
Hussain Nagaria
83b8bdde45 fix: transform tabIndex query param to number 2025-03-03 06:22:19 +05:30
Hussain Nagaria
1b5dd15b90 feat(LiveClass): timezone autocomplete field 2025-03-03 06:19:06 +05:30
Hussain Nagaria
47c224fcad chore: remove unused imports 2025-03-03 06:01:02 +05:30
Jannat Patel
1c866f40eb chore: Persian translations 2025-03-01 02:00:07 +05:30
frappe-pr-bot
1861aabaca chore: update POT file 2025-02-28 16:04:26 +00:00
Jannat Patel
cd8fb6eb38 Merge pull request #1342 from frappe/l10n_develop2
chore: sync translations from crowdin
2025-02-28 10:42:18 +05:30
Jannat Patel
21d05d3731 chore: Bosnian translations 2025-02-28 01:36:22 +05:30
Jannat Patel
7c953925f9 chore: Bosnian translations 2025-02-27 01:40:12 +05:30
Jannat Patel
33a4bbbe47 chore: Persian translations 2025-02-27 01:40:10 +05:30
Jannat Patel
03915ccfbd fix: only system managers should login to FC 2025-02-19 15:39:13 +05:30
Jannat Patel
c6d59216fd fix: redirect to FC dashboard when login to FC 2025-02-19 15:35:34 +05:30
16 changed files with 3303 additions and 3857 deletions

View File

@@ -39,7 +39,7 @@ jobs:
node-version: '18' node-version: '18'
check-latest: true check-latest: true
- name: setup cache for bench - name: setup cache for bench
uses: actions/cache@v2 uses: actions/cache@v4
with: with:
path: ~/bench-cache path: ~/bench-cache
key: ${{ runner.os }} key: ${{ runner.os }}

View File

@@ -26,7 +26,7 @@
"codemirror-editor-vue3": "^2.8.0", "codemirror-editor-vue3": "^2.8.0",
"dayjs": "^1.11.6", "dayjs": "^1.11.6",
"feather-icons": "^4.28.0", "feather-icons": "^4.28.0",
"frappe-ui": "^0.1.109", "frappe-ui": "^0.1.112",
"lucide-vue-next": "^0.383.0", "lucide-vue-next": "^0.383.0",
"markdown-it": "^14.0.0", "markdown-it": "^14.0.0",
"pinia": "^2.0.33", "pinia": "^2.0.33",

View File

@@ -65,8 +65,7 @@
<div> <div>
<TrialBanner <TrialBanner
v-if=" v-if="
userResource.data?.user_type == 'System User' && userResource.data?.is_system_manager && userResource.data?.is_fc_site
userResource.data?.is_fc_site
" "
:isSidebarCollapsed="sidebarStore.isSidebarCollapsed" :isSidebarCollapsed="sidebarStore.isSidebarCollapsed"
/> />

View File

@@ -130,7 +130,7 @@ import {
ComboboxOptions, ComboboxOptions,
ComboboxOption, ComboboxOption,
} from '@headlessui/vue' } from '@headlessui/vue'
import { Popover, Button } from 'frappe-ui' import { Popover } from 'frappe-ui'
import { ChevronDown, X } from 'lucide-vue-next' import { ChevronDown, X } from 'lucide-vue-next'
import { ref, computed, useAttrs, useSlots, watch, nextTick } from 'vue' import { ref, computed, useAttrs, useSlots, watch, nextTick } from 'vue'

View File

@@ -0,0 +1,23 @@
<template>
<svg
width="32"
height="32"
viewBox="0 0 32 32"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<rect
x="0.75"
y="0.75"
width="30.5"
height="30.5"
rx="6.25"
stroke="currentColor"
stroke-width="1.5"
/>
<path
d="M24.5011 14.1124C23.3954 12.4873 21.532 11.5477 19.594 11.6747C18.7616 10.1384 17.2211 9.12267 15.4198 9.0084C14.1651 8.93222 12.8979 9.3766 11.9165 10.24C11.2456 10.8367 10.7611 11.5223 10.463 12.2968C10.289 12.7539 9.89151 13.0459 9.46912 13.0459H6.5V15.5852H9.46912C10.9226 15.5852 12.2271 14.6584 12.7737 13.2237C12.9227 12.8301 13.1712 12.4873 13.5439 12.1571C14.0284 11.7255 14.662 11.4969 15.2583 11.535C16.1528 11.5985 16.7863 12.0175 17.1839 12.538C17.6063 13.0205 17.8423 13.7696 17.979 14.5187C18.774 14.2902 19.6437 14.0997 20.476 14.2394C21.1593 14.3536 21.7929 14.7218 22.2525 15.2678C22.327 15.3567 22.4016 15.4456 22.4637 15.5471C23.06 16.4232 23.1718 17.5024 22.7743 18.5689C22.414 19.5592 21.0847 20.4607 19.9791 20.4607H11.3326C10.1524 20.4607 9.18339 19.5592 9.03432 18.4038H6.54969C6.71119 20.9686 8.78585 23 11.3326 23H19.9915C22.1283 23 24.3769 21.451 25.1098 19.4704C25.7931 17.6167 25.5695 15.6614 24.5135 14.0997L24.5011 14.1124Z"
fill="currentColor"
/>
</svg>
</template>

View File

@@ -1,94 +0,0 @@
<template>
<Dialog
v-model="show"
:options="{
size: 'xl',
title: __('Login to Frappe Cloud'),
actions: [
{
label: __('Verify'),
variant: 'solid',
onClick: (close) => {
verifyCode(close)
},
},
],
}"
>
<template #body-content>
<div>
<p>
{{ __('We have sent the verificaton code to your email id ') }}
<b>{{ props.email }}</b>
</p>
<FormControl
v-model="code"
:label="__('Verification Code')"
class="mb-4"
/>
<p>
{{ __("Didn't receive the code?") }}
<a href="#" @click="resendCode">{{ __('Resend') }}</a>
</p>
</div>
</template>
</Dialog>
</template>
<script setup>
import { call, Dialog } from 'frappe-ui'
import { showToast } from '@/utils'
const show = defineModel()
const code = ref('')
const props = defineProps({
email: {
type: String,
required: true,
},
})
const verifyCode = (close) => {
if (!code.value) {
return
}
call(
'frappe.integrations.frappe_providers.frappecloud_billing.verify_verification_code',
{
verification_code: code.value,
route: window.route,
}
)
.then((data) => {
if (data.message.login_token) {
close()
window.open(
`${frappeCloudBaseEndpoint}/api/method/press.api.developer.saas.login_to_fc?token=${data.message.login_token}`,
'_blank'
)
showToast(
__('Frappe Cloud Login Successful'),
`<p>${__('You will be redirected to Frappe Cloud soon.')}</p><p>${__(
"If you haven't been redirected,"
)} <a href="${frappeCloudBaseEndpoint}/api/method/press.api.developer.saas.login_to_fc?token=${
data.message.login_token
}" target="_blank">${__('Click here to login')}</a></p>`,
'check'
)
} else {
showToast(__('Login failed'), __('Please try again'), 'x')
}
})
.catch((err) => {
showToast(__('Login failed'), __('Please try again'), 'x')
})
}
const resendCode = () => {
call(
'frappe.integrations.frappe_providers.frappecloud_billing.send_verification_code'
).catch((err) => {
showToast(__('Failed to resend code'), __('Please try again'), 'x')
})
}
</script>

View File

@@ -39,14 +39,20 @@
:required="true" :required="true"
/> />
</Tooltip> </Tooltip>
<FormControl
v-model="liveClass.timezone" <div class="space-y-1.5">
type="select" <label class="block text-ink-gray-5 text-xs" for="batchTimezone">
{{ __('Timezone') }}
<span class="text-ink-red-3">*</span>
</label>
<Autocomplete
@update:modelValue="(opt) => (liveClass.timezone = opt.value)"
:modelValue="liveClass.timezone"
:options="getTimezoneOptions()" :options="getTimezoneOptions()"
:label="__('Timezone')"
:required="true" :required="true"
/> />
</div> </div>
</div>
<div> <div>
<FormControl <FormControl
v-model="liveClass.date" v-model="liveClass.date"
@@ -83,18 +89,14 @@
</template> </template>
<script setup> <script setup>
import { import {
Input,
DatePicker,
Select,
Textarea,
Dialog, Dialog,
createResource, createResource,
Tooltip, Tooltip,
FormControl, FormControl,
Autocomplete,
} from 'frappe-ui' } from 'frappe-ui'
import { reactive, inject } from 'vue' import { reactive, inject } from 'vue'
import { getTimezones, createToast } from '@/utils/' import { getTimezones, createToast } from '@/utils/'
import { Info } from 'lucide-vue-next'
const liveClasses = defineModel('reloadLiveClasses') const liveClasses = defineModel('reloadLiveClasses')
const show = defineModel() const show = defineModel()

View File

@@ -59,22 +59,21 @@
v-if="userResource.data?.is_moderator" v-if="userResource.data?.is_moderator"
v-model="showSettingsModal" v-model="showSettingsModal"
/> />
<FCVerfiyCodeModal v-if="showFCLoginDialog" :email="verificationEmail" />
</template> </template>
<script setup> <script setup>
import LMSLogo from '@/components/Icons/LMSLogo.vue' import LMSLogo from '@/components/Icons/LMSLogo.vue'
import { sessionStore } from '@/stores/session' import { sessionStore } from '@/stores/session'
import { call, Dropdown } from 'frappe-ui' import { Dropdown } from 'frappe-ui'
import Apps from '@/components/Apps.vue' import Apps from '@/components/Apps.vue'
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
import { convertToTitleCase, showToast } from '@/utils' import { convertToTitleCase } from '@/utils'
import { usersStore } from '@/stores/user' import { usersStore } from '@/stores/user'
import { useSettings } from '@/stores/settings' import { useSettings } from '@/stores/settings'
import { markRaw, watch, ref, onMounted, computed } from 'vue' import { markRaw, watch, ref, onMounted, computed } from 'vue'
import SettingsModal from '@/components/Modals/Settings.vue'
import { createDialog } from '@/utils/dialogs' import { createDialog } from '@/utils/dialogs'
import FCVerfiyCodeModal from './Modals/FCVerfiyCodeModal.vue' import SettingsModal from '@/components/Modals/Settings.vue'
import FrappeCloudIcon from '@/components/Icons/FrappeCloudIcon.vue'
import { import {
ChevronDown, ChevronDown,
LogIn, LogIn,
@@ -83,7 +82,6 @@ import {
User, User,
Settings, Settings,
Sun, Sun,
LogInIcon,
} from 'lucide-vue-next' } from 'lucide-vue-next'
const router = useRouter() const router = useRouter()
@@ -93,11 +91,8 @@ const settingsStore = useSettings()
let { isLoggedIn } = sessionStore() let { isLoggedIn } = sessionStore()
const showSettingsModal = ref(false) const showSettingsModal = ref(false)
const theme = ref('light') const theme = ref('light')
const $dialog = createDialog
const frappeCloudBaseEndpoint = 'https://frappecloud.com' const frappeCloudBaseEndpoint = 'https://frappecloud.com'
const $dialog = createDialog
const showFCLoginDialog = ref(false)
const verificationEmail = ref(null)
const props = defineProps({ const props = defineProps({
isCollapsed: { isCollapsed: {
@@ -166,15 +161,29 @@ const userDropdownOptions = computed(() => {
}, },
}, },
{ {
icon: LogInIcon, icon: FrappeCloudIcon,
label: 'Login to Frappe Cloud', label: 'Login to Frappe Cloud',
onClick: () => { onClick: () => {
initiateRequestForLoginToFrappeCloud() $dialog({
title: __('Login to Frappe Cloud?'),
message: __(
'Are you sure you want to login to your Frappe Cloud dashboard?'
),
actions: [
{
label: __('Confirm'),
variant: 'solid',
onClick(close) {
loginToFrappeCloud()
close()
},
},
],
})
}, },
condition: () => { condition: () => {
return ( return (
userResource.data?.user_type == 'System User' && userResource.data?.is_system_manager && userResource.data?.is_fc_site
userResource.data?.is_fc_site
) )
}, },
}, },
@@ -203,47 +212,11 @@ const userDropdownOptions = computed(() => {
] ]
}) })
const initiateRequestForLoginToFrappeCloud = () => { const loginToFrappeCloud = () => {
$dialog({ let redirect_to = '/dashboard/welcome'
title: __('Login to Frappe Cloud?'), if (userResource.data?.site_info.is_payment_method_added) {
message: __( redirect_to = '/dashboard/sites/' + userResource.data.sitename
'Are you sure you want to login to your Frappe Cloud dashboard?'
),
actions: [
{
label: __('Confirm'),
variant: 'solid',
onClick(close) {
requestLoginToFC()
close()
},
},
],
})
} }
window.open(`${frappeCloudBaseEndpoint}${redirect_to}`, '_blank')
const requestLoginToFC = () => {
call(
'frappe.integrations.frappe_providers.frappecloud_billing.send_verification_code'
)
.then((data) => {
if (data.message.is_user_logged_in) {
window.open(
`${frappeCloudBaseEndpoint}${data.message.redirect_to}`,
'_blank'
)
return
} else {
showFCLoginDialog.value = true
verificationEmail.value = data.message.email
}
})
.catch((err) => {
showToast(
__('Failed to login to Frappe Cloud'),
__('Please try again'),
'x'
)
})
} }
</script> </script>

View File

@@ -271,7 +271,7 @@ const isStudent = computed(() => {
) )
}) })
const tabIndex = useRouteQuery('tab', 0) const tabIndex = useRouteQuery('tab', 0, { transform: Number })
const tabs = computed(() => { const tabs = computed(() => {
let batchTabs = [] let batchTabs = []
batchTabs.push({ batchTabs.push({

2441
frontend/yarn.lock Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1 +1 @@
__version__ = "2.24.0" __version__ = "2.25.0"

View File

@@ -23,7 +23,10 @@ from frappe.utils import (
from lms.lms.utils import get_average_rating, get_lesson_count from lms.lms.utils import get_average_rating, get_lesson_count
from xml.dom.minidom import parseString from xml.dom.minidom import parseString
from lms.lms.doctype.course_lesson.course_lesson import save_progress from lms.lms.doctype.course_lesson.course_lesson import save_progress
from frappe.integrations.frappe_providers.frappecloud_billing import is_fc_site from frappe.integrations.frappe_providers.frappecloud_billing import (
is_fc_site,
current_site_info,
)
@frappe.whitelist() @frappe.whitelist()
@@ -177,6 +180,10 @@ def get_user_info():
user.is_evaluator = "Batch Evaluator" in user.roles user.is_evaluator = "Batch Evaluator" in user.roles
user.is_student = "LMS Student" in user.roles user.is_student = "LMS Student" in user.roles
user.is_fc_site = is_fc_site() user.is_fc_site = is_fc_site()
user.is_system_manager = "System Manager" in user.roles
if user.is_fc_site and user.is_system_manager:
user.site_info = current_site_info()
user.sitename = frappe.local.site
return user return user

File diff suppressed because it is too large Load Diff

View File

@@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: frappe\n" "Project-Id-Version: frappe\n"
"Report-Msgid-Bugs-To: jannat@frappe.io\n" "Report-Msgid-Bugs-To: jannat@frappe.io\n"
"POT-Creation-Date: 2025-02-21 16:04+0000\n" "POT-Creation-Date: 2025-02-21 16:04+0000\n"
"PO-Revision-Date: 2025-02-24 19:35\n" "PO-Revision-Date: 2025-02-28 20:30\n"
"Last-Translator: jannat@frappe.io\n" "Last-Translator: jannat@frappe.io\n"
"Language-Team: Persian\n" "Language-Team: Persian\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@@ -1080,7 +1080,7 @@ msgstr "ثبت نام خود را تکمیل کنید - فرصت را از دس
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.json #: lms/lms/doctype/lms_certificate_request/lms_certificate_request.json
#: lms/lms/widgets/CourseCard.html:78 #: lms/lms/widgets/CourseCard.html:78
msgid "Completed" msgid "Completed"
msgstr "تکمیل شد" msgstr "تکمیل شده"
#: frontend/src/components/BatchStudents.vue:369 #: frontend/src/components/BatchStudents.vue:369
msgid "Completed by Students" msgid "Completed by Students"
@@ -1525,7 +1525,7 @@ msgstr "عزیز "
#. Label of the default_currency (Link) field in DocType 'LMS Settings' #. Label of the default_currency (Link) field in DocType 'LMS Settings'
#: lms/lms/doctype/lms_settings/lms_settings.json #: lms/lms/doctype/lms_settings/lms_settings.json
msgid "Default Currency" msgid "Default Currency"
msgstr "ارز پیش فرض" msgstr "ارز پیشفرض"
#. Label of the degree_type (Data) field in DocType 'Education Detail' #. Label of the degree_type (Data) field in DocType 'Education Detail'
#: lms/lms/doctype/education_detail/education_detail.json #: lms/lms/doctype/education_detail/education_detail.json
@@ -4464,7 +4464,7 @@ msgstr ""
#: frontend/src/pages/BatchForm.vue:77 frontend/src/pages/CourseForm.vue:99 #: frontend/src/pages/BatchForm.vue:77 frontend/src/pages/CourseForm.vue:99
msgid "Remove" msgid "Remove"
msgstr "برداشتن" msgstr "حدف"
#: frontend/src/components/Modals/AnnouncementModal.vue:27 #: frontend/src/components/Modals/AnnouncementModal.vue:27
msgid "Reply To" msgid "Reply To"
@@ -5105,7 +5105,7 @@ msgstr "خلاصه"
#: lms/lms/doctype/evaluator_schedule/evaluator_schedule.json #: lms/lms/doctype/evaluator_schedule/evaluator_schedule.json
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.json #: lms/lms/doctype/lms_certificate_request/lms_certificate_request.json
msgid "Sunday" msgid "Sunday"
msgstr "یکشنبه" msgstr "یکشنبه"
#: lms/lms/api.py:999 #: lms/lms/api.py:999
msgid "Suspicious pattern found in {0}: {1}" msgid "Suspicious pattern found in {0}: {1}"
@@ -5352,7 +5352,7 @@ msgstr ""
#: lms/lms/doctype/evaluator_schedule/evaluator_schedule.json #: lms/lms/doctype/evaluator_schedule/evaluator_schedule.json
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.json #: lms/lms/doctype/lms_certificate_request/lms_certificate_request.json
msgid "Thursday" msgid "Thursday"
msgstr "پنج شنبه" msgstr "پنجشنبه"
#. Label of the time (Time) field in DocType 'LMS Live Class' #. Label of the time (Time) field in DocType 'LMS Live Class'
#: frontend/src/components/Modals/Event.vue:48 #: frontend/src/components/Modals/Event.vue:48

View File

@@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Frappe LMS VERSION\n" "Project-Id-Version: Frappe LMS VERSION\n"
"Report-Msgid-Bugs-To: jannat@frappe.io\n" "Report-Msgid-Bugs-To: jannat@frappe.io\n"
"POT-Creation-Date: 2025-02-21 16:04+0000\n" "POT-Creation-Date: 2025-02-28 16:04+0000\n"
"PO-Revision-Date: 2025-02-21 16:04+0000\n" "PO-Revision-Date: 2025-02-28 16:04+0000\n"
"Last-Translator: jannat@frappe.io\n" "Last-Translator: jannat@frappe.io\n"
"Language-Team: jannat@frappe.io\n" "Language-Team: jannat@frappe.io\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@@ -65,6 +65,10 @@ msgstr ""
msgid "<span style=\"font-size: 18px;\"><b>Statistics</b></span>" msgid "<span style=\"font-size: 18px;\"><b>Statistics</b></span>"
msgstr "" msgstr ""
#: lms/lms/doctype/lms_course/lms_course.py:58
msgid "A course cannot have both paid certificate and certificate of completion."
msgstr ""
#: frontend/src/pages/CourseForm.vue:40 #: frontend/src/pages/CourseForm.vue:40
msgid "A one line introduction to the course that appears on the course card" msgid "A one line introduction to the course that appears on the course card"
msgstr "" msgstr ""
@@ -187,16 +191,16 @@ msgid "Add your assignment as {0}"
msgstr "" msgstr ""
#. Label of the address (Link) field in DocType 'LMS Payment' #. Label of the address (Link) field in DocType 'LMS Payment'
#: frontend/src/pages/Billing.vue:17 frontend/src/pages/Billing.vue:69 #: frontend/src/pages/Billing.vue:64
#: lms/lms/doctype/lms_payment/lms_payment.json #: lms/lms/doctype/lms_payment/lms_payment.json
msgid "Address" msgid "Address"
msgstr "" msgstr ""
#: frontend/src/pages/Billing.vue:79 #: frontend/src/pages/Billing.vue:74
msgid "Address Line 1" msgid "Address Line 1"
msgstr "" msgstr ""
#: frontend/src/pages/Billing.vue:83 #: frontend/src/pages/Billing.vue:78
msgid "Address Line 2" msgid "Address Line 2"
msgstr "" msgstr ""
@@ -267,9 +271,11 @@ msgid "Already Registered"
msgstr "" msgstr ""
#. Label of the amount (Currency) field in DocType 'LMS Batch' #. Label of the amount (Currency) field in DocType 'LMS Batch'
#. Label of the course_price (Currency) field in DocType 'LMS Course'
#. Label of the amount (Currency) field in DocType 'LMS Payment' #. Label of the amount (Currency) field in DocType 'LMS Payment'
#: frontend/src/pages/BatchForm.vue:209 #: frontend/src/pages/BatchForm.vue:209 frontend/src/pages/CourseForm.vue:220
#: lms/lms/doctype/lms_batch/lms_batch.json #: lms/lms/doctype/lms_batch/lms_batch.json
#: lms/lms/doctype/lms_course/lms_course.json
#: lms/lms/doctype/lms_payment/lms_payment.json #: lms/lms/doctype/lms_payment/lms_payment.json
#: lms/public/js/common_functions.js:379 #: lms/public/js/common_functions.js:379
msgid "Amount" msgid "Amount"
@@ -283,11 +289,15 @@ msgstr ""
msgid "Amount (USD)" msgid "Amount (USD)"
msgstr "" msgstr ""
#: lms/lms/doctype/lms_batch/lms_batch.py:61 #: lms/lms/doctype/lms_batch/lms_batch.py:60
msgid "Amount and currency are required for paid batches." msgid "Amount and currency are required for paid batches."
msgstr "" msgstr ""
#: lms/lms/doctype/lms_course/lms_course.py:57 #: lms/lms/doctype/lms_course/lms_course.py:69
msgid "Amount and currency are required for paid certificates."
msgstr ""
#: lms/lms/doctype/lms_course/lms_course.py:66
msgid "Amount and currency are required for paid courses." msgid "Amount and currency are required for paid courses."
msgstr "" msgstr ""
@@ -362,7 +372,7 @@ msgstr ""
msgid "Archived" msgid "Archived"
msgstr "" msgstr ""
#: frontend/src/components/UpcomingEvaluations.vue:129 #: frontend/src/components/UpcomingEvaluations.vue:135
msgid "Are you sure you want to cancel this evaluation? This action cannot be undone." msgid "Are you sure you want to cancel this evaluation? This action cannot be undone."
msgstr "" msgstr ""
@@ -398,7 +408,7 @@ msgstr ""
msgid "Assessment added successfully" msgid "Assessment added successfully"
msgstr "" msgstr ""
#: lms/lms/doctype/lms_batch/lms_batch.py:71 #: lms/lms/doctype/lms_batch/lms_batch.py:70
msgid "Assessment {0} has already been added to this batch." msgid "Assessment {0} has already been added to this batch."
msgstr "" msgstr ""
@@ -494,7 +504,7 @@ msgstr ""
msgid "Average of Feedback Received" msgid "Average of Feedback Received"
msgstr "" msgstr ""
#: frontend/src/pages/Lesson.vue:96 #: frontend/src/pages/Lesson.vue:97
msgid "Back to Course" msgid "Back to Course"
msgstr "" msgstr ""
@@ -600,7 +610,7 @@ msgstr ""
msgid "Batch Start Date:" msgid "Batch Start Date:"
msgstr "" msgstr ""
#: lms/lms/doctype/lms_batch/lms_batch.py:430 #: lms/lms/doctype/lms_batch/lms_batch.py:418
msgid "Batch Start Reminder" msgid "Batch Start Reminder"
msgstr "" msgstr ""
@@ -615,7 +625,7 @@ msgstr ""
msgid "Batch Updated" msgid "Batch Updated"
msgstr "" msgstr ""
#: lms/lms/doctype/lms_batch/lms_batch.py:42 #: lms/lms/doctype/lms_batch/lms_batch.py:41
msgid "Batch end date cannot be before the batch start date" msgid "Batch end date cannot be before the batch start date"
msgstr "" msgstr ""
@@ -651,7 +661,7 @@ msgid "Billing Details"
msgstr "" msgstr ""
#. Label of the billing_name (Data) field in DocType 'LMS Payment' #. Label of the billing_name (Data) field in DocType 'LMS Payment'
#: frontend/src/pages/Billing.vue:75 #: frontend/src/pages/Billing.vue:70
#: lms/lms/doctype/lms_payment/lms_payment.json #: lms/lms/doctype/lms_payment/lms_payment.json
msgid "Billing Name" msgid "Billing Name"
msgstr "" msgstr ""
@@ -680,7 +690,7 @@ msgstr ""
msgid "Business Owner" msgid "Business Owner"
msgstr "" msgstr ""
#: frontend/src/components/CourseCardOverlay.vue:45 #: frontend/src/components/CourseCardOverlay.vue:47
msgid "Buy this course" msgid "Buy this course"
msgstr "" msgstr ""
@@ -693,12 +703,12 @@ msgstr ""
msgid "CGPA/4" msgid "CGPA/4"
msgstr "" msgstr ""
#: frontend/src/components/UpcomingEvaluations.vue:55 #: frontend/src/components/UpcomingEvaluations.vue:61
#: frontend/src/components/UpcomingEvaluations.vue:134 #: frontend/src/components/UpcomingEvaluations.vue:140
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
#: frontend/src/components/UpcomingEvaluations.vue:128 #: frontend/src/components/UpcomingEvaluations.vue:134
msgid "Cancel this evaluation?" msgid "Cancel this evaluation?"
msgstr "" msgstr ""
@@ -739,7 +749,9 @@ msgstr ""
msgid "Category Name" msgid "Category Name"
msgstr "" msgstr ""
#. Label of the certificate (Link) field in DocType 'LMS Enrollment'
#. Label of a shortcut in the LMS Workspace #. Label of a shortcut in the LMS Workspace
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
#: lms/lms/workspace/lms/lms.json #: lms/lms/workspace/lms/lms.json
msgid "Certificate" msgid "Certificate"
msgstr "" msgstr ""
@@ -753,6 +765,10 @@ msgstr ""
msgid "Certificate Link" msgid "Certificate Link"
msgstr "" msgstr ""
#: frontend/src/components/CourseCardOverlay.vue:124
msgid "Certificate of Completion"
msgstr ""
#: frontend/src/components/Modals/Event.vue:310 #: frontend/src/components/Modals/Event.vue:310
msgid "Certificate saved successfully" msgid "Certificate saved successfully"
msgstr "" msgstr ""
@@ -768,15 +784,20 @@ msgstr ""
#. Label of the certification (Table) field in DocType 'User' #. Label of the certification (Table) field in DocType 'User'
#. Name of a DocType #. Name of a DocType
#. Label of the certification (Check) field in DocType 'LMS Batch' #. Label of the certification (Check) field in DocType 'LMS Batch'
#. Label of the certification_tab (Tab Break) field in DocType 'LMS Course' #. Label of the certification_section (Section Break) field in DocType 'LMS
#. Enrollment'
#. Label of a Card Break in the LMS Workspace #. Label of a Card Break in the LMS Workspace
#. Label of a Link in the LMS Workspace #. Label of a Link in the LMS Workspace
#: frontend/src/components/CourseCard.vue:110
#: frontend/src/components/Modals/Event.vue:371 #: frontend/src/components/Modals/Event.vue:371
#: frontend/src/pages/BatchForm.vue:37 frontend/src/pages/Batches.vue:38 #: frontend/src/pages/BatchForm.vue:37 frontend/src/pages/Batches.vue:38
#: frontend/src/pages/CourseCertification.vue:10
#: frontend/src/pages/CourseCertification.vue:114
#: lms/fixtures/custom_field.json #: lms/fixtures/custom_field.json
#: lms/lms/doctype/certification/certification.json #: lms/lms/doctype/certification/certification.json
#: lms/lms/doctype/lms_batch/lms_batch.json #: lms/lms/doctype/lms_batch/lms_batch.json
#: lms/lms/doctype/lms_course/lms_course.json lms/lms/workspace/lms/lms.json #: lms/lms/doctype/lms_enrollment/lms_enrollment.json
#: lms/lms/workspace/lms/lms.json
msgid "Certification" msgid "Certification"
msgstr "" msgstr ""
@@ -785,11 +806,6 @@ msgstr ""
msgid "Certification Details" msgid "Certification Details"
msgstr "" msgstr ""
#. Label of the expiry (Int) field in DocType 'LMS Course'
#: lms/lms/doctype/lms_course/lms_course.json
msgid "Certification Expires After (Years)"
msgstr ""
#. Label of the certification_name (Data) field in DocType 'Certification' #. Label of the certification_name (Data) field in DocType 'Certification'
#: lms/lms/doctype/certification/certification.json #: lms/lms/doctype/certification/certification.json
msgid "Certification Name" msgid "Certification Name"
@@ -877,7 +893,7 @@ msgid "Choose one answer"
msgstr "" msgstr ""
#. Label of the city (Data) field in DocType 'User' #. Label of the city (Data) field in DocType 'User'
#: frontend/src/pages/Billing.vue:86 lms/fixtures/custom_field.json #: frontend/src/pages/Billing.vue:81 lms/fixtures/custom_field.json
msgid "City" msgid "City"
msgstr "" msgstr ""
@@ -1084,7 +1100,9 @@ msgstr ""
msgid "Completed by Students" msgid "Completed by Students"
msgstr "" msgstr ""
#: frontend/src/pages/CourseForm.vue:201 #. Label of the enable_certification (Check) field in DocType 'LMS Course'
#: frontend/src/pages/CourseForm.vue:212
#: lms/lms/doctype/lms_course/lms_course.json
msgid "Completion Certificate" msgid "Completion Certificate"
msgstr "" msgstr ""
@@ -1124,7 +1142,7 @@ msgstr ""
msgid "Congratulations on getting certified!" msgid "Congratulations on getting certified!"
msgstr "" msgstr ""
#: frontend/src/components/CourseCardOverlay.vue:53 #: frontend/src/components/CourseCardOverlay.vue:55
msgid "Contact the Administrator to enroll for this course." msgid "Contact the Administrator to enroll for this course."
msgstr "" msgstr ""
@@ -1146,7 +1164,7 @@ msgstr ""
msgid "Contract" msgid "Contract"
msgstr "" msgstr ""
#: lms/lms/utils.py:438 #: lms/lms/utils.py:437
msgid "Cookie Policy" msgid "Cookie Policy"
msgstr "" msgstr ""
@@ -1174,7 +1192,7 @@ msgstr ""
#. Label of the country (Link) field in DocType 'User' #. Label of the country (Link) field in DocType 'User'
#. Label of the country (Link) field in DocType 'Payment Country' #. Label of the country (Link) field in DocType 'Payment Country'
#: frontend/src/pages/Billing.vue:97 lms/fixtures/custom_field.json #: frontend/src/pages/Billing.vue:92 lms/fixtures/custom_field.json
#: lms/lms/doctype/payment_country/payment_country.json #: lms/lms/doctype/payment_country/payment_country.json
msgid "Country" msgid "Country"
msgstr "" msgstr ""
@@ -1253,10 +1271,6 @@ msgstr ""
msgid "Course Completed" msgid "Course Completed"
msgstr "" msgstr ""
#: lms/lms/widgets/CourseOutline.html:9
msgid "Course Content"
msgstr ""
#. Name of a role #. Name of a role
#: frontend/src/pages/ProfileRoles.vue:16 #: frontend/src/pages/ProfileRoles.vue:16
#: lms/lms/doctype/course_chapter/course_chapter.json #: lms/lms/doctype/course_chapter/course_chapter.json
@@ -1307,12 +1321,6 @@ msgstr ""
msgid "Course Outline" msgid "Course Outline"
msgstr "" msgstr ""
#. Label of the course_price (Currency) field in DocType 'LMS Course'
#: frontend/src/pages/CourseForm.vue:219
#: lms/lms/doctype/lms_course/lms_course.json
msgid "Course Price"
msgstr ""
#. Name of a report #. Name of a report
#: lms/lms/report/course_progress_summary/course_progress_summary.json #: lms/lms/report/course_progress_summary/course_progress_summary.json
msgid "Course Progress Summary" msgid "Course Progress Summary"
@@ -1345,11 +1353,11 @@ msgstr ""
msgid "Course added to program" msgid "Course added to program"
msgstr "" msgstr ""
#: lms/lms/doctype/lms_batch/lms_batch.py:277 #: lms/lms/doctype/lms_batch/lms_batch.py:265
msgid "Course already added to the batch." msgid "Course already added to the batch."
msgstr "" msgstr ""
#: frontend/src/pages/CourseForm.vue:461 #: frontend/src/pages/CourseForm.vue:469
msgid "Course deleted successfully" msgid "Course deleted successfully"
msgstr "" msgstr ""
@@ -1357,7 +1365,7 @@ msgstr ""
msgid "Course moved successfully" msgid "Course moved successfully"
msgstr "" msgstr ""
#: lms/lms/doctype/lms_batch/lms_batch.py:50 #: lms/lms/doctype/lms_batch/lms_batch.py:49
#: lms/lms/doctype/lms_program/lms_program.py:19 #: lms/lms/doctype/lms_program/lms_program.py:19
msgid "Course {0} has already been added to this batch." msgid "Course {0} has already been added to this batch."
msgstr "" msgstr ""
@@ -1371,6 +1379,7 @@ msgstr ""
#: frontend/src/components/BatchStudents.vue:92 #: frontend/src/components/BatchStudents.vue:92
#: frontend/src/components/Modals/BatchStudentProgress.vue:79 #: frontend/src/components/Modals/BatchStudentProgress.vue:79
#: frontend/src/pages/BatchDetail.vue:21 frontend/src/pages/BatchDetail.vue:70 #: frontend/src/pages/BatchDetail.vue:21 frontend/src/pages/BatchDetail.vue:70
#: frontend/src/pages/CourseCertification.vue:106
#: frontend/src/pages/Courses.vue:8 frontend/src/pages/Statistics.vue:21 #: frontend/src/pages/Courses.vue:8 frontend/src/pages/Statistics.vue:21
#: lms/lms/doctype/lms_batch/lms_batch.json #: lms/lms/doctype/lms_batch/lms_batch.json
#: lms/lms/doctype/lms_settings/lms_settings.json #: lms/lms/doctype/lms_settings/lms_settings.json
@@ -1431,7 +1440,7 @@ msgstr ""
#. Label of the currency (Link) field in DocType 'LMS Batch' #. Label of the currency (Link) field in DocType 'LMS Batch'
#. Label of the currency (Link) field in DocType 'LMS Course' #. Label of the currency (Link) field in DocType 'LMS Course'
#. Label of the currency (Link) field in DocType 'LMS Payment' #. Label of the currency (Link) field in DocType 'LMS Payment'
#: frontend/src/pages/BatchForm.vue:217 frontend/src/pages/CourseForm.vue:226 #: frontend/src/pages/BatchForm.vue:217 frontend/src/pages/CourseForm.vue:225
#: lms/lms/doctype/lms_batch/lms_batch.json #: lms/lms/doctype/lms_batch/lms_batch.json
#: lms/lms/doctype/lms_course/lms_course.json #: lms/lms/doctype/lms_course/lms_course.json
#: lms/lms/doctype/lms_payment/lms_payment.json #: lms/lms/doctype/lms_payment/lms_payment.json
@@ -1532,7 +1541,7 @@ msgstr ""
#: frontend/src/components/CourseOutline.vue:240 #: frontend/src/components/CourseOutline.vue:240
#: frontend/src/components/CourseOutline.vue:298 #: frontend/src/components/CourseOutline.vue:298
#: frontend/src/pages/CourseForm.vue:15 frontend/src/pages/CourseForm.vue:474 #: frontend/src/pages/CourseForm.vue:15 frontend/src/pages/CourseForm.vue:482
msgid "Delete" msgid "Delete"
msgstr "" msgstr ""
@@ -1540,7 +1549,7 @@ msgstr ""
msgid "Delete Chapter" msgid "Delete Chapter"
msgstr "" msgstr ""
#: frontend/src/pages/CourseForm.vue:468 #: frontend/src/pages/CourseForm.vue:476
msgid "Delete Course" msgid "Delete Course"
msgstr "" msgstr ""
@@ -1552,7 +1561,7 @@ msgstr ""
msgid "Delete this lesson?" msgid "Delete this lesson?"
msgstr "" msgstr ""
#: frontend/src/pages/CourseForm.vue:469 #: frontend/src/pages/CourseForm.vue:477
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?" msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
msgstr "" msgstr ""
@@ -1607,7 +1616,7 @@ msgstr ""
msgid "Didn't receive the code?" msgid "Didn't receive the code?"
msgstr "" msgstr ""
#: frontend/src/pages/CourseForm.vue:196 #: frontend/src/pages/CourseForm.vue:194
msgid "Disable Self Enrollment" msgid "Disable Self Enrollment"
msgstr "" msgstr ""
@@ -1684,9 +1693,9 @@ msgid "E-mail"
msgstr "" msgstr ""
#: frontend/src/components/BatchOverlay.vue:107 #: frontend/src/components/BatchOverlay.vue:107
#: frontend/src/components/CourseCardOverlay.vue:86 #: frontend/src/components/CourseCardOverlay.vue:88
#: frontend/src/components/Modals/ChapterModal.vue:9 #: frontend/src/components/Modals/ChapterModal.vue:9
#: frontend/src/pages/JobDetail.vue:31 frontend/src/pages/Lesson.vue:65 #: frontend/src/pages/JobDetail.vue:31 frontend/src/pages/Lesson.vue:66
#: frontend/src/pages/Profile.vue:32 frontend/src/pages/Programs.vue:53 #: frontend/src/pages/Profile.vue:32 frontend/src/pages/Programs.vue:53
msgid "Edit" msgid "Edit"
msgstr "" msgstr ""
@@ -1756,11 +1765,6 @@ msgstr ""
msgid "Enable" msgid "Enable"
msgstr "" msgstr ""
#. Label of the enable_certification (Check) field in DocType 'LMS Course'
#: lms/lms/doctype/lms_course/lms_course.json
msgid "Enable Certification"
msgstr ""
#: lms/lms/doctype/lms_settings/lms_settings.py:20 #: lms/lms/doctype/lms_settings/lms_settings.py:20
msgid "Enable Google API in Google Settings to send calendar invites for evaluations." msgid "Enable Google API in Google Settings to send calendar invites for evaluations."
msgstr "" msgstr ""
@@ -1825,7 +1829,7 @@ msgid "Enrolled"
msgstr "" msgstr ""
#: frontend/src/components/CourseCard.vue:41 #: frontend/src/components/CourseCard.vue:41
#: frontend/src/components/CourseCardOverlay.vue:104 #: frontend/src/components/CourseCardOverlay.vue:106
#: frontend/src/pages/CourseDetail.vue:33 #: frontend/src/pages/CourseDetail.vue:33
msgid "Enrolled Students" msgid "Enrolled Students"
msgstr "" msgstr ""
@@ -1843,7 +1847,7 @@ msgstr ""
msgid "Enrollment Count" msgid "Enrollment Count"
msgstr "" msgstr ""
#: lms/lms/utils.py:1740 #: lms/lms/utils.py:1769
msgid "Enrollment Failed" msgid "Enrollment Failed"
msgstr "" msgstr ""
@@ -1884,13 +1888,13 @@ msgstr ""
#: frontend/src/components/Quiz.vue:589 #: frontend/src/components/Quiz.vue:589
#: frontend/src/components/SettingDetails.vue:62 #: frontend/src/components/SettingDetails.vue:62
#: frontend/src/pages/AssignmentForm.vue:139 #: frontend/src/pages/AssignmentForm.vue:139
#: frontend/src/pages/AssignmentForm.vue:159 frontend/src/pages/Billing.vue:264 #: frontend/src/pages/AssignmentForm.vue:159 frontend/src/pages/Billing.vue:263
#: frontend/src/pages/QuizForm.vue:346 frontend/src/pages/QuizForm.vue:361 #: frontend/src/pages/QuizForm.vue:346 frontend/src/pages/QuizForm.vue:361
#: frontend/src/pages/QuizSubmission.vue:147 #: frontend/src/pages/QuizSubmission.vue:147
msgid "Error" msgid "Error"
msgstr "" msgstr ""
#: lms/lms/doctype/lms_batch/lms_batch.py:181 #: lms/lms/doctype/lms_batch/lms_batch.py:180
msgid "Error creating live class. Please try again. {0}" msgid "Error creating live class. Please try again. {0}"
msgstr "" msgstr ""
@@ -1918,7 +1922,7 @@ msgstr ""
msgid "Evaluation Request" msgid "Evaluation Request"
msgstr "" msgstr ""
#: lms/lms/doctype/lms_batch/lms_batch.py:78 #: lms/lms/doctype/lms_batch/lms_batch.py:77
msgid "Evaluation end date cannot be less than the batch end date." msgid "Evaluation end date cannot be less than the batch end date."
msgstr "" msgstr ""
@@ -1932,15 +1936,17 @@ msgstr ""
#. Label of the evaluator (Link) field in DocType 'LMS Certificate' #. Label of the evaluator (Link) field in DocType 'LMS Certificate'
#. Label of the evaluator (Link) field in DocType 'LMS Certificate Evaluation' #. Label of the evaluator (Link) field in DocType 'LMS Certificate Evaluation'
#. Label of the evaluator (Link) field in DocType 'LMS Certificate Request' #. Label of the evaluator (Link) field in DocType 'LMS Certificate Request'
#. Label of the evaluator (Link) field in DocType 'LMS Course'
#: frontend/src/components/Modals/BatchCourseModal.vue:26 #: frontend/src/components/Modals/BatchCourseModal.vue:26
#: frontend/src/components/Modals/BulkCertificates.vue:22 #: frontend/src/components/Modals/BulkCertificates.vue:22
#: frontend/src/pages/ProfileRoles.vue:22 #: frontend/src/pages/CourseForm.vue:231 frontend/src/pages/ProfileRoles.vue:22
#: lms/lms/doctype/batch_course/batch_course.json #: lms/lms/doctype/batch_course/batch_course.json
#: lms/lms/doctype/course_evaluator/course_evaluator.json #: lms/lms/doctype/course_evaluator/course_evaluator.json
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json #: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
#: lms/lms/doctype/lms_certificate/lms_certificate.json #: lms/lms/doctype/lms_certificate/lms_certificate.json
#: lms/lms/doctype/lms_certificate_evaluation/lms_certificate_evaluation.json #: lms/lms/doctype/lms_certificate_evaluation/lms_certificate_evaluation.json
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.json #: lms/lms/doctype/lms_certificate_request/lms_certificate_request.json
#: lms/lms/doctype/lms_course/lms_course.json
#: lms/templates/upcoming_evals.html:33 #: lms/templates/upcoming_evals.html:33
msgid "Evaluator" msgid "Evaluator"
msgstr "" msgstr ""
@@ -1965,6 +1971,10 @@ msgstr ""
msgid "Evaluator is Unavailable" msgid "Evaluator is Unavailable"
msgstr "" msgstr ""
#: lms/lms/doctype/lms_course/lms_course.py:62
msgid "Evaluator is required for paid certificates."
msgstr ""
#. Label of the event (Select) field in DocType 'LMS Badge' #. Label of the event (Select) field in DocType 'LMS Badge'
#. Label of the event (Link) field in DocType 'LMS Live Class' #. Label of the event (Link) field in DocType 'LMS Live Class'
#: lms/lms/doctype/lms_badge/lms_badge.json #: lms/lms/doctype/lms_badge/lms_badge.json
@@ -2177,11 +2187,11 @@ msgstr ""
msgid "Function" msgid "Function"
msgstr "" msgstr ""
#: frontend/src/pages/Billing.vue:48 #: frontend/src/pages/Billing.vue:43
msgid "GST Amount" msgid "GST Amount"
msgstr "" msgstr ""
#: frontend/src/pages/Billing.vue:115 #: frontend/src/pages/Billing.vue:110
msgid "GST Number" msgid "GST Number"
msgstr "" msgstr ""
@@ -2204,10 +2214,12 @@ msgstr ""
msgid "Generate Google Meet Link" msgid "Generate Google Meet Link"
msgstr "" msgstr ""
#: frontend/src/components/CourseCardOverlay.vue:73 #: frontend/src/components/CourseCardOverlay.vue:75
msgid "Get Certificate" msgid "Get Certificate"
msgstr "" msgstr ""
#: frontend/src/components/CertificationLinks.vue:24
#: frontend/src/components/CertificationLinks.vue:40
#: frontend/src/pages/CertifiedParticipants.vue:11 #: frontend/src/pages/CertifiedParticipants.vue:11
msgid "Get Certified" msgid "Get Certified"
msgstr "" msgstr ""
@@ -2487,7 +2499,7 @@ msgstr ""
#. Label of the instructor_notes (Markdown Editor) field in DocType 'Course #. Label of the instructor_notes (Markdown Editor) field in DocType 'Course
#. Lesson' #. Lesson'
#: frontend/src/pages/Lesson.vue:128 frontend/src/pages/LessonForm.vue:42 #: frontend/src/pages/Lesson.vue:129 frontend/src/pages/LessonForm.vue:42
#: lms/lms/doctype/course_lesson/course_lesson.json #: lms/lms/doctype/course_lesson/course_lesson.json
msgid "Instructor Notes" msgid "Instructor Notes"
msgstr "" msgstr ""
@@ -2580,6 +2592,7 @@ msgid "Issue Date"
msgstr "" msgstr ""
#. Label of the issued_on (Date) field in DocType 'LMS Badge Assignment' #. Label of the issued_on (Date) field in DocType 'LMS Badge Assignment'
#: frontend/src/pages/CourseCertification.vue:27
#: lms/lms/doctype/lms_badge_assignment/lms_badge_assignment.json #: lms/lms/doctype/lms_badge_assignment/lms_badge_assignment.json
msgid "Issued On" msgid "Issued On"
msgstr "" msgstr ""
@@ -2655,7 +2668,7 @@ msgstr ""
msgid "Join" msgid "Join"
msgstr "" msgstr ""
#: frontend/src/components/UpcomingEvaluations.vue:45 #: frontend/src/components/UpcomingEvaluations.vue:51
msgid "Join Call" msgid "Join Call"
msgstr "" msgstr ""
@@ -2956,7 +2969,7 @@ msgstr ""
#. Group in Course Chapter's connections #. Group in Course Chapter's connections
#. Label of the lessons (Data) field in DocType 'LMS Course' #. Label of the lessons (Data) field in DocType 'LMS Course'
#: frontend/src/components/CourseCard.vue:32 #: frontend/src/components/CourseCard.vue:32
#: frontend/src/components/CourseCardOverlay.vue:97 #: frontend/src/components/CourseCardOverlay.vue:99
#: lms/lms/doctype/course_chapter/course_chapter.json #: lms/lms/doctype/course_chapter/course_chapter.json
#: lms/lms/doctype/lms_course/lms_course.json #: lms/lms/doctype/lms_course/lms_course.json
msgid "Lessons" msgid "Lessons"
@@ -3052,7 +3065,7 @@ msgstr ""
#: frontend/src/components/AssignmentBlock.vue:13 #: frontend/src/components/AssignmentBlock.vue:13
#: frontend/src/components/NoPermission.vue:28 #: frontend/src/components/NoPermission.vue:28
#: frontend/src/components/QuizBlock.vue:9 frontend/src/pages/Batch.vue:188 #: frontend/src/components/QuizBlock.vue:9 frontend/src/pages/Batch.vue:188
#: frontend/src/pages/Lesson.vue:24 #: frontend/src/pages/Lesson.vue:25
msgid "Login" msgid "Login"
msgstr "" msgstr ""
@@ -3087,8 +3100,8 @@ msgstr ""
msgid "Make an Announcement" msgid "Make an Announcement"
msgstr "" msgstr ""
#: frontend/src/pages/Billing.vue:128 #: frontend/src/pages/Billing.vue:123
msgid "Make sure to enter the right billing name as the same will be used in your invoice." msgid "Make sure to enter the correct billing name as the same will be used in your invoice."
msgstr "" msgstr ""
#: frontend/src/components/BatchOverlay.vue:60 #: frontend/src/components/BatchOverlay.vue:60
@@ -3469,11 +3482,11 @@ msgstr ""
msgid "New Sign Up" msgid "New Sign Up"
msgstr "" msgstr ""
#: lms/lms/utils.py:605 #: lms/lms/utils.py:604
msgid "New comment in batch {0}" msgid "New comment in batch {0}"
msgstr "" msgstr ""
#: lms/lms/utils.py:598 #: lms/lms/utils.py:597
msgid "New reply on the topic {0} in course {1}" msgid "New reply on the topic {0} in course {1}"
msgstr "" msgstr ""
@@ -3482,7 +3495,7 @@ msgstr ""
msgid "New {0}" msgid "New {0}"
msgstr "" msgstr ""
#: frontend/src/components/Quiz.vue:213 frontend/src/pages/Lesson.vue:84 #: frontend/src/components/Quiz.vue:213 frontend/src/pages/Lesson.vue:85
msgid "Next" msgid "Next"
msgstr "" msgstr ""
@@ -3579,10 +3592,6 @@ msgstr ""
msgid "No submissions" msgid "No submissions"
msgstr "" msgstr ""
#: frontend/src/components/UpcomingEvaluations.vue:63
msgid "No upcoming evaluations."
msgstr ""
#: lms/templates/course_list.html:13 #: lms/templates/course_list.html:13
msgid "No {0}" msgid "No {0}"
msgstr "" msgstr ""
@@ -3684,7 +3693,7 @@ msgstr ""
msgid "Only files of type {0} will be accepted." msgid "Only files of type {0} will be accepted."
msgstr "" msgstr ""
#: frontend/src/pages/CourseForm.vue:498 frontend/src/utils/index.js:533 #: frontend/src/pages/CourseForm.vue:506 frontend/src/utils/index.js:533
msgid "Only image file is allowed." msgid "Only image file is allowed."
msgstr "" msgstr ""
@@ -3750,10 +3759,6 @@ msgstr ""
msgid "Order ID" msgid "Order ID"
msgstr "" msgstr ""
#: frontend/src/pages/Billing.vue:26
msgid "Ordered Item"
msgstr ""
#: frontend/src/pages/JobDetail.vue:74 #: frontend/src/pages/JobDetail.vue:74
msgid "Organisation" msgid "Organisation"
msgstr "" msgstr ""
@@ -3763,7 +3768,7 @@ msgstr ""
msgid "Organization" msgid "Organization"
msgstr "" msgstr ""
#: frontend/src/pages/Billing.vue:37 #: frontend/src/pages/Billing.vue:32
msgid "Original Amount" msgid "Original Amount"
msgstr "" msgstr ""
@@ -3802,13 +3807,23 @@ msgstr ""
msgid "Paid Batch" msgid "Paid Batch"
msgstr "" msgstr ""
#. Label of the paid_certificate (Check) field in DocType 'LMS Course'
#: frontend/src/pages/CourseForm.vue:217
#: lms/lms/doctype/lms_course/lms_course.json
msgid "Paid Certificate"
msgstr ""
#: frontend/src/components/CourseCardOverlay.vue:133
msgid "Paid Certificate after Evaluation"
msgstr ""
#. Label of the paid_course (Check) field in DocType 'LMS Course' #. Label of the paid_course (Check) field in DocType 'LMS Course'
#: frontend/src/pages/CourseForm.vue:214 #: frontend/src/pages/CourseForm.vue:207
#: lms/lms/doctype/lms_course/lms_course.json #: lms/lms/doctype/lms_course/lms_course.json
msgid "Paid Course" msgid "Paid Course"
msgstr "" msgstr ""
#: frontend/src/pages/Billing.vue:120 #: frontend/src/pages/Billing.vue:115
msgid "Pan Number" msgid "Pan Number"
msgstr "" msgstr ""
@@ -3896,6 +3911,15 @@ msgstr ""
msgid "Payment Settings" msgid "Payment Settings"
msgstr "" msgstr ""
#: frontend/src/pages/Billing.vue:21
msgid "Payment for "
msgstr ""
#. Label of the payment_for_certificate (Check) field in DocType 'LMS Payment'
#: lms/lms/doctype/lms_payment/lms_payment.json
msgid "Payment for Certificate"
msgstr ""
#. Label of the payment_for_document (Dynamic Link) field in DocType 'LMS #. Label of the payment_for_document (Dynamic Link) field in DocType 'LMS
#. Payment' #. Payment'
#: lms/lms/doctype/lms_payment/lms_payment.json #: lms/lms/doctype/lms_payment/lms_payment.json
@@ -3943,11 +3967,11 @@ msgstr ""
msgid "Percentage/Status" msgid "Percentage/Status"
msgstr "" msgstr ""
#: frontend/src/pages/Billing.vue:104 #: frontend/src/pages/Billing.vue:99
msgid "Phone Number" msgid "Phone Number"
msgstr "" msgstr ""
#: frontend/src/components/CourseCardOverlay.vue:148 #: frontend/src/components/CourseCardOverlay.vue:169
msgid "Please Login" msgid "Please Login"
msgstr "" msgstr ""
@@ -3967,11 +3991,11 @@ msgstr ""
msgid "Please click on the following button to set your new password" msgid "Please click on the following button to set your new password"
msgstr "" msgstr ""
#: lms/lms/utils.py:1863 lms/lms/utils.py:1867 #: lms/lms/utils.py:1901 lms/lms/utils.py:1905
msgid "Please complete the previous courses in the program to enroll in this course." msgid "Please complete the previous courses in the program to enroll in this course."
msgstr "" msgstr ""
#: lms/lms/doctype/lms_batch/lms_batch.py:188 #: lms/lms/doctype/lms_batch/lms_batch.py:187
msgid "Please enable Zoom Settings to use this feature." msgid "Please enable Zoom Settings to use this feature."
msgstr "" msgstr ""
@@ -4004,7 +4028,7 @@ msgstr ""
msgid "Please enter your answer" msgid "Please enter your answer"
msgstr "" msgstr ""
#: lms/lms/doctype/lms_batch/lms_batch.py:57 #: lms/lms/doctype/lms_batch/lms_batch.py:56
msgid "Please install the Payments app to create a paid batches." msgid "Please install the Payments app to create a paid batches."
msgstr "" msgstr ""
@@ -4012,7 +4036,7 @@ msgstr ""
msgid "Please install the Payments app to create a paid courses." msgid "Please install the Payments app to create a paid courses."
msgstr "" msgstr ""
#: frontend/src/pages/Billing.vue:256 #: frontend/src/pages/Billing.vue:255
msgid "Please let us know where you heard about us from." msgid "Please let us know where you heard about us from."
msgstr "" msgstr ""
@@ -4037,6 +4061,10 @@ msgstr ""
msgid "Please prepare well and be on time for the evaluations." msgid "Please prepare well and be on time for the evaluations."
msgstr "" msgstr ""
#: frontend/src/components/UpcomingEvaluations.vue:69
msgid "Please schedule an evaluation to get certified."
msgstr ""
#: frontend/src/components/Modals/LiveClassModal.vue:167 #: frontend/src/components/Modals/LiveClassModal.vue:167
msgid "Please select a date." msgid "Please select a date."
msgstr "" msgstr ""
@@ -4110,7 +4138,7 @@ msgstr ""
msgid "Post" msgid "Post"
msgstr "" msgstr ""
#: frontend/src/pages/Billing.vue:100 #: frontend/src/pages/Billing.vue:95
msgid "Postal Code" msgid "Postal Code"
msgstr "" msgstr ""
@@ -4153,19 +4181,22 @@ msgstr ""
msgid "Preview Video" msgid "Preview Video"
msgstr "" msgstr ""
#: frontend/src/pages/Lesson.vue:49 #: frontend/src/pages/Lesson.vue:50
msgid "Previous" msgid "Previous"
msgstr "" msgstr ""
#. Label of the pricing_tab (Tab Break) field in DocType 'LMS Batch' #. Label of the pricing_tab (Tab Break) field in DocType 'LMS Batch'
#. Label of the pricing_tab (Tab Break) field in DocType 'LMS Course'
#: frontend/src/pages/CourseForm.vue:208
#: lms/lms/doctype/lms_batch/lms_batch.json #: lms/lms/doctype/lms_batch/lms_batch.json
#: lms/lms/doctype/lms_course/lms_course.json
#: lms/public/js/common_functions.js:368 #: lms/public/js/common_functions.js:368
msgid "Pricing" msgid "Pricing"
msgstr "" msgstr ""
#. Label of the pricing_tab (Tab Break) field in DocType 'LMS Course'
#: frontend/src/pages/CourseForm.vue:201
#: lms/lms/doctype/lms_course/lms_course.json
msgid "Pricing and Certification"
msgstr ""
#. Label of the exception_country (Table MultiSelect) field in DocType 'LMS #. Label of the exception_country (Table MultiSelect) field in DocType 'LMS
#. Settings' #. Settings'
#: lms/lms/doctype/lms_settings/lms_settings.json #: lms/lms/doctype/lms_settings/lms_settings.json
@@ -4177,7 +4208,7 @@ msgstr ""
msgid "Primary Subgroup" msgid "Primary Subgroup"
msgstr "" msgstr ""
#: lms/lms/utils.py:437 #: lms/lms/utils.py:436
msgid "Privacy Policy" msgid "Privacy Policy"
msgstr "" msgstr ""
@@ -4192,7 +4223,7 @@ msgstr ""
msgid "Private Information includes your Grade and Work Environment Preferences" msgid "Private Information includes your Grade and Work Environment Preferences"
msgstr "" msgstr ""
#: frontend/src/pages/Billing.vue:134 #: frontend/src/pages/Billing.vue:129
msgid "Proceed to Payment" msgid "Proceed to Payment"
msgstr "" msgstr ""
@@ -4272,6 +4303,11 @@ msgstr ""
msgid "Published On" msgid "Published On"
msgstr "" msgstr ""
#. Label of the purchased_certificate (Check) field in DocType 'LMS Enrollment'
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
msgid "Purchased Certificate"
msgstr ""
#. Label of the question (Small Text) field in DocType 'Course Lesson' #. Label of the question (Small Text) field in DocType 'Course Lesson'
#. Label of the question (Text Editor) field in DocType 'LMS Assignment' #. Label of the question (Text Editor) field in DocType 'LMS Assignment'
#. Label of the question (Text Editor) field in DocType 'LMS Assignment #. Label of the question (Text Editor) field in DocType 'LMS Assignment
@@ -4389,7 +4425,7 @@ msgstr ""
#. Label of the rating (Rating) field in DocType 'LMS Certificate Evaluation' #. Label of the rating (Rating) field in DocType 'LMS Certificate Evaluation'
#. Label of the rating (Data) field in DocType 'LMS Course' #. Label of the rating (Data) field in DocType 'LMS Course'
#. Label of the rating (Rating) field in DocType 'LMS Course Review' #. Label of the rating (Rating) field in DocType 'LMS Course Review'
#: frontend/src/components/CourseCardOverlay.vue:113 #: frontend/src/components/CourseCardOverlay.vue:115
#: frontend/src/components/Modals/Event.vue:86 #: frontend/src/components/Modals/Event.vue:86
#: frontend/src/components/Modals/ReviewModal.vue:20 #: frontend/src/components/Modals/ReviewModal.vue:20
#: lms/lms/doctype/lms_certificate_evaluation/lms_certificate_evaluation.json #: lms/lms/doctype/lms_certificate_evaluation/lms_certificate_evaluation.json
@@ -4538,19 +4574,19 @@ msgstr ""
msgid "Route" msgid "Route"
msgstr "" msgstr ""
#: lms/lms/doctype/lms_batch/lms_batch.py:127 #: lms/lms/doctype/lms_batch/lms_batch.py:126
msgid "Row #{0} Date cannot be outside the batch duration." msgid "Row #{0} Date cannot be outside the batch duration."
msgstr "" msgstr ""
#: lms/lms/doctype/lms_batch/lms_batch.py:122 #: lms/lms/doctype/lms_batch/lms_batch.py:121
msgid "Row #{0} End time cannot be outside the batch duration." msgid "Row #{0} End time cannot be outside the batch duration."
msgstr "" msgstr ""
#: lms/lms/doctype/lms_batch/lms_batch.py:104 #: lms/lms/doctype/lms_batch/lms_batch.py:103
msgid "Row #{0} Start time cannot be greater than or equal to end time." msgid "Row #{0} Start time cannot be greater than or equal to end time."
msgstr "" msgstr ""
#: lms/lms/doctype/lms_batch/lms_batch.py:113 #: lms/lms/doctype/lms_batch/lms_batch.py:112
msgid "Row #{0} Start time cannot be outside the batch duration." msgid "Row #{0} Start time cannot be outside the batch duration."
msgstr "" msgstr ""
@@ -4604,7 +4640,7 @@ msgid "Schedule"
msgstr "" msgstr ""
#: frontend/src/components/Modals/EvaluationModal.vue:5 #: frontend/src/components/Modals/EvaluationModal.vue:5
#: frontend/src/components/UpcomingEvaluations.vue:8 #: frontend/src/components/UpcomingEvaluations.vue:14
msgid "Schedule Evaluation" msgid "Schedule Evaluation"
msgstr "" msgstr ""
@@ -4903,8 +4939,8 @@ msgstr ""
msgid "Start Date:" msgid "Start Date:"
msgstr "" msgstr ""
#: frontend/src/components/CourseCardOverlay.vue:63 #: frontend/src/components/CourseCardOverlay.vue:65
#: frontend/src/pages/Lesson.vue:21 frontend/src/pages/SCORMChapter.vue:28 #: frontend/src/pages/Lesson.vue:22 frontend/src/pages/SCORMChapter.vue:28
#: lms/templates/emails/lms_course_interest.html:9 #: lms/templates/emails/lms_course_interest.html:9
msgid "Start Learning" msgid "Start Learning"
msgstr "" msgstr ""
@@ -4943,7 +4979,7 @@ msgstr ""
msgid "Startup Organization" msgid "Startup Organization"
msgstr "" msgstr ""
#: frontend/src/pages/Billing.vue:88 #: frontend/src/pages/Billing.vue:83
msgid "State" msgid "State"
msgstr "" msgstr ""
@@ -5072,7 +5108,7 @@ msgstr ""
#: frontend/src/components/BatchCourses.vue:151 #: frontend/src/components/BatchCourses.vue:151
#: frontend/src/components/BatchOverlay.vue:150 #: frontend/src/components/BatchOverlay.vue:150
#: frontend/src/components/BatchStudents.vue:324 #: frontend/src/components/BatchStudents.vue:324
#: frontend/src/components/CourseCardOverlay.vue:168 #: frontend/src/components/CourseCardOverlay.vue:189
#: frontend/src/components/Modals/AnnouncementModal.vue:99 #: frontend/src/components/Modals/AnnouncementModal.vue:99
#: frontend/src/components/Modals/AssessmentModal.vue:73 #: frontend/src/components/Modals/AssessmentModal.vue:73
#: frontend/src/components/Modals/BulkCertificates.vue:121 #: frontend/src/components/Modals/BulkCertificates.vue:121
@@ -5083,7 +5119,7 @@ msgstr ""
#: frontend/src/components/Modals/Question.vue:264 #: frontend/src/components/Modals/Question.vue:264
#: frontend/src/components/Modals/Question.vue:315 #: frontend/src/components/Modals/Question.vue:315
#: frontend/src/pages/AssignmentForm.vue:155 #: frontend/src/pages/AssignmentForm.vue:155
#: frontend/src/pages/CourseForm.vue:461 frontend/src/pages/ProgramForm.vue:229 #: frontend/src/pages/CourseForm.vue:469 frontend/src/pages/ProgramForm.vue:229
#: frontend/src/pages/ProgramForm.vue:251 #: frontend/src/pages/ProgramForm.vue:251
#: frontend/src/pages/ProgramForm.vue:272 #: frontend/src/pages/ProgramForm.vue:272
#: frontend/src/pages/ProgramForm.vue:298 frontend/src/pages/QuizForm.vue:339 #: frontend/src/pages/ProgramForm.vue:298 frontend/src/pages/QuizForm.vue:339
@@ -5105,7 +5141,7 @@ msgstr ""
msgid "Sunday" msgid "Sunday"
msgstr "" msgstr ""
#: lms/lms/api.py:999 #: lms/lms/api.py:1012
msgid "Suspicious pattern found in {0}: {1}" msgid "Suspicious pattern found in {0}: {1}"
msgstr "" msgstr ""
@@ -5190,7 +5226,7 @@ msgstr ""
msgid "Temporarily Disabled" msgid "Temporarily Disabled"
msgstr "" msgstr ""
#: lms/lms/utils.py:436 #: lms/lms/utils.py:435
msgid "Terms of Use" msgid "Terms of Use"
msgstr "" msgstr ""
@@ -5226,7 +5262,7 @@ msgstr ""
msgid "Thanks and Regards" msgid "Thanks and Regards"
msgstr "" msgstr ""
#: lms/lms/utils.py:1772 #: lms/lms/utils.py:1801
msgid "The batch is full. Please contact the Administrator." msgid "The batch is full. Please contact the Administrator."
msgstr "" msgstr ""
@@ -5274,7 +5310,7 @@ msgstr ""
msgid "There are no programs available at the moment. Keep an eye out, fresh learning experiences are on the way soon!" msgid "There are no programs available at the moment. Keep an eye out, fresh learning experiences are on the way soon!"
msgstr "" msgstr ""
#: lms/lms/doctype/lms_batch/lms_batch.py:95 #: lms/lms/doctype/lms_batch/lms_batch.py:94
msgid "There are no seats available in this batch." msgid "There are no seats available in this batch."
msgstr "" msgstr ""
@@ -5317,11 +5353,11 @@ msgstr ""
msgid "This class has ended" msgid "This class has ended"
msgstr "" msgstr ""
#: frontend/src/components/CourseCardOverlay.vue:92 #: frontend/src/components/CourseCardOverlay.vue:94
msgid "This course has:" msgid "This course has:"
msgstr "" msgstr ""
#: lms/lms/utils.py:1620 #: lms/lms/utils.py:1644
msgid "This course is free." msgid "This course is free."
msgstr "" msgstr ""
@@ -5329,11 +5365,7 @@ msgstr ""
msgid "This is a chapter in the course {0}" msgid "This is a chapter in the course {0}"
msgstr "" msgstr ""
#: lms/lms/widgets/CourseOutline.html:62 #: frontend/src/pages/Lesson.vue:16
msgid "This lesson is not available for preview. As you are the Instructor of the course only you can see it."
msgstr ""
#: frontend/src/pages/Lesson.vue:15
msgid "This lesson is not available for preview. Please enroll in the course to access it." msgid "This lesson is not available for preview. Please enroll in the course to access it."
msgstr "" msgstr ""
@@ -5467,7 +5499,7 @@ msgstr ""
msgid "To Date" msgid "To Date"
msgstr "" msgstr ""
#: lms/lms/utils.py:1631 #: lms/lms/utils.py:1655
msgid "To join this batch, please contact the Administrator." msgid "To join this batch, please contact the Administrator."
msgstr "" msgstr ""
@@ -5479,7 +5511,7 @@ msgstr ""
msgid "Too many users signed up recently, so the registration is disabled. Please try back in an hour" msgid "Too many users signed up recently, so the registration is disabled. Please try back in an hour"
msgstr "" msgstr ""
#: frontend/src/pages/Billing.vue:58 #: frontend/src/pages/Billing.vue:53
msgid "Total" msgid "Total"
msgstr "" msgstr ""
@@ -5776,7 +5808,7 @@ msgstr ""
msgid "When a course gets submitted for review, it will be listed here." msgid "When a course gets submitted for review, it will be listed here."
msgstr "" msgstr ""
#: frontend/src/pages/Billing.vue:111 #: frontend/src/pages/Billing.vue:106
msgid "Where did you hear about us?" msgid "Where did you hear about us?"
msgstr "" msgstr ""
@@ -5825,6 +5857,10 @@ msgstr ""
msgid "You already have an evaluation on {0} at {1} for the course {2}." msgid "You already have an evaluation on {0} at {1} for the course {2}."
msgstr "" msgstr ""
#: frontend/src/pages/CourseCertification.vue:14
msgid "You are already certified for this course. Click on the card below to open your certificate."
msgstr ""
#: lms/lms/api.py:224 #: lms/lms/api.py:224
msgid "You are already enrolled for this batch." msgid "You are already enrolled for this batch."
msgstr "" msgstr ""
@@ -5907,6 +5943,10 @@ msgstr ""
msgid "You have already exceeded the maximum number of attempts allowed for this quiz." msgid "You have already exceeded the maximum number of attempts allowed for this quiz."
msgstr "" msgstr ""
#: lms/lms/api.py:237
msgid "You have already purchased the certificate for this course."
msgstr ""
#: lms/lms/doctype/lms_course_review/lms_course_review.py:17 #: lms/lms/doctype/lms_course_review/lms_course_review.py:17
msgid "You have already reviewed this course" msgid "You have already reviewed this course"
msgstr "" msgstr ""
@@ -5915,7 +5955,7 @@ msgstr ""
msgid "You have been enrolled in this batch" msgid "You have been enrolled in this batch"
msgstr "" msgstr ""
#: frontend/src/components/CourseCardOverlay.vue:169 #: frontend/src/components/CourseCardOverlay.vue:190
msgid "You have been enrolled in this course" msgid "You have been enrolled in this course"
msgstr "" msgstr ""
@@ -5939,7 +5979,7 @@ msgstr ""
msgid "You have opted to be notified for this course. You will receive an email when the course becomes available." msgid "You have opted to be notified for this course. You will receive an email when the course becomes available."
msgstr "" msgstr ""
#: frontend/src/components/CourseCardOverlay.vue:149 #: frontend/src/components/CourseCardOverlay.vue:170
msgid "You need to login first to enroll for this course" msgid "You need to login first to enroll for this course"
msgstr "" msgstr ""
@@ -6025,7 +6065,7 @@ msgstr ""
msgid "cancel your application" msgid "cancel your application"
msgstr "" msgstr ""
#: frontend/src/pages/Lesson.vue:177 #: frontend/src/pages/Lesson.vue:178
msgid "completed" msgid "completed"
msgstr "" msgstr ""
@@ -6085,7 +6125,7 @@ msgstr ""
msgid "you can" msgid "you can"
msgstr "" msgstr ""
#: lms/lms/api.py:789 lms/lms/api.py:797 #: lms/lms/api.py:802 lms/lms/api.py:810
msgid "{0} Settings not found" msgid "{0} Settings not found"
msgstr "" msgstr ""
@@ -6125,7 +6165,7 @@ msgstr ""
msgid "{0} is your evaluator" msgid "{0} is your evaluator"
msgstr "" msgstr ""
#: lms/lms/utils.py:682 #: lms/lms/utils.py:681
msgid "{0} mentioned you in a comment" msgid "{0} mentioned you in a comment"
msgstr "" msgstr ""
@@ -6133,11 +6173,11 @@ msgstr ""
msgid "{0} mentioned you in a comment in your batch." msgid "{0} mentioned you in a comment in your batch."
msgstr "" msgstr ""
#: lms/lms/utils.py:635 lms/lms/utils.py:641 #: lms/lms/utils.py:634 lms/lms/utils.py:640
msgid "{0} mentioned you in a comment in {1}" msgid "{0} mentioned you in a comment in {1}"
msgstr "" msgstr ""
#: lms/lms/utils.py:458 #: lms/lms/utils.py:457
msgid "{0}k" msgid "{0}k"
msgstr "" msgstr ""

3071
yarn.lock

File diff suppressed because it is too large Load Diff