Skip to content

Commit 2d55c70

Browse files
committed
Gutenberg: Load Jetpack block translations in Calypso synchronously
1 parent 5d2eb60 commit 2d55c70

File tree

2 files changed

+48
-3
lines changed

2 files changed

+48
-3
lines changed

Diff for: client/gutenberg/editor/controller.js

+30
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,19 @@
11
/** @format */
2+
23
/**
34
* External dependencies
45
*/
56
import React from 'react';
7+
import debug from 'debug';
8+
import request from 'superagent';
9+
import { isEnabled } from 'config';
610
import { has, uniqueId } from 'lodash';
11+
import { setLocaleData } from '@wordpress/i18n';
712

813
/**
914
* Internal dependencies
1015
*/
16+
import getCurrentLocaleSlug from 'state/selectors/get-current-locale-slug';
1117
import { getCurrentUserId } from 'state/current-user/selectors';
1218
import { getSelectedSiteId, getSelectedSiteSlug } from 'state/ui/selectors';
1319
import { EDITOR_START } from 'state/action-types';
@@ -34,6 +40,30 @@ function getPostID( context ) {
3440
return parseInt( context.params.post, 10 );
3541
}
3642

43+
export const jetpackBlocki18n = ( context, next ) => {
44+
if ( ! isEnabled( 'gutenberg/block/jetpack-preset' ) ) {
45+
return next();
46+
}
47+
48+
const state = context.store.getState();
49+
const localeSlug = getCurrentLocaleSlug( state );
50+
const languageFileUrl =
51+
'https://widgets.wp.com/languages/jetpack-gutenberg-blocks/' + localeSlug + '.json';
52+
53+
request.get( languageFileUrl ).end( ( error, response ) => {
54+
if ( error ) {
55+
debug(
56+
'Encountered an error loading locale file for ' + localeSlug + '. Falling back to English.'
57+
);
58+
return next();
59+
}
60+
61+
setLocaleData( response.body, 'jetpack' );
62+
63+
next();
64+
} );
65+
};
66+
3767
export const post = ( context, next ) => {
3868
//see post-editor/controller.js for reference
3969

Diff for: client/gutenberg/editor/index.js

+18-3
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import page from 'page';
88
* Internal dependencies
99
*/
1010
import { siteSelection, sites } from 'my-sites/controller';
11-
import { post } from './controller';
11+
import { jetpackBlocki18n, post } from './controller';
1212
import config from 'config';
1313
import { makeLayout, render as clientRender } from 'controller';
1414

@@ -17,18 +17,33 @@ export default function() {
1717
page( '/gutenberg', '/gutenberg/post' );
1818

1919
page( '/gutenberg/post', siteSelection, sites, makeLayout, clientRender );
20-
page( '/gutenberg/post/:site/:post?', siteSelection, post, makeLayout, clientRender );
20+
page(
21+
'/gutenberg/post/:site/:post?',
22+
siteSelection,
23+
jetpackBlocki18n,
24+
post,
25+
makeLayout,
26+
clientRender
27+
);
2128
page( '/gutenberg/post/:site?', siteSelection, makeLayout, clientRender );
2229

2330
page( '/gutenberg/page', siteSelection, sites, makeLayout, clientRender );
24-
page( '/gutenberg/page/:site/:post?', siteSelection, post, makeLayout, clientRender );
31+
page(
32+
'/gutenberg/page/:site/:post?',
33+
siteSelection,
34+
jetpackBlocki18n,
35+
post,
36+
makeLayout,
37+
clientRender
38+
);
2539
page( '/gutenberg/page/:site?', siteSelection, makeLayout, clientRender );
2640

2741
if ( config.isEnabled( 'manage/custom-post-types' ) ) {
2842
page( '/gutenberg/edit/:customPostType', siteSelection, sites, makeLayout, clientRender );
2943
page(
3044
'/gutenberg/edit/:customPostType/:site/:post?',
3145
siteSelection,
46+
jetpackBlocki18n,
3247
post,
3348
makeLayout,
3449
clientRender

0 commit comments

Comments
 (0)