while ($p = dba::fetch($addons)) {
$name = $p['name'];
if (file_exists("addon/$name/lang/$lang/strings.php")) {
- include("addon/$name/lang/$lang/strings.php");
+ include "addon/$name/lang/$lang/strings.php";
}
}
if (file_exists("view/lang/$lang/strings.php")) {
- include("view/lang/$lang/strings.php");
+ include "view/lang/$lang/strings.php";
}
}
* string interpolation (sprintf) with additional optional arguments.
*
* Usages:
- * - t('This is an example')
- * - t('URL %s returned no result', $url)
- * - t('Current version: %s, new version: %s', $current_version, $new_version)
+ * - L10n::t('This is an example')
+ * - L10n::t('URL %s returned no result', $url)
+ * - L10n::t('Current version: %s, new version: %s', $current_version, $new_version)
*
* @param string $s
+ * @param array $vars Variables to interpolate in the translation string
* @return string
*/
- public static function t($s)
+ public static function t($s, ...$vars)
{
$a = get_app();
+ if (empty($s)) {
+ return '';
+ }
+
if (x($a->strings, $s)) {
$t = $a->strings[$s];
$s = is_array($t) ? $t[0] : $t;
}
- if (func_num_args() > 1) {
- $args = array_slice(func_get_args(), 1);
- $s = @vsprintf($s, $args);
+
+ if (count($vars) > 0) {
+ $s = sprintf($s, ...$vars);
}
return $s;
* is performed using the count as parameter.
*
* Usages:
- * - tt('Like', 'Likes', $count)
- * - tt("%s user deleted", "%s users deleted", count($users))
+ * - L10n::tt('Like', 'Likes', $count)
+ * - L10n::tt("%s user deleted", "%s users deleted", count($users))
*
* @global type $lang
* @param string $singular
if (is_array($t)) {
$plural_function = 'string_plural_select_' . str_replace('-', '_', $lang);
if (function_exists($plural_function)) {
- $plural_function = 'stringPluralSelectDefault';
+ $i = $plural_function($count);
+ } else {
+ $i = self::stringPluralSelectDefault($count);
}
- $i = $plural_function($count);
$s = $t[$i];
} else {
$s = $t;