I have had a friend look at the setup I have, he has gave me some feedback which I will post below.
Foreword: I have no background with PHP and WordPress, the following solutions are likely to be a complete hack but up to a certain point it worked…
The theme being used is the Inkthemes – Bizway theme with the Polylang plugin.
The primary task is to make 8 fields on the home page modifiable based on the language (so that the user can change the values in the WordPress Dashboard, under Settings > Languages > Strings translation). To make the fields available, I added the following method calls to the end of the themes functions.php file:
pll_register_string(‘Main Title’, ‘Main Title’);
pll_register_string(‘Secondary Title’, ‘Secondary Title’);
pll_register_string(‘Feature One Title’, ‘Feature One Title’);
pll_register_string(‘Feature One Description’, ‘Feature One Description’);
pll_register_string(‘Feature Two Title’, ‘Feature Two Title’);
pll_register_string(‘Feature Two Description’, ‘Feature Two Description’);
pll_register_string(‘Feature Three Title’, ‘Feature Three Title’);
pll_register_string(‘Feature Three Description’, ‘Feature Three Description’);
If you have any suggestions as to where these calls should be placed instead please let me know. After uploading the altered functions.php file, I checked the ‘Strings translation’ section and all of the fields are available.
After confirming the fields were available, I then modified the page template (front-page.php) so that the values in the ‘Strings translation’ section of the site will appear on the page based on the selected language, The code looks like this:
<h1><?php echo stripslashes (pll__(‘Feature One Title’)); ?></h1>
The above example works as expected, this is the case for 6 out of 8 of the registered strings. The two that fail to work are ‘Main Title’ and ‘Secondary Title’. The code for those looks like the following (exactly the same but only different parameters):
<h1><?php echo stripslashes (pll__(‘Secondary Title’)); ?></h1>
What happens in this case is that ‘Secondary Title’ gets displayed in the browser, ie the parameter passed in. I can change that to anything (eg Secondary Titleaaaa) and that’s what gets displayed. This leads me to believe that the pll__ method call is unable to find the two fields I indicated above, despite those fields appearing in the ‘Strings transformation’ page.
I have tried many variations on the names since I thought the names might have been too generic and there was a conflict somewhere; I’ve even tried random strings of characters for the name but to no avail. I’ve tried switching around the pll_register_string() calls and I’ve tried commenting them all out apart from the Main Title and Secondary Title ones, this is having no effect.