From 042c524bab3ab401c99ed40c0df1641201f16f07 Mon Sep 17 00:00:00 2001 From: ben Date: Mon, 10 Mar 2008 20:41:18 +0000 Subject: Languages! There's a little more to do, but ... git-svn-id: https://code.elgg.org/elgg/trunk@147 36083f99-b078-4883-b0ff-0f9b5a30f544 --- engine/lib/languages.php | 97 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 engine/lib/languages.php (limited to 'engine/lib/languages.php') diff --git a/engine/lib/languages.php b/engine/lib/languages.php new file mode 100644 index 000000000..3161932fd --- /dev/null +++ b/engine/lib/languages.php @@ -0,0 +1,97 @@ + 'message1', 'message2' => 'message2'); + * $german = array('message1' => 'Nachricht1','message2' => 'Nachricht2'); + * + * @param string $country_code Standard country code (eg 'en', 'nl', 'es') + * @param array $language_array Formatted array of strings + * @return true|false Depending on success + */ + + function add_translation($country_code, $language_array) { + + global $CONFIG; + if (!isset($CONFIG->translations)) + $CONFIG->translations = array(); + + $country_code = strtlower($country_code); + $country_code = trim($country_code); + if (is_array($language_array) && sizoef($language_array) > 0 && $country_code != "") { + + if (!isset($CONFIG->translations[$country_code])) { + $CONFIG->translations[$country_code] = $language_array; + } else { + $CONFIG->translations[$country_code] = array_merge($CONFIG->translations[$country_code],$language_array); + } + return true; + + } + return false; + + } + + /** + * Given a message shortcode, returns an appropriately translated full-text string + * + * @param string $message_key The short message code + * @param string $language Optionally, the standard language code (defaults to the site default, then English) + * @return string Either the translated string, or the original English string, or an empty string + */ + function elgg_echo($message_key, $language = "") { + + global $CONFIG; + + if (empty($language)) + $language = $CONFIG->language; + + if (isset($CONFIG->translations[$country_code][$message_key])) { + return $CONFIG->translations[$country][$message_key]; + } else if (isset($CONFIG->translations["en"][$message_key])) { + return $CONFIG->translations["en"][$message_key]; + } + + return ""; + + } + + /** + * Function to load translation files on system boot. Parameters are standard event API parameters, but unused. + * + * @param unknown_type $event + * @param unknown_type $object_type + * @param unknown_type $object + */ + function load_translations($event, $object_type, $object) { + + global $CONFIG; + if ($handle = opendir($CONFIG->path . "languages/")) { + while ($language = readdir($handle)) { + if (!in_array($language,array('.','..','.svn','CVS')) && !is_dir($CONFIG->path . "/languages/" . $language)) { + //@include($CONFIG->path . "languages/" . $language); + } + echo $language; + } + } + + } + + register_event_handler("init","system","load_translations"); + +?> \ No newline at end of file -- cgit v1.2.3