diff options
Diffstat (limited to 'views/default')
-rw-r--r-- | views/default/core/settings/account/language.php | 42 | ||||
-rw-r--r-- | views/default/plugins/translation_editor/settings.php | 20 | ||||
-rw-r--r-- | views/default/translation_editor/add_custom_key.php | 21 | ||||
-rw-r--r-- | views/default/translation_editor/add_language.php | 167 | ||||
-rw-r--r-- | views/default/translation_editor/css/site.php | 99 | ||||
-rw-r--r-- | views/default/translation_editor/js/site.php | 41 | ||||
-rw-r--r-- | views/default/translation_editor/language_selector.php | 88 | ||||
-rw-r--r-- | views/default/translation_editor/plugin_edit.php | 147 | ||||
-rw-r--r-- | views/default/translation_editor/plugin_list.php | 84 | ||||
-rw-r--r-- | views/default/translation_editor/search.php | 43 | ||||
-rw-r--r-- | views/default/translation_editor/search_results.php | 78 |
11 files changed, 830 insertions, 0 deletions
diff --git a/views/default/core/settings/account/language.php b/views/default/core/settings/account/language.php new file mode 100644 index 000000000..225bccc97 --- /dev/null +++ b/views/default/core/settings/account/language.php @@ -0,0 +1,42 @@ +<?php
+/**
+ * Provide a way of setting your language prefs
+ *
+ * @package Elgg
+ * @subpackage Core
+ */
+
+if ($user = elgg_get_page_owner_entity()) {
+ translation_editor_unregister_translations();
+
+ $translations = get_installed_translations();
+
+ $value = $CONFIG->language;
+ if (!empty($user->language)) {
+ $value = $user->language;
+ }
+
+ if(count($translations ) > 1){
+ ?>
+ <div class="elgg-module elgg-module-info">
+ <div class="elgg-head">
+ <h3><?php echo elgg_echo('user:set:language'); ?></h3>
+ </div>
+ <div class="elgg-body">
+ <p>
+ <?php echo elgg_echo('user:language:label'); ?>:
+ <?php
+ echo elgg_view("input/dropdown", array(
+ 'name' => 'language',
+ 'value' => $value,
+ 'options_values' => $translations
+ ));
+ ?>
+ </p>
+ </div>
+ </div>
+ <?php
+ } else {
+ echo elgg_view("input/hidden", array("name" => "language", "value" => $value));
+ }
+}
\ No newline at end of file diff --git a/views/default/plugins/translation_editor/settings.php b/views/default/plugins/translation_editor/settings.php new file mode 100644 index 000000000..4dfe4b7c9 --- /dev/null +++ b/views/default/plugins/translation_editor/settings.php @@ -0,0 +1,20 @@ +<?php +/** + * Translation Editor plugin settings + */ + +$everybody_translate_string = elgg_echo('translation_editor:settings:everybody_translate'); +$everybody_translate_view = elgg_view('input/dropdown', array( + 'name' => 'params[everybody_translate]', + 'options_values' => array( + 'yes' => elgg_echo('option:yes'), + 'no' => elgg_echo('option:no'), + ), + 'value' => $vars['entity']->everybody_translate ? $vars['entity']->everybody_translate : 'no', +)); + +$settings = <<<__HTML +<div>$everybody_translate_string $everybody_translate_view</div> +__HTML; + +echo $settings; diff --git a/views/default/translation_editor/add_custom_key.php b/views/default/translation_editor/add_custom_key.php new file mode 100644 index 000000000..4726479cc --- /dev/null +++ b/views/default/translation_editor/add_custom_key.php @@ -0,0 +1,21 @@ +<?php
+
+ $action = $vars["url"] . "action/translation_editor/add_custom_key";
+
+ $form_body .= "<div>";
+ $form_body .= "<label>" . elgg_echo("translation_editor:custom_keys:key") . "</label>";
+ $form_body .= elgg_view("input/text", array("name" => "key"));
+
+ $form_body .= "<label>" . elgg_echo("translation_editor:custom_keys:translation") . "</label>";
+ $form_body .= "<textarea name='translation'></textarea>";
+ $form_body .= "<span id='translation_editor_custom_keys_translation_info'>" . elgg_echo("translation_editor:custom_keys:translation_info") . "</span>";
+ $form_body .= "</div>";
+
+ $form_body .= elgg_view("input/submit", array("value" => elgg_echo("save")));
+
+ $form = elgg_view("input/form", array("body" => $form_body, "action" => $action, "id" => "translation_editor_custom_keys_form"));
+
+?>
+<h3><?php echo elgg_echo("translation_editor:custom_keys:title"); ?></h3>
+<?php
+ echo $form;
\ No newline at end of file diff --git a/views/default/translation_editor/add_language.php b/views/default/translation_editor/add_language.php new file mode 100644 index 000000000..4d4ba5dbf --- /dev/null +++ b/views/default/translation_editor/add_language.php @@ -0,0 +1,167 @@ +<?php
+
+/**
+ * Languages according to ISO 639-1
+ */
+
+ $options = array(
+
+ "aa" => "Afar",
+ "ab" => "Abkhazian",
+ "af" => "Afrikaans",
+ "am" => "Amharic",
+ "ar" => "Arabic",
+ "as" => "Assamese",
+ "ay" => "Aymara",
+ "az" => "Azerbaijani",
+ "ba" => "Bashkir",
+ "be" => "Byelorussian",
+ "bg" => "Bulgarian",
+ "bh" => "Bihari",
+ "bi" => "Bislama",
+ "bn" => "Bengali; Bangla",
+ "bo" => "Tibetan",
+ "br" => "Breton",
+ "ca" => "Catalan",
+ "co" => "Corsican",
+ "cs" => "Czech",
+ "cy" => "Welsh",
+ "da" => "Danish",
+ "de" => "German",
+ "dz" => "Bhutani",
+ "el" => "Greek",
+ "en" => "English",
+ "eo" => "Esperanto",
+ "es" => "Spanish",
+ "et" => "Estonian",
+ "eu" => "Basque",
+ "fa" => "Persian",
+ "fi" => "Finnish",
+ "fj" => "Fiji",
+ "fo" => "Faeroese",
+ "fr" => "French",
+ "fy" => "Frisian",
+ "ga" => "Irish",
+ "gd" => "Scots / Gaelic",
+ "gl" => "Galician",
+ "gn" => "Guarani",
+ "gu" => "Gujarati",
+ "he" => "Hebrew",
+ "ha" => "Hausa",
+ "hi" => "Hindi",
+ "hr" => "Croatian",
+ "hu" => "Hungarian",
+ "hy" => "Armenian",
+ "ia" => "Interlingua",
+ "id" => "Indonesian",
+ "ie" => "Interlingue",
+ "ik" => "Inupiak",
+ "is" => "Icelandic",
+ "it" => "Italian",
+ "iu" => "Inuktitut",
+ "iw" => "Hebrew (obsolete)",
+ "ja" => "Japanese",
+ "ji" => "Yiddish (obsolete)",
+ "jw" => "Javanese",
+ "ka" => "Georgian",
+ "kk" => "Kazakh",
+ "kl" => "Greenlandic",
+ "km" => "Cambodian",
+ "kn" => "Kannada",
+ "ko" => "Korean",
+ "ks" => "Kashmiri",
+ "ku" => "Kurdish",
+ "ky" => "Kirghiz",
+ "la" => "Latin",
+ "ln" => "Lingala",
+ "lo" => "Laothian",
+ "lt" => "Lithuanian",
+ "lv" => "Latvian/Lettish",
+ "mg" => "Malagasy",
+ "mi" => "Maori",
+ "mk" => "Macedonian",
+ "ml" => "Malayalam",
+ "mn" => "Mongolian",
+ "mo" => "Moldavian",
+ "mr" => "Marathi",
+ "ms" => "Malay",
+ "mt" => "Maltese",
+ "my" => "Burmese",
+ "na" => "Nauru",
+ "ne" => "Nepali",
+ "nl" => "Dutch",
+ "no" => "Norwegian",
+ "oc" => "Occitan",
+ "om" => "(Afan) Oromo",
+ "or" => "Oriya",
+ "pa" => "Punjabi",
+ "pl" => "Polish",
+ "ps" => "Pashto / Pushto",
+ "pt" => "Portuguese",
+ "qu" => "Quechua",
+ "rm" => "Rhaeto-Romance",
+ "rn" => "Kirundi",
+ "ro" => "Romanian",
+ "ru" => "Russian",
+ "rw" => "Kinyarwanda",
+ "sa" => "Sanskrit",
+ "sd" => "Sindhi",
+ "sg" => "Sangro",
+ "sh" => "Serbo-Croatian",
+ "si" => "Singhalese",
+ "sk" => "Slovak",
+ "sl" => "Slovenian",
+ "sm" => "Samoan",
+ "sn" => "Shona",
+ "so" => "Somali",
+ "sq" => "Albanian",
+ "sr" => "Serbian",
+ "ss" => "Siswati",
+ "st" => "Sesotho",
+ "su" => "Sundanese",
+ "sv" => "Swedish",
+ "sw" => "Swahili",
+ "ta" => "Tamil",
+ "te" => "Tegulu",
+ "tg" => "Tajik",
+ "th" => "Thai",
+ "ti" => "Tigrinya",
+ "tk" => "Turkmen",
+ "tl" => "Tagalog",
+ "tn" => "Setswana",
+ "to" => "Tonga",
+ "tr" => "Turkish",
+ "ts" => "Tsonga",
+ "tt" => "Tatar",
+ "tw" => "Twi",
+ "ug" => "Uigur",
+ "uk" => "Ukrainian",
+ "ur" => "Urdu",
+ "uz" => "Uzbek",
+ "vi" => "Vietnamese",
+ "vo" => "Volapuk",
+ "wo" => "Wolof",
+ "xh" => "Xhosa",
+ "yi" => "Yiddish",
+ "yo" => "Yoruba",
+ "za" => "Zuang",
+ "zh" => "Chinese",
+ "zu" => "Zulu"
+ );
+
+ foreach(get_installed_translations() as $index => $lang){
+ unset($options[$index]);
+ }
+
+ asort($options);
+
+ $form_body .= elgg_view("input/dropdown", array("options_values" => $options, "name" => "code"));
+ $form_body .= " ";
+ $form_body .= elgg_view("input/submit", array("value" => elgg_echo("save")));
+
+ $form = elgg_view("input/form", array("body" => $form_body, "action" => $vars["url"] . "action/translation_editor/add_language", "id" => "translation_editor_add_language_form", "class" => "hidden"));
+
+ echo "<div>";
+ echo "<a href='javascript:void(0);' onclick='$(\"#translation_editor_add_language_form\").toggle();'><b>+</b> " . elgg_echo("translation_editor:language_selector:add_language") . "</a>";
+ echo $form;
+ echo "</div>";
diff --git a/views/default/translation_editor/css/site.php b/views/default/translation_editor/css/site.php new file mode 100644 index 000000000..941ccdb7a --- /dev/null +++ b/views/default/translation_editor/css/site.php @@ -0,0 +1,99 @@ +<?php + $graphics_folder = $vars["url"] . "mod/translation_editor/_graphics/"; +?> + +#translation_editor_language_table th, +#translation_editor_plugin_list th { + font-weight: bold; +} + +#translation_editor_language_table .translation_editor_flag, +#translation_editor_language_table .translation_editor_enable { + width: 1%; + text-align: center; +} + +#translation_editor_plugin_list th, +#translation_editor_plugin_list td { + text-align: center; + white-space: nowrap; +} + +#translation_editor_plugin_list .first_col { + text-align: left; + width: 100%; +} + +#translation_editor_site_language { + color: gray; + margin-left: 10px; +} + +#translation_editor_custom_keys_translation_info { + color: gray; +} + +.translation_editor_translation_complete { + color: green; +} + +.translation_editor_translation_needed { + color: red; +} + +.translation_editor_translation_table textarea { + height: 70px; +} + +.view_mode_active { + font-weight: bold; +} + +.translation_editor_translation_table tr{ + display: none; +} + +.translation_editor_translation_table tr.first_row th{ + font-weight: bold; +} + +.translation_editor_translation_table tr.first_row th span{ + font-weight: normal; +} + +.translation_editor_translation_table tr.first_row, +.translation_editor_translation_table tr[rel='missing']{ + display: table-row; + <!-- + display: inline-block; + --> +} + +.translation_editor_plugin_key { + float: right; + width: 16px; + height: 16px; + background: url(<?php echo $graphics_folder;?>key.gif) no-repeat; +} + +.translation_editor_translation_table { + margin-bottom: 20px; +} + +.translation_editor_translation_table pre { + white-space: normal; + margin-bottom: 5px; +} + +.translation_editor_translation_table td{ + white-space: nowrap; +} + +.translation_editor_translation_table .first_col { + width: 33px; +} + +#translation_editor_search_form td { + width: 100%; + white-space: nowrap; +} diff --git a/views/default/translation_editor/js/site.php b/views/default/translation_editor/js/site.php new file mode 100644 index 000000000..be4dc0266 --- /dev/null +++ b/views/default/translation_editor/js/site.php @@ -0,0 +1,41 @@ +<?php
+
+?>
+//<script>
+function translation_editor_disable_language(){
+ var url = elgg.security.addToken("<?php echo $vars["url"]; ?>action/translation_editor/disable_languages?");
+
+ var lan = new Array();
+ $('#translation_editor_language_table input[name="disabled_languages[]"]:checked').each(function(index, elm){
+ lan.push($(this).val());
+ });
+
+ $.post(url, {'disabled_languages[]': lan });
+}
+
+function toggleViewMode(mode){
+ $("#translation_editor_plugin_toggle a").removeClass("view_mode_active");
+ $("#view_mode_" + mode).addClass("view_mode_active");
+
+ if(mode == "all"){
+ $("#translation_editor_plugin_form tr").show();
+ } else {
+ $("#translation_editor_plugin_form tr").hide();
+ $("#translation_editor_plugin_form tr[rel='" + mode + "']").show();
+ $("#translation_editor_plugin_form tr:first").show();
+ }
+}
+
+function translationEditorJQuerySave(){
+ var url = $('#translation_editor_plugin_form').attr("action") + "?jquery=yes";
+ var formData = $('#translation_editor_plugin_form').serialize();
+
+ $.post(url, formData, function(data){}, "json");
+}
+
+function translationEditorJQuerySearchSave(){
+ var url = $('#translation_editor_search_result_form').attr("action") + "?jquery=yes";
+ var formData = $('#translation_editor_search_result_form').serialize();
+
+ $.post(url, formData, function(data){}, "json");
+}
\ No newline at end of file diff --git a/views/default/translation_editor/language_selector.php b/views/default/translation_editor/language_selector.php new file mode 100644 index 000000000..89ebbf882 --- /dev/null +++ b/views/default/translation_editor/language_selector.php @@ -0,0 +1,88 @@ +<?php + + $languages = $vars["languages"]; + $current_language = $vars["current_language"]; + $plugin = $vars["plugin"]; + $disabled_languages = $vars["disabled_languages"]; + $site_language = $vars["site_language"]; + + if(!empty($languages)){ + $list = "<table id='translation_editor_language_table' class='elgg-table' title='" . elgg_echo("translation_editor:language_selector:title") . "'>"; + $list .= "<tr>"; + $list .= "<th class='translation_editor_flag'> </th>"; + $list .= "<th>" . elgg_echo("translation_editor:language") . "</th>"; + if(elgg_is_admin_logged_in()){ + $list .= "<th class='translation_editor_enable'>" . elgg_echo("translation_editor:disabled") . "</th>"; + } + $list .= "</tr>"; + + foreach($languages as $language){ + $list .= "<tr>"; + + // flag + $lang_flag_file = "mod/translation_editor/_graphics/flags/" . $language . ".png"; + + if(file_exists(elgg_get_root_path() . $lang_flag_file)){ + $list .= "<td class='translation_editor_flag'>"; + $list .= "<img src='" . $vars['url'] . $lang_flag_file . "' alt='" . elgg_echo($language) . "' title='" . elgg_echo($language) . "'> "; + $list .= "</td>"; + } else { + $list .= "<td class='translation_editor_flag'> </td>"; + } + + // language + $list .= "<td>"; + if($language != $current_language){ + $url = $vars["url"] . "translation_editor/" . $language . "/" . $plugin; + + if($language != "en"){ + $completeness = translation_editor_get_language_completeness($language); + $list .= "<a href='" . $url . "'>" . elgg_echo($language) . " (" . $completeness . "%)</a>"; + + if(elgg_is_admin_logged_in() && $completeness == 0){ + $list .= elgg_view("output/confirmlink", array("href" => $vars["url"] . "action/translation_editor/delete_language?language=" . $language, "confirm" => elgg_echo("translation_editor:language_selector:remove_language:confirm"), "text" => elgg_view_icon("delete-alt"))); + } + } else { + $list .= "<a href='" . $url . "'>" . elgg_echo($language) . "</a>"; + + } + } else { + if($language != "en"){ + $list .= elgg_echo($language) . " (" . translation_editor_get_language_completeness($language) . "%)"; + } else { + $list .= elgg_echo($language); + } + } + + if($site_language == $language){ + $list .= "<span id='translation_editor_site_language'>" . elgg_echo("translation_editor:language_selector:site_language") . "</span>"; + } + $list .= "</td>"; + + // checkbox + if(elgg_is_admin_logged_in()){ + $list .= "<td class='translation_editor_enable'>"; + if($language != "en"){ + $list .= "<input type='checkbox' name='disabled_languages[]' value='" . $language . "' onchange='translation_editor_disable_language();' "; + if(in_array($language, $disabled_languages)){ + $list .= "checked='checked' "; + } + $list .= "/>"; + } + $list .= "</td>"; + } + + $list .= "</tr>"; + } + + $list .= "</table>"; + + echo $list; + } + + if(elgg_is_admin_logged_in()){ + // add a new language + echo elgg_view("translation_editor/add_language"); + } + + echo "<br />"; diff --git a/views/default/translation_editor/plugin_edit.php b/views/default/translation_editor/plugin_edit.php new file mode 100644 index 000000000..113813a2a --- /dev/null +++ b/views/default/translation_editor/plugin_edit.php @@ -0,0 +1,147 @@ +<?php + $current_language = $vars['current_language']; + $english = $vars['translation']['en']; + $translated_language = $vars['translation']['current_language']; + $custom = $vars['translation']['custom']; + + $en_flag_file = "mod/translation_editor/_graphics/flags/en.png"; + + if(file_exists(elgg_get_root_path() . $en_flag_file)){ + $en_flag = "<img src='" . $vars['url'] . $en_flag_file . "' alt='" . elgg_echo("en") . "' title='" . elgg_echo("en") . "'>"; + } else { + $en_flag = "en"; + } + + $lang_flag_file = "mod/translation_editor/_graphics/flags/" . $current_language . ".png"; + + if(file_exists(elgg_get_root_path() . $lang_flag_file)){ + $lang_flag = "<img src='" . $vars['url'] . $lang_flag_file . "' alt='" . elgg_echo($current_language) . "' title='" . elgg_echo($current_language) . "'>"; + } else { + $lang_flag = $current_language; + } + + $missing_count = 0; + $equal_count = 0; + $params_count = 0; + $custom_count = 0; + + foreach($english as $en_key => $en_value){ + $en_params = translation_editor_get_string_parameters($en_value); + $cur_params = translation_editor_get_string_parameters($translated_language[$en_key]); + + if(!array_key_exists($en_key, $translated_language)){ + $row_rel = "rel='missing'"; + $missing_count++; + } elseif($en_value == $translated_language[$en_key]){ + $row_rel = "rel='equal'"; + $equal_count++; + } elseif($en_params != $cur_params){ + $row_rel = "rel='params'"; + $params_count++; + } elseif(array_key_exists($en_key, $custom)){ + $row_rel = "rel='custom'"; + $custom_count++; + } else { + $row_rel = ""; + } + + // English information + $translation .= "<tr " . $row_rel . ">"; + $translation .= "<td>" . $en_flag . "</td>"; + $translation .= "<td>"; + $translation .= "<span class='translation_editor_plugin_key' title='" . $en_key . "'></span>"; + $translation .= "<pre class='translation_editor_pre'>" . nl2br(htmlspecialchars($en_value)) . "</pre>"; + $translation .="</td>"; + $translation .= "</tr>"; + + // Custom language information + $translation .= "<tr ". $row_rel . ">"; + $translation .= "<td>" . $lang_flag . "</td>"; + $translation .= "<td>"; + $translation .= "<textarea name='translation[" . $en_key . "]' >"; + $translation .= $translated_language[$en_key]; + $translation .= "</textarea>"; + $translation .= "</td>"; + $translation .= "</tr>"; + } + + $selected_view_mode = "missing"; + + if($missing_count == 0){ + $selected_view_mode = "all"; + ?> + <style type="text/css"> + .translation_editor_translation_table tr { + display: table-row; + <!-- + display: inline-block; + --> + } + </style> + <?php + } + + $toggle = "<span id='translation_editor_plugin_toggle' class='float-alt'>"; + + $toggle .= elgg_echo("translation_editor:plugin_edit:show") . " "; + + $missing_class = ""; + $equal_class = ""; + $params_class = ""; + $custom_class = ""; + $all_class = ""; + + switch($selected_view_mode){ + case "missing": + $missing_class = "view_mode_active"; + break; + case "all": + $all_class = "view_mode_active"; + break; + case "equal": + $equal_class = "view_mode_active"; + break; + case "custom": + $custom_class = "view_mode_active"; + break; + case "params": + $params_class = "view_mode_active"; + break; + } + + $toggle .= "<a class='$missing_class' id='view_mode_missing' href='javascript:toggleViewMode(\"missing\");'>" . elgg_echo("translation_editor:plugin_edit:show:missing") . "</a> (" . $missing_count . "), "; + $toggle .= "<a class='$equal_class' id='view_mode_equal' href='javascript:toggleViewMode(\"equal\");'>" . elgg_echo("translation_editor:plugin_edit:show:equal") . "</a> (" . $equal_count . "), "; + $toggle .= "<a class='$params_class' id='view_mode_params' href='javascript:toggleViewMode(\"params\");'>" . elgg_echo("translation_editor:plugin_edit:show:params") . "</a> (" . $params_count . "), "; + $toggle .= "<a class='$custom_class' id='view_mode_custom' href='javascript:toggleViewMode(\"custom\");'>" . elgg_echo("translation_editor:plugin_edit:show:custom") . "</a> (" . $custom_count . "), "; + $toggle .= "<a class='$all_class' id='view_mode_all' href='javascript:toggleViewMode(\"all\");'>" . elgg_echo("translation_editor:plugin_edit:show:all") . "</a> (" . $vars['translation']['total'] . ")"; + $toggle .= "</span>"; + + $list .= "<table class='elgg-table translation_editor_translation_table'>"; + $list .= "<col class='first_col'/>"; + $list .= "<tr class='first_row'><th colspan='2'>"; + $list .= $toggle; + $list .= elgg_echo("translation_editor:plugin_edit:title") . " " . $vars['plugin']; + $list .= "</th></tr>"; + $list .= $translation; + $list .= "</table>"; + +?> +<script type="text/javascript"> + $(document).ready(function(){ + $('#translation_editor_plugin_form textarea').live("change", function(){ + translationEditorJQuerySave(); + }); + }); +</script> + +<div> + <form id="translation_editor_plugin_form" action="<?php echo $vars['url'];?>action/translation_editor/translate" method="post"> + <?php echo elgg_view("input/securitytoken"); ?> + <input type='hidden' name='current_language' value='<?php echo $current_language; ?>' /> + <input type='hidden' name='plugin' value='<?php echo $vars['plugin']; ?>' /> + <?php + echo $list; + echo elgg_view("input/submit", array("value" => elgg_echo("save"))); + ?> + </form> +</div> diff --git a/views/default/translation_editor/plugin_list.php b/views/default/translation_editor/plugin_list.php new file mode 100644 index 000000000..b48b94fbf --- /dev/null +++ b/views/default/translation_editor/plugin_list.php @@ -0,0 +1,84 @@ +<?php + $plugins = $vars["plugins"]; + $current_language = $vars["current_language"]; + + if(!empty($plugins)){ + $total = 0; + $exists = 0; + $custom = 0; + + $list .= "<table id='translation_editor_plugin_list' class='elgg-table' title=\"" . elgg_echo("translation_editor:plugin_list:title") . "\">"; + $list .= "<tr>"; + $list .= "<th class='first_col'>" . elgg_echo("translation_editor:plugin_list:plugin") . "</th>"; + $list .= "<th>" . elgg_echo("translation_editor:plugin_list:total") . "</th>"; + $list .= "<th>" . elgg_echo("translation_editor:plugin_list:exists") . "</th>"; + $list .= "<th>" . elgg_echo("translation_editor:plugin_list:custom") . "</th>"; + $list .= "<th>" . elgg_echo("translation_editor:plugin_list:percentage") . "</th>"; + $list .= "<th> </th>"; + $list .= "</tr>"; + + foreach($plugins as $plugin_name => $plugin_stats){ + + $url = $vars["url"] . "translation_editor/" . $current_language . "/" . $plugin_name; + + $total += $plugin_stats["total"]; + $exists += $plugin_stats["exists"]; + $custom += $plugin_stats["custom"]; + + if(!empty($plugin_stats["total"])){ + $percentage = round(($plugin_stats["exists"] / $plugin_stats["total"]) * 100); + } else { + $percentage = 100; + } + + $complete_class = ""; + + if($percentage == 100){ + $complete_class = " class='translation_editor_translation_complete'"; + } elseif($percentage == 0){ + $complete_class = " class='translation_editor_translation_needed'"; + } + + $list .= "<tr>"; + $list .= "<td class='first_col'><a href='" . $url . "'>" . $plugin_name . "</a></td>"; + $list .= "<td>" . $plugin_stats["total"] . "</td>"; + $list .= "<td>" . $plugin_stats["exists"] . "</td>"; + + if($plugin_stats["custom"] > 0){ + $list .= "<td>" . $plugin_stats["custom"] . "</td>"; + } else { + $list .= "<td> </td>"; + } + + $list .= "<td" . $complete_class . ">" . $percentage . "%</td>"; + + if($plugin_stats["custom"] > 0){ + $merge_url = $vars["url"] . "action/translation_editor/merge?current_language=" . $current_language . "&plugin=" . $plugin_name; + + $list .= "<td>"; + $list .= elgg_view("output/url", array("href" => $merge_url, "is_action" => true, "title" => elgg_echo("translation_editor:plugin_list:merge"), "text" => elgg_view_icon("download"))); + if(elgg_is_admin_logged_in()){ + $delete_url = $vars["url"] . "action/translation_editor/delete?current_language=" . $current_language . "&plugin=" . $plugin_name; + + $list .= elgg_view("output/confirmlink", array("href" => $delete_url, "title" => elgg_echo("delete"), "text" => elgg_view_icon("delete-alt"))); + } + $list .= "</td>"; + } else { + $list .= "<td> </td>"; + } + $list .= "</tr>"; + } + + $list .= "<tr class='translation_editor_plugin_list_total_row'>"; + $list .= "<td> </td>"; + $list .= "<td>" . $total . "</td>"; + $list .= "<td>" . $exists . "</td>"; + $list .= "<td>" . $custom . "</td>"; + $list .= "<td>" . round(($exists / $total) * 100, 2) . "%</td>"; + $list .= "<td> </td>"; + $list .= "</tr>"; + + $list .= "</table>"; + + echo $list; + } diff --git a/views/default/translation_editor/search.php b/views/default/translation_editor/search.php new file mode 100644 index 000000000..541b33123 --- /dev/null +++ b/views/default/translation_editor/search.php @@ -0,0 +1,43 @@ +<?php
+
+ $current_language = $vars["current_language"];
+ $q = $vars["query"];
+ $in_search = $vars["in_search"];
+
+ if(empty($q)){
+ $q = elgg_echo("translation_editor:forms:search:default");
+ }
+
+ // build form
+ $form_data .= "<table><tr><td>";
+
+ $form_data .= elgg_view("input/text", array("name" => "translation_editor_search", "value" => $q));
+
+ $form_data .= "</td><td> ";
+
+ $form_data .= elgg_view("input/hidden", array("name" => "language", "value" => $current_language));
+ $form_data .= elgg_view("input/submit", array("value" => elgg_echo("search")));
+
+ $form_data .= "</td></tr></table>";
+ $form = elgg_view("input/form", array("body" => $form_data,
+ "id" => "translation_editor_search_form",
+ "action" => $vars["url"] . "translation_editor/search",
+ "disable_security" => true));
+
+ echo $form;
+ echo "<br />";
+
+?>
+<script type="text/javascript">
+ $(document).ready(function(){
+ $('#translation_editor_search_form input[name="translation_editor_search"]').focus(function(){
+ if($(this).val() == "<?php echo elgg_echo("translation_editor:forms:search:default"); ?>"){
+ $(this).val("");
+ }
+ }).blur(function(){
+ if($(this).val() == ""){
+ $(this).val("<?php echo elgg_echo("translation_editor:forms:search:default"); ?>");
+ }
+ });
+ });
+</script>
\ No newline at end of file diff --git a/views/default/translation_editor/search_results.php b/views/default/translation_editor/search_results.php new file mode 100644 index 000000000..bb771bd9f --- /dev/null +++ b/views/default/translation_editor/search_results.php @@ -0,0 +1,78 @@ +<?php
+
+ $search_results = $vars["results"];
+ $current_language = $vars["current_language"];
+
+ if(!empty($search_results)){
+ $en_flag_file = "mod/translation_editor/_graphics/flags/en.png";
+
+ if(file_exists(elgg_get_root_path() . $en_flag_file)){
+ $en_flag = "<img src='" . $vars['url'] . $en_flag_file . "' alt='" . elgg_echo("en") . "' title='" . elgg_echo("en") . "'>";
+ } else {
+ $en_flag = "en";
+ }
+
+ $lang_flag_file = "mod/translation_editor/_graphics/flags/" . $current_language . ".png";
+
+ if(file_exists(elgg_get_root_path() . $lang_flag_file)){
+ $lang_flag = "<img src='" . $vars['url'] . $lang_flag_file . "' alt='" . elgg_echo($current_language) . "' title='" . elgg_echo($current_language) . "'>";
+ } else {
+ $lang_flag = $current_language;
+ }
+
+ foreach($search_results as $plugin => $data){
+ $translated_language = $data["current_language"];
+
+ $list .= "<table class='elgg-table translation_editor_translation_table'>";
+ $list .= "<col class='first_col'/>";
+ $list .= "<tr class='first_row'><th colspan='2'>";
+ $list .= "<a href='" . $vars["url"] . "translation_editor/" . $current_language . "/" . $plugin . "'>" . $plugin . "</a>";
+ $list .= "</th></tr>";
+
+ foreach($data["en"] as $key => $value){
+
+ // English information
+ $list .= "<tr>";
+ $list .= "<td>" . $en_flag . "</td>";
+ $list .= "<td>";
+ $list .= "<span class='translation_editor_plugin_key' title='" . $key . "'></span>";
+ $list .= "<pre class='translation_editor_pre'>" . nl2br(htmlspecialchars($value)) . "</pre>";
+ $list .="</td>";
+ $list .= "</tr>";
+
+ // Custom language information
+ $list .= "<tr>";
+ $list .= "<td>" . $lang_flag . "</td>";
+ $list .= "<td>";
+ $list .= "<textarea name='translation[" . $plugin . "][" . $key . "]' onchange='translationEditorJQuerySearchSave();'>";
+ $list .= $translated_language[$key];
+ $list .= "</textarea>";
+ $list .= "</td>";
+ $list .= "</tr>";
+ }
+
+ $list .= "</table>";
+ }
+
+ $form_data = elgg_view("input/hidden", array("name" => "current_language", "value" => $current_language));
+ $form_data .= $list;
+
+ $form_data .= elgg_view("input/submit", array("value" => elgg_echo("save")));
+
+ $list = elgg_view("input/form", array("body" => $form_data,
+ "action" => $vars["url"] . "action/translation_editor/translate_search",
+ "id" => "translation_editor_search_result_form"));
+ } else {
+ $list .= elgg_echo("translation_editor:search_results:no_results");
+ }
+
+ echo $list;
+?>
+<style type="text/css">
+ .translation_editor_translation_table tr {
+ display: table-row;
+ <!--
+ display: inline-block;
+ -->
+ }
+</style>
|