summaryrefslogtreecommitdiffstats
path: root/web/lib/translator.inc.php
blob: 44c87bda11bff4db99417aefceec6bf59d63acad (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
set_include_path(get_include_path() . PATH_SEPARATOR . '../lib' . PATH_SEPARATOR . '../lang');

# This file provides support for i18n

# usage:
#   use the __() function for returning translated strings of
#   text.  The string can contain escape codes %h for HTML
#   and %s for regular text.
#
# examples:
#	print __("%s has %s apples.", "Bill", "5");
#	print __("This is a %hmajor%h problem!", "<b>", "</b>");

include_once('config.inc.php');
include_once('gettext.php');
include_once('streams.php');

global $streamer, $l10n;

function __() {
	global $LANG;
	global $l10n;

	# Create the translation.
	$args = func_get_args();

	# First argument is always string to be translated
	$tag = $args[0];

	# Translate using gettext_reader initialized before.
	$translated = $l10n->translate($tag);
	$translated = htmlspecialchars($translated, ENT_QUOTES);

	$num_args = sizeof($args);

	# Subsequent arguments are strings to be formatted
	#
	# TODO: make this more robust.
	# '%%' should translate to a literal '%'

	if ( $num_args > 1 ) {
		for ($i = 1; $i < $num_args; $i++) {
			$translated = preg_replace("/\%[sh]/", $args[$i], $translated, 1);
		}
	}

	return $translated;
}