We ran into the same issue with Transcribe and Playa fields. We had a 'staff' channel (amongst many others) so we had lots of identically named entries for each person in each language (4 x John Smiths, etc), so it was tricky trying to pick the correct language 'John Smith' in a Playa field.
First of all, the ideal solution would be if there was a Transcribe extension that had the option to automatically filter the Playa/Relationship entries by language, or else add a language column or label to these fields so you can easily choose the correct language entry. I think that's a feature request though.
In the meantime, Tom from EE Harbour suggested the following workaround to us:
Most people end up adding the language prefix to the title of the entry. From there, they create a "Display Title" field that they use in the template to actually display the title without the language prefix.
This is probably the simplest workround and the one that we'd recommend if we did this again. At the time though, we weren't keen on using the Title field in this way, and having to create a Display Title field. It seemed like extra work and extra copying and pasting for the client. It would have been the most simple solution for us to implement though.
So rather than use the above workaround, we created a 'Language' category group, and created a category for each language that's being used on the site. We then used the Category Field add-on to add a 'Language Helper' custom field (showing a single option category drop down) to each channel that appears in Playa fields:
Then when the client is using a Playa field, they can use the category filters to filter the entries by language:
The client wasn't 100% happy with having to manually set this additional dropdown field for every entry, so we added the following JS to the control panel (adding it to the Custom Javascript field within the CP CSS & JS add-on) to make this field automatically populate itself based on the Transcribe Language Association dropdown (and we made sure our category names exactly matched the labels in this dropdown).
In the following code, field ID's 95-106 are all the 'Language Helper' custom fields we added to the various channels on the site, so you might not need so many if you have a smaller site).
$(window).on('load', function() {
var transcribeModule = (function() {
var $hold_field = $('#sub_hold_field_transcribe__transcribe_language').find('select');
if(!$hold_field.length) {
return false;
}
var $target_field = $('#hold_field_94.publish_category_field, #hold_field_95.publish_category_field, #hold_field_96.publish_category_field, #hold_field_97.publish_category_field, #hold_field_98.publish_category_field, #hold_field_99.publish_category_field, #hold_field_100.publish_category_field, #hold_field_101.publish_category_field, #hold_field_102.publish_category_field, #hold_field_103.publish_category_field, #hold_field_104.publish_category_field, #hold_field_105.publish_category_field, #hold_field_106.publish_category_field').find('select.category_field_select');
if(!$target_field.length) {
return false;
}
function mirrorFields() {
var selected_text = $hold_field.find(':selected').text();
$target_field.find('option').each(function() {
var $this = $(this);
$this.removeAttr('selected');
if($this.text() == selected_text) {
$this.attr('selected', true);
}
});
}
mirrorFields();
$hold_field.on('change', function() {
mirrorFields();
});
}());
});
So all in all, there's no ideal solution that we know of here, but hopefully, one these two workaround are of use to you.