public function get($key, $locale = null)
    {
        if (!$locale) {
            // Use the global target language
            $locale = $this->locale();
        }

        if (string_has($key, ':')) {
            $exp = string_split($key, ':');
            // Load the translation table for this language
            $translator = $this->load($locale.'-'.$exp[0]);
            unset($exp[0]);

            $string = ArrayAccessor::make($translator, function ($a) use ($exp) {
                return $a->toString(implode('.', $exp));
            });

            // Return the translated string if it exists
            return !is_null($string) ? $string : $key;
        }

        // Load the Translator array for this language
        $translator = $this->load($locale);
        // Return the translated string if it exists
        return isset($translator[$key]) ? $translator[$key] : $key;
    }