Commit graph

76 commits

Author SHA1 Message Date
chrisgarrity
376aee0eb3 Add error checking and testing for translations (#1401)
* Add error checking and testing for translations. Also make build-locales quieter if there are no problems.

* Allow build with broken translations (to allow development), but fail test so that broken translations don't get merged or deployed
2017-08-15 09:32:18 -04:00
chrisgarrity
39b1400705 Handle /help redirect (#1363) 2017-06-23 10:28:34 -04:00
chrisgarrity
74e315dc71 Add new Tips page (#1357)
New of tips page, uses cards from new resources server (s3)

* added get-localized-urls script to get the generated json from the s3 bucket
* added /tips route
* correct localized-urls for other pages
* remove thingstotry
* redirect /go
* fix up /info/cards view to use resources (s3).
* redirect /go to /tips
* change /hoc redirect from /go to /tips
* Add full set of cards pdf download to tips localization
* removed cards and guides from static PDFs, they are all coming from resources.scratch.mit.edu now.
* removed things to try view

Corrections for reviews:
* decided to pretty print the localized URLs
* replaced console.errors with process.stdout and fail with exit(1)
* formatted localized-urls to make it easier to read
* moved link outside  `<Button…` makes whole button clickable instead of just text
* fixed up css styles, removed unnecessary classes
* corrected “unused” resource links
2017-06-21 16:20:18 -04:00
Matthew Taylor
a8cf1af73c Merge pull request #1316 from mewtaylor/issue/explore-projects
Fix r2-3978: Use regex in express patterns to limit scope
2017-05-24 12:49:09 -04:00
Matthew Taylor
79e778af7a make comment explanatory of new style
Thanks @rschamp!
2017-05-24 08:51:28 -04:00
Matthew Taylor
bab863cd14 Apply defaults for untranslated pages too
since we’ll need them for nav/footer strings
2017-05-23 13:16:46 -04:00
Matthew Taylor
87da9f3d8a Use regex in express patterns to limit scope
This fixes https://github.com/LLK/scratchr2/issues/3798 by using regex in expressjs patterns, and then also parsing those regex patterns for fastly, such that we can limit the scope of the regex created for a specific view
2017-05-18 13:57:49 -04:00
Matthew Taylor
3a27b1d2e2 Apply english strings as default translations
This fixes #1303 by ensuring that, if a language does not have a string, the default will be applied.
2017-05-03 14:21:27 -04:00
Matthew Taylor
ff0c5eaa05 remove unused variable 2017-04-26 08:40:58 -04:00
Matthew Taylor
905fe8ac10 Remove setBucketNameHeader
Missed this one – it’s now covered in the custom vcl
2017-04-26 08:35:15 -04:00
Matthew Taylor
d563535ba5 Move string set methods out of fastly-extended
This also moves all helper methods in `configure-fastly` into a separate utility file, and adds some additional unit tests for those utilities now that they are separated.
2017-04-25 13:18:13 -04:00
Matthew Taylor
ca067fdc5e Use custom VCL for Pass/!Pass conditions
We’ve now exceeded our max number of characters for a condition in the Fastly API, and we need to make it larger to accommodate regex conditionals that can match on any of the routes in www currently.

This fixes the issue by moving the conditions – and the states that are affected by it, like setting the backend or cache ttls – to two custom vcl files that are updated via the Fastly API. One is for the `vcl_rev` config, and one is for the `vcl_fetch` config.
2017-04-25 11:06:57 -04:00
Sarah Otts
1789720ba4 Add card translations (#1275)
* Added pdfs; added translations for /cards

* Added spanish cards to ttt page

* Added catalan cards to ttt and /cards

* Added zh-tw cards to /cards and /go and fixed /cards link for Fashion cards for all languages

* Removed duplicate starter link for ca, remove starter links for zh-tw (no translation)

fixes #1276 (swedish)
2017-04-19 16:40:57 -04:00
Matthew Taylor
1b4c14b333 Exit on error in translation building
thanks @chrisgarrity !
2017-03-13 11:51:31 -04:00
Matthew Taylor
5ca880d16a still iterate over languages for views without l10n
Fixes #1199 by continuing the iteration over languages even if a view doesn’t have an l10n file. The issue was that only the `en` language object was getting added when the view didn’t have an l10n file, because of the `hasOwnProperty` check. This adjusts it to iterate over languages anyways, and only ouput the `No translations for…` message if it’s for a language of a view that does have an l10n file.
2017-03-13 10:00:30 -04:00
Matthew Taylor
0912fca5f2 Use scratchr2_translations for language files
Adjusts the translation system to go back to using a github repo to store snapshots of transltions, but continues to use new `.json` formatted files
2017-02-24 07:58:50 -05:00
chrisgarrity
82785435bf New scripts to generate translations from Transifex
Added tx-import, expects TX_TOKEN environment variable to be set to an API token for Transifex. If no API token exists it’ll just use the default English strings for everything.

Removed the localization spot checks because they were checking tha json got built from po files. With Tx-import the files are already json, and may possibly be missing.
2017-02-15 22:51:15 -05:00
chrisgarrity
9e4ef5fb1b Tx import (#1143)
* Transifex transition

Scripts and configuration for transition to Transifex for translation.

* Transifex transition update

changed the name of the place where translations are saved from ‘translations’ to localizations so that we can have a consistent name in both scratchr2, and scratch-www.

A couple of other little clean-ups to make sure that it’s ES5 compliant.
- don’t use const
- don’t use template strings (backticks)
2017-01-18 12:57:14 -05:00
Matthew Taylor
8e964cdfdd Still build url localization for languages with none
otherwise, they will get the id for the url, rather than the english version. Fixes #1059
2016-11-21 15:36:50 -05:00
Matthew Taylor
e01afa0161 Add new cards and card thumbs to www
Fixes #856. This also updates the styling of the `cards.jsx` view to follow the trello style guide, as previously discussed.
2016-10-19 13:45:37 -04:00
chrisgarrity
5b2ff1a4ca Update md5map fixtures for tests
Also cleaned up comments from @mewtaylor
2016-10-11 19:28:13 -04:00
chrisgarrity
1339683a73 Fix #940
Most problems were due to strings being duplicated and overwriting each other. Updated the build-locales script to keep track of duplicates.
Project Curated by on the splash page was just missing the formatMessage call.
2016-10-11 12:33:31 -04:00
Ray Schamp
7ae7db76a2 Fix typo 2016-07-22 12:45:18 -04:00
Ray Schamp
62609cbc87 Collapse by beginning all routes with a common ^ 2016-07-22 12:38:24 -04:00
Ray Schamp
e5ad1872d0 Don't require end slashes when replacing arguments 2016-07-22 11:47:26 -04:00
Matthew Taylor
6e67e3973c Revert "Attempt 2 – reprioritize header conditionals"
This reverts commit 1ee9358be4.
2016-07-08 10:31:17 -04:00
Matthew Taylor
1ee9358be4 Attempt 2 – reprioritize header conditionals 2016-07-08 10:18:02 -04:00
Matthew Taylor
ce9b3561f2 use custom-defined internal separator
There is some stacking that happens in object keys that had been using the `-` to track language/view hierarchies, which was thrown off by view names that used a `-` in them. Switch to using `:`, and also make it customizable. Fixes #655
2016-07-01 14:27:41 -04:00
Matthew Taylor
dfc4f9574d use route aliases for generalizable route patterns
1. match all `^/explore` to www
2. match all `^/search` to www
3. match all `^/conference` to www
2016-06-14 11:28:20 -04:00
Ray Schamp
e323cbbb9f Terminate view.html rewrite rule
Otherwise anything with html in the path matches. Fixes #527
2016-05-31 09:38:13 -04:00
Ray Schamp
19758f3901 Merge pull request #521 from rschamp/bugfix/cache-condition
[Release] Fix cache condition request
2016-05-27 14:10:33 -04:00
Ray Schamp
ca97838695 Fix cache condition request
The response from the request condition includes fields we don't want to send up with the cache condition
2016-05-27 13:50:13 -04:00
Matthew Taylor
affec666d2 Use the condition statement for the error log 2016-05-26 19:51:57 -04:00
Matthew Taylor
1f25fec353 Add condition to errors for fastly config 2016-05-26 19:41:03 -04:00
Ray Schamp
8ded5cb267 Always use regex form of route patterns
When talking to Fastly, don't ever use an express-style url pattern for consistency, and so we don't use : characters in condition names.
2016-05-20 10:33:13 -04:00
Matthew Taylor
cf2165d295 Merge pull request #497 from mewtaylor/feature/conference-schedule
Feature: conference schedule page
2016-05-19 18:04:04 -04:00
Matthew Taylor
d69de477a1 Merge branch 'develop' of https://github.com/LLK/scratch-www into feature/conference-schedule
* 'develop' of https://github.com/LLK/scratch-www: (32 commits)
  Lint
  Bundle all locale data
  Don't bundle polyfills
  Set up Raven within init.js
  Prefix privacyPolicy message string
  Exclude minified javascript from linting
  One space more
  Changes "interfacesto" to "interfaces to"
  Remove tag target
  Filter before mapping to avoid returning undefined
  Fix Pass condition for "static" routes
  Spacing2
  Mangling is the default
  Spacing
  Update for typography fixes
  Cherry pick PR #476 into master
  Add invisible spacer to anchored sections
  For Developers
  Lint JSON, expand and simplify lint step
  Fix banned user redirect
  ...

# Conflicts:
#	src/redux/actions.js
#	src/redux/reducer.js
2016-05-19 13:25:36 -04:00
Matthew Taylor
1e57262771 Add fastly rule for express uri patterns
convert path variables in express (i.e. dev-server) into rules that work for fastly (i.e. `.+?`). I tried to make it `\w+?`, but javascript seemed to either want no `\`'s or two `\`'s
2016-05-19 11:36:03 -04:00
Matthew Taylor
4165132a3e use more descriptive variable names in loops
thanks @rschamp!
2016-05-19 10:43:25 -04:00
Matthew Taylor
fa566ac140 Fix tests, and make error check specific
Since it's using `require` to get the localisation strings, check if the error is `MODULE_NOT_FOUND` before moving on – because if it isn't, then there is an unknown error that should be thrown. Thanks @rschamp for the suggestion!
2016-05-19 06:56:45 -04:00
Matthew Taylor
1f871e7cf1 Use routes.json to get localization paths
Before we were using glob, which was about to start failing on subdirectories in views (which we started using in `conference`). Instead of searching for `l10n.json`, it seemed more appropriate to instead look for localization by using the configured pages that need to be localized.
2016-05-18 09:49:49 -04:00
Ray Schamp
ca546552b9 Filter before mapping to avoid returning undefined
If the map function doesn't return anything, the added item is undefined. Avoid this by filtering the array before mapping.
2016-05-17 13:49:03 -04:00
Ray Schamp
bb70629b6b Fix Pass condition for "static" routes
Previously we relied on the static directory to construct the pass condition, but this doesn't include many things added to the build other than static files. So instead of adding these explicitly through `extraAppRoutes`, base the Pass condition on the final build, but exclude the view .html files. This way the version.txt, routes.json, and all directories added by webpack will be resolved to S3 rather than scratchr2.
2016-05-17 12:20:45 -04:00
Ray Schamp
fce7c0cd9b Purge all after configuring Fastly 2016-04-29 15:52:16 -04:00
Ray Schamp
dd1c2c1627 Use s3cmd to sync with S3 2016-04-29 15:52:15 -04:00
Ray Schamp
62ff7f615a Remove deleted files from S3 on build 2016-04-28 17:07:11 -04:00
Ray Schamp
fbaa2d2ed9 Consolidate pass condition to one req.url~ check 2016-04-28 14:18:42 -04:00
Ray Schamp
a08f56230a Raise priority of rewrite conditions
This avoids a situation where going to http://staging.scratch.mit.edu/hoc will redirect to https://staging.scratch.mit.edu/hoc.html.
2016-04-27 15:27:45 -04:00
Ray Schamp
39063ae76c End static directories with / in Pass condition
Otherwise, any URL beginning with static path names go to S3.
2016-04-25 14:32:52 -04:00
Ray Schamp
19a0ed3f4b Remove spaces from condition
This condition exceeded 512 characters. We will have to rethink how to construct this.
2016-04-22 09:54:14 -04:00