protected function get($locale, $file, $key)
	{
		// load it
		$this->load($locale, $file);

		if (array_key_exists($key, $this->translations[$locale][$file]) === false)
		{
			throw new TranslationKeyNotFound($key, $this->getPath(), $locale, $file);
		}

		$result = $this->translations[$locale][$file][$key];

		if (is_string($result) === false)
		{
			throw new TranslationKeyIsNotAString($result, $key, $this->getPath(), $locale, $file);
		}

		return $result;
	}