Home › Forums › General Issues › Wrap labels and descriptions with __() in the PHP Export file
Hi there, first of all – awesome plugin. Quick quesion: when I do a php export for my settings, is there a way to wrap every field label and description in the outputted php code with a __() for easier translation with POEDIT?
Weee! I was about to crate post for this topic and now I fount it on To-do.. sweeet!
Code that I’m using right now:
// add the __() function to specific strings for translation in theme
$html = preg_replace("/'title'(.*?)('.+?',)/", "'title'$1__($2 'acf_export'),", $html);
$html = preg_replace("/'label'(.*?)('.+?',)/", "'label'$1__($2 'acf_export'),", $html);
$html = preg_replace("/'instructions'(.*?)('.+?',)/", "'instructions'$1__($2 'acf_export'),", $html);
$html = preg_replace("/'button_label'(.*?)('.+?',)/", "'button_label'$1__($2 'acf_export'),", $html);
$html = preg_replace("/'placeholder'(.*?)('.+?',)/", "'placeholder'$1__($2 'acf_export'),", $html);
$html = preg_replace("/'message'(.*?)('.+?',)/", "'message'$1__($2 'acf_export'),", $html);
$html = preg_replace("/'prepend'(.*?)('.+?',)/", "'prepend'$1__($2 'acf_export'),", $html);
$html = preg_replace("/'append'(.*?)('.+?',)/", "'append'$1__($2 'acf_export'),", $html);
The ‘acf_export’ helps out to find and replace it with theme text domain.
This helps out, but could make some improvements and find a way to add translation functions to choices.
Ok I created a new code:
// add the __() functions for theme translations (by BaLu.LT)
$ignore_keys = array(
'id',
'key',
'name',
'type',
'field',
'operator',
'value',
'allorany',
'formatting',
'position',
'layout',
'save_format',
'preview_size',
'library',
'param',
'toolbar',
'media_upload',
'date_format',
'display_format',
'return_format',
'taxonomy',
'field_type',
'default_value'
);
$ikeys = "";
foreach ( $ignore_keys as &$ikey ) $ikeys .= "(?<!\'" . $ikey . ")";
$regular_expression = "/((?<=" . $ikeys . "\' => )\'.+\'(?=,))/";
$html = preg_replace( $regular_expression, "__($1, 'acf_export')", $html );
Few things to mention:
No translation support for ‘default_value’ using it as default text (alternative: placeholder)
No translation support for choices with identically matched keys to any of $ignore_keys or if it’s an integer
The topic ‘Wrap labels and descriptions with __() in the PHP Export file’ is closed to new replies.
Welcome to the Advanced Custom Fields community forum.
Browse through ideas, snippets of code, questions and answers between fellow ACF users
Helping others is a great way to earn karma, gain badges and help ACF development!
We use cookies to offer you a better browsing experience, analyze site traffic and personalize content. Read about how we use cookies and how you can control them in our Privacy Policy. If you continue to use this site, you consent to our use of cookies.