8213716: javadoc search not working with Japanese and Chinese locales
Reviewed-by: jjg
This commit is contained in:
parent
6e905c8389
commit
e524f41fbf
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets
formats/html
toolkit/resources
test/langtools/jdk/javadoc/doclet/testSearch
@ -223,7 +223,7 @@ public class AbstractIndexWriter extends HtmlDocletWriter {
|
||||
String moduleName = utils.getFullyQualifiedName(mdle);
|
||||
Content link = getModuleLink(mdle, new StringContent(moduleName));
|
||||
si.setLabel(moduleName);
|
||||
si.setCategory(resources.getText("doclet.Modules"));
|
||||
si.setCategory(SearchIndexItem.Category.MODULES);
|
||||
Content dt = HtmlTree.DT(link);
|
||||
dt.addContent(" - ");
|
||||
dt.addContent(contents.module_);
|
||||
@ -247,7 +247,7 @@ public class AbstractIndexWriter extends HtmlDocletWriter {
|
||||
si.setContainingModule(utils.getFullyQualifiedName(utils.containingModule(pkg)));
|
||||
}
|
||||
si.setLabel(utils.getPackageName(pkg));
|
||||
si.setCategory(resources.getText("doclet.Packages"));
|
||||
si.setCategory(SearchIndexItem.Category.PACKAGES);
|
||||
Content dt = HtmlTree.DT(link);
|
||||
dt.addContent(" - ");
|
||||
dt.addContent(contents.package_);
|
||||
@ -270,7 +270,7 @@ public class AbstractIndexWriter extends HtmlDocletWriter {
|
||||
LinkInfoImpl.Kind.INDEX, typeElement).strong(true));
|
||||
si.setContainingPackage(utils.getPackageName(utils.containingPackage(typeElement)));
|
||||
si.setLabel(utils.getSimpleName(typeElement));
|
||||
si.setCategory(resources.getText("doclet.Types"));
|
||||
si.setCategory(SearchIndexItem.Category.TYPES);
|
||||
Content dt = HtmlTree.DT(link);
|
||||
dt.addContent(" - ");
|
||||
addClassInfo(typeElement, dt);
|
||||
@ -318,7 +318,7 @@ public class AbstractIndexWriter extends HtmlDocletWriter {
|
||||
} else {
|
||||
si.setLabel(name);
|
||||
}
|
||||
si.setCategory(resources.getText("doclet.Members"));
|
||||
si.setCategory(SearchIndexItem.Category.MEMBERS);
|
||||
Content span = HtmlTree.SPAN(HtmlStyle.memberNameLink,
|
||||
getDocLink(LinkInfoImpl.Kind.INDEX, member, name));
|
||||
Content dt = HtmlTree.DT(span);
|
||||
@ -439,7 +439,7 @@ public class AbstractIndexWriter extends HtmlDocletWriter {
|
||||
}
|
||||
if (!configuration.packages.isEmpty()) {
|
||||
SearchIndexItem si = new SearchIndexItem();
|
||||
si.setCategory(resources.getText("doclet.Packages"));
|
||||
si.setCategory(SearchIndexItem.Category.PACKAGES);
|
||||
si.setLabel(resources.getText("doclet.All_Packages"));
|
||||
si.setUrl(DocPaths.ALLPACKAGES_INDEX.getPath());
|
||||
configuration.packageSearchIndex.add(si);
|
||||
@ -447,7 +447,7 @@ public class AbstractIndexWriter extends HtmlDocletWriter {
|
||||
createSearchIndexFile(DocPaths.PACKAGE_SEARCH_INDEX_JSON, DocPaths.PACKAGE_SEARCH_INDEX_ZIP,
|
||||
DocPaths.PACKAGE_SEARCH_INDEX_JS, configuration.packageSearchIndex, "packageSearchIndex");
|
||||
SearchIndexItem si = new SearchIndexItem();
|
||||
si.setCategory(resources.getText("doclet.Types"));
|
||||
si.setCategory(SearchIndexItem.Category.TYPES);
|
||||
si.setLabel(resources.getText("doclet.All_Classes"));
|
||||
si.setUrl(DocPaths.ALLCLASSES_INDEX.getPath());
|
||||
configuration.typeSearchIndex.add(si);
|
||||
|
@ -35,9 +35,17 @@ package jdk.javadoc.internal.doclets.formats.html;
|
||||
*/
|
||||
public class SearchIndexItem {
|
||||
|
||||
enum Category {
|
||||
MODULES,
|
||||
PACKAGES,
|
||||
TYPES,
|
||||
MEMBERS,
|
||||
SEARCH_TAGS
|
||||
}
|
||||
|
||||
private Category category;
|
||||
private String label = "";
|
||||
private String url = "";
|
||||
private String category = "";
|
||||
private String containingModule = "";
|
||||
private String containingPackage = "";
|
||||
private String containingClass = "";
|
||||
@ -72,7 +80,7 @@ public class SearchIndexItem {
|
||||
containingClass = c;
|
||||
}
|
||||
|
||||
public void setCategory(String c) {
|
||||
public void setCategory(Category c) {
|
||||
category = c;
|
||||
}
|
||||
|
||||
@ -94,11 +102,13 @@ public class SearchIndexItem {
|
||||
|
||||
public String toString() {
|
||||
StringBuilder item = new StringBuilder("");
|
||||
if (category.equals("Modules")) {
|
||||
switch (category) {
|
||||
case MODULES:
|
||||
item.append("{")
|
||||
.append("\"l\":\"").append(label).append("\"")
|
||||
.append("}");
|
||||
} else if (category.equals("Packages")) {
|
||||
break;
|
||||
case PACKAGES:
|
||||
item.append("{");
|
||||
if (!containingModule.isEmpty()) {
|
||||
item.append("\"m\":\"").append(containingModule).append("\",");
|
||||
@ -108,7 +118,8 @@ public class SearchIndexItem {
|
||||
item.append(",\"url\":\"").append(url).append("\"");
|
||||
}
|
||||
item.append("}");
|
||||
} else if (category.equals("Types")) {
|
||||
break;
|
||||
case TYPES:
|
||||
item.append("{");
|
||||
if (!containingPackage.equals("")) {
|
||||
item.append("\"p\":\"").append(containingPackage).append("\",");
|
||||
@ -118,7 +129,8 @@ public class SearchIndexItem {
|
||||
item.append(",\"url\":\"").append(url).append("\"");
|
||||
}
|
||||
item.append("}");
|
||||
} else if (category.equals("Members")) {
|
||||
break;
|
||||
case MEMBERS:
|
||||
item.append("{")
|
||||
.append("\"p\":\"").append(containingPackage).append("\",")
|
||||
.append("\"c\":\"").append(containingClass).append("\",")
|
||||
@ -127,7 +139,8 @@ public class SearchIndexItem {
|
||||
item.append(",\"url\":\"").append(url).append("\"");
|
||||
}
|
||||
item.append("}");
|
||||
} else {
|
||||
break;
|
||||
case SEARCH_TAGS:
|
||||
item.append("{")
|
||||
.append("\"l\":\"").append(label).append("\",")
|
||||
.append("\"h\":\"").append(holder).append("\",");
|
||||
@ -136,6 +149,9 @@ public class SearchIndexItem {
|
||||
}
|
||||
item.append("\"u\":\"").append(url).append("\"")
|
||||
.append("}");
|
||||
break;
|
||||
default:
|
||||
throw new IllegalStateException("category not set");
|
||||
}
|
||||
return item.toString();
|
||||
}
|
||||
|
@ -457,8 +457,7 @@ public class TagletWriterImpl extends TagletWriter {
|
||||
return null;
|
||||
}
|
||||
}.visit(element);
|
||||
Contents contents = configuration.getContents();
|
||||
si.setCategory(contents.getContent("doclet.SearchTags").toString());
|
||||
si.setCategory(SearchIndexItem.Category.SEARCH_TAGS);
|
||||
configuration.tagSearchIndex.add(si);
|
||||
}
|
||||
}
|
||||
|
@ -211,9 +211,6 @@ doclet.Modifier=Modifier
|
||||
doclet.Type=Type
|
||||
doclet.Modifier_and_Type=Modifier and Type
|
||||
doclet.Implementation=Implementation(s):
|
||||
doclet.Types=Types
|
||||
doclet.Members=Members
|
||||
doclet.SearchTags=SearchTags
|
||||
doclet.search=SEARCH:
|
||||
doclet.Field=Field
|
||||
doclet.Property=Property
|
||||
|
3
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclets_ja.properties
3
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclets_ja.properties
@ -202,9 +202,6 @@ doclet.Modifier=\u4FEE\u98FE\u5B50
|
||||
doclet.Type=\u30BF\u30A4\u30D7
|
||||
doclet.Modifier_and_Type=\u4FEE\u98FE\u5B50\u3068\u30BF\u30A4\u30D7
|
||||
doclet.Implementation=\u5B9F\u88C5:
|
||||
doclet.Types=\u30BF\u30A4\u30D7
|
||||
doclet.Members=\u30E1\u30F3\u30D0\u30FC
|
||||
doclet.SearchTags=SearchTags
|
||||
doclet.search=SEARCH:
|
||||
doclet.Field=\u30D5\u30A3\u30FC\u30EB\u30C9
|
||||
doclet.Property=\u30D7\u30ED\u30D1\u30C6\u30A3
|
||||
|
@ -202,9 +202,6 @@ doclet.Modifier=\u9650\u5B9A\u7B26
|
||||
doclet.Type=\u7C7B\u578B
|
||||
doclet.Modifier_and_Type=\u4FEE\u9970\u7B26\u548C\u7C7B\u578B
|
||||
doclet.Implementation=\u5B9E\u73B0:
|
||||
doclet.Types=\u7C7B\u578B
|
||||
doclet.Members=\u6210\u5458
|
||||
doclet.SearchTags=\u641C\u7D22\u6807\u8BB0
|
||||
doclet.search=SEARCH:
|
||||
doclet.Field=\u5B57\u6BB5
|
||||
doclet.Property=\u5C5E\u6027
|
||||
|
@ -362,6 +362,44 @@ public class TestSearch extends JavadocTester {
|
||||
checkSearchIndex(false);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testJapaneseLocale() {
|
||||
javadoc("-locale", "ja_JP",
|
||||
"-d", "out-jp",
|
||||
"--no-module-directories",
|
||||
"-Xdoclint:none",
|
||||
"-sourcepath", testSrc,
|
||||
"-use",
|
||||
"pkg", "pkg1", "pkg2", "pkg3");
|
||||
checkExit(Exit.OK);
|
||||
checkOutput(Output.OUT, true,
|
||||
"\u30d1\u30c3\u30b1\u30fc\u30b8pkg\u306e\u30bd\u30fc\u30b9\u30fb\u30d5\u30a1" +
|
||||
"\u30a4\u30eb\u3092\u8aad\u307f\u8fbc\u3093\u3067\u3044\u307e\u3059...\n",
|
||||
"\u30d1\u30c3\u30b1\u30fc\u30b8pkg1\u306e\u30bd\u30fc\u30b9\u30fb\u30d5\u30a1" +
|
||||
"\u30a4\u30eb\u3092\u8aad\u307f\u8fbc\u3093\u3067\u3044\u307e\u3059...\n");
|
||||
checkSearchJS();
|
||||
checkSearchIndex(true);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testChineseLocale() {
|
||||
javadoc("-locale", "zh_CN",
|
||||
"-d", "out-cn",
|
||||
"--no-module-directories",
|
||||
"-Xdoclint:none",
|
||||
"-sourcepath", testSrc,
|
||||
"-use",
|
||||
"pkg", "pkg1", "pkg2", "pkg3");
|
||||
checkExit(Exit.OK);
|
||||
checkOutput(Output.OUT, true,
|
||||
"\u6b63\u5728\u52a0\u8f7d\u7a0b\u5e8f\u5305pkg\u7684\u6e90\u6587\u4ef6...\n",
|
||||
"\u6b63\u5728\u52a0\u8f7d\u7a0b\u5e8f\u5305pkg1\u7684\u6e90\u6587\u4ef6...\n",
|
||||
"\u6b63\u5728\u52a0\u8f7d\u7a0b\u5e8f\u5305pkg2\u7684\u6e90\u6587\u4ef6...\n",
|
||||
"\u6b63\u5728\u52a0\u8f7d\u7a0b\u5e8f\u5305pkg3\u7684\u6e90\u6587\u4ef6...\n");
|
||||
checkSearchJS();
|
||||
checkSearchIndex(true);
|
||||
}
|
||||
|
||||
void checkDocLintErrors() {
|
||||
checkOutput(Output.OUT, true,
|
||||
"A sample method. Testing search tag for {@index \"unclosed quote}.",
|
||||
|
Loading…
x
Reference in New Issue
Block a user