Compare commits
1 Commits
open-relea
...
aansari/he
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1fbc755957 |
5
.env
5
.env
@@ -20,5 +20,6 @@ SEGMENT_KEY=''
|
|||||||
SITE_NAME=''
|
SITE_NAME=''
|
||||||
USER_INFO_COOKIE_NAME=''
|
USER_INFO_COOKIE_NAME=''
|
||||||
SUPPORT_URL=''
|
SUPPORT_URL=''
|
||||||
LEARNER_FEEDBACK_URL=''
|
TA_FEEDBACK_FORM= ''
|
||||||
STAFF_FEEDBACK_URL=''
|
STAFF_FEEDBACK_FORM= ''
|
||||||
|
DISPLAY_FEEDBACK_BANNER='false'
|
||||||
|
|||||||
@@ -21,5 +21,6 @@ SEGMENT_KEY=''
|
|||||||
SITE_NAME=localhost
|
SITE_NAME=localhost
|
||||||
USER_INFO_COOKIE_NAME='edx-user-info'
|
USER_INFO_COOKIE_NAME='edx-user-info'
|
||||||
SUPPORT_URL='https://support.edx.org'
|
SUPPORT_URL='https://support.edx.org'
|
||||||
LEARNER_FEEDBACK_URL=''
|
TA_FEEDBACK_FORM='https://learner-form.test'
|
||||||
STAFF_FEEDBACK_URL=''
|
STAFF_FEEDBACK_FORM='https://staff-form.test'
|
||||||
|
DISPLAY_FEEDBACK_BANNER='false'
|
||||||
|
|||||||
@@ -19,5 +19,6 @@ SEGMENT_KEY=''
|
|||||||
SITE_NAME='localhost'
|
SITE_NAME='localhost'
|
||||||
USER_INFO_COOKIE_NAME='edx-user-info'
|
USER_INFO_COOKIE_NAME='edx-user-info'
|
||||||
SUPPORT_URL='https://support.edx.org'
|
SUPPORT_URL='https://support.edx.org'
|
||||||
LEARNER_FEEDBACK_URL=''
|
TA_FEEDBACK_FORM='https://learner-form.test'
|
||||||
STAFF_FEEDBACK_URL=''
|
STAFF_FEEDBACK_FORM='https://staff-form.test'
|
||||||
|
DISPLAY_FEEDBACK_BANNER='false'
|
||||||
|
|||||||
2
.jest/setEnvVars.js
Normal file
2
.jest/setEnvVars.js
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
process.env.TA_FEEDBACK_FORM= 'https://learner-form.test';
|
||||||
|
process.env.STAFF_FEEDBACK_FORM= 'https://staff-form.test';
|
||||||
@@ -3,7 +3,7 @@ const { createConfig } = require('@edx/frontend-build');
|
|||||||
module.exports = createConfig('jest', {
|
module.exports = createConfig('jest', {
|
||||||
// setupFilesAfterEnv is used after the jest environment has been loaded. In general this is what you want.
|
// setupFilesAfterEnv is used after the jest environment has been loaded. In general this is what you want.
|
||||||
// If you want to add config BEFORE jest loads, use setupFiles instead.
|
// If you want to add config BEFORE jest loads, use setupFiles instead.
|
||||||
setupFiles: ['<rootDir>/.env.test'],
|
setupFiles: ['<rootDir>/.jest/setEnvVars.js'],
|
||||||
setupFilesAfterEnv: [
|
setupFilesAfterEnv: [
|
||||||
'<rootDir>/src/setupTest.js',
|
'<rootDir>/src/setupTest.js',
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
@import "~@edx/brand/paragon/fonts.scss";
|
@import "@edx/brand/paragon/fonts.scss";
|
||||||
@import "~@edx/brand/paragon/variables.scss";
|
@import "@edx/brand/paragon/variables.scss";
|
||||||
@import "~@edx/paragon/scss/core/core.scss";
|
@import "@edx/paragon/scss/core/core.scss";
|
||||||
@import "~@edx/brand/paragon/overrides.scss";
|
@import "@edx/brand/paragon/overrides.scss";
|
||||||
|
|
||||||
$fa-font-path: "~font-awesome/fonts";
|
$fa-font-path: "~font-awesome/fonts";
|
||||||
@import "~font-awesome/scss/font-awesome";
|
@import "~font-awesome/scss/font-awesome";
|
||||||
|
|
||||||
.course-tabs-navigation {
|
.course-tabs-navigation {
|
||||||
border-bottom: solid 1px #eaeaea;
|
border-bottom: solid 1px #eaeaea;
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import React, { useCallback, useEffect, useState } from 'react';
|
import React, { useCallback, useState } from 'react';
|
||||||
|
|
||||||
import { Editor } from '@tinymce/tinymce-react';
|
import { Editor } from '@tinymce/tinymce-react';
|
||||||
import { useLocation, useParams } from 'react-router';
|
import { useParams } from 'react-router';
|
||||||
// TinyMCE so the global var exists
|
// TinyMCE so the global var exists
|
||||||
// eslint-disable-next-line no-unused-vars,import/no-extraneous-dependencies
|
// eslint-disable-next-line no-unused-vars,import/no-extraneous-dependencies
|
||||||
import tinymce from 'tinymce/tinymce';
|
import tinymce from 'tinymce/tinymce';
|
||||||
@@ -45,11 +45,10 @@ import contentUiCss from '!!raw-loader!tinymce/skins/ui/oxide/content.min.css';
|
|||||||
const TinyMCEEditor = (props) => {
|
const TinyMCEEditor = (props) => {
|
||||||
// note that skin and content_css is disabled to avoid the normal
|
// note that skin and content_css is disabled to avoid the normal
|
||||||
// loading process and is instead loaded as a string via content_style
|
// loading process and is instead loaded as a string via content_style
|
||||||
const locationObj = useLocation();
|
|
||||||
const { courseId, postId } = useParams();
|
const { courseId, postId } = useParams();
|
||||||
const [showImageWarning, setShowImageWarning] = useState(false);
|
const [showImageWarning, setShowImageWarning] = useState(false);
|
||||||
const intl = useIntl();
|
const intl = useIntl();
|
||||||
const enableInContextSidebar = Boolean(new URLSearchParams(locationObj.search).get('inContextSidebar') !== null);
|
|
||||||
|
|
||||||
/* istanbul ignore next */
|
/* istanbul ignore next */
|
||||||
const setup = useCallback((editor) => {
|
const setup = useCallback((editor) => {
|
||||||
@@ -100,29 +99,6 @@ const TinyMCEEditor = (props) => {
|
|||||||
contentStyle = '';
|
contentStyle = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
// eslint-disable-next-line consistent-return
|
|
||||||
useEffect(() => {
|
|
||||||
if (enableInContextSidebar) {
|
|
||||||
const checkToxDialogVisibility = () => {
|
|
||||||
const toxDialog = document.querySelector('.tox-dialog');
|
|
||||||
if (toxDialog) {
|
|
||||||
toxDialog.style.alignSelf = 'start';
|
|
||||||
toxDialog.style.marginTop = '50px';
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
const observer = new MutationObserver(checkToxDialogVisibility);
|
|
||||||
|
|
||||||
// Observe changes to the entire document
|
|
||||||
observer.observe(document, { childList: true, subtree: true });
|
|
||||||
|
|
||||||
// Clean up the observer when the component unmounts
|
|
||||||
return () => {
|
|
||||||
observer.disconnect();
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}, [enableInContextSidebar]);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Editor
|
<Editor
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
import { getConfig } from '@edx/frontend-platform';
|
import { getConfig } from '@edx/frontend-platform';
|
||||||
|
|
||||||
export const getApiBaseUrl = () => getConfig().LMS_BASE_URL;
|
export const getApiBaseUrl = () => getConfig().LMS_BASE_URL;
|
||||||
export const getFullUrl = (path) => (
|
|
||||||
new URL(`${getConfig().PUBLIC_PATH.replace(/\/$/, '')}/${path}`, window.location.origin).href
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Enum for thread types.
|
* Enum for thread types.
|
||||||
@@ -140,7 +137,7 @@ export const DiscussionProvider = {
|
|||||||
OPEN_EDX: 'openedx',
|
OPEN_EDX: 'openedx',
|
||||||
};
|
};
|
||||||
|
|
||||||
const BASE_PATH = '/:courseId';
|
const BASE_PATH = `${getConfig().PUBLIC_PATH}:courseId`;
|
||||||
|
|
||||||
export const Routes = {
|
export const Routes = {
|
||||||
DISCUSSIONS: {
|
DISCUSSIONS: {
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ const AuthorLabel = ({
|
|||||||
}) => {
|
}) => {
|
||||||
timeago.register('time-locale', timeLocale);
|
timeago.register('time-locale', timeLocale);
|
||||||
const intl = useIntl();
|
const intl = useIntl();
|
||||||
const { courseId, enableInContextSidebar } = useContext(DiscussionContext);
|
const { courseId } = useContext(DiscussionContext);
|
||||||
let icon = null;
|
let icon = null;
|
||||||
let authorLabelMessage = null;
|
let authorLabelMessage = null;
|
||||||
|
|
||||||
@@ -47,11 +47,11 @@ const AuthorLabel = ({
|
|||||||
const className = classNames('d-flex align-items-center', { 'mb-0.5': !postOrComment }, labelColor);
|
const className = classNames('d-flex align-items-center', { 'mb-0.5': !postOrComment }, labelColor);
|
||||||
|
|
||||||
const showUserNameAsLink = useShowLearnersTab()
|
const showUserNameAsLink = useShowLearnersTab()
|
||||||
&& linkToProfile && author && author !== intl.formatMessage(messages.anonymous) && !enableInContextSidebar;
|
&& linkToProfile && author && author !== intl.formatMessage(messages.anonymous);
|
||||||
|
|
||||||
const authorName = useMemo(() => (
|
const authorName = useMemo(() => (
|
||||||
<span
|
<span
|
||||||
className={classNames('mr-1.5 font-size-14 font-style font-weight-500 author-name', {
|
className={classNames('mr-1.5 font-size-14 font-style font-weight-500', {
|
||||||
'text-gray-700': isRetiredUser,
|
'text-gray-700': isRetiredUser,
|
||||||
'text-primary-500': !authorLabelMessage && !isRetiredUser,
|
'text-primary-500': !authorLabelMessage && !isRetiredUser,
|
||||||
})}
|
})}
|
||||||
@@ -100,7 +100,7 @@ const AuthorLabel = ({
|
|||||||
{postCreatedAt && (
|
{postCreatedAt && (
|
||||||
<span
|
<span
|
||||||
title={postCreatedAt}
|
title={postCreatedAt}
|
||||||
className={classNames('align-content-center', {
|
className={classNames('font-family-inter align-content-center', {
|
||||||
'text-white': alert,
|
'text-white': alert,
|
||||||
'text-gray-500': !alert,
|
'text-gray-500': !alert,
|
||||||
})}
|
})}
|
||||||
@@ -114,7 +114,7 @@ const AuthorLabel = ({
|
|||||||
|
|
||||||
return showUserNameAsLink
|
return showUserNameAsLink
|
||||||
? (
|
? (
|
||||||
<div className={`${className} flex-wrap`}>
|
<div className={className}>
|
||||||
<Link
|
<Link
|
||||||
data-testid="learner-posts-link"
|
data-testid="learner-posts-link"
|
||||||
id="learner-posts-link"
|
id="learner-posts-link"
|
||||||
@@ -127,7 +127,7 @@ const AuthorLabel = ({
|
|||||||
{labelContents}
|
{labelContents}
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
: <div className={`${className} flex-wrap`}>{authorName}{labelContents}</div>;
|
: <div className={className}>{authorName}{labelContents}</div>;
|
||||||
};
|
};
|
||||||
|
|
||||||
AuthorLabel.propTypes = {
|
AuthorLabel.propTypes = {
|
||||||
|
|||||||
@@ -21,11 +21,11 @@ let store;
|
|||||||
let axiosMock;
|
let axiosMock;
|
||||||
let container;
|
let container;
|
||||||
|
|
||||||
function renderComponent(author, authorLabel, linkToProfile, labelColor, enableInContextSidebar) {
|
function renderComponent(author, authorLabel, linkToProfile, labelColor) {
|
||||||
const wrapper = render(
|
const wrapper = render(
|
||||||
<IntlProvider locale="en">
|
<IntlProvider locale="en">
|
||||||
<AppProvider store={store}>
|
<AppProvider store={store}>
|
||||||
<DiscussionContext.Provider value={{ courseId, enableInContextSidebar }}>
|
<DiscussionContext.Provider value={{ courseId }}>
|
||||||
<AuthorLabel
|
<AuthorLabel
|
||||||
author={author}
|
author={author}
|
||||||
authorLabel={authorLabel}
|
authorLabel={authorLabel}
|
||||||
@@ -79,9 +79,9 @@ describe('Author label', () => {
|
|||||||
);
|
);
|
||||||
|
|
||||||
it(
|
it(
|
||||||
`it is "${(!linkToProfile) && 'not'}" clickable when linkToProfile is ${!!linkToProfile} and enableInContextSidebar is false`,
|
`it is "${!linkToProfile && 'not'}" clickable when linkToProfile is ${!!linkToProfile}`,
|
||||||
async () => {
|
async () => {
|
||||||
renderComponent(author, authorLabel, linkToProfile, labelColor, false);
|
renderComponent(author, authorLabel, linkToProfile, labelColor);
|
||||||
|
|
||||||
if (linkToProfile) {
|
if (linkToProfile) {
|
||||||
expect(screen.queryByTestId('learner-posts-link')).toBeInTheDocument();
|
expect(screen.queryByTestId('learner-posts-link')).toBeInTheDocument();
|
||||||
@@ -91,15 +91,6 @@ describe('Author label', () => {
|
|||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
it(
|
|
||||||
'it is not clickable when enableInContextSidebar is true',
|
|
||||||
async () => {
|
|
||||||
renderComponent(author, authorLabel, linkToProfile, labelColor, true);
|
|
||||||
|
|
||||||
expect(screen.queryByTestId('learner-posts-link')).not.toBeInTheDocument();
|
|
||||||
},
|
|
||||||
);
|
|
||||||
|
|
||||||
it(
|
it(
|
||||||
`it has "${!linkToProfile && 'not'}" label text and label color when linkToProfile is ${!!linkToProfile}`,
|
`it has "${!linkToProfile && 'not'}" label text and label color when linkToProfile is ${!!linkToProfile}`,
|
||||||
async () => {
|
async () => {
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ const EndorsedAlertBanner = ({
|
|||||||
height: '20px',
|
height: '20px',
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
<strong className="ml-2">
|
<strong className="ml-2 font-family-inter">
|
||||||
{intl.formatMessage(isQuestion ? messages.answer : messages.endorsed)}
|
{intl.formatMessage(isQuestion ? messages.answer : messages.endorsed)}
|
||||||
</strong>
|
</strong>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -223,7 +223,7 @@ export const useTourConfiguration = () => {
|
|||||||
), []);
|
), []);
|
||||||
|
|
||||||
const toursConfig = useMemo(() => (
|
const toursConfig = useMemo(() => (
|
||||||
tours?.map((tour) => Object.keys(tourCheckpoints(intl)).includes(tour.tourName) && (
|
tours?.map((tour) => (
|
||||||
{
|
{
|
||||||
tourId: tour.tourName,
|
tourId: tour.tourName,
|
||||||
advanceButtonText: intl.formatMessage(messages.advanceButtonText),
|
advanceButtonText: intl.formatMessage(messages.advanceButtonText),
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ const DiscussionSidebar = ({ displaySidebar, postActionBarRef }) => {
|
|||||||
'd-none': !displaySidebar,
|
'd-none': !displaySidebar,
|
||||||
'd-flex overflow-auto box-shadow-centered-1': displaySidebar,
|
'd-flex overflow-auto box-shadow-centered-1': displaySidebar,
|
||||||
'w-100': !isOnDesktop,
|
'w-100': !isOnDesktop,
|
||||||
'w-25 sidebar-desktop-width': isOnDesktop && !isOnXLDesktop,
|
'sidebar-desktop-width': isOnDesktop && !isOnXLDesktop,
|
||||||
'w-25 sidebar-XL-width': isOnXLDesktop,
|
'w-25 sidebar-XL-width': isOnXLDesktop,
|
||||||
'min-content-height': !enableInContextSidebar,
|
'min-content-height': !enableInContextSidebar,
|
||||||
})}
|
})}
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import {
|
|||||||
} from 'react-router';
|
} from 'react-router';
|
||||||
|
|
||||||
import { LearningHeader as Header } from '@edx/frontend-component-header';
|
import { LearningHeader as Header } from '@edx/frontend-component-header';
|
||||||
|
import { getConfig } from '@edx/frontend-platform';
|
||||||
|
|
||||||
import { Spinner } from '../../components';
|
import { Spinner } from '../../components';
|
||||||
import { selectCourseTabs } from '../../components/NavigationBar/data/selectors';
|
import { selectCourseTabs } from '../../components/NavigationBar/data/selectors';
|
||||||
@@ -32,6 +33,7 @@ const DiscussionsProductTour = lazy(() => import('../tours/DiscussionsProductTou
|
|||||||
const DiscussionsRestrictionBanner = lazy(() => import('./DiscussionsRestrictionBanner'));
|
const DiscussionsRestrictionBanner = lazy(() => import('./DiscussionsRestrictionBanner'));
|
||||||
const DiscussionContent = lazy(() => import('./DiscussionContent'));
|
const DiscussionContent = lazy(() => import('./DiscussionContent'));
|
||||||
const DiscussionSidebar = lazy(() => import('./DiscussionSidebar'));
|
const DiscussionSidebar = lazy(() => import('./DiscussionSidebar'));
|
||||||
|
const InformationBanner = lazy(() => import('./InformationBanner'));
|
||||||
|
|
||||||
const DiscussionsHome = () => {
|
const DiscussionsHome = () => {
|
||||||
const location = useLocation();
|
const location = useLocation();
|
||||||
@@ -46,6 +48,7 @@ const DiscussionsHome = () => {
|
|||||||
const isOnDesktop = useIsOnDesktop();
|
const isOnDesktop = useIsOnDesktop();
|
||||||
let displaySidebar = useSidebarVisible();
|
let displaySidebar = useSidebarVisible();
|
||||||
const enableInContextSidebar = Boolean(new URLSearchParams(location.search).get('inContextSidebar') !== null);
|
const enableInContextSidebar = Boolean(new URLSearchParams(location.search).get('inContextSidebar') !== null);
|
||||||
|
const isFeedbackBannerVisible = getConfig().DISPLAY_FEEDBACK_BANNER === 'true';
|
||||||
const {
|
const {
|
||||||
courseId, postId, topicId, category, learnerUsername,
|
courseId, postId, topicId, category, learnerUsername,
|
||||||
} = params;
|
} = params;
|
||||||
@@ -92,6 +95,7 @@ const DiscussionsHome = () => {
|
|||||||
)}
|
)}
|
||||||
<PostActionsBar />
|
<PostActionsBar />
|
||||||
</div>
|
</div>
|
||||||
|
{isFeedbackBannerVisible && <InformationBanner />}
|
||||||
<DiscussionsRestrictionBanner />
|
<DiscussionsRestrictionBanner />
|
||||||
</div>
|
</div>
|
||||||
{provider === DiscussionProvider.LEGACY && (
|
{provider === DiscussionProvider.LEGACY && (
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ import { useEffect } from 'react';
|
|||||||
|
|
||||||
import { useSelector } from 'react-redux';
|
import { useSelector } from 'react-redux';
|
||||||
|
|
||||||
import { getConfig } from '@edx/frontend-platform';
|
|
||||||
import { logError } from '@edx/frontend-platform/logging';
|
import { logError } from '@edx/frontend-platform/logging';
|
||||||
|
|
||||||
import { RequestStatus } from '../../data/constants';
|
import { RequestStatus } from '../../data/constants';
|
||||||
@@ -23,9 +22,9 @@ export default function useFeedbackWrapper() {
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (configStatus === RequestStatus.SUCCESSFUL) {
|
if (configStatus === RequestStatus.SUCCESSFUL) {
|
||||||
let url = getConfig().LEARNER_FEEDBACK_URL;
|
let url = '//w.usabilla.com/9e6036348fa1.js';
|
||||||
if (isStaff || isUserGroupTA || isCourseAdmin || isCourseStaff) {
|
if (isStaff || isUserGroupTA || isCourseAdmin || isCourseStaff) {
|
||||||
url = getConfig().STAFF_FEEDBACK_URL;
|
url = '//w.usabilla.com/767740a06856.js';
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
// eslint-disable-next-line no-undef
|
// eslint-disable-next-line no-undef
|
||||||
|
|||||||
63
src/discussions/discussions-home/InformationBanner.jsx
Normal file
63
src/discussions/discussions-home/InformationBanner.jsx
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
import React, { useCallback, useState } from 'react';
|
||||||
|
|
||||||
|
import { useSelector } from 'react-redux';
|
||||||
|
|
||||||
|
import { useIntl } from '@edx/frontend-platform/i18n';
|
||||||
|
import { Hyperlink, PageBanner } from '@edx/paragon';
|
||||||
|
|
||||||
|
import { selectUserIsStaff, selectUserRoles } from '../data/selectors';
|
||||||
|
import messages from '../messages';
|
||||||
|
|
||||||
|
const InformationBanner = () => {
|
||||||
|
const intl = useIntl();
|
||||||
|
const [showBanner, setShowBanner] = useState(true);
|
||||||
|
const userRoles = useSelector(selectUserRoles);
|
||||||
|
const isAdmin = useSelector(selectUserIsStaff);
|
||||||
|
const learnMoreLink = 'https://openedx.atlassian.net/wiki/spaces/COMM/pages/3509551260/Overview+New+discussions+experience';
|
||||||
|
const TAFeedbackLink = process.env.TA_FEEDBACK_FORM;
|
||||||
|
const staffFeedbackLink = process.env.STAFF_FEEDBACK_FORM;
|
||||||
|
const hideLearnMoreButton = ((userRoles.includes('Student') && userRoles.length === 1) || !userRoles.length) && !isAdmin;
|
||||||
|
const showStaffLink = isAdmin || userRoles.includes('Moderator') || userRoles.includes('Administrator');
|
||||||
|
|
||||||
|
const handleDismiss = useCallback(() => {
|
||||||
|
setShowBanner(false);
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<PageBanner
|
||||||
|
variant="light"
|
||||||
|
show={showBanner}
|
||||||
|
dismissible
|
||||||
|
onDismiss={handleDismiss}
|
||||||
|
>
|
||||||
|
<div className="font-weight-500">
|
||||||
|
{intl.formatMessage(messages.bannerMessage)}
|
||||||
|
{!hideLearnMoreButton
|
||||||
|
&& (
|
||||||
|
<Hyperlink
|
||||||
|
destination={learnMoreLink}
|
||||||
|
target="_blank"
|
||||||
|
showLaunchIcon={false}
|
||||||
|
className="pl-2.5"
|
||||||
|
variant="muted"
|
||||||
|
isInline
|
||||||
|
>
|
||||||
|
{intl.formatMessage(messages.learnMoreBannerLink)}
|
||||||
|
</Hyperlink>
|
||||||
|
)}
|
||||||
|
<Hyperlink
|
||||||
|
destination={showStaffLink ? staffFeedbackLink : TAFeedbackLink}
|
||||||
|
target="_blank"
|
||||||
|
showLaunchIcon={false}
|
||||||
|
variant="muted"
|
||||||
|
className="pl-2.5"
|
||||||
|
isInline
|
||||||
|
>
|
||||||
|
{intl.formatMessage(messages.shareFeedback)}
|
||||||
|
</Hyperlink>
|
||||||
|
</div>
|
||||||
|
</PageBanner>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default InformationBanner;
|
||||||
136
src/discussions/discussions-home/InformationBanner.test.jsx
Normal file
136
src/discussions/discussions-home/InformationBanner.test.jsx
Normal file
@@ -0,0 +1,136 @@
|
|||||||
|
import { render, screen } from '@testing-library/react';
|
||||||
|
import { IntlProvider } from 'react-intl';
|
||||||
|
|
||||||
|
import { initializeMockApp } from '@edx/frontend-platform';
|
||||||
|
import { AppProvider } from '@edx/frontend-platform/react';
|
||||||
|
|
||||||
|
import { initializeStore } from '../../store';
|
||||||
|
import { DiscussionContext } from '../common/context';
|
||||||
|
import { fetchConfigSuccess } from '../data/slices';
|
||||||
|
import messages from '../messages';
|
||||||
|
import InformationBanner from './InformationBanner';
|
||||||
|
|
||||||
|
import '../posts/data/__factories__';
|
||||||
|
|
||||||
|
let store;
|
||||||
|
let container;
|
||||||
|
const courseId = 'course-v1:edX+DemoX+Demo_Course';
|
||||||
|
|
||||||
|
const getConfigData = (isAdmin = true, roles = []) => ({
|
||||||
|
id: 'course-v1:edX+DemoX+Demo_Course',
|
||||||
|
userRoles: roles,
|
||||||
|
hasModerationPrivileges: false,
|
||||||
|
isGroupTa: false,
|
||||||
|
isUserAdmin: isAdmin,
|
||||||
|
});
|
||||||
|
|
||||||
|
function renderComponent() {
|
||||||
|
const wrapper = render(
|
||||||
|
<IntlProvider locale="en">
|
||||||
|
<AppProvider store={store}>
|
||||||
|
<DiscussionContext.Provider value={{ courseId }}>
|
||||||
|
<InformationBanner />
|
||||||
|
</DiscussionContext.Provider>
|
||||||
|
</AppProvider>
|
||||||
|
</IntlProvider>,
|
||||||
|
);
|
||||||
|
container = wrapper.container;
|
||||||
|
return container;
|
||||||
|
}
|
||||||
|
|
||||||
|
describe('Information Banner learner view', () => {
|
||||||
|
let element;
|
||||||
|
beforeEach(async () => {
|
||||||
|
initializeMockApp({
|
||||||
|
authenticatedUser: {
|
||||||
|
userId: 3,
|
||||||
|
username: 'abc123',
|
||||||
|
administrator: false,
|
||||||
|
roles: ['Student'],
|
||||||
|
},
|
||||||
|
});
|
||||||
|
store = initializeStore();
|
||||||
|
store.dispatch(fetchConfigSuccess(getConfigData(false, ['Student'])));
|
||||||
|
renderComponent(true);
|
||||||
|
element = await screen.findByRole('alert');
|
||||||
|
});
|
||||||
|
|
||||||
|
test('Test Banner is visible on app load', async () => {
|
||||||
|
expect(element).toHaveTextContent(messages.bannerMessage.defaultMessage);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('Test Banner do not have learn more button', async () => {
|
||||||
|
expect(element).not.toHaveTextContent(messages.learnMoreBannerLink.defaultMessage);
|
||||||
|
});
|
||||||
|
test('Test Banner has share feedback button', async () => {
|
||||||
|
expect(element).toHaveTextContent(messages.shareFeedback.defaultMessage);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('Information Banner moderators/staff/admin view', () => {
|
||||||
|
let element;
|
||||||
|
beforeEach(async () => {
|
||||||
|
initializeMockApp({
|
||||||
|
authenticatedUser: {
|
||||||
|
userId: 3,
|
||||||
|
username: 'abc123',
|
||||||
|
administrator: true,
|
||||||
|
roles: [],
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
store = initializeStore();
|
||||||
|
store.dispatch(fetchConfigSuccess(getConfigData(true, ['Student', 'Moderator'])));
|
||||||
|
renderComponent(true);
|
||||||
|
element = await screen.findByRole('alert');
|
||||||
|
});
|
||||||
|
|
||||||
|
test('Test Banner is visible on app load', async () => {
|
||||||
|
expect(element).toHaveTextContent(messages.bannerMessage.defaultMessage);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('Test Banner has learn more button', async () => {
|
||||||
|
expect(element).toHaveTextContent(messages.learnMoreBannerLink.defaultMessage);
|
||||||
|
});
|
||||||
|
test('Test Banner has share feedback button', async () => {
|
||||||
|
expect(element).toHaveTextContent(messages.shareFeedback.defaultMessage);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('User is redirected according to url according to role', () => {
|
||||||
|
beforeEach(async () => {
|
||||||
|
initializeMockApp({
|
||||||
|
authenticatedUser: {
|
||||||
|
userId: 3,
|
||||||
|
username: 'abc123',
|
||||||
|
administrator: true,
|
||||||
|
roles: [],
|
||||||
|
},
|
||||||
|
});
|
||||||
|
store = initializeStore();
|
||||||
|
});
|
||||||
|
|
||||||
|
test('TAs are redirected to learners feedback form', async () => {
|
||||||
|
store.dispatch(fetchConfigSuccess(getConfigData(false, ['Student', 'Community TA'])));
|
||||||
|
renderComponent(true);
|
||||||
|
expect(screen.getByText(messages.shareFeedback.defaultMessage)
|
||||||
|
.closest('a'))
|
||||||
|
.toHaveAttribute('href', process.env.TA_FEEDBACK_FORM);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('moderators/administrators are redirected to moderators feedback form', async () => {
|
||||||
|
store.dispatch(fetchConfigSuccess(getConfigData(false, ['Student', 'Moderator', 'Administrator'])));
|
||||||
|
renderComponent(true);
|
||||||
|
expect(screen.getByText(messages.shareFeedback.defaultMessage)
|
||||||
|
.closest('a'))
|
||||||
|
.toHaveAttribute('href', process.env.STAFF_FEEDBACK_FORM);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('user with only isAdmin true are redirected to moderators feedback form', async () => {
|
||||||
|
store.dispatch(fetchConfigSuccess(getConfigData(true, ['Student'])));
|
||||||
|
renderComponent(true);
|
||||||
|
expect(screen.getByText(messages.shareFeedback.defaultMessage)
|
||||||
|
.closest('a'))
|
||||||
|
.toHaveAttribute('href', process.env.STAFF_FEEDBACK_FORM);
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -168,6 +168,21 @@ const messages = defineMessages({
|
|||||||
defaultMessage: 'anonymous',
|
defaultMessage: 'anonymous',
|
||||||
description: 'Author name displayed when a post is anonymous',
|
description: 'Author name displayed when a post is anonymous',
|
||||||
},
|
},
|
||||||
|
bannerMessage: {
|
||||||
|
id: 'discussion.banner.welcomeMessage',
|
||||||
|
defaultMessage: '🎉 Welcome to the new and improved discussions experience!',
|
||||||
|
description: 'Information banner welcome text',
|
||||||
|
},
|
||||||
|
learnMoreBannerLink: {
|
||||||
|
id: 'discussion.banner.learnMore',
|
||||||
|
defaultMessage: 'Learn more',
|
||||||
|
description: 'learn more button to redirect users to know more about new discussion experience ',
|
||||||
|
},
|
||||||
|
shareFeedback: {
|
||||||
|
id: 'discussion.banner.shareFeedback',
|
||||||
|
defaultMessage: 'Share feedback',
|
||||||
|
description: 'Share feedback button to open feedback forms',
|
||||||
|
},
|
||||||
blackoutDiscussionInformation: {
|
blackoutDiscussionInformation: {
|
||||||
id: 'discussion.blackoutBanner.information',
|
id: 'discussion.blackoutBanner.information',
|
||||||
defaultMessage: 'Posting in discussions is disabled by the course team',
|
defaultMessage: 'Posting in discussions is disabled by the course team',
|
||||||
|
|||||||
@@ -465,20 +465,6 @@ describe('ThreadView', () => {
|
|||||||
assertLastUpdateData({ pinned: false });
|
assertLastUpdateData({ pinned: false });
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should allow copying a link to the post', async () => {
|
|
||||||
await waitFor(() => renderComponent(discussionPostId));
|
|
||||||
const post = await screen.findByTestId('post-thread-1');
|
|
||||||
const hoverCard = within(post).getByTestId('hover-card-thread-1');
|
|
||||||
Object.assign(navigator, { clipboard: { writeText: jest.fn() } });
|
|
||||||
await act(async () => {
|
|
||||||
fireEvent.click(within(hoverCard).getByRole('button', { name: /actions menu/i }));
|
|
||||||
});
|
|
||||||
await act(async () => {
|
|
||||||
fireEvent.click(within(hoverCard).getByRole('button', { name: /copy link/i }));
|
|
||||||
});
|
|
||||||
expect(navigator.clipboard.writeText).toHaveBeenCalledWith(`http://localhost/${courseId}/posts/${discussionPostId}`);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should allow reporting the post', async () => {
|
it('should allow reporting the post', async () => {
|
||||||
await waitFor(() => renderComponent(discussionPostId));
|
await waitFor(() => renderComponent(discussionPostId));
|
||||||
const post = await screen.findByTestId('post-thread-1');
|
const post = await screen.findByTestId('post-thread-1');
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ const CommentsView = ({ endorsed }) => {
|
|||||||
|
|
||||||
const handleDefinition = useCallback((message, commentsLength) => (
|
const handleDefinition = useCallback((message, commentsLength) => (
|
||||||
<div
|
<div
|
||||||
className="comment-line mx-4 my-14px text-gray-700 font-style"
|
className="mx-4 my-14px text-gray-700 font-style"
|
||||||
role="heading"
|
role="heading"
|
||||||
aria-level="2"
|
aria-level="2"
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -131,7 +131,7 @@ const Reply = ({ responseId }) => {
|
|||||||
className="bg-light-300 pl-4 pt-2.5 pr-2.5 pb-10px flex-fill"
|
className="bg-light-300 pl-4 pt-2.5 pr-2.5 pb-10px flex-fill"
|
||||||
style={{ borderRadius: '0rem 0.375rem 0.375rem' }}
|
style={{ borderRadius: '0rem 0.375rem 0.375rem' }}
|
||||||
>
|
>
|
||||||
<div className="d-flex flex-row justify-content-between">
|
<div className="d-flex flex-row justify-content-between" style={{ height: '24px' }}>
|
||||||
<AuthorLabel
|
<AuthorLabel
|
||||||
author={author}
|
author={author}
|
||||||
authorLabel={authorLabel}
|
authorLabel={authorLabel}
|
||||||
|
|||||||
@@ -26,7 +26,6 @@ Factory.define('thread')
|
|||||||
'type',
|
'type',
|
||||||
'voted',
|
'voted',
|
||||||
'pinned',
|
'pinned',
|
||||||
'copy_link',
|
|
||||||
],
|
],
|
||||||
author: 'test_user',
|
author: 'test_user',
|
||||||
author_label: 'Staff',
|
author_label: 'Staff',
|
||||||
|
|||||||
@@ -19,9 +19,9 @@ const PostTypeCard = ({
|
|||||||
<label htmlFor={`post-type-${value}`} className="d-flex p-0 my-0 mr-3">
|
<label htmlFor={`post-type-${value}`} className="d-flex p-0 my-0 mr-3">
|
||||||
<Form.Radio value={value} id={`post-type-${value}`} className="sr-only">{type}</Form.Radio>
|
<Form.Radio value={value} id={`post-type-${value}`} className="sr-only">{type}</Form.Radio>
|
||||||
<Card
|
<Card
|
||||||
className={classNames('shadow-none', {
|
className={classNames('border-2 shadow-none', {
|
||||||
'border-primary-500-2': selected,
|
'border-primary': selected,
|
||||||
'border-light-400-2': !selected,
|
'border-light-400': !selected,
|
||||||
})}
|
})}
|
||||||
style={{ cursor: 'pointer', width: `${enableInContextSidebar ? '10.021rem' : '14.25rem'}` }}
|
style={{ cursor: 'pointer', width: `${enableInContextSidebar ? '10.021rem' : '14.25rem'}` }}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import { useIntl } from '@edx/frontend-platform/i18n';
|
|||||||
import { Hyperlink, useToggle } from '@edx/paragon';
|
import { Hyperlink, useToggle } from '@edx/paragon';
|
||||||
|
|
||||||
import HTMLLoader from '../../../components/HTMLLoader';
|
import HTMLLoader from '../../../components/HTMLLoader';
|
||||||
import { ContentActions, getFullUrl } from '../../../data/constants';
|
import { ContentActions } from '../../../data/constants';
|
||||||
import { selectorForUnitSubsection, selectTopicContext } from '../../../data/selectors';
|
import { selectorForUnitSubsection, selectTopicContext } from '../../../data/selectors';
|
||||||
import { AlertBanner, Confirmation } from '../../common';
|
import { AlertBanner, Confirmation } from '../../common';
|
||||||
import { DiscussionContext } from '../../common/context';
|
import { DiscussionContext } from '../../common/context';
|
||||||
@@ -37,7 +37,7 @@ const Post = ({ handleAddResponseButton }) => {
|
|||||||
const location = useLocation();
|
const location = useLocation();
|
||||||
const history = useHistory();
|
const history = useHistory();
|
||||||
const dispatch = useDispatch();
|
const dispatch = useDispatch();
|
||||||
const { courseId } = useContext(DiscussionContext);
|
const courseId = useSelector((state) => state.config.id);
|
||||||
const topic = useSelector(selectTopic(topicId));
|
const topic = useSelector(selectTopic(topicId));
|
||||||
const getTopicSubsection = useSelector(selectorForUnitSubsection);
|
const getTopicSubsection = useSelector(selectorForUnitSubsection);
|
||||||
const topicContext = useSelector(selectTopicContext(topicId));
|
const topicContext = useSelector(selectTopicContext(topicId));
|
||||||
@@ -78,7 +78,8 @@ const Post = ({ handleAddResponseButton }) => {
|
|||||||
}, [closed, postId, reasonCodesEnabled, showClosePostModal]);
|
}, [closed, postId, reasonCodesEnabled, showClosePostModal]);
|
||||||
|
|
||||||
const handlePostCopyLink = useCallback(() => {
|
const handlePostCopyLink = useCallback(() => {
|
||||||
navigator.clipboard.writeText(getFullUrl(`${courseId}/posts/${postId}`));
|
const postURL = new URL(`${getConfig().PUBLIC_PATH}${courseId}/posts/${postId}`, window.location.origin);
|
||||||
|
navigator.clipboard.writeText(postURL.href);
|
||||||
}, [window.location.origin, postId, courseId]);
|
}, [window.location.origin, postId, courseId]);
|
||||||
|
|
||||||
const handlePostPin = useCallback(() => dispatch(
|
const handlePostPin = useCallback(() => dispatch(
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
/* eslint-disable react/no-unknown-property */
|
||||||
import React, { useContext, useMemo } from 'react';
|
import React, { useContext, useMemo } from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
|
|
||||||
@@ -6,7 +7,7 @@ import { useSelector } from 'react-redux';
|
|||||||
import { Link } from 'react-router-dom';
|
import { Link } from 'react-router-dom';
|
||||||
|
|
||||||
import { useIntl } from '@edx/frontend-platform/i18n';
|
import { useIntl } from '@edx/frontend-platform/i18n';
|
||||||
import { Badge, Icon } from '@edx/paragon';
|
import { Badge, Icon, Truncate } from '@edx/paragon';
|
||||||
import { CheckCircle } from '@edx/paragon/icons';
|
import { CheckCircle } from '@edx/paragon/icons';
|
||||||
|
|
||||||
import { PushPin } from '../../../components/icons';
|
import { PushPin } from '../../../components/icons';
|
||||||
@@ -86,46 +87,48 @@ const PostLink = ({
|
|||||||
/>
|
/>
|
||||||
<div className="d-flex flex-column flex-fill" style={{ minWidth: 0 }}>
|
<div className="d-flex flex-column flex-fill" style={{ minWidth: 0 }}>
|
||||||
<div className="d-flex flex-column justify-content-start mw-100 flex-fill" style={{ marginBottom: '-3px' }}>
|
<div className="d-flex flex-column justify-content-start mw-100 flex-fill" style={{ marginBottom: '-3px' }}>
|
||||||
<div className="d-flex align-items-center pb-0 mb-0 flex-fill">
|
<div className="d-flex align-items-center pb-0 mb-0 flex-fill font-weight-500">
|
||||||
<div className="text-truncate mr-1">
|
<Truncate lines={1} className="mr-1.5" whiteSpace>
|
||||||
<span className={classNames(
|
<span
|
||||||
'font-weight-500 font-size-14 text-primary-500 font-style align-bottom mr-1',
|
class={
|
||||||
{ 'font-weight-bolder': !read },
|
classNames(
|
||||||
)}
|
'font-weight-500 font-size-14 text-primary-500 font-style align-bottom',
|
||||||
|
{ 'font-weight-bolder': !read },
|
||||||
|
)
|
||||||
|
}
|
||||||
>
|
>
|
||||||
{title}
|
{title}
|
||||||
</span>
|
</span>
|
||||||
<span className="text-gray-700 font-weight-normal font-size-14 font-style align-bottom">
|
<span class="align-bottom"> </span>
|
||||||
{isPostPreviewAvailable(previewBody) ? previewBody : intl.formatMessage(messages.postWithoutPreview)}
|
<span
|
||||||
</span>
|
class="text-gray-700 font-weight-normal font-size-14 font-style align-bottom"
|
||||||
</div>
|
|
||||||
{showAnsweredBadge && (
|
|
||||||
<Icon
|
|
||||||
data-testid="check-icon"
|
|
||||||
src={CheckCircle}
|
|
||||||
className="text-success font-weight-500 ml-auto badge-padding"
|
|
||||||
>
|
>
|
||||||
<span className="sr-only">{' '}answered</span>
|
{isPostPreviewAvailable(previewBody)
|
||||||
</Icon>
|
? previewBody
|
||||||
|
: intl.formatMessage(messages.postWithoutPreview)}
|
||||||
|
</span>
|
||||||
|
</Truncate>
|
||||||
|
{showAnsweredBadge && (
|
||||||
|
<Icon src={CheckCircle} className="text-success font-weight-500 ml-auto badge-padding" data-testid="check-icon">
|
||||||
|
<span className="sr-only">{' '}answered</span>
|
||||||
|
</Icon>
|
||||||
)}
|
)}
|
||||||
{canSeeReportedBadge && (
|
{canSeeReportedBadge && (
|
||||||
<Badge
|
<Badge
|
||||||
variant="danger"
|
variant="danger"
|
||||||
data-testid="reported-post"
|
data-testid="reported-post"
|
||||||
className={`font-weight-500 badge-padding ${showAnsweredBadge ? 'ml-2' : 'ml-auto'}`}
|
className={`font-weight-500 badge-padding ${showAnsweredBadge ? 'ml-2' : 'ml-auto'}`}
|
||||||
>
|
>
|
||||||
{intl.formatMessage(messages.contentReported)}
|
{intl.formatMessage(messages.contentReported)}
|
||||||
<span className="sr-only">{' '}reported</span>
|
<span className="sr-only">{' '}reported</span>
|
||||||
</Badge>
|
</Badge>
|
||||||
)}
|
)}
|
||||||
{pinned && (
|
{pinned && (
|
||||||
<Icon
|
<Icon
|
||||||
src={PushPin}
|
src={PushPin}
|
||||||
className={classNames('post-summary-icons-dimensions text-gray-700', {
|
className={`post-summary-icons-dimensions text-gray-700
|
||||||
'ml-2': canSeeReportedBadge || showAnsweredBadge,
|
${canSeeReportedBadge || showAnsweredBadge ? 'ml-2' : 'ml-auto'}`}
|
||||||
'ml-auto': !canSeeReportedBadge && !showAnsweredBadge,
|
/>
|
||||||
})}
|
|
||||||
/>
|
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -59,7 +59,10 @@
|
|||||||
"discussions.authors.label.ta": "أستاذ مساعد",
|
"discussions.authors.label.ta": "أستاذ مساعد",
|
||||||
"discussions.learner.loadMostPosts": "تواريخ تعطيل نشطة حاليا. لا يمكن النشر في المناقشات خلال هذه الفترة.",
|
"discussions.learner.loadMostPosts": "تواريخ تعطيل نشطة حاليا. لا يمكن النشر في المناقشات خلال هذه الفترة.",
|
||||||
"discussions.post.anonymous.author": "مجهول",
|
"discussions.post.anonymous.author": "مجهول",
|
||||||
"discussion.blackoutBanner.information": "Posting in discussions is disabled by the course team",
|
"discussion.banner.welcomeMessage": "🎉 مرحبًا بك في تجربة المناقشات الجديدة والمحسّنة!",
|
||||||
|
"discussion.banner.learnMore": "معرفة المزيد",
|
||||||
|
"discussion.banner.shareFeedback": "شاركنا رأيك",
|
||||||
|
"discussion.blackoutBanner.information": "Posting in discussions is temporarily disabled by the course team",
|
||||||
"discussions.editor.image.warning.message": "لن تظهر الصور التي يزيد عرضها أو ارتفاعها عن 999 بكسل عند عرض المنشور أو الرد او التعليق باستخدام مناقشات المساق المضمّنة",
|
"discussions.editor.image.warning.message": "لن تظهر الصور التي يزيد عرضها أو ارتفاعها عن 999 بكسل عند عرض المنشور أو الرد او التعليق باستخدام مناقشات المساق المضمّنة",
|
||||||
"discussions.editor.image.warning.title": "تحذير!",
|
"discussions.editor.image.warning.title": "تحذير!",
|
||||||
"discussions.editor.image.warning.dismiss": "حسنًا",
|
"discussions.editor.image.warning.dismiss": "حسنًا",
|
||||||
|
|||||||
@@ -59,7 +59,10 @@
|
|||||||
"discussions.authors.label.ta": "TA",
|
"discussions.authors.label.ta": "TA",
|
||||||
"discussions.learner.loadMostPosts": "Načíst další příspěvky",
|
"discussions.learner.loadMostPosts": "Načíst další příspěvky",
|
||||||
"discussions.post.anonymous.author": "anonymní",
|
"discussions.post.anonymous.author": "anonymní",
|
||||||
"discussion.blackoutBanner.information": "Posting in discussions is disabled by the course team",
|
"discussion.banner.welcomeMessage": "🎉 Vítejte v novém a vylepšeném prostředí diskuzí!",
|
||||||
|
"discussion.banner.learnMore": "Zjistěte více",
|
||||||
|
"discussion.banner.shareFeedback": "Sdílejte zpětnou vazbu",
|
||||||
|
"discussion.blackoutBanner.information": "Zasílání příspěvků v diskuzích je dočasně zakázáno týmem kurzu",
|
||||||
"discussions.editor.image.warning.message": "Obrázky mající šířku nebo výšku větší než 999px nebudou viditelné, když příspěvek, odpověď nebo komentář zobrazíte pomocí diskuzí v rámci kurzu",
|
"discussions.editor.image.warning.message": "Obrázky mající šířku nebo výšku větší než 999px nebudou viditelné, když příspěvek, odpověď nebo komentář zobrazíte pomocí diskuzí v rámci kurzu",
|
||||||
"discussions.editor.image.warning.title": "Varování!",
|
"discussions.editor.image.warning.title": "Varování!",
|
||||||
"discussions.editor.image.warning.dismiss": "Ok",
|
"discussions.editor.image.warning.dismiss": "Ok",
|
||||||
|
|||||||
@@ -59,7 +59,10 @@
|
|||||||
"discussions.authors.label.ta": "TA",
|
"discussions.authors.label.ta": "TA",
|
||||||
"discussions.learner.loadMostPosts": "Mehr Beiträge laden",
|
"discussions.learner.loadMostPosts": "Mehr Beiträge laden",
|
||||||
"discussions.post.anonymous.author": "Anonym",
|
"discussions.post.anonymous.author": "Anonym",
|
||||||
"discussion.blackoutBanner.information": "Posting in discussions is disabled by the course team",
|
"discussion.banner.welcomeMessage": "🎉 Willkommen beim neuen und verbesserten Diskussionserlebnis!",
|
||||||
|
"discussion.banner.learnMore": "Lernen Sie mehr",
|
||||||
|
"discussion.banner.shareFeedback": "Feedback teilen",
|
||||||
|
"discussion.blackoutBanner.information": "Das Posten in Diskussionen wird vom Kursteam vorübergehend deaktiviert",
|
||||||
"discussions.editor.image.warning.message": "Bilder mit einer Breite oder Höhe von mehr als 999 Pixel sind nicht sichtbar, wenn der Beitrag, die Antwort oder der Kommentar über Inline-Kursdiskussionen angezeigt werden",
|
"discussions.editor.image.warning.message": "Bilder mit einer Breite oder Höhe von mehr als 999 Pixel sind nicht sichtbar, wenn der Beitrag, die Antwort oder der Kommentar über Inline-Kursdiskussionen angezeigt werden",
|
||||||
"discussions.editor.image.warning.title": "Warnung!",
|
"discussions.editor.image.warning.title": "Warnung!",
|
||||||
"discussions.editor.image.warning.dismiss": "Ok",
|
"discussions.editor.image.warning.dismiss": "Ok",
|
||||||
|
|||||||
@@ -59,7 +59,10 @@
|
|||||||
"discussions.authors.label.ta": "ejército de reserva",
|
"discussions.authors.label.ta": "ejército de reserva",
|
||||||
"discussions.learner.loadMostPosts": "Cargar más mensajes\n",
|
"discussions.learner.loadMostPosts": "Cargar más mensajes\n",
|
||||||
"discussions.post.anonymous.author": "anónimo",
|
"discussions.post.anonymous.author": "anónimo",
|
||||||
"discussion.blackoutBanner.information": "El equipo del curso ha desactivado la publicación en los debates.",
|
"discussion.banner.welcomeMessage": "🎉 ¡Bienvenido a la nueva y mejorada experiencia de debates!",
|
||||||
|
"discussion.banner.learnMore": "Aprender más",
|
||||||
|
"discussion.banner.shareFeedback": "Compartir comentarios",
|
||||||
|
"discussion.blackoutBanner.information": "El equipo del curso deshabilita temporalmente la publicación en discusiones",
|
||||||
"discussions.editor.image.warning.message": "Las imágenes que tengan un ancho o alto superior a 999 px no serán visibles cuando la publicación, la respuesta o el comentario se vean mediante debates en línea del curso.",
|
"discussions.editor.image.warning.message": "Las imágenes que tengan un ancho o alto superior a 999 px no serán visibles cuando la publicación, la respuesta o el comentario se vean mediante debates en línea del curso.",
|
||||||
"discussions.editor.image.warning.title": "¡Advertencia!",
|
"discussions.editor.image.warning.title": "¡Advertencia!",
|
||||||
"discussions.editor.image.warning.dismiss": "Aceptar",
|
"discussions.editor.image.warning.dismiss": "Aceptar",
|
||||||
|
|||||||
@@ -59,7 +59,10 @@
|
|||||||
"discussions.authors.label.ta": "ejército de reserva",
|
"discussions.authors.label.ta": "ejército de reserva",
|
||||||
"discussions.learner.loadMostPosts": "Cargar más entradas",
|
"discussions.learner.loadMostPosts": "Cargar más entradas",
|
||||||
"discussions.post.anonymous.author": "anónimo",
|
"discussions.post.anonymous.author": "anónimo",
|
||||||
"discussion.blackoutBanner.information": "El equipo del curso ha desactivado la publicación en los debates.",
|
"discussion.banner.welcomeMessage": "🎉 ¡Bienvenido a la nueva y mejorada experiencia de debates!",
|
||||||
|
"discussion.banner.learnMore": "Aprende más",
|
||||||
|
"discussion.banner.shareFeedback": "Compartir comentarios",
|
||||||
|
"discussion.blackoutBanner.information": "El equipo del curso deshabilita temporalmente la publicación en discusiones",
|
||||||
"discussions.editor.image.warning.message": "Las imágenes que tengan un ancho o alto superior a 999 px no serán visibles cuando la publicación, la respuesta o el comentario se vean mediante debates en línea del curso.",
|
"discussions.editor.image.warning.message": "Las imágenes que tengan un ancho o alto superior a 999 px no serán visibles cuando la publicación, la respuesta o el comentario se vean mediante debates en línea del curso.",
|
||||||
"discussions.editor.image.warning.title": "¡Advertencia!",
|
"discussions.editor.image.warning.title": "¡Advertencia!",
|
||||||
"discussions.editor.image.warning.dismiss": "Ok",
|
"discussions.editor.image.warning.dismiss": "Ok",
|
||||||
|
|||||||
@@ -59,7 +59,10 @@
|
|||||||
"discussions.authors.label.ta": "TA",
|
"discussions.authors.label.ta": "TA",
|
||||||
"discussions.learner.loadMostPosts": "Cargar más entradas",
|
"discussions.learner.loadMostPosts": "Cargar más entradas",
|
||||||
"discussions.post.anonymous.author": "anónimo",
|
"discussions.post.anonymous.author": "anónimo",
|
||||||
"discussion.blackoutBanner.information": "El equipo del curso ha desactivado temporalmente la publicación en los debates.",
|
"discussion.banner.welcomeMessage": "🎉 ¡Bienvenido a la nueva y mejorada experiencia de debates!",
|
||||||
|
"discussion.banner.learnMore": "Aprende más",
|
||||||
|
"discussion.banner.shareFeedback": "Compartir comentarios",
|
||||||
|
"discussion.blackoutBanner.information": "El equipo del curso deshabilita temporalmente la publicación en discusiones",
|
||||||
"discussions.editor.image.warning.message": "Las imágenes que tengan un ancho o alto superior a 999 px no serán visibles cuando la publicación, la respuesta o el comentario se vean mediante debates en línea del curso.",
|
"discussions.editor.image.warning.message": "Las imágenes que tengan un ancho o alto superior a 999 px no serán visibles cuando la publicación, la respuesta o el comentario se vean mediante debates en línea del curso.",
|
||||||
"discussions.editor.image.warning.title": "¡Advertencia!",
|
"discussions.editor.image.warning.title": "¡Advertencia!",
|
||||||
"discussions.editor.image.warning.dismiss": "Aceptar",
|
"discussions.editor.image.warning.dismiss": "Aceptar",
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
{
|
{
|
||||||
"navigation.course.tabs.label": "منابع دوره آموزشی",
|
"navigation.course.tabs.label": "منابع دوره آموزشی",
|
||||||
"learn.course.tabs.navigation.overflow.menu": "بیشتر...",
|
"learn.course.tabs.navigation.overflow.menu": "بیشتر...",
|
||||||
"discussions.topics.backAlt": "بازگشت به لیست موضوعات",
|
"discussions.topics.backAlt": "Back to topics list",
|
||||||
"discussions.topics.discussions": "{count, plural,\n =0 {Discussion}\n one {# Discussion}\n other {# Discussions}\n }",
|
"discussions.topics.discussions": "{count, plural,\n =0 {Discussion}\n one {# Discussion}\n other {# Discussions}\n }",
|
||||||
"discussions.topics.questions": "{count, plural,\n =0 {Question}\n one {# Question}\n other {# Questions}\n }",
|
"discussions.topics.questions": "{count, plural,\n =0 {Question}\n one {# Question}\n other {# Questions}\n }",
|
||||||
"discussions.topics.reported": "{reported} گزارش شده",
|
"discussions.topics.reported": "{reported} گزارش شده",
|
||||||
"discussions.topics.previouslyReported": "{previouslyReported} قبلا گزارش شدهاست",
|
"discussions.topics.previouslyReported": "{previouslyReported} قبلا گزارش شدهاست",
|
||||||
"discussions.topics.find.label": "جستجوی موضوعات",
|
"discussions.topics.find.label": "جستجوی موضوعات",
|
||||||
"discussions.topics.unnamed.section.label": "بخش بدون نام",
|
"discussions.topics.unnamed.section.label": "Unnamed Section",
|
||||||
"discussions.topics.unnamed.subsection.label": "زیربخش بدون نام",
|
"discussions.topics.unnamed.subsection.label": "Unnamed Subsection",
|
||||||
"discussions.subtopics.unnamed.topic.label": "موضوع بی نام",
|
"discussions.subtopics.unnamed.topic.label": "Unnamed Topic",
|
||||||
"discussions.topics.title": "هیچ موضوعی وجود ندارد",
|
"discussions.topics.title": "No topic exists",
|
||||||
"discussions.topics.createTopic": "لطفا برای ایجاد موضوع با ادمین خود تماس بگیرید",
|
"discussions.topics.createTopic": "Please contact you admin to create a topic",
|
||||||
"discussions.topics.nothing": "اینجا هنوز چیزی نیست",
|
"discussions.topics.nothing": "Nothing here yet",
|
||||||
"discussions.topics.archived.label": "آرشیو شده",
|
"discussions.topics.archived.label": "آرشیو شده",
|
||||||
"discussions.learner.reported": "{reported} گزارش شده",
|
"discussions.learner.reported": "{reported} گزارش شده",
|
||||||
"discussions.learner.previouslyReported": "{previouslyReported} قبلا گزارش شدهاست",
|
"discussions.learner.previouslyReported": "{previouslyReported} قبلا گزارش شدهاست",
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
"discussions.learner.mostActivity": "بیشترین فعالیت",
|
"discussions.learner.mostActivity": "بیشترین فعالیت",
|
||||||
"discussions.learner.reportedActivity": "فعالیت گزارششده",
|
"discussions.learner.reportedActivity": "فعالیت گزارششده",
|
||||||
"discussions.learner.recentActivity": "فعالیت اخیر",
|
"discussions.learner.recentActivity": "فعالیت اخیر",
|
||||||
"discussions.learner.sortFilterStatus": "همه فراگیران بر اساس {sort, select,\n علامت گذاری شده {reported activity}\n فعالیت {most activity}\n دیگر {{sort}}\n } مرتب شده اند.",
|
"discussions.learner.sortFilterStatus": "All learners sorted by {sort, select,\n flagged {reported activity}\n activity {most activity}\n other {{sort}}\n }",
|
||||||
"discussion.learner.allActivity": "تمام فعالیت",
|
"discussion.learner.allActivity": "تمام فعالیت",
|
||||||
"discussion.learner.posts": "نوشته ها",
|
"discussion.learner.posts": "نوشته ها",
|
||||||
"discussions.actions.button.alt": "منوی فعالیتها",
|
"discussions.actions.button.alt": "منوی فعالیتها",
|
||||||
@@ -32,16 +32,16 @@
|
|||||||
"discussions.actions.pin": "نشانه",
|
"discussions.actions.pin": "نشانه",
|
||||||
"discussions.actions.unpin": "حذف نشانه",
|
"discussions.actions.unpin": "حذف نشانه",
|
||||||
"discussions.actions.delete": "حذف",
|
"discussions.actions.delete": "حذف",
|
||||||
"discussions.confirmation.button.confirm": "تایید",
|
"discussions.confirmation.button.confirm": "Confirm",
|
||||||
"discussions.actions.close": "بستن",
|
"discussions.actions.close": "بستن",
|
||||||
"discussions.actions.reopen": "گشایش مجدد",
|
"discussions.actions.reopen": "گشایش مجدد",
|
||||||
"discussions.actions.report": "گزارش",
|
"discussions.actions.report": "گزارش",
|
||||||
"discussions.actions.unreport": "لغو گزارش",
|
"discussions.actions.unreport": "لغو گزارش",
|
||||||
"discussions.actions.endorse": "تأیید",
|
"discussions.actions.endorse": "تأیید",
|
||||||
"discussions.actions.unendorse": "عدم تأیید",
|
"discussions.actions.unendorse": "عدم تأیید",
|
||||||
"discussions.actions.markAnswered": "علامت گذاری به عنوان پاسخ",
|
"discussions.actions.markAnswered": "Mark as answered",
|
||||||
"discussions.actions.unMarkAnswered": "علامت را بهعنوان پاسخ بردارید",
|
"discussions.actions.unMarkAnswered": "علامت را بهعنوان پاسخ بردارید",
|
||||||
"discussions.modal.confirmation.button.cancel": "لغو",
|
"discussions.modal.confirmation.button.cancel": "Cancel",
|
||||||
"discussions.empty.allTopics": "همه فعالیتهای گفتگو برای این موضوعات در اینجا نشان داده میشود.",
|
"discussions.empty.allTopics": "همه فعالیتهای گفتگو برای این موضوعات در اینجا نشان داده میشود.",
|
||||||
"discussions.empty.allPosts": "همه فعالیتهای گفتگو برای دوره آموزشی شما در اینجا نمایش داده میشود.",
|
"discussions.empty.allPosts": "همه فعالیتهای گفتگو برای دوره آموزشی شما در اینجا نمایش داده میشود.",
|
||||||
"discussions.empty.myPosts": "مطالبی که با آنها تعامل داشتهاید در اینجا نشان داده میشوند.",
|
"discussions.empty.myPosts": "مطالبی که با آنها تعامل داشتهاید در اینجا نشان داده میشوند.",
|
||||||
@@ -59,7 +59,10 @@
|
|||||||
"discussions.authors.label.ta": "کمک مربی",
|
"discussions.authors.label.ta": "کمک مربی",
|
||||||
"discussions.learner.loadMostPosts": "بارگیری مطالب بیشتر",
|
"discussions.learner.loadMostPosts": "بارگیری مطالب بیشتر",
|
||||||
"discussions.post.anonymous.author": "بینام",
|
"discussions.post.anonymous.author": "بینام",
|
||||||
"discussion.blackoutBanner.information": "ارسال پست در بحث ها توسط تیم دوره غیرفعال شده است",
|
"discussion.banner.welcomeMessage": "🎉 به نسخه جدید و بهبود یافته discussions خوش اومدید!",
|
||||||
|
"discussion.banner.learnMore": "اطلاعات بیشتر",
|
||||||
|
"discussion.banner.shareFeedback": "اشتراکگذاری بازخورد",
|
||||||
|
"discussion.blackoutBanner.information": "Posting in discussions is temporarily disabled by the course team",
|
||||||
"discussions.editor.image.warning.message": "هنگامی که مطلب یا پاسخ یا نظری در گفتگوهای دوره به صورت درونخطی مشاهده می شود، تصاویری که عرض یا ارتفاع آنها بیشتر از 999 پیکسل باشد، قابل مشاهده نخواهند بود.",
|
"discussions.editor.image.warning.message": "هنگامی که مطلب یا پاسخ یا نظری در گفتگوهای دوره به صورت درونخطی مشاهده می شود، تصاویری که عرض یا ارتفاع آنها بیشتر از 999 پیکسل باشد، قابل مشاهده نخواهند بود.",
|
||||||
"discussions.editor.image.warning.title": "هشدار!",
|
"discussions.editor.image.warning.title": "هشدار!",
|
||||||
"discussions.editor.image.warning.dismiss": "بسیارخوب",
|
"discussions.editor.image.warning.dismiss": "بسیارخوب",
|
||||||
@@ -69,10 +72,10 @@
|
|||||||
"discussions.navigation.navigationBar.allTopics": "عناوین ",
|
"discussions.navigation.navigationBar.allTopics": "عناوین ",
|
||||||
"discussions.navigation.navigationBar.myPosts": "مطالب ارسالی من",
|
"discussions.navigation.navigationBar.myPosts": "مطالب ارسالی من",
|
||||||
"discussions.navigation.navigationBar.learners": "یادگیرندگان",
|
"discussions.navigation.navigationBar.learners": "یادگیرندگان",
|
||||||
"discussions.comments.comment.addComment": "اضافه کردن نظر",
|
"discussions.comments.comment.addComment": "Add comment",
|
||||||
"discussions.comments.comment.addResponse": "افزودن پاسخ",
|
"discussions.comments.comment.addResponse": "افزودن پاسخ",
|
||||||
"discussions.comments.comment.abuseFlaggedMessage": "محتوا برای بررسی کارکنان گزارش شده است",
|
"discussions.comments.comment.abuseFlaggedMessage": "محتوا برای بررسی کارکنان گزارش شده است",
|
||||||
"discussions.actions.back.alt": "بازگشت به لیست",
|
"discussions.actions.back.alt": "Back to list",
|
||||||
"discussions.comments.comment.responseCount": "{num, plural,\n=0 {No responses}\none {Showing # response}\nother {Showing # responses}\n}",
|
"discussions.comments.comment.responseCount": "{num, plural,\n=0 {No responses}\none {Showing # response}\nother {Showing # responses}\n}",
|
||||||
"discussions.comments.comment.endorsedResponseCount": "{num, plural,\n=0 {No endorsed responses}\none {Showing # endorsed response}\nother {Showing # endorsed responses}\n}",
|
"discussions.comments.comment.endorsedResponseCount": "{num, plural,\n=0 {No endorsed responses}\none {Showing # endorsed response}\nother {Showing # endorsed responses}\n}",
|
||||||
"discussions.comments.comment.loadMoreComments": "بارگیری نظرات بیشتر",
|
"discussions.comments.comment.loadMoreComments": "بارگیری نظرات بیشتر",
|
||||||
@@ -94,10 +97,10 @@
|
|||||||
"discussions.editor.delete.comment.title": "حذف نظر",
|
"discussions.editor.delete.comment.title": "حذف نظر",
|
||||||
"discussions.editor.delete.comment.description": "آیا از حذف این نظر برای همیشه اطمینان دارید؟",
|
"discussions.editor.delete.comment.description": "آیا از حذف این نظر برای همیشه اطمینان دارید؟",
|
||||||
"discussions.delete.confirmation.button.delete": "حذف",
|
"discussions.delete.confirmation.button.delete": "حذف",
|
||||||
"discussions.editor.response.response.title": "گزارش محتوای نامناسب؟",
|
"discussions.editor.response.response.title": "Report inappropriate content?",
|
||||||
"discussions.editor.response.description": "تیم نظارت بر بحث این محتوا را بررسی کرده و اقدامات لازم را انجام خواهد داد.",
|
"discussions.editor.response.description": "The discussion moderation team will review this content and take appropriate action.",
|
||||||
"discussions.editor.report.comment.title": "گزارش محتوای نامناسب؟",
|
"discussions.editor.report.comment.title": "Report inappropriate content?",
|
||||||
"discussions.editor.report.comment.description": "تیم نظارت بر بحث این محتوا را بررسی کرده و اقدامات لازم را انجام خواهد داد.",
|
"discussions.editor.report.comment.description": "The discussion moderation team will review this content and take appropriate action.",
|
||||||
"discussions.editor.comments.editReasonCode": "علت ویرایش",
|
"discussions.editor.comments.editReasonCode": "علت ویرایش",
|
||||||
"discussions.editor.posts.editReasonCode.error": "انتخاب دلیل برای ویرایش",
|
"discussions.editor.posts.editReasonCode.error": "انتخاب دلیل برای ویرایش",
|
||||||
"discussions.comment.comments.editedBy": "ویرایششده بهدست",
|
"discussions.comment.comments.editedBy": "ویرایششده بهدست",
|
||||||
@@ -105,8 +108,8 @@
|
|||||||
"discussions.comment.comments.reason": "علت",
|
"discussions.comment.comments.reason": "علت",
|
||||||
"discussions.post.closedBy": "مطلب توسط این فرد بسته شده",
|
"discussions.post.closedBy": "مطلب توسط این فرد بسته شده",
|
||||||
"discussion.comment.time": "{time} قبل",
|
"discussion.comment.time": "{time} قبل",
|
||||||
"discussion.thread.notFound": "موضوع پیدا نشد",
|
"discussion.thread.notFound": "Thread not found",
|
||||||
"discussions.comment.sortFilterStatus": "{sort, select,\n اشتباه {Oldest first}\n صحیح {Newest first}\n سایر {{sort}}\n }",
|
"discussions.comment.sortFilterStatus": "{sort, select,\n false {Oldest first}\n true {Newest first}\n other {{sort}}\n }",
|
||||||
"discussions.app.title": "گفتگوها",
|
"discussions.app.title": "گفتگوها",
|
||||||
"discussions.posts.actionBar.searchAllPosts": "جستجوی همۀ مطالب ارسالی",
|
"discussions.posts.actionBar.searchAllPosts": "جستجوی همۀ مطالب ارسالی",
|
||||||
"discussions.posts.actionBar.search": "{page, select,\ntopics {Search topics}\nposts {Search all posts}\nlearners {Search learners}\nmyPosts {Search all posts}\nother {{page}}\n}",
|
"discussions.posts.actionBar.search": "{page, select,\ntopics {Search topics}\nposts {Search all posts}\nlearners {Search learners}\nmyPosts {Search all posts}\nother {{page}}\n}",
|
||||||
@@ -139,9 +142,9 @@
|
|||||||
"discussions.post.editor.anonymousPost": "بهصورت ناشناس ارسال کنید",
|
"discussions.post.editor.anonymousPost": "بهصورت ناشناس ارسال کنید",
|
||||||
"discussions.post.editor.anonymousToPeersPost": "بهصورت ناشناس برای همتایان ارسال کنید",
|
"discussions.post.editor.anonymousToPeersPost": "بهصورت ناشناس برای همتایان ارسال کنید",
|
||||||
"discussions.editor.posts.editReasonCode": "علت ویرایش",
|
"discussions.editor.posts.editReasonCode": "علت ویرایش",
|
||||||
"discussions.editor.posts.showPreview.button": "پیشنمایش",
|
"discussions.editor.posts.showPreview.button": "Show preview",
|
||||||
"discussions.topic.noName.label": "دسته بی نام",
|
"discussions.topic.noName.label": "Unnamed category",
|
||||||
"discussions.subtopic.noName.label": "زیرمجموعه بی نام",
|
"discussions.subtopic.noName.label": "Unnamed subcategory",
|
||||||
"discussions.posts.filter.showALl": "نمایش همه",
|
"discussions.posts.filter.showALl": "نمایش همه",
|
||||||
"discussions.posts.filter.discussions": "گفتگوها",
|
"discussions.posts.filter.discussions": "گفتگوها",
|
||||||
"discussions.posts.filter.questions": "سوالات ",
|
"discussions.posts.filter.questions": "سوالات ",
|
||||||
@@ -151,7 +154,7 @@
|
|||||||
"discussions.posts.status.filter.following": "دنبال میکنم",
|
"discussions.posts.status.filter.following": "دنبال میکنم",
|
||||||
"discussions.posts.status.filter.reported": "گزارششده",
|
"discussions.posts.status.filter.reported": "گزارششده",
|
||||||
"discussions.posts.status.filter.unanswered": "پاسخ دادهنشده",
|
"discussions.posts.status.filter.unanswered": "پاسخ دادهنشده",
|
||||||
"discussions.posts.status.filter.unresponded": "پاسخ داده نشد",
|
"discussions.posts.status.filter.unresponded": "Not responded",
|
||||||
"discussions.posts.filter.myPosts": "مطالب ارسالی من",
|
"discussions.posts.filter.myPosts": "مطالب ارسالی من",
|
||||||
"discussions.posts.filter.myDiscussions": "گفتگوهای من",
|
"discussions.posts.filter.myDiscussions": "گفتگوهای من",
|
||||||
"discussions.posts.filter.myQuestions": "سوالات من",
|
"discussions.posts.filter.myQuestions": "سوالات من",
|
||||||
@@ -159,31 +162,31 @@
|
|||||||
"discussions.posts.sort.lastActivity": "فعالیت اخیر",
|
"discussions.posts.sort.lastActivity": "فعالیت اخیر",
|
||||||
"discussions.posts.sort.commentCount": "بیشترین فعالیت",
|
"discussions.posts.sort.commentCount": "بیشترین فعالیت",
|
||||||
"discussions.posts.sort.voteCount": "بیشترین لایک",
|
"discussions.posts.sort.voteCount": "بیشترین لایک",
|
||||||
"discussions.posts.sort-filter.sortFilterStatus": "{own, select,\n نادرست {All}\n صحیح {Own}\n سایر {{own}}\n } {status, select,\n وضعیت همه {}\n وضعیت خوانده نشده {unread}\n وضعیت دنبال کردن {followed}\n وضعیت گزارش شده {reported}\n وضعیت بی پاسخ {unanswered}\n وضعیت بی پاسخ {unresponded}\n سایر {{status}}\n } {type, select,\n بحث {discussions}\n سوال {questions}\n همه {posts}\n سایر {{type}}\n } {cohortType, select,\n همه {}\n گروه {in {cohort}}\n سایر {{cohortType}}\n } مرتب شده بر اساس {sort, select,\n آخرین فعالیت بر {recent activity}\n تعداد نظرات {most activity}\n تعداد آرا {most likes}\n سایر {{sort}}\n }",
|
"discussions.posts.sort-filter.sortFilterStatus": "{own, select,\n false {All}\n true {Own}\n other {{own}}\n } {status, select,\n statusAll {}\n statusUnread {unread}\n statusFollowing {followed}\n statusReported {reported}\n statusUnanswered {unanswered}\n statusUnresponded {unresponded}\n other {{status}}\n } {type, select,\n discussion {discussions}\n question {questions}\n all {posts}\n other {{type}}\n } {cohortType, select,\n all {}\n group {in {cohort}}\n other {{cohortType}}\n } sorted by {sort, select,\n lastActivityAt {recent activity}\n commentCount {most activity}\n voteCount {most likes}\n other {{sort}}\n }",
|
||||||
"discussions.post.author.anonymous": "بینام",
|
"discussions.post.author.anonymous": "بینام",
|
||||||
"discussions.post.addResponse": "افزودن پاسخ",
|
"discussions.post.addResponse": "Add response",
|
||||||
"discussions.post.lastResponse": "پاسخ اخیر {time}",
|
"discussions.post.lastResponse": "پاسخ اخیر {time}",
|
||||||
"discussions.post.postedOn": "ارسال شده {time} به دست {author} {authorLabel}",
|
"discussions.post.postedOn": "ارسال شده {time} به دست {author} {authorLabel}",
|
||||||
"discussions.post.contentReported": "گزارششده",
|
"discussions.post.contentReported": "گزارششده",
|
||||||
"discussions.post.following": "دنبال میکنم",
|
"discussions.post.following": "دنبال میکنم",
|
||||||
"discussions.post.follow": "دنبال میکنم",
|
"discussions.post.follow": "دنبال میکنم",
|
||||||
"discussions.post.followed": "دنبال شد",
|
"discussions.post.followed": "Followed",
|
||||||
"discussions.post.notFollowed": "دنبال نشده است",
|
"discussions.post.notFollowed": "Not Followed",
|
||||||
"discussions.post.answered": "پاسخ دادهشده",
|
"discussions.post.answered": "پاسخ دادهشده",
|
||||||
"discussions.post.unFollow": "دنبال نمیکنم",
|
"discussions.post.unFollow": "دنبال نمیکنم",
|
||||||
"discussions.post.like": "میپسندم",
|
"discussions.post.like": "میپسندم",
|
||||||
"discussions.post.removeLike": "غیرمشابه",
|
"discussions.post.removeLike": "غیرمشابه",
|
||||||
"discussions.post.liked": "دوست داشت",
|
"discussions.post.liked": "liked",
|
||||||
"discussions.post.likes": "دوست دارد",
|
"discussions.post.likes": "likes",
|
||||||
"discussions.post.viewActivity": "مشاهده فعالیت",
|
"discussions.post.viewActivity": "مشاهده فعالیت",
|
||||||
"discussions.post.activity": "فعالیت",
|
"discussions.post.activity": "Activity",
|
||||||
"discussions.post.closed": "این مطلب برای پاسخ و نظر بسته است",
|
"discussions.post.closed": "این مطلب برای پاسخ و نظر بسته است",
|
||||||
"discussions.post.relatedTo": "مربوط به ",
|
"discussions.post.relatedTo": "Related to",
|
||||||
"discussions.editor.delete.post.title": "حذف مطلب",
|
"discussions.editor.delete.post.title": "حذف مطلب",
|
||||||
"discussions.editor.delete.post.description": "از حذف دایمی این مطلب اطمینان دارید؟",
|
"discussions.editor.delete.post.description": "از حذف دایمی این مطلب اطمینان دارید؟",
|
||||||
"discussions.post.delete.confirmation.button.delete": "حذف",
|
"discussions.post.delete.confirmation.button.delete": "Delete",
|
||||||
"discussions.editor.report.post.title": "گزارش محتوای نامناسب؟",
|
"discussions.editor.report.post.title": "Report inappropriate content?",
|
||||||
"discussions.editor.report.post.description": "تیم نظارت بر بحث این محتوا را بررسی کرده و اقدامات لازم را انجام خواهد داد.",
|
"discussions.editor.report.post.description": "The discussion moderation team will review this content and take appropriate action.",
|
||||||
"discussions.post.closePostModal.title": "بستن مطلب",
|
"discussions.post.closePostModal.title": "بستن مطلب",
|
||||||
"discussions.post.closePostModal.text": "دلیل بستن این مطلب را وارد کنید. این دلیل فقط برای مدیران دیگر نمایش داده میشود.",
|
"discussions.post.closePostModal.text": "دلیل بستن این مطلب را وارد کنید. این دلیل فقط برای مدیران دیگر نمایش داده میشود.",
|
||||||
"discussions.post.closePostModal.reasonCodeInput": "دلیل",
|
"discussions.post.closePostModal.reasonCodeInput": "دلیل",
|
||||||
@@ -193,19 +196,19 @@
|
|||||||
"discussions.post.editedBy": "ویرایششده به دست",
|
"discussions.post.editedBy": "ویرایششده به دست",
|
||||||
"discussions.post.editReason": "علت",
|
"discussions.post.editReason": "علت",
|
||||||
"discussions.post.postWithoutPreview": "پیشنمایش در دسترس نیست",
|
"discussions.post.postWithoutPreview": "پیشنمایش در دسترس نیست",
|
||||||
"discussions.post.follow.description": "شما این پست را دنبال می کنید",
|
"discussions.post.follow.description": "you are following this post",
|
||||||
"discussions.post.unfollow.description": "شما این پست را دنبال نمی کنید",
|
"discussions.post.unfollow.description": "you are not following this post",
|
||||||
"discussions.topics.sort.message": "منظم برحسب {sortBy}",
|
"discussions.topics.sort.message": "منظم برحسب {sortBy}",
|
||||||
"discussions.topics.sort.lastActivity": "فعالیت اخیر",
|
"discussions.topics.sort.lastActivity": "فعالیت اخیر",
|
||||||
"discussions.topics.sort.commentCount": "بیشترین فعالیت",
|
"discussions.topics.sort.commentCount": "بیشترین فعالیت",
|
||||||
"discussions.topics.sort.courseStructure": "ساختار دوره آموزشی",
|
"discussions.topics.sort.courseStructure": "ساختار دوره آموزشی",
|
||||||
"discussions.topics.unnamed.label": "دسته بی نام",
|
"discussions.topics.unnamed.label": "Unnamed category",
|
||||||
"discussions.subtopics.unnamed.label": "زیرمجموعه بی نام",
|
"discussions.subtopics.unnamed.label": "Unnamed subcategory",
|
||||||
"tour.action.advance": "بعدی",
|
"tour.action.advance": "Next",
|
||||||
"tour.action.dismiss": "لطفا نادیده بگیرید",
|
"tour.action.dismiss": "Dismiss",
|
||||||
"tour.action.end": "بسیار خوب",
|
"tour.action.end": "Okay",
|
||||||
"tour.body.notRespondedFilter": "اکنون می توانید بحث ها را فیلتر کنید تا پست های بدون پاسخ را بیابید.",
|
"tour.body.notRespondedFilter": "Now you can filter discussions to find posts with no response.",
|
||||||
"tour.title.notRespondedFilter": "گزینه فیلتر جدید!",
|
"tour.title.notRespondedFilter": "New filtering option!",
|
||||||
"tour.body.responseSortTour": "پاسخ ها و نظرات اکنون بر اساس جدیدترین ها مرتب شده اند. لطفا از این گزینه برای تغییر ترتیب مرتب سازی استفاده کنید",
|
"tour.body.responseSortTour": "Responses and comments are now sorted by newest first. Please use this option to change the sort order",
|
||||||
"tour.title.responseSortTour": "مرتب سازی پاسخ ها!"
|
"tour.title.responseSortTour": "Sort Responses!"
|
||||||
}
|
}
|
||||||
@@ -59,7 +59,10 @@
|
|||||||
"discussions.authors.label.ta": "TA",
|
"discussions.authors.label.ta": "TA",
|
||||||
"discussions.learner.loadMostPosts": "Load more posts",
|
"discussions.learner.loadMostPosts": "Load more posts",
|
||||||
"discussions.post.anonymous.author": "anonymous",
|
"discussions.post.anonymous.author": "anonymous",
|
||||||
"discussion.blackoutBanner.information": "Posting in discussions is disabled by the course team",
|
"discussion.banner.welcomeMessage": "🎉 Welcome to the new and improved discussions experience!",
|
||||||
|
"discussion.banner.learnMore": "Learn more",
|
||||||
|
"discussion.banner.shareFeedback": "Share feedback",
|
||||||
|
"discussion.blackoutBanner.information": "Posting in discussions is temporarily disabled by the course team",
|
||||||
"discussions.editor.image.warning.message": "Images having width or height greater than 999px will not be visible when the post, response or comment is viewed using in-line course discussions",
|
"discussions.editor.image.warning.message": "Images having width or height greater than 999px will not be visible when the post, response or comment is viewed using in-line course discussions",
|
||||||
"discussions.editor.image.warning.title": "Warning!",
|
"discussions.editor.image.warning.title": "Warning!",
|
||||||
"discussions.editor.image.warning.dismiss": "Ok",
|
"discussions.editor.image.warning.dismiss": "Ok",
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
"discussions.topics.unnamed.subsection.label": "Sous-section sans nom",
|
"discussions.topics.unnamed.subsection.label": "Sous-section sans nom",
|
||||||
"discussions.subtopics.unnamed.topic.label": "Sujet sans nom",
|
"discussions.subtopics.unnamed.topic.label": "Sujet sans nom",
|
||||||
"discussions.topics.title": "Aucun sujet n'existe",
|
"discussions.topics.title": "Aucun sujet n'existe",
|
||||||
"discussions.topics.createTopic": "Veuillez contacter votre admin pour créer un sujet",
|
"discussions.topics.createTopic": "Veuillez contacter votre administrateur pour créer un sujet",
|
||||||
"discussions.topics.nothing": "Rien ici encore",
|
"discussions.topics.nothing": "Rien ici encore",
|
||||||
"discussions.topics.archived.label": "Archivé",
|
"discussions.topics.archived.label": "Archivé",
|
||||||
"discussions.learner.reported": "{reported} signalé",
|
"discussions.learner.reported": "{reported} signalé",
|
||||||
@@ -20,12 +20,12 @@
|
|||||||
"discussions.learner.loadMostLearners": "Afficher plus",
|
"discussions.learner.loadMostLearners": "Afficher plus",
|
||||||
"discussions.learner.back": "Retour",
|
"discussions.learner.back": "Retour",
|
||||||
"discussions.learner.activityForLearner": "Activité pour {username}",
|
"discussions.learner.activityForLearner": "Activité pour {username}",
|
||||||
"discussions.learner.mostActivity": "Les plus actifs",
|
"discussions.learner.mostActivity": "La plupart des activités",
|
||||||
"discussions.learner.reportedActivity": "Activité signalée",
|
"discussions.learner.reportedActivity": "Activité signalée",
|
||||||
"discussions.learner.recentActivity": "Activité récente",
|
"discussions.learner.recentActivity": "Activité récente",
|
||||||
"discussions.learner.sortFilterStatus": "Tous les apprenants triés par {sort, select,\n flagged {l'activité signalée}\n activity {les plus actifs}\n other {{sort}}\n }",
|
"discussions.learner.sortFilterStatus": "Tous les apprenants triés pas {sort, select,\n flagged {reported activity}\n activity {most activity}\n other {{sort}}\n }",
|
||||||
"discussion.learner.allActivity": "Toutes les activités",
|
"discussion.learner.allActivity": "Toutes les activités",
|
||||||
"discussion.learner.posts": "Publications",
|
"discussion.learner.posts": "Posts",
|
||||||
"discussions.actions.button.alt": "Menu Actions",
|
"discussions.actions.button.alt": "Menu Actions",
|
||||||
"discussions.actions.copylink": "Copier le lien",
|
"discussions.actions.copylink": "Copier le lien",
|
||||||
"discussions.actions.edit": "Éditer",
|
"discussions.actions.edit": "Éditer",
|
||||||
@@ -39,10 +39,10 @@
|
|||||||
"discussions.actions.unreport": "Ne pas signaler",
|
"discussions.actions.unreport": "Ne pas signaler",
|
||||||
"discussions.actions.endorse": "Approuver",
|
"discussions.actions.endorse": "Approuver",
|
||||||
"discussions.actions.unendorse": "Ne plus approuver",
|
"discussions.actions.unendorse": "Ne plus approuver",
|
||||||
"discussions.actions.markAnswered": "Marquer comme répondue",
|
"discussions.actions.markAnswered": "Marquer comme répondu",
|
||||||
"discussions.actions.unMarkAnswered": "Décocher comme répondue",
|
"discussions.actions.unMarkAnswered": "Décocher comme répondu",
|
||||||
"discussions.modal.confirmation.button.cancel": "Annuler",
|
"discussions.modal.confirmation.button.cancel": "Annuler",
|
||||||
"discussions.empty.allTopics": "Toutes les activités de discussion pour ces sujets s'afficheront ici.",
|
"discussions.empty.allTopics": "Toutes les activités de discussion pour ces sujets apparaîtront ici.",
|
||||||
"discussions.empty.allPosts": "Toutes les activités de discussion pour votre cours s'afficheront ici.",
|
"discussions.empty.allPosts": "Toutes les activités de discussion pour votre cours s'afficheront ici.",
|
||||||
"discussions.empty.myPosts": "Les publications avec lesquelles vous avez interagi s'afficheront ici.",
|
"discussions.empty.myPosts": "Les publications avec lesquelles vous avez interagi s'afficheront ici.",
|
||||||
"discussions.empty.topic": "Toutes les activités de discussion pour ce sujet s'afficheront ici.",
|
"discussions.empty.topic": "Toutes les activités de discussion pour ce sujet s'afficheront ici.",
|
||||||
@@ -51,37 +51,40 @@
|
|||||||
"discussions.empty.noTopicSelected": "Aucun sujet sélectionné",
|
"discussions.empty.noTopicSelected": "Aucun sujet sélectionné",
|
||||||
"discussions.sidebar.noResultsFound": "Aucun résultat trouvé",
|
"discussions.sidebar.noResultsFound": "Aucun résultat trouvé",
|
||||||
"discussions.sidebar.differentKeywords": "Essayez de rechercher différents mots-clés",
|
"discussions.sidebar.differentKeywords": "Essayez de rechercher différents mots-clés",
|
||||||
"discussions.sidebar.removeKeywords": "Essayez de rechercher différents mots-clés ou de retirer certains filtres",
|
"discussions.sidebar.removeKeywords": "Essayez de rechercher différents mots clés ou de supprimer certains filtres",
|
||||||
"discussions.sidebar.removeKeywordsOnly": "Essayez de rechercher différents mots-clés",
|
"discussions.sidebar.removeKeywordsOnly": "Essayez de rechercher différents mots-clés",
|
||||||
"discussions.sidebar.removeFilters": "Essayez de retirer certains filtres",
|
"discussions.sidebar.removeFilters": "Essayez de supprimer certains filtres",
|
||||||
"discussions.empty.iconAlt": "Vide",
|
"discussions.empty.iconAlt": "Vide",
|
||||||
"discussions.authors.label.staff": "Personnel",
|
"discussions.authors.label.staff": "Équipe pédagogique",
|
||||||
"discussions.authors.label.ta": "Assistant d'enseignement",
|
"discussions.authors.label.ta": "Assistant d'enseignement",
|
||||||
"discussions.learner.loadMostPosts": "Charger plus de publications",
|
"discussions.learner.loadMostPosts": "Charger plus de messages",
|
||||||
"discussions.post.anonymous.author": "anonyme",
|
"discussions.post.anonymous.author": "anonyme",
|
||||||
"discussion.blackoutBanner.information": "La publication dans les discussions est désactivée par l'équipe du cours",
|
"discussion.banner.welcomeMessage": "🎉 Bienvenue dans la nouvelle expérience améliorée de discussions!",
|
||||||
|
"discussion.banner.learnMore": "En savoir plus",
|
||||||
|
"discussion.banner.shareFeedback": "Partager vos commentaires",
|
||||||
|
"discussion.blackoutBanner.information": "La publication dans les discussions est temporairement désactivée par l'équipe du cours",
|
||||||
"discussions.editor.image.warning.message": "Les images dont la largeur ou la hauteur est supérieure à 999 pixels ne seront pas visibles lorsque la publication, la réponse ou le commentaire est affiché à l'aide de discussions de cours en ligne",
|
"discussions.editor.image.warning.message": "Les images dont la largeur ou la hauteur est supérieure à 999 pixels ne seront pas visibles lorsque la publication, la réponse ou le commentaire est affiché à l'aide de discussions de cours en ligne",
|
||||||
"discussions.editor.image.warning.title": "Avertissement!",
|
"discussions.editor.image.warning.title": "Avertissement!",
|
||||||
"discussions.editor.image.warning.dismiss": "Ok",
|
"discussions.editor.image.warning.dismiss": "Ok",
|
||||||
"discussions.navigation.breadcrumbMenu.allTopics": "Sujets",
|
"discussions.navigation.breadcrumbMenu.allTopics": "Sujets",
|
||||||
"discussions.navigation.breadcrumbMenu.showAll": "Tout afficher",
|
"discussions.navigation.breadcrumbMenu.showAll": "Tout afficher",
|
||||||
"discussions.navigation.navigationBar.allPosts": "Toutes les publications",
|
"discussions.navigation.navigationBar.allPosts": "Tous les messages",
|
||||||
"discussions.navigation.navigationBar.allTopics": "Sujets",
|
"discussions.navigation.navigationBar.allTopics": "Sujets",
|
||||||
"discussions.navigation.navigationBar.myPosts": "Mes publications",
|
"discussions.navigation.navigationBar.myPosts": "Mes messages",
|
||||||
"discussions.navigation.navigationBar.learners": "Apprenants",
|
"discussions.navigation.navigationBar.learners": "Apprenants",
|
||||||
"discussions.comments.comment.addComment": "Ajouter un commentaire",
|
"discussions.comments.comment.addComment": "Ajouter un commentaire",
|
||||||
"discussions.comments.comment.addResponse": "Ajouter une réponse",
|
"discussions.comments.comment.addResponse": "Ajouter une réponse",
|
||||||
"discussions.comments.comment.abuseFlaggedMessage": "Contenu signalé au personnel pour examen",
|
"discussions.comments.comment.abuseFlaggedMessage": "Contenu signalé au personnel pour examen",
|
||||||
"discussions.actions.back.alt": "Retour à la liste",
|
"discussions.actions.back.alt": "Retour à la liste",
|
||||||
"discussions.comments.comment.responseCount": "{num, plural,\n =0 {Aucune réponse}\n one {Affiche # réponse}\n other {Affiche # réponses}\n }",
|
"discussions.comments.comment.responseCount": "{num, plural,\n =0 {Aucune réponse}\n one {Affiche # réponse}\n other {Affiche # réponses}\n }",
|
||||||
"discussions.comments.comment.endorsedResponseCount": "{num, plural,\n =0 {Aucune réponse approuvée}\n one {Affiche # réponse approuvée}\n other {Affiche # réponses approuvées}\n }",
|
"discussions.comments.comment.endorsedResponseCount": "{num, plural,\n =0 {No endorsed responses}\n one {Showing # endorsed response}\n other {Showing # endorsed responses}\n }",
|
||||||
"discussions.comments.comment.loadMoreComments": "Charger plus de commentaires",
|
"discussions.comments.comment.loadMoreComments": "Charger plus de commentaires",
|
||||||
"discussions.comments.comment.loadMoreResponses": "Charger plus de réponses",
|
"discussions.comments.comment.loadMoreResponses": "Charger plus de réponses",
|
||||||
"discussions.comments.comment.visibility": "Cette publication est visible par {group, select,\n null {Tous}\n other {{group}}\n }.",
|
"discussions.comments.comment.visibility": "Ce message est visible par {group, select,\n null {Everyone}\n other {{group}}\n }.",
|
||||||
"discussions.comments.comment.postedTime": "{postType, select,\n discussion {Discussion}\n question {Question}\n other {{postType}}\n } posted {relativeTime} by",
|
"discussions.comments.comment.postedTime": "{postType, select,\n discussion {Discussion}\n question {Question}\n other {{postType}}\n } posted {relativeTime} by",
|
||||||
"discussions.comments.comment.commentTime": "Publié {relativeTime}",
|
"discussions.comments.comment.commentTime": "Publié {relativeTime}",
|
||||||
"discussions.comments.comment.answer": "Réponse",
|
"discussions.comments.comment.answer": "Réponse",
|
||||||
"discussions.comments.comment.answeredlabel": "Marqué comme répondue par",
|
"discussions.comments.comment.answeredlabel": "Marqué comme répondu par",
|
||||||
"discussions.comments.comment.endorsed": "Approuvé",
|
"discussions.comments.comment.endorsed": "Approuvé",
|
||||||
"discussions.comments.comment.endorsedlabel": "Approuvé par",
|
"discussions.comments.comment.endorsedlabel": "Approuvé par",
|
||||||
"discussions.actions.label": "Menu Actions",
|
"discussions.actions.label": "Menu Actions",
|
||||||
@@ -103,22 +106,22 @@
|
|||||||
"discussions.comment.comments.editedBy": "Édité par",
|
"discussions.comment.comments.editedBy": "Édité par",
|
||||||
"discussions.comment.comments.fullStop": "•",
|
"discussions.comment.comments.fullStop": "•",
|
||||||
"discussions.comment.comments.reason": "Raison",
|
"discussions.comment.comments.reason": "Raison",
|
||||||
"discussions.post.closedBy": "Publication fermée par",
|
"discussions.post.closedBy": "Message fermé par",
|
||||||
"discussion.comment.time": "il y a {time}",
|
"discussion.comment.time": "il y a {time}",
|
||||||
"discussion.thread.notFound": "Sujet introuvable",
|
"discussion.thread.notFound": "Sujet introuvable",
|
||||||
"discussions.comment.sortFilterStatus": "{sort, select,\n false {plus ancien d'abord}\n true {plus récent d'abord}\n other {{sort}}\n }",
|
"discussions.comment.sortFilterStatus": "{sort, select,\n false {Oldest first}\n true {Newest first}\n other {{sort}}\n }",
|
||||||
"discussions.app.title": "Discussions",
|
"discussions.app.title": "Discussions",
|
||||||
"discussions.posts.actionBar.searchAllPosts": "Recherche dans les publications",
|
"discussions.posts.actionBar.searchAllPosts": "Recherche dans les messages",
|
||||||
"discussions.posts.actionBar.search": "{page, select,\n topics {Recherche sujets}\n posts {Recherche toutes publications}\n learners {Recherche apprenants}\n myPosts {Recherche mes publications}\n other {{page}}\n }",
|
"discussions.posts.actionBar.search": "{page, select,\n topics {Search topics}\n posts {Search all posts}\n learners {Search learners}\n myPosts {Search all posts}\n other {{page}}\n }",
|
||||||
"discussions.actionBar.searchInfo": "Affichage des résultats {count} pour \"{text}\"",
|
"discussions.actionBar.searchInfo": "Affichage des résultats {count} pour \"{text}\"",
|
||||||
"discussions.actionBar.searchRewriteInfo": "Aucun résultat trouvé pour \"{searchString}\". Affichage des résultats {count} pour \"{textSearchRewrite}\".",
|
"discussions.actionBar.searchRewriteInfo": "Aucun résultat trouvé pour \"(searchString}\". Affichage des résultats {count} pour \"{textSearchRewrite}\".",
|
||||||
"discussions.actionBar.searchInfoSearching": "Recherche...",
|
"discussions.actionBar.searchInfoSearching": "Recherche...",
|
||||||
"discussions.actionBar.clearSearch": "Effacer les résultats",
|
"discussions.actionBar.clearSearch": "Effacer les résultats",
|
||||||
"discussion.posts.actionBar.add": "Ajouter une publication",
|
"discussion.posts.actionBar.add": "Ajouter un message",
|
||||||
"discussion.posts.actionBar.close": "Fermer",
|
"discussion.posts.actionBar.close": "Fermer",
|
||||||
"discussions.post.editor.type": "Type de publication",
|
"discussions.post.editor.type": "Type de message",
|
||||||
"discussions.post.editor.addPostHeading": "Ajouter une publication",
|
"discussions.post.editor.addPostHeading": "Ajouter un message",
|
||||||
"discussions.post.editor.editPostHeading": "Modifier la publication",
|
"discussions.post.editor.editPostHeading": "Modifier le message",
|
||||||
"discussions.post.editor.typeDescription": "Les questions soulèvent des problèmes auxquels il faut répondre. Les discussions partagent des idées et démarrent des conversations.",
|
"discussions.post.editor.typeDescription": "Les questions soulèvent des problèmes auxquels il faut répondre. Les discussions partagent des idées et démarrent des conversations.",
|
||||||
"discussions.post.editor.required": "Obligatoire",
|
"discussions.post.editor.required": "Obligatoire",
|
||||||
"discussions.post.editor.questionType": "Question",
|
"discussions.post.editor.questionType": "Question",
|
||||||
@@ -126,16 +129,16 @@
|
|||||||
"discussions.post.editor.discussionType": "Discussion",
|
"discussions.post.editor.discussionType": "Discussion",
|
||||||
"discussions.post.editor.discussionDescription": "Partagez des idées et démarrez des conversations",
|
"discussions.post.editor.discussionDescription": "Partagez des idées et démarrez des conversations",
|
||||||
"discussions.post.editor.topicArea": "Secteur thématique",
|
"discussions.post.editor.topicArea": "Secteur thématique",
|
||||||
"discussions.post.editor.topicAreaDescription": "Ajouter votre publication à un sujet pertinent afin d'aider les autres à la trouver.",
|
"discussions.post.editor.topicAreaDescription": "Ajouter votre message à un sujet pertinent afin d'aider les autres à le trouver.",
|
||||||
"discussions.post.editor.cohortVisibility": "Visibilité de la cohorte",
|
"discussions.post.editor.cohortVisibility": "Visibilité de la cohorte",
|
||||||
"discussions.post.editor.cohortVisibilityAllLearners": "Tous les apprenants",
|
"discussions.post.editor.cohortVisibilityAllLearners": "Tous les apprenants",
|
||||||
"discussions.post.editor.title": "Titre de la publication",
|
"discussions.post.editor.title": "Titre de l'article",
|
||||||
"discussions.post.editor.titleDescription": "Ajouter un titre clair et descriptif afin d'encourager la participation.",
|
"discussions.post.editor.titleDescription": "Ajouter un titre clair et descriptif afin d'encourager la participation.",
|
||||||
"discussions.post.editor.title.error": "Le titre de la publication ne peut pas être vide.",
|
"discussions.post.editor.title.error": "Le titre du message ne peut pas être vide.",
|
||||||
"discussions.post.editor.content.error": "Le contenu de la publication ne peut pas être vide.",
|
"discussions.post.editor.content.error": "Le contenu de la publication ne peut pas être vide.",
|
||||||
"discussions.post.editor.questionText": "Votre question ou idée (obligatoire)",
|
"discussions.post.editor.questionText": "Votre question ou idée (obligatoire)",
|
||||||
"discussions.post.editor.preview": "Aperçu",
|
"discussions.post.editor.preview": "Aperçu",
|
||||||
"discussions.post.editor.followPost": "Suivez cette publication",
|
"discussions.post.editor.followPost": "Suivez ce message",
|
||||||
"discussions.post.editor.anonymousPost": "Publier anonymement",
|
"discussions.post.editor.anonymousPost": "Publier anonymement",
|
||||||
"discussions.post.editor.anonymousToPeersPost": "Publier anonymement à vos pairs",
|
"discussions.post.editor.anonymousToPeersPost": "Publier anonymement à vos pairs",
|
||||||
"discussions.editor.posts.editReasonCode": "Raison de la modification",
|
"discussions.editor.posts.editReasonCode": "Raison de la modification",
|
||||||
@@ -147,65 +150,65 @@
|
|||||||
"discussions.posts.filter.questions": "Questions",
|
"discussions.posts.filter.questions": "Questions",
|
||||||
"discussions.posts.filter.message": "Statut : {filterBy}",
|
"discussions.posts.filter.message": "Statut : {filterBy}",
|
||||||
"discussions.posts.status.filter.anyStatus": "Tout statut",
|
"discussions.posts.status.filter.anyStatus": "Tout statut",
|
||||||
"discussions.posts.status.filter.unread": "Non lues",
|
"discussions.posts.status.filter.unread": "Non lu",
|
||||||
"discussions.posts.status.filter.following": "Suivies",
|
"discussions.posts.status.filter.following": "Suivi",
|
||||||
"discussions.posts.status.filter.reported": "Signalées",
|
"discussions.posts.status.filter.reported": "Signalé",
|
||||||
"discussions.posts.status.filter.unanswered": "Sans réponses",
|
"discussions.posts.status.filter.unanswered": "Non répondu",
|
||||||
"discussions.posts.status.filter.unresponded": "Non répondues",
|
"discussions.posts.status.filter.unresponded": "Pas répondu",
|
||||||
"discussions.posts.filter.myPosts": "Mes publications",
|
"discussions.posts.filter.myPosts": "Mes messages",
|
||||||
"discussions.posts.filter.myDiscussions": "Mes discussions",
|
"discussions.posts.filter.myDiscussions": "Mes discussions",
|
||||||
"discussions.posts.filter.myQuestions": "Mes questions",
|
"discussions.posts.filter.myQuestions": "Mes questions",
|
||||||
"discussions.posts.sort.message": "Triées par {sortBy}",
|
"discussions.posts.sort.message": "Trié par {sortBy}",
|
||||||
"discussions.posts.sort.lastActivity": "Activité récente",
|
"discussions.posts.sort.lastActivity": "Activité récente",
|
||||||
"discussions.posts.sort.commentCount": "Les plus actives",
|
"discussions.posts.sort.commentCount": "La plupart des activités",
|
||||||
"discussions.posts.sort.voteCount": "Les plus aimées",
|
"discussions.posts.sort.voteCount": "La plupart des aimés",
|
||||||
"discussions.posts.sort-filter.sortFilterStatus": "{own, select,\n false {Toutes}\n true {Own}\n other {{own}}\n } {type, select,\n discussion {les discussions}\n question {les questions}\n all {les publications}\n other {{type}}\n } {status, select,\n statusAll {}\n statusUnread {non lues}\n statusFollowing {suivies}\n statusReported {signalées}\n statusUnanswered {sans réponses}\n statusUnresponded {non répondues}\n other {{status}}\n } {cohortType, select,\n all {}\n group {dans {cohort}}\n other {{cohortType}}\n } triées selon {sort, select,\n lastActivityAt {les plus récentes}\n commentCount {les plus actives}\n voteCount {les plus aimées}\n other {{sort}}\n }",
|
"discussions.posts.sort-filter.sortFilterStatus": "{own, select,\n false {All}\n true {Own}\n other {{own}}\n } {status, select,\n statusAll {}\n statusUnread {unread}\n statusFollowing {followed}\n statusReported {reported}\n statusUnanswered {unanswered}\n statusUnresponded {unresponded}\n other {{status}}\n } {type, select,\n discussion {discussions}\n question {questions}\n all {posts}\n other {{type}}\n } {cohortType, select,\n all {}\n group {in {cohort}}\n other {{cohortType}}\n } sorted by {sort, select,\n lastActivityAt {recent activity}\n commentCount {most activity}\n voteCount {most likes}\n other {{sort}}\n }",
|
||||||
"discussions.post.author.anonymous": "anonyme",
|
"discussions.post.author.anonymous": "anonyme",
|
||||||
"discussions.post.addResponse": "Ajouter une réponse",
|
"discussions.post.addResponse": "Ajouter une réponse",
|
||||||
"discussions.post.lastResponse": "Dernière réponse {time}",
|
"discussions.post.lastResponse": "Dernière réponse {time}",
|
||||||
"discussions.post.postedOn": "Publiée {time} par {author} {authorLabel}",
|
"discussions.post.postedOn": "Publié {time} par {author} {authorLabel}",
|
||||||
"discussions.post.contentReported": "Signalées",
|
"discussions.post.contentReported": "Signalé",
|
||||||
"discussions.post.following": "Suivies",
|
"discussions.post.following": "Suivi",
|
||||||
"discussions.post.follow": "Suivre",
|
"discussions.post.follow": "Suivre",
|
||||||
"discussions.post.followed": "Suivies",
|
"discussions.post.followed": "Suivi",
|
||||||
"discussions.post.notFollowed": "Non suivies",
|
"discussions.post.notFollowed": "Non suivi",
|
||||||
"discussions.post.answered": "Répondues",
|
"discussions.post.answered": "Répondu",
|
||||||
"discussions.post.unFollow": "Ne plus suivre",
|
"discussions.post.unFollow": "Ne plus suivre",
|
||||||
"discussions.post.like": "Aime",
|
"discussions.post.like": "Aime",
|
||||||
"discussions.post.removeLike": "N'aime plus",
|
"discussions.post.removeLike": "Contrairement à",
|
||||||
"discussions.post.liked": "aimées",
|
"discussions.post.liked": "aimé",
|
||||||
"discussions.post.likes": "aime",
|
"discussions.post.likes": "aime",
|
||||||
"discussions.post.viewActivity": "Afficher l'activité",
|
"discussions.post.viewActivity": "Afficher l'activité",
|
||||||
"discussions.post.activity": "Activité",
|
"discussions.post.activity": "Activité",
|
||||||
"discussions.post.closed": "Publication fermée pour réponses et commentaires",
|
"discussions.post.closed": "Message fermé pour réponses et commentaires",
|
||||||
"discussions.post.relatedTo": "Relative à",
|
"discussions.post.relatedTo": "Relative à",
|
||||||
"discussions.editor.delete.post.title": "Supprimer la publication",
|
"discussions.editor.delete.post.title": "Supprimer le message",
|
||||||
"discussions.editor.delete.post.description": "Êtes-vous sûr de vouloir supprimer définitivement cette publication?",
|
"discussions.editor.delete.post.description": "Êtes-vous sûr de vouloir supprimer définitivement ce message?",
|
||||||
"discussions.post.delete.confirmation.button.delete": "Supprimer",
|
"discussions.post.delete.confirmation.button.delete": "Supprimer",
|
||||||
"discussions.editor.report.post.title": "Signaler un contenu inapproprié?",
|
"discussions.editor.report.post.title": "Signaler un contenu inapproprié?",
|
||||||
"discussions.editor.report.post.description": "L'équipe de modération de la discussion examinera ce contenu et prendra les mesures appropriées.",
|
"discussions.editor.report.post.description": "L'équipe de modération de la discussion examinera ce contenu et prendra les mesures appropriées.",
|
||||||
"discussions.post.closePostModal.title": "Fermer la publication",
|
"discussions.post.closePostModal.title": "Fermer le message",
|
||||||
"discussions.post.closePostModal.text": "Entrez une raison pour fermer cette publication. Cela ne sera affiché qu'aux autres modérateurs.",
|
"discussions.post.closePostModal.text": "Entrez une raison pour fermer ce message. Cela ne sera affiché qu'aux autres modérateurs.",
|
||||||
"discussions.post.closePostModal.reasonCodeInput": "Raison",
|
"discussions.post.closePostModal.reasonCodeInput": "Raison",
|
||||||
"discussions.post.closePostModal.cancel": "Annuler",
|
"discussions.post.closePostModal.cancel": "Annuler",
|
||||||
"discussions.post.closePostModal.confirm": "Fermer la publication",
|
"discussions.post.closePostModal.confirm": "Fermer le message",
|
||||||
"discussions.post.label.new": "{count} Nouveau",
|
"discussions.post.label.new": "{count} Nouveau",
|
||||||
"discussions.post.editedBy": "Éditée par",
|
"discussions.post.editedBy": "Édité par",
|
||||||
"discussions.post.editReason": "Raison",
|
"discussions.post.editReason": "Raison",
|
||||||
"discussions.post.postWithoutPreview": "Aucun aperçu disponible",
|
"discussions.post.postWithoutPreview": "Aucun aperçu disponible",
|
||||||
"discussions.post.follow.description": "vous suivez cette publication",
|
"discussions.post.follow.description": "vous suivez ce post",
|
||||||
"discussions.post.unfollow.description": "vous ne suivez pas cette publication",
|
"discussions.post.unfollow.description": "vous ne suivez pas ce post",
|
||||||
"discussions.topics.sort.message": "Triées par {sortBy}",
|
"discussions.topics.sort.message": "Trié par {sortBy}",
|
||||||
"discussions.topics.sort.lastActivity": "Activité récente",
|
"discussions.topics.sort.lastActivity": "Activité récente",
|
||||||
"discussions.topics.sort.commentCount": "Les plus actives",
|
"discussions.topics.sort.commentCount": "La plupart des activités",
|
||||||
"discussions.topics.sort.courseStructure": "Structure du cours",
|
"discussions.topics.sort.courseStructure": "Structure du cours",
|
||||||
"discussions.topics.unnamed.label": "Catégorie sans nom",
|
"discussions.topics.unnamed.label": "Catégorie sans nom",
|
||||||
"discussions.subtopics.unnamed.label": "Sous-catégorie sans nom",
|
"discussions.subtopics.unnamed.label": "Sous-catégorie sans nom",
|
||||||
"tour.action.advance": "Suivant",
|
"tour.action.advance": "Suivant",
|
||||||
"tour.action.dismiss": "Rejeter",
|
"tour.action.dismiss": "Rejeter",
|
||||||
"tour.action.end": "D'accord",
|
"tour.action.end": "D'accord",
|
||||||
"tour.body.notRespondedFilter": "Vous pouvez maintenant filtrer les discussions pour trouver les publications sans réponses.",
|
"tour.body.notRespondedFilter": "Vous pouvez maintenant filtrer les discussions pour trouver les messages sans réponse.",
|
||||||
"tour.title.notRespondedFilter": "Nouvelle option de filtrage!",
|
"tour.title.notRespondedFilter": "Nouvelle option de filtrage!",
|
||||||
"tour.body.responseSortTour": "Les réponses et les commentaires sont désormais triés par les plus récents en premier. Veuillez utiliser cette option pour modifier l'ordre de tri",
|
"tour.body.responseSortTour": "Les réponses et les commentaires sont désormais triés par les plus récents en premier. Veuillez utiliser cette option pour modifier l'ordre de tri",
|
||||||
"tour.title.responseSortTour": "Triez les réponses!"
|
"tour.title.responseSortTour": "Triez les réponses !"
|
||||||
}
|
}
|
||||||
@@ -59,7 +59,10 @@
|
|||||||
"discussions.authors.label.ta": "TA",
|
"discussions.authors.label.ta": "TA",
|
||||||
"discussions.learner.loadMostPosts": "Load more posts",
|
"discussions.learner.loadMostPosts": "Load more posts",
|
||||||
"discussions.post.anonymous.author": "anonymous",
|
"discussions.post.anonymous.author": "anonymous",
|
||||||
"discussion.blackoutBanner.information": "Posting in discussions is disabled by the course team",
|
"discussion.banner.welcomeMessage": "🎉 Welcome to the new and improved discussions experience!",
|
||||||
|
"discussion.banner.learnMore": "Learn more",
|
||||||
|
"discussion.banner.shareFeedback": "Share feedback",
|
||||||
|
"discussion.blackoutBanner.information": "Posting in discussions is temporarily disabled by the course team",
|
||||||
"discussions.editor.image.warning.message": "Images having width or height greater than 999px will not be visible when the post, response or comment is viewed using in-line course discussions",
|
"discussions.editor.image.warning.message": "Images having width or height greater than 999px will not be visible when the post, response or comment is viewed using in-line course discussions",
|
||||||
"discussions.editor.image.warning.title": "Warning!",
|
"discussions.editor.image.warning.title": "Warning!",
|
||||||
"discussions.editor.image.warning.dismiss": "Ok",
|
"discussions.editor.image.warning.dismiss": "Ok",
|
||||||
|
|||||||
@@ -59,7 +59,10 @@
|
|||||||
"discussions.authors.label.ta": "TA",
|
"discussions.authors.label.ta": "TA",
|
||||||
"discussions.learner.loadMostPosts": "Load more posts",
|
"discussions.learner.loadMostPosts": "Load more posts",
|
||||||
"discussions.post.anonymous.author": "anonymous",
|
"discussions.post.anonymous.author": "anonymous",
|
||||||
"discussion.blackoutBanner.information": "Posting in discussions is disabled by the course team",
|
"discussion.banner.welcomeMessage": "🎉 Welcome to the new and improved discussions experience!",
|
||||||
|
"discussion.banner.learnMore": "Learn more",
|
||||||
|
"discussion.banner.shareFeedback": "Share feedback",
|
||||||
|
"discussion.blackoutBanner.information": "Posting in discussions is temporarily disabled by the course team",
|
||||||
"discussions.editor.image.warning.message": "Images having width or height greater than 999px will not be visible when the post, response or comment is viewed using in-line course discussions",
|
"discussions.editor.image.warning.message": "Images having width or height greater than 999px will not be visible when the post, response or comment is viewed using in-line course discussions",
|
||||||
"discussions.editor.image.warning.title": "Warning!",
|
"discussions.editor.image.warning.title": "Warning!",
|
||||||
"discussions.editor.image.warning.dismiss": "Ok",
|
"discussions.editor.image.warning.dismiss": "Ok",
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
"discussions.learner.mostActivity": "La maggior parte delle attività",
|
"discussions.learner.mostActivity": "La maggior parte delle attività",
|
||||||
"discussions.learner.reportedActivity": "Attività segnalata",
|
"discussions.learner.reportedActivity": "Attività segnalata",
|
||||||
"discussions.learner.recentActivity": "Recent activity",
|
"discussions.learner.recentActivity": "Recent activity",
|
||||||
"discussions.learner.sortFilterStatus": "Tutti gli studenti ordinati per {sort, select,\nsegnalati {reported activity}\nattività {most activity}\naltro {{sort}}\n}",
|
"discussions.learner.sortFilterStatus": "All learners sorted by {sort, select,\n flagged {reported activity}\n activity {most activity}\n other {{sort}}\n }",
|
||||||
"discussion.learner.allActivity": "All activity",
|
"discussion.learner.allActivity": "All activity",
|
||||||
"discussion.learner.posts": "Posts",
|
"discussion.learner.posts": "Posts",
|
||||||
"discussions.actions.button.alt": "Menù Azioni",
|
"discussions.actions.button.alt": "Menù Azioni",
|
||||||
@@ -59,7 +59,10 @@
|
|||||||
"discussions.authors.label.ta": "TA",
|
"discussions.authors.label.ta": "TA",
|
||||||
"discussions.learner.loadMostPosts": "Carica più post",
|
"discussions.learner.loadMostPosts": "Carica più post",
|
||||||
"discussions.post.anonymous.author": "anonimo",
|
"discussions.post.anonymous.author": "anonimo",
|
||||||
"discussion.blackoutBanner.information": "Posting in discussions is disabled by the course team",
|
"discussion.banner.welcomeMessage": "🎉 Benvenuto nella nuova e avanzata esperienza di discussione!",
|
||||||
|
"discussion.banner.learnMore": "Per saperne di più",
|
||||||
|
"discussion.banner.shareFeedback": "Condividi feedback",
|
||||||
|
"discussion.blackoutBanner.information": "Posting in discussions is temporarily disabled by the course team",
|
||||||
"discussions.editor.image.warning.message": "Images having width or height greater than 999px will not be visible when the post, response or comment is viewed using in-line course discussions",
|
"discussions.editor.image.warning.message": "Images having width or height greater than 999px will not be visible when the post, response or comment is viewed using in-line course discussions",
|
||||||
"discussions.editor.image.warning.title": "Warning!",
|
"discussions.editor.image.warning.title": "Warning!",
|
||||||
"discussions.editor.image.warning.dismiss": "Ok",
|
"discussions.editor.image.warning.dismiss": "Ok",
|
||||||
@@ -69,7 +72,7 @@
|
|||||||
"discussions.navigation.navigationBar.allTopics": "Argomenti",
|
"discussions.navigation.navigationBar.allTopics": "Argomenti",
|
||||||
"discussions.navigation.navigationBar.myPosts": "I miei post",
|
"discussions.navigation.navigationBar.myPosts": "I miei post",
|
||||||
"discussions.navigation.navigationBar.learners": "Utenti",
|
"discussions.navigation.navigationBar.learners": "Utenti",
|
||||||
"discussions.comments.comment.addComment": "Aggiungi commento",
|
"discussions.comments.comment.addComment": "Add comment",
|
||||||
"discussions.comments.comment.addResponse": "Aggiungi una risposta",
|
"discussions.comments.comment.addResponse": "Aggiungi una risposta",
|
||||||
"discussions.comments.comment.abuseFlaggedMessage": "Contenuto segnalato per la revisione da parte del personale",
|
"discussions.comments.comment.abuseFlaggedMessage": "Contenuto segnalato per la revisione da parte del personale",
|
||||||
"discussions.actions.back.alt": "Back to list",
|
"discussions.actions.back.alt": "Back to list",
|
||||||
|
|||||||
@@ -59,7 +59,10 @@
|
|||||||
"discussions.authors.label.ta": "TA",
|
"discussions.authors.label.ta": "TA",
|
||||||
"discussions.learner.loadMostPosts": "Wczytaj więcej postów",
|
"discussions.learner.loadMostPosts": "Wczytaj więcej postów",
|
||||||
"discussions.post.anonymous.author": "anonymous",
|
"discussions.post.anonymous.author": "anonymous",
|
||||||
"discussion.blackoutBanner.information": "Posting in discussions is disabled by the course team",
|
"discussion.banner.welcomeMessage": "🎉 Welcome to the new and improved discussions experience!",
|
||||||
|
"discussion.banner.learnMore": "Learn more",
|
||||||
|
"discussion.banner.shareFeedback": "Share feedback",
|
||||||
|
"discussion.blackoutBanner.information": "Posting in discussions is temporarily disabled by the course team",
|
||||||
"discussions.editor.image.warning.message": "Images having width or height greater than 999px will not be visible when the post, response or comment is viewed using in-line course discussions",
|
"discussions.editor.image.warning.message": "Images having width or height greater than 999px will not be visible when the post, response or comment is viewed using in-line course discussions",
|
||||||
"discussions.editor.image.warning.title": "Warning!",
|
"discussions.editor.image.warning.title": "Warning!",
|
||||||
"discussions.editor.image.warning.dismiss": "Ok",
|
"discussions.editor.image.warning.dismiss": "Ok",
|
||||||
|
|||||||
@@ -59,7 +59,10 @@
|
|||||||
"discussions.authors.label.ta": "TA",
|
"discussions.authors.label.ta": "TA",
|
||||||
"discussions.learner.loadMostPosts": "Carregar mais mensagens",
|
"discussions.learner.loadMostPosts": "Carregar mais mensagens",
|
||||||
"discussions.post.anonymous.author": "anónimo",
|
"discussions.post.anonymous.author": "anónimo",
|
||||||
"discussion.blackoutBanner.information": "Posting in discussions is disabled by the course team",
|
"discussion.banner.welcomeMessage": "🎉 Bem-vindo à nova e melhorada experiência de debate!",
|
||||||
|
"discussion.banner.learnMore": "Saber mais",
|
||||||
|
"discussion.banner.shareFeedback": "Partilhar comentários",
|
||||||
|
"discussion.blackoutBanner.information": "O envio de mensagens para os debates está temporariamente desactivado pela equipa de curso",
|
||||||
"discussions.editor.image.warning.message": "As imagens com largura ou altura superior a 999px não serão visíveis quando a mensagem, resposta ou comentário for visualizado utilizando os debates em linha da disciplina",
|
"discussions.editor.image.warning.message": "As imagens com largura ou altura superior a 999px não serão visíveis quando a mensagem, resposta ou comentário for visualizado utilizando os debates em linha da disciplina",
|
||||||
"discussions.editor.image.warning.title": "Aviso!",
|
"discussions.editor.image.warning.title": "Aviso!",
|
||||||
"discussions.editor.image.warning.dismiss": "Ok",
|
"discussions.editor.image.warning.dismiss": "Ok",
|
||||||
|
|||||||
@@ -59,7 +59,10 @@
|
|||||||
"discussions.authors.label.ta": "TA",
|
"discussions.authors.label.ta": "TA",
|
||||||
"discussions.learner.loadMostPosts": "Load more posts",
|
"discussions.learner.loadMostPosts": "Load more posts",
|
||||||
"discussions.post.anonymous.author": "anonymous",
|
"discussions.post.anonymous.author": "anonymous",
|
||||||
"discussion.blackoutBanner.information": "Posting in discussions is disabled by the course team",
|
"discussion.banner.welcomeMessage": "🎉 Welcome to the new and improved discussions experience!",
|
||||||
|
"discussion.banner.learnMore": "Learn more",
|
||||||
|
"discussion.banner.shareFeedback": "Share feedback",
|
||||||
|
"discussion.blackoutBanner.information": "Posting in discussions is temporarily disabled by the course team",
|
||||||
"discussions.editor.image.warning.message": "Images having width or height greater than 999px will not be visible when the post, response or comment is viewed using in-line course discussions",
|
"discussions.editor.image.warning.message": "Images having width or height greater than 999px will not be visible when the post, response or comment is viewed using in-line course discussions",
|
||||||
"discussions.editor.image.warning.title": "Warning!",
|
"discussions.editor.image.warning.title": "Warning!",
|
||||||
"discussions.editor.image.warning.dismiss": "Ok",
|
"discussions.editor.image.warning.dismiss": "Ok",
|
||||||
|
|||||||
@@ -59,7 +59,10 @@
|
|||||||
"discussions.authors.label.ta": "TA",
|
"discussions.authors.label.ta": "TA",
|
||||||
"discussions.learner.loadMostPosts": "Daha fazla ileti yükle",
|
"discussions.learner.loadMostPosts": "Daha fazla ileti yükle",
|
||||||
"discussions.post.anonymous.author": "anonim",
|
"discussions.post.anonymous.author": "anonim",
|
||||||
"discussion.blackoutBanner.information": "Posting in discussions is disabled by the course team",
|
"discussion.banner.welcomeMessage": "🎉 Yeni ve geliştirilmiş tartışma deneyimine hoş geldiniz!",
|
||||||
|
"discussion.banner.learnMore": "Daha fazlasını öğren",
|
||||||
|
"discussion.banner.shareFeedback": "Geri bildirim paylaş",
|
||||||
|
"discussion.blackoutBanner.information": "Tartışmalarda ileti yayınlama, ders ekibi tarafından geçici olarak devre dışı bırakıldı",
|
||||||
"discussions.editor.image.warning.message": "Genişliği veya yüksekliği 999 pikselden büyük olan resimler, çevrimiçi ders tartışmalarında yer alan gönderi, yanıt veya yorumlarda görüntülenemez.",
|
"discussions.editor.image.warning.message": "Genişliği veya yüksekliği 999 pikselden büyük olan resimler, çevrimiçi ders tartışmalarında yer alan gönderi, yanıt veya yorumlarda görüntülenemez.",
|
||||||
"discussions.editor.image.warning.title": "Uyarı!",
|
"discussions.editor.image.warning.title": "Uyarı!",
|
||||||
"discussions.editor.image.warning.dismiss": "Tamam",
|
"discussions.editor.image.warning.dismiss": "Tamam",
|
||||||
|
|||||||
@@ -59,7 +59,10 @@
|
|||||||
"discussions.authors.label.ta": "TA",
|
"discussions.authors.label.ta": "TA",
|
||||||
"discussions.learner.loadMostPosts": "Load more posts",
|
"discussions.learner.loadMostPosts": "Load more posts",
|
||||||
"discussions.post.anonymous.author": "anonymous",
|
"discussions.post.anonymous.author": "anonymous",
|
||||||
"discussion.blackoutBanner.information": "Posting in discussions is disabled by the course team",
|
"discussion.banner.welcomeMessage": "🎉 Welcome to the new and improved discussions experience!",
|
||||||
|
"discussion.banner.learnMore": "Learn more",
|
||||||
|
"discussion.banner.shareFeedback": "Share feedback",
|
||||||
|
"discussion.blackoutBanner.information": "Posting in discussions is temporarily disabled by the course team",
|
||||||
"discussions.editor.image.warning.message": "Images having width or height greater than 999px will not be visible when the post, response or comment is viewed using in-line course discussions",
|
"discussions.editor.image.warning.message": "Images having width or height greater than 999px will not be visible when the post, response or comment is viewed using in-line course discussions",
|
||||||
"discussions.editor.image.warning.title": "Warning!",
|
"discussions.editor.image.warning.title": "Warning!",
|
||||||
"discussions.editor.image.warning.dismiss": "Ok",
|
"discussions.editor.image.warning.dismiss": "Ok",
|
||||||
|
|||||||
@@ -59,7 +59,10 @@
|
|||||||
"discussions.authors.label.ta": "TA",
|
"discussions.authors.label.ta": "TA",
|
||||||
"discussions.learner.loadMostPosts": "Load more posts",
|
"discussions.learner.loadMostPosts": "Load more posts",
|
||||||
"discussions.post.anonymous.author": "anonymous",
|
"discussions.post.anonymous.author": "anonymous",
|
||||||
"discussion.blackoutBanner.information": "Posting in discussions is disabled by the course team",
|
"discussion.banner.welcomeMessage": "🎉 Welcome to the new and improved discussions experience!",
|
||||||
|
"discussion.banner.learnMore": "Learn more",
|
||||||
|
"discussion.banner.shareFeedback": "Share feedback",
|
||||||
|
"discussion.blackoutBanner.information": "Posting in discussions is temporarily disabled by the course team",
|
||||||
"discussions.editor.image.warning.message": "Images having width or height greater than 999px will not be visible when the post, response or comment is viewed using in-line course discussions",
|
"discussions.editor.image.warning.message": "Images having width or height greater than 999px will not be visible when the post, response or comment is viewed using in-line course discussions",
|
||||||
"discussions.editor.image.warning.title": "Warning!",
|
"discussions.editor.image.warning.title": "Warning!",
|
||||||
"discussions.editor.image.warning.dismiss": "Ok",
|
"discussions.editor.image.warning.dismiss": "Ok",
|
||||||
|
|||||||
@@ -37,8 +37,7 @@ initialize({
|
|||||||
config: () => {
|
config: () => {
|
||||||
mergeConfig({
|
mergeConfig({
|
||||||
LEARNING_BASE_URL: process.env.LEARNING_BASE_URL,
|
LEARNING_BASE_URL: process.env.LEARNING_BASE_URL,
|
||||||
LEARNER_FEEDBACK_URL: process.env.LEARNER_FEEDBACK_URL,
|
DISPLAY_FEEDBACK_BANNER: process.env.DISPLAY_FEEDBACK_BANNER || 'false',
|
||||||
STAFF_FEEDBACK_URL: process.env.STAFF_FEEDBACK_URL,
|
|
||||||
}, 'DiscussionsConfig');
|
}, 'DiscussionsConfig');
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
@import "~@edx/brand/paragon/fonts.scss";
|
@import "@edx/brand/paragon/fonts.scss";
|
||||||
@import "~@edx/brand/paragon/variables.scss";
|
@import "@edx/brand/paragon/variables.scss";
|
||||||
@import "~@edx/paragon/scss/core/core.scss";
|
@import "@edx/paragon/scss/core/core.scss";
|
||||||
@import "~@edx/brand/paragon/overrides.scss";
|
@import "@edx/brand/paragon/overrides.scss";
|
||||||
|
|
||||||
@import "~@edx/frontend-component-footer/dist/footer";
|
@import "~@edx/frontend-component-footer/dist/footer";
|
||||||
@import "~@edx/frontend-component-header/dist/index";
|
@import "~@edx/frontend-component-header/dist/index";
|
||||||
@@ -65,6 +65,10 @@ $fa-font-path: "~font-awesome/fonts";
|
|||||||
font-style: normal !important;
|
font-style: normal !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.font-family-inter {
|
||||||
|
font-family: "Inter";
|
||||||
|
}
|
||||||
|
|
||||||
.post-footer-icon-dimentions {
|
.post-footer-icon-dimentions {
|
||||||
width: 32px !important;
|
width: 32px !important;
|
||||||
height: 32px !important;
|
height: 32px !important;
|
||||||
@@ -241,10 +245,6 @@ header {
|
|||||||
|
|
||||||
.sidebar-desktop-width {
|
.sidebar-desktop-width {
|
||||||
min-width: 29rem !important;
|
min-width: 29rem !important;
|
||||||
|
|
||||||
@include media-breakpoint-down(lg) {
|
|
||||||
min-width: 25rem !important;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar-XL-width {
|
.sidebar-XL-width {
|
||||||
@@ -255,13 +255,8 @@ header {
|
|||||||
background-color: #e9e6e4 !important;
|
background-color: #e9e6e4 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.border-light-400-2 {
|
.border-2 {
|
||||||
border: 2px solid $light-400 !important;
|
border: 2px solid #cccccc !important;
|
||||||
border-width: 2px !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.border-primary-500-2 {
|
|
||||||
border: 2px solid $primary-500 !important;
|
|
||||||
border-width: 2px !important;
|
border-width: 2px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -283,6 +278,7 @@ header {
|
|||||||
|
|
||||||
header {
|
header {
|
||||||
line-height: 28px;
|
line-height: 28px;
|
||||||
|
font-family: Inter, Helvetica Neue, Arial, sans-serif;
|
||||||
font-size: 18px !important;
|
font-size: 18px !important;
|
||||||
|
|
||||||
.user-dropdown {
|
.user-dropdown {
|
||||||
@@ -318,10 +314,12 @@ header {
|
|||||||
|
|
||||||
#courseTabsNavigation {
|
#courseTabsNavigation {
|
||||||
font-size: 18px !important;
|
font-size: 18px !important;
|
||||||
|
font-family: Inter, Helvetica Neue, Arial, sans-serif;
|
||||||
z-index: 3;
|
z-index: 3;
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
|
|
||||||
.container-xl {
|
.container-xl {
|
||||||
|
padding-left: 31px;
|
||||||
font-size: 1.125rem;
|
font-size: 1.125rem;
|
||||||
|
|
||||||
.nav {
|
.nav {
|
||||||
@@ -340,7 +338,7 @@ header {
|
|||||||
|
|
||||||
.header-action-bar {
|
.header-action-bar {
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
z-index: 2 !important;
|
z-index: 3;
|
||||||
box-shadow: 0px 2px 4px rgb(0 0 0 / 15%), 0px 2px 8px rgb(0 0 0 / 15%);
|
box-shadow: 0px 2px 4px rgb(0 0 0 / 15%), 0px 2px 8px rgb(0 0 0 / 15%);
|
||||||
position: sticky;
|
position: sticky;
|
||||||
top: 0;
|
top: 0;
|
||||||
@@ -349,19 +347,11 @@ header {
|
|||||||
.nav-item:not(:last-child){
|
.nav-item:not(:last-child){
|
||||||
.nav-link {
|
.nav-link {
|
||||||
border-right: 0;
|
border-right: 0;
|
||||||
|
|
||||||
@media screen and (max-width: 567px) {
|
|
||||||
border-right: solid 1px #e9e6e4;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.tox-tinymce-aux {
|
|
||||||
z-index: 1 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.breadcrumb-menu {
|
.breadcrumb-menu {
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
}
|
}
|
||||||
@@ -477,10 +467,6 @@ header {
|
|||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.pgn__avatar {
|
|
||||||
flex-shrink: 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.spinner-dimentions {
|
.spinner-dimentions {
|
||||||
@@ -493,6 +479,7 @@ header {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.font-style {
|
.font-style {
|
||||||
|
font-family: "Inter";
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -509,11 +496,6 @@ header {
|
|||||||
z-index: 1;
|
z-index: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.comment-line {
|
|
||||||
width: calc(100% - 180px);
|
|
||||||
line-height: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-preview,
|
.post-preview,
|
||||||
.discussion-comments {
|
.discussion-comments {
|
||||||
blockquote {
|
blockquote {
|
||||||
@@ -555,9 +537,3 @@ header {
|
|||||||
left: 50%;
|
left: 50%;
|
||||||
transform: translate(-50%, -50%);
|
transform: translate(-50%, -50%);
|
||||||
}
|
}
|
||||||
|
|
||||||
.author-name {
|
|
||||||
line-height: 1.5;
|
|
||||||
word-break: break-all;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user