labels icon indicating copy to clipboard operation
labels copied to clipboard

Expose functions like `twigL` to PHP side of things

Open xiaohutai opened this issue 7 years ago • 0 comments

Move twigL functions into a separate Service class and inject it as app['labels.service'] (or add the functions to the app['labels'] class), then have helper functions exposed:

  • translate($label, $lang = false) exposed for other extensions to use.
  • setCurrentLanguage
  • etc.

Currently, I'm doing the following in my extension:

$labels = $app['labels']->getLabels();
$lang   = mb_strtolower($request->query->get('_locale', 'nl'));
$label  = $app['labels']->cleanLabel('MUH LABEL');
$result = $label;

if (isset($labels[$label][$lang]) && !empty($labels[$label][$lang])) {
    $result = $labels[$label][$lang];
}
elseif ($app['labels.config']->isAddMissing() && empty($labels[$label])) {
    $app['labels']->addLabel($label);
}

// replace 'MUH LABEL' with the string you need to translate
// use $result as the translated label

xiaohutai avatar Jul 13 '17 14:07 xiaohutai