gatsby-matrix-theme 53.1.6 → 53.2.0

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 (35) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/package.json +2 -2
  3. package/src/components/atoms/admin/card/button/index.js +19 -14
  4. package/src/components/atoms/author/socials/index.js +2 -1
  5. package/src/components/atoms/cards/article-card/template-one/index.js +13 -18
  6. package/src/components/atoms/cards/game-cards/template-five/index.js +7 -9
  7. package/src/components/atoms/cards/game-cards/template-four/index.js +7 -7
  8. package/src/components/atoms/cards/game-cards/template-one/index.js +5 -5
  9. package/src/components/atoms/cards/game-cards/template-three/index.js +4 -7
  10. package/src/components/atoms/cards/game-cards/template-two/index.js +7 -7
  11. package/src/components/atoms/cards/payment-method/template-one/index.js +5 -3
  12. package/src/components/atoms/cards/payment-method/template-three/index.js +2 -1
  13. package/src/components/atoms/cards/software-provider-card/index.js +3 -2
  14. package/src/components/atoms/country-selector/index.js +1 -1
  15. package/src/components/atoms/social-icons/index.js +1 -1
  16. package/src/components/molecules/header/variants/payment/template-five/index.js +7 -6
  17. package/src/components/molecules/header/variants/payment/template-one-three/index.js +3 -3
  18. package/src/components/molecules/header/variants/payment/template-two/index.js +9 -7
  19. package/src/components/molecules/horse-calculator/index.js +36 -14
  20. package/src/components/organisms/cards/template-two/buttons/index.js +4 -3
  21. package/src/components/organisms/popup/index.js +15 -6
  22. package/src/gatsby-core-theme/components/atoms/contact-form/index.js +3 -3
  23. package/src/helpers/formatToUnderscore.js +2 -0
  24. package/src/helpers/formatToUnderscore.test.js +17 -0
  25. package/src/helpers/info-grid.js +3 -7
  26. package/storybook/public/679.4baf924a.iframe.bundle.js +1 -0
  27. package/storybook/public/{717.983d8f3c.iframe.bundle.js → 717.cfd15232.iframe.bundle.js} +3 -3
  28. package/storybook/public/{717.983d8f3c.iframe.bundle.js.map → 717.cfd15232.iframe.bundle.js.map} +1 -1
  29. package/storybook/public/iframe.html +1 -1
  30. package/storybook/public/main.48c97eba.iframe.bundle.js +1 -0
  31. package/storybook/public/project.json +1 -1
  32. package/storybook/public/{runtime~main.0df0b55e.iframe.bundle.js → runtime~main.f3a5bb31.iframe.bundle.js} +1 -1
  33. package/storybook/public/679.144f0a65.iframe.bundle.js +0 -1
  34. package/storybook/public/main.2dc80043.iframe.bundle.js +0 -1
  35. /package/storybook/public/{717.983d8f3c.iframe.bundle.js.LICENSE.txt → 717.cfd15232.iframe.bundle.js.LICENSE.txt} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,3 +1,32 @@
1
+ # [53.2.0](https://gitlab.com/g2m-gentoo/team-floyd/themes/matrix-theme/compare/v53.1.7...v53.2.0) (2025-06-09)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * a new structure ([b9a7f72](https://gitlab.com/g2m-gentoo/team-floyd/themes/matrix-theme/commit/b9a7f72846f71c2a983dbaebae8421b6dd2495f4))
7
+ * lazy load with size attributes default image of article card ([e630b90](https://gitlab.com/g2m-gentoo/team-floyd/themes/matrix-theme/commit/e630b90f15f266996d92c1c074966be33b9e4c04))
8
+ * nsa ([b50b772](https://gitlab.com/g2m-gentoo/team-floyd/themes/matrix-theme/commit/b50b77248691d29ffd622bc7ef2fd9cc56e2a0e5))
9
+ * test ([e77349c](https://gitlab.com/g2m-gentoo/team-floyd/themes/matrix-theme/commit/e77349c8d7e46c15d3c1a77a7dc8f66234db057b))
10
+ * update theme ([3380f42](https://gitlab.com/g2m-gentoo/team-floyd/themes/matrix-theme/commit/3380f42ec11b4f37691634ff04dd428d4915b028))
11
+
12
+
13
+ * Merge branch 'tm-5437-aria-labels' into 'master' ([0be9657](https://gitlab.com/g2m-gentoo/team-floyd/themes/matrix-theme/commit/0be9657cf98524ef52df2054ed8317d576959384))
14
+ * Merge remote-tracking branch 'origin/master' into tm-5437-aria-labels ([1391610](https://gitlab.com/g2m-gentoo/team-floyd/themes/matrix-theme/commit/13916103b65ffdf366c57986fffff7f1a70b8fa4))
15
+ * Merge branch 'tm-5506-default-article-image' into 'master' ([73c5a7c](https://gitlab.com/g2m-gentoo/team-floyd/themes/matrix-theme/commit/73c5a7ca423ba236940babb209dd9dbbe515c1ec))
16
+ * Merge branch 'tm-5453-nsa-fixes-matrix' into 'master' ([7250a32](https://gitlab.com/g2m-gentoo/team-floyd/themes/matrix-theme/commit/7250a32c8109e44ca9c5856513363fdeb3a1c13c))
17
+
18
+
19
+ ### Features
20
+
21
+ * aria labels translations ([a57202a](https://gitlab.com/g2m-gentoo/team-floyd/themes/matrix-theme/commit/a57202a8b671e218db4b91c7e6576dcd019bcda4))
22
+
23
+ ## [53.1.7](https://gitlab.com/g2m-gentoo/team-floyd/themes/matrix-theme/compare/v53.1.6...v53.1.7) (2025-06-04)
24
+
25
+
26
+ ### Bug Fixes
27
+
28
+ * update theme ([2ddaeec](https://gitlab.com/g2m-gentoo/team-floyd/themes/matrix-theme/commit/2ddaeecb46ac557e10499fd4eef51b5f82a9209c))
29
+
1
30
  ## [53.1.6](https://gitlab.com/g2m-gentoo/team-floyd/themes/matrix-theme/compare/v53.1.5...v53.1.6) (2025-06-04)
2
31
 
3
32
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gatsby-matrix-theme",
3
- "version": "53.1.6",
3
+ "version": "53.2.0",
4
4
  "main": "index.js",
5
5
  "description": "Matrix Theme NPM Package",
6
6
  "author": "",
@@ -25,7 +25,7 @@
25
25
  "dependencies": {
26
26
  "@react-icons/all-files": "^4.1.0",
27
27
  "gatsby": "^5.11.0",
28
- "gatsby-core-theme": "44.1.5",
28
+ "gatsby-core-theme": "44.1.7",
29
29
  "gatsby-plugin-sharp": "^5.11.0",
30
30
  "gatsby-transformer-sharp": "^5.11.0",
31
31
  "gatsby-plugin-sitemap": "^6.13.1",
@@ -1,10 +1,10 @@
1
1
  import React from 'react';
2
2
  import { FaRegEdit } from '@react-icons/all-files/fa/FaRegEdit';
3
3
  import { FaDatabase } from '@react-icons/all-files/fa/FaDatabase';
4
-
4
+ import useTranslate from '~hooks/useTranslate/useTranslate';
5
5
  import styles from './admin-card-button.module.scss';
6
6
 
7
- const index = ({ item, isToplist=false }) => {
7
+ const index = ({ item, isToplist = false }) => {
8
8
  const path = (type, relation, pageId) => {
9
9
  switch (type) {
10
10
  case 'page':
@@ -24,23 +24,28 @@ const index = ({ item, isToplist=false }) => {
24
24
 
25
25
  return (
26
26
  <div className={styles.container}>
27
- {!isToplist && <a
28
- className={styles.button}
29
- target="_blank"
30
- href={`${process.env.HERCULES_BACKEND_URL}${path('page', null, item.id)}`}
31
- rel="noreferrer"
32
- type="button"
33
- aria-label="Edit Page"
34
- >
35
- <FaRegEdit />
36
- </a>}
27
+ {!isToplist && (
28
+ <a
29
+ className={styles.button}
30
+ target="_blank"
31
+ href={`${process.env.HERCULES_BACKEND_URL}${path('page', null, item.id)}`}
32
+ rel="noreferrer"
33
+ type="button"
34
+ aria-label={useTranslate('ariaLabel-editPage', 'Edit Page')}
35
+ >
36
+ <FaRegEdit />
37
+ </a>
38
+ )}
37
39
  <a
38
40
  className={styles.button}
39
41
  target="_blank"
40
- href={`${process.env.HERCULES_BACKEND_URL}${path(isToplist ? 'operator' : item.type, isToplist ? item : item.relation)}`}
42
+ href={`${process.env.HERCULES_BACKEND_URL}${path(
43
+ isToplist ? 'operator' : item.type,
44
+ isToplist ? item : item.relation
45
+ )}`}
41
46
  rel="noreferrer"
42
47
  type="button"
43
- aria-label="Edit Relation Data"
48
+ aria-label={useTranslate('ariaLabel-editRelationData', 'Edit Relation Data')}
44
49
  >
45
50
  <FaDatabase />
46
51
  </a>
@@ -7,6 +7,7 @@ import { IoLogoTiktok } from '@react-icons/all-files/io5/IoLogoTiktok';
7
7
  import { FaLinkedin } from '@react-icons/all-files/fa/FaLinkedin';
8
8
  import { SiWikipedia } from '@react-icons/all-files/si/SiWikipedia';
9
9
  import TwitterIcon from '~images/icons/twitter';
10
+ import useTranslate from '~hooks/useTranslate/useTranslate';
10
11
  import styles from './socials.module.scss';
11
12
 
12
13
  export default function Socials({
@@ -41,7 +42,7 @@ export default function Socials({
41
42
  target="_blank"
42
43
  rel="nofollow noreferrer"
43
44
  key={`author-box-link-${socialLink.id}`}
44
- aria-label={`${socialLink.id} Link`}
45
+ aria-label={useTranslate(`ariaLabel-${socialLink.id}Link`, `${socialLink.id} Link`)}
45
46
  >
46
47
  {socialLink.icon}
47
48
  </a>
@@ -5,9 +5,9 @@ import PropTypes from 'prop-types';
5
5
  import Link from 'gatsby-core-theme/src/hooks/link';
6
6
  import { imagePrettyUrl } from 'gatsby-core-theme/src/helpers/getters';
7
7
  import LazyImage from 'gatsby-core-theme/src/hooks/lazy-image';
8
- import GatsbyImg from 'gatsby-core-theme/src/hooks/gatsby-img';
9
8
  import VariableComponent from '../variables';
10
9
 
10
+ import useTranslate from '~hooks/useTranslate/useTranslate';
11
11
  import styles from './article-card.module.scss';
12
12
 
13
13
  const ArticleCard = ({
@@ -22,29 +22,24 @@ const ArticleCard = ({
22
22
  verifyIcon = '',
23
23
  }) => {
24
24
  const { title, path, banner, reading_time } = item;
25
+ const defaultImg = (
26
+ <LazyImage width={width} height={height} src="/images/default-article.jpg" alt={title} />
27
+ );
28
+
25
29
  return (
26
30
  <div className={styles.article || ''}>
27
31
  <Link
28
32
  to={path}
29
33
  className={`${styles.image || ''} article-card-gtm`}
30
- aria-label={`${title} Link`}
34
+ aria-label={useTranslate(`ariaLabel-${title}Link`, `${title} Link`)}
31
35
  >
32
- {banner ? (
33
- <LazyImage
34
- width={width}
35
- height={height}
36
- src={imagePrettyUrl(banner, width, height)}
37
- alt={title}
38
- />
39
- ) : (
40
- <GatsbyImg
41
- alt={title}
42
- width="100%"
43
- height="100%"
44
- loading="lazy"
45
- filename="default-article.jpg"
46
- />
47
- )}
36
+ <LazyImage
37
+ width={width}
38
+ height={height}
39
+ defaultImg={defaultImg}
40
+ src={banner ? imagePrettyUrl(banner, width, height) : undefined}
41
+ alt={title}
42
+ />
48
43
  </Link>
49
44
  <div className={`${styles?.cardContent || ''}`}>
50
45
  {hasVariableComponent && (
@@ -1,10 +1,7 @@
1
1
  /* eslint-disable import/no-extraneous-dependencies */
2
2
  import React from 'react';
3
3
  import PropTypes from 'prop-types';
4
- import {
5
- imagePrettyUrl,
6
- getSectionExtraField
7
- } from '~helpers/getters';
4
+ import { imagePrettyUrl, getSectionExtraField } from '~helpers/getters';
8
5
  import Button from '~atoms/button/button';
9
6
  import OperatorCta from '~atoms/button/operator-cta';
10
7
  import GatsbyImg from '~hooks/gatsby-img';
@@ -14,7 +11,7 @@ import Link from '~hooks/link';
14
11
  import LazyImage from '~hooks/lazy-image';
15
12
  import { getAltText } from '~helpers/image';
16
13
  import useTranslate from '~hooks/useTranslate/useTranslate';
17
- import { TrackingKeys } from '~constants/tracking-api'
14
+ import { TrackingKeys } from '~constants/tracking-api';
18
15
 
19
16
  import styles from './template-five.module.scss';
20
17
 
@@ -42,9 +39,7 @@ const TemplateFive = ({
42
39
  const gameImage = (useThumbnail && relation?.thumbnail_filename_object?.filename) || banner;
43
40
  const operatorLogo = operator?.logo_url_object || operator?.logo_filename_object;
44
41
  const operatorText = operator?.bonuses?.main?.one_liner
45
- ? `Play at ${operator?.name} and get ${operator?.bonuses?.main?.one_liner
46
- .split('+')[0]
47
- .trim()}`
42
+ ? `Play at ${operator?.name} and get ${operator?.bonuses?.main?.one_liner.split('+')[0].trim()}`
48
43
  : operator?.name || '';
49
44
  const StarRatingComponent = useOneStarRating ? OneStarRating : StarRating;
50
45
 
@@ -53,7 +48,10 @@ const TemplateFive = ({
53
48
  <Link
54
49
  to={path}
55
50
  className={`game-card-gtm ${styles?.cardBanner || ''}`}
56
- aria-label={`${name || item?.title} Link`}
51
+ aria-label={useTranslate(
52
+ `ariaLabel-${name || item?.title}Link`,
53
+ `${name || item?.title} Link`
54
+ )}
57
55
  >
58
56
  {storybookImage || gameImage ? (
59
57
  <LazyImage
@@ -1,10 +1,7 @@
1
1
  /* eslint-disable import/no-extraneous-dependencies */
2
2
  import React from 'react';
3
3
  import PropTypes from 'prop-types';
4
- import {
5
- imagePrettyUrl,
6
- getSectionExtraField,
7
- } from '~helpers/getters';
4
+ import { imagePrettyUrl, getSectionExtraField } from '~helpers/getters';
8
5
  import { getAltText } from '~helpers/image';
9
6
  import Button from '~atoms/button/button';
10
7
  import OperatorCta from '~atoms/button/operator-cta';
@@ -14,7 +11,7 @@ import GatsbyImg from '~hooks/gatsby-img';
14
11
  import Link from '~hooks/link';
15
12
  import LazyImage from '~hooks/lazy-image';
16
13
  import useTranslate from '~hooks/useTranslate/useTranslate';
17
- import { TrackingKeys } from '~constants/tracking-api'
14
+ import { TrackingKeys } from '~constants/tracking-api';
18
15
  import styles from './template-four.module.scss';
19
16
 
20
17
  const TemplateFour = ({
@@ -29,7 +26,7 @@ const TemplateFour = ({
29
26
  storybookImage,
30
27
  showRoundedRating = false,
31
28
  modulePosition,
32
- itemPosition
29
+ itemPosition,
33
30
  }) => {
34
31
  const { relation, path, banner } = item;
35
32
  const { name } = relation || {};
@@ -45,7 +42,10 @@ const TemplateFour = ({
45
42
  <Link
46
43
  to={path}
47
44
  className={`game-card-gtm ${styles?.cardBanner || ''}`}
48
- aria-label={`${name || item?.title} Link`}
45
+ aria-label={useTranslate(
46
+ `ariaLabel-${name || item?.title}Link`,
47
+ `${name || item?.title} Link`
48
+ )}
49
49
  >
50
50
  {storybookImage || gameImage ? (
51
51
  <LazyImage
@@ -1,10 +1,7 @@
1
1
  /* eslint-disable import/no-extraneous-dependencies */
2
2
  import React from 'react';
3
3
  import PropTypes from 'prop-types';
4
- import {
5
- imagePrettyUrl,
6
- getSectionExtraField
7
- } from '~helpers/getters';
4
+ import { imagePrettyUrl, getSectionExtraField } from '~helpers/getters';
8
5
  import { getAltText } from '~helpers/image';
9
6
  import Button from '~atoms/button/button';
10
7
  import StarRating from '~molecules/star-rating/one-star';
@@ -41,7 +38,10 @@ const TemplateOne = ({
41
38
  <Link
42
39
  to={path}
43
40
  className={`game-card-gtm ${styles?.cardBanner || ''}`}
44
- aria-label={`${name || item?.title} Link`}
41
+ aria-label={useTranslate(
42
+ `ariaLabel-${name || item?.title}Link`,
43
+ `${name || item?.title} Link`
44
+ )}
45
45
  >
46
46
  {storybookImage || gameImage ? (
47
47
  <LazyImage
@@ -1,10 +1,7 @@
1
1
  /* eslint-disable import/no-extraneous-dependencies */
2
2
  import React from 'react';
3
3
  import PropTypes from 'prop-types';
4
- import {
5
- imagePrettyUrl,
6
- getSectionExtraField
7
- } from '~helpers/getters';
4
+ import { imagePrettyUrl, getSectionExtraField } from '~helpers/getters';
8
5
  import { getAltText } from '~helpers/image';
9
6
  import Button from '~atoms/button/button';
10
7
  import StarRating from '~molecules/star-rating';
@@ -14,7 +11,7 @@ import GatsbyImg from '~hooks/gatsby-img';
14
11
  import Link from '~hooks/link';
15
12
  import LazyImage from '~hooks/lazy-image';
16
13
  import useTranslate from '~hooks/useTranslate/useTranslate';
17
- import { TrackingKeys } from '~constants/tracking-api'
14
+ import { TrackingKeys } from '~constants/tracking-api';
18
15
  import styles from './template-three.module.scss';
19
16
 
20
17
  const TemplateThree = ({
@@ -29,7 +26,7 @@ const TemplateThree = ({
29
26
  storybookImage,
30
27
  showRoundedRating = false,
31
28
  modulePosition,
32
- itemPosition
29
+ itemPosition,
33
30
  }) => {
34
31
  const { relation, path, banner } = item;
35
32
  const { name } = relation || {};
@@ -48,7 +45,7 @@ const TemplateThree = ({
48
45
  <Link
49
46
  to={path}
50
47
  className={`game-card-gtm ${styles?.cardBanner || ''}`}
51
- aria-label={`${name} Link`}
48
+ aria-label={useTranslate(`ariaLabel-${name}Link`, `${name} Link`)}
52
49
  >
53
50
  {storybookImage || gameImage ? (
54
51
  <LazyImage
@@ -1,10 +1,7 @@
1
1
  /* eslint-disable import/no-extraneous-dependencies */
2
2
  import React from 'react';
3
3
  import PropTypes from 'prop-types';
4
- import {
5
- imagePrettyUrl,
6
- getSectionExtraField
7
- } from '~helpers/getters';
4
+ import { imagePrettyUrl, getSectionExtraField } from '~helpers/getters';
8
5
  import { getAltText } from '~helpers/image';
9
6
  import Button from '~atoms/button/button';
10
7
  import OperatorCta from '~atoms/button/operator-cta';
@@ -14,7 +11,7 @@ import GatsbyImg from '~hooks/gatsby-img';
14
11
  import Link from '~hooks/link';
15
12
  import LazyImage from '~hooks/lazy-image';
16
13
  import useTranslate from '~hooks/useTranslate/useTranslate';
17
- import { TrackingKeys } from '~constants/tracking-api'
14
+ import { TrackingKeys } from '~constants/tracking-api';
18
15
  import styles from './template-two.module.scss';
19
16
 
20
17
  const TemplateTwo = ({
@@ -29,7 +26,7 @@ const TemplateTwo = ({
29
26
  storybookImage,
30
27
  showRoundedRating = false,
31
28
  modulePosition,
32
- itemPosition
29
+ itemPosition,
33
30
  }) => {
34
31
  const { relation, path, banner } = item;
35
32
  const { name } = relation || {};
@@ -48,7 +45,10 @@ const TemplateTwo = ({
48
45
  <Link
49
46
  to={path}
50
47
  className={`game-card-gtm ${styles?.cardBanner || ''}`}
51
- aria-label={`${name || item?.title} Link`}
48
+ aria-label={useTranslate(
49
+ `ariaLabel-${name || item?.title}Link`,
50
+ `${name || item?.title} Link`
51
+ )}
52
52
  >
53
53
  {storybookImage || gameImage ? (
54
54
  <LazyImage
@@ -20,11 +20,12 @@ const TemplateOneTwo = ({
20
20
  height = 150,
21
21
  wordLimit = 50,
22
22
  showRoundedRating = false,
23
+ showDescription= true
23
24
  }) => {
24
25
  const { title, path, relation, sections, description } = item || {};
25
26
  const { name, selling_points } = item?.relation || {};
26
27
 
27
- const imageObject = relation?.logo
28
+ const imageObject = relation?.logo;
28
29
 
29
30
  return (
30
31
  <>
@@ -32,7 +33,7 @@ const TemplateOneTwo = ({
32
33
  <div className={styles?.header || ''}>
33
34
  <Link
34
35
  className={`${styles?.image || ''} payment-method-card-gtm`}
35
- aria-label={`${title} Link`}
36
+ aria-label={useTranslate(`ariaLabel-${title}Link`, `${title} Link`)}
36
37
  to={path}
37
38
  >
38
39
  <LazyImage
@@ -58,7 +59,7 @@ const TemplateOneTwo = ({
58
59
 
59
60
  {showSellingPoints && <SellingPoints sellingPoints={selling_points} />}
60
61
  <div className={styles?.excerpt || ''}>
61
- {!showSellingPoints &&
62
+ {!showSellingPoints && showDescription &&
62
63
  textWordsLimit(
63
64
  description ||
64
65
  sections?.header?.extra_fields?.header_text?.value ||
@@ -115,6 +116,7 @@ TemplateOneTwo.propTypes = {
115
116
  height: PropTypes.number,
116
117
  wordLimit: PropTypes.number,
117
118
  showRoundedRating: PropTypes.bool,
119
+ showDescription: PropTypes.bool,
118
120
  };
119
121
 
120
122
  export default TemplateOneTwo;
@@ -11,6 +11,7 @@ import LazyImage from '~hooks/lazy-image';
11
11
  import { imagePrettyUrl } from '~helpers/getters';
12
12
  import { getAltText } from '~helpers/image';
13
13
  import SellingPoints from '../sellingPoints';
14
+ import useTranslate from '~hooks/useTranslate/useTranslate';
14
15
  import styles from './template-three.module.scss';
15
16
 
16
17
  const TemplateThree = ({
@@ -32,7 +33,7 @@ const TemplateThree = ({
32
33
  <div className={styles?.header || ''}>
33
34
  <Link
34
35
  className={`${styles?.image || ''} payment-method-card-gtm`}
35
- aria-label={`${title} Link`}
36
+ aria-label={useTranslate(`ariaLabel-${title}Link`, `${title} Link`)}
36
37
  to={path}
37
38
  >
38
39
  <LazyImage
@@ -5,6 +5,7 @@ import Link from '~hooks/link';
5
5
  import LazyImage from '~hooks/lazy-image';
6
6
  import { imagePrettyUrl, textWordsLimit } from '~helpers/getters';
7
7
  import { getAltText } from '~helpers/image';
8
+ import useTranslate from '~hooks/useTranslate/useTranslate';
8
9
 
9
10
  import styles from './software-provider-card.module.scss';
10
11
 
@@ -17,7 +18,7 @@ const SoftwareProviderCard = ({
17
18
  textOne: 'This game provider has',
18
19
  textTwo: 'slots',
19
20
  },
20
- width = 150,
21
+ width = 150,
21
22
  height = 150,
22
23
  }) => {
23
24
  const { title, path, relation, sections } = item;
@@ -29,7 +30,7 @@ const SoftwareProviderCard = ({
29
30
  <div className={styles?.header || ''}>
30
31
  <Link
31
32
  className={`${styles?.links || ''} software-provider-card-gtm`}
32
- aria-label={`${title} Link`}
33
+ aria-label={useTranslate(`ariaLabel-${title}Link`, `${title} Link`)}
33
34
  to={path}
34
35
  >
35
36
  <LazyImage
@@ -47,7 +47,7 @@ const CountrySelector = ({ pageContext }) => {
47
47
 
48
48
  // const lang = item[0].split('_')[1];
49
49
  return (
50
- <Link aria-label={item[0]} to={path}>
50
+ <Link aria-label={useTranslate(`ariaLabel-${item[0]}`, item[0])} to={path}>
51
51
  <img
52
52
  width={32}
53
53
  height={32}
@@ -35,7 +35,7 @@ const SocialIcons = ({
35
35
  socialIcons[key] && (
36
36
  <a
37
37
  key={keygen()}
38
- aria-label={`${key} Link`}
38
+ aria-label={useTranslate(`ariaLabel-${key}Link`, `${key} Link`)}
39
39
  href={socialIcons[key]}
40
40
  target="_blank"
41
41
  rel="noreferrer noopener"
@@ -8,7 +8,7 @@ import LazyImage from '~hooks/lazy-image';
8
8
  import OperatorBanner from '~atoms/header-operator-bannner';
9
9
  import Rating from '~atoms/ratings';
10
10
  import useTranslate from '~hooks/useTranslate/useTranslate';
11
- import { TrackingKeys } from '~constants/tracking-api'
11
+ import { TrackingKeys } from '~constants/tracking-api';
12
12
  import Verify from '~images/icons/verify';
13
13
 
14
14
  import styles from './template-five.module.scss';
@@ -27,7 +27,7 @@ const TemplateOneThree = ({
27
27
  showRoundedRating = false,
28
28
  width = 179,
29
29
  height = 179,
30
- moduleName = TrackingKeys?.HEADERPAYMENT
30
+ moduleName = TrackingKeys?.HEADERPAYMENT,
31
31
  }) => {
32
32
  const [isReadMore, setIsReadMore] = useState(true);
33
33
 
@@ -72,13 +72,14 @@ const TemplateOneThree = ({
72
72
  role="button"
73
73
  onClick={toggleReadMore}
74
74
  onKeyDown={toggleReadMore}
75
- aria-label="continue reading"
75
+ aria-label={useTranslate('ariaLabel-continueReading', 'continue reading')}
76
76
  tabIndex={0}
77
77
  dangerouslySetInnerHTML={{
78
78
  __html:
79
79
  description.split(' ').length > 60 && isReadMore
80
- ? `${textWordsLimit(description, 60)} <span class='${styles.contReadText
81
- }'>${useTranslate('cont_read', 'Continue reading')}</span>`
80
+ ? `${textWordsLimit(description, 60)} <span class='${
81
+ styles.contReadText
82
+ }'>${useTranslate('cont_read', 'Continue reading')}</span>`
82
83
  : description,
83
84
  }}
84
85
  />
@@ -90,7 +91,7 @@ const TemplateOneThree = ({
90
91
  operator={headerBonus?.value}
91
92
  template={pageTemplate}
92
93
  clickedElement="header_operator_banner"
93
- moduleName={moduleName}
94
+ moduleName={moduleName}
94
95
  />
95
96
  </div>
96
97
  )}
@@ -9,7 +9,7 @@ import StarRating from '~molecules/star-rating/one-star';
9
9
  import OperatorBanner from '~atoms/header-operator-bannner';
10
10
  import Rating from '~atoms/ratings';
11
11
  import useTranslate from '~hooks/useTranslate/useTranslate';
12
- import { TrackingKeys } from '~constants/tracking-api'
12
+ import { TrackingKeys } from '~constants/tracking-api';
13
13
  import Verify from '~images/icons/verify';
14
14
 
15
15
  import styles from './template-one-three.module.scss';
@@ -29,7 +29,7 @@ const TemplateOneThree = ({
29
29
  showRoundedRating = false,
30
30
  width = 179,
31
31
  height = 179,
32
- moduleName = TrackingKeys?.HEADERPAYMENT
32
+ moduleName = TrackingKeys?.HEADERPAYMENT,
33
33
  }) => {
34
34
  const [isReadMore, setIsReadMore] = useState(true);
35
35
 
@@ -98,7 +98,7 @@ const TemplateOneThree = ({
98
98
  role="button"
99
99
  onClick={toggleReadMore}
100
100
  onKeyDown={toggleReadMore}
101
- aria-label="continue reading"
101
+ aria-label={useTranslate('ariaLabel-continueReading', 'continue reading')}
102
102
  tabIndex={0}
103
103
  dangerouslySetInnerHTML={{
104
104
  __html:
@@ -8,7 +8,7 @@ import LazyImage from '~hooks/lazy-image';
8
8
  import StarRating from '~molecules/star-rating/one-star';
9
9
  import OperatorBanner from '~atoms/header-operator-bannner';
10
10
  import useTranslate from '~hooks/useTranslate/useTranslate';
11
- import { TrackingKeys } from '~constants/tracking-api'
11
+ import { TrackingKeys } from '~constants/tracking-api';
12
12
 
13
13
  import Verify from '~images/icons/verify';
14
14
 
@@ -26,7 +26,7 @@ const TemplateTwo = ({
26
26
  showRoundedRating = false,
27
27
  width = 288,
28
28
  height = 288,
29
- moduleName = TrackingKeys?.HEADERPAYMENT
29
+ moduleName = TrackingKeys?.HEADERPAYMENT,
30
30
  }) => {
31
31
  const [isReadMore, setIsReadMore] = useState(true);
32
32
  const descriptionRef = useRef(null);
@@ -71,18 +71,20 @@ const TemplateTwo = ({
71
71
  {description && (
72
72
  <div
73
73
  ref={descriptionRef}
74
- className={`${styles.desc} ${description.split(' ').length > 60 && styles.showReadMore
75
- }`}
74
+ className={`${styles.desc} ${
75
+ description.split(' ').length > 60 && styles.showReadMore
76
+ }`}
76
77
  role="button"
77
78
  onClick={toggleReadMore}
78
79
  onKeyDown={toggleReadMore}
79
- aria-label="continue reading"
80
+ aria-label={useTranslate('ariaLabel-continueReading', 'continue reading')}
80
81
  tabIndex={0}
81
82
  dangerouslySetInnerHTML={{
82
83
  __html:
83
84
  description.split(' ').length > 60 && isReadMore
84
- ? `${textWordsLimit(description, 60)} <span class='${styles.contReadText
85
- }'>${useTranslate('cont_read', 'Continue reading')}</span>`
85
+ ? `${textWordsLimit(description, 60)} <span class='${
86
+ styles.contReadText
87
+ }'>${useTranslate('cont_read', 'Continue reading')}</span>`
86
88
  : description,
87
89
  }}
88
90
  />