General cleanup

This commit is contained in:
Matthew Taylor 2015-10-16 15:10:27 -04:00
parent 7b704e878f
commit 58ef98016a
4 changed files with 224 additions and 163 deletions

View file

@ -11,7 +11,7 @@ require('./activity.scss');
var defaultMessages = defineMessages({ var defaultMessages = defineMessages({
whatsHappening: { whatsHappening: {
id: 'general.whatsHappening', id: 'general.whatsHappening',
defaultMessage: 'What\s Happening?' defaultMessage: 'What\'s Happening?'
} }
}); });

View file

@ -17,36 +17,48 @@ var Footer = React.createClass({
id='general.about' id='general.about'
defaultMessage={'About'} /> defaultMessage={'About'} />
</dt> </dt>
<dd><a href="/about/"> <dd>
<FormattedMessage <a href="/about/">
id='footer.about' <FormattedMessage
defaultMessage={'About Scratch'} /> id='footer.about'
</a></dd> defaultMessage={'About Scratch'} />
<dd><a href="/parents/"> </a>
<FormattedMessage </dd>
id='general.forParents' <dd>
defaultMessage={'For Parents'} /> <a href="/parents/">
</a></dd> <FormattedMessage
<dd><a href="/educators/"> id='general.forParents'
<FormattedMessage defaultMessage={'For Parents'} />
id='general.forEducators' </a>
defaultMessage={'For Educators'} /> </dd>
</a></dd> <dd>
<dd><a href="/info/credits/"> <a href="/educators/">
<FormattedMessage <FormattedMessage
id='general.credits' id='general.forEducators'
defaultMessage={'Credits'} /> defaultMessage={'For Educators'} />
</a></dd> </a>
<dd><a href="/jobs/"> </dd>
<FormattedMessage <dd>
id='general.jobs' <a href="/info/credits/">
defaultMessage={'Jobs'} /> <FormattedMessage
</a></dd> id='general.credits'
<dd><a href="http://wiki.scratch.mit.edu/wiki/Scratch_Press"> defaultMessage={'Credits'} />
<FormattedMessage </a>
id='general.press' </dd>
defaultMessage={'Press'} /> <dd>
</a></dd> <a href="/jobs/">
<FormattedMessage
id='general.jobs'
defaultMessage={'Jobs'} />
</a>
</dd>
<dd>
<a href="http://wiki.scratch.mit.edu/wiki/Scratch_Press">
<FormattedMessage
id='general.press'
defaultMessage={'Press'} />
</a>
</dd>
</dl> </dl>
<dl> <dl>
@ -55,26 +67,34 @@ var Footer = React.createClass({
id='general.communityHeader' id='general.communityHeader'
defaultMessage={'Community'} /> defaultMessage={'Community'} />
</dt> </dt>
<dd><a href="/community_guidelines/"> <dd>
<FormattedMessage <a href="/community_guidelines/">
id='general.guidelines' <FormattedMessage
defaultMessage={'Community Guidelines'} /> id='general.guidelines'
</a></dd> defaultMessage={'Community Guidelines'} />
<dd><a href="/discuss/"> </a>
<FormattedMessage </dd>
id='footer.discuss' <dd>
defaultMessage={'Discussion Forums'} /> <a href="/discuss/">
</a></dd> <FormattedMessage
<dd><a href="https://wiki.scratch.mit.edu/"> id='footer.discuss'
<FormattedMessage defaultMessage={'Discussion Forums'} />
id='general.wiki' </a>
defaultMessage={'Scratch Wiki'} /> </dd>
</a></dd> <dd>
<dd><a href="/statistics/"> <a href="https://wiki.scratch.mit.edu/">
<FormattedMessage <FormattedMessage
id='general.statistics' id='general.wiki'
defaultMessage={'Statistics'} /> defaultMessage={'Scratch Wiki'} />
</a></dd> </a>
</dd>
<dd>
<a href="/statistics/">
<FormattedMessage
id='general.statistics'
defaultMessage={'Statistics'} />
</a>
</dd>
</dl> </dl>
<dl> <dl>
@ -83,31 +103,41 @@ var Footer = React.createClass({
id='general.support' id='general.support'
defaultMessage={'Support'} /> defaultMessage={'Support'} />
</dt> </dt>
<dd><a href="/help/"> <dd>
<FormattedMessage <a href="/help/">
id='footer.help' <FormattedMessage
defaultMessage={'Help Page'} /> id='footer.help'
</a></dd> defaultMessage={'Help Page'} />
<dd><a href="/info/faq/"> </a>
<FormattedMessage </dd>
id='general.faq' <dd>
defaultMessage={'FAQ'} /> <a href="/info/faq/">
</a></dd> <FormattedMessage
<dd><a href="/scratch2download/"> id='general.faq'
<FormattedMessage defaultMessage={'FAQ'} />
id='general.offlineEditor' </a>
defaultMessage={'Offline Editor'} /> </dd>
</a></dd> <dd>
<dd><a href="/contact-us/"> <a href="/scratch2download/">
<FormattedMessage <FormattedMessage
id='general.contactUs' id='general.offlineEditor'
defaultMessage={'Contact Us'} /> defaultMessage={'Offline Editor'} />
</a></dd> </a>
<dd><a href="https://secure.donationpay.org/codetolearn/"> </dd>
<FormattedMessage <dd>
id='general.donate' <a href="/contact-us/">
defaultMessage={'Donate'} /> <FormattedMessage
</a></dd> id='general.contactUs'
defaultMessage={'Contact Us'} />
</a>
</dd>
<dd>
<a href="https://secure.donationpay.org/codetolearn/">
<FormattedMessage
id='general.donate'
defaultMessage={'Donate'} />
</a>
</dd>
</dl> </dl>
<dl> <dl>
@ -116,22 +146,27 @@ var Footer = React.createClass({
id='general.legal' id='general.legal'
defaultMessage={'Legal'} /> defaultMessage={'Legal'} />
</dt> </dt>
<dd><a href="/terms_of_use/"> <dd>
<FormattedMessage <a href="/terms_of_use/">
id='general.termsOfUse' <FormattedMessage
defaultMessage={'Terms of Use'} /> id='general.termsOfUse'
Terms of Use defaultMessage={'Terms of Use'} />
</a></dd> </a>
<dd><a href="/privacy_policy/"> </dd>
<FormattedMessage <dd>
id='privacyPolicy' <a href="/privacy_policy/">
defaultMessage={'Privacy Policy'} /> <FormattedMessage
</a></dd> id='privacyPolicy'
<dd><a href="/DMCA/"> defaultMessage={'Privacy Policy'} />
<FormattedMessage </a>
id='general.dmca' </dd>
defaultMessage={'DMCA'} /> <dd>
</a></dd> <a href="/DMCA/">
<FormattedMessage
id='general.dmca'
defaultMessage={'DMCA'} />
</a>
</dd>
</dl> </dl>
<dl> <dl>
@ -140,31 +175,41 @@ var Footer = React.createClass({
id='footer.scratchFamily' id='footer.scratchFamily'
defaultMessage={'Scratch Family'} /> defaultMessage={'Scratch Family'} />
</dt> </dt>
<dd><a href="http://scratched.gse.harvard.edu/"> <dd>
<FormattedMessage <a href="http://scratched.gse.harvard.edu/">
id='general.scratchEd' <FormattedMessage
defaultMessage={'ScratchEd'} /> id='general.scratchEd'
</a></dd> defaultMessage={'ScratchEd'} />
<dd><a href="http://www.scratchjr.org/"> </a>
<FormattedMessage </dd>
id='general.scratchJr' <dd>
defaultMessage={'ScratchJr'} /> <a href="http://www.scratchjr.org/">
</a></dd> <FormattedMessage
<dd><a href="http://day.scratch.mit.edu/"> id='general.scratchJr'
<FormattedMessage defaultMessage={'ScratchJr'} />
id='general.scratchday' </a>
defaultMessage={'Scratch Day'} /> </dd>
</a></dd> <dd>
<dd><a href="/conference/"> <a href="http://day.scratch.mit.edu/">
<FormattedMessage <FormattedMessage
id='general.scratchConference' id='general.scratchday'
defaultMessage={'Scratch Conference'} /> defaultMessage={'Scratch Day'} />
</a></dd> </a>
<dd><a href="http://www.scratchfoundation.org/"> </dd>
<FormattedMessage <dd>
id='general.scratchFoundation' <a href="/conference/">
defaultMessage={'Scratch Foundation'} /> <FormattedMessage
</a></dd> id='general.scratchConference'
defaultMessage={'Scratch Conference'} />
</a>
</dd>
<dd>
<a href="http://www.scratchfoundation.org/">
<FormattedMessage
id='general.scratchFoundation'
defaultMessage={'Scratch Foundation'} />
</a>
</dd>
</dl> </dl>
</div> </div>

View file

@ -123,31 +123,41 @@ var Navigation = React.createClass({
<ul> <ul>
<li className="logo"><a href="/"></a></li> <li className="logo"><a href="/"></a></li>
<li className="link create"><a href="/projects/editor"> <li className="link create">
<FormattedMessage <a href="/projects/editor">
id="general.create" <FormattedMessage
defaultMessage={'Create'} /> id="general.create"
</a></li> defaultMessage={'Create'} />
<li className="link explore"><a href="/explore?date=this_month"> </a>
<FormattedMessage </li>
id="general.explore" <li className="link explore">
defaultMessage={'Explore'} /> <a href="/explore?date=this_month">
</a></li> <FormattedMessage
<li className="link discuss"><a href="/discuss"> id="general.explore"
<FormattedMessage defaultMessage={'Explore'} />
id="general.discuss" </a>
defaultMessage={'Discuss'} /> </li>
</a></li> <li className="link discuss">
<li className="link about"><a href="/about"> <a href="/discuss">
<FormattedMessage <FormattedMessage
id="general.about" id="general.discuss"
defaultMessage={'About'} /> defaultMessage={'Discuss'} />
</a></li> </a>
<li className="link help"><a href="/help"> </li>
<FormattedMessage <li className="link about">
id="general.help" <a href="/about">
defaultMessage={'Help'} /> <FormattedMessage
</a></li> id="general.about"
defaultMessage={'About'} />
</a>
</li>
<li className="link help">
<a href="/help">
<FormattedMessage
id="general.help"
defaultMessage={'Help'} />
</a>
</li>
<li className="search"> <li className="search">
<form action="/search/google_results" method="get"> <form action="/search/google_results" method="get">
@ -161,16 +171,16 @@ var Navigation = React.createClass({
<li className="link right messages" key="messages"> <li className="link right messages" key="messages">
<a <a
href="/messages/" href="/messages/"
title={formatMessage(defaultMessages.messages)} title={formatMessage(defaultMessages.messages)}>
>
<FormattedMessage {...defaultMessages.messages} /> <FormattedMessage {...defaultMessages.messages} />
</a> </a>
</li>, </li>,
<li className="link right mystuff" key="mystuff"> <li className="link right mystuff" key="mystuff">
<a <a
href="/mystuff/" href="/mystuff/"
title={formatMessage(defaultMessages.myStuff)} title={formatMessage(defaultMessages.myStuff)}>
>
<FormattedMessage {...defaultMessages.myStuff} /> <FormattedMessage {...defaultMessages.myStuff} />
</a> </a>
</li>, </li>,
@ -183,19 +193,25 @@ var Navigation = React.createClass({
as="ul" as="ul"
isOpen={this.state.accountNavOpen} isOpen={this.state.accountNavOpen}
onRequestClose={this.closeAccountNav}> onRequestClose={this.closeAccountNav}>
<li><a href={this.getProfileUrl()}> <li>
<FormattedMessage <a href={this.getProfileUrl()}>
id='general.profile' <FormattedMessage
defaultMessage={'Profile'} /> id='general.profile'
</a></li> defaultMessage={'Profile'} />
<li><a href="/mystuff/"> </a>
<FormattedMessage {...defaultMessages.myStuff} /> </li>
</a></li> <li>
<li><a href="/accounts/settings/"> <a href="/mystuff/">
<FormattedMessage <FormattedMessage {...defaultMessages.myStuff} />
id='general.accountSettings' </a>
defaultMessage={'Account settings'} /> </li>
</a></li> <li>
<a href="/accounts/settings/">
<FormattedMessage
id='general.accountSettings'
defaultMessage={'Account settings'} />
</a>
</li>
<li className="divider"> <li className="divider">
<a href="#" onClick={this.handleLogOut}> <a href="#" onClick={this.handleLogOut}>
<FormattedMessage <FormattedMessage

View file

@ -37,7 +37,6 @@ if (!args.length) {
} }
var outputFile = path.resolve(__dirname, '../../', args[0]); var outputFile = path.resolve(__dirname, '../../', args[0]);
// var outputDir = path.resolve(__dirname, '../../messages');
var poUiDir = path.resolve(__dirname, '../../node_modules/scratchr2_translations/ui'); var poUiDir = path.resolve(__dirname, '../../node_modules/scratchr2_translations/ui');
var icuTemplateFile = path.resolve(__dirname, '../../en.json'); var icuTemplateFile = path.resolve(__dirname, '../../en.json');
@ -52,6 +51,8 @@ var locales = {
// Get ui localization strings first // Get ui localization strings first
glob(poUiDir + '/*', function (err, files) { glob(poUiDir + '/*', function (err, files) {
if (err) throw new Error(err);
files.forEach(function (file) { files.forEach(function (file) {
var lang = file.split('/').pop(); var lang = file.split('/').pop();
var jsFile = path.resolve(file, 'LC_MESSAGES/djangojs.po'); var jsFile = path.resolve(file, 'LC_MESSAGES/djangojs.po');
@ -62,18 +63,17 @@ glob(poUiDir + '/*', function (err, files) {
var jsTranslations = po2icu.poFileToICUSync(lang, jsFile); var jsTranslations = po2icu.poFileToICUSync(lang, jsFile);
translations = mergeNewTranslations(translations, jsTranslations, icuWithIds); translations = mergeNewTranslations(translations, jsTranslations, icuWithIds);
} catch (err) { } catch (err) {
// :); process.stdout.write('Warning: the file ' + jsFile + ' was not found\n');
} }
try { try {
var pyTranslations = po2icu.poFileToICUSync(lang, pyFile); var pyTranslations = po2icu.poFileToICUSync(lang, pyFile);
translations = mergeNewTranslations(translations, pyTranslations, icuWithIds); translations = mergeNewTranslations(translations, pyTranslations, icuWithIds);
} catch (err) { } catch (err) {
// :); process.stdout.write('Warning: the file ' + pyFile + ' was not found\n');
} }
locales[lang] = translations; locales[lang] = translations;
// fs.writeFileSync(icuFile, JSON.stringify(existingTranslations, null, 4));
}); });
fs.writeFileSync(outputFile, JSON.stringify(locales, null, 4)); fs.writeFileSync(outputFile, JSON.stringify(locales, null, 4));
}); });