aboutsummaryrefslogtreecommitdiff
path: root/mod/translation_editor/start.php
diff options
context:
space:
mode:
Diffstat (limited to 'mod/translation_editor/start.php')
-rw-r--r--mod/translation_editor/start.php139
1 files changed, 139 insertions, 0 deletions
diff --git a/mod/translation_editor/start.php b/mod/translation_editor/start.php
new file mode 100644
index 000000000..a85a214c8
--- /dev/null
+++ b/mod/translation_editor/start.php
@@ -0,0 +1,139 @@
+<?php
+
+ define("TRANSLATION_EDITOR_DISABLED_LANGUAGE", "disabled_languages");
+
+ require_once(dirname(__FILE__) . "/lib/functions.php");
+ require_once(dirname(__FILE__) . "/lib/hooks.php");
+ require_once(dirname(__FILE__) . "/lib/events.php");
+
+ function translation_editor_init(){
+ global $CONFIG;
+
+ elgg_extend_view("css/elgg", "translation_editor/css/site");
+ elgg_extend_view("js/elgg", "translation_editor/js/site");
+
+ elgg_register_page_handler('translation_editor', 'translation_editor_page_handler');
+
+ // add to site menu
+ if(translation_editor_is_translation_editor(elgg_get_logged_in_user_guid())){
+ $menu_item = new ElggMenuItem("translation_editor", elgg_echo('translation_editor:menu:title'), "translation_editor");
+ elgg_register_menu_item("site", $menu_item);
+ }
+
+ if (elgg_is_admin_logged_in()){
+ // add to admin menu
+ elgg_register_menu_item('page', array(
+ 'name' => "translation_editor",
+ 'href' => "translation_editor",
+ 'text' => elgg_echo("translation_editor:menu:title"),
+ 'context' => "admin",
+ 'parent_name' => "appearance",
+ 'section' => "configure"
+ ));
+ }
+
+ elgg_register_plugin_hook_handler('register', 'menu:user_hover', 'translation_editor_user_hover_menu');
+
+ }
+
+ function translation_editor_page_handler($page){
+
+ switch($page[0]){
+ case "search":
+ $q = get_input("translation_editor_search");
+ if(!empty($q)){
+ include(dirname(__FILE__) . "/pages/search.php");
+ break;
+ }
+ default:
+ if(!empty($page[0])){
+ set_input("current_language", $page[0]);
+ if(!empty($page[1])){
+ set_input("plugin", $page[1]);
+ }
+
+ include(dirname(__FILE__) . "/pages/index.php");
+ } else {
+ $current_language = get_current_language();
+ forward("translation_editor/" . $current_language);
+ }
+ break;
+ }
+
+ return true;
+ }
+
+ function translation_editor_plugins_boot_event(){
+ global $CONFIG;
+
+ run_function_once("translation_editor_version_053");
+
+ // add the custom_keys_locations to language paths
+ $custom_keys_path = $CONFIG->dataroot . "translation_editor" . DIRECTORY_SEPARATOR . "custom_keys" . DIRECTORY_SEPARATOR;
+ if(is_dir($custom_keys_path)){
+ $CONFIG->language_paths[$custom_keys_path] = true;
+ }
+
+ // force creation of static to prevent reload of unwanted translations
+ reload_all_translations();
+
+ translation_editor_load_custom_languages();
+
+ if(elgg_get_context() != "translation_editor"){
+ // remove disabled languages
+ translation_editor_unregister_translations();
+ }
+
+ // load custom translations
+ $user_language = get_current_language();
+ $elgg_default_language = "en";
+
+ $load_languages = array($user_language, $elgg_default_language);
+ $load_languages = array_unique($load_languages);
+
+ $disabled_languages = translation_editor_get_disabled_languages();
+
+ foreach($load_languages as $language){
+ if(empty($disabled_languages) || !in_array($language, $disabled_languages)){
+ // add custom translations
+ translation_editor_load_translations($language);
+ }
+ }
+ }
+
+ function translation_editor_version_053(){
+ if($languages = get_installed_translations()){
+ foreach($languages as $lang => $name){
+ translation_editor_merge_translations($lang);
+ }
+ }
+ }
+
+ // Plugin init
+ elgg_register_event_handler('plugins_boot', 'system', 'translation_editor_plugins_boot_event', 50); // before normal execution to prevent conflicts with plugins like language_selector
+ elgg_register_event_handler('init', 'system', 'translation_editor_init');
+
+ // register hooks
+ elgg_register_plugin_hook_handler("action", "admin/plugins/activate", "translation_editor_actions_hook");
+ elgg_register_plugin_hook_handler("action", "admin/plugins/deactivate", "translation_editor_actions_hook");
+ elgg_register_plugin_hook_handler("action", "admin/plugins/activate_all", "translation_editor_actions_hook");
+ elgg_register_plugin_hook_handler("action", "admin/plugins/deactivate_all", "translation_editor_actions_hook");
+ elgg_register_plugin_hook_handler("action", "admin/plugins/set_priority", "translation_editor_actions_hook");
+
+ // register events
+ elgg_register_event_handler("upgrade", "system", "translation_editor_upgrade_event");
+
+ // Register actions
+ elgg_register_action("translation_editor/translate", dirname(__FILE__) . "/actions/translate.php");
+ elgg_register_action("translation_editor/translate_search", dirname(__FILE__) . "/actions/translate_search.php");
+ elgg_register_action("translation_editor/merge", dirname(__FILE__) . "/actions/merge.php");
+
+ // Admin only actions
+ elgg_register_action("translation_editor/make_translation_editor", dirname(__FILE__) . "/actions/make_translation_editor.php", "admin");
+ elgg_register_action("translation_editor/unmake_translation_editor", dirname(__FILE__) . "/actions/unmake_translation_editor.php", "admin");
+ elgg_register_action("translation_editor/delete", dirname(__FILE__) . "/actions/delete.php", "admin");
+ elgg_register_action("translation_editor/disable_languages", dirname(__FILE__) . "/actions/disable_languages.php", "admin");
+ elgg_register_action("translation_editor/add_language", dirname(__FILE__) . "/actions/add_language.php", "admin");
+ elgg_register_action("translation_editor/add_custom_key", dirname(__FILE__) . "/actions/add_custom_key.php", "admin");
+ elgg_register_action("translation_editor/delete_language", dirname(__FILE__) . "/actions/delete_language.php", "admin");
+ \ No newline at end of file