mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-06-05 22:09:38 +02:00
Correzioni minori e aggiornamento a Laravel 9
This commit is contained in:
124
app/LaravelGettext/Support/helpers.php
Normal file
124
app/LaravelGettext/Support/helpers.php
Normal file
@@ -0,0 +1,124 @@
|
||||
<?php
|
||||
|
||||
use App\LaravelGettext\LaravelGettext;
|
||||
|
||||
if (!function_exists('_i')) {
|
||||
/**
|
||||
* Translate a formatted string based on printf formats
|
||||
* Can be use an array on args or use the number of the arguments
|
||||
*
|
||||
* @param string $message the message to translate
|
||||
* @param array|mixed $args the tokens values used inside the $message
|
||||
*
|
||||
* @return string the message translated and formatted
|
||||
*/
|
||||
function _i($message, $args = null)
|
||||
{
|
||||
|
||||
$translator = app(LaravelGettext::class);
|
||||
$translation = $translator->translate($message);
|
||||
|
||||
if (strlen($translation)) {
|
||||
if (isset($args)) {
|
||||
if (!is_array($args)) {
|
||||
$args = array_slice(func_get_args(), 1);
|
||||
}
|
||||
$translation = vsprintf($translation, $args);
|
||||
}
|
||||
|
||||
return $translation;
|
||||
}
|
||||
|
||||
/**
|
||||
* If translations are missing returns
|
||||
* the original message.
|
||||
*
|
||||
* @see https://github.com/symfony/symfony/issues/13483
|
||||
*/
|
||||
return $message;
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('__')) {
|
||||
/**
|
||||
* Translate a formatted string based on printf formats
|
||||
* Can be use an array on args or use the number of the arguments
|
||||
*
|
||||
* @param string $message the message to translate
|
||||
* @param array|mixed $args the tokens values used inside the $message
|
||||
*
|
||||
* @return string the message translated and formatted
|
||||
*/
|
||||
function __($message, $args = null)
|
||||
{
|
||||
return _i($message, $args);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('_')) {
|
||||
/**
|
||||
* Generic translation function
|
||||
*
|
||||
* @param $message
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
function _($message, $args = null)
|
||||
{
|
||||
return _i($message, $args);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('_n')) {
|
||||
/**
|
||||
* Translate a formatted pluralized string based on printf formats
|
||||
* Can be use an array on args or use the number of the arguments
|
||||
*
|
||||
* @param string $singular the singular message to be translated
|
||||
* @param string $plural the plural message to be translated if the $count > 1
|
||||
* @param int $count the number of occurrence to be used to pluralize the $singular
|
||||
* @param array|mixed $args the tokens values used inside $singular or $plural
|
||||
*
|
||||
* @return string the message translated, pluralized and formatted
|
||||
*/
|
||||
function _n($singular, $plural, $count, $args = null)
|
||||
{
|
||||
$translator = app(LaravelGettext::class);
|
||||
$message = $translator->translatePlural($singular, $plural, $count);
|
||||
|
||||
if (isset($args) && !is_array($args)) {
|
||||
$args = array_slice(func_get_args(), 3);
|
||||
}
|
||||
$message = vsprintf($message, $args);
|
||||
|
||||
return $message;
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('_s')) {
|
||||
/**
|
||||
* Translate a formatted pluralized string based on printf formats mixed with the Symfony format
|
||||
* Can be use an array on args or use the number of the arguments
|
||||
*
|
||||
* <b>Only works if Symfony is the used backend</b>
|
||||
*
|
||||
* @param string $message The one line message containing the different pluralization separated by pipes
|
||||
* See Symfony translation documentation
|
||||
* @param int $count the number of occurrence to be used to pluralize the $singular
|
||||
* @param array|mixed $args the tokens values used inside $singular or $plural
|
||||
*
|
||||
* @return string the message translated, pluralized and formatted
|
||||
*/
|
||||
function _s($message, $count, $args = null)
|
||||
{
|
||||
$translator = app(LaravelGettext::class);
|
||||
$message = $translator->getTranslator()->translatePluralInline($message, $count);
|
||||
|
||||
if (isset($args) && !is_array($args)) {
|
||||
$args = array_slice(func_get_args(), 3);
|
||||
}
|
||||
$message = vsprintf($message, $args);
|
||||
|
||||
return $message;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user