ACF select filed translation via qTranslate

1.4k Views Asked by At

Those who use these plugins know that you can translate some of ACF fields via qTranslate (text, text area, etc). But I need on my website translate also select field with options. So any advise? I was looking for other plugin options, like Polylang which offers registration of pll_register_string() in function.php. But migrating to Polylang may be will consume more time.

1

There are 1 best solutions below

1
On

I seem to recall there's a WordPress dedicated subsite here on StackExchange for such questions; maybe there you'd got an answer way sooner.

However... if I understood correctly, you are/were looking for translate text on Select fields with ACF & qTranslate, right? You're right about the "ACF qTranslate" plugin not having a solution for Select fields.

I was struggling for finding a solution for this, too (that's why I strumbled upon this question!), but I just figured out one can use the markup qTranslate uses for regular text, but inside Select text options. Not an elegant solution, though, but it worked for me and I hope it works too for you.

For example, say you have the following options on the "Choices" field on your ACF Select setup (remember they go on the "Value : Label" format - the latter is what you're going to see on frontend):

apples : Apples
oranges : Oranges
bananas : Bananas
lemons : Lemons

And say you want to translate them to spanish (my native language, sorry for my bad english btw). As qTranslate follows ISO 639-1 standard for its markup, you'd need en code for the current text, given in english, and es code for its spanish translation.

In order to give qTranslate a multilingual string, you need to separate each portion of each language with a prefix telling its language - that goes into squared brackets and a semicolon before its code:

[:en]Text[:es]Texto[:fr]Texte

As you'd need to translate labels, just the second column of your Select text options (text after semicolon) is what you need to change. So that would become

apples : [:en]Apples[:es]Manzanas
oranges : [:en]Oranges[:es]Naranjas
bananas : [:en]Bananas[:es]Bananos
lemons : [:en]Lemons[:es]Limones

Save it, and don't forget to update the pages/blogs/whatever using those custom fields, 'cause they changed and they're going to lose their saved values.

Hope that helps (you or whoever needs this)!