summaryrefslogtreecommitdiffstats
path: root/web/lib/translator.inc
diff options
context:
space:
mode:
Diffstat (limited to 'web/lib/translator.inc')
-rw-r--r--web/lib/translator.inc55
1 files changed, 55 insertions, 0 deletions
diff --git a/web/lib/translator.inc b/web/lib/translator.inc
new file mode 100644
index 0000000..2d45f2a
--- /dev/null
+++ b/web/lib/translator.inc
@@ -0,0 +1,55 @@
+<?
+# this include 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.
+#
+# supporting scripts:
+# there is a supporting script, web/utils/genpopo, that will
+# parse the PHP files and create PHP include files that contain
+# a mapping for each translated language. The include files
+# have the form,
+#
+# $_t["en"]["My cat is large."] = "My cat is large.";
+# $_t["es"]["My cat is large."] = "Mi gato esta grande.";
+#
+# examples:
+# print _("%s has %s apples.", array("Bill", "5"));
+# print _("This is a %h%s%h problem!", array("<b>","major","</b>"));
+
+include_once("common_po.inc");
+
+function _($tag, $args=array()) {
+ global $_t;
+ global $LANG;
+
+ # default to English if the lang hasn't been provided
+ #
+ if (!$LANG) {
+ $lang = "en";
+ } else {
+ $lang = $LANG;
+ }
+
+ # create the translation, if it doesn't exist, highlight it
+ #
+ $translated = $_t[$lang][$tag];
+ if (!$translated) {
+ $translated = "<blink><b>_" . $tag . "_</b></blink>";
+ }
+
+ # replace escape substitutions
+ #
+ if (!empty($args)) {
+ while (list($k, $v) = each($args)) {
+ $translated = preg_replace("/\%[sh]/", $v, $translated, 1);
+ }
+ }
+ return $translated;
+}
+
+# vim: ts=2 sw=2 noet ft=php
+?>