+
+ );
+}
+
class SiteFooter extends React.Component {
constructor(props) {
super(props);
@@ -46,28 +112,33 @@ class SiteFooter extends React.Component {
return (
);
}
diff --git a/src/components/Footer.messages.js b/src/components/Footer.messages.js
index 59d1bfc8bb..1176aa3f73 100644
--- a/src/components/Footer.messages.js
+++ b/src/components/Footer.messages.js
@@ -1,31 +1,6 @@
import { defineMessages } from '@edx/frontend-platform/i18n';
const messages = defineMessages({
- 'footer.socialLinks.srText.facebook': {
- id: 'footer.socialLinks.srText.facebook',
- defaultMessage: 'Like edX on Facebook',
- description: 'This is screenreader text for the edX Facebook social media link in the footer.',
- },
- 'footer.socialLinks.srText.twitter': {
- id: 'footer.socialLinks.srText.twitter',
- defaultMessage: 'Follow edX on Twitter',
- description: 'This is screenreader text for the edX Twitter social media link in the footer.',
- },
- 'footer.socialLinks.srText.youtube': {
- id: 'footer.socialLinks.srText.youtube',
- defaultMessage: 'Subscribe to the edX YouTube channel',
- description: 'This is screenreader text for the edX YouTube social media link in the footer.',
- },
- 'footer.socialLinks.srText.linkedin': {
- id: 'footer.socialLinks.srText.linkedin',
- defaultMessage: 'Follow edX on LinkedIn',
- description: 'This is screenreader text for the edX LinkedIn social media link in the footer.',
- },
- 'footer.socialLinks.srText.reddit': {
- id: 'footer.socialLinks.srText.reddit',
- defaultMessage: 'Subscribe to the edX subreddit',
- description: 'This is screenreader text for the edX reddit social media link in the footer.',
- },
'footer.languageForm.select.label': {
id: 'footer.languageForm.select.label',
defaultMessage: 'Choose Language',
@@ -36,106 +11,6 @@ const messages = defineMessages({
defaultMessage: 'Apply',
description: 'The label for button to submit the language selection form.',
},
- 'footer.edxLinks.about': {
- id: 'footer.edxLinks.about',
- defaultMessage: 'About',
- description: 'The label for the link to the about edX page.',
- },
- 'footer.edxLinks.business': {
- id: 'footer.edxLinks.business',
- defaultMessage: 'edX for Business',
- description: 'The label for the link to the edX for business page.',
- },
- 'footer.edxLinks.affiliates': {
- id: 'footer.edxLinks.affiliates',
- defaultMessage: 'Affiliates',
- description: 'The label for the link to the edX affiliates page.',
- },
- 'footer.edxLinks.openEdx': {
- id: 'footer.edxLinks.openEdx',
- defaultMessage: 'Open edX',
- description: 'The label for the link to the open edX site.',
- },
- 'footer.edxLinks.careers': {
- id: 'footer.edxLinks.careers',
- defaultMessage: 'Careers',
- description: 'The label for the link to the edX Careers page.',
- },
- 'footer.edxLinks.news': {
- id: 'footer.edxLinks.news',
- defaultMessage: 'News',
- description: 'The label for the link to the edX news page.',
- },
- 'footer.legalLinks.heading': {
- id: 'footer.legalLinks.heading',
- defaultMessage: 'Legal',
- description: 'Heading for the legal links section of the footer.',
- },
- 'footer.legalLinks.termsOfService': {
- id: 'footer.legalLinks.termsOfService',
- defaultMessage: 'Terms of Service & Honor Code',
- description: 'The label for the link to the edX terms of service page.',
- },
- 'footer.legalLinks.privacyPolicy': {
- id: 'footer.legalLinks.privacyPolicy',
- defaultMessage: 'Privacy Policy',
- description: 'The label for the link to the edX privacy policy page.',
- },
- 'footer.legalLinks.a11yPolicy': {
- id: 'footer.legalLinks.a11yPolicy',
- defaultMessage: 'Accessibility Policy',
- description: 'The label for the link to the edX accessibility policy page.',
- },
- 'footer.legalLinks.trademarkPolicy': {
- id: 'footer.legalLinks.trademarkPolicy',
- defaultMessage: 'Trademark Policy',
- description: 'The label for the link to the edX trademark policy page.',
- },
- 'footer.legalLinks.sitemap': {
- id: 'footer.legalLinks.sitemap',
- defaultMessage: 'Sitemap',
- description: 'The label for the link to the edX sitemap page.',
- },
- 'footer.connectLinks.heading': {
- id: 'footer.connectLinks.heading',
- defaultMessage: 'Connect',
- description: 'Heading for the connect links section of the footer.',
- },
- 'footer.connectLinks.blog': {
- id: 'footer.connectLinks.blog',
- defaultMessage: 'Blog',
- description: 'The label for the link to the edX blog.',
- },
- 'footer.connectLinks.contact': {
- id: 'footer.connectLinks.contact',
- defaultMessage: 'Contact Us',
- description: 'The label for the link to the contact edX page.',
- },
- 'footer.connectLinks.help': {
- id: 'footer.connectLinks.help',
- defaultMessage: 'Help Center',
- description: 'The label for the link to the edX help center.',
- },
- 'footer.connectLinks.mediaKit': {
- id: 'footer.connectLinks.mediaKit',
- defaultMessage: 'Media Kit',
- description: 'The label for the link to the edX media kit page.',
- },
- 'footer.connectLinks.donate': {
- id: 'footer.connectLinks.donate',
- defaultMessage: 'Donate',
- description: 'The label for the link to the edX donation page.',
- },
- 'footer.mobileApp.apple': {
- id: 'footer.mobileApp.apple',
- defaultMessage: 'Download the edX mobile app from the Apple App Store',
- description: 'The label for the link to download the apple version of the edX app.',
- },
- 'footer.mobileApp.google': {
- id: 'footer.mobileApp.google',
- defaultMessage: 'Download the edX mobile app from Google Play',
- description: 'The label for the link to download the google version of the edX app.',
- },
'footer.logo.altText': {
id: 'footer.logo.altText',
defaultMessage: 'Powered by Open edX',
@@ -151,6 +26,96 @@ const messages = defineMessages({
defaultMessage: 'Page Footer',
description: 'aria-label for the footer component',
},
+ 'footer.copyright.message': {
+ id: 'footer.copyright.message',
+ defaultMessage: 'All rights reserved',
+ description: 'Message to display on the copyright section of the footer'
+ },
+ 'footer.nau.title': {
+ id: 'footer.nau.title',
+ defaultMessage: 'NAU',
+ description: 'The label for the nau section of the footer.',
+ },
+ 'footer.nau.about': {
+ id: 'footer.nau.about',
+ defaultMessage: 'About',
+ description: 'The label for the link to the nau about page.',
+ },
+ 'footer.nau.courses': {
+ id: 'footer.nau.courses',
+ defaultMessage: 'Courses',
+ description: 'The label for the link to the nau courses page.',
+ },
+ 'footer.nau.partner': {
+ id: 'footer.nau.partner',
+ defaultMessage: 'How to become a partner',
+ description: 'The label for the link to the nau partner page.',
+ },
+ 'footer.nau.communication': {
+ id: 'footer.nau.communication',
+ defaultMessage: 'Communication',
+ description: 'The label for the communication section of the nau footer.',
+ },
+ 'footer.nau.help': {
+ id: 'footer.nau.help',
+ defaultMessage: 'Help',
+ description: 'The label for the link to the nau help page.',
+ },
+ 'footer.nau.news': {
+ id: 'footer.nau.news',
+ defaultMessage: 'News',
+ description: 'The label for the link to the nau news page.',
+ },
+ 'footer.nau.legal': {
+ id: 'footer.nau.legal',
+ defaultMessage: 'Legal',
+ description: 'The label for the legal section of the nau footer.',
+ },
+ 'footer.nau.mediakit': {
+ id: 'footer.nau.mediakit',
+ defaultMessage: 'Media Kit',
+ description: 'The label for the link to the nau media kit page.',
+ },
+ 'footer.nau.termsconditions': {
+ id: 'footer.nau.termsconditions',
+ defaultMessage: 'Terms and Conditions',
+ description: 'The label for the link to the nau terms and conditions page.',
+ },
+ 'footer.nau.privacypolicy': {
+ id: 'footer.nau.privacypolicy',
+ defaultMessage: 'Privacy Policy',
+ description: 'The label for the link to the nau privacy policy page.',
+ },
+ 'footer.nau.cookies': {
+ id: 'footer.nau.cookies',
+ defaultMessage: 'Cookies Policy',
+ description: 'The label for the link to the nau cookies policy page.',
+ },
+ 'footer.nau.certification': {
+ id: 'footer.nau.certification',
+ defaultMessage: 'Certification Policy',
+ description: 'The label for the link to the nau certification policy page.',
+ },
+ 'footer.nau.codeofhonor': {
+ id: 'footer.nau.codeofhonor',
+ defaultMessage: 'Code of Honor',
+ description: 'The label for the link to the nau code of honor page.',
+ },
+ 'footer.nau.social.facebook': {
+ id: 'footer.nau.social.facebook',
+ defaultMessage: 'Follow us on Facebook',
+ description: 'The label for the link to the nau facebook page.',
+ },
+ 'footer.nau.social.linkedin': {
+ id: 'footer.nau.social.linkedin',
+ defaultMessage: 'Follow us on LinkedIn',
+ description: 'The label for the link to the nau linkedin page.',
+ },
+ 'footer.nau.social.newsletter': {
+ id: 'footer.nau.social.newsletter',
+ defaultMessage: 'Subscribe to our newsletter',
+ description: 'The label for the link to the nau newsletter page.',
+ },
});
export default messages;
diff --git a/src/components/footer-links/FooterLinks.jsx b/src/components/footer-links/FooterLinks.jsx
new file mode 100644
index 0000000000..6e2a910318
--- /dev/null
+++ b/src/components/footer-links/FooterLinks.jsx
@@ -0,0 +1,42 @@
+import messages from '../Footer.messages';
+
+const FooterLinkItem = ({ intl, link }) => {
+
+ const getLocaleCode = () => {
+ return (intl.locale.split('-')[0] === 'pt') ? 'pt' : 'en';
+ }
+
+ const renderUrl = (url) => {
+ if (typeof url === 'object') {
+ return url[getLocaleCode()];
+ }
+ return url;
+ }
+
+ return (
+