diff options
author | Dirk Dougherty <nobody@android.com> | 2009-07-07 17:43:27 -0700 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-07-07 17:43:27 -0700 |
commit | 4405a23258d3e4df8f5970e8eb781203a5c94f7a (patch) | |
tree | 370450888d83df98b833c107960ea514d1804491 /tools/droiddoc/templates | |
parent | f9f41d0dfdac6deb819f0cc0cb0270f504dbd4ed (diff) | |
download | build-4405a23258d3e4df8f5970e8eb781203a5c94f7a.tar.gz build-4405a23258d3e4df8f5970e8eb781203a5c94f7a.tar.bz2 build-4405a23258d3e4df8f5970e8eb781203a5c94f7a.zip |
AI 150370: Add localized content infrastructure in droiddoc templates, javascript, and css. DocFile.java - instead of FileReader, use InputStreamReader with UTF-8 encoding. ClearPage.java - add UTF-8 output encoding to FileOutputStreamWriter. Note: this change also up-integrates gerrit 2146 (smain).
BUG=1910893
Automated import of CL 150370
Diffstat (limited to 'tools/droiddoc/templates')
-rw-r--r-- | tools/droiddoc/templates/assets/android-developer-core.css | 20 | ||||
-rw-r--r-- | tools/droiddoc/templates/assets/android-developer-docs.css | 8 | ||||
-rw-r--r-- | tools/droiddoc/templates/assets/android-developer-docs.js | 123 | ||||
-rw-r--r-- | tools/droiddoc/templates/macros.cs | 103 |
4 files changed, 114 insertions, 140 deletions
diff --git a/tools/droiddoc/templates/assets/android-developer-core.css b/tools/droiddoc/templates/assets/android-developer-core.css index 79e40b2d9..dee006fea 100644 --- a/tools/droiddoc/templates/assets/android-developer-core.css +++ b/tools/droiddoc/templates/assets/android-developer-core.css @@ -238,6 +238,10 @@ hr.blue { top:7px; } +#header li a span+span { + display:none; +} + /* TAB HIGHLIGHTING */ .home #home-link a, .publish #publish-link a, @@ -268,20 +272,20 @@ hr.blue { #headerLinks { margin:10px 10px 0 0; height:13px; -} - -#headerLinks .text { - text-decoration: none; - color: #7FA9B5; font-size: 11px; vertical-align: top; } #headerLinks a { - text-decoration: underline; color: #7FA9B5; - font-size: 11px; - vertical-align: top; +} + +#headerLinks img { + vertical-align:middle; +} + +#language { + margin:0 10px 0 4px; } #search { diff --git a/tools/droiddoc/templates/assets/android-developer-docs.css b/tools/droiddoc/templates/assets/android-developer-docs.css index f4aa5ef75..cf44b261f 100644 --- a/tools/droiddoc/templates/assets/android-developer-docs.css +++ b/tools/droiddoc/templates/assets/android-developer-docs.css @@ -89,6 +89,10 @@ zoom:1; } +#side-nav li a span+span { + display:none; +} + #side-nav li a:hover { text-decoration:underline; } @@ -1130,9 +1134,9 @@ body .ui-resizable-autohide .ui-resizable-handle { display: none; } /* use 'body page-break-inside: avoid; } - #qv, +/* #qv, #qv-wrapper { display:none; } - +*/ } diff --git a/tools/droiddoc/templates/assets/android-developer-docs.js b/tools/droiddoc/templates/assets/android-developer-docs.js index 2a8c3bf51..964191bf7 100644 --- a/tools/droiddoc/templates/assets/android-developer-docs.js +++ b/tools/droiddoc/templates/assets/android-developer-docs.js @@ -4,7 +4,7 @@ var devdocNav; var sidenav; var content; var HEADER_HEIGHT = 117; -var cookie_style = 'android_developer'; +var cookie_namespace = 'android_developer'; var NAV_PREF_TREE = "tree"; var NAV_PREF_PANELS = "panels"; var nav_pref; @@ -70,8 +70,8 @@ function restoreHeight(packageHeight) { $("#nav-tree").css({height:swapperHeight + "px"}); } -function getCookie(cookie) { - var myCookie = cookie_style+"_"+cookie+"="; +function readCookie(cookie) { + var myCookie = cookie_namespace+"_"+cookie+"="; if (document.cookie) { var index = document.cookie.indexOf(myCookie); if (index != -1) { @@ -87,16 +87,15 @@ function getCookie(cookie) { return 0; } -function writeCookie(cookie, val, path, expiration) { +function writeCookie(cookie, val, section, expiration) { if (!val) return; - var date = new Date(); - date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week - expiration = expiration ? expiration : date.toGMTString(); - if (location.href.indexOf("/reference/") != -1) { - document.cookie = cookie_style+'_reference_'+cookie+'='+val+'; expires='+expiration+'; path='+'/'+path; - } else if (location.href.indexOf("/guide/") != -1) { - document.cookie = cookie_style+'_guide_'+cookie+'='+val+'; expires='+expiration+'; path='+'/'+path; + section = section == null ? "_" : "_"+section+"_"; + if (expiration == null) { + var date = new Date(); + date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week + expiration = date.toGMTString(); } + document.cookie = cookie_namespace+section+cookie+"="+val+"; expires="+expiration+"; path=/"; } function init() { @@ -116,8 +115,8 @@ function init() { if (!isMobile) { $("#resize-packages-nav").resizable({handles: "s", resize: function(e, ui) { resizeHeight(); } }); $(".side-nav-resizable").resizable({handles: "e", resize: function(e, ui) { resizeWidth(); } }); - var cookieWidth = getCookie(cookiePath+'width'); - var cookieHeight = getCookie(cookiePath+'height'); + var cookieWidth = readCookie(cookiePath+'width'); + var cookieHeight = readCookie(cookiePath+'height'); if (cookieWidth) { restoreWidth(cookieWidth); } else if ($(".side-nav-resizable").length) { @@ -175,7 +174,9 @@ function resizeHeight() { $("#packages-nav").css({height:parseInt(resizePackagesNav.css("height")) - 6 + "px"}); //move 6px for handle devdocNav.css({height:sidenav.css("height")}); $("#nav-tree").css({height:swapperHeight + "px"}); - writeCookie("height", resizePackagesNav.css("height"), "", null); + + var section = location.pathname.substring(1,location.pathname.indexOf("/",1)); + writeCookie("height", resizePackagesNav.css("height"), section, null); } function resizeWidth() { @@ -190,7 +191,9 @@ function resizeWidth() { resizePackagesNav.css({width:sidenavWidth}); classesNav.css({width:sidenavWidth}); $("#packages-nav").css({width:sidenavWidth}); - writeCookie("width", sidenavWidth, "", null); + + var section = location.pathname.substring(1,location.pathname.indexOf("/",1)); + writeCookie("width", sidenavWidth, section, null); } function resizeAll() { @@ -202,12 +205,25 @@ function resizeAll() { } } +function getBaseUri(uri) { + intlUrl = uri.substring(0,6) == "/intl/"; + if (intlUrl) { + base = uri.substring(uri.indexOf('intl/')+5,uri.length); + base = base.substring(base.indexOf('/')+1, base.length); + //alert("intl, returning base url: /" + base); + return ("/" + base); + } else { + //alert("not intl, returning uri as found."); + return uri; + } +} + function loadLast(cookiePath) { var location = window.location.href; if (location.indexOf("/"+cookiePath+"/") != -1) { return true; } - var lastPage = getCookie(cookiePath + "_lastpage"); + var lastPage = readCookie(cookiePath + "_lastpage"); if (lastPage) { window.location = lastPage; return false; @@ -216,16 +232,14 @@ function loadLast(cookiePath) { } $(window).unload(function(){ - var href = location.href; - if (href.indexOf("/reference/") != -1) { - writeCookie("lastpage", href, "", null); - } else if (href.indexOf("/guide/") != -1) { - writeCookie("lastpage", href, "", null); + var path = getBaseUri(location.pathname); + if (path.indexOf("/reference/") != -1) { + writeCookie("lastpage", path, "reference", null); + } else if (path.indexOf("/guide/") != -1) { + writeCookie("lastpage", path, "guide", null); } }); - - function toggle(obj, slide) { var ul = $("ul", obj); var li = ul.parent(); @@ -246,8 +260,6 @@ function toggle(obj, slide) { } } - - function buildToggleLists() { $(".toggle-list").each( function(i) { @@ -257,7 +269,7 @@ function buildToggleLists() { } function getNavPref() { - var v = getCookie('reference_nav'); + var v = readCookie('reference_nav'); if (v != NAV_PREF_TREE) { v = NAV_PREF_PANELS; } @@ -283,7 +295,7 @@ function swapNav() { } var date = new Date(); date.setTime(date.getTime()+(10*365*24*60*60*1000)); // keep this for 10 years - writeCookie("nav", nav_pref, "", date.toGMTString()); + writeCookie("nav", nav_pref, "reference", date.toGMTString()); $("#nav-panels").toggle(); $("#panel-link").toggle(); @@ -349,3 +361,60 @@ function toggleAllSummaryInherited(linkObj) { } return false; } + + +function changeTabLang(lang) { + var nodes = $("#header-tabs").find("."+lang); + for (i=0; i < nodes.length; i++) { // for each node in this language + var node = $(nodes[i]); + node.siblings().css("display","none"); // hide all siblings + if (node.not(":empty").length != 0) { //if this languages node has a translation, show it + node.css("display","inline"); + } else { //otherwise, show English instead + node.css("display","none"); + node.siblings().filter(".en").css("display","inline"); + } + } +} + +function changeNavLang(lang) { + var nodes = $("#side-nav").find("."+lang); + for (i=0; i < nodes.length; i++) { // for each node in this language + var node = $(nodes[i]); + node.siblings().css("display","none"); // hide all siblings + if (node.not(":empty").length != 0) { // if this languages node has a translation, show it + node.css("display","inline"); + } else { // otherwise, show English instead + node.css("display","none"); + node.siblings().filter(".en").css("display","inline"); + } + } +} + +function changeDocLang(lang) { + changeTabLang(lang); + changeNavLang(lang); +} + +function changeLangPref(lang, refresh) { + var date = new Date(); + expires = date.toGMTString(date.setTime(date.getTime()+(10*365*24*60*60*1000))); // keep this for 50 years + //alert("expires: " + expires) + writeCookie("pref_lang", lang, null, expires); + //changeDocLang(lang); + if (refresh) { + l = getBaseUri(location.pathname); + window.location = l; + } +} + +function loadLangPref() { + var lang = readCookie("pref_lang"); + if (lang != 0) { + $("#language").find("option[value='"+lang+"']").attr("selected",true); + } +} + +function getLangPref() { + return $("#language").find(":selected").attr("value"); +} diff --git a/tools/droiddoc/templates/macros.cs b/tools/droiddoc/templates/macros.cs index 3ba743bbf..a2306a089 100644 --- a/tools/droiddoc/templates/macros.cs +++ b/tools/droiddoc/templates/macros.cs @@ -233,108 +233,5 @@ def:expandable_class_list(id, classes, default) ?> </div><?cs /def ?> -<?cs # The default side navigation for the reference docs ?><?cs -def:default_left_nav() ?> - <div class="g-section g-tpl-240" id="body-content"> - <div class="g-unit g-first side-nav-resizable" id="side-nav"> - <div id="swapper"> - <div id="nav-panels"> - <div id="resize-packages-nav"> - <div id="packages-nav"> - <div id="index-links"><nobr> - <a href="<?cs var:toroot ?>reference/packages.html" <?cs if:(page.title == "Package Index") ?>class="selected"<?cs /if ?> >Package Index</a> | - <a href="<?cs var:toroot ?>reference/classes.html" <?cs if:(page.title == "Class Index") ?>class="selected"<?cs /if ?>>Class Index</a></nobr> - </div> - <ul><?cs - each:pkg=docs.packages ?> - <li <?cs if:(class.package.name == pkg.name) || (package.name == pkg.name)?>class="selected"<?cs /if ?>><?cs call:package_link(pkg) ?></li><?cs - /each ?> - </ul><br/> - </div> <!-- end packages --> - </div> <!-- end resize-packages --> - <div id="classes-nav"><?cs - if:subcount(class.package) ?> - <ul> - <?cs call:list("Interfaces", class.package.interfaces) ?> - <?cs call:list("Classes", class.package.classes) ?> - <?cs call:list("Enums", class.package.enums) ?> - <?cs call:list("Exceptions", class.package.exceptions) ?> - <?cs call:list("Errors", class.package.errors) ?> - </ul><?cs - elif:subcount(package) ?> - <ul> - <?cs call:class_link_list("Interfaces", package.interfaces) ?> - <?cs call:class_link_list("Classes", package.classes) ?> - <?cs call:class_link_list("Enums", package.enums) ?> - <?cs call:class_link_list("Exceptions", package.exceptions) ?> - <?cs call:class_link_list("Errors", package.errors) ?> - </ul><?cs - else ?> - <script> - /*addLoadEvent(maxPackageHeight);*/ - </script> - <p style="padding:10px">Select a package to view its members</p><?cs - /if ?><br/> - </div><!-- end classes --> - </div><!-- end nav-panels --> - <div id="nav-tree" style="display:none"> - <div id="index-links"><nobr> - <a href="<?cs var:toroot ?>reference/packages.html" <?cs if:(page.title == "Package Index") ?>class="selected"<?cs /if ?> >Package Index</a> | - <a href="<?cs var:toroot ?>reference/classes.html" <?cs if:(page.title == "Class Index") ?>class="selected"<?cs /if ?>>Class Index</a></nobr> - </div> - </div><!-- end nav-tree --> - </div><!-- end swapper --> - </div> <!-- end side-nav --> - <script> - if (!isMobile) { - $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav"); - chooseDefaultNav(); - if ($("#nav-tree").is(':visible')) init_navtree("nav-tree", "<?cs var:toroot ?>", NAVTREE_DATA); - else { - addLoadEvent(function() { - scrollIntoView("packages-nav"); - scrollIntoView("classes-nav"); - }); - } - $("#swapper").css({borderBottom:"2px solid #aaa"}); - } else { - swapNav(); // tree view should be used on mobile - } - </script><?cs -/def ?> - -<?cs # The default search box that goes in the header ?><?cs -def:default_search_box() ?> - <div id="search" > - <div id="searchForm"> - <form accept-charset="utf-8" class="gsc-search-box" - onsubmit="return submit_search()"> - <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody> - <tr> - <td class="gsc-input"> - <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off" - title="search developer docs" name="q" - value="search developer docs" - onFocus="search_focus_changed(this, true)" - onBlur="search_focus_changed(this, false)" - onkeydown="return search_changed(event, true, '<?cs var:toroot?>')" - onkeyup="return search_changed(event, false, '<?cs var:toroot?>')" /> - <div id="search_filtered_div" class="no-display"> - <table id="search_filtered" cellspacing=0> - </table> - </div> - </td> - <td class="gsc-search-button"> - <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" /> - </td> - <td class="gsc-clear-button"> - <div title="clear results" class="gsc-clear-button"> </div> - </td> - </tr></tbody> - </table> - </form> - </div><!-- searchForm --> - </div><!-- search --><?cs -/def ?> <?cs include:"customization.cs" ?> |