summaryrefslogtreecommitdiffstats
path: root/web/lib/translator.inc.php
diff options
context:
space:
mode:
Diffstat (limited to 'web/lib/translator.inc.php')
-rw-r--r--web/lib/translator.inc.php50
1 files changed, 50 insertions, 0 deletions
diff --git a/web/lib/translator.inc.php b/web/lib/translator.inc.php
new file mode 100644
index 0000000..44c87bd
--- /dev/null
+++ b/web/lib/translator.inc.php
@@ -0,0 +1,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;
+}
+