From 16e4747d3cb2c2a53a6bef554bca306d8594a080 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 14 Sep 2012 17:51:04 -0400
Subject: [PATCH] Mostly complete blob view line links feature, DOM offset bug remains (issue 130)

---
 src/com/gitblit/wicket/pages/RepositoriesPage.java |   31 +++++++++++++++++++++++++++----
 1 files changed, 27 insertions(+), 4 deletions(-)

diff --git a/src/com/gitblit/wicket/pages/RepositoriesPage.java b/src/com/gitblit/wicket/pages/RepositoriesPage.java
index 839f4e3..98dade6 100644
--- a/src/com/gitblit/wicket/pages/RepositoriesPage.java
+++ b/src/com/gitblit/wicket/pages/RepositoriesPage.java
@@ -17,6 +17,7 @@
 
 import java.io.File;
 import java.io.FileInputStream;
+import java.io.FileNotFoundException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.text.MessageFormat;
@@ -26,6 +27,7 @@
 import org.apache.wicket.PageParameters;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.resource.ContextRelativeResource;
+import org.apache.wicket.util.resource.ResourceStreamNotFoundException;
 import org.eclipse.jgit.lib.Constants;
 
 import com.gitblit.GitBlit;
@@ -126,11 +128,11 @@
 						message = MarkdownUtils.transformMarkdown(reader);
 						reader.close();
 					} catch (Throwable t) {
-						message = "Failed to read " + file;
+						message = getString("gb.failedToRead") + " " + file;
 						warn(message, t);
 					}
 				} else {
-					message = messageSource + " is not a valid file.";
+					message = messageSource + " " + getString("gb.isNotValidFile");
 				}
 			}
 		}
@@ -138,15 +140,36 @@
 	}
 
 	private String readDefaultMarkdown(String file) {
+		String content = readDefaultMarkdown(file, getLanguageCode());
+		if (StringUtils.isEmpty(content)) {
+			content = readDefaultMarkdown(file, null);
+		}
+		return content;
+	}
+	
+	private String readDefaultMarkdown(String file, String lc) {
+		if (!StringUtils.isEmpty(lc)) {
+			// convert to file_lc.mkd
+			file = file.substring(0, file.lastIndexOf('.')) + "_" + lc + file.substring(file.lastIndexOf('.'));
+		}
 		String message;
-		try {
+		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
+				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("Failed to read default message from {0}!", file);
+			message = MessageFormat.format(getString("gb.failedToReadMessage"), file);
 			error(message, t, false);
 		}
 		return message;

--
Gitblit v1.9.1