From 4b647b3d88b50c2be8c8142ad42d2188e8537c2e Mon Sep 17 00:00:00 2001 From: j2blake Date: Fri, 13 Sep 2013 14:23:17 -0400 Subject: [PATCH] VIVO-293 Create language strings for search error messages. --- .../languages/example/i18n/all_es.properties | 12 +++++ .../controller/PagedSearchController.java | 44 ++++++++++--------- webapp/web/i18n/all.properties | 12 +++++ 3 files changed, 47 insertions(+), 21 deletions(-) diff --git a/webapp/languages/example/i18n/all_es.properties b/webapp/languages/example/i18n/all_es.properties index b092529ea..0688a577f 100644 --- a/webapp/languages/example/i18n/all_es.properties +++ b/webapp/languages/example/i18n/all_es.properties @@ -508,6 +508,18 @@ previous = Anterior page_link = enlace de la página next_capitalized = Próximo +# +# search controller ( PagedSearchController.java ) +# +error_in_search_request = La petici—n de bœsqueda conten’a errores. +enter_search_term = Por favor introduzca un tŽrmino de bœsqueda. +invalid_search_term = Criterio de bœsqueda no es v‡lido +paging_link_more = m‡s ... +no_matching_results = No hay resultados que coincidan. +search_failed = Buscar fall—. +search_term_error_near = El tŽrmino de bœsqueda tuvo un error cerca +search_for = Buscar ''{0}'' + # # shortview templates ( /templates/freemarker/body/partials/shortview ) # diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/search/controller/PagedSearchController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/search/controller/PagedSearchController.java index b74979164..3e27899e3 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/search/controller/PagedSearchController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/search/controller/PagedSearchController.java @@ -44,6 +44,7 @@ import edu.cornell.mannlib.vitro.webapp.dao.IndividualDao; import edu.cornell.mannlib.vitro.webapp.dao.VClassDao; import edu.cornell.mannlib.vitro.webapp.dao.VClassGroupDao; import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary; +import edu.cornell.mannlib.vitro.webapp.i18n.I18n; import edu.cornell.mannlib.vitro.webapp.search.IndexConstants; import edu.cornell.mannlib.vitro.webapp.search.SearchException; import edu.cornell.mannlib.vitro.webapp.search.VitroSearchTermNames; @@ -164,9 +165,9 @@ public class PagedSearchController extends FreemarkerHttpServlet { log.debug("Query text is \""+ queryText + "\""); - String badQueryMsg = badQueryText( queryText ); + String badQueryMsg = badQueryText( queryText, vreq ); if( badQueryMsg != null ){ - return doFailedSearch(badQueryMsg, queryText, format); + return doFailedSearch(badQueryMsg, queryText, format, vreq); } SolrQuery query = getQuery(queryText, hitsPerPage, startIndex, vreq); @@ -176,26 +177,26 @@ public class PagedSearchController extends FreemarkerHttpServlet { try { response = solr.query(query); } catch (Exception ex) { - String msg = makeBadSearchMessage(queryText, ex.getMessage()); + String msg = makeBadSearchMessage(queryText, ex.getMessage(), vreq); log.error("could not run Solr query",ex); - return doFailedSearch(msg, queryText, format); + return doFailedSearch(msg, queryText, format, vreq); } if (response == null) { log.error("Search response was null"); - return doFailedSearch("The search request contained errors.", queryText, format); + return doFailedSearch(I18n.text(vreq, "error_in_search_request"), queryText, format, vreq); } SolrDocumentList docs = response.getResults(); if (docs == null) { log.error("Document list for a search was null"); - return doFailedSearch("The search request contained errors.", queryText,format); + return doFailedSearch(I18n.text(vreq, "error_in_search_request"), queryText,format, vreq); } long hitCount = docs.getNumFound(); log.debug("Number of hits = " + hitCount); if ( hitCount < 1 ) { - return doNoHits(queryText,format); + return doNoHits(queryText,format, vreq); } List individuals = new ArrayList(docs.size()); @@ -275,7 +276,7 @@ public class PagedSearchController extends FreemarkerHttpServlet { body.put("pagingLinks", getPagingLinks(startIndex, hitsPerPage, hitCount, vreq.getServletPath(), - pagingLinkParams)); + pagingLinkParams, vreq)); if (startIndex != 0) { body.put("prevPage", getPreviousPageLink(startIndex, @@ -339,12 +340,12 @@ public class PagedSearchController extends FreemarkerHttpServlet { return startIndex; } - private String badQueryText(String qtxt) { + private String badQueryText(String qtxt, VitroRequest vreq) { if( qtxt == null || "".equals( qtxt.trim() ) ) - return "Please enter a search term."; + return I18n.text(vreq, "enter_search_term"); if( qtxt.equals("*:*") ) - return "Search term was invalid" ; + return I18n.text(vreq, "invalid_search_term") ; return null; } @@ -526,7 +527,7 @@ public class PagedSearchController extends FreemarkerHttpServlet { public String getCount() { return Long.toString(count); } } - protected static List getPagingLinks(int startIndex, int hitsPerPage, long hitCount, String baseUrl, ParamMap params) { + protected static List getPagingLinks(int startIndex, int hitsPerPage, long hitCount, String baseUrl, ParamMap params, VitroRequest vreq) { List pagingLinks = new ArrayList(); @@ -550,7 +551,7 @@ public class PagedSearchController extends FreemarkerHttpServlet { pagingLinks.add(new PagingLink(pageNumber, baseUrl, params)); } } else { - pagingLinks.add(new PagingLink("more...", baseUrl, params)); + pagingLinks.add(new PagingLink(I18n.text(vreq, "paging_link_more"), baseUrl, params)); break; } } @@ -591,20 +592,20 @@ public class PagedSearchController extends FreemarkerHttpServlet { return new ExceptionResponseValues(getTemplate(f,Result.ERROR), body, e); } - private TemplateResponseValues doFailedSearch(String message, String querytext, Format f) { + private TemplateResponseValues doFailedSearch(String message, String querytext, Format f, VitroRequest vreq) { Map body = new HashMap(); - body.put("title", "Search for '" + querytext + "'"); + body.put("title", I18n.text(vreq, "search_for", querytext)); if ( StringUtils.isEmpty(message) ) { - message = "Search failed."; + message = I18n.text(vreq, "search_failed"); } body.put("message", message); return new TemplateResponseValues(getTemplate(f,Result.ERROR), body); } - private TemplateResponseValues doNoHits(String querytext, Format f) { + private TemplateResponseValues doNoHits(String querytext, Format f, VitroRequest vreq) { Map body = new HashMap(); - body.put("title", "Search for '" + querytext + "'"); - body.put("message", "No matching results."); + body.put("title", I18n.text(vreq, "search_for", querytext)); + body.put("message", I18n.text(vreq, "no_matching_results")); return new TemplateResponseValues(getTemplate(f,Result.ERROR), body); } @@ -613,7 +614,7 @@ public class PagedSearchController extends FreemarkerHttpServlet { * @param queryText * @param exceptionMsg */ - private String makeBadSearchMessage(String querytext, String exceptionMsg){ + private String makeBadSearchMessage(String querytext, String exceptionMsg, VitroRequest vreq){ String rv = ""; try{ //try to get the column in the search term that is causing the problems @@ -641,7 +642,8 @@ public class PagedSearchController extends FreemarkerHttpServlet { if (post > i) after = querytext.substring(i + 1, post); - rv = "The search term had an error near " + rv = I18n.text(vreq, "search_term_error_near") + + " " + before + "" + querytext.charAt(i) + "" + after + ""; } catch (Throwable ex) { diff --git a/webapp/web/i18n/all.properties b/webapp/web/i18n/all.properties index b0dffd8e3..ce2217ce1 100644 --- a/webapp/web/i18n/all.properties +++ b/webapp/web/i18n/all.properties @@ -520,6 +520,18 @@ previous = Previous page_link = page link next_capitalized = Next +# +# search controller ( PagedSearchController.java ) +# +error_in_search_request = The search request contained errors. +enter_search_term = Please enter a search term. +invalid_search_term = Search term was invalid +paging_link_more = more... +no_matching_results = No matching results. +search_failed = Search failed. +search_term_error_near = The search term had an error near +search_for = Search for ''{0}'' + # # shortview templates ( /templates/freemarker/body/partials/shortview ) #