Golems GABB: 2024 Trends: What's New for Drupal

2024 Trends: What's New for Drupal Editor Wed, 06/12/2024 - 16:00

People always want to predict the future. They say that is not good, but this doesn't apply to the Drupal 2024 trends. Undoubtedly, Generative Artificial Intelligence will shape tech trends and stimulate further progress in the website development industry.
However, there are other matters worth paying attention to. Mintz, World Wildlife Fund, Chupa Chups, Mattel, and other prominent Drupal websites won’t sit idly by viewing this chaos of innovations and advancements.
Now is the time for unique insights with Golems web development agency about what Drupal 2024 will be like. The more aware you are of prospective game-changing rules, the more up in arms you will act in SEO, marketing, and business growth strategies. Stay tuned to take a sneak peek into the future!

The Drop Times: Why 1xINTERNET Rushed to Support the Starshot Initiative: Insights from Baddý Sonja

Discover why 1xINTERNET swiftly supported the Drupal Starshot Initiative. In this interview by Kazima Abbas, Baddy Sonja Breidert, CEO and Co-Founder, shares the motivations, goals, and impact behind their involvement. Don't miss these valuable insights from a key player in the Drupal community!

The Drop Times: Drupal Starshot Initiative Sets Strategic Milestones in Product Definition

The Drupal community advanced its Starshot initiative with a key session on June 7, 2024, led by Dries Buytaert and Cristina Chumillas. The session focused on refining the Drupal ecosystem with user-centric improvements and strategic development milestones. Key topics included the mission statement review, concept wireframes, draft milestones for DrupalCon Barcelona, and the Starshot Council.

Dries Buytaert: Major version upgrades in Drupal: tools and workflow

When a new major version of Drupal is released, custom code often requires updates to align with API changes, including the removal of deprecated APIs.

Because I keep forgetting certain aspects of this workflow, I decided to document it for future reference.

Tools overview

Tool Interface Functionality Target Audience Upgrade Status module UI in Drupal Identifies deprecated code, hosting environment compatibility, and more Site administrators and developers Drupal Check Command-line Identifies deprecated code Developers, especially during coding and continuous integration (CI)

Upgrade Status module

The Upgrade Status module assesses a Drupal site's readiness for major version upgrades by checking for deprecated code and other compatibility issues.

Image removed.Screenshot of a Drupal upgrade status report showing hosting environment compatibility checks.
  1. Install the Upgrade Status module like you would install any other Drupal module:

    [code bash]$ ddev composer require –dev drupal/upgrade_status[/code]

    Here, ddev is the tool I prefer for managing my local development environment. composer is a dependency manager for PHP, commonly used to install Drupal modules. The –dev option specifies that the module should be installed as a development requirement, meaning it is necessary for development environments but not installed on production environments.

  2. Enable the Upgrade Status module:

    [code bash]$ ddev drush pm-enable upgrade_status[/code]

    drush stands for "Drupal shell" and is a command-line utility for managing Drupal sites. The command pm:enable (where pm stands for "package manager") is used to enable a module in Drupal.

  3. After enabling the module, you can access its features by navigating to the Admin > Reports > Upgrade status page at /admin/reports/upgrade-status.

Upgrading PHP and MySQL using DDEV

The Upgrade Status module might recommend updating PHP and MySQL, per Drupal's system requirements.

To update the PHP version of DDEV, use the following command:

[code bash]$ ddev config –-php-version 8.3[/code]

To upgrade the MySQL version of DDEV and migrate your database content, use the following command:

[code bash]$ ddev debug migrate-database mariadb:10.11[/code]

After updating these settings, I restart DDEV and run my PHPUnit tests. Although these tests are integrated into my CI/CD workflow, I also run them locally on my development machine using DDEV for immediate feedback.

Drupal Check

Drupal Check is a command-line tool that scans Drupal projects for deprecated code and compatibility issues.

Image removed.Output of Drupal Check command indicating no deprecated code was found.
  1. Installation:

    [code bash]$ ddev composer require –dev mglaman/drupal-check[/code]
  2. Run Drupal Check from the root of your Drupal installation:

    [code bash]$ ./vendor/bin/drupal-check –memory-limit 500M docroot/modules/custom[/code]

    I usually have to increase the memory limit, hence the --memory-limit 500M.

Specbee: Why and How to migrate your DotNetNuke (DNN) site to Drupal 10

First things first, let's talk about why you're here. You've got a DNN website that's starting to show its age, and you're eyeing that sleek, modern Drupal CMS like it's the latest iPhone. From DotNetNuke to DNN Platform to DNN Evoq-sometimes simply called Evoq-this CMS has seen a series of transformations. Once an extremely popular CMS solution for organizations (mostly enterprise-level), DNN Evoq has faced the inevitable challenge of staying relevant over two decades. It's hard for any software to remain popular for over 20 years, especially with the changing world of web development and content management. Drupal, despite being older than DNN (okay, a year older), is thriving! Over time, it has only evolved into a more modern, user-friendly, and robust CMS. Moreover, Drupal excels at what it was designed to do: effective content management.  However, this is not intended to be a comparison blog of DNN vs. Drupal, even though we'll touch on a few reasons to consider the switch. This article aims to shed light on the DNN to Drupal migration process and what it entails. Additionally, we will share a case study of one of  Specbee's successful DNN to Drupal migrations.  Why you should migrate from DNN Evoq to Drupal To those who need to know some history of DNN, it was created by Shaun Walker and launched in late 2002. Written in C#, DNN is open source and relies on .NET framework and ASP.NET Web Forms. DNN soon became a platform known for its extensibility and seamless scalability which also brought in a lot of consultants and agencies to offer DNN development services.  However, over the years, DNN has experienced significant changes. The shift to the ASP.NET MVC model in 2009, coupled with some acquisitions, led to a decline in its user base and community support. DNN started relying on outdated technologies (since the .NET framework stopped development in 2019) and is unable to adapt to modern technologies and advancements. This evolution made it less appealing for businesses looking for a robust and active platform.  Now, why should you consider moving to Drupal, especially Drupal 10? Active and Vibrant Community: Drupal has one of the largest open-source communities. This means continuous improvements, a wealth of modules and themes, and a support system that's always buzzing. Continuous innovation: Drupal's constant innovation, driven by its passionate community, keeps it ahead with advanced features and enhancements. New strategic initiatives like Drupal Starshot, Project Browser, Experience Builder, Recipes, and Automatic Updates are poised to revolutionize the Drupal experience, making it more intuitive, efficient, and adaptable than ever before.  Cutting-Edge Features: Drupal 10 comes packed with modern features. It leverages Symfony 6 and Twig 3, ensuring your site is not just robust but also future-proof. The new admin theme, Claro, and the front-end theme, Olivero, offer a more intuitive and visually appealing experience. Effective editorial workflow system: With Drupal, end users can easily create and manage workflows tailored to their organization's needs and adjust them on-demand as necessary which is becoming more and more of a demand today.  In comparison, DNN's customization options and support for complex editorial workflows often require extensive coding knowledge.  Scalability and Flexibility: Like DNN, Drupal is known for its scalability. However, Drupal takes it a step further with its flexible content architecture, allowing you to create and manage various content types with ease. Security: Drupal is renowned for its strong security track record. The Drupal Security Team actively monitors and addresses vulnerabilities, giving you peace of mind. SEO and Performance: Drupal 10 includes out-of-the-box features that help improve SEO and site performance. From clean URLs to advanced caching mechanisms, it’s designed to help your site rank better and load faster. Accessibility: Drupal is committed to web accessibility standards, ensuring your site is usable by everyone. Extensive Ecosystem: With thousands of modules and themes, Drupal offers a vast ecosystem to extend your site's functionality without reinventing the wheel. By switching to Drupal 10, you're stepping into a future-ready, secure, and highly customizable environment. It's a move that can significantly improve your digital presence and provide a solid foundation for growth. Preparing for the migration Before you begin your DNN to Drupal migration, we recommend reading this article to get yourself prepped for a migration regardless of the version. It covers what information you should share with your Drupal development partner. This migration is also a perfect time to add those extra features or third-party integrations you've always wanted. Additionally, it's a great opportunity to revamp your website's design and user experience if needed. Consider your website’s current SEO positioning and how you would like to optimize it. Once you've considered everything, create a backup of your website to avoid any accidental changes or data loss. Next, make a checklist of your content structure, including content types, URLs, metadata, and media files. After this, let the Drupal migration experts take over. DNN to Drupal migration process Here’s a 4-step migration process that is (or should ideally be) followed by your Drupal migration partner: 1. Migration Audit Identify your DNN website features, functionality, modules, and content structure Conduct a detailed analysis to understand the digital landscape Catalog content views for easier replication Develop a strategic content migration strategy 2. Build Application Meticulously rebuild content structure and theme Replicate website features, add new features Conduct thorough regression testing Ensure a solid foundation, seamless functionality, and flawless performance 3. Migrate Content Content extraction from your database in a CSV, XML or JSON format Ensure a seamless transition from DNN to the latest Drupal version Import all contents and valuable assets, match them with the freshly created content types and fields Meticulously validate the entire data migration process for data accuracy and completeness. 4. Testing Thoroughly test migrated data for sanity and integrity. Subject replicated features to smoke testing and load testing. Guarantee seamless performance under various scenarios. Conduct meticulous security checks. Watch this video of our step-by-step Drupal migration process, irrespective of the CMS you are coming from. (To be embedded) https://youtu.be/D5JUud_a81k?feature=shared A DNN to Drupal migration case study The client (Stamats) approached us with a two-fold issue. They had three magazine sites on a legacy version of DNN that was riddled with malware and needed major work for the migration to Drupal. Among those sites was MeetingsToday.com.  Meetings Today was several years old, and had more than 20,000 articles in DNN. There was also extensive functionality related to their physical magazine, events, podcasts, webinars, and more. Their primary goal was to retain and grow their audience. They were experiencing issues with editing, and an uncertain future. The challenge came to Specbee to create a Drupal distribution that could serve the core publishing needs of several online magazine sites built in DNN.  So we built a custom Drupal distribution to save them time and money in the long term. This approach allowed any new feature developed for one site to be easily implemented across all sites while preserving their unique designs. It also gave them the ability to spin up a new publishing site without building a brand new website from scratch getting them to market 10x faster.  Specbee delivered a solution that allowed for Drupal's powerful editorial controls and publishing tools for multiple sites while allowing those sites to retain their unique functionality. References https://devessence.com/blog/!/22/what-is-your-dnn-migration-strategy/https://www.dnnsoftware.com/community-blog/cid/134716/asp-net-mvc-and-d…https://www.linkedin.com/in/shaunbrucewalker/ Final thoughts We understand that migrations are never an easy decision for any business. While entrusting a reliable technology partner can alleviate some concerns, it's crucial to dedicate your attention and time before handing over the reins. By choosing the right Drupal partner (such as Specbee, a certified Drupal migration partner), you can streamline the migration process, making it as seamless and painless as possible. Still wondering if you should migrate your DNN website to Drupal? Give us a call and we’ll help you make the right decision.

PreviousNext: Filtering and sorting search results by date range with OpenSearch

How to make use of OpenSearch (and Elasticsearch) built-in data-types specifically designed for filtering and sorting date ranges.


 

by lee.rowlands / 5 June 2024

It's fairly common to have content with a date range. E.g., events or content that is only applicable for a given date.

Sorting and filtering results by date can be complicated, especially if you have to support features such as multiple date ranges and optional end dates.

But OpenSearch (and Elasticsearch) have data types specifically designed for this use case.

The key here is to index your data using a Range field type.

Let's consider an example we recently built for NSW.gov.au. The requirements for the field were as follows:

  • Index a grant content-type
  • The grant content-type has a date-range field
  • The field has optional end dates via the Optional End Date module
  • The field is multi value
  • There is also a boolean 'Grant is ongoing' field that flags the grant as 'Evergreen'

The filtering requirements include a 'Status' field, which has options for:

  • Open - the current date must fall inside one of the date-range values
  • Closed - the current date is after date-range values
  • Opening soon - the current date falls inside a future date range

Additionally, the search results should be sorted in the following order when no keywords exist:

  • Open
  • Opening soon
  • Closed

Defining a date range field in Drupal/Search API

The first step is to inform Search API about the date-range data type. How you do this will depend on whether you're using Elasticsearch connector or Search API OpenSearch.

If you're using Search API OpenSearch, the good news is that it is already supported in the 2.x branch.

If you're using Elasticsearch connector, you should implement hook_elasticsearch_connector_supported_data_types_alter and add date range as a data-type - something like this

/**  * Implements hook_elasticsearch_connector_supported_data_types_alter().  */ function YOURMODULE_elasticsearch_connector_supported_data_types_alter(array &$data_types) {   if (!in_array('date_range', $data_types)) {     $data_types[] = 'date_range';   } }

If you're using Elasticsearch connector, you also need a processor plugin to put the field values into the index. You can take inspiration from how Search API OpenSearch achieves this.

Indexing Drupal data

Once you have those pieces in place, you simply need to configure your date field to use the Date Range data type in the Search API index.

Constructing the queries

With the data in your index, the only thing left is to construct your queries to make use of the date range data-type.

In these examples, we'll assume your date-range field is called 'application_dates', that the field is multi-value and that the end date is optional.

We will use 1710201396000 as the current timestamp (in epoch microseconds).

Filtering to 'open'

This one is the simplest. You need a new term query that uses the current date

{   "from": 0,   "size": 10,   "query": {     "bool": {       "must": [         {           "term": {             "application_dates": 1710201396000           }         }       ]     }   } }

For a date-range field, the use of a term query will match any document where the given value is between the start and end of the range.

Filtering to 'closed'

This one is a bit more involved. We need to combine some conditions

{   "from": 0,   "size": 10,   "query": {     "bool": {       "minimum_should_match": 1,       "should": {         "bool": {           "minimum_should_match": 1,           "must_not": [             {               "range": {                 "application_dates": {                   "gte": 1710201396000                 }               }             },             {               "term": {                 "grant_is_ongoing": true               }             }           ],           "should": [             {               "range": {                 "application_dates": {                   "relation": "WITHIN",                   "lte": 1710201396000                 }               }             }           ]         }       }     }   } }

First, we have a should, which is an OR query in OpenSearch parlance. We're saying the grant must not have any future open dates (gte: 1710201396000) AND must not be flagged as ongoing. Then we're saying all of the application dates should be in the past (lte: 1710201396000).

Filtering to 'opening soon'

Here again, we need multiple conditions.

{   "from": 0,   "size": 10,   "query": {     "bool": {       "must": {         "range": {           "application_dates": {             "relation": "WITHIN",             "gte": 1710201396000           }         }       },       "must_not": [         {           "term": {             "application_dates": 1710201396000           }         },         {           "term": {             "grant_is_ongoing": true           }         }       ]     }   } }

First, we are saying there must be at least one date where the date range is in the future (gte: 1710201396000) and that the grant must not be ongoing OR have any date ranges that match the current date (term: 1710201396000) (i.e. are open).

Sorting

Sorting is a little more complex. We can make use of filters in our sort expressions.

To do this, we also need to index our date-range as an object so we can use nesting.

We duplicate the application_dates field to an application_dates_sort field and make this use the nested data-type. The mapping will look like this

{   "application_dates_sort": {     "type": "nested",     "properties": {       "gte": {         "type": "long"       },       "lte": {         "type": "long"       }     }   } }

Then, we can make use of this in our sort expressions. E.g. to have open items appear first, we can use

{   "from": 0,   "sort": [     {       "application_dates_sort.lte": {         "order": "asc",         "mode": "min",         "nested": {           "path": "application_dates_sort",           "filter": {             "bool": {               "must": [                 {                   "range": {                     "application_dates_sort.lte": {                       "gte": 1710201396000                     }                   }                 },                 {                   "range": {                     "application_dates_sort.gte": {                       "lte": 1710201396000                     }                   }                 }               ]             }           }         },         "missing": "_last"       }     }   ],   "size": 10 }

What we're doing here is sorting by the opening date, ascending, but using a filter to only match on records where the current date falls between the start/end date. We're telling OpenSearch to put any objects that don't match (missing) at the end.

We can stack sort expressions like this — subsequent expressions will apply to those that were 'missing' from the first sort. Combining these lets us achieve the desired sort order of opening -> opening soon -> closed.

Wrapping up

OpenSearch is pretty powerful. But to make the most of its features, you need to ensure your data is mapped into the right data-type. Using date-range fields for storing date-ranges takes a little bit of extra planning, but it leads to much more efficient queries and a better experience for your users.

Tagged

OpenSearch

Talking Drupal: Talking Drupal #454 - Drupal API Client

Today we are talking about Drupal’s API Client, What it does, and why you might need it with guest Brian Perry. We’ll also cover Iconify Icons as our module of the week.

For show notes visit: www.talkingDrupal.com/454

Topics
  • Brian what is new with you!
  • Elevator pitch for Drupal API Client
  • What was Pitchburg like
  • Is this a normalizer for JSON API
  • Why is this JS framework agnostic
  • What is typescript and how does Drupal API Client use it
  • Looking at the quick start guide the second step is to create an instance, where do you do that
  • Who is this module for
  • Will Drupal API Client be added to core
  • What is on the roadmap
  • How does this relate to Chapter Three and Next.js
  • What is the spin up time
  • How will Starshot impact this
Resources Guests

Brian Perry - brianperry.dev brianperry

Hosts

Nic Laflin - nLighteneddevelopment.com nicxvan John Picozzi - epam.com johnpicozzi Randy Fay - rfay

MOTW Correspondent

Martin Anderson-Clutz - mandclu.com mandclu

  • Brief description:
    • Have you ever wanted to empower your content creators to place icons from a massive, open source library into your Drupal site? There’s a module for that.
  • Module name/project name:
  • Brief history
    • How old: created on May 22 of this year, so less than two weeks ago, by David Galeano (gxleano) of Factorial
    • Versions available: 1.0.0 which supports Drupal 9.3 or newer, right up to Drupal 11
  • Maintainership
    • Actively maintained
    • Security coverage
    • Test coverage
    • Documentation
    • Number of open issues: 2 open issues, neither of which are bugs
  • Usage stats:
    • 1 site
  • Module features and usage
    • Out of the box the module provides both a CKEditor button for placing icons, and a new field type. It even provides a new form element that can be used in custom forms, a render element you can use to programmatically put an icon into something like a custom block, and a Twig extension that can be used to place icons in templates.
    • According to the project page, the Iconify icon library includes more than 200,000 icons, though in my limited experimentation it seems like there are some duplicates between icon sets. Speaking of which, Iconify provides over 150 different icon sets, and in this module’s configuration you can specify which ones you want to be available on your site.
    • Placing an icon is as simple as using an autocomplete to search the names of the icons available, and a preview is shown for each of the matches found.
    • The field widget and the CKEditor button both give content creators options for what size and color to use for the icons. For myself I’d prefer to lock some of those options down (for example, make that part of the field’s display configuration instead), but I’m sure that could be added as part of a different widget.
    • I can think of a few Drupal sites I’ve built where this would have been really handy, so I’m interested to play around with this module some more, and see how it evolves.

The Drop Times: Drupal's New Horizons: Innovations, Community, and the Starshot Initiative

Drupal's popularity is soaring because it's easy to use and flexible enough to fit any project. Businesses love it for its ability to grow with them, whether they're just starting out or already established. With each update, Drupal improves, offering more features and making it easier for everyone to build amazing websites.

One big thing to watch out for is the Starshot Initiative. It's all about making Drupal easier to use by adding some cool features from the start. Think of it as getting a new phone with all the apps you need installed. Starshot is like that for Drupal, making it simpler for everyone to get started and build something great.

The best part about Drupal is its community. People worldwide come together to share ideas, help each other, and improve Drupal. Whether you're a beginner or an expert, there's always something new to learn and someone to help you.

As Drupal grows, so does its potential. More and more businesses are choosing Drupal because it's reliable, adaptable, and just plain works. With initiatives like Starshot on the horizon, Drupal's future looks brighter.

With that said, let's now explore what updates and news we have covered last week:

In the interview with Alka Elizabeth, sub-editor at The Drop Times, Esmeralda Braad-Tijhoff, discusses her background, rise in the Drupal community, and ongoing efforts to promote inclusivity and collaboration within the tech industry. She shares insights into her roles with the Stichting Drupal Nederland and the Network of European Drupal Associations (NEDA), reflecting on her achievements and vision for the future of open-source solutions in public sector projects.

I had the opportunity to connect with some of the speakers of the upcoming DrupalJam to gain their insights on their sessions. Frederik Wouters sheds light on integrating RAG and OpenAI technologies within organizational infrastructures, emphasizing the significance of data quality and privacy considerations. Mikko Hämäläinen delves into the complexities of Digital Experience Platforms (DXP), elucidating their role in addressing customer expectations and internal silos in customer management. Finally, Mathias Bolt Lesniak advocates for the importance of open-source software in governmental policies, urging society to rediscover its benefits and advocate for its adoption.

Additionally, PHPCamp took place on 8th June 2024. I spoke with the organizers to provide insights into what attendees could expect. Amit Kumar Singh, a key organizer, shared his thoughts on why PHPCamp holds significance in the tech community.

Recently, Jay Callicott, an experienced Drupal Architect, introduced a new tool: DrupalX. DrupalX aims to simplify the process of building enterprise-level websites using Drupal. The Drop Times approached him for a comment, where he highlighted DrupalX's focus on improving the Drupal development experience, particularly for enterprise projects. Jay anticipates DrupalX will be beneficial in addressing common challenges developers face. Click here to read more about DrupalX.

The Drupal Starshot Initiative is picking up speed, and if you're interested in getting involved, now's the perfect time! The complete session calendar is now accessible, featuring a range of interactive Zoom calls. These sessions are tailored to offer updates and guidance on how you can contribute to this thrilling initiative.

After its unveiling at DrupalCon Portland 2024, the initial Drupal Starshot session, spearheaded by Dries Buytaert on May 31, 2024, attracted over 200 participants. The session discussed key topics such as community involvement, funding strategies, and governance plans. These discussions underscored the project's mission to streamline Drupal site construction through improved features and accessibility.

The Drupal Starshot project has introduced its new leadership team headed by Dries Buytaert. This team comprises key figures such as Technical Lead Tim Plunkett, User Experience Lead Cristina Chumillas, Product Owner Pamela Barone, and Contribution Coordinator Gábor Hojtsy. Together, they are committed to elevating the Drupal platform by prioritizing product vision, technical excellence, and user experience.

The Drupal Association has invited leaders of Local Associations from Asia to the inaugural Local Association Leaders meet-up on June 11, 2024. This initiative aims to strengthen the success of Drupal Local Associations by directly involving community leaders committed to advancing the Drupal project within their respective regions.

To celebrate Pride Month 2024, the Drupal Association is highlighting international LGBTQ+ organizations and donating proceeds from Pride-themed apparel sales. Community members can vote for the recipient organization, and they're encouraged to share their Pride stories for potential social media features.

The Drop Times has officially become a media partner for Drupaljam 2024, set to take place on June 12, 2024, at Fabrique Utrecht. We'll offer extensive coverage of all the latest updates throughout the event. But that's not all! The Drop Times has also been named the official Media Partner for DrupalCamp Spain 2024. This event is a cornerstone gathering for the Drupal community and is scheduled to be held from October 24 to 26 at the Hotel DeLoix Aqua Center. Stay tuned for comprehensive coverage of both Drupaljam 2024 and DrupalCamp Spain 2024!

Twin Cities Drupal Camp has opened the Call for Submissions for its upcoming event on September 12-13, 2024. With rolling session acceptance, early submissions have a higher chance of selection. The event will feature general sessions lasting 45 minutes, allowing for interactive audience Q&A sessions.

Registration for DrupalCamp Asheville 2024 is now open. The camp, which will take place from July 12 to 14, 2024, offers an exciting lineup of events. The camp includes three days of training, an unconference, various sessions, and community activities, all set against the scenic backdrop of Asheville. 

In other news, MidCamp will return with new dates in 2025, from May 20 to 22, at the DePaul University Student Center in Chicago. This change aligns with an earlier DrupalCon, providing the community a great opportunity to gather in the spring. Key events leading up to MidCamp include opening the call for speakers in the fall of 2024, with final selections and the schedule announcement expected in late January or early February 2025.

It summarises the week's major updates, though we couldn't include every story in this selection. Until next week... 

To get timely updates, follow us on LinkedIn, Twitter and Facebook. Also, join us on Drupal Slack at #thedroptimes.

Thank you,
Sincerely
Kazima Abbas
Sub-editor, The Drop Times

LN Webworks: Drupal Translation Module: How to Create Multilingual Drupal Websites

Image removed.

It typically occurs when you click on a website and become disinterested in utilizing it because there are no language preferences. In addition, you will be more interested in browsing the website if you can easily navigate its user interface and select your preferred language, regardless of where you live. 

According to some reports: Multilingual websites can reach 75% more internet users and improve user experience, as 60% of global consumers prefer browsing in their native language. Businesses with such websites see a 70% average increase in conversion rates. That’s why it is preferred that you must create a multilingual website to help with website traffic and your business strategy.

How?