Skip to content

Commit

Permalink
i18n: Memoize dcnpgettext (#101)
Browse files Browse the repository at this point in the history
* i18n: Memoize dcnpgettext

* i18n: Export dcnpgettext inline
  • Loading branch information
aduth committed Apr 12, 2018
1 parent ed56276 commit 2bd43bb
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 2 deletions.
11 changes: 11 additions & 0 deletions packages/i18n/benchmark/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
const Benchmark = require( 'benchmark' );
const { __ } = require( '../' );

const suite = new Benchmark.Suite;

suite
.add( '__', () => {
__( 'Translate' );
} )
.on( 'cycle', ( event ) => console.log( event.target.toString() ) )
.run( { async: true } );
4 changes: 2 additions & 2 deletions packages/i18n/src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -69,15 +69,15 @@ export function getI18n() {
*
* @return {string} The translated string.
*/
export function dcnpgettext( domain = 'default', context, single, plural, number ) {
export const dcnpgettext = memoize( ( domain = 'default', context, single, plural, number ) => {
try {
return getI18n().dcnpgettext( domain, context, single, plural, number );
} catch ( error ) {
logErrorOnce( 'Jed localization error: \n\n' + error.toString() );

return single;
}
}
} );

/**
* Retrieve the translation of text.
Expand Down

0 comments on commit 2bd43bb

Please sign in to comment.