mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
New behaviour for translations. Function takes variable number of arguments.
The old string,array usage is still supported however. (for now) Signed-off-by: Loui Chang <louipc.ist@gmail.com> Signed-off-by: Simo Leone <simo@archlinux.org>
This commit is contained in:
parent
04dae8d94f
commit
ba9eda5503
1 changed files with 26 additions and 10 deletions
|
@ -17,31 +17,47 @@
|
||||||
# $_t["es"]["My cat is large."] = "Mi gato esta grande.";
|
# $_t["es"]["My cat is large."] = "Mi gato esta grande.";
|
||||||
#
|
#
|
||||||
# examples:
|
# examples:
|
||||||
# print __("%s has %s apples.", array("Bill", "5"));
|
# print __("%s has %s apples.", "Bill", "5");
|
||||||
# print __("This is a %h%s%h problem!", array("<b>","major","</b>"));
|
# print __("This is a %h%s%h problem!", "<b>","major","</b>");
|
||||||
|
#
|
||||||
|
# deprecated usage:
|
||||||
|
# print __("%s has %s apples.", array("Bill", "5"));
|
||||||
|
|
||||||
include_once("common_po.inc");
|
include_once("common_po.inc");
|
||||||
|
|
||||||
|
|
||||||
function __($tag, $args=array()) {
|
function __() {
|
||||||
global $_t;
|
global $_t;
|
||||||
global $LANG;
|
global $LANG;
|
||||||
|
|
||||||
# create the translation, if it doesn't exist, highlight it
|
# create the translation, if it doesn't exist, highlight it
|
||||||
#
|
#
|
||||||
|
$args = func_get_args();
|
||||||
|
|
||||||
|
# First argument is always string to be translated
|
||||||
|
$tag = $args[0];
|
||||||
|
|
||||||
$translated = $_t[$LANG][$tag];
|
$translated = $_t[$LANG][$tag];
|
||||||
if (!$translated) {
|
if (empty($translated)) {
|
||||||
# if it's a supported language, but there isn't a translation,
|
# if it's a supported language, but there isn't a translation,
|
||||||
# alert the visitor to the missing translation.
|
# alert the visitor to the missing translation.
|
||||||
#
|
#
|
||||||
$translated = "<font color=\"red\"><b>_" . $tag . "_</b></font>";
|
$translated = "<b style=\"color: red\">_${tag}_</b>";
|
||||||
}
|
}
|
||||||
|
|
||||||
# replace escape substitutions
|
# This condition is to reorganise the arguments in case of
|
||||||
#
|
# deprecated usage. __("string", array("string","string"))
|
||||||
if (!empty($args)) {
|
if (!empty($args[1]) && is_array($args[1])) {
|
||||||
while (list($k, $v) = each($args)) {
|
array_unshift($args[1], $tag);
|
||||||
$translated = preg_replace("/\%[sh]/", $v, $translated, 1);
|
$args = $args[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
$num_args = sizeof($args);
|
||||||
|
|
||||||
|
# Subsequent arguments are strings to be formatted
|
||||||
|
if ( $num_args > 1 ) {
|
||||||
|
for ($i = 1; $i < $num_args; $i++) {
|
||||||
|
$translated = preg_replace("/\%[sh]/", $args[$i], $translated, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return $translated;
|
return $translated;
|
||||||
|
|
Loading…
Add table
Reference in a new issue