From aefb59ef98522ef8a10ab64b25840f11e622e1c7 Mon Sep 17 00:00:00 2001 From: Stardrad Yin <yin8086@gmail.com> Date: Wed, 23 Jan 2013 03:16:08 -0500 Subject: [PATCH] Modify Chinese translation in properties file, and add new translation that synchronizes with commit synchronize with commit e4e6829 --- src/com/gitblit/utils/StringUtils.java | 64 +++++++++++++++++++++++++++---- 1 files changed, 55 insertions(+), 9 deletions(-) diff --git a/src/com/gitblit/utils/StringUtils.java b/src/com/gitblit/utils/StringUtils.java index 0711338..86823db 100644 --- a/src/com/gitblit/utils/StringUtils.java +++ b/src/com/gitblit/utils/StringUtils.java @@ -263,13 +263,25 @@ */ public static String getMD5(String string) { try { - MessageDigest md = MessageDigest.getInstance("MD5"); - md.reset(); - md.update(string.getBytes("iso-8859-1")); - byte[] digest = md.digest(); - return toHex(digest); + return getMD5(string.getBytes("iso-8859-1")); } catch (UnsupportedEncodingException u) { throw new RuntimeException(u); + } + } + + /** + * Calculates the MD5 of the string. + * + * @param string + * @return md5 of the string + */ + public static String getMD5(byte [] bytes) { + try { + MessageDigest md = MessageDigest.getInstance("MD5"); + md.reset(); + md.update(bytes); + byte[] digest = md.digest(); + return toHex(digest); } catch (NoSuchAlgorithmException t) { throw new RuntimeException(t); } @@ -315,11 +327,16 @@ * @return the relative path */ public static String getRelativePath(String basePath, String fullPath) { - String relativePath = fullPath.substring(basePath.length()).replace('\\', '/'); - if (relativePath.charAt(0) == '/') { - relativePath = relativePath.substring(1); + String bp = basePath.replace('\\', '/').toLowerCase(); + String fp = fullPath.replace('\\', '/').toLowerCase(); + if (fp.startsWith(bp)) { + String relativePath = fullPath.substring(basePath.length()).replace('\\', '/'); + if (relativePath.charAt(0) == '/') { + relativePath = relativePath.substring(1); + } + return relativePath; } - return relativePath; + return fullPath; } /** @@ -422,6 +439,8 @@ public static int compareRepositoryNames(String r1, String r2) { // sort root repositories first, alphabetically // then sort grouped repositories, alphabetically + r1 = r1.toLowerCase(); + r2 = r2.toLowerCase(); int s1 = r1.indexOf('/'); int s2 = r2.indexOf('/'); if (s1 == -1 && s2 == -1) { @@ -687,4 +706,31 @@ } return path; } + + /** + * Variation of String.matches() which disregards case issues. + * + * @param regex + * @param input + * @return true if the pattern matches + */ + public static boolean matchesIgnoreCase(String input, String regex) { + Pattern p = Pattern.compile(regex, Pattern.CASE_INSENSITIVE); + Matcher m = p.matcher(input); + return m.matches(); + } + + /** + * Removes new line and carriage return chars from a string. + * If input value is null an empty string is returned. + * + * @param input + * @return a sanitized or empty string + */ + public static String removeNewlines(String input) { + if (input == null) { + return ""; + } + return input.replace('\n',' ').replace('\r', ' ').trim(); + } } \ No newline at end of file -- Gitblit v1.9.1