BoltTranslate / labels

Bolt Labels extension - Translatable labels for Bolt
https://bolt.cm/
18 stars 12 forks source link

Expose functions like `twigL` to PHP side of things #46

Open xiaohutai opened 7 years ago

xiaohutai commented 7 years ago

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:

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