Browse Source

Fix forcing default locale to en or LANG_CC for web ui

tags/v1.5.1
James Moger 10 years ago
parent
commit
a8100bb4d3

+ 1
- 0
releases.moxie View File

@@ -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

+ 6
- 0
src/main/java/com/gitblit/manager/GitblitManager.java View File

@@ -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();

+ 9
- 0
src/main/java/com/gitblit/manager/IRuntimeManager.java View File

@@ -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.

+ 19
- 0
src/main/java/com/gitblit/manager/RuntimeManager.java View File

@@ -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?
*

+ 6
- 0
src/main/java/com/gitblit/models/UserPreferences.java View File

@@ -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);
}


+ 3
- 4
src/main/java/com/gitblit/wicket/GitBlitWebApp.java View File

@@ -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;
}

+ 6
- 0
src/test/java/com/gitblit/tests/mock/MockRuntimeManager.java View File

@@ -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;

Loading…
Cancel
Save