Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[l10n] Document how far Material-UI should go #20737

Merged
merged 3 commits into from
Apr 25, 2020

Conversation

eloyrubinos
Copy link
Contributor

I need MUI galician-localized for a project and I though of contributing the translations, so here they are.

@mui-pr-bot
Copy link

mui-pr-bot commented Apr 24, 2020

Details of bundle changes.

Comparing: 21d01a5...6fd2486

Details of page changes
bundle Size Change Size Gzip Change Gzip
/guides/localization ▲ +200 B (+1.94% ) 10.5 kB -- -1 B
/components/grid ▼ -100 B (-0.31% ) 32.3 kB -- -1 B
/components/hidden ▼ -100 B (-0.94% ) 10.5 kB -- -1 B
/components/button-group ▼ -10 B (-0.14% ) 7.18 kB -- -1 B
/components/pickers ▼ -10 B (-0.17% ) 6 kB -- -1 B
/customization/density ▼ -10 B (-0.10% ) 9.74 kB -- -1 B
/discover-more/team ▼ -10 B (-0.15% ) 6.72 kB -- -1 B
/getting-started/templates ▼ -10 B (-0.11% ) 8.71 kB -- -1 B
/getting-started/templates/album ▼ -10 B (-0.18% ) 5.57 kB -- -1 B
/getting-started/templates/blog ▼ -10 B (-0.13% ) 7.43 kB -- -1 B
/getting-started/templates/dashboard ▼ -10 B (-0.11% ) 8.85 kB -- -1 B
/getting-started/templates/sign-in ▼ -10 B (-0.11% ) 9.51 kB -- -1 B
/getting-started/templates/sign-up ▼ -10 B (-0.10% ) 9.62 kB -- -1 B
/_app -- 36.8 kB -- -1 B
/api-docs/alert-title -- 1.4 kB -- -1 B
/api-docs/alert -- 2.4 kB -- -1 B
/api-docs/app-bar -- 1.94 kB -- -1 B
/api-docs/autocomplete -- 4.55 kB -- -1 B
/api-docs/avatar-group -- 1.52 kB -- -1 B
/api-docs/avatar -- 2.09 kB -- -1 B
/api-docs/backdrop -- 1.72 kB -- -1 B
/api-docs/badge -- 2.13 kB -- -1 B
/api-docs/bottom-navigation-action -- 1.82 kB -- -1 B
/api-docs/bottom-navigation -- 1.7 kB -- -1 B
/api-docs/breadcrumbs -- 1.85 kB -- -1 B
/api-docs/button-base -- 2.34 kB -- -1 B
/api-docs/button-group -- 2.7 kB -- -1 B
/api-docs/button -- 3.44 kB -- -1 B
/api-docs/card-action-area -- 1.57 kB -- -1 B
/api-docs/card-actions -- 1.48 kB -- -1 B
/api-docs/card-content -- 1.44 kB -- -1 B
/api-docs/card-header -- 1.78 kB -- -1 B
/api-docs/card-media -- 1.68 kB -- -1 B
/api-docs/card -- 1.5 kB -- -1 B
/api-docs/checkbox -- 2.3 kB -- -1 B
/api-docs/chip -- 2.46 kB -- -1 B
/api-docs/circular-progress -- 2.07 kB -- -1 B
/api-docs/click-away-listener -- 1.37 kB -- -1 B
/api-docs/collapse -- 2.02 kB -- -1 B
/api-docs/container -- 1.98 kB -- -1 B
/api-docs/css-baseline -- 1.57 kB -- -1 B
/api-docs/dialog-actions -- 1.47 kB -- -1 B
/api-docs/dialog-content-text -- 1.49 kB -- -1 B
/api-docs/dialog-content -- 1.45 kB -- -1 B
/api-docs/dialog-title -- 1.49 kB -- -1 B
/api-docs/dialog -- 2.73 kB -- -1 B
/api-docs/divider -- 1.8 kB -- -1 B
/api-docs/drawer -- 2.87 kB -- -1 B
/api-docs/expansion-panel-actions -- 1.49 kB -- -1 B
/api-docs/expansion-panel-details -- 1.41 kB -- -1 B
/api-docs/expansion-panel-summary -- 1.71 kB -- -1 B
/api-docs/expansion-panel -- 1.97 kB -- -1 B
/api-docs/fab -- 2.1 kB -- -1 B
/api-docs/fade -- 1.39 kB -- -1 B
/api-docs/filled-input -- 2.88 kB -- -1 B
/api-docs/form-control-label -- 1.98 kB -- -1 B
/api-docs/form-control -- 2.36 kB -- -1 B
/api-docs/form-group -- 1.56 kB -- -1 B
/api-docs/form-helper-text -- 1.91 kB -- -1 B
/api-docs/form-label -- 1.84 kB -- -1 B
/api-docs/grid-list-tile-bar -- 1.79 kB -- -1 B
/api-docs/grid-list-tile -- 1.72 kB -- -1 B
/api-docs/grid-list -- 1.62 kB -- -1 B
/api-docs/grid -- 2.56 kB -- -1 B
/api-docs/grow -- 1.44 kB -- -1 B
/api-docs/hidden -- 1.53 kB -- -1 B
/api-docs/icon-button -- 2.1 kB -- -1 B
/api-docs/icon -- 3.19 kB -- -1 B
/api-docs/input-adornment -- 1.93 kB -- -1 B
/api-docs/input-base -- 2.96 kB -- -1 B
/api-docs/input-label -- 2.07 kB -- -1 B
/api-docs/input -- 3.53 kB -- -1 B
/api-docs/linear-progress -- 2.04 kB -- -1 B
/api-docs/link -- 1.93 kB -- -1 B
/api-docs/list-item-avatar -- 1.5 kB -- -1 B
/api-docs/list-item-icon -- 1.51 kB -- -1 B
/api-docs/list-item-secondary-action -- 1.47 kB -- -1 B
/api-docs/list-item-text -- 1.79 kB -- -1 B
/api-docs/list-item -- 2.26 kB -- -1 B
/api-docs/list-subheader -- 1.77 kB -- -1 B
/api-docs/list -- 2.53 kB -- -1 B
/api-docs/menu-item -- 1.74 kB -- -1 B
/api-docs/menu-list -- 1.57 kB -- -1 B
/api-docs/menu -- 2.41 kB -- -1 B
/api-docs/mobile-stepper -- 1.93 kB -- -1 B
/api-docs/modal -- 2.42 kB -- -1 B
/api-docs/native-select -- 2.09 kB -- -1 B
/api-docs/no-ssr -- 1.3 kB -- -1 B
/api-docs/outlined-input -- 2.98 kB -- -1 B
/api-docs/pagination-item -- 1.98 kB -- -1 B
/api-docs/pagination -- 3.23 kB -- -1 B
/api-docs/paper -- 1.87 kB -- -1 B
/api-docs/popover -- 2.68 kB -- -1 B
/api-docs/popper -- 1.91 kB -- -1 B
/api-docs/portal -- 1.34 kB -- -1 B
/api-docs/radio-group -- 1.44 kB -- -1 B
/api-docs/radio -- 2.12 kB -- -1 B
/api-docs/rating -- 2.49 kB -- -1 B
/api-docs/root-ref -- 1.41 kB -- -1 B
/api-docs/scoped-css-baseline -- 1.41 kB -- -1 B
/api-docs/select -- 3.16 kB -- -1 B
/api-docs/skeleton -- 1.78 kB -- -1 B
/api-docs/slide -- 1.54 kB -- -1 B
/api-docs/slider -- 3.11 kB -- -1 B
/api-docs/snackbar-content -- 1.61 kB -- -1 B
/api-docs/snackbar -- 2.72 kB -- -1 B
/api-docs/speed-dial-action -- 2.04 kB -- -1 B
/api-docs/speed-dial-icon -- 1.55 kB -- -1 B
/api-docs/speed-dial -- 2.31 kB -- -1 B
/api-docs/step-button -- 1.63 kB -- -1 B
/api-docs/step-connector -- 1.54 kB -- -1 B
/api-docs/step-content -- 1.72 kB -- -1 B
/api-docs/step-icon -- 1.56 kB -- -1 B
/api-docs/step-label -- 1.89 kB -- -1 B
/api-docs/step -- 1.64 kB -- -1 B
/api-docs/stepper -- 2.3 kB -- -1 B
/api-docs/svg-icon -- 2.25 kB -- -1 B
/api-docs/swipeable-drawer -- 2 kB -- -1 B
/api-docs/switch -- 2.46 kB -- -1 B
/api-docs/tab -- 1.99 kB -- -1 B
/api-docs/table-body -- 1.46 kB -- -1 B
/api-docs/table-cell -- 2.13 kB -- -1 B
/api-docs/table-container -- 1.48 kB -- -1 B
/api-docs/table-footer -- 1.47 kB -- -1 B
/api-docs/table-head -- 1.46 kB -- -1 B
/api-docs/table-pagination -- 2.45 kB -- -1 B
/api-docs/table-row -- 1.69 kB -- -1 B
/api-docs/table-sort-label -- 1.83 kB -- -1 B
/api-docs/table -- 1.68 kB -- -1 B
/api-docs/tabs -- 2.53 kB -- -1 B
/api-docs/text-field -- 3.18 kB -- -1 B
/api-docs/textarea-autosize -- 1.13 kB -- -1 B
/api-docs/toggle-button-group -- 1.86 kB -- -1 B
/api-docs/toggle-button -- 1.81 kB -- -1 B
/api-docs/toolbar -- 1.65 kB -- -1 B
/api-docs/tooltip -- 2.55 kB -- -1 B
/api-docs/tree-item -- 1.79 kB -- -1 B
/api-docs/tree-view -- 1.91 kB -- -1 B
/api-docs/typography -- 2.59 kB -- -1 B
/api-docs/zoom -- 1.41 kB -- -1 B
/blog/2019-developer-survey-results -- 6.35 kB -- -1 B
/blog/2019 -- 4.24 kB -- -1 B
/blog/2020-introducing-sketch -- 3.49 kB -- -1 B
/blog/2020-q1-update -- 4.33 kB -- -1 B
/blog/april-2019-update -- 3.13 kB -- -1 B
/blog/august-2019-update -- 2.24 kB -- -1 B
/blog/december-2019-update -- 2.37 kB -- -1 B
/blog/july-2019-update -- 2.13 kB -- -1 B
/blog/june-2019-update -- 2 kB -- -1 B
/blog/march-2019-update -- 2.53 kB -- -1 B
/blog/material-ui-v1-is-out -- 6.66 kB -- -1 B
/blog/material-ui-v4-is-out -- 9.69 kB -- -1 B
/blog/may-2019-update -- 2.35 kB -- -1 B
/blog/november-2019-update -- 2.75 kB -- -1 B
/blog/october-2019-update -- 2.5 kB -- -1 B
/blog/september-2019-update -- 2.68 kB -- -1 B
/company/about -- 1.74 kB -- -1 B
/company/contact -- 1.33 kB -- -1 B
/company/jobs -- 1.34 kB -- -1 B
/components/about-the-lab -- 6.09 kB -- -1 B
/components/alert -- 12.5 kB -- -1 B
/components/app-bar -- 30 kB -- -1 B
/components/autocomplete -- 101 kB -- -1 B
/components/avatars -- 8.78 kB -- -1 B
/components/backdrop -- 3.57 kB -- -1 B
/components/badges -- 15.3 kB -- -1 B
/components/bottom-navigation -- 6.27 kB -- -1 B
/components/box -- 8.05 kB -- -1 B
/components/breadcrumbs -- 14.7 kB -- -1 B
/components/buttons -- 26.2 kB -- -1 B
/components/cards -- 17.2 kB -- -1 B
/components/checkboxes -- 16.3 kB -- -1 B
/components/chips -- 21.8 kB -- -1 B
/components/click-away-listener -- 4.39 kB -- -1 B
/components/container -- 3.92 kB -- -1 B
/components/css-baseline -- 6.76 kB -- -1 B
/components/dialogs -- 42.8 kB -- -1 B
/components/dividers -- 12.7 kB -- -1 B
/components/drawers -- 31.5 kB -- -1 B
/components/expansion-panels -- 20.4 kB -- -1 B
/components/floating-action-button -- 10.4 kB -- -1 B
/components/grid-list -- 12 kB -- -1 B
/components/icons -- 24.6 kB -- -1 B
/components/links -- 6.91 kB -- -1 B
/components/lists -- 26.5 kB -- -1 B
/components/material-icons -- 729 kB -- -1 B
/components/menus -- 24.9 kB -- -1 B
/components/modal -- 11.9 kB -- -1 B
/components/no-ssr -- 5.11 kB -- -1 B
/components/pagination -- 9.44 kB -- -1 B
/components/paper -- 3.49 kB -- -1 B
/components/popover -- 17.4 kB -- -1 B
/components/popper -- 22.9 kB -- -1 B
/components/portal -- 2.94 kB -- -1 B
/components/progress -- 21 kB -- -1 B
/components/radio-buttons -- 14.7 kB -- -1 B
/components/rating -- 10.8 kB -- -1 B
/components/selects -- 30.7 kB -- -1 B
/components/skeleton -- 10.1 kB -- -1 B
/components/slider -- 15.3 kB -- -1 B
/components/snackbars -- 28.5 kB -- -1 B
/components/speed-dial -- 14.3 kB -- -1 B
/components/steppers -- 36.5 kB -- -1 B
/components/switches -- 16.1 kB -- -1 B
/components/tables -- 139 kB -- -1 B
/components/tabs -- 19.8 kB -- -1 B
/components/text-fields -- 54.2 kB -- -1 B
/components/textarea-autosize -- 2.89 kB -- -1 B
/components/toggle-button -- 10.3 kB -- -1 B
/components/tooltips -- 16.4 kB -- -1 B
/components/transfer-list -- 9.67 kB -- -1 B
/components/transitions -- 11.2 kB -- -1 B
/components/tree-view -- 11 kB -- -1 B
/components/typography -- 9.37 kB -- -1 B
/components/use-media-query -- 12.7 kB -- -1 B
/customization/breakpoints -- 15.4 kB -- -1 B
/customization/color -- 20.8 kB -- -1 B
/customization/components -- 38.1 kB -- -1 B
/customization/default-theme -- 8.65 kB -- -1 B
/customization/globals -- 4.72 kB -- -1 B
/customization/palette -- 12.4 kB -- -1 B
/customization/spacing -- 2.57 kB -- -1 B
/customization/theming -- 16.7 kB -- -1 B
/customization/typography -- 11.5 kB -- -1 B
/customization/z-index -- 3.09 kB -- -1 B
/discover-more/backers -- 2.94 kB -- -1 B
/discover-more/changelog -- 1.44 kB -- -1 B
/discover-more/languages -- 3.43 kB -- -1 B
/discover-more/related-projects -- 7.41 kB -- -1 B
/discover-more/roadmap -- 3.72 kB -- -1 B
/discover-more/showcase -- 13.4 kB -- -1 B
/discover-more/vision -- 7.1 kB -- -1 B
/getting-started/example-projects -- 6.18 kB -- -1 B
/getting-started/faq -- 33.8 kB -- -1 B
/getting-started/installation -- 7.68 kB -- -1 B
/getting-started/learn -- 8.52 kB -- -1 B
/getting-started/support -- 7.94 kB -- -1 B
/getting-started/supported-components -- 6.21 kB -- -1 B
/getting-started/supported-platforms -- 5.7 kB -- -1 B
/getting-started/templates/checkout -- 11.2 kB -- -1 B
/getting-started/templates/pricing -- 7.79 kB -- -1 B
/getting-started/templates/sign-in-side -- 9.28 kB -- -1 B
/getting-started/templates/sticky-footer -- 1.54 kB -- -1 B
/getting-started/usage -- 9.49 kB -- -1 B
/guides/api -- 15.8 kB -- -1 B
/guides/composition -- 14.3 kB -- -1 B
/guides/flow -- 2.26 kB -- -1 B
/guides/interoperability -- 15.7 kB -- -1 B
/guides/migration-v0x -- 7.29 kB -- -1 B
/guides/migration-v3 -- 19 kB -- -1 B
/guides/minimizing-bundle-size -- 6.84 kB -- -1 B
/guides/responsive-ui -- 4.27 kB -- -1 B
/guides/right-to-left -- 6.88 kB -- -1 B
/guides/server-rendering -- 8.3 kB -- -1 B
/guides/testing -- 8.49 kB -- -1 B
/guides/typescript -- 13.4 kB -- -1 B
/performance/table-component -- 1.44 kB -- -1 B
/performance/table-emotion -- 8.49 kB -- -1 B
/performance/table-hook -- 2.23 kB -- -1 B
/performance/table-mui -- 4.47 kB -- -1 B
/performance/table-raw -- 613 B -- -1 B
/performance/table-styled-components -- 2.6 kB -- -1 B
/premium-themes/onepirate -- 7.27 kB -- -1 B
/premium-themes/onepirate/forgot-password -- 1.01 kB -- -1 B
/premium-themes/onepirate/privacy -- 4.44 kB -- -1 B
/premium-themes/onepirate/sign-in -- 1.07 kB -- -1 B
/premium-themes/onepirate/sign-up -- 1.12 kB -- -1 B
/premium-themes/onepirate/terms -- 11.8 kB -- -1 B
/premium-themes/paperbase -- 8.95 kB -- -1 B
/styles/advanced -- 32.1 kB -- -1 B
/styles/api -- 16.8 kB -- -1 B
/styles/basics -- 16.4 kB -- -1 B
/system/api -- 5.96 kB -- -1 B
/system/basics -- 27.2 kB -- -1 B
/system/borders -- 4.1 kB -- -1 B
/system/display -- 6.54 kB -- -1 B
/system/flexbox -- 5.85 kB -- -1 B
/system/palette -- 4.35 kB -- -1 B
/system/positions -- 2.53 kB -- -1 B
/system/shadows -- 3.64 kB -- -1 B
/system/sizing -- 3.53 kB -- -1 B
/system/spacing -- 6.01 kB -- -1 B
/system/typography -- 4.41 kB -- -1 B
/versions -- 23.7 kB -- -1 B
docs:chunk:shared -- 61.6 kB -- -1 B
docs:shared:chunk/commons -- 5.99 kB -- -1 B
docs:shared:chunk/framework -- 42.3 kB -- -1 B
docs:shared:runtime/main -- 6.78 kB -- -1 B
docs:shared:runtime/webpack -- 1.24 kB -- -1 B
bundle Size Change Size Gzip Change Gzip
@material-ui/core -- 372 kB -- 102 kB
@material-ui/core[umd] -- 327 kB -- 94.2 kB
@material-ui/lab -- 203 kB -- 60.2 kB
@material-ui/styles -- 52 kB -- 15.6 kB
@material-ui/system -- 17.2 kB -- 4.52 kB
Alert -- 87.6 kB -- 27.8 kB
AlertTitle -- 68.9 kB -- 21.7 kB
AppBar -- 68.7 kB -- 21.6 kB
Autocomplete -- 136 kB -- 42.8 kB
Avatar -- 69.9 kB -- 21.9 kB
AvatarGroup -- 70.9 kB -- 22.5 kB
Backdrop -- 72.7 kB -- 22.5 kB
Badge -- 70 kB -- 21.9 kB
BottomNavigation -- 67.1 kB -- 21.1 kB
BottomNavigationAction -- 79.8 kB -- 25.4 kB
Box -- 73.6 kB -- 22.4 kB
Breadcrumbs -- 84.8 kB -- 26.9 kB
Button -- 84 kB -- 25.8 kB
ButtonBase -- 78.3 kB -- 24.6 kB
ButtonGroup -- 87.5 kB -- 27.1 kB
Card -- 67.6 kB -- 21.2 kB
CardActionArea -- 79.4 kB -- 25.2 kB
CardActions -- 66.8 kB -- 21 kB
CardContent -- 66.7 kB -- 20.9 kB
CardHeader -- 69.8 kB -- 22 kB
CardMedia -- 67.1 kB -- 21.1 kB
Checkbox -- 86.5 kB -- 27.4 kB
Chip -- 87 kB -- 26.8 kB
CircularProgress -- 68.8 kB -- 21.7 kB
ClickAwayListener -- 4.16 kB -- 1.66 kB
Collapse -- 77.3 kB -- 22.8 kB
colorManipulator -- 3.88 kB -- 1.52 kB
Container -- 67.9 kB -- 21.3 kB
CssBaseline -- 66.7 kB -- 21 kB
Dialog -- 87.7 kB -- 27.5 kB
DialogActions -- 66.8 kB -- 21 kB
DialogContent -- 66.9 kB -- 21 kB
DialogContentText -- 68.8 kB -- 21.6 kB
DialogTitle -- 69 kB -- 21.7 kB
Divider -- 67.4 kB -- 21.2 kB
docs:/ -- 11.7 kB -- -1 B
docs:/_app -- 36.8 kB -- -1 B
Drawer -- 89.6 kB -- 27.3 kB
ExpansionPanel -- 76.4 kB -- 24.1 kB
ExpansionPanelActions -- 66.8 kB -- 21 kB
ExpansionPanelDetails -- 66.7 kB -- 20.9 kB
ExpansionPanelSummary -- 82.4 kB -- 26.2 kB
Fab -- 81.1 kB -- 25.4 kB
Fade -- 32.6 kB -- 9.83 kB
FilledInput -- 78.3 kB -- 24.4 kB
FormControl -- 69.1 kB -- 21.6 kB
FormControlLabel -- 70.2 kB -- 22.1 kB
FormGroup -- 66.7 kB -- 20.8 kB
FormHelperText -- 68 kB -- 21.2 kB
FormLabel -- 68.1 kB -- 21.2 kB
Grid -- 69.8 kB -- 22 kB
GridList -- 67.2 kB -- 21.2 kB
GridListTile -- 68.4 kB -- 21.5 kB
GridListTileBar -- 67.9 kB -- 21.3 kB
Grow -- 33.2 kB -- 10.1 kB
Hidden -- 70.7 kB -- 22.3 kB
Icon -- 67.5 kB -- 21.2 kB
IconButton -- 80.4 kB -- 25.2 kB
Input -- 77.3 kB -- 24.2 kB
InputAdornment -- 69.8 kB -- 22.1 kB
InputBase -- 75.4 kB -- 23.7 kB
InputLabel -- 70 kB -- 21.6 kB
LinearProgress -- 70 kB -- 21.7 kB
Link -- 71.3 kB -- 22.6 kB
List -- 67 kB -- 20.9 kB
ListItem -- 81.4 kB -- 25.6 kB
ListItemAvatar -- 66.8 kB -- 21 kB
ListItemIcon -- 66.9 kB -- 21 kB
ListItemSecondaryAction -- 66.7 kB -- 21 kB
ListItemText -- 69.7 kB -- 22 kB
ListSubheader -- 67.5 kB -- 21.3 kB
Menu -- 93.3 kB -- 28.8 kB
MenuItem -- 82.5 kB -- 25.9 kB
MenuList -- 70.7 kB -- 22.2 kB
MobileStepper -- 72.5 kB -- 22.8 kB
Modal -- 15 kB -- 5.23 kB
NativeSelect -- 81.6 kB -- 25.9 kB
NoSsr -- 2.18 kB -- 1.03 kB
OutlinedInput -- 79.3 kB -- 24.8 kB
Pagination -- 88.8 kB -- 27.5 kB
PaginationItem -- 85.1 kB -- 26.3 kB
Paper -- 67.1 kB -- 20.9 kB
Popover -- 87.7 kB -- 27.2 kB
Popper -- 28.7 kB -- 10.3 kB
Portal -- 2.87 kB -- 1.29 kB
Radio -- 87.5 kB -- 27.8 kB
RadioGroup -- 68.6 kB -- 21.3 kB
Rating -- 75.3 kB -- 24.3 kB
RootRef -- 4.62 kB -- 1.76 kB
ScopedCssBaseline -- 67.5 kB -- 21.2 kB
Select -- 120 kB -- 35.9 kB
Skeleton -- 67.7 kB -- 21.4 kB
Slide -- 34.6 kB -- 10.4 kB
Slider -- 80.6 kB -- 25.8 kB
Snackbar -- 80.4 kB -- 25.3 kB
SnackbarContent -- 68.2 kB -- 21.3 kB
SpeedDial -- 90.5 kB -- 28.8 kB
SpeedDialAction -- 122 kB -- 38.9 kB
SpeedDialIcon -- 69.3 kB -- 21.8 kB
Step -- 67.4 kB -- 21.2 kB
StepButton -- 86.6 kB -- 27.4 kB
StepConnector -- 67.4 kB -- 21.3 kB
StepContent -- 73.9 kB -- 23.2 kB
StepIcon -- 69.3 kB -- 21.6 kB
StepLabel -- 73.3 kB -- 22.7 kB
Stepper -- 69.6 kB -- 22 kB
styles/createMuiTheme -- 22.2 kB -- 7.71 kB
SvgIcon -- 67.7 kB -- 21.2 kB
SwipeableDrawer -- 97 kB -- 30.5 kB
Switch -- 85.7 kB -- 27 kB
Tab -- 80.6 kB -- 25.7 kB
Table -- 67.3 kB -- 21.2 kB
TableBody -- 66.8 kB -- 21 kB
TableCell -- 68.8 kB -- 21.7 kB
TableContainer -- 66.7 kB -- 20.9 kB
TableFooter -- 66.9 kB -- 21 kB
TableHead -- 66.8 kB -- 21 kB
TablePagination -- 147 kB -- 43.2 kB
TableRow -- 67.2 kB -- 21.1 kB
TableSortLabel -- 81.7 kB -- 26 kB
Tabs -- 89.6 kB -- 28.7 kB
TextareaAutosize -- 5.23 kB -- 2.19 kB
TextField -- 129 kB -- 38 kB
ToggleButton -- 80.4 kB -- 25.6 kB
ToggleButtonGroup -- 67.9 kB -- 21.4 kB
Toolbar -- 67 kB -- 21.1 kB
Tooltip -- 106 kB -- 33.7 kB
TreeItem -- 80 kB -- 25.4 kB
TreeView -- 73 kB -- 23 kB
Typography -- 68.3 kB -- 21.4 kB
useAutocomplete -- 15 kB -- 5.26 kB
useMediaQuery -- 2.56 kB -- 1.06 kB
useScrollTrigger -- 2.66 kB -- 1.08 kB
Zoom -- 32.6 kB -- 9.82 kB

Generated by 🚫 dangerJS against 6fd2486

@oliviertassinari
Copy link
Member

oliviertassinari commented Apr 24, 2020

@eloyrubinos Thanks for the contribution, this raises an interesting concern, at some point, we will need to reject languages that aren't spoken enough. Looking at the top 100 most spoken languages, galician could be within the 500-200 range popularity.

@eloyrubinos
Copy link
Contributor Author

I hadn't thought about that, honestly, but it is a legitimate concern. Feel free to reject the PR.

@oliviertassinari
Copy link
Member

oliviertassinari commented Apr 24, 2020

@eloyrubinos I'm sorry, I think that we should close, we support 31 locales, it would be better to focus on the 50 to 100 top most popular ones: https://en.wikipedia.org/wiki/List_of_languages_by_number_of_native_speakers. After that, I think that the opportunity cost will be too high.

@oliviertassinari
Copy link
Member

Actually, let's document it.

@oliviertassinari oliviertassinari changed the title [l10n] Add galician localization [l10n] Document how far Material-UI wants to go Apr 24, 2020
@oliviertassinari oliviertassinari changed the title [l10n] Document how far Material-UI wants to go [l10n] Document how far Material-UI should go Apr 24, 2020
@oliviertassinari oliviertassinari added the docs Improvements or additions to the documentation label Apr 24, 2020
@eloyrubinos
Copy link
Contributor Author

I have given it some more thought and I don't know that it would be so bad to support "too many" locales. After all the piece to translate is very small.

What would be the drawbacks?

@oliviertassinari
Copy link
Member

oliviertassinari commented Apr 24, 2020

@eloyrubinos Supporting, say the top 200 locales vs the top 100 means

  • x2 more pull requests to review.
  • x2 more locales to keep track of when we introduce new prop, remove, change descriptions.
  • in the current code infrastructure, x2 more JavaScript loaded in dev mode.

Now, I'm only assuming that gl-ES is in the top 200, what's if it's in the top 400 instead?

@eloyrubinos
Copy link
Contributor Author

I hadn't thought about points 2 and 3. That's why you are the reviewer and I'm the "reviewee" 😄
Those are very good points, thanks for the insight.

@oliviertassinari
Copy link
Member

oliviertassinari commented Apr 24, 2020

jQuery UI has ~70 locales, moment has ~120 locales.

@oliviertassinari
Copy link
Member

I count ~700 locales in http://www.localeplanet.com/icu/index.html.

@oliviertassinari
Copy link
Member

oliviertassinari commented Apr 24, 2020

Interestingly, if we cut at 100 locales, it seems that we cover ~85% of the world population for native speakers only, assuming people talk multiple languages, it should allow us to over a higher percentage.

Capture d’écran 2020-04-24 à 19 47 14

https://en.wikipedia.org/wiki/List_of_languages_by_number_of_native_speakers

@oliviertassinari
Copy link
Member

@eloyrubinos Thanks for initiating this discussion :)

@ValentinH
Copy link
Contributor

I landed here by reading the last changelog. Just one question @oliviertassinari: how complex would it be to let the consuming app provide this kind of not common translations?

It feels a bit sad to say we don't want to support not popular enough languages and not provide any workaround. Please note, that I completely agree with the reasons why this kind of translations are not directly supported by MUI. 🙂

@oliviertassinari
Copy link
Member

not provide any workaround

How did you come to this conclusion?

@ValentinH
Copy link
Contributor

I came to it by only looking at the changes in this PR. Sorry if my comment sounded aggressive. 🙏

After looking at the documentation (https://material-ui.com/guides/localization/), I now realize that it was already possible to provide custom translations. 🙈

BTW the "You can find the source" link is broken on this page.

@oliviertassinari
Copy link
Member

@ValentinH Thanks, do you want to patch the link? :) we are on a .ts file extension now.

@ValentinH
Copy link
Contributor

#20791

@eloyrubinos
Copy link
Contributor Author

eloyrubinos commented Apr 27, 2020

Hi!

@ValentinH as you say that links provides the info you wanted but I wanted to drop in and let you know that it is actually pretty easy to implement a hybrid solution, which is the direction I took in the aforementioned project that needed the galician translation.

That is because I want to benefit from any and all future changes to the officially supported locales without my needing to manually update a local file.

The "workaround" though a bit verbose is quite simple. I map a list of languages with information about whether they exist in MUI or must be loaded locally.
If they exist in MUI I load the locale module and the required translation object to pass it to the createTheme function.
If they on the other hand exist locally I just import my local translation which just exports an object of the same type MUI expects.

A simplified excerpt for this would be:

import { createMuiTheme } from '@material-ui/core';

import { defaultLocale } from 'src/i18n';

import localLocales from './locale';

const fallbackLocale = 'gl';
const localeMap = {
  es: {
    code: 'esES',
    external: true
  },
  gl: {
    code: 'glES',
    external: false
  }
};

const baseTheme = {
  /** Add configuration */
};

export default async (locale = defaultLocale) => {
  let localeToUse = null;
  if (Object.keys(localeMap).includes(locale)) {
    localeToUse = localeMap[locale];
  } else {
    console.warn(
      `The current locale (${locale}) is not available for MUI, 
      using fallback locale (${fallbackLocale})`
    );
    localeToUse = localeMap[fallbackLocale];
  }

  let localeData = null;
  // Externally loaded locale
  if (localeToUse.external) {
    const locales = await import('@material-ui/core/locale');
    localeData = locales[localeToUse.code];
  }
  // Locally loaded locale
  else {
    localeData = localLocales[localeToUse.code]();
  }
  return createMuiTheme(baseTheme, localeData);
};

I put this together pretty quick and includes support for dynamic locale which wasn't the point of this topic so don't take it at face value but I think you get the idea.

Hope this helps you in any way.

See you! :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
docs Improvements or additions to the documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants