diff --git a/frontend/src/components/AppSidebar.vue b/frontend/src/components/AppSidebar.vue
index f1421537..30a57b92 100644
--- a/frontend/src/components/AppSidebar.vue
+++ b/frontend/src/components/AppSidebar.vue
@@ -157,7 +157,7 @@
v-model="showHelpModal"
v-model:articles="articles"
appName="learning"
- title="Frappe Learning"
+ :title="__('Frappe Learning')"
:logo="LMSLogo"
:afterSkip="(step) => capture('onboarding_step_skipped_' + step)"
:afterSkipAll="() => capture('onboarding_steps_skipped')"
@@ -303,7 +303,7 @@ const unreadNotifications = createResource({
const addNotifications = () => {
if (user) {
sidebarLinks.value.push({
- label: 'Notifications',
+ label: __('Notifications'),
icon: 'Bell',
to: 'Notifications',
activeFor: ['Notifications'],
@@ -315,7 +315,7 @@ const addNotifications = () => {
const addQuizzes = () => {
if (isInstructor.value || isModerator.value) {
sidebarLinks.value.splice(4, 0, {
- label: 'Quizzes',
+ label: __('Quizzes'),
icon: 'CircleHelp',
to: 'Quizzes',
activeFor: [
@@ -331,7 +331,7 @@ const addQuizzes = () => {
const addAssignments = () => {
if (isInstructor.value || isModerator.value) {
sidebarLinks.value.splice(5, 0, {
- label: 'Assignments',
+ label: __('Assignments'),
icon: 'Pencil',
to: 'Assignments',
activeFor: [
@@ -347,7 +347,7 @@ const addAssignments = () => {
const addProgrammingExercises = () => {
if (isInstructor.value || isModerator.value) {
sidebarLinks.value.splice(3, 0, {
- label: 'Programming Exercises',
+ label: __('Programming Exercises'),
icon: 'Code',
to: 'ProgrammingExercises',
activeFor: [
@@ -383,7 +383,7 @@ const addPrograms = () => {
if (canAddProgram) {
sidebarLinks.value.splice(index, 0, {
- label: 'Programs',
+ label: __('Programs'),
icon: 'Route',
to: 'Programs',
activeFor: activeFor,
diff --git a/frontend/src/components/Discussions.vue b/frontend/src/components/Discussions.vue
index e635de33..2f58094e 100644
--- a/frontend/src/components/Discussions.vue
+++ b/frontend/src/components/Discussions.vue
@@ -102,7 +102,7 @@ const props = defineProps({
},
emptyStateText: {
type: String,
- default: 'Start a discussion',
+ default: __('Start a discussion'),
},
singleThread: {
type: Boolean,
diff --git a/frontend/src/components/EmptyState.vue b/frontend/src/components/EmptyState.vue
index 626ce846..b7627f92 100644
--- a/frontend/src/components/EmptyState.vue
+++ b/frontend/src/components/EmptyState.vue
@@ -2,6 +2,7 @@
+
{{ __('No {0}').format(props.type) }}
+
+
+
+
+
+ {{ __('Getting started') }}
+
+
+ {{ __('{0}/{1} steps').format(stepsCompleted, totalSteps) }}
+
+
+
+
+
+
+
+
+ {{ __('You are all set') }}
+
+
+
{ showHelpCenter = true; isOnboardingStepsCompleted = true }"
+ />
+
+
+ {{ __('All steps are completed successfully') }}
+
+
+
+
+
+
+
+
diff --git a/frontend/src/overrides/Onboarding/OnboardingSteps.vue b/frontend/src/overrides/Onboarding/OnboardingSteps.vue
new file mode 100644
index 00000000..dd489855
--- /dev/null
+++ b/frontend/src/overrides/Onboarding/OnboardingSteps.vue
@@ -0,0 +1,112 @@
+
+
+
+
+ {{ __('Welcome to {0}').format(title) }}
+
+
+ {{ __('{0}/{1} steps completed').format(stepsCompleted, totalSteps) }}
+
+
+
+
+
+
+
+
+
+
!step.completed && !isDependent(step) && step.onClick()"
+ >
+
+
+
+
+ {{ step.title }}
+
+
+
+
skip(step.name, afterSkip)"
+ />
+ reset(step.name, afterReset)"
+ />
+
+
+
+
+
+
diff --git a/frontend/src/pages/Assignments.vue b/frontend/src/pages/Assignments.vue
index 73bd1564..451abf22 100644
--- a/frontend/src/pages/Assignments.vue
+++ b/frontend/src/pages/Assignments.vue
@@ -57,7 +57,7 @@
}"
>
-
+
{
const breadcrumbs = computed(() => [
{
- label: 'Assignments',
+ label: __('Assignments'),
route: { name: 'Assignments' },
},
])
diff --git a/frontend/src/pages/Batches.vue b/frontend/src/pages/Batches.vue
index eaf84225..7bc3fad2 100644
--- a/frontend/src/pages/Batches.vue
+++ b/frontend/src/pages/Batches.vue
@@ -70,7 +70,7 @@
-
+
-
+
diff --git a/frontend/src/pages/Lesson.vue b/frontend/src/pages/Lesson.vue
index bd0fb251..64ee48b0 100644
--- a/frontend/src/pages/Lesson.vue
+++ b/frontend/src/pages/Lesson.vue
@@ -214,7 +214,7 @@
{
const breadcrumbs = computed(() => {
let crumbs = [
{
- label: 'Notifications',
+ label: __('Notifications'),
route: {
name: 'Notifications',
},
@@ -155,7 +155,7 @@ const breadcrumbs = computed(() => {
usePageMeta(() => {
return {
- title: 'Notifications',
+ title: __('Notifications'),
icon: brand.favicon,
}
})
diff --git a/frontend/src/pages/ProgramForm.vue b/frontend/src/pages/ProgramForm.vue
index 88af175a..751170d6 100644
--- a/frontend/src/pages/ProgramForm.vue
+++ b/frontend/src/pages/ProgramForm.vue
@@ -323,12 +323,12 @@ const saveProgram = () => {
const courseColumns = computed(() => {
return [
{
- label: 'Title',
+ label: __('Title'),
key: 'course_title',
width: 3,
},
{
- label: 'ID',
+ label: __('ID'),
key: 'course',
width: 3,
},
@@ -338,19 +338,19 @@ const courseColumns = computed(() => {
const memberColumns = computed(() => {
return [
{
- label: 'Member',
+ label: __('Member'),
key: 'member',
width: 3,
align: 'left',
},
{
- label: 'Full Name',
+ label: __('Full Name'),
key: 'full_name',
width: 3,
align: 'left',
},
{
- label: 'Progress (%)',
+ label: __('Progress (%)'),
key: 'progress',
width: 3,
align: 'right',
@@ -361,11 +361,11 @@ const memberColumns = computed(() => {
const breadbrumbs = computed(() => {
return [
{
- label: 'Programs',
+ label: __('Programs'),
route: { name: 'Programs' },
},
{
- label: props.programName === 'new' ? 'New Program' : props.programName,
+ label: props.programName === 'new' ? __('New Program') : props.programName,
},
]
})
diff --git a/frontend/src/pages/Programs.vue b/frontend/src/pages/Programs.vue
index 15cd828a..da7d31e2 100644
--- a/frontend/src/pages/Programs.vue
+++ b/frontend/src/pages/Programs.vue
@@ -82,7 +82,7 @@
-
+