Skip to content

Commit 1342f80

Browse files
Portugal, Marcelomportuga
Portugal, Marcelo
authored andcommitted
feat(i18n): Separate language files from ui-grid.base.js
Improving load performance of ui-grid.base.js by separating out the language files(with the exception of english, as that is the default language of the grid).
1 parent d2675b9 commit 1342f80

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

grunt/concat.js

+13-2
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,27 @@ const fs = require('fs');
22
const path = require('path');
33

44
const getDirectories = p => fs.readdirSync(p).filter(f => fs.statSync(path.join(p, f)).isDirectory());
5+
const getLanguages = p => fs.readdirSync(p).filter(f => fs.statSync(path.join(p, f)).isFile());
56

67
function getFiles() {
78
const files = {
89
'<%= dist %>/release/<%= pkg.name %>.js': ['src/js/core/bootstrap.js', 'src/js/**/*.js', 'src/features/*/js/**/*.js', '.tmp/template.js'],
9-
'<%= dist %>/release/<%= pkg.name %>.base.js': ['src/js/core/bootstrap.js', 'src/js/**/*.js', '.tmp/template.js']
10+
'<%= dist %>/release/<%= pkg.name %>.base.js': ['src/js/core/bootstrap.js', 'src/js/core/**/*.js', 'src/js/i18n/ui-18n.js',
11+
'src/js/i18n/en.js', '.tmp/template.js']
1012
};
1113
const features = getDirectories('src/features/');
1214

1315
features.forEach((feat) => {
14-
files[`<%= dist %>/release/<%= pkg.name %>.${feat}.js`] = [`src/features/${feat}/js/**/*.js`]
16+
files[`<%= dist %>/release/<%= pkg.name %>.${feat}.js`] = [`src/features/${feat}/js/**/*.js`];
17+
});
18+
19+
const languages = getLanguages('src/js/i18n/')
20+
.filter((lang) => lang !== 'en.js' && lang !== 'ui-i18n.js');
21+
22+
files['<%= dist %>/release/i18n/<%= pkg.name %>.language.all.js'] = languages.map((lang) => `src/js/i18n/${lang}`);
23+
24+
languages.forEach((lang) => {
25+
files[`<%= dist %>/release/i18n/<%= pkg.name %>.language.${lang}`] = [`src/js/i18n/${lang}`];
1526
});
1627

1728
return files;

misc/tutorial/104_i18n.ngdoc

+9
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,15 @@ Another option is to use the i18nService and use the setCurrentLang method
1919

2020
For an example using angular-translate to translate your headers, refer to http://plnkr.co/edit/KnrKTst5dWXvlZNeIy9c?p=preview
2121

22+
If you would like to get better performance out of your application, it is recommended that you take advantage of UI-Grid's multi-file
23+
support. By default ui-grid.base.js will contain just the english language, in order to load the other language follow the example bellow:
24+
<pre>
25+
<script src="/release/ui-grid.base.js"></script>
26+
<script src="/release/i18n/ui-grid.language.[YOUR_LANGUAGE_HERE].js"></script>
27+
28+
<!-- Alternatively you can load all languages provided with you grid by loading the following -->
29+
<script src="/release/i18n/ui-grid.language.all.js"></script>
30+
</pre>
2231

2332
@example
2433
<example module="app">

0 commit comments

Comments
 (0)