mirror of
https://github.com/scratchfoundation/scratch-www.git
synced 2024-11-30 02:56:20 -05:00
Merge pull request #849 from mewtaylor/issue/missing-locale-strings
Add missing locale strings for localization
This commit is contained in:
commit
22b5447d87
7 changed files with 33 additions and 52 deletions
|
@ -1,5 +1,6 @@
|
||||||
var React = require('react');
|
|
||||||
var classNames = require('classnames');
|
var classNames = require('classnames');
|
||||||
|
var FormattedMessage = require('react-intl').FormattedMessage;
|
||||||
|
var React = require('react');
|
||||||
|
|
||||||
require('./thumbnail.scss');
|
require('./thumbnail.scss');
|
||||||
|
|
||||||
|
@ -32,7 +33,10 @@ var Thumbnail = React.createClass({
|
||||||
if (this.props.creator) {
|
if (this.props.creator) {
|
||||||
extra.push(
|
extra.push(
|
||||||
<div key="creator" className="thumbnail-creator">
|
<div key="creator" className="thumbnail-creator">
|
||||||
by <a href={'/users/' + this.props.creator + '/'}>{this.props.creator}</a>
|
<FormattedMessage id={'thumbnail.by'} />{' '}
|
||||||
|
<a href={'/users/' + this.props.creator + '/'}>
|
||||||
|
{this.props.creator}
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -57,6 +57,7 @@
|
||||||
"general.privacyPolicy": "Privacy Policy",
|
"general.privacyPolicy": "Privacy Policy",
|
||||||
"general.projects": "Projects",
|
"general.projects": "Projects",
|
||||||
"general.profile": "Profile",
|
"general.profile": "Profile",
|
||||||
|
"general.resourcesTitle": "Educator Resources",
|
||||||
"general.scratchConference": "Scratch Conference",
|
"general.scratchConference": "Scratch Conference",
|
||||||
"general.scratchday": "Scratch Day",
|
"general.scratchday": "Scratch Day",
|
||||||
"general.scratchEd": "ScratchEd",
|
"general.scratchEd": "ScratchEd",
|
||||||
|
@ -154,5 +155,7 @@
|
||||||
"registration.waitForApprovalDescription": "You can log into your Scratch Account now, but the features specific to Teachers are not yet available. Your information is being reviewed. Please be patient, the approval process can take up to 24 hours. You will receive an email indicating your account has been upgraded once your account has been approved.",
|
"registration.waitForApprovalDescription": "You can log into your Scratch Account now, but the features specific to Teachers are not yet available. Your information is being reviewed. Please be patient, the approval process can take up to 24 hours. You will receive an email indicating your account has been upgraded once your account has been approved.",
|
||||||
"registration.welcomeStepDescription": "You have successfully set up a Scratch account! You are now a member of the class:",
|
"registration.welcomeStepDescription": "You have successfully set up a Scratch account! You are now a member of the class:",
|
||||||
"registration.welcomeStepPrompt": "To get started, click on the button below.",
|
"registration.welcomeStepPrompt": "To get started, click on the button below.",
|
||||||
"registration.welcomeStepTitle": "Hurray! Welcome to Scratch!"
|
"registration.welcomeStepTitle": "Hurray! Welcome to Scratch!",
|
||||||
|
|
||||||
|
"thumbnail.by": "by"
|
||||||
}
|
}
|
||||||
|
|
|
@ -111,10 +111,12 @@ var Explore = injectIntl(React.createClass({
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
render: function () {
|
render: function () {
|
||||||
|
var formatMessage = this.props.intl.formatMessage;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<div className='outer'>
|
<div className='outer'>
|
||||||
<Box title={'Explore'}>
|
<Box title={formatMessage({id: 'general.explore'})}>
|
||||||
<SubNavigation className='categories'>
|
<SubNavigation className='categories'>
|
||||||
{this.getBubble('all')}
|
{this.getBubble('all')}
|
||||||
{this.getBubble('animations')}
|
{this.getBubble('animations')}
|
||||||
|
|
|
@ -26,7 +26,6 @@
|
||||||
"teacherbanner.greeting": "Hi",
|
"teacherbanner.greeting": "Hi",
|
||||||
"teacherbanner.subgreeting": "Teacher Account",
|
"teacherbanner.subgreeting": "Teacher Account",
|
||||||
"teacherbanner.classesButton": "My Classes",
|
"teacherbanner.classesButton": "My Classes",
|
||||||
"teacherbanner.resourcesButton": "Educator Resources",
|
|
||||||
"teacherbanner.faqButton": "Teacher Account FAQ",
|
"teacherbanner.faqButton": "Teacher Account FAQ",
|
||||||
|
|
||||||
"welcome.welcomeToScratch": "Welcome to Scratch!",
|
"welcome.welcomeToScratch": "Welcome to Scratch!",
|
||||||
|
|
|
@ -189,16 +189,12 @@ var Splash = injectIntl(React.createClass({
|
||||||
|
|
||||||
var rows = [
|
var rows = [
|
||||||
<Box
|
<Box
|
||||||
title={formatMessage({
|
title={formatMessage({id: 'splash.featuredProjects'})}
|
||||||
id: 'splash.featuredProjects',
|
|
||||||
defaultMessage: 'Featured Projects'})}
|
|
||||||
key="community_featured_projects">
|
key="community_featured_projects">
|
||||||
<Carousel items={this.state.featuredGlobal.community_featured_projects} />
|
<Carousel items={this.state.featuredGlobal.community_featured_projects} />
|
||||||
</Box>,
|
</Box>,
|
||||||
<Box
|
<Box
|
||||||
title={formatMessage({
|
title={formatMessage({id: 'splash.featuredStudios'})}
|
||||||
id: 'splash.featuredStudios',
|
|
||||||
defaultMessage: 'Featured Studios'})}
|
|
||||||
key="community_featured_studios">
|
key="community_featured_studios">
|
||||||
<Carousel items={this.state.featuredGlobal.community_featured_studios}
|
<Carousel items={this.state.featuredGlobal.community_featured_studios}
|
||||||
settings={{slidesToShow: 4, slidesToScroll: 4, lazyLoad: false}} />
|
settings={{slidesToShow: 4, slidesToScroll: 4, lazyLoad: false}} />
|
||||||
|
@ -216,8 +212,8 @@ var Splash = injectIntl(React.createClass({
|
||||||
this.state.featuredGlobal.curator_top_projects[0].curator_name}
|
this.state.featuredGlobal.curator_top_projects[0].curator_name}
|
||||||
moreTitle={formatMessage({id: 'general.learnMore', defaultMessage: 'Learn More'})}
|
moreTitle={formatMessage({id: 'general.learnMore', defaultMessage: 'Learn More'})}
|
||||||
moreHref="/studios/386359/">
|
moreHref="/studios/386359/">
|
||||||
<Carousel
|
|
||||||
items={this.state.featuredGlobal.curator_top_projects} />
|
<Carousel items={this.state.featuredGlobal.curator_top_projects} />
|
||||||
</Box>
|
</Box>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -229,14 +225,12 @@ var Splash = injectIntl(React.createClass({
|
||||||
<Box
|
<Box
|
||||||
key="scratch_design_studio"
|
key="scratch_design_studio"
|
||||||
title={
|
title={
|
||||||
formatMessage({
|
formatMessage({id: 'splash.scratchDesignStudioTitle'})
|
||||||
id: 'splash.scratchDesignStudioTitle',
|
|
||||||
defaultMessage: 'Scratch Design Studio' })
|
|
||||||
+ ' - ' + this.state.featuredGlobal.scratch_design_studio[0].gallery_title}
|
+ ' - ' + this.state.featuredGlobal.scratch_design_studio[0].gallery_title}
|
||||||
moreTitle={formatMessage({id: 'splash.visitTheStudio', defaultMessage: 'Visit the studio'})}
|
moreTitle={formatMessage({id: 'splash.visitTheStudio', defaultMessage: 'Visit the studio'})}
|
||||||
moreHref={'/studios/' + this.state.featuredGlobal.scratch_design_studio[0].gallery_id + '/'}>
|
moreHref={'/studios/' + this.state.featuredGlobal.scratch_design_studio[0].gallery_id + '/'}>
|
||||||
<Carousel
|
|
||||||
items={this.state.featuredGlobal.scratch_design_studio} />
|
<Carousel items={this.state.featuredGlobal.scratch_design_studio} />
|
||||||
</Box>
|
</Box>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -246,14 +240,9 @@ var Splash = injectIntl(React.createClass({
|
||||||
this.state.featuredGlobal.community_newest_projects.length > 0) {
|
this.state.featuredGlobal.community_newest_projects.length > 0) {
|
||||||
|
|
||||||
rows.push(
|
rows.push(
|
||||||
<Box
|
<Box title={formatMessage({id: 'splash.recentlySharedProjects'})}
|
||||||
title={
|
|
||||||
formatMessage({
|
|
||||||
id: 'splash.recentlySharedProjects',
|
|
||||||
defaultMessage: 'Recently Shared Projects' })}
|
|
||||||
key="community_newest_projects">
|
key="community_newest_projects">
|
||||||
<Carousel
|
<Carousel items={this.state.featuredGlobal.community_newest_projects} />
|
||||||
items={this.state.featuredGlobal.community_newest_projects} />
|
|
||||||
</Box>
|
</Box>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -262,10 +251,7 @@ var Splash = injectIntl(React.createClass({
|
||||||
this.state.featuredCustom.custom_projects_by_following.length > 0) {
|
this.state.featuredCustom.custom_projects_by_following.length > 0) {
|
||||||
|
|
||||||
rows.push(
|
rows.push(
|
||||||
<Box title={
|
<Box title={formatMessage({id: 'splash.projectsByScratchersFollowing'})}
|
||||||
formatMessage({
|
|
||||||
id: 'splash.projectsByScratchersFollowing',
|
|
||||||
defaultMessage: 'Projects by Scratchers I\'m Following'})}
|
|
||||||
key="custom_projects_by_following">
|
key="custom_projects_by_following">
|
||||||
|
|
||||||
<Carousel items={this.state.featuredCustom.custom_projects_by_following} />
|
<Carousel items={this.state.featuredCustom.custom_projects_by_following} />
|
||||||
|
@ -276,10 +262,7 @@ var Splash = injectIntl(React.createClass({
|
||||||
this.state.featuredCustom.custom_projects_loved_by_following.length > 0) {
|
this.state.featuredCustom.custom_projects_loved_by_following.length > 0) {
|
||||||
|
|
||||||
rows.push(
|
rows.push(
|
||||||
<Box title={
|
<Box title={formatMessage({id: 'splash.projectsLovedByScratchersFollowing'})}
|
||||||
formatMessage({
|
|
||||||
id: 'splash.projectsLovedByScratchersFollowing',
|
|
||||||
defaultMessage: 'Projects Loved by Scratchers I\'m Following'})}
|
|
||||||
key="custom_projects_loved_by_following">
|
key="custom_projects_loved_by_following">
|
||||||
|
|
||||||
<Carousel items={this.state.featuredCustom.custom_projects_loved_by_following} />
|
<Carousel items={this.state.featuredCustom.custom_projects_loved_by_following} />
|
||||||
|
@ -291,10 +274,7 @@ var Splash = injectIntl(React.createClass({
|
||||||
this.state.featuredCustom.custom_projects_in_studios_following.length > 0) {
|
this.state.featuredCustom.custom_projects_in_studios_following.length > 0) {
|
||||||
|
|
||||||
rows.push(
|
rows.push(
|
||||||
<Box title={
|
<Box title={formatMessage({id:'splash.projectsInStudiosFollowing'})}
|
||||||
formatMessage({
|
|
||||||
id:'splash.projectsInStudiosFollowing',
|
|
||||||
defaultMessage: 'Projects in Studios I\'m Following'})}
|
|
||||||
key="custom_projects_in_studios_following">
|
key="custom_projects_in_studios_following">
|
||||||
|
|
||||||
<Carousel items={this.state.featuredCustom.custom_projects_in_studios_following} />
|
<Carousel items={this.state.featuredCustom.custom_projects_in_studios_following} />
|
||||||
|
@ -303,19 +283,13 @@ var Splash = injectIntl(React.createClass({
|
||||||
}
|
}
|
||||||
|
|
||||||
rows.push(
|
rows.push(
|
||||||
<Box title={
|
<Box title={formatMessage({id: 'splash.communityRemixing'})}
|
||||||
formatMessage({
|
|
||||||
id: 'splash.communityRemixing',
|
|
||||||
defaultMessage: 'What the Community is Remixing' })}
|
|
||||||
key="community_most_remixed_projects">
|
key="community_most_remixed_projects">
|
||||||
|
|
||||||
<Carousel items={shuffle(this.state.featuredGlobal.community_most_remixed_projects)}
|
<Carousel items={shuffle(this.state.featuredGlobal.community_most_remixed_projects)}
|
||||||
showRemixes={true} />
|
showRemixes={true} />
|
||||||
</Box>,
|
</Box>,
|
||||||
<Box title={
|
<Box title={formatMessage({id: 'splash.communityLoving'})}
|
||||||
formatMessage({
|
|
||||||
id: 'splash.communityLoving',
|
|
||||||
defaultMessage: 'What the Community is Loving' })}
|
|
||||||
key="community_most_loved_projects">
|
key="community_most_loved_projects">
|
||||||
|
|
||||||
<Carousel items={shuffle(this.state.featuredGlobal.community_most_loved_projects)}
|
<Carousel items={shuffle(this.state.featuredGlobal.community_most_loved_projects)}
|
||||||
|
@ -350,7 +324,7 @@ var Splash = injectIntl(React.createClass({
|
||||||
'teacherbanner.greeting': formatMessage({id: 'teacherbanner.greeting'}),
|
'teacherbanner.greeting': formatMessage({id: 'teacherbanner.greeting'}),
|
||||||
'teacherbanner.subgreeting': formatMessage({id: 'teacherbanner.subgreeting'}),
|
'teacherbanner.subgreeting': formatMessage({id: 'teacherbanner.subgreeting'}),
|
||||||
'teacherbanner.classesButton': formatMessage({id: 'teacherbanner.classesButton'}),
|
'teacherbanner.classesButton': formatMessage({id: 'teacherbanner.classesButton'}),
|
||||||
'teacherbanner.resourcesButton': formatMessage({id: 'teacherbanner.resourcesButton'}),
|
'teacherbanner.resourcesButton': formatMessage({id: 'general.resourcesTitle'}),
|
||||||
'teacherbanner.faqButton': formatMessage({id: 'teacherbanner.faqButton'})
|
'teacherbanner.faqButton': formatMessage({id: 'teacherbanner.faqButton'})
|
||||||
};
|
};
|
||||||
if (this.state.projectCount === this.getInitialState().projectCount) {
|
if (this.state.projectCount === this.getInitialState().projectCount) {
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
"teacherlanding.generalUsageSettings": "<b>Settings:</b> schools, museums, libraries, community centers",
|
"teacherlanding.generalUsageSettings": "<b>Settings:</b> schools, museums, libraries, community centers",
|
||||||
"teacherlanding.generalUsageGradeLevels": "<b>Grade Levels:</b> elementary, middle, and high school (and some colleges too!)",
|
"teacherlanding.generalUsageGradeLevels": "<b>Grade Levels:</b> elementary, middle, and high school (and some colleges too!)",
|
||||||
"teacherlanding.generalUsageSubjectAreas": "<b>Subject Areas:</b> language arts, science, social studies, math, computer science, foreign languages, and the arts",
|
"teacherlanding.generalUsageSubjectAreas": "<b>Subject Areas:</b> language arts, science, social studies, math, computer science, foreign languages, and the arts",
|
||||||
"teacherlanding.resourcesTitle": "Educator Resources",
|
|
||||||
"teacherlanding.scratchEdTitle": "A Community for Educators",
|
"teacherlanding.scratchEdTitle": "A Community for Educators",
|
||||||
"teacherlanding.scratchEdDescription": "<a href=\"http://scratched.gse.harvard.edu/\">ScratchEd</a> is an online community where Scratch educators <a href=\"http://scratched.gse.harvard.edu/stories\">share stories</a>, exchange resources, ask questions, and find people. ScratchEd is developed and supported by the Harvard Graduate School of Education.",
|
"teacherlanding.scratchEdDescription": "<a href=\"http://scratched.gse.harvard.edu/\">ScratchEd</a> is an online community where Scratch educators <a href=\"http://scratched.gse.harvard.edu/stories\">share stories</a>, exchange resources, ask questions, and find people. ScratchEd is developed and supported by the Harvard Graduate School of Education.",
|
||||||
"teacherlanding.meetupTitle": "In-Person Gatherings",
|
"teacherlanding.meetupTitle": "In-Person Gatherings",
|
||||||
|
|
|
@ -64,7 +64,7 @@ var Landing = injectIntl(React.createClass({
|
||||||
</section>
|
</section>
|
||||||
<section id="resources">
|
<section id="resources">
|
||||||
<span className="nav-spacer"></span>
|
<span className="nav-spacer"></span>
|
||||||
<h2><FormattedMessage id="teacherlanding.resourcesTitle" /></h2>
|
<h2><FormattedMessage id="general.resourcesTitle" /></h2>
|
||||||
<FlexRow className="educator-community">
|
<FlexRow className="educator-community">
|
||||||
<div>
|
<div>
|
||||||
<h3><FormattedMessage id="teacherlanding.scratchEdTitle" /></h3>
|
<h3><FormattedMessage id="teacherlanding.scratchEdTitle" /></h3>
|
||||||
|
|
Loading…
Reference in a new issue