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
This commit is contained in:
parent
9e202af99c
commit
233bc0b84a
7 changed files with 99 additions and 54 deletions
|
@ -126,7 +126,7 @@ public class ClearPage
|
||||||
OutputStreamWriter stream = null;
|
OutputStreamWriter stream = null;
|
||||||
try {
|
try {
|
||||||
stream = new OutputStreamWriter(
|
stream = new OutputStreamWriter(
|
||||||
new FileOutputStream(file));
|
new FileOutputStream(file), "UTF-8");
|
||||||
String rendered = cs.render();
|
String rendered = cs.render();
|
||||||
stream.write(rendered, 0, rendered.length());
|
stream.write(rendered, 0, rendered.length());
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,7 +33,8 @@ public class DocFile
|
||||||
try {
|
try {
|
||||||
File f = new File(filename);
|
File f = new File(filename);
|
||||||
int length = (int)f.length();
|
int length = (int)f.length();
|
||||||
FileReader reader = new FileReader(f);
|
FileInputStream is = new FileInputStream(f);
|
||||||
|
InputStreamReader reader = new InputStreamReader(is, "UTF-8");
|
||||||
char[] buf = new char[length];
|
char[] buf = new char[length];
|
||||||
int index = 0;
|
int index = 0;
|
||||||
int amt;
|
int amt;
|
||||||
|
|
|
@ -11,12 +11,12 @@ def:default_search_box() ?>
|
||||||
<table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
|
<table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="gsc-input">
|
<td class="gsc-input">
|
||||||
<input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
|
<input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
|
||||||
title="search developer docs" name="q"
|
title="search developer docs" name="q"
|
||||||
value="search developer docs"
|
value="search developer docs"
|
||||||
onFocus="search_focus_changed(this, true)"
|
onFocus="search_focus_changed(this, true)"
|
||||||
onBlur="search_focus_changed(this, false)"
|
onBlur="search_focus_changed(this, false)"
|
||||||
onkeydown="return search_changed(event, true, '<?cs var:toroot?>')"
|
onkeydown="return search_changed(event, true, '<?cs var:toroot?>')"
|
||||||
onkeyup="return search_changed(event, false, '<?cs var:toroot?>')" />
|
onkeyup="return search_changed(event, false, '<?cs var:toroot?>')" />
|
||||||
<div id="search_filtered_div" class="no-display">
|
<div id="search_filtered_div" class="no-display">
|
||||||
<table id="search_filtered" cellspacing=0>
|
<table id="search_filtered" cellspacing=0>
|
||||||
|
@ -46,19 +46,29 @@ def:custom_masthead() ?>
|
||||||
</div>
|
</div>
|
||||||
<div id="headerRight">
|
<div id="headerRight">
|
||||||
<div id="headerLinks">
|
<div id="headerLinks">
|
||||||
<!-- <img src="<?cs var:toroot ?>assets/images/icon_world.jpg" alt="" /> -->
|
<?cs if:template.showLanguageMenu ?>
|
||||||
|
<img src="<?cs var:toroot ?>assets/images/icon_world.jpg" alt="" />
|
||||||
<span id="language">
|
<span id="language">
|
||||||
<select name="language" onChange="changeLangPref(this.value)">
|
<select name="language" onChange="changeLangPref(this.value, true)">
|
||||||
<option value="en">English</option>
|
<option value="en">English </option>
|
||||||
<!-- <option value="ja"></option> -->
|
<option value="ja">日本語</option>
|
||||||
</select>
|
<?cs #
|
||||||
<script type="text/javascript">
|
<option value="de">Deutsch</option>
|
||||||
<!--
|
<option value="es">Español</option>
|
||||||
loadLangPref();
|
<option value="fr">Français</option>
|
||||||
//-->
|
<option value="it">Italiano</option>
|
||||||
</script>
|
<option value="zh-CN">中文 (简体)</option>
|
||||||
</span>
|
<option value="zh-TW">中文 (繁體)</option>
|
||||||
<a href="http://www.android.com">Android.com</a>
|
?>
|
||||||
|
</select>
|
||||||
|
<script type="text/javascript">
|
||||||
|
<!--
|
||||||
|
loadLangPref();
|
||||||
|
//-->
|
||||||
|
</script>
|
||||||
|
</span>
|
||||||
|
<?cs /if ?>
|
||||||
|
<a href="http://www.android.com">Android.com</a>
|
||||||
</div><?cs
|
</div><?cs
|
||||||
call:default_search_box() ?>
|
call:default_search_box() ?>
|
||||||
</div><!-- headerRight -->
|
</div><!-- headerRight -->
|
||||||
|
@ -151,9 +161,8 @@ def:default_left_nav() ?>
|
||||||
if (!isMobile) {
|
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");
|
$("<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();
|
chooseDefaultNav();
|
||||||
if ($("#nav-tree").is(':visible')) {
|
if ($("#nav-tree").is(':visible')) init_navtree("nav-tree", "<?cs var:toroot ?>", NAVTREE_DATA);
|
||||||
init_default_navtree("<?cs var:toroot ?>");
|
else {
|
||||||
} else {
|
|
||||||
addLoadEvent(function() {
|
addLoadEvent(function() {
|
||||||
scrollIntoView("packages-nav");
|
scrollIntoView("packages-nav");
|
||||||
scrollIntoView("classes-nav");
|
scrollIntoView("classes-nav");
|
||||||
|
|
|
@ -9,27 +9,47 @@
|
||||||
|
|
||||||
<li id="home-link"><a href="<?cs var:toroot ?><?cs if:android.whichdoc != "online" ?>offline.html<?cs else ?>index.html<?cs /if ?>">
|
<li id="home-link"><a href="<?cs var:toroot ?><?cs if:android.whichdoc != "online" ?>offline.html<?cs else ?>index.html<?cs /if ?>">
|
||||||
<span class="en">Home</span>
|
<span class="en">Home</span>
|
||||||
<span class="ja"></span>
|
<span class="de">Startseite</span>
|
||||||
|
<span class="ja">ホーム</span>
|
||||||
|
<span class="zh-CN">主页</span>
|
||||||
|
<span class="zh-TW">首頁</span>
|
||||||
</a></li>
|
</a></li>
|
||||||
<li id="sdk-link"><a href="<?cs var:toroot ?>sdk/<?cs var:sdk.current ?>/index.html">
|
<li id="sdk-link"><a href="<?cs var:toroot ?>sdk/<?cs var:sdk.current ?>/index.html">
|
||||||
<span class="en">SDK</span>
|
<span class="en">SDK</span>
|
||||||
<span class="ja"></span>
|
|
||||||
</a></li>
|
</a></li>
|
||||||
<li id="guide-link"><a href="<?cs var:toroot ?>guide/index.html" onClick="return loadLast('guide')">
|
<li id="guide-link"><a href="<?cs var:toroot ?>guide/index.html" onClick="return loadLast('guide')">
|
||||||
<span class="en">Dev Guide</span>
|
<span class="en">Dev Guide</span>
|
||||||
<span class="ja"></span>
|
<span class="de">Handbuch</span>
|
||||||
|
<span class="es">Guía</span>
|
||||||
|
<span class="fr">Guide</span>
|
||||||
|
<span class="it">Guida</span>
|
||||||
|
<span class="ja">開発ガイド</span>
|
||||||
|
<span class="zh-CN">开发人员指南</span>
|
||||||
|
<span class="zh-TW">開發指南</span>
|
||||||
</a></li>
|
</a></li>
|
||||||
<li id="reference-link"><a href="<?cs var:toroot ?>reference/packages.html" onClick="return loadLast('reference')">
|
<li id="reference-link"><a href="<?cs var:toroot ?>reference/packages.html" onClick="return loadLast('reference')">
|
||||||
<span class="en">Reference</span>
|
<span class="en">Reference</span>
|
||||||
<span class="ja"></span>
|
<span class="de">Referenz</span>
|
||||||
|
<span class="es">Referencia</span>
|
||||||
|
<span class="fr">Référence</span>
|
||||||
|
<span class="it">Riferimento</span>
|
||||||
|
<span class="ja">リファレンス</span>
|
||||||
|
<span class="zh-CN">参考</span>
|
||||||
|
<span class="zh-TW">參考資料</span>
|
||||||
</a></li>
|
</a></li>
|
||||||
<li><a href="http://android-developers.blogspot.com">
|
<li><a href="http://android-developers.blogspot.com">
|
||||||
<span class="en">Blog</span>
|
<span class="en">Blog</span>
|
||||||
<span class="ja"></span>
|
<span class="ja">ブログ</span>
|
||||||
|
<span class="zh-CN">博客</span>
|
||||||
|
<span class="zh-TW">網誌</span>
|
||||||
</a></li>
|
</a></li>
|
||||||
<li id="community-link"><a href="<?cs var:toroot ?>community/index.html">
|
<li id="community-link"><a href="<?cs var:toroot ?>community/index.html">
|
||||||
<span class="en">Community</span>
|
<span class="en">Community</span>
|
||||||
<span class="ja"></span>
|
<span class="es">Comunidad</span>
|
||||||
|
<span class="fr">Communauté</span>
|
||||||
|
<span class="ja">コミュニティ</span>
|
||||||
|
<span class="zh-CN">社区</span>
|
||||||
|
<span class="zh-TW">社群</span>
|
||||||
</a></li>
|
</a></li>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
@ -238,6 +238,10 @@ hr.blue {
|
||||||
top:7px;
|
top:7px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#header li a span+span {
|
||||||
|
display:none;
|
||||||
|
}
|
||||||
|
|
||||||
/* TAB HIGHLIGHTING */
|
/* TAB HIGHLIGHTING */
|
||||||
.home #home-link a,
|
.home #home-link a,
|
||||||
.publish #publish-link a,
|
.publish #publish-link a,
|
||||||
|
@ -276,8 +280,12 @@ hr.blue {
|
||||||
color: #7FA9B5;
|
color: #7FA9B5;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#headerLinks img {
|
||||||
|
vertical-align:middle;
|
||||||
|
}
|
||||||
|
|
||||||
#language {
|
#language {
|
||||||
margin:0 10px;
|
margin:0 10px 0 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#search {
|
#search {
|
||||||
|
|
|
@ -89,6 +89,10 @@
|
||||||
zoom:1;
|
zoom:1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#side-nav li a span+span {
|
||||||
|
display:none;
|
||||||
|
}
|
||||||
|
|
||||||
#side-nav li a:hover {
|
#side-nav li a:hover {
|
||||||
text-decoration:underline;
|
text-decoration:underline;
|
||||||
}
|
}
|
||||||
|
@ -1130,9 +1134,9 @@ body .ui-resizable-autohide .ui-resizable-handle { display: none; } /* use 'body
|
||||||
page-break-inside: avoid;
|
page-break-inside: avoid;
|
||||||
}
|
}
|
||||||
|
|
||||||
#qv,
|
/* #qv,
|
||||||
#qv-wrapper {
|
#qv-wrapper {
|
||||||
display:none;
|
display:none;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,15 +31,6 @@ if ((agent.indexOf("Mobile") != -1) ||
|
||||||
addLoadEvent(mobileSetup);
|
addLoadEvent(mobileSetup);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* loads the lists.js file to the page.
|
|
||||||
Loading this in the head was slowing page load time */
|
|
||||||
addLoadEvent( function() {
|
|
||||||
var lists = document.createElement("script");
|
|
||||||
lists.setAttribute("type","text/javascript");
|
|
||||||
lists.setAttribute("src", toRoot+"reference/lists.js");
|
|
||||||
$("head").append($(lists));
|
|
||||||
} );
|
|
||||||
|
|
||||||
window.onresize = resizeAll;
|
window.onresize = resizeAll;
|
||||||
|
|
||||||
function mobileSetup() {
|
function mobileSetup() {
|
||||||
|
@ -214,6 +205,19 @@ 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) {
|
function loadLast(cookiePath) {
|
||||||
var location = window.location.href;
|
var location = window.location.href;
|
||||||
if (location.indexOf("/"+cookiePath+"/") != -1) {
|
if (location.indexOf("/"+cookiePath+"/") != -1) {
|
||||||
|
@ -228,7 +232,7 @@ function loadLast(cookiePath) {
|
||||||
}
|
}
|
||||||
|
|
||||||
$(window).unload(function(){
|
$(window).unload(function(){
|
||||||
var path = location.pathname;
|
var path = getBaseUri(location.pathname);
|
||||||
if (path.indexOf("/reference/") != -1) {
|
if (path.indexOf("/reference/") != -1) {
|
||||||
writeCookie("lastpage", path, "reference", null);
|
writeCookie("lastpage", path, "reference", null);
|
||||||
} else if (path.indexOf("/guide/") != -1) {
|
} else if (path.indexOf("/guide/") != -1) {
|
||||||
|
@ -236,8 +240,6 @@ $(window).unload(function(){
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function toggle(obj, slide) {
|
function toggle(obj, slide) {
|
||||||
var ul = $("ul", obj);
|
var ul = $("ul", obj);
|
||||||
var li = ul.parent();
|
var li = ul.parent();
|
||||||
|
@ -258,8 +260,6 @@ function toggle(obj, slide) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function buildToggleLists() {
|
function buildToggleLists() {
|
||||||
$(".toggle-list").each(
|
$(".toggle-list").each(
|
||||||
function(i) {
|
function(i) {
|
||||||
|
@ -291,11 +291,11 @@ function swapNav() {
|
||||||
nav_pref = NAV_PREF_PANELS;
|
nav_pref = NAV_PREF_PANELS;
|
||||||
} else {
|
} else {
|
||||||
nav_pref = NAV_PREF_TREE;
|
nav_pref = NAV_PREF_TREE;
|
||||||
init_default_navtree(toRoot);
|
init_navtree("nav-tree", toRoot, NAVTREE_DATA);
|
||||||
}
|
}
|
||||||
var date = new Date();
|
var date = new Date();
|
||||||
date.setTime(date.getTime()+(10*365*24*60*60*1000)); // keep this for 10 years
|
date.setTime(date.getTime()+(10*365*24*60*60*1000)); // keep this for 10 years
|
||||||
writeCookie("nav", nav_pref, null, date.toGMTString());
|
writeCookie("nav", nav_pref, "reference", date.toGMTString());
|
||||||
|
|
||||||
$("#nav-panels").toggle();
|
$("#nav-panels").toggle();
|
||||||
$("#panel-link").toggle();
|
$("#panel-link").toggle();
|
||||||
|
@ -396,12 +396,16 @@ function changeDocLang(lang) {
|
||||||
changeNavLang(lang);
|
changeNavLang(lang);
|
||||||
}
|
}
|
||||||
|
|
||||||
function changeLangPref(lang) {
|
function changeLangPref(lang, refresh) {
|
||||||
var date = new Date();
|
var date = new Date();
|
||||||
date.setTime(date.getTime()+(50*365*24*60*60*1000)); // keep this for 50 years
|
expires = date.toGMTString(date.setTime(date.getTime()+(10*365*24*60*60*1000))); // keep this for 50 years
|
||||||
writeCookie("pref_lang", lang, null, date);
|
//alert("expires: " + expires)
|
||||||
|
writeCookie("pref_lang", lang, null, expires);
|
||||||
changeDocLang(lang);
|
//changeDocLang(lang);
|
||||||
|
if (refresh) {
|
||||||
|
l = getBaseUri(location.pathname);
|
||||||
|
window.location = l;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadLangPref() {
|
function loadLangPref() {
|
||||||
|
@ -414,4 +418,3 @@ function loadLangPref() {
|
||||||
function getLangPref() {
|
function getLangPref() {
|
||||||
return $("#language").find(":selected").attr("value");
|
return $("#language").find(":selected").attr("value");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue