From 55037b1691c736b3cf95eadf583a8be526b9a3a2 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Fri, 07 Dec 2012 09:20:30 -0500 Subject: [PATCH] Support languagecode-countrycode Markdown resources --- src/com/gitblit/wicket/pages/ProjectsPage.java | 64 ++++++++++++++++++-------------- 1 files changed, 36 insertions(+), 28 deletions(-) diff --git a/src/com/gitblit/wicket/pages/ProjectsPage.java b/src/com/gitblit/wicket/pages/ProjectsPage.java index 7161d0f..4e3e630 100644 --- a/src/com/gitblit/wicket/pages/ProjectsPage.java +++ b/src/com/gitblit/wicket/pages/ProjectsPage.java @@ -194,39 +194,47 @@ } private String readDefaultMarkdown(String file) { - String content = readDefaultMarkdown(file, getLanguageCode()); - if (StringUtils.isEmpty(content)) { - content = readDefaultMarkdown(file, null); - } - return content; - } + String base = file.substring(0, file.lastIndexOf('.')); + String ext = file.substring(file.lastIndexOf('.')); + String lc = getLanguageCode(); + String cc = getCountryCode(); - private String readDefaultMarkdown(String file, String lc) { + // try to read file_en-us.ext, file_en.ext, file.ext + List<String> files = new ArrayList<String>(); if (!StringUtils.isEmpty(lc)) { - // convert to file_lc.mkd - file = file.substring(0, file.lastIndexOf('.')) + "_" + lc - + file.substring(file.lastIndexOf('.')); + if (!StringUtils.isEmpty(cc)) { + files.add(base + "_" + lc + "-" + cc + ext); + files.add(base + "_" + lc + "_" + cc + ext); + } + files.add(base + "_" + lc + ext); } - String message; - try { - ContextRelativeResource res = WicketUtils.getResource(file); - InputStream is = res.getResourceStream().getInputStream(); - InputStreamReader reader = new InputStreamReader(is, Constants.CHARACTER_ENCODING); - message = MarkdownUtils.transformMarkdown(reader); - reader.close(); - } catch (ResourceStreamNotFoundException t) { - if (lc == null) { - // could not find default language resource + files.add(file); + + for (String name : files) { + String message; + InputStreamReader reader = null; + try { + ContextRelativeResource res = WicketUtils.getResource(name); + InputStream is = res.getResourceStream().getInputStream(); + reader = new InputStreamReader(is, Constants.CHARACTER_ENCODING); + message = MarkdownUtils.transformMarkdown(reader); + reader.close(); + return message; + } catch (ResourceStreamNotFoundException t) { + continue; + } catch (Throwable t) { message = MessageFormat.format(getString("gb.failedToReadMessage"), file); error(message, t, false); - } else { - // ignore so we can try default language resource - message = null; - } - } catch (Throwable t) { - message = MessageFormat.format(getString("gb.failedToReadMessage"), file); - error(message, t, false); + return message; + } finally { + if (reader != null) { + try { + reader.close(); + } catch (Exception e) { + } + } + } } - return message; + return MessageFormat.format(getString("gb.failedToReadMessage"), file); } } -- Gitblit v1.9.1