diff --git a/kolibri/plugins/coach/assets/src/views/lessons/LessonEditDetailsPage/EditDetailsResourceListTable.vue b/kolibri/plugins/coach/assets/src/views/lessons/LessonEditDetailsPage/EditDetailsResourceListTable.vue index 99d9783577..5620876126 100644 --- a/kolibri/plugins/coach/assets/src/views/lessons/LessonEditDetailsPage/EditDetailsResourceListTable.vue +++ b/kolibri/plugins/coach/assets/src/views/lessons/LessonEditDetailsPage/EditDetailsResourceListTable.vue @@ -29,8 +29,8 @@ >
+ +
+

{{ coreString('lessonsLabel') }} : {{ lessonObject.title }}

+ +

{{ $tr('sizeLabel') }} : {{ bytesForHumans(lessonObject.size) }}

+ +
+ + +
+
+ +
+
+ + + +
+
+ + + + +

4MB

+
+
+
+
+ + + + + + + + + + +
+
+ +
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/kolibri/plugins/coach/assets/src/views/quizzes/CreateExamPage/CreateQuizSection.vue b/kolibri/plugins/coach/assets/src/views/quizzes/CreateExamPage/CreateQuizSection.vue index b1506b63ac..4ded9128e9 100644 --- a/kolibri/plugins/coach/assets/src/views/quizzes/CreateExamPage/CreateQuizSection.vue +++ b/kolibri/plugins/coach/assets/src/views/quizzes/CreateExamPage/CreateQuizSection.vue @@ -245,8 +245,8 @@
{ - if(isWrappedString(value)){ - return true; - }else{ - throw new Error('moveUpText must be a function that returns a wrapped string'); - } - } + validator:isWrappedString }, moveDownText: { type: Function, required: true, - validator: (value)=>{ - if(isWrappedString(value)){ - return true; - }else{ - throw new Error('moveDownText must be a function that returns a wrapped string'); - } - } + validator:isWrappedString }, isFirst: { type: Boolean, @@ -87,6 +75,14 @@ hasFocus: false, }; }, + computed: { + upLabel() { + return this.moveUpText(); + }, + downLabel() { + return this.moveDownText(); + }, + }, mounted() { window.addEventListener('focus', this.updateFocus, true); }, diff --git a/packages/kolibri-common/strings/searchAndFilterStrings.js b/packages/kolibri-common/strings/searchAndFilterStrings.js index c95cb96cf4..61efeadb55 100644 --- a/packages/kolibri-common/strings/searchAndFilterStrings.js +++ b/packages/kolibri-common/strings/searchAndFilterStrings.js @@ -7,4 +7,32 @@ export const searchAndFilterStrings = createTranslator('SearchAndFilterStrings', context: 'Label for a section of the page that contains options for searching and filtering content', }, + moveChannelUpLabel: { + message: 'Move {name} up one', + context: 'Label to rearrange channel order. Not seen on UI.', + }, + moveChanneldownLabel: { + message: 'Move {name} down one', + context: 'Label to rearrange channel order. Not seen on UI.', + }, + + upLabel: { + message: 'Up', + context: 'Label to move an item up in a list', + }, + + downLabel: { + message: 'Down', + context: 'Label to move an item down in a list', + }, + + moveResourceUpButtonDescription: { + message: 'Move this resource one position up in this lesson', + context: 'Refers to changing the order of resources in a lesson.', + }, + + moveResourceDownButtonDescription: { + message: 'Move this resource one position down in this lesson', + context: 'Refers to changing the order of resources in a lesson.', + }, }); diff --git a/packages/kolibri/utils/i18n.js b/packages/kolibri/utils/i18n.js index 769cb5f368..f35a92eea1 100644 --- a/packages/kolibri/utils/i18n.js +++ b/packages/kolibri/utils/i18n.js @@ -157,7 +157,7 @@ class Translator { this._defaultMessages = defaultMessages; for (const key in defaultMessages) { this[`${key}$`] = this.$tr.bind(this, key); - this[`${key}$`].KOLIBRI_I18N_WRAPPED_STRING = true; + Object.defineProperty(this[`${key}$`], 'KOLIBRI_I18N_WRAPPED_STRING', { value: true, writeable: false }); } } $tr(messageId, args) {