src/Helpers/translator_functions.php
<?php
//
// Inspired by https://github.com/oscarotero/Gettext/blob/master/src/translator_functions.php
//
use Tio\Laravel\TranslationIO;
/**
* Returns the translation of a string.
*
* @param string $original
*
* @return string
*/
function t($original)
{
$text = TranslationIO::$current->gettext($original);
if (func_num_args() === 1) {
return $text;
}
$args = array_slice(func_get_args(), 1);
return is_array($args[0]) ? strtr($text, $args[0]) : vsprintf($text, $args);
}
/**
* Noop, marks the string for translation but returns it unchanged.
*
* @param string $original
*
* @return string
*/
function noop($original)
{
return $original;
}
/**
* Returns the singular/plural translation of a string.
*
* @param string $original
* @param string $plural
* @param string $value
*
* @return string
*/
function n($original, $plural, $value)
{
$text = TranslationIO::$current->ngettext($original, $plural, $value);
if (func_num_args() === 3) {
return $text;
}
$args = array_slice(func_get_args(), 3);
return is_array($args[0]) ? strtr($text, $args[0]) : vsprintf($text, $args);
}
/**
* Returns the translation of a string in a specific context.
*
* @param string $context
* @param string $original
*
* @return string
*/
function p($context, $original)
{
$text = TranslationIO::$current->pgettext($context, $original);
if (func_num_args() === 2) {
return $text;
}
$args = array_slice(func_get_args(), 2);
return is_array($args[0]) ? strtr($text, $args[0]) : vsprintf($text, $args);
}
/**
* Returns the singular/plural translation of a string in a specific context.
*
* @param string $context
* @param string $original
* @param string $plural
* @param string $value
*
* @return string
*/
function np($context, $original, $plural, $value)
{
$text = TranslationIO::$current->npgettext($context, $original, $plural, $value);
if (func_num_args() === 4) {
return $text;
}
$args = array_slice(func_get_args(), 4);
return is_array($args[0]) ? strtr($text, $args[0]) : vsprintf($text, $args);
}