<?php

namespace Org\Wplake\Advanced_Views\Optional_Vendors\Illuminate\Support\Traits;

use Org\Wplake\Advanced_Views\Optional_Vendors\Illuminate\Container\Container;
trait Localizable
{
    /**
     * Run the callback with the given locale.
     *
     * @param  string  $locale
     * @param  \Closure  $callback
     * @return mixed
     */
    public function withLocale($locale, $callback)
    {
        if (!$locale) {
            return $callback();
        }
        $app = Container::getInstance();
        $original = $app->getLocale();
        try {
            $app->setLocale($locale);
            return $callback();
        } finally {
            $app->setLocale($original);
        }
    }
}
