public function setup() { $config = array('root_locale' => 'en', 'default_locale' => 'te_ST', 'locale_dir' => VARPATH . 'locale/'); $this->i18n = I18n::instance($config); ORM::factory("incoming_translation")->where("locale", "te_ST")->delete_all(); $messages_te_ST = array(array('Hello world', 'Hallo Welt'), array(array('one' => 'One item has been added', 'other' => '%count elements have been added'), array('one' => 'Ein Element wurde hinzugefuegt.', 'other' => '%count Elemente wurden hinzugefuegt.')), array('Hello %name, how are you today?', 'Hallo %name, wie geht es Dir heute?')); foreach ($messages_te_ST as $data) { list($message, $translation) = $data; $entry = ORM::factory("incoming_translation"); $entry->key = I18n::get_message_key($message); $entry->message = serialize($message); $entry->translation = serialize($translation); $entry->locale = 'te_ST'; $entry->revision = null; $entry->save(); } }
static function process_message($message, &$cache) { if (empty($cache)) { foreach (Database::instance()->select("key")->from("incoming_translations")->where("locale", "root")->get() as $row) { $cache[$row->key] = true; } } $key = I18n::get_message_key($message); if (array_key_exists($key, $cache)) { return $cache[$key]; } $entry = ORM::factory("incoming_translation", array("key" => $key)); if (!$entry->loaded) { $entry->key = $key; $entry->message = serialize($message); $entry->locale = "root"; $entry->save(); } }
public function save() { access::verify_csrf(); user::active()->admin or access::forbidden(); $input = Input::instance(); $message = $input->post("l10n-message-source"); $translation = $input->post("l10n-edit-target"); $key = I18n::get_message_key($message); $locale = I18n::instance()->locale(); $entry = ORM::factory("outgoing_translation")->where(array("key" => $key, "locale" => $locale))->find(); if (!$entry->loaded) { $entry->key = $key; $entry->locale = $locale; $entry->message = serialize($message); $entry->base_revision = null; } $entry->translation = serialize($translation); $entry_from_incoming = ORM::factory("incoming_translation")->where(array("key" => $key, "locale" => $locale))->find(); if (!$entry_from_incoming->loaded) { $entry->base_revision = $entry_from_incoming->revision; } $entry->save(); print json_encode(new stdClass()); }