Compare commits

...

37 Commits

Author SHA1 Message Date
renovate[bot]
e6835f9c56 fix(deps): update font awesome to v6 (#258)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Muhammad Abdullah Waheed <42172960+abdullahwaheed@users.noreply.github.com>
Co-authored-by: Bilal Qamar <59555732+BilalQamar95@users.noreply.github.com>
2023-02-01 15:00:03 +05:00
renovate[bot]
a0c19faa92 chore(deps): update dependency redux to v4.2.1 2023-01-30 12:55:34 +00:00
Bilal Qamar
fa37ebb828 chore: update dependency @edx/frontend-build to v12.4.19 (#266) 2023-01-26 11:40:08 +05:00
Muhammad Abdullah Waheed
a24972b64f Revert "chore(deps): update dependency semantic-release to v20 (#263)" (#264)
This reverts commit abb22a82ba.
2023-01-20 12:26:36 +05:00
renovate[bot]
abb22a82ba chore(deps): update dependency semantic-release to v20 (#263)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-20 12:20:04 +05:00
dependabot[bot]
1df0b94a8c build(deps): bump json5 from 1.0.1 to 1.0.2 (#261)
Bumps [json5](https://github.com/json5/json5) from 1.0.1 to 1.0.2.
- [Release notes](https://github.com/json5/json5/releases)
- [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md)
- [Commits](https://github.com/json5/json5/compare/v1.0.1...v1.0.2)

---
updated-dependencies:
- dependency-name: json5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-18 18:38:59 +05:00
renovate[bot]
d563e2f444 chore(deps): update dependency @edx/brand to v1.2.0 2023-01-09 10:14:23 +00:00
renovate[bot]
92a210f81d chore(deps): update dependency @edx/frontend-build to v12.4.15 2022-12-22 01:03:46 +00:00
Bilal Qamar
1b92a3c505 feat: updated paragon to v20 (#254)
* feat: updated paragon to v20
2022-12-08 17:18:26 +05:00
edX requirements bot
f88d47275b fix: -t flag added in pull translation command (#256) 2022-11-30 16:47:10 +05:00
renovate[bot]
26f3900602 chore(deps): update dependency @edx/frontend-build to v12.4.0 2022-11-28 08:28:51 +00:00
Muhammad Abdullah Waheed
a9db712240 Merge pull request #253 from openedx/bilalqamar95/dependabot-issues-resolution
refactor: bumped minimatch, recursive-readdir & loader-utils
2022-11-23 14:31:26 +05:00
Bilal Qamar
739cce6c50 refactor: bumped minimatch, recursive-readdir & loader-utils 2022-11-22 15:51:17 +05:00
renovate[bot]
3a19e219bb chore(deps): update actions/setup-node action to v3 (#209)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-15 19:06:09 +05:00
julianajlk
12511689e8 fix: Change frontend-platform peer dependency to v2 or v3 range 2022-11-14 20:19:15 +00:00
renovate[bot]
f084393cc9 chore(deps): update dependency semantic-release to v19.0.5 2022-11-14 07:58:10 +00:00
renovate[bot]
4035ff122c chore(deps): update dependency react-router-dom to v5.3.4 2022-11-14 07:52:15 +00:00
Leangseu Kim
159b5a842e feat: upgrade frontend platform to version 3 2022-11-10 11:08:04 +00:00
renovate[bot]
b06c8b5d01 chore(deps): update dependency react-redux to v7.2.9 2022-11-07 11:10:32 +00:00
renovate[bot]
c79da49208 chore(deps): update dependency enzyme-adapter-react-16 to v1.15.7 2022-11-07 08:43:12 +00:00
Leangseu Kim
82b3310a8f fix: downgrade frontend-platform 2022-11-01 16:09:19 -04:00
Abdullah Waheed
fcd641259b refactor: updated renovate config to auto update minor and patch versions of edx dependencies 2022-10-27 09:26:18 -03:00
Abdullah Waheed
509276df12 feat: added new translations in Makefile and updated all the translations 2022-10-27 09:25:07 -03:00
Bilal Qamar
4527baef5a refactor: upgraded frontend-build to v12 & resolved eslint issues 2022-10-26 10:35:10 -03:00
Muhammad Abdullah Waheed
8183143ae5 Merge pull request #225 from openedx/dependabot/npm_and_yarn/terser-4.8.1
build(deps): bump terser from 4.8.0 to 4.8.1
2022-10-25 16:07:08 +05:00
dependabot[bot]
91311f25da build(deps-dev): bump semantic-release from 17.4.7 to 19.0.3 (#217)
Bumps [semantic-release](https://github.com/semantic-release/semantic-release) from 17.4.7 to 19.0.3.
- [Release notes](https://github.com/semantic-release/semantic-release/releases)
- [Commits](https://github.com/semantic-release/semantic-release/compare/v17.4.7...v19.0.3)

---
updated-dependencies:
- dependency-name: semantic-release
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-25 16:06:26 +05:00
renovate[bot]
ccef5de855 chore(deps): update actions/checkout action to v3 (#205)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-10-25 15:39:10 +05:00
Muhammad Abdullah Waheed
01fa97055f Merge pull request #199 from openedx/dependabot/npm_and_yarn/async-2.6.4
build(deps): bump async from 2.6.3 to 2.6.4
2022-10-25 15:38:22 +05:00
Muhammad Abdullah Waheed
3cff0970a3 Merge pull request #191 from openedx/dependabot/npm_and_yarn/node-forge-1.3.0
build(deps): bump node-forge from 1.2.1 to 1.3.0
2022-10-25 15:37:26 +05:00
renovate[bot]
f2c879999d chore(deps): update dependency marked to 4.0.10 [security] (#186)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-10-25 15:36:30 +05:00
Ben Warzeski
3f18cf7c9d Merge pull request #236 from muselesscreator/platform_3.0
fix: frontend platform peer dependency to 3.x
2022-09-27 10:01:59 -04:00
Ben Warzeski
30796204b8 fix: frontend platform peer dependency to 3.x 2022-09-27 09:27:07 -04:00
dependabot[bot]
d206ecf3ad build(deps): bump async from 2.6.3 to 2.6.4
Bumps [async](https://github.com/caolan/async) from 2.6.3 to 2.6.4.
- [Release notes](https://github.com/caolan/async/releases)
- [Changelog](https://github.com/caolan/async/blob/v2.6.4/CHANGELOG.md)
- [Commits](https://github.com/caolan/async/compare/v2.6.3...v2.6.4)

---
updated-dependencies:
- dependency-name: async
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-26 18:32:49 +00:00
Ben Warzeski
f3094e1725 Merge pull request #234 from muselesscreator/platform_3.0
feat: update frontend-platform to v3.0.1
2022-09-26 14:31:09 -04:00
Ben Warzeski
5bbd266834 feat: update frontend-platform to v3.0.1 2022-09-26 14:20:26 -04:00
dependabot[bot]
e0a634900d build(deps): bump terser from 4.8.0 to 4.8.1
Bumps [terser](https://github.com/terser/terser) from 4.8.0 to 4.8.1.
- [Release notes](https://github.com/terser/terser/releases)
- [Changelog](https://github.com/terser/terser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/terser/terser/commits)

---
updated-dependencies:
- dependency-name: terser
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-20 21:53:15 +00:00
dependabot[bot]
fb06f7d9f9 build(deps): bump node-forge from 1.2.1 to 1.3.0
Bumps [node-forge](https://github.com/digitalbazaar/forge) from 1.2.1 to 1.3.0.
- [Release notes](https://github.com/digitalbazaar/forge/releases)
- [Changelog](https://github.com/digitalbazaar/forge/blob/main/CHANGELOG.md)
- [Commits](https://github.com/digitalbazaar/forge/compare/v1.2.1...v1.3.0)

---
updated-dependencies:
- dependency-name: node-forge
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-26 06:39:29 +00:00
21 changed files with 9542 additions and 15817 deletions

View File

@@ -1,3 +1,4 @@
// eslint-disable-next-line import/no-extraneous-dependencies
const { createConfig } = require('@edx/frontend-build');
module.exports = createConfig('eslint');

View File

@@ -14,11 +14,11 @@ jobs:
node: [16]
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup Nodejs
uses: actions/setup-node@v2
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
- name: Install dependencies

View File

@@ -9,11 +9,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup Node.js
uses: actions/setup-node@v2
uses: actions/setup-node@v3
with:
node-version: 16
- name: Install dependencies

4
Makefile Executable file → Normal file
View File

@@ -1,5 +1,5 @@
transifex_resource = frontend-component-footer
transifex_langs = "ar,fr,es_419,zh_CN"
transifex_langs = "ar,fr,es_419,zh_CN,pt,it,de,uk,ru,hi,fr_CA"
transifex_utils = ./node_modules/.bin/transifex-utils.js
i18n = ./src/i18n
@@ -50,7 +50,7 @@ push_translations:
# Pulls translations from Transifex.
pull_translations:
tx pull -f --mode reviewed --languages=$(transifex_langs)
tx pull -t -f --mode reviewed --languages=$(transifex_langs)
# This target is used by Travis.
validate-no-uncommitted-package-lock-changes:

25015
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -33,32 +33,33 @@
},
"homepage": "https://github.com/openedx/frontend-component-footer#readme",
"devDependencies": {
"@edx/brand": "npm:@edx/brand-openedx@1.1.0",
"@edx/frontend-build": "9.2.2",
"@edx/frontend-platform": "2.5.0",
"@edx/paragon": "19.25.3",
"@edx/brand": "npm:@edx/brand-openedx@1.2.0",
"@edx/browserslist-config": "^1.1.1",
"@edx/frontend-build": "12.4.19",
"@edx/frontend-platform": "^3.0.1",
"@edx/paragon": "^20.19.0",
"enzyme": "3.11.0",
"enzyme-adapter-react-16": "1.15.6",
"enzyme-adapter-react-16": "1.15.7",
"husky": "7.0.4",
"prop-types": "15.8.1",
"react": "16.14.0",
"react-dom": "16.14.0",
"react-redux": "7.2.8",
"react-router-dom": "5.3.3",
"react-redux": "7.2.9",
"react-router-dom": "5.3.4",
"react-test-renderer": "16.14.0",
"reactifex": "1.1.1",
"redux": "4.2.0",
"semantic-release": "17.4.7"
"redux": "4.2.1",
"semantic-release": "19.0.5"
},
"dependencies": {
"@fortawesome/fontawesome-svg-core": "1.2.36",
"@fortawesome/free-brands-svg-icons": "5.15.4",
"@fortawesome/free-regular-svg-icons": "5.15.4",
"@fortawesome/free-solid-svg-icons": "5.15.4",
"@fortawesome/fontawesome-svg-core": "6.2.1",
"@fortawesome/free-brands-svg-icons": "6.2.1",
"@fortawesome/free-regular-svg-icons": "6.2.1",
"@fortawesome/free-solid-svg-icons": "6.2.1",
"@fortawesome/react-fontawesome": "0.2.0"
},
"peerDependencies": {
"@edx/frontend-platform": "^2.3.0",
"@edx/frontend-platform": "^2.0.0 || ^3.0.0",
"prop-types": "^15.5.10",
"react": "^16.9.0",
"react-dom": "^16.9.0"

View File

@@ -22,6 +22,11 @@
"pin"
],
"automerge": true
},
{
"matchPackagePatterns": ["@edx"],
"matchUpdateTypes": ["minor", "patch"],
"automerge": true
}
],
"timezone": "America/New_York"

View File

@@ -23,14 +23,6 @@ class SiteFooter extends React.Component {
this.externalLinkClickHandler = this.externalLinkClickHandler.bind(this);
}
getLocalePrefix(locale) {
const twoLetterPrefix = locale.substring(0, 2).toLowerCase();
if (twoLetterPrefix === 'en') {
return '';
}
return `/${twoLetterPrefix}`;
}
externalLinkClickHandler(event) {
const label = event.currentTarget.getAttribute('href');
const eventName = EVENT_NAMES.FOOTER_LINK;

View File

@@ -1,4 +1,5 @@
import React from 'react';
/* eslint-disable react/prop-types */
import React, { useMemo } from 'react';
import renderer from 'react-test-renderer';
import { mount } from 'enzyme';
import { IntlProvider } from '@edx/frontend-platform/i18n';
@@ -6,71 +7,69 @@ import { AppContext } from '@edx/frontend-platform/react';
import Footer from './Footer';
const FooterWithContext = ({ locale = 'es' }) => {
const contextValue = useMemo(() => ({
authenticatedUser: null,
config: {
LOGO_TRADEMARK_URL: process.env.LOGO_TRADEMARK_URL,
LMS_BASE_URL: process.env.LMS_BASE_URL,
},
}), []);
return (
<IntlProvider locale={locale}>
<AppContext.Provider
value={contextValue}
>
<Footer />
</AppContext.Provider>
</IntlProvider>
);
};
const FooterWithLanguageSelector = ({ languageSelected = () => {} }) => {
const contextValue = useMemo(() => ({
authenticatedUser: null,
config: {
LOGO_TRADEMARK_URL: process.env.LOGO_TRADEMARK_URL,
LMS_BASE_URL: process.env.LMS_BASE_URL,
},
}), []);
return (
<IntlProvider locale="en">
<AppContext.Provider
value={contextValue}
>
<Footer
onLanguageSelected={languageSelected}
supportedLanguages={[
{ label: 'English', value: 'en' },
{ label: 'Español', value: 'es' },
]}
/>
</AppContext.Provider>
</IntlProvider>
);
};
describe('<Footer />', () => {
describe('renders correctly', () => {
it('renders without a language selector', () => {
const tree = renderer
.create((
<IntlProvider locale="en">
<AppContext.Provider
value={{
authenticatedUser: null,
config: {
LOGO_TRADEMARK_URL: process.env.LOGO_TRADEMARK_URL,
LMS_BASE_URL: process.env.LMS_BASE_URL,
},
}}
>
<Footer />
</AppContext.Provider>
</IntlProvider>
))
.create(<FooterWithContext locale="en" />)
.toJSON();
expect(tree).toMatchSnapshot();
});
it('renders without a language selector in es', () => {
const tree = renderer
.create((
<IntlProvider locale="es">
<AppContext.Provider
value={{
authenticatedUser: null,
config: {
LOGO_TRADEMARK_URL: process.env.LOGO_TRADEMARK_URL,
LMS_BASE_URL: process.env.LMS_BASE_URL,
},
}}
>
<Footer />
</AppContext.Provider>
</IntlProvider>
))
.create(<FooterWithContext locale="es" />)
.toJSON();
expect(tree).toMatchSnapshot();
});
it('renders with a language selector', () => {
const tree = renderer
.create((
<IntlProvider locale="en">
<AppContext.Provider
value={{
authenticatedUser: null,
config: {
LOGO_TRADEMARK_URL: process.env.LOGO_TRADEMARK_URL,
LMS_BASE_URL: process.env.LMS_BASE_URL,
},
}}
>
<Footer
onLanguageSelected={() => {}}
supportedLanguages={[
{ label: 'English', value: 'en' },
{ label: 'Español', value: 'es' },
]}
/>
</AppContext.Provider>
</IntlProvider>
))
.create(<FooterWithLanguageSelector />)
.toJSON();
expect(tree).toMatchSnapshot();
});
@@ -79,27 +78,7 @@ describe('<Footer />', () => {
describe('handles language switching', () => {
it('calls onLanguageSelected prop when a language is changed', () => {
const mockHandleLanguageSelected = jest.fn();
const wrapper = mount((
<IntlProvider locale="en">
<AppContext.Provider
value={{
authenticatedUser: null,
config: {
LOGO_TRADEMARK_URL: process.env.LOGO_TRADEMARK_URL,
LMS_BASE_URL: process.env.LMS_BASE_URL,
},
}}
>
<Footer
onLanguageSelected={mockHandleLanguageSelected}
supportedLanguages={[
{ label: 'English', value: 'en' },
{ label: 'Español', value: 'es' },
]}
/>
</AppContext.Provider>
</IntlProvider>
));
const wrapper = mount(<FooterWithLanguageSelector languageSelected={mockHandleLanguageSelected} />);
wrapper.find('form').simulate('submit', {
target: {

View File

@@ -1,31 +1,27 @@
import arMessages from './messages/ar.json';
import caMessages from './messages/ca.json';
// no need to import en messages-- they are in the defaultMessage field
import es419Messages from './messages/es_419.json';
import frMessages from './messages/fr.json';
import es419Messages from './messages/es_419.json';
import zhcnMessages from './messages/zh_CN.json';
import heMessages from './messages/he.json';
import idMessages from './messages/id.json';
import kokrMessages from './messages/ko_kr.json';
import plMessages from './messages/pl.json';
import ptbrMessages from './messages/pt_br.json';
import ruMessages from './messages/ru.json';
import thMessages from './messages/th.json';
import ptMessages from './messages/pt.json';
import itMessages from './messages/it.json';
import ukMessages from './messages/uk.json';
import deMessages from './messages/de.json';
import ruMessages from './messages/ru.json';
import hiMessages from './messages/hi.json';
import frCAMessages from './messages/fr_CA.json';
// no need to import en messages-- they are in the defaultMessage field
const messages = {
ar: arMessages,
'es-419': es419Messages,
fr: frMessages,
'zh-cn': zhcnMessages,
ca: caMessages,
he: heMessages,
id: idMessages,
'ko-kr': kokrMessages,
pl: plMessages,
'pt-br': ptbrMessages,
pt: ptMessages,
it: itMessages,
de: deMessages,
hi: hiMessages,
'fr-ca': frCAMessages,
ru: ruMessages,
th: thMessages,
uk: ukMessages,
};

View File

@@ -1,32 +1 @@
{
"footer.socialLinks.srText.facebook": "Like edX on Facebook",
"footer.socialLinks.srText.twitter": "Follow edX on Twitter",
"footer.socialLinks.srText.youtube": "Subscribe to the edX YouTube channel",
"footer.socialLinks.srText.linkedin": "Follow edX on LinkedIn",
"footer.socialLinks.srText.reddit": "Subscribe to the edX subreddit",
"footer.languageForm.select.label": "Choose Language",
"footer.languageForm.submit.label": "Apply",
"footer.edxLinks.about": "About",
"footer.edxLinks.business": "edX for Business",
"footer.edxLinks.affiliates": "Affiliates",
"footer.edxLinks.openEdx": "Open edX",
"footer.edxLinks.careers": "Careers",
"footer.edxLinks.news": "News",
"footer.legalLinks.heading": "Legal",
"footer.legalLinks.termsOfService": "Terms of Service & Honor Code",
"footer.legalLinks.privacyPolicy": "Privacy Policy",
"footer.legalLinks.a11yPolicy": "Accessibility Policy",
"footer.legalLinks.trademarkPolicy": "Trademark Policy",
"footer.legalLinks.sitemap": "Sitemap",
"footer.connectLinks.heading": "Connect",
"footer.connectLinks.blog": "Blog",
"footer.connectLinks.contact": "Contact Us",
"footer.connectLinks.help": "Help Center",
"footer.connectLinks.mediaKit": "Media Kit",
"footer.connectLinks.donate": "Donate",
"footer.mobileApp.apple": "Download the edX mobile app from the Apple App Store",
"footer.mobileApp.google": "Download the edX mobile app from Google Play",
"footer.logo.altText": "Powered by Open edX",
"footer.logo.ariaLabel": "edX Home",
"footer.ariaLabel": "Page Footer"
}
{}

View File

@@ -1,32 +1 @@
{
"footer.socialLinks.srText.facebook": "Like edX on Facebook",
"footer.socialLinks.srText.twitter": "Follow edX on Twitter",
"footer.socialLinks.srText.youtube": "Subscribe to the edX YouTube channel",
"footer.socialLinks.srText.linkedin": "Follow edX on LinkedIn",
"footer.socialLinks.srText.reddit": "Subscribe to the edX subreddit",
"footer.languageForm.select.label": "Choose Language",
"footer.languageForm.submit.label": "Apply",
"footer.edxLinks.about": "About",
"footer.edxLinks.business": "edX for Business",
"footer.edxLinks.affiliates": "Affiliates",
"footer.edxLinks.openEdx": "Open edX",
"footer.edxLinks.careers": "Careers",
"footer.edxLinks.news": "News",
"footer.legalLinks.heading": "Legal",
"footer.legalLinks.termsOfService": "Terms of Service & Honor Code",
"footer.legalLinks.privacyPolicy": "Privacy Policy",
"footer.legalLinks.a11yPolicy": "Accessibility Policy",
"footer.legalLinks.trademarkPolicy": "Trademark Policy",
"footer.legalLinks.sitemap": "Sitemap",
"footer.connectLinks.heading": "Connect",
"footer.connectLinks.blog": "Blog",
"footer.connectLinks.contact": "Contact Us",
"footer.connectLinks.help": "Help Center",
"footer.connectLinks.mediaKit": "Media Kit",
"footer.connectLinks.donate": "Donate",
"footer.mobileApp.apple": "Download the edX mobile app from the Apple App Store",
"footer.mobileApp.google": "Download the edX mobile app from Google Play",
"footer.logo.altText": "Powered by Open edX",
"footer.logo.ariaLabel": "edX Home",
"footer.ariaLabel": "Page Footer"
}
{}

View File

@@ -1,32 +1 @@
{
"footer.socialLinks.srText.facebook": "Like edX on Facebook",
"footer.socialLinks.srText.twitter": "Follow edX on Twitter",
"footer.socialLinks.srText.youtube": "Subscribe to the edX YouTube channel",
"footer.socialLinks.srText.linkedin": "Follow edX on LinkedIn",
"footer.socialLinks.srText.reddit": "Subscribe to the edX subreddit",
"footer.languageForm.select.label": "Choose Language",
"footer.languageForm.submit.label": "Apply",
"footer.edxLinks.about": "About",
"footer.edxLinks.business": "edX for Business",
"footer.edxLinks.affiliates": "Affiliates",
"footer.edxLinks.openEdx": "Open edX",
"footer.edxLinks.careers": "Careers",
"footer.edxLinks.news": "News",
"footer.legalLinks.heading": "Legal",
"footer.legalLinks.termsOfService": "Terms of Service & Honor Code",
"footer.legalLinks.privacyPolicy": "Privacy Policy",
"footer.legalLinks.a11yPolicy": "Accessibility Policy",
"footer.legalLinks.trademarkPolicy": "Trademark Policy",
"footer.legalLinks.sitemap": "Sitemap",
"footer.connectLinks.heading": "Connect",
"footer.connectLinks.blog": "Blog",
"footer.connectLinks.contact": "Contact Us",
"footer.connectLinks.help": "Help Center",
"footer.connectLinks.mediaKit": "Media Kit",
"footer.connectLinks.donate": "Donate",
"footer.mobileApp.apple": "Download the edX mobile app from the Apple App Store",
"footer.mobileApp.google": "Download the edX mobile app from Google Play",
"footer.logo.altText": "Powered by Open edX",
"footer.logo.ariaLabel": "edX Home",
"footer.ariaLabel": "Page Footer"
}
{}

View File

@@ -1 +0,0 @@
{}

View File

@@ -1 +0,0 @@
{}

View File

@@ -1,32 +1 @@
{
"footer.socialLinks.srText.facebook": "Like edX on Facebook",
"footer.socialLinks.srText.twitter": "Follow edX on Twitter",
"footer.socialLinks.srText.youtube": "Subscribe to the edX YouTube channel",
"footer.socialLinks.srText.linkedin": "Follow edX on LinkedIn",
"footer.socialLinks.srText.reddit": "Subscribe to the edX subreddit",
"footer.languageForm.select.label": "Choose Language",
"footer.languageForm.submit.label": "Apply",
"footer.edxLinks.about": "About",
"footer.edxLinks.business": "edX for Business",
"footer.edxLinks.affiliates": "Affiliates",
"footer.edxLinks.openEdx": "Open edX",
"footer.edxLinks.careers": "Careers",
"footer.edxLinks.news": "News",
"footer.legalLinks.heading": "Legal",
"footer.legalLinks.termsOfService": "Terms of Service & Honor Code",
"footer.legalLinks.privacyPolicy": "Privacy Policy",
"footer.legalLinks.a11yPolicy": "Accessibility Policy",
"footer.legalLinks.trademarkPolicy": "Trademark Policy",
"footer.legalLinks.sitemap": "Sitemap",
"footer.connectLinks.heading": "Connect",
"footer.connectLinks.blog": "Blog",
"footer.connectLinks.contact": "Contact Us",
"footer.connectLinks.help": "Help Center",
"footer.connectLinks.mediaKit": "Media Kit",
"footer.connectLinks.donate": "Donate",
"footer.mobileApp.apple": "Download the edX mobile app from the Apple App Store",
"footer.mobileApp.google": "Download the edX mobile app from Google Play",
"footer.logo.altText": "Powered by Open edX",
"footer.logo.ariaLabel": "edX Home",
"footer.ariaLabel": "Page Footer"
}
{}