@@ -13,6 +13,7 @@ r23: { | |||
- Fix subdirectory links in pages servlet (issue-411) | |||
- Fix subdirectory navigation in pages servlet (issue-412) | |||
- Fix bug in adding invalid or empty SSH keys (ticket-50) | |||
- Fix forcing default locale to en or LANG_CC for web ui (ticket-51) | |||
changes: | |||
- improve French translation (pr-176) | |||
- simplify current plugin release detection and ignore the currentRelease registry field |
@@ -27,6 +27,7 @@ import java.util.ArrayList; | |||
import java.util.Collection; | |||
import java.util.Date; | |||
import java.util.List; | |||
import java.util.Locale; | |||
import java.util.Map; | |||
import java.util.TimeZone; | |||
@@ -605,6 +606,11 @@ public class GitblitManager implements IGitblit { | |||
return runtimeManager.getTimezone(); | |||
} | |||
@Override | |||
public Locale getLocale() { | |||
return runtimeManager.getLocale(); | |||
} | |||
@Override | |||
public boolean isDebugMode() { | |||
return runtimeManager.isDebugMode(); |
@@ -17,6 +17,7 @@ package com.gitblit.manager; | |||
import java.io.File; | |||
import java.util.Date; | |||
import java.util.Locale; | |||
import java.util.Map; | |||
import java.util.TimeZone; | |||
@@ -38,6 +39,14 @@ public interface IRuntimeManager extends IManager { | |||
*/ | |||
TimeZone getTimezone(); | |||
/** | |||
* Returns the fixed locale for clients, or null if clients may choose their locale | |||
* | |||
* @return a fixed locale or null if clients are allowed to specify locale preference | |||
* @since 1.5.1 | |||
*/ | |||
Locale getLocale(); | |||
/** | |||
* Determine if this Gitblit instance is actively serving git repositories | |||
* or if it is merely a repository viewer. |
@@ -18,6 +18,7 @@ package com.gitblit.manager; | |||
import java.io.File; | |||
import java.text.SimpleDateFormat; | |||
import java.util.Date; | |||
import java.util.Locale; | |||
import java.util.Map; | |||
import java.util.TimeZone; | |||
@@ -63,6 +64,8 @@ public class RuntimeManager implements IRuntimeManager { | |||
logger.info("Settings : " + settings.toString()); | |||
logTimezone("JVM timezone: ", TimeZone.getDefault()); | |||
logTimezone("App timezone: ", getTimezone()); | |||
logger.info("JVM locale : " + Locale.getDefault()); | |||
logger.info("App locale : " + (getLocale() == null ? "<client>" : getLocale())); | |||
return this; | |||
} | |||
@@ -146,6 +149,22 @@ public class RuntimeManager implements IRuntimeManager { | |||
logger.info("{}{} ({})", new Object [] { type, zone.getID(), offset }); | |||
} | |||
@Override | |||
public Locale getLocale() { | |||
String lc = settings.getString(Keys.web.forceDefaultLocale, null); | |||
if (!StringUtils.isEmpty(lc)) { | |||
int underscore = lc.indexOf('_'); | |||
if (underscore > 0) { | |||
String lang = lc.substring(0, underscore); | |||
String cc = lc.substring(underscore + 1); | |||
return new Locale(lang, cc); | |||
} else { | |||
return new Locale(lc); | |||
} | |||
} | |||
return null; | |||
} | |||
/** | |||
* Is Gitblit running in debug mode? | |||
* |
@@ -49,6 +49,12 @@ public class UserPreferences implements Serializable { | |||
if (StringUtils.isEmpty(locale)) { | |||
return null; | |||
} | |||
int underscore = locale.indexOf('_'); | |||
if (underscore > 0) { | |||
String lang = locale.substring(0, underscore); | |||
String cc = locale.substring(underscore + 1); | |||
return new Locale(lang, cc); | |||
} | |||
return new Locale(locale); | |||
} | |||
@@ -41,7 +41,6 @@ import com.gitblit.manager.IRuntimeManager; | |||
import com.gitblit.manager.IUserManager; | |||
import com.gitblit.tickets.ITicketService; | |||
import com.gitblit.transport.ssh.IPublicKeyManager; | |||
import com.gitblit.utils.StringUtils; | |||
import com.gitblit.wicket.pages.ActivityPage; | |||
import com.gitblit.wicket.pages.BlamePage; | |||
import com.gitblit.wicket.pages.BlobDiffPage; | |||
@@ -242,9 +241,9 @@ public class GitBlitWebApp extends WebApplication { | |||
public final Session newSession(Request request, Response response) { | |||
GitBlitWebSession gitBlitWebSession = new GitBlitWebSession(request); | |||
String forcedLocale = settings.getString(Keys.web.forceDefaultLocale, null); | |||
if (!StringUtils.isEmpty(forcedLocale)) { | |||
gitBlitWebSession.setLocale(new Locale(forcedLocale)); | |||
Locale forcedLocale = runtime().getLocale(); | |||
if (forcedLocale != null) { | |||
gitBlitWebSession.setLocale(forcedLocale); | |||
} | |||
return gitBlitWebSession; | |||
} |
@@ -17,6 +17,7 @@ package com.gitblit.tests.mock; | |||
import java.io.File; | |||
import java.util.Date; | |||
import java.util.Locale; | |||
import java.util.Map; | |||
import java.util.TimeZone; | |||
@@ -70,6 +71,11 @@ public class MockRuntimeManager implements IRuntimeManager { | |||
return TimeZone.getDefault(); | |||
} | |||
@Override | |||
public Locale getLocale() { | |||
return Locale.getDefault(); | |||
} | |||
@Override | |||
public boolean isServingRepositories() { | |||
return true; |