@plone/volto 16.20.5 → 16.20.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/.changelog.draft +10 -11
  2. package/.editorconfig +0 -2
  3. package/.yarn/install-state.gz +0 -0
  4. package/CHANGELOG.md +25 -0
  5. package/locales/ca/LC_MESSAGES/volto.po +5 -0
  6. package/locales/ca.json +1 -1
  7. package/locales/de/LC_MESSAGES/volto.po +5 -0
  8. package/locales/de.json +1 -1
  9. package/locales/en/LC_MESSAGES/volto.po +5 -0
  10. package/locales/en.json +1 -1
  11. package/locales/es/LC_MESSAGES/volto.po +5 -0
  12. package/locales/es.json +1 -1
  13. package/locales/eu/LC_MESSAGES/volto.po +5 -0
  14. package/locales/eu.json +1 -1
  15. package/locales/fi/LC_MESSAGES/volto.po +5 -0
  16. package/locales/fi.json +1 -1
  17. package/locales/fr/LC_MESSAGES/volto.po +5 -0
  18. package/locales/fr.json +1 -1
  19. package/locales/it/LC_MESSAGES/volto.po +5 -0
  20. package/locales/it.json +1 -1
  21. package/locales/ja/LC_MESSAGES/volto.po +5 -0
  22. package/locales/ja.json +1 -1
  23. package/locales/nl/LC_MESSAGES/volto.po +5 -0
  24. package/locales/nl.json +1 -1
  25. package/locales/pt/LC_MESSAGES/volto.po +5 -0
  26. package/locales/pt.json +1 -1
  27. package/locales/pt_BR/LC_MESSAGES/volto.po +5 -0
  28. package/locales/pt_BR.json +1 -1
  29. package/locales/ro/LC_MESSAGES/volto.po +5 -0
  30. package/locales/ro.json +1 -1
  31. package/locales/volto.pot +6 -1
  32. package/locales/zh_CN/LC_MESSAGES/volto.po +5 -0
  33. package/locales/zh_CN.json +1 -1
  34. package/package.json +1 -1
  35. package/packages/volto-slate/build/messages/src/blocks/Table/TableBlockEdit.json +1 -1
  36. package/packages/volto-slate/build/messages/src/blocks/Text/DefaultTextBlockEditor.json +1 -1
  37. package/packages/volto-slate/build/messages/src/blocks/Text/DetachedTextBlockEditor.json +1 -1
  38. package/packages/volto-slate/build/messages/src/blocks/Text/SlashMenu.json +1 -1
  39. package/packages/volto-slate/build/messages/src/editor/plugins/AdvancedLink/index.json +1 -1
  40. package/packages/volto-slate/build/messages/src/editor/plugins/Link/index.json +1 -1
  41. package/packages/volto-slate/build/messages/src/editor/plugins/Table/index.json +1 -1
  42. package/packages/volto-slate/build/messages/src/elementEditor/messages.json +1 -1
  43. package/packages/volto-slate/build/messages/src/widgets/HtmlSlateWidget.json +1 -1
  44. package/packages/volto-slate/build/messages/src/widgets/RichTextWidgetView.json +1 -1
  45. package/packages/volto-slate/package.json +1 -1
  46. package/packages/volto-slate/src/blocks/Text/SlashMenu.jsx +4 -3
  47. package/packages/volto-slate/src/editor/deserialize.js +0 -1
  48. package/src/actions/language/language.js +8 -8
  49. package/src/components/manage/Add/Add.jsx +2 -2
  50. package/src/components/manage/BlockChooser/BlockChooser.jsx +8 -3
  51. package/src/components/manage/BlockChooser/BlockChooser.test.jsx +5 -0
  52. package/src/components/manage/Blocks/Search/components/DateRangeFacet.jsx +4 -1
  53. package/src/components/manage/Contents/Contents.jsx +2 -0
  54. package/src/components/manage/Contents/ContentsItem.jsx +6 -0
  55. package/src/components/manage/Multilingual/CreateTranslation.jsx +2 -2
  56. package/src/components/manage/Multilingual/TranslationObject.jsx +4 -3
  57. package/src/components/manage/Preferences/PersonalPreferences.jsx +2 -2
  58. package/src/components/manage/Toolbar/Types.jsx +2 -2
  59. package/src/components/manage/Widgets/DatetimeWidget.jsx +9 -5
  60. package/src/components/manage/Widgets/RecurrenceWidget/ByDayField.jsx +2 -1
  61. package/src/components/manage/Widgets/RecurrenceWidget/MonthOfTheYearField.jsx +2 -1
  62. package/src/components/manage/Widgets/RecurrenceWidget/Occurences.jsx +2 -1
  63. package/src/components/manage/Widgets/RecurrenceWidget/RecurrenceWidget.jsx +7 -2
  64. package/src/components/manage/Widgets/RecurrenceWidget/WeekdayOfTheMonthField.jsx +2 -1
  65. package/src/components/theme/Footer/Footer.jsx +2 -13
  66. package/src/components/theme/LanguageSelector/LanguageSelector.js +8 -3
  67. package/src/components/theme/Logo/Logo.jsx +2 -1
  68. package/src/components/theme/MultilingualRedirector/MultilingualRedirector.jsx +2 -2
  69. package/src/components/theme/Navigation/NavItem.jsx +4 -2
  70. package/src/components/theme/Sitemap/Sitemap.jsx +5 -3
  71. package/src/components/theme/View/EventDatesInfo.jsx +2 -1
  72. package/src/components/theme/Widgets/DateWidget.jsx +2 -1
  73. package/src/components/theme/Widgets/DatetimeWidget.jsx +2 -1
  74. package/src/constants/Languages.js +8 -4
  75. package/src/helpers/Html/Html.jsx +3 -1
  76. package/src/helpers/Html/Html.test.jsx +5 -0
  77. package/src/helpers/Utils/Utils.js +21 -9
  78. package/src/helpers/Utils/Utils.test.js +4 -4
  79. package/src/helpers/index.js +5 -2
  80. package/src/middleware/api.js +7 -3
  81. package/src/reducers/actions/actions.js +1 -1
  82. package/src/reducers/breadcrumbs/breadcrumbs.js +1 -1
  83. package/src/reducers/navigation/navigation.js +1 -1
  84. package/src/reducers/types/types.js +1 -1
  85. package/src/server.jsx +28 -23
package/src/server.jsx CHANGED
@@ -26,8 +26,9 @@ import {
26
26
  Html,
27
27
  Api,
28
28
  persistAuthToken,
29
- normalizeLanguageName,
30
- toLangUnderscoreRegion,
29
+ toBackendLang,
30
+ toGettextLang,
31
+ toReactIntlLang,
31
32
  } from '@plone/volto/helpers';
32
33
  import { changeLanguage } from '@plone/volto/actions';
33
34
 
@@ -44,9 +45,9 @@ let locales = {};
44
45
 
45
46
  if (config.settings) {
46
47
  config.settings.supportedLanguages.forEach((lang) => {
47
- const langFileName = normalizeLanguageName(lang);
48
+ const langFileName = toGettextLang(lang);
48
49
  import('@root/../locales/' + langFileName + '.json').then((locale) => {
49
- locales = { ...locales, [lang]: locale.default };
50
+ locales = { ...locales, [toReactIntlLang(lang)]: locale.default };
50
51
  });
51
52
  });
52
53
  }
@@ -101,13 +102,15 @@ server.use(function (err, req, res, next) {
101
102
  function setupServer(req, res, next) {
102
103
  const api = new Api(req);
103
104
 
104
- const lang = new locale.Locales(
105
- req.universalCookies.get('I18N_LANGUAGE') ||
106
- config.settings.defaultLanguage ||
107
- req.headers['accept-language'],
108
- )
109
- .best(supported)
110
- .toString();
105
+ const lang = toReactIntlLang(
106
+ new locale.Locales(
107
+ req.universalCookies.get('I18N_LANGUAGE') ||
108
+ config.settings.defaultLanguage ||
109
+ req.headers['accept-language'],
110
+ )
111
+ .best(supported)
112
+ .toString(),
113
+ );
111
114
 
112
115
  // Minimum initial state for the fake Redux store instance
113
116
  const initialState = {
@@ -176,13 +179,15 @@ server.get('/*', (req, res) => {
176
179
 
177
180
  const browserdetect = detect(req.headers['user-agent']);
178
181
 
179
- const lang = new locale.Locales(
180
- req.universalCookies.get('I18N_LANGUAGE') ||
181
- config.settings.defaultLanguage ||
182
- req.headers['accept-language'],
183
- )
184
- .best(supported)
185
- .toString();
182
+ const lang = toReactIntlLang(
183
+ new locale.Locales(
184
+ req.universalCookies.get('I18N_LANGUAGE') ||
185
+ config.settings.defaultLanguage ||
186
+ req.headers['accept-language'],
187
+ )
188
+ .best(supported)
189
+ .toString(),
190
+ );
186
191
 
187
192
  const authToken = req.universalCookies.get('auth_token');
188
193
  const initialState = {
@@ -217,7 +222,7 @@ server.get('/*', (req, res) => {
217
222
 
218
223
  loadOnServer({ store, location, routes, api })
219
224
  .then(() => {
220
- const cookie_lang =
225
+ const initialLang =
221
226
  req.universalCookies.get('I18N_LANGUAGE') ||
222
227
  config.settings.defaultLanguage ||
223
228
  req.headers['accept-language'];
@@ -230,15 +235,15 @@ server.get('/*', (req, res) => {
230
235
  // present the language token field, for some reason. In this case, we
231
236
  // should follow the cookie rather then switching the language
232
237
  const contentLang = store.getState().content.get?.error
233
- ? cookie_lang
238
+ ? initialLang
234
239
  : store.getState().content.data?.language?.token ||
235
240
  config.settings.defaultLanguage;
236
241
 
237
- if (cookie_lang !== contentLang) {
238
- const newLocale = toLangUnderscoreRegion(
242
+ if (toBackendLang(initialLang) !== contentLang) {
243
+ const newLang = toReactIntlLang(
239
244
  new locale.Locales(contentLang).best(supported).toString(),
240
245
  );
241
- store.dispatch(changeLanguage(newLocale, locales[newLocale], req));
246
+ store.dispatch(changeLanguage(newLang, locales[newLang], req));
242
247
  }
243
248
 
244
249
  const context = {};