In my opinion, the issue is coming from the theme.
esc_html__('Recent News', NULL)
Should not pass NULL, but a string with the text domain.
You can confirm this with the following test:
❌ Please make a full website backup before proceeding ❌
Temporarily switch to a default theme (e.g., Twenty Twenty-Four) and keep WPML String Translation enabled.
If the site + /wp-json/ works with the default theme, the issue is strongly tied to Oceanica / oceanica-engine.
Contact the theme/plugin author and report that the widget calls esc_html__( 'Recent News', NULL ) (invalid domain), which breaks when WPML hooks gettext.
You can also fix it yourself:
In wp-content/plugins/oceanica-engine/widgets/Items/Recent_News.php, locate the call esc_html__('Recent News', NULL).
Replace NULL with the correct text domain string used by Oceanica/oceanica-engine (for example, a domain like oceanica-engine if that’s what they load), or remove the domain argument, so WordPress falls back to 'default'.
Note: this may be overwritten by future updates; the “proper” fix is from the theme/plugin author.
The latest version of the theme is 2.5, and as far as I can see your site uses 2.4, so before anything, I suggest updating the theme. ❌ Please make a full website backup before proceeding ❌
I have update the theme to the latest version. This did not solve the fatal error in string translations. I have not created a ticket with Motopress for this. Waiting now for a reply.
Motopress is not able to solve the fatal error so far. All their suggestions do not work. I deleted the Recent_News translations and localilized again only the one with domain oceanica. Translated this one, but the issue is still there.
Waiting again for new guidance from them.
I would like to request temporary access (wp-admin and FTP) to your site to take a better look at the issue.
It would be better to a testing site where the issue is replicated.
The information you will enter is private which means only you and I can see and have access to it.
Maybe I'll need to replicate your site locally. For this, I'll need to temporarily install a plugin called “Duplicator” or "All in One WP Migration" on your site.
This will allow me to create a copy of your site and your content.
Once the problem is resolved I will delete the local site.
**IMPORTANT**
- Please make a backup of site files and database before providing us access.
- If you do not see the wp-admin/FTP fields this means your post & website login details will be made PUBLIC. DO NOT post your website details unless you see the required wp-admin/FTP fields.