Merge pull request #196 from giamma/release-v1.6.0

Italian translation.
diff --git a/HOME.md b/HOME.md
index 6d19d0d..7c5449d 100644
--- a/HOME.md
+++ b/HOME.md
@@ -18,11 +18,6 @@
 [[src/site/setup_war.mkd]]

 [[src/site/upgrade_war.mkd]]

 

-### Gitblit Express for OpenShift

-

-[[src/site/setup_express.mkd]]

-[[src/site/upgrade_express.mkd]]

-

 ### General Configuration & Administration

 

 [[src/site/setup_authentication.mkd]]

diff --git a/releases.moxie b/releases.moxie
index ce75420..64039bc 100644
--- a/releases.moxie
+++ b/releases.moxie
@@ -23,6 +23,8 @@
           * Basic CRUD pages for ticket milestones
           * Overhaul repository creation, editing, and empty repository pages
           
+          If you are upgrading, you might consider copying the data/gitignore folder to your ${baseFolder} to allow selection & injection of a .gitignore when creating a repository.
+          
           The OpenShift Express build has been dropped. You can deploy GO or WAR on Express so this build is no longer necessary.
           ''
     security: ~
@@ -37,6 +39,8 @@
     - Fixed SSH daemon thread exhaustion (ticket-89)
     - Fixed Ticket responsible selections not considering the AUTHENTICATED authorization control (ticket-91)
     - Fixed invalid generated SSH url for port 22 (issue-444, ticket-98)
+    - Fix cloning repositories with `+` in their names. (revert pr-136, issue-362, ticket-100)
+    - Fixed NPE in GitblitClient (ticket-102)
     changes:
     - Split the pages servlet into a raw servlet and a pages servlet. All raw links now use the raw servlet (issue-413, ticket-49)
     - Drop deprecated --set-upstream syntax for -u (ticket-59)
@@ -44,6 +48,7 @@
     - BARNUM: Create ticket/N instead of topic/N for pt start N (ticket-61)
     - Move repository deletion functions to the edit repository page AND allow deletion to be disabled (pr-180, ticket-67)
     - Update the Korean translation (pr-184, ticket-69)
+    - Update the Dutch translation (pr-191)
     - Overhaul the EmptyRepositoryPage (ticket-73)
     - Overhauled the edit repository page (ticket-76)
     - Process bugtraq links in the ticket description and comments (ticket-78)
@@ -63,6 +68,8 @@
     - Tag server-side merges when incremental push tags are enabled (issue-432, ticket-85)
     - Add a user preference for the clone transport (ticket-90)
     - Add setting to control default thread pool size for miscellaneous background tasks (ticket-92)
+    - Add Norwegian transation (pr-186)
+    - Add German translation (pr-192)
     dependencyChanges:
     - Update to javax.mail 1.5.1 (issue-417, ticket-58)
     contributors:
@@ -76,6 +83,14 @@
     - Matthias Cullmann
     - Emmeran Seehuber
     - Sascha Vogt
+    - Carsten Lenz
+    - Matthias Sohn
+    - Leif Jantzen
+    - Stardrad Yin
+    - Jeroen Baten
+    - Dongsu Kim
+    - Karanbir Singh
+    - Tamás Papp
     settings:
     - { name: 'web.allowDeletingNonEmptyRepositories', defaultValue: 'true' }
     - { name: 'web.includePersonalRepositories', defaultValue: 'false' }
diff --git a/src/main/java/com/gitblit/client/GitblitClient.java b/src/main/java/com/gitblit/client/GitblitClient.java
index 66625a8..f5bba1a 100644
--- a/src/main/java/com/gitblit/client/GitblitClient.java
+++ b/src/main/java/com/gitblit/client/GitblitClient.java
@@ -253,9 +253,11 @@
 

 		// create list of available scripts by excluding inherited scripts

 		List<String> scripts = new ArrayList<String>();

-		for (String script : settings.pushScripts) {

-			if (!inherited.contains(script)) {

-				scripts.add(script);

+		if (!ArrayUtils.isEmpty(settings.pushScripts)) {

+			for (String script : settings.pushScripts) {

+				if (!inherited.contains(script)) {

+					scripts.add(script);

+				}

 			}

 		}

 		return scripts;

diff --git a/src/main/java/com/gitblit/servlet/AuthenticationFilter.java b/src/main/java/com/gitblit/servlet/AuthenticationFilter.java
index 5710a4a..c21f869 100644
--- a/src/main/java/com/gitblit/servlet/AuthenticationFilter.java
+++ b/src/main/java/com/gitblit/servlet/AuthenticationFilter.java
@@ -16,8 +16,6 @@
 package com.gitblit.servlet;

 

 import java.io.IOException;

-import java.io.UnsupportedEncodingException;

-import java.net.URLDecoder;

 import java.security.Principal;

 import java.util.Enumeration;

 import java.util.HashMap;

@@ -103,12 +101,6 @@
 			url = url.substring(1);

 		}

 		String fullUrl = url + (StringUtils.isEmpty(params) ? "" : ("?" + params));

-		try {

-			fullUrl = URLDecoder.decode(fullUrl, "UTF-8");

-		} catch (UnsupportedEncodingException e) {

-			logger.warn("UTF-8 decoding of URL failed: "+fullUrl, e);

-			e.printStackTrace();

-		}

 		return fullUrl;

 	}

 

diff --git a/src/main/java/com/gitblit/utils/StringUtils.java b/src/main/java/com/gitblit/utils/StringUtils.java
index d7e1ea3..087de54 100644
--- a/src/main/java/com/gitblit/utils/StringUtils.java
+++ b/src/main/java/com/gitblit/utils/StringUtils.java
@@ -129,6 +129,8 @@
 				retStr.append("%20");

 			} else if (inStr.charAt(i) == '&') {

 				retStr.append("%26");

+			} else if (inStr.charAt(i) == '+') {

+				retStr.append("%2B");

 			} else {

 				retStr.append(inStr.charAt(i));

 			}

@@ -398,7 +400,7 @@
 	 * @return the first invalid character found or null if string is acceptable

 	 */

 	public static Character findInvalidCharacter(String name) {

-		char[] validChars = { '/', '.', '_', '-', '~' };

+		char[] validChars = { '/', '.', '_', '-', '~', '+' };

 		for (char c : name.toCharArray()) {

 			if (!Character.isLetterOrDigit(c)) {

 				boolean ok = false;

diff --git a/src/main/java/com/gitblit/wicket/GitBlitWebApp_de.properties b/src/main/java/com/gitblit/wicket/GitBlitWebApp_de.properties
new file mode 100644
index 0000000..3ec330b
--- /dev/null
+++ b/src/main/java/com/gitblit/wicket/GitBlitWebApp_de.properties
@@ -0,0 +1,745 @@
+gb.repository = Repository
+gb.owner = Besitzer
+gb.description = Beschreibung
+gb.lastChange = Letzte \u00c4nderung
+gb.refs = Refs
+gb.tag = Tag
+gb.tags = Tags
+gb.author = Autor
+gb.committer = Committer
+gb.commit = Commit
+gb.age = Alter
+gb.tree = Dateibaum
+gb.parent = Parent
+gb.url = URL
+gb.history = Historie
+gb.raw = Raw
+gb.object = Object
+gb.ticketId = Ticket Id
+gb.ticketAssigned = Zugewiesen
+gb.ticketOpenDate = Erstellt
+gb.ticketStatus = Status
+gb.ticketComments = Kommentare
+gb.view = Ansicht
+gb.local = Lokal
+gb.remote = Remote
+gb.branches = Branches
+gb.patch = Patch
+gb.diff = Diff
+gb.log = Log
+gb.moreLogs = Weitere Commits...
+gb.allTags = Alle Tags...
+gb.allBranches = Alle Branches...
+gb.summary = \u00dcbersicht
+gb.ticket = Ticket
+gb.newRepository = Neues Repository
+gb.newUser = Neuer Benutzer
+gb.commitdiff = Commitdiff
+gb.tickets = Tickets
+gb.pageFirst = Anfang
+gb.pagePrevious = Zur\u00fcck
+gb.pageNext = Weiter
+gb.head = HEAD
+gb.blame = Blame
+gb.login = Login
+gb.logout = Logout
+gb.username = Benutzername
+gb.password = Passwort
+gb.tagger = Tagger
+gb.moreHistory = Mehr Historie...
+gb.difftocurrent = Diff zu aktuellem Stand
+gb.search = Suche
+gb.searchForAuthor = Suche nach Commits von Autor
+gb.searchForCommitter = Suche nach Commits von Committer
+gb.addition = Neu
+gb.modification = Modifikation
+gb.deletion = L\u00f6schung
+gb.rename = Umbenennung
+gb.metrics = Metriken
+gb.stats = Statistiken
+gb.markdown = Markdown
+gb.changedFiles = Ge\u00e4nderte Dateien
+gb.filesAdded = {0} Dateien hinzugef\u00fcgt
+gb.filesModified = {0} Dateien ge\u00e4ndert
+gb.filesDeleted = {0} Dateien gel\u00f6scht
+gb.filesCopied = {0} Dateien kopiert
+gb.filesRenamed = {0} Dateien umbenannt
+gb.missingUsername = Fehlender Benutzername
+gb.edit = Bearbeiten
+gb.searchTypeTooltip = Suchart ausw\u00e4hlen
+gb.searchTooltip = Suche {0}
+gb.delete = L\u00f6schen
+gb.docs = Dokumentation
+gb.accessRestriction = Zugriffsbeschr\u00e4nkung
+gb.name = Name
+gb.enableTickets = Tickets aktivieren
+gb.enableDocs = Docs aktivieren
+gb.save = Speichern
+gb.showRemoteBranches = Zeige Remote Branches
+gb.editUsers = Benutzer bearbeiten
+gb.confirmPassword = Passwort best\u00e4tigen
+gb.restrictedRepositories = Zugriffsbeschr\u00e4nkte Repositories
+gb.canAdmin = Kann administrieren
+gb.notRestricted = Anonymes Anzeigen, Klonen und Pushen
+gb.pushRestricted = Authentifiziertes Pushen
+gb.cloneRestricted = Authentifiziertes Klonen und Pushen
+gb.viewRestricted = Authentifiziertes Anzeigen, Klonen und Pushen
+gb.useTicketsDescription = Lesende Darstellung von Ticgit Issues
+gb.useDocsDescription = Listet Markdown Dokumentation im Repository auf
+gb.showRemoteBranchesDescription = Zeige Remote Branches
+gb.canAdminDescription = Kann Gitblit Server administrieren
+gb.permittedUsers = Zugelassene Benutzer
+gb.isFrozen = ist eingefroren
+gb.isFrozenDescription = Verbiete Push
+gb.zip = Zip
+gb.showReadme = Zeige Readme
+gb.showReadmeDescription = Zeigt eine \"Readme\" Markdown Datei auf der Zusammenfassungsseite
+gb.nameDescription = Verwenden Sie '/' um Repositories zu gruppieren. Z.B. libraries/mycoollib.git
+gb.ownerDescription = Der Besitzer kann Repository-Einstellungen \u00e4ndern
+gb.blob = Blob
+gb.commitActivityTrend = Commit-Aktivit\u00e4tstrend
+gb.commitActivityDOW = Commit-Aktivit\u00e4t nach Wochentag
+gb.commitActivityAuthors = Prim\u00e4re Autoren nach Commit-Aktivit\u00e4t
+gb.feed = Feed
+gb.cancel = Abbrechen
+gb.changePassword = Passwort \u00e4ndern
+gb.isFederated = ist verbunden
+gb.federateThis = Dieses Repository verbinden (Federation)
+gb.federateOrigin = Ursprung (origin) verbinden (Federation)
+gb.excludeFromFederation = Von Verbindung ausschlie\u00dfen (Federation)
+gb.excludeFromFederationDescription = Verbiete verbundenen Gitblit Instanzen, von diesem Konto zu pullen (Federation)
+gb.tokens = Federation Tokens
+gb.tokenAllDescription = Alle Repositories, Benutzer und Einstellungen
+gb.tokenUnrDescription = Alle Repositories und Benutzer
+gb.tokenJurDescription = Alle Repositories
+gb.federatedRepositoryDefinitions = Repositorydefinitionen
+gb.federatedUserDefinitions = Benutzerdefinitionen
+gb.federatedSettingDefinitions = Einstellungsdefinitionen
+gb.proposals = Verbindungsanfrage (Federation)
+gb.received = empfangen
+gb.type = Typ
+gb.token = Token
+gb.repositories = Repositories
+gb.proposal = Anfrage
+gb.frequency = Frequenz
+gb.folder = Ordner
+gb.lastPull = Letzter Pull
+gb.nextPull = N\u00e4chster Pull
+gb.inclusions = Inclusions
+gb.exclusions = Exclusions
+gb.registration = Registrierungen
+gb.registrations = Verbindungsregistrierungen
+gb.sendProposal = Vorschlagen
+gb.status = Status
+gb.origin = Ursprung
+gb.headRef = Default Branch (HEAD)
+gb.headRefDescription = Der Default Branch, welcher gecloned und auf der Zusammenfassungsseite dargestellt wird
+gb.federationStrategy = Verbindungsstrategie
+gb.federationRegistration = Verbindungsregistrierung
+gb.federationResults = Verbindungs-Pull-Ergebnis
+gb.federationSets = federation sets
+gb.message = Nachricht
+gb.myUrlDescription = Die \u00f6ffentlich zugreifbare URL f\u00fcr Ihre Gitblit-Instanz
+gb.destinationUrl = Senden an 
+gb.destinationUrlDescription = Die URL der Gitblit-Instanz, an welche die Anfrage gestellt werden soll
+gb.users = Benutzer
+gb.federation = Verbindungen (Federation)
+gb.error = Fehler
+gb.refresh = Aktualisieren
+gb.browse = Durchsuchen
+gb.clone = Clonen
+gb.filter = Filter
+gb.create = Erstellen
+gb.servers = Server
+gb.recent = K\u00fcrzlich
+gb.available = Verf\u00fcgbar
+gb.selected = Ausgew\u00e4hlt
+gb.size = Gr\u00f6\u00dfe
+gb.downloading = Wird heruntergeladen
+gb.loading = Wird geladen
+gb.starting = Wird gestartet
+gb.general = Allgemein
+gb.settings = Einstellungen
+gb.manage = Verwalten
+gb.lastLogin = Letzter Login
+gb.skipSizeCalculation = \u00dcberspringe Gr\u00f6\u00dfenberechnung
+gb.skipSizeCalculationDescription = Nicht die Gr\u00f6\u00dfe des Repositories berechnen (reduziert die Seitenladezeit)
+gb.skipSummaryMetrics = \u00dcberspringe zusammenfassende Metriken
+gb.skipSummaryMetricsDescription = Nicht die Metriken auf der Zusammenfassungsseite berechnen (reduziert die Seitenladezeit)
+gb.accessLevel = Zugangsebene
+gb.default = Default
+gb.setDefault = Setze Default
+gb.since = seit
+gb.status = Status
+gb.bootDate = Boot-Zeitpunkt
+gb.servletContainer = Servlet container
+gb.heapMaximum = Maximaler Heap
+gb.heapAllocated = Allokierter Heap
+gb.heapUsed = Verwendeter Heap
+gb.free = Verf\u00fcgbar
+gb.version = Version
+gb.releaseDate = Releasedatum
+gb.date = Datum
+gb.activity = Aktivit\u00e4t
+gb.subscribe = Subscribe
+gb.branch = Branch
+gb.maxHits = Max Hits
+gb.recentActivity = K\u00fcrzliche Aktivit\u00e4t
+gb.recentActivityStats = In den letzten {0} Tagen / {1} Commit(s) von {2} Autor(en)
+gb.recentActivityNone = In den letzten {0} Tagen / Keine
+gb.dailyActivity = T\u00e4gliche Aktivit\u00e4t
+gb.activeRepositories = Aktive Repositories
+gb.activeAuthors = Aktive Autoren
+gb.commits = Commits
+gb.teams = Teams
+gb.teamName = Teamname
+gb.teamMembers = Teammitglieder
+gb.teamMemberships = Teammitgliedschaften
+gb.newTeam = Neues Team
+gb.permittedTeams = Zugelassene Teams
+gb.emptyRepository = Leeres Repository
+gb.repositoryUrl = Repository URL
+gb.mailingLists = Mailinglisten
+gb.preReceiveScripts = Pre-Receive Skripte
+gb.postReceiveScripts = Post-Receive Skripte
+gb.hookScripts = Hook Skripte
+gb.customFields = Benutzerdefinierte Felder
+gb.customFieldsDescription = Benutzerdefinierte Felder, die in Groovy Hooks zur Verf\u00fcgung stehen
+gb.accessPermissions = Zugriffsberechtigungen
+gb.filters = Filter
+gb.generalDescription = Allgemeine Einstellungen
+gb.accessPermissionsDescription = Zugriffseinschr\u00e4nkungen nach Benutzern und Teams
+gb.accessPermissionsForUserDescription = Erstellen Sie Teammitgliedschaften oder gew\u00e4hren Sie Zugriff auf einzelnen Repositories
+gb.accessPermissionsForTeamDescription = Weisen Sie Team Mitglieder zu oder gew\u00e4hren Sie Zugriff auf einzelne Repositories
+gb.federationRepositoryDescription = Verbinden Sie dieses Repository mit anderen Gitblit Instanzen (Federation)
+gb.hookScriptsDescription = Groovy Skripte beim Pushen auf diese Gitblit Instanz ausf\u00fchren
+gb.reset = Reset
+gb.pages = Seiten
+gb.workingCopy = Arbeitskopie
+gb.workingCopyWarning = Dieses Repository besitzt eine Arbeitskopie und kann keine Pushes empfangen
+gb.query = Abfrage
+gb.queryHelp = Standard Abfragesyntax wird unterst\u00fctzt.<p/><p/>Unter <a target="_new" href="http://lucene.apache.org/core/old_versioned_docs/versions/3_5_0/queryparsersyntax.html">Lucene Query Parser Syntax</a> finden Sie weitere Details.
+gb.queryResults = Ergebnisse {0} - {1} ({2} Treffer)
+gb.noHits = Keine Treffer
+gb.authored = ist Autor von
+gb.committed = ist Comitter von
+gb.indexedBranches = Indizierte Branches
+gb.indexedBranchesDescription = W\u00e4hlen Sie die zu indizierenden Branches aus.
+gb.noIndexedRepositoriesWarning = Keines Ihrer Repositories ist f\u00fcr die Indizierung durch Lucene konfiguriert.
+gb.undefinedQueryWarning = Abfrage fehlt!
+gb.noSelectedRepositoriesWarning = Bitte w\u00e4hlen Sie ein oder mehrere Repositories aus!
+gb.luceneDisabled = Indizierung mit Lucene ist deaktiviert
+gb.failedtoRead = Fehler beim Lesen
+gb.isNotValidFile = ist keine g\u00fcltige Datei
+gb.failedToReadMessage = Konnte Standard Nachricht von {0} nicht lesen!
+gb.passwordsDoNotMatch = Passw\u00f6rter stimmen nicht \u00fcberein!
+gb.passwordTooShort = Passwort ist zu kurz. Die minimale L\u00e4nge betr\u00e4gt {0} Zeichen.
+gb.passwordChanged = Passwort erfolgreich ge\u00e4ndert.
+gb.passwordChangeAborted = Passwort\u00e4nderung abgebrochen.
+gb.pleaseSetRepositoryName = Bitte Repositorynamen angeben!
+gb.illegalLeadingSlash = Pfade d\u00fcrfen nicht mit '/' beginnen.
+gb.illegalRelativeSlash = Relative Pfade (../) sind nicht erlaubt.
+gb.illegalCharacterRepositoryName = Repositoryname enth\u00e4lt nicht erlaubtes Zeichen ''{0}''!
+gb.selectAccessRestriction = Bitte w\u00e4hlen Sie die Zugriffsbeschr\u00e4nkung aus!
+gb.selectFederationStrategy = Bitte w\u00e4hlen Sie die Verbindungsstrategie (Federation) aus!
+gb.pleaseSetTeamName = Bitte geben Sie einen Teamnamen an!
+gb.teamNameUnavailable = Der Teamname ''{0}'' ist nicht verf\u00fcgbar.
+gb.teamMustSpecifyRepository = Ein Team muss mindestens einem Repository zugewiesen sein.
+gb.teamCreated = Neues Team ''{0}'' erfolgreich angelegt.
+gb.pleaseSetUsername = Bitte geben Sie einen Benutzernamen an!
+gb.usernameUnavailable = Benutzername ''{0}'' ist nicht verf\u00fcgbar.
+gb.combinedMd5Rename = Gitblit ist f\u00fcr kombiniertes MD5-Passwort-Hashing konfiguriert. Sie m\u00fcssen beim Umbenennen des Kontos ein neues Passwort angeben.
+gb.userCreated = Neuer Benutzer ''{0}'' erfolgreich angelegt.
+gb.couldNotFindFederationRegistration = Konnte Verbindungsregistrierung (Federation) nicht finden!
+gb.failedToFindGravatarProfile = Das Gravatar Profil f\u00fcr {0} konnte nicht gefunden werden
+gb.branchStats = {0} Commit(s) und {1} Tag(s) seit {2}
+gb.repositoryNotSpecified = Repository nicht angegeben!
+gb.repositoryNotSpecifiedFor = Repository nicht angegeben f\u00fcr {0}!
+gb.canNotLoadRepository = Repository kann nicht geladen werden
+gb.commitIsNull = Commit ist null
+gb.unauthorizedAccessForRepository = Nicht autorisierter Zugriff auf Repository
+gb.failedToFindCommit = Commit \"{0}\" konnte nicht in {1} gefunden werden!
+gb.couldNotFindFederationProposal = Verbindungsanfrage (Federation) konnte nicht gefunden werden!
+gb.invalidUsernameOrPassword = Ung\u00fcltiger Benutzername oder Passwort!
+gb.OneProposalToReview = Es gibt 1 unbeantwortete Verbindungsanfrage.
+gb.nFederationProposalsToReview = Es gibt {0} unbeantwortete Verbindungsanfragen.
+gb.couldNotFindTag = Der Tag {0} konnte nicht gefunden werden
+gb.couldNotCreateFederationProposal = Die Verbindungsanfrage (Federation) konnte nicht erstellt werden.
+gb.pleaseSetGitblitUrl = Bitte geben Sie Ihre Gitblit URL ein!
+gb.pleaseSetDestinationUrl = Bitte geben Sie eine Ziel-URL f\u00fcr Ihre Anfrage ein!
+gb.proposalReceived = Anfrage von {0} erfolgreich empfangen.
+gb.noGitblitFound = Tut mir leid, {0} fand keine Gitblit Instanz in
+gb.noProposals = Tut mir leid, {0} akzeptiert derzeit keine Anfragen.
+gb.noFederation = Tut mir leid, {0} kann sich nicht mit anderen Gitblit Instanzen verbinden.
+gb.proposalFailed = Tut mir leid, {0} hat keine Anfragedaten emfpangen!
+gb.proposalError = Tut mir leid, {0} berichtet, dass ein unerwarteter Fehler aufgetreten ist!
+gb.failedToSendProposal = Senden der Anfrage ist fehlgeschlagen!
+gb.userServiceDoesNotPermitAddUser = {0} erlaubt das Anlegen von Benutzerkonten nicht.
+gb.userServiceDoesNotPermitPasswordChanges = {0} erlaubt das \u00c4ndern von Passworten nicht!
+gb.displayName = Anzeigename
+gb.emailAddress = Emailadresse
+gb.errorAdminLoginRequired = Administrierung erfordert eine Anmeldung
+gb.errorOnlyAdminMayCreateRepository = Nur ein Administrator kann ein Repository erstellen
+gb.errorOnlyAdminOrOwnerMayEditRepository = Nur ein Administrator oder der Besitzer kann ein Repository bearbeiten
+gb.errorAdministrationDisabled = Administrierung ist deaktiviert
+gb.lastNDays = letzte {0} Tage
+gb.completeGravatarProfile = Komplettes Profil auf Gravatar.com
+gb.none = keine
+gb.line = Zeile
+gb.content = Inhalt
+gb.empty = leer
+gb.inherited = vererbt
+gb.deleteRepository = Repository \"{0}\" l\u00f6schen?
+gb.repositoryDeleted = Repository ''{0}'' gel\u00f6scht.
+gb.repositoryDeleteFailed = L\u00f6schen von Repository ''{0}'' fehlgeschlagen!
+gb.deleteUser = Benutzer \"{0}\" l\u00f6schen?
+gb.userDeleted = Benutzer ''{0}'' gel\u00f6scht.
+gb.userDeleteFailed = L\u00f6schen von Benutzer ''{0}'' fehlgeschlagen!
+gb.time.justNow = Gerade eben
+gb.time.today = Heute
+gb.time.yesterday = Gestern
+gb.time.minsAgo = vor {0} Min.
+gb.time.hoursAgo = vor {0} Std.
+gb.time.daysAgo = vor {0} Tagen
+gb.time.weeksAgo = vor {0} Wochen
+gb.time.monthsAgo = vor {0} Monaten
+gb.time.oneYearAgo = vor 1 Jahr
+gb.time.yearsAgo = vor {0} Jahren
+gb.duration.oneDay = 1 Tag
+gb.duration.days = {0} Tage
+gb.duration.oneMonth = 1 Monat
+gb.duration.months = {0} Monaten
+gb.duration.oneYear = 1 Jahr
+gb.duration.years = {0} Jahren
+gb.authorizationControl = Zugriffsrechte
+gb.allowAuthenticatedDescription = Allen authentifizierten Benutzern RW+ Recht gew\u00e4hren
+gb.allownameddescription = Benutzern und Teams feingranulare Rechte gew\u00e4hren
+gb.markdownFailure = Markdown Inhalt konnte nicht geparst werden!
+gb.clearCache = Cache leeren
+gb.projects = Projekte
+gb.project = Projekt
+gb.allProjects = Alle Projekte
+gb.copyToClipboard = in die Zwischenablage kopieren
+gb.fork = Fork
+gb.forks = Forks
+gb.forkRepository = {0} forken?
+gb.repositoryForked = Fork von {0} wurde erstellt
+gb.repositoryForkFailed = Fork ist fehlgeschlagen
+gb.personalRepositories = Pers\u00f6nliche Repositories
+gb.allowForks = Forks erlauben
+gb.allowForksDescription = Erlaube authentifizierten Benutzern dieses Repository zu forken
+gb.forkedFrom = Fork von
+gb.canFork = Kann forken
+gb.canForkDescription = Kann autorisierte Repositories als pers\u00f6nliche Repositories forken
+gb.myFork = Meinen Fork anschauen
+gb.forksProhibited = Forks verboten
+gb.forksProhibitedWarning = Dieses Repository verbietet Forks
+gb.noForks = {0} hat keine Forks
+gb.forkNotAuthorized = Entschuldigung, Sie sind nicht berechtigt einen Fork von {0} zu erstellen
+gb.forkInProgress = Fork in Bearbeitung
+gb.preparingFork = Ihr Fork wird vorbereitet...
+gb.isFork = ist ein Fork
+gb.canCreate = Kann Erstellen
+gb.canCreateDescription = Kann pers\u00f6nliche Repositories erstellen
+gb.illegalPersonalRepositoryLocation = your personal repository must be located at \"{0}\"
+gb.verifyCommitter = Committer verifizieren
+gb.verifyCommitterDescription = Die Committer Identit\u00e4t muss mit dem Gitblit Benutzerkonto \u00fcbereinstimmen, dass den Push durchf\u00fchrt
+gb.verifyCommitterNote = Alle Merge Operationen ben\u00f6tigen "--no-ff" um die Committer Identit\u00e4t zu erzwingen
+gb.repositoryPermissions = Repositoryberechtigungen
+gb.userPermissions = Benutzerberechtigungen
+gb.teamPermissions = Teamberechtigungen
+gb.add = Hinzuf\u00fcgen
+gb.noPermission = DIESE BERECHTIGUNG L\u00d6SCHEN
+gb.excludePermission = {0} (Ausschlie\u00dfen)
+gb.viewPermission = {0} (Ansicht)
+gb.clonePermission = {0} (Clonen)
+gb.pushPermission = {0} (Pushen)
+gb.createPermission = {0} (Pushen, Erzeugen von Refs)
+gb.deletePermission = {0} (Pushen, Erzeugen und L\u00f6schen von Refs)
+gb.rewindPermission = {0} (Pushen, Erzeugen, L\u00f6schen und Umsetzen von Refs)
+gb.permission = Berechtigung
+gb.regexPermission = Diese Berechtigung ergibt sich aus dem regul\u00e4ren Ausdruck "{0}"
+gb.accessDenied = Zugang verweigert
+gb.busyCollectingGarbage = Tut mir leid, Gitblit f\u00fchrt gerade eine Garbage Collection in {0} durch
+gb.gcPeriod = GC Intervall
+gb.gcPeriodDescription = Zeitraum zwischen Garbage Collections
+gb.gcThreshold = GC Schwellwert
+gb.gcThresholdDescription = Minimale Gr\u00f6\u00dfe von losen Objekten, um eine vorzeitge Garbage Collection zu starten
+gb.ownerPermission = Repositorybesitzer
+gb.administrator = Administrator
+gb.administratorPermission = Gitblit Administrator
+gb.team = Team
+gb.teamPermission = Berechtigung gesetzt durch Mitgliedschaft im Team \"{0}\"
+gb.missing = fehlt!
+gb.missingPermission = Das Repository f\u00fcr diese Berechtigung fehlt!
+gb.mutable = ver\u00e4nderlich
+gb.specified = angegeben
+gb.effective = effektiv
+gb.organizationalUnit = Organisatorische Einheit
+gb.organization = Organisation
+gb.locality = Lage
+gb.stateProvince = Bundesland oder Provinz
+gb.countryCode = L\u00e4ndercode
+gb.properties = Eigenschaften
+gb.issued = herausgegeben
+gb.expires = l\u00e4uft ab
+gb.expired = abgelaufen
+gb.expiring = l\u00e4uft ab
+gb.revoked = widerrufen
+gb.serialNumber = Seriennummer
+gb.certificates = Zertifkate
+gb.newCertificate = Neues Zertifikat
+gb.revokeCertificate = Zertifikat widerrufen
+gb.sendEmail = Sende E-Mail
+gb.passwordHint = Passwort Hinweis
+gb.ok = OK
+gb.invalidExpirationDate = Ung\u00fcltiges Ablaufdatum!
+gb.passwordHintRequired = Passworthinweis ben\u00f6tigt!
+gb.viewCertificate = Zertifikat anschauen
+gb.subject = Betreff
+gb.issuer = Aussteller
+gb.validFrom = G\u00fcltig von
+gb.validUntil = G\u00fcltig bis
+gb.publicKey = \u00d6ffentlicher Schl\u00fcssel
+gb.signatureAlgorithm = Signaturalgorithmus
+gb.sha1FingerPrint = SHA-1 Fingerabdruck
+gb.md5FingerPrint = MD5 Fingerabdruck
+gb.reason = Grund
+gb.revokeCertificateReason = Bitte w\u00e4hlen Sie einen Grund f\u00fcr den Widerruf des Zertifikats aus
+gb.unspecified = nicht angegeben
+gb.keyCompromise = Schl\u00fcssel kompromittiert
+gb.caCompromise = CA kompromittiert
+gb.affiliationChanged = Mitgliedschaft ge\u00e4ndert
+gb.superseded = ersetzt
+gb.cessationOfOperation = T\u00e4tigkeit eingestellt
+gb.privilegeWithdrawn = Privilegien zur\u00fcckgezogen
+gb.time.inMinutes = in {0} Minuten
+gb.time.inHours = in {0} Stunden
+gb.time.inDays = in {0} Tagen
+gb.hostname = Hostname
+gb.hostnameRequired = Bitte geben Sie einen Hostnamen ein
+gb.newSSLCertificate = Neues Server-SSL-Zertifikat
+gb.newCertificateDefaults = Voreinstellungen f\u00fcr neue Zertifikate
+gb.duration = Dauer
+gb.certificateRevoked = Zertifikat {0,number,0} wurde widerufen
+gb.clientCertificateGenerated = Neues Client-Zertifikat f\u00fcr {0} wurde erfolgreich erstellt
+gb.sslCertificateGenerated = Neues Server-SSL-Zertifikat f\u00fcr {0} wurde erfolgreich erstellt
+gb.newClientCertificateMessage = ANMERKUNG:\nDas "Passwort" ist nicht das Passwort des Benutzers, es ist das Passwort, um den Keystore des Benutzers zu sch\u00fctzen. Dieses Passwort wird nicht gespeichert, also m\u00fcssen Sie einen "Hinweis" eingeben. Dieser Hinweis wird in den README Anweisungen des Benutzers hinterlegt.
+gb.certificate = Zertifkat
+gb.emailCertificateBundle = Client-Zertifikat-Bundle per Email senden
+gb.pleaseGenerateClientCertificate = Bitte generieren Sie ein Client Zertifikat f\u00fcr {0}
+gb.clientCertificateBundleSent = Client-Zertifikat-Bundel f\u00fcr {0} gesendet
+gb.enterKeystorePassword = Bitte geben Sie das Gitblit-Keystore-Passwort ein
+gb.warning = Warnung
+gb.jcwWarning = Ihrem Java Runtime Environment fehlen die \"JCE Unlimited Strength Jurisdiction Policy\" Dateien.\nDies schr\u00e4nkt die L\u00e4nge der Passw\u00f6rter, die Sie zum Verschl\u00fcsseln Ihrer Keystores verwenden k\u00f6nnen, auf 7 Zeichen ein.\nDiese Policy-Dateien sind ein optionaler Download von Oracle.\n\nM\u00f6chten Sie fortfahren und die Zertifikat-Infrastruktur trotzdem erstellen?\n\nWenn Sie mit Nein antworten, wird Ihr Browser die Oracle Download-Seite \u00f6ffnen, auf welcher Sie die Policy-Dateien herunterladen k\u00f6nnen.
+gb.maxActivityCommits = Maximale Commits Aktivit\u00e4t
+gb.maxActivityCommitsDescription = Maximale Anzahl von Commits die auf der Aktivit\u00e4tsseite dargestellt werden
+gb.noMaximum = Kein Maximum
+gb.attributes = Attribute
+gb.serveCertificate = Verwende dieses Zertifikat f\u00fcr HTTPS
+gb.sslCertificateGeneratedRestart = Neues SSL-Server-Zertifikat f\u00fcr {0} erfolgreich erstellt.\nSie m\u00fcssen Gitblit neu starten, um dieses Zertifikat nutzen zu k\u00f6nnen.\n\nWenn Sie dem '--alias' Parameter starten, m\u00fcssen Sie diesen auf '--alias {0}' setzen.
+gb.validity = G\u00fcltigkeit
+gb.siteName = Seitenname
+gb.siteNameDescription = Kurzer, beschreibender Name Ihres Servers
+gb.excludeFromActivity = Von der Aktivi\u00e4tenseite ausschlie\u00dfen
+gb.isSparkleshared = Repository ist in einem Sparkleshare
+gb.owners = Besitzer
+gb.sessionEnded = Die Sitzung wurde geschlossen
+gb.closeBrowser = Bitte schlie\u00dfen Sie den Browser um die Sitzung ordentlich zu beenden.
+gb.doesNotExistInTree = {0} existiert im Dateibaum {1} nicht
+gb.enableIncrementalPushTags = Aktiviere inkrementelle Push-Tags
+gb.useIncrementalPushTagsDescription = Erzeuge beim Push automatisch ein Tag mit aufsteigender Revisionsnummer auf der Spitze jedes Branches
+gb.incrementalPushTagMessage = Auto-tagged [{0}] branch on push
+gb.externalPermissions = {0} Zugangsberechtigungen werden extern verwaltet
+gb.viewAccess = Sie haben keinen Gitblit Lese- oder Schreibzugriff
+gb.overview = \u00dcbersicht
+gb.dashboard = Dashboard
+gb.monthlyActivity = Monatliche Aktivit\u00e4t
+gb.myProfile = Mein Profil
+gb.compare = Vergleichen
+gb.manual = Manuell
+gb.from = von
+gb.to = nach
+gb.at = bei
+gb.of = von
+gb.in = in
+gb.moreChanges = alle \u00c4nderungen...
+gb.pushedNCommitsTo = Push von {0} Commits nach
+gb.pushedOneCommitTo = Push von einem Commit nach
+gb.commitsTo = {0} commits nach
+gb.oneCommitTo = 1 Commit nach
+gb.byNAuthors = von {0} Autoren
+gb.byOneAuthor = von {0}
+gb.viewComparison = Zeige einen Vergleich von diesen {0} Commits \u00bb
+gb.nMoreCommits = {0} weitere Commits \u00bb
+gb.oneMoreCommit = 1 weiterer Commit \u00bb
+gb.pushedNewTag = Push von neuem Tag
+gb.createdNewTag = Neuer Tag angelegt
+gb.deletedTag = Tag gel\u00f6scht
+gb.pushedNewBranch = Push von neuem Branch durchgef\u00fchrt
+gb.createdNewBranch = Neuer Branch angelegt
+gb.deletedBranch = Branch gel\u00f6scht
+gb.createdNewPullRequest = Neuer Pull Request gestellt
+gb.mergedPullRequest = Merge des Pull Request durchgef\u00fchrt
+gb.rewind = REWIND
+gb.star = Favorisieren
+gb.unstar = Nicht mehr favorisieren
+gb.stargazers = Stargazers
+gb.starredRepositories = Favorisierte Repositories
+gb.failedToUpdateUser = Aktualisierung des Benutzerkontos fehlgeschlagen!
+gb.myRepositories = Meine Repositories
+gb.noActivity = In den letzten {0} Tagen gab es keine Aktivit\u00e4t
+gb.findSomeRepositories = finde Repositories
+gb.metricAuthorExclusions = Ausschl\u00fcsse von Autor-Metriken
+gb.myDashboard = Mein Dashboard
+gb.failedToFindAccount = Benutzerkonto "{0}" konnte nicht gefunden werden
+gb.reflog = Reflog
+gb.active = Aktiv
+gb.starred = Favorisiert
+gb.owned = Eigene
+gb.starredAndOwned = Favorisiert und Eigene
+gb.reviewPatchset = Review {0} Patchset {1}
+gb.todaysActivityStats = Heute / {1} Commits von {2} Autoren
+gb.todaysActivityNone = Heute / keine
+gb.noActivityToday = Heute gab es keine Aktivit\u00e4t
+gb.anonymousUser= Anonym
+gb.commitMessageRenderer = Commit-Message Renderer
+gb.diffStat = {0} Einf\u00fcgungen & {1} L\u00f6schungen
+gb.home = Startseite
+gb.isMirror = Dieses Repository ist ein Mirror
+gb.mirrorOf = Mirror von {0}
+gb.mirrorWarning = Dieses Repository ist ein Mirror und kann keine Pushes empfangen
+gb.docsWelcome1 = Sie k\u00f6nnen Dokumente verwenden, um Ihr Repository zu dokumentieren.
+gb.docsWelcome2 = Committen Sie eine README.md oder eine HOME.md Datei, um zu beginnen.
+gb.createReadme = Eine README erstellen
+gb.responsible = Bearbeiter
+gb.createdThisTicket = erstellte dieses Ticket
+gb.proposedThisChange = schlug diese \u00c4nderung vor
+gb.uploadedPatchsetN = lud Patchset {0} hoch
+gb.uploadedPatchsetNRevisionN = lud Patchset {0} Revision {1} hoch
+gb.mergedPatchset = Merge des Patchset durchgef\u00fchrt
+gb.commented = kommentierte
+gb.noDescriptionGiven = keine Beschreibung hinterlegt
+gb.toBranch = nach {0}
+gb.createdBy = angelegt durch 
+gb.oneParticipant = {0} Teilnehmer
+gb.nParticipants = {0} Teilnehmer
+gb.noComments = keine Kommentare
+gb.oneComment = {0} Kommentar
+gb.nComments = {0} Kommentare
+gb.oneAttachment  = {0} Anhang
+gb.nAttachments = {0} Anh\u00e4nge
+gb.milestone = Meilenstein
+gb.compareToMergeBase = Mit Merge-Basis vergleichen
+gb.compareToN = mit {0} vergleichen
+gb.open = Offen
+gb.closed = Geschlossen
+gb.merged = Merge erfolgt
+gb.ticketPatchset = Ticket {0}, Patchset {1}
+gb.patchsetMergeable = Dieses Patchset kann automatisch mit {0} zusammengef\u00fchrt werden.
+gb.patchsetMergeableMore = Dieses Patchset kann auch auf der Kommandozeile mit {0} zusammengef\u00fchrt werden.
+gb.patchsetAlreadyMerged = Dieses Patcheset wurde mit {0} zusammengef\u00fchrt.
+gb.patchsetNotMergeable = Dieses Patchset kann nicht automatisch mit {0} zusammengef\u00fchrt werden.
+gb.patchsetNotMergeableMore = Dieses Patchset ben\u00f6tigt einen Rebase oder muss manuell mit {0} zusammengef\u00fchrt werden, um Konflikte zu beheben.
+gb.patchsetNotApproved = Diese Patchset-Revision wurde noch nicht zum Zusammenf\u00fchren mit {0} freigegeben.
+gb.patchsetNotApprovedMore = Ein Reviewer muss dieses Patchset freigeben.
+gb.patchsetVetoedMore = Ein Reviewer hat dieses Patchset abgelehnt.
+gb.write = Verfassen
+gb.comment = Kommentieren
+gb.preview = Vorschau
+gb.leaveComment = Hinterlasse einen Kommentar
+gb.showHideDetails = Zeige/Verberge Details
+gb.acceptNewPatchsets = Patchsets annehmen
+gb.acceptNewPatchsetsDescription = Nimm Patchsets an dieses Repository per Push an
+gb.acceptNewTickets = Erlaube neue Tickets
+gb.acceptNewTicketsDescription = Erlaube das Erstellen von Fehlerberichten, Verbesserungsvorschl\u00e4gen, Aufgaben etc.
+gb.requireApproval = Explizite Freigaben erforderlich
+gb.requireApprovalDescription = Patchsets m\u00fcssen freigegeben werden, bevor der Merge Button aktiviert wird
+gb.topic = Thema
+gb.proposalTickets = Vorgeschlagene \u00c4nderungen
+gb.bugTickets = Fehler
+gb.enhancementTickets = Erweiterungen
+gb.taskTickets = Aufgaben
+gb.questionTickets = Fragen
+gb.requestTickets = Erweiterungen und Aufgaben
+gb.yourCreatedTickets = Von mir erstellt
+gb.yourWatchedTickets = Von mir beobachtet
+gb.mentionsMeTickets = Erw\u00e4hnungen
+gb.updatedBy = aktualisiert von
+gb.sort = Sortierung
+gb.sortNewest = Neueste
+gb.sortOldest = \u00c4lteste
+gb.sortMostRecentlyUpdated = K\u00fcrzlich aktualisiert
+gb.sortLeastRecentlyUpdated = Am l\u00e4ngsten nicht aktualisiert
+gb.sortMostComments = Die meisten Kommentare
+gb.sortLeastComments = Die wenigsten Kommentare
+gb.sortMostPatchsetRevisions = Die meisten Patchset Revisions
+gb.sortLeastPatchsetRevisions = Die wenigsten Patchset Revisions
+gb.sortMostVotes = Die meisten Stimmen
+gb.sortLeastVotes = Die wenigsten Stimmen
+gb.topicsAndLabels = Themen & Labels
+gb.milestones = Meilensteine
+gb.noMilestoneSelected = Kein Meilenstein ausgew\u00e4hlt
+gb.notSpecified = nicht angegebene
+gb.due = f\u00e4llig am
+gb.queries = Suchanfragen
+gb.searchTicketsTooltip = Suche {0} Tickets
+gb.searchTickets = Search Tickets
+gb.new = Neu
+gb.newTicket = Neues Ticket
+gb.editTicket = Bearbeite Ticket
+gb.ticketsWelcome = Sie k\u00f6nnen Tickets verwenden, um Ihre Todo-Liste zu verwalten, Fehler zu diskutieren und bei der Erstellung von Patchsets zusammen zu arbeiten.
+gb.createFirstTicket = Erstellen Sie Ihr erstes Ticket
+gb.title = \u00dcberschrift
+gb.changedStatus = hat Status ge\u00e4ndert 
+gb.discussion = Diskussion
+gb.updated = aktualisiert
+gb.proposePatchset = Patchset Vorschlagen
+gb.proposePatchsetNote = Bitte schlagen Sie ein Patchset f\u00fcr dieses Ticket vor.
+gb.proposeInstructions = Um zu beginnen, erstellen Sie ein Patchset und laden Sie es mit Git hoch. Gitblit verkn\u00fcpft dieses Patchset mit diesem Ticket \u00fcber die Id.
+gb.proposeWith = Ein Patchset mit {0} vorschlagen
+gb.revisionHistory = Revisionshistorie
+gb.merge = Zusammenf\u00fchren
+gb.action = Aktion
+gb.patchset = Patchset
+gb.all = Alle
+gb.mergeBase = Merge Basis
+gb.checkout = Checkout
+gb.checkoutViaCommandLine =  Checkout per Kommandozeile
+gb.checkoutViaCommandLineNote = Sie k\u00f6nnen diese \u00c4nderungen in Ihrem Clone des Repository per Checkout lokal testen.
+gb.checkoutStep1 = Laden Sie das aktuelle Patchset \u2014 F\u00fchren Sie dies aus Ihrem lokalen Projektverzeichnis heraus aus
+gb.checkoutStep2 = F\u00fchren Sie einen Checkout des Patchsets in einen neuen Branch durch und Sichten Sie die \u00c4nerungen
+gb.mergingViaCommandLine = Merge per Kommandozeile
+gb.mergingViaCommandLineNote = Wenn Sie den Merge Button nicht verwenden m\u00f6chten oder ein automatisches Zusammenf\u00fchren nicht durchgef\u00fchrt werden kann, dann k\u00f6nnen Sie das Zusammenf\u00fchren auch manuell auf der Kommandozeile durchf\u00fchren.
+gb.mergeStep1 = Erstellen Sie einen neuen Branch um die \u00c4nderungen zu sichten \u2014 F\u00fchren Sie dies aus Ihrem lokalen Projektverzeichnis heraus aus
+gb.mergeStep2 = Bringen Sie die vorgeschlagenen \u00c4nderungen ein und sichten Sie diese
+gb.mergeStep3 = F\u00fchren Sie einen Merge durch und aktualisieren Sie den Server (Push)
+gb.download = Herunterladen
+gb.ptDescription = Das Gitblit Patchset Tool
+gb.ptCheckout = Fetch & Checkout des aktuellen Patchset um ein Review des aktuellen Branch durchzuf\u00fchren
+gb.ptMerge = Fetch & Merge des aktuellen Patchset in Ihren lokalen Branch
+gb.ptDescription1 = Barnum ist ein Kommandozeilen-Werkzeug f\u00fcr Git um die Syntax f\u00fcr die Arbeit mit Gitblit Tickets und Patchsets zu vereinfachen.
+gb.ptSimplifiedCollaboration = Vereinfachte Syntax f\u00fcr Zusammenarbeit
+gb.ptSimplifiedMerge = Vereinfachte Syntax f\u00fcr das Zusammenf\u00fchren
+gb.ptDescription2 = Barnum ben\u00f6tigt Python 3 und den nativen Git-Client.  Es l\u00e4uft unter Windows, Linux und Mac OS X.
+gb.stepN = Schritt {0}
+gb.watchers = Beobachter
+gb.votes = Stimmen
+gb.vote = F\u00fcr {0} Abstimmen
+gb.watch = {0} beobachten
+gb.removeVote = Abstimmen r\u00fcckg\u00e4ngig machen
+gb.stopWatching = Beobachten beenden
+gb.watching = ich beobachte
+gb.comments = Kommentare
+gb.addComment = Kommentar hinzuf\u00fcgen
+gb.export = Exportieren
+gb.oneCommit = Ein Commit
+gb.nCommits = {0} Commits
+gb.addedOneCommit = 1 Commit hinzugef\u00fcgt
+gb.addedNCommits = {0} Commits hinzugef\u00fcgt
+gb.commitsInPatchsetN = Commits im Patchset {0}
+gb.patchsetN = Patchset {0}
+gb.reviewedPatchsetRev = Review von Patchset {0} Revision {1} durchgef\u00fchrt: {2}
+gb.review = Review
+gb.reviews = Reviews
+gb.veto = Abgelehnt
+gb.needsImprovement = Ben\u00f6tigt Verbesserungen
+gb.looksGood = Sieht gut aus
+gb.approve = Akzeptiert
+gb.hasNotReviewed = kein Review durchgef\u00fchrt
+gb.about = \u00dcber
+gb.ticketN = Ticket #{0}
+gb.disableUser = Benutzer deaktivieren
+gb.disableUserDescription = Verhindert das Authentifizieren dieses Benutzer
+gb.any = Alle
+gb.milestoneProgress = {0} offen, {1} geschlossen
+gb.nOpenTickets = {0} offen
+gb.nClosedTickets = {0} geschlossen
+gb.nTotalTickets = {0} insgesamt
+gb.body = Body
+gb.mergeSha = mergeSha
+gb.mergeTo = Merge mit
+gb.labels = Labels
+gb.reviewers = Reviewer
+gb.voters = Abstimmende
+gb.mentions = Erw\u00e4hnungen
+gb.canNotProposePatchset = Kann kein Patchset vorschlagen
+gb.repositoryIsMirror = Dieses Repository ist ein Read-Only-Mirror.
+gb.repositoryIsFrozen = Dieses Repository ist eingefroren.
+gb.repositoryDoesNotAcceptPatchsets = Dieses Repository akzeptiert keine Patchsets.
+gb.serverDoesNotAcceptPatchsets = Dieser Server akzeptiert keine Patchsets.
+gb.ticketIsClosed = Dieses Ticket ist geschlossen.
+gb.mergeToDescription = Standardm\u00e4\u00dfiger Integrationsbranch f\u00fcr den Merge von Ticket Patchsets
+gb.anonymousCanNotPropose = Anonyme Benutzer k\u00f6nnen keine Patchsets vorschlagen.
+gb.youDoNotHaveClonePermission = Sie sind nicht berechtigt, dieses Repository zu klonen.
+gb.myTickets = Meine Tickets
+gb.yourAssignedTickets = Mir zugewiesen
+gb.newMilestone = Neuer Meilenstein
+gb.editMilestone = Meilenstein bearbeiten
+gb.deleteMilestone = Meilenstein \"{0}\" l\u00f6schen?
+gb.milestoneDeleteFailed = L\u00f6schen des Meilensteins ''{0}'' fehlgeschlagen!
+gb.notifyChangedOpenTickets = Sende Benachrichtigungen f\u00fcr ge\u00e4nderte, offene Tickets
+gb.overdue = \u00dcberf\u00e4llig
+gb.openMilestones = Offene Meilensteine
+gb.closedMilestones = Geschlossene Meilensteine
+gb.administration = Administration
+gb.plugins = Plugins
+gb.extensions = Erweiterungen
+gb.pleaseSelectProject = Bitte w\u00e4hlen Sie das Projekt!
+gb.accessPolicy = Zugriffsrichtlinie
+gb.accessPolicyDescription = W\u00e4hlen Sie eine Zugriffsrichtlinie um die Sichtbarkeit des Repositories und die Zugriffsrechte von Git zu steuern.
+gb.anonymousPolicy = Anonymes Anzeigen, Klonen und Pushen
+gb.anonymousPolicyDescription = Jeder kann dieses Repository sehen, klonen und zu ihm pushen.
+gb.authenticatedPushPolicy = Schr\u00e4nke Pushen ein (Authentifiziert)
+gb.authenticatedPushPolicyDescription = Jeder kann dieses Repository sehen und klonen. Alle authentifizierten Benutzer haben RW+ Push Berechtigung.
+gb.namedPushPolicy = Schr\u00e4nke Pushen ein (Benannt)
+gb.namedPushPolicyDescription = Jeder kann dieses Repository sehen und klonen. Sie bestimmen, wer pushen kann.
+gb.clonePolicy = Schr\u00e4nke Klonen und Pushen ein
+gb.clonePolicyDescription = Jeder kann dieses Repository sehen. Sie bestimmen, wer klonen und pushen kann.
+gb.viewPolicy  = Schr\u00e4nke Anzeigen, Klonen und Pushen ein
+gb.viewPolicyDescription = Sie bestimmen, wer dieses Repository anzeigen, klonen und zu ihm pushen kann.
+gb.initialCommit = Initialer Commit
+gb.initialCommitDescription = Dies erlaubt es Ihnen, mit <code>git clone</code> dieses Repository sofort zu klonen. \u00dcberspringen Sie diesen Schritt, falls Sie lokal bereits <code>git init</code> ausgef\u00fchrt haben.
+gb.initWithReadme = README erstellen
+gb.initWithReadmeDescription = Dies erstellt ein einfaches README Dokument f\u00fcr Ihr Repository.
+gb.initWithGitignore = Eine .gitignore Datei erstellen
+gb.initWithGitignoreDescription = Dies erstellt eine Konfigurationsdatei, die Ihren Git Client anweist, Dateien und Verzeichnisse zu ignorieren, die bestimmten Mustern entsprechen.
+gb.pleaseSelectGitIgnore = Bitte w\u00e4hlen Sie eine .gitignore Datei aus
+gb.receive = Empfangen
+gb.permissions = Berechtigungen
+gb.ownersDescription = Besitzer k\u00f6nnen alle Einstellungen des Repository ver\u00e4ndern, jedoch k\u00f6nnen Sie das Repository nur umbenennen, falls es ein pers\u00f6nliches Repository ist.
+gb.userPermissionsDescription = Sie k\u00f6nnen individuelle Benutzerberechtigungen vergeben. Diese Einstellungen \u00fcbersteuern Team- oder Regexberechtigungen.
+gb.teamPermissionsDescription = Sie k\u00f6nnen individuelle Teamberechtigungen vergeben. Diese Einstellungen \u00fcbersteuern Regexberechtigungen.
+gb.ticketSettings = Ticketeinstellungen
+gb.receiveSettings = Empfangseinstellungen
+gb.receiveSettingsDescription = Die Empfangseinstellungen kontrollieren Pushes zum Repository.
+gb.preReceiveDescription = Pre-Empfangs-Hooks werden ausgef\u00fchrt nachdem alle Commits empfangen wurden, aber <em>BEVOR</em> die Refs aktualisiert werden. <p>Dies ist der geeignete Hook, um einen Push abzulehnen.</p>
+gb.postReceiveDescription = Post-Empfangs-Hooks werden ausgef\u00fchrt, nachdem alle Commits empfangen wurden und <em>NACHDEM</em> die Refs aktualisiert wurden. <p>Dies ist der geeignete Hook f\u00fcr Benachrichtigungen, Build-Trigger, etc.</p>
+gb.federationStrategyDescription = Bestimmen Sie, ob und wie dieses Repository mit einer anderen Gitblit Instanz verbunden werden kann (Federation).
+gb.federationSetsDescription = Dieses Repository wird in den ausgew\u00e4hlten Verbindungssets enthalten sein.
+gb.miscellaneous = Sonstiges
+gb.originDescription = Die URL, von welcher dieses Repository geklont wurde.
+gb.gc = GC 
+gb.garbageCollection = Garbage Collection
+gb.garbageCollectionDescription = Die Garbage Collection b\u00fcndelt freie Objekte, welche von Clients gepusht wurden und entfernt nicht mehr referenzierte Objekte aus dem Repository.
+gb.commitMessageRendererDescription = Commit Messages k\u00f6nnen als reiner Text oder gerendertes Markup dargestellt werden.
+gb.preferences = Einstellungen
+gb.accountPreferences = Kontoeinstellungen
+gb.accountPreferencesDescription = Geben Sie Ihre Kontoeinstellungen an
+gb.languagePreference = Spracheinstellungen
+gb.languagePreferenceDescription = W\u00e4hlen Sie Ihre bevorzugte \u00dcbersetzung f\u00fcr Gitblit
+gb.emailMeOnMyTicketChanges = Sende Emails bei eigenen \u00c4nderungen an Tickets
+gb.emailMeOnMyTicketChangesDescription  = Sende mir Email-Benachrichtigungen f\u00fcr \u00c4nderungen, die ich an einem Ticket vornehme
+gb.displayNameDescription = Bevorzugter Anzeigename
+gb.emailAddressDescription = Die prim\u00e4re Emailadresse f\u00fcr den Empfang von Benachrichtigungen
+gb.sshKeys = SSH Keys
+gb.sshKeysDescription = SSH Public Key Authentifizierung ist eine sichere Alternative zur Authentifizierung mit Passwort
+gb.addSshKey = SSH Key hinzuf\u00fcgen
+gb.key = Key
+gb.comment = Kommentar
+gb.sshKeyCommentDescription = Geben Sie optional einen Kommentar ein. Falls Sie dies nicht tun, wird der Kommentar aus dem Key extrahiert.
+gb.permission = Berechtigung
+
+gb.sshKeyPermissionDescription = Geben Sie die Zugriffberechtigung f\u00fcr den SSH Key an
+gb.transportPreference = \u00dcbertragungseinstellungen
+gb.transportPreferenceDescription = Geben Sie die \u00dcbertragungsart an, die Sie f\u00fcr das Klonen bevorzugen
diff --git a/src/main/java/com/gitblit/wicket/GitBlitWebApp_ko.properties b/src/main/java/com/gitblit/wicket/GitBlitWebApp_ko.properties
index 51e80f4..404f0d2 100644
--- a/src/main/java/com/gitblit/wicket/GitBlitWebApp_ko.properties
+++ b/src/main/java/com/gitblit/wicket/GitBlitWebApp_ko.properties
@@ -672,3 +672,73 @@
 gb.mergeToDescription = \ud2f0\ucf13 \ud328\uce58\uc14b\uc744 \uba38\uc9c0\ud560 \uae30\ubcf8 \ud1b5\ud569 \ube0c\ub79c\uce58
 gb.anonymousCanNotPropose = \uc775\uba85 \uc0ac\uc6a9\uc790\ub294 \ud328\uce58\uc14b\uc744 \uc81c\uc548\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
 gb.youDoNotHaveClonePermission = \ub2f9\uc2e0\uc740 \uc774 \uc800\uc7a5\uc18c\ub97c \ud074\ub860\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+gb.myTickets = \ub0b4 \ud2f0\ucf13
+gb.yourAssignedTickets = \ub098\uc5d0\uac8c \ud560\ub2f9\ub41c
+gb.newMilestone = \uc0c8 \ub9c8\uc77c\uc2a4\ud1a4
+gb.editMilestone = \ub9c8\uc77c\uc2a4\ud1a4 \uc218\uc815
+gb.deleteMilestone = \ub9c8\uc77c\uc2a4\ud1a4 \"{0}\"\uc744(\ub97c) \uc0ad\uc81c\ud560\uae4c\uc694?
+gb.milestoneDeleteFailed = \ub9c8\uc77c\uc2a4\ud1a4 ''{0}'' \uc0ad\uc81c \uc2e4\ud328!
+gb.notifyChangedOpenTickets = \uc5f0 \ud2f0\ucf13\uc758 \ubcc0\uacbd \uc54c\ub9bc \uc804\uc1a1
+gb.overdue = \uc9c0\uc5f0
+gb.openMilestones = \ub9c8\uc77c\uc2a4\ud1a4 \uc5f4\uae30
+gb.closedMilestones = \ub2eb\ud78c \ub9c8\uc77c\uc2a4\ud1a4
+gb.administration = \uad00\ub9ac
+gb.plugins = \ud50c\ub7ec\uadf8\uc778
+gb.extensions = \ud655\uc7a5\uae30\ub2a5
+gb.pleaseSelectProject = \ud504\ub85c\uc81d\ud2b8\ub97c \uc120\ud0dd\ud574 \uc8fc\uc138\uc694!
+gb.accessPolicy = \uc811\uadfc \uc815\ucc45
+gb.accessPolicyDescription = \uc800\uc7a5\uc18c \ubcf4\uae30\uc640 git \uad8c\ud55c\uc744 \uc81c\uc5b4\ud558\uae30 \uc704\ud574 \uc811\uadfc \uc815\ucc45\uc744 \uc120\ud0dd\ud558\uc138\uc694.
+gb.anonymousPolicy = \uc775\uba85 \ubcf4\uae30, \ud074\ub860 \uadf8\ub9ac\uace0 \ud478\uc2dc
+gb.anonymousPolicyDescription = \ub204\uad6c\ub098 \uc774 \uc800\uc7a5\uc18c\ub97c \ubcf4\uae30, \ud074\ub860, \uadf8\ub9ac\uace0 \ud478\uc2dc\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
+gb.authenticatedPushPolicy = \uc81c\ud55c\ub41c \ud478\uc2dc (\uc778\uc99d\ub41c)
+gb.authenticatedPushPolicyDescription = \ub204\uad6c\ub098 \uc774 \uc800\uc7a5\uc18c\ub97c \ubcf4\uac70\ub098 \ud074\ub860\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ubaa8\ub4e0 \uc778\uc99d\ub41c \uc720\uc800\ub294 RW+ \ud478\uc2dc \uad8c\ud55c\uc744 \uac00\uc9d1\ub2c8\ub2e4.
+gb.namedPushPolicy = \uc774\ub984\uc73c\ub85c \ud478\uc2dc \uc81c\ud55c
+gb.namedPushPolicyDescription = \ub204\uad6c\ub098 \uc774 \uc800\uc7a5\uc18c\ub97c \ubcf4\uac70\ub098 \ud074\ub860\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc120\ud0dd\ud55c \uc720\uc800\ub9cc \ud478\uc2dc\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
+gb.clonePolicy = \uc81c\ud55c\ub41c \ud074\ub860 & \ud478\uc2dc
+gb.clonePolicyDescription = \ub204\uad6c\ub098 \uc774 \uc800\uc7a5\uc18c\ub97c \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc120\ud0dd\ud55c \uc720\uc800\ub9cc \ud074\ub860\uacfc \ud478\uc2dc\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
+gb.viewPolicy  = \uc81c\ud55c\ub41c \ubcf4\uae30, \ud074\ub860 & \ud478\uc2dc
+gb.viewPolicyDescription = \uc120\ud0dd\ud55c \uc720\uc800\ub9cc \uc774 \uc800\uc7a5\uc18c\uc5d0 \ub300\ud574 \ubcf4\uae30, \ud074\ub860 \uadf8\ub9ac\uace0 \ud478\uc2dc \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
+gb.initialCommit = \ucd5c\ucd08 \ucee4\ubc0b
+gb.initialCommitDescription = \uc774 \uc800\uc7a5\uc18c\ub97c \uc989\uc2dc <code>git clone</code> \ud560 \uc218 \uc788\ub3c4\ub85d \ud569\ub2c8\ub2e4. \ub85c\uceec\uc5d0\uc11c <code>git init</code> \ud588\ub2e4\uba74 \uc774 \ub2e8\uacc4\ub97c \uac74\ub108\ub6f0\uc138\uc694.
+gb.initWithReadme = README \ud3ec\ud568
+gb.initWithReadmeDescription = \uc800\uc7a5\uc18c\uc758 \uac04\ub2e8\ud55c README \ubb38\uc11c\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4.
+gb.initWithGitignore = .gitignore \ud30c\uc77c \ud3ec\ud568
+gb.initWithGitignoreDescription = Git \ud074\ub77c\uc774\uc5b8\ud2b8\uac00 \uc815\uc758\ub41c \ud328\ud134\uc5d0 \ub530\ub77c \ud30c\uc77c\uc774\ub098 \ub514\ub809\ud1a0\ub9ac\ub97c \ubb34\uc2dc\ud558\ub3c4\ub85d \uc9c0\uc815\ud55c \uc124\uc815\ud30c\uc77c\uc744 \ucd94\uac00\ud569\ub2c8\ub2e4.
+gb.pleaseSelectGitIgnore = .gitignore \ud30c\uc77c\uc744 \uc120\ud0dd\ud558\uc138\uc694.
+gb.receive = \uc218\uc2e0
+gb.permissions = \uad8c\ud55c
+gb.ownersDescription = \uc18c\uc720\uc790\ub294 \uc800\uc7a5\uc18c\uc758 \ubaa8\ub4e0 \uc124\uc815\uc744 \uad00\ub9ac\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub7ec\ub098, \uac1c\uc778 \uc800\uc7a5\uc18c\ub97c \uc81c\uc678\ud558\uace0\ub294 \uc800\uc7a5\uc18c \uc774\ub984\uc744 \ubcc0\uacbd\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+gb.userPermissionsDescription = \uac1c\ubcc4 \uc0ac\uc6a9\uc790 \uad8c\ud55c\uc744 \uc9c0\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uc124\uc815\uc740 \ud300\uc774\ub098 \uc815\uaddc\uc2dd \uad8c\ud55c\uc744 \ubb34\uc2dc\ud569\ub2c8\ub2e4.
+gb.teamPermissionsDescription = \uac1c\ubcc4 \ud300 \uad8c\ud55c\uc744 \uc9c0\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uc124\uc815\uc740 \uc815\uaddc\uc2dd \uad8c\ud55c\uc744 \ubb34\uc2dc\ud569\ub2c8\ub2e4.
+gb.ticketSettings = \ud2f0\ucf13 \uc124\uc815
+gb.receiveSettings = \uc218\uc2e0 \uc124\uc815
+gb.receiveSettingsDescription = \uc218\uc2e0 \uc124\uc815\uc740 \uc800\uc7a5\uc18c\uc5d0 \ud478\uc2dc\ud558\ub294 \uac83\uc744 \uc81c\uc5b4\ud569\ub2c8\ub2e4.
+gb.preReceiveDescription = Pre-receive \ud6c5\uc740 \ucee4\ubc0b\uc744 \uc218\uc2e0\ud588\uc9c0\ub9cc, refs \uac00 \uc5c5\ub370\uc774\ud2b8 \ub418\uae30 <em>\uc804</em> \uc5d0 \uc2e4\ud589\ub429\ub2c8\ub2e4.<p>\uc774\uac83\uc740 \ud478\uc2dc\ub97c \uac70\ubd80\ud558\uae30\uc5d0 \uc801\uc808\ud55c \ud6c5 \uc785\ub2c8\ub2e4.</p>
+gb.postReceiveDescription = Post-receive \ud639\uc740 \ucee4\ubc0b\uc744 \uc218\uc2e0\ud558\uace0, refs \uac00 \uc5c5\ub370\uc774\ud2b8 \ub41c <em>\ud6c4</em> \uc5d0 \uc2e4\ud589\ub429\ub2c8\ub2e4.<p>\uc774\uac83\uc740 \uc54c\ub9bc, \ube4c\ub4dc \ud2b8\ub9ac\uac70 \ub4f1\uc744 \ud558\uae30\uc5d0 \uc801\uc808\ud55c \ud6c5 \uc785\ub2c8\ub2e4.</p>
+gb.federationStrategyDescription = \ub2e4\ub978 Gitblit \uacfc \ud398\ub354\ub808\uc774\uc158 \ud558\ub294 \ubc29\ubc95\uc744 \uc81c\uc5b4\ud569\ub2c8\ub2e4.
+gb.federationSetsDescription = \uc774 \uc800\uc7a5\uc18c\ub294 \uc120\ud0dd\ub41c \ud398\ub354\ub808\uc774\uc158 \uc14b\uc5d0 \ud3ec\ud568\ub429\ub2c8\ub2e4.
+gb.miscellaneous = \uae30\ud0c0
+gb.originDescription = \uc774 \uc800\uc7a5\uc18c\uac00 \ud074\ub860\ub41c \uacf3\uc758 url
+gb.gc = GC 
+gb.garbageCollection = \uac00\ube44\uc9c0 \uceec\ub809\uc158
+gb.garbageCollectionDescription = \uac00\ube44\uc9c0 \uceec\ub809\ud130\ub294 \ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0\uc11c \ud478\uc2dc\ud55c \ub290\uc2a8\ud55c \uc624\ube0c\uc81d\ud2b8\ub97c \ud328\ud0b9\ud558\uace0, \uc800\uc7a5\uc18c\uc5d0\uc11c \ucc38\uc870\ud558\uc9c0 \uc54a\ub294 \uc624\ube0c\uc81d\ud2b8\ub97c \uc0ad\uc81c\ud569\ub2c8\ub2e4.
+gb.commitMessageRendererDescription = \ucee4\ubc0b \uba54\uc2dc\uc9c0\ub294 \ud3c9\ubb38 \ub610\ub294 \ub9c8\ud06c\uc5c5\uc73c\ub85c \ub80c\ub354\ub9c1\ud558\uc5ec \ud45c\uc2dc\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
+gb.preferences = \uc124\uc815
+gb.accountPreferences = \uacc4\uc815 \uc124\uc815
+gb.accountPreferencesDescription = \uacc4\uc815 \uc124\uc815\uc744 \uc9c0\uc815\ud569\ub2c8\ub2e4.
+gb.languagePreference = \uc5b8\uc5b4 \uc124\uc815 
+gb.languagePreferenceDescription = \uc120\ud638\ud558\ub294 \uc5b8\uc5b4\ub97c \uc120\ud0dd\ud558\uc138\uc694.
+gb.emailMeOnMyTicketChanges = \ub0b4 \ud2f0\ucf13\uc774 \ubcc0\uacbd\ub418\uba74 \uc774\uba54\uc77c\ub85c \uc54c\ub9bc
+gb.emailMeOnMyTicketChangesDescription  = \ub0b4\uac00 \ub9cc\ub4e0 \ud2f0\ucf13\uc758 \ubcc0\uacbd\ub418\uba74 \ubcc0\uacbd\uc0ac\ud56d\uc744 \ub098\uc758 \uc774\uba54\uc77c\ub85c \uc54c\ub824\uc90c
+gb.displayNameDescription = \ud45c\uc2dc\ub420 \uc774\ub984
+gb.emailAddressDescription = \uc54c\ub9bc\uc744 \ubc1b\uae30\uc704\ud55c \uc8fc \uc774\uba54\uc77c
+gb.sshKeys = SSH \ud0a4
+gb.sshKeysDescription = SSH \uacf5\uac1c\ud0a4 \uc778\uc99d\uc740 \ud328\uc2a4\uc6cc\ub4dc \uc778\uc99d\uc744 \ub300\uccb4\ud558\ub294 \uc548\uc804\ud55c \ub300\uc548\uc785\ub2c8\ub2e4. 
+gb.addSshKey = SSH \ud0a4 \ucd94\uac00
+gb.key = \ud0a4
+gb.comment = \uc124\uba85
+gb.sshKeyCommentDescription = \uc0ac\uc6a9\uc790 \uc120\ud0dd\uc778 \uc124\uba85\uc744 \ucd94\uac00\ud558\uc138\uc694. \ube44\uc6cc \ub450\uba74 \ud0a4 \ub370\uc774\ud130\uc5d0\uc11c \ucd94\ucd9c\ud558\uc5ec \ucc44\uc6cc\uc9d1\ub2c8\ub2e4.
+gb.permission = \uad8c\ud55c
+gb.sshKeyPermissionDescription = SSH \ud0a4\uc758 \uc811\uc18d \uad8c\ud55c\uc744 \uc9c0\uc815\ud558\uc138\uc694.
+gb.transportPreference = \uc804\uc1a1 \uc124\uc815
+gb.transportPreferenceDescription = \ud074\ub860\uc2dc \uc0ac\uc6a9\ud560 \uc124\uc815\uc744 \uc9c0\uc815\ud558\uc138\uc694.
diff --git a/src/main/java/com/gitblit/wicket/GitBlitWebApp_nl.properties b/src/main/java/com/gitblit/wicket/GitBlitWebApp_nl.properties
index c669f3f..317716a 100644
--- a/src/main/java/com/gitblit/wicket/GitBlitWebApp_nl.properties
+++ b/src/main/java/com/gitblit/wicket/GitBlitWebApp_nl.properties
@@ -221,8 +221,8 @@
 gb.queryHelp = Standaard query syntax wordt ondersteund.<p/><p/>Zie aub <a target="_new" href="http://lucene.apache.org/core/old_versioned_docs/versions/3_5_0/queryparsersyntax.html">Lucene Query Parser Syntax</a> voor informatie.
 gb.queryResults = resultaten {0} - {1} ({2} hits)
 gb.noHits = geen hits
-gb.authored = authored
-gb.committed = committed
+gb.authored = geschreven
+gb.committed = gecommit
 gb.indexedBranches = geïndexeerde branches
 gb.indexedBranchesDescription = kies de branches voor opname in uw Lucene index
 gb.noIndexedRepositoriesWarning = geen van uw repositories is geconfigureerd voor Lucene indexering
@@ -517,7 +517,7 @@
 gb.proposedThisChange = stelde deze wijziging voor
 gb.uploadedPatchsetN = uploade patchset {0}
 gb.uploadedPatchsetNRevisionN = uploade patchset {0} revisie {1}
-gb.mergedPatchset = merged patchset
+gb.mergedPatchset = gemergede patchset
 gb.commented = becommentarieerde
 gb.noDescriptionGiven = geen omschrijving gegeven
 gb.toBranch = naar {0}
@@ -534,10 +534,10 @@
 gb.compareToN = vergelijk met {0}
 gb.open = open
 gb.closed = gesloten
-gb.merged = merged
+gb.merged = gemerged
 gb.ticketPatchset = ticket {0}, patchset {1}
 gb.patchsetMergeable = Deze patchset kan automatisch gemerged worden naar {0}.
-gb.patchsetMergeableMore = Deze patchset mag ook gemerged worden naar {0} vanaf de command line.
+gb.patchsetMergeableMore = Deze patchset mag ook gemerged worden naar {0} vanaf de commandline.
 gb.patchsetAlreadyMerged = Deze patchset is gemerged naar {0}.
 gb.patchsetNotMergeable = Deze patchset kan niet automatisch gemerged worden naar {0}.
 gb.patchsetNotMergeableMore = Deze patchset moet gerebased of handmatig gemerged worden naar {0} om conflicten op te lossen.
@@ -546,7 +546,7 @@
 gb.patchsetVetoedMore = Een reviewer heeft een veto uitgesproken over deze patchset.
 gb.write = write
 gb.comment = commentaar
-gb.preview = preview
+gb.preview = voorbeeld
 gb.leaveComment = plaats een opmerking...
 gb.showHideDetails = toon/verberg details
 gb.acceptNewPatchsets = accepteer patchsets
@@ -605,12 +605,12 @@
 gb.all = alle
 gb.mergeBase = merge base
 gb.checkout = checkout
-gb.checkoutViaCommandLine =  Checkout via command line
+gb.checkoutViaCommandLine =  Checkout via commandline
 gb.checkoutViaCommandLineNote = U kunt deze wijzigingen uitchecken en lokaal testen vanuit uw eigen kopie van deze repositorie.
 gb.checkoutStep1 = Dowbload the actuele patchset \u2014 run deze vanuit uw eigen projectdirectorie
 gb.checkoutStep2 = Check de patchset uit naar een nieuwe branch en review hem
-gb.mergingViaCommandLine = Mergen via command line
-gb.mergingViaCommandLineNote = Als u de merge knop niet wilt gebruiken of een automatische merge niet kan worden uitgevoerd kunt u een handmatige merge op de command line uitvoeren.
+gb.mergingViaCommandLine = Mergen via commandline
+gb.mergingViaCommandLineNote = Als u de merge knop niet wilt gebruiken of een automatische merge niet kan worden uitgevoerd kunt u een handmatige merge op de commandline uitvoeren.
 gb.mergeStep1 = Check out een nieuwe branch voor het reviewen van wijzigingen \u2014 run deze vanuit uw eigen projectdirectorie
 gb.mergeStep2 = Breng de voorgestelde wijzigingen in en review ze
 gb.mergeStep3 = Merge de voorgestelde wijzigingen en update de server
@@ -670,3 +670,75 @@
 gb.serverDoesNotAcceptPatchsets = Deze server accepteert geen patchsets.
 gb.ticketIsClosed = Deze ticket is gesloten.
 gb.mergeToDescription = default integratie branch voor het mergen van ticket patchsets
+gb.anonymousCanNotPropose = Anonieme gebruikers kunnen geen patchsets voorstellen.
+gb.youDoNotHaveClonePermission = U heeft geen rechten voor het clonen van deze repositorie.
+ggb.myTickets = mijn tickets
+gb.yourAssignedTickets = toegewezen aan mij
+gb.newMilestone = nieuwe milestone
+gb.editMilestone = wijzig milestone
+gb.deleteMilestone = Verwijder milestone \"{0}\"?
+gb.milestoneDeleteFailed = Milestone verwijdering ''{0}'' niet gelukt!
+gb.notifyChangedOpenTickets = verstuur notificatie voor wijziging open tickets
+gb.overdue = te laat
+gb.openMilestones = open milestones
+gb.closedMilestones = gesloten milestones
+gb.administration = administratie
+gb.plugins = plugins
+gb.extensions = extensies
+gb.pleaseSelectProject = Kies aub het project!
+gb.accessPolicy = Toegangspolicy
+gb.accessPolicyDescription = Kies een toegangspolicy voor het managen van de zichtbaarheid van de repositorie en de git toegangsrechten.
+gb.anonymousPolicy = Anoniem View, Clone, & Push
+gb.anonymousPolicyDescription = Iedereen mag deze repositorie zien, clonen, en er naartoe pushen.
+gb.authenticatedPushPolicy = Beperk Push (Geauthenticeerd)
+gb.authenticatedPushPolicyDescription = Iedereen kan deze repositorie zien en clonen. Alle geauthenticeerde gebruikers hebben RW+ push permissie.
+gb.namedPushPolicy = Beperk Push (Gebruiker bekend)
+gb.namedPushPolicyDescription = Iedereen kan deze repositorie zien en clonen. U bepaalt wie er mag pushen.
+gb.clonePolicy = Beperk Clone & Push
+gb.clonePolicyDescription = Iedereen kan deze repositorie zien. U bepaalt wie er mag clonen en pushen.
+gb.viewPolicy  = Beperk Zien, Clonen en Push
+gb.viewPolicyDescription = U bepaalt wie deze repositorie mag zien, clonen en er naar toe pushen.
+gb.initialCommit = Initiele Commit
+gb.initialCommitDescription = Dit maakt het u mogelijk om meteen <code>git clone</code> deze repositorie. Sla deze stap over als u al <code>git init</code> lokaal heeft uitgevoerd.
+gb.initWithReadme = Voeg een README toe
+gb.initWithReadmeDescription = Dit zal een eenvoudige README document toevoegen aan uw repositorie.
+gb.initWithGitignore = Voeg een .gitignore bestand toe
+gb.initWithGitignoreDescription = Dit zal een configuratiebestand toevoegen dat uw Git programma zal instrueren om bepaalde bestanden of directories die aan bepaalde selectiepatronen voldoen te negeren.
+gb.pleaseSelectGitIgnore = Kies aub een .gitignore bestand
+gb.receive = ontvang
+gb.permissions = permissies
+gb.ownersDescription = Eigenaren kunnen alle repositoriesettings managen maar het is niet toegestaan een repositorie te hernoemen tenzij het hun persoonlijke repositorie is.
+gb.userPermissionsDescription = U kunt afzonderlijke gebruikerspermissies specificeren. Deze instellingen zullen team- of regexpermisies overrulen.
+gb.teamPermissionsDescription = U kunt afzonderlijke teamspermissies specificeren. Deze instellingen zullen regexpermisies overrulen.
+gb.ticketSettings = Ticket Instellingen
+gb.receiveSettings = Ontvangstinstellingen
+gb.receiveSettingsDescription = De Ontvangstinstellingen managen pushes naar de repositorie.
+gb.preReceiveDescription = Pre-receive hooks worden uitgevoerd na commits zijn ontvangen maar <em>VOORDAT</em> de refs worden geupdated.<p>Dit is de juiste hook voor het afwijzen van een push.</p>
+gb.postReceiveDescription = Post-receive hooks worden uitgevoerd na commits zijn ontvangen maar <em>NADAT</em> de refs zijn geupdated.<p>Dit is de juiste hook voor notificaties, build triggers, etc.</p>
+gb.federationStrategyDescription = Bepaal of en hoe deze repositorie te federeren met een andere Gitblit.
+gb.federationSetsDescription = Deze repository zal worden opgenomen in de geselecteerde federatie sets.
+gb.miscellaneous = diversen
+gb.originDescription = De url vanaf welke deze repositorie was gecloned.
+gb.gc = GC 
+gb.garbageCollection = Garbage Collection
+gb.garbageCollectionDescription = De garbage collector zal losse objecten die gepushed zijn van clients samenvoegen en zal ongereferentieerde objecten uit de repository verwijderen.
+gb.commitMessageRendererDescription = Commit meldingen kunnen worden getoond als platte tekst of als gerenderde markup.
+gb.preferences = voorkeuren
+gb.accountPreferences = Accountvoorkeuren
+gb.accountPreferencesDescription = Specificeer uw accountvoorkeuren
+gb.languagePreference = Taalvoorkeuren
+gb.languagePreferenceDescription = Selecteer uw voorkeursvertaling van voor Gitblit
+gb.emailMeOnMyTicketChanges = Email bij ticketwijziging
+gb.emailMeOnMyTicketChangesDescription  = Stuur me een emailnotificatie voor wijzigingen die ik aanbreng aan een ticket
+gb.displayNameDescription = De gewenste naam om te tonen
+gb.emailAddressDescription = Het primaire emailadres voor het ontvangen van notificaties
+gb.sshKeys = SSH Sleutels
+gb.sshKeysDescription = SSH publiekesleutelauthenticatie is een veilig alternatief voor wachtwoordauthenticatie
+gb.addSshKey = Voeg SSH Sleutel toe
+gb.key = Sleutel
+gb.comment = Opmerking
+gb.sshKeyCommentDescription = Voeg een optionele opmerking toe. Indien leeg zal de opmerking uit de sleutelgegevens worden gehaald.
+gb.permission = Permissie
+gb.sshKeyPermissionDescription = Specificeer de toegangsrechten voor de SSH sleutel
+gb.transportPreference = Transportvoorkeuren
+gb.transportPreferenceDescription = Stel de transportmethode in die u wenst voor het clonen
diff --git a/src/main/java/com/gitblit/wicket/GitBlitWebApp_no.properties b/src/main/java/com/gitblit/wicket/GitBlitWebApp_no.properties
index 6792076..efc13a1 100644
--- a/src/main/java/com/gitblit/wicket/GitBlitWebApp_no.properties
+++ b/src/main/java/com/gitblit/wicket/GitBlitWebApp_no.properties
@@ -100,6 +100,9 @@
 gb.commitActivityTrend = aktivitetstrend for commits
 gb.commitActivityDOW = commit aktivitet gruppert p\u00e5 ukedag
 gb.commitActivityAuthors = prim\u00e6rforfattere etter aktivitet
+gb.feed = feed
+gb.cancel = avbryt
+gb.changePassword = endre passord
 gb.isFederated = er federert
 gb.federateThis = federer dette repositoriet
 gb.federateOrigin = federere origin
@@ -669,3 +672,73 @@
 gb.mergeToDescription = standard integration branch for merging av ticket patchsett
 gb.anonymousCanNotPropose = Anonyme brukere kan ikke foresl\u00e5 patchsett
 gb.youDoNotHaveClonePermission = Du har ikke tillatelse til \u00e5 klone dette repositoriet.
+gb.myTickets = mine tickets
+gb.yourAssignedTickets = tilordnet deg
+gb.newMilestone = ny milep\u00e6l
+gb.editMilestone = endre milep\u00e6l
+gb.deleteMilestone = Slette  milep\u00e6l \"{0}\"?
+gb.milestoneDeleteFailed = Greide ikke å slette milep\u00e6l ''{0}''!
+gb.notifyChangedOpenTickets = send meldin om endrede \u00e5pne tickets
+gb.overdue = forfalt
+gb.openMilestones = \u00e5pne milep\u00e6ler
+gb.closedMilestones = lukkede milep\u00e6ler
+gb.administration = administrasjon
+gb.plugins = plugins
+gb.extensions = extensions
+gb.pleaseSelectProject = Vennligst velg prosjekt!
+gb.accessPolicy = Tilgangspolicy
+gb.accessPolicyDescription = Velg en tilgangspolicy for å kontrollere synlighet og tilganger.
+gb.anonymousPolicy = Anonym view, clone og push
+gb.anonymousPolicyDescription = Alle kan se, clone ofg pushe til dette repositoriet.
+gb.authenticatedPushPolicy = Begrens push (Autentisert)
+gb.authenticatedPushPolicyDescription = Alle kan se og klone dette repositoriet. Alle autentiserte brukere har lese og skrivetilgang.
+gb.namedPushPolicy = Begrens push (navngitt)
+gb.namedPushPolicyDescription = Alle kan se og klone repositoriet. Du bestemmer hvem som kan pushe. 
+gb.clonePolicy = Begrens Clone og Push
+gb.clonePolicyDescription = Alle kan se dette repositoriet. Du bestemmer hvem som kan clone og pushe.
+gb.viewPolicy  = Begrense View, Clone og Push
+gb.viewPolicyDescription = Du bestemmer hvem som kan se, clone og pushe til dette repositoriet. 
+gb.initialCommit = F\u00F8rste commit
+gb.initialCommitDescription = Dette vil la deg kunne <code>git clone</code> repositoriet med en gang. Hopp over dette skrittet hvis du allerede har kj\u0F8rt  if <code>git init</code> lokalt.
+gb.initWithReadme = Inkluder en README
+gb.initWithReadmeDescription = Dette vil generere en enkel README-fil i ditt repository.
+gb.initWithGitignore = Inkluder en .gitignore fil
+gb.initWithGitignoreDescription = Dette vil inkludere en konfigurasjonsfil som instruerer git-klienter til å ignorerer filer og kataloger som matcher definerte m\u00F8nstre.
+gb.pleaseSelectGitIgnore = Vennligst velg en .gitignore fil
+gb.receive = motta
+gb.permissions = rettigheter
+gb.ownersDescription = Eiere kan administrere alle repositoriets innstillinger men de kan ikke endre p\u00e5 repositoriets navn med mindre det er deres eget repository.
+gb.userPermissionsDescription = Du kan spesifisere individuelle brukerrettigheter. Disse innstillingene overstyrer team- eller regul\u00e6ruttrykk-baserte rettigheter.
+gb.teamPermissionsDescription = Du kan spesifisere individuelle team-rettigheter. Disse innstillingene overstyrer regul\u00e6ruttrykk-baserte rettigheter..
+gb.ticketSettings = Ticket innstillinger
+gb.receiveSettings = Innstillinger for mottak av push
+gb.receiveSettingsDescription = Kontrollerer pushing til repositoriet.
+gb.preReceiveDescription = Pre-receive hooks blir utf\u00F8rt etter en committ er mottatt men <em>F\u00D8</em> refs har blitt oppdatert.<p>Dette er det passende stedet \u00e5 avvise en push.</p>
+gb.postReceiveDescription = Post-receive hooks blir utf\u00F8rt etter en committ er mottatt og <em>ETTER</em> refs har blitt oppdatert.<p>Dette er det passende stedet for notifikasjoner, build triggers osv.</p>
+gb.federationStrategyDescription = Kontroller om og hvordan dette repositoriet skal federeres med en annen Gitblit instans.
+gb.federationSetsDescription = Dette repositoriet vil bli inkludert i de valgte federeringssettene.
+gb.miscellaneous = ymse
+gb.originDescription = URL'en som dette repositoriet ble klonet fra.
+gb.gc = GC 
+gb.garbageCollection = Garbage Collection
+gb.garbageCollectionDescription = Garbage collectoren vil pakke sammen l\u00F8se objekter pushet fra klientene og fjerne objekter det ikke refereres til fra minnet.
+gb.commitMessageRendererDescription = Commit-meldinger kan vises som ren tekst, eller som markup.
+gb.preferences = innstillinger
+gb.accountPreferences = Kontoinnstillinger
+gb.accountPreferencesDescription = Velg dine kontoinnstillinger
+gb.languagePreference = Foretrukket spr\u00e5k
+gb.languagePreferenceDescription = Velg ditt foretrukne spr\u00e5k for Gitblit
+gb.emailMeOnMyTicketChanges = Send meg en epost når ticketen min endrer seg
+gb.emailMeOnMyTicketChangesDescription  = Send meg en epost for endringer jeg gjør på en ticket.
+gb.displayNameDescription = Foretrukket visningsnavn
+gb.emailAddressDescription = Prim\u00e6r epostadresse for notifikasjoner
+gb.sshKeys = SSH n\u00F8kler
+gb.sshKeysDescription = SSH public key autentisering er et sikkert alternativ til autentisering med passord
+gb.addSshKey = Legg til SSH n\u00F8kkel
+gb.key = N\u00F8kkel
+gb.comment = Kommentar
+gb.sshKeyCommentDescription = Angi en valgfri kommentar. Kommentaren vil bli ekstrahert fra n\u00F8kkeldataene hvis blank
+gb.permission = Tilgang
+gb.sshKeyPermissionDescription = Angi tilgangsrettinghet for SSH n\u00F8kkelen
+gb.transportPreference = Foretrukket transport 
+gb.transportPreferenceDescription = Sett transportmetoden du foretrekker for cloning
\ No newline at end of file
diff --git a/src/main/java/com/gitblit/wicket/GitBlitWebApp_zh_CN.properties b/src/main/java/com/gitblit/wicket/GitBlitWebApp_zh_CN.properties
index 5976614..b5e4f65 100644
--- a/src/main/java/com/gitblit/wicket/GitBlitWebApp_zh_CN.properties
+++ b/src/main/java/com/gitblit/wicket/GitBlitWebApp_zh_CN.properties
@@ -669,4 +669,76 @@
 gb.repositoryDoesNotAcceptPatchsets = \u5f53\u524d\u7248\u672c\u5e93\u4e0d\u5141\u8bb8\u8865\u4e01\u96c6\u3002
 gb.serverDoesNotAcceptPatchsets = \u5f53\u524d\u670d\u52a1\u5668\u4e0d\u5141\u8bb8\u8865\u4e01\u96c6\u3002
 gb.ticketIsClosed = \u5f53\u524d\u5de5\u5355\u5df2\u5173\u95ed\u3002
-gb.mergeToDescription = \u5408\u5e76\u5de5\u5355\u8865\u4e01\u96c6\u7684\u9ed8\u8ba4\u96c6\u6210\u5206\u652f
\ No newline at end of file
+gb.mergeToDescription = \u5408\u5e76\u5de5\u5355\u8865\u4e01\u96c6\u7684\u9ed8\u8ba4\u96c6\u6210\u5206\u652f
+gb.anonymousCanNotPropose = \u7981\u6b62\u533f\u540d\u7528\u6237\u63d0\u4ea4\u8865\u4e01\u96c6\u3002
+gb.youDoNotHaveClonePermission = \u60a8\u6ca1\u6709\u6743\u9650\u514b\u9686\u5f53\u524d\u7248\u672c\u5e93\u3002
+gb.myTickets = \u6211\u7684\u5de5\u5355
+gb.yourAssignedTickets = \u8d23\u4efb\u5de5\u5355
+gb.newMilestone = \u65b0\u5efa milestone
+gb.editMilestone = \u7f16\u8f91 milestone
+gb.deleteMilestone = \u5220\u9664 milestone \\"{0}\\"?
+gb.milestoneDeleteFailed = \u5220\u9664 milestone ''{0}'' \u5931\u8d25!
+gb.notifyChangedOpenTickets = \u5bf9\u53d1\u751f\u53d8\u52a8\u7684\u5df2\u5f00\u542f\u5de5\u5355\u53d1\u9001\u901a\u77e5
+gb.overdue = \u8fc7\u671f
+gb.openMilestones = \u5df2\u5f00\u542f milestones
+gb.closedMilestones = \u5df2\u5173\u95ed milestones
+gb.administration = \u7ba1\u7406
+gb.plugins = \u63d2\u4ef6
+gb.extensions = \u6269\u5c55
+gb.pleaseSelectProject = \u8bf7\u9009\u62e9\u9879\u76ee!
+gb.accessPolicy = \u8bbf\u95ee\u7b56\u7565
+gb.accessPolicyDescription = \u8bf7\u9009\u62e9\u4e00\u4e2a\u63a7\u5236\u7248\u672c\u5e93\u53ef\u89c1\u6027\u4ee5\u53caGit\u8bbf\u95ee\u6743\u9650\u7684\u8bbf\u95ee\u7b56\u7565\u3002
+gb.anonymousPolicy = \u533f\u540d\u67e5\u770b, \u514b\u9686\u548c\u63a8\u9001
+gb.anonymousPolicyDescription = \u4efb\u4f55\u4eba\u90fd\u53ef\u4ee5\u67e5\u770b\uff0c\u514b\u9686\u4ee5\u53ca\u63a8\u9001\u81f3\u6b64\u7248\u672c\u5e93\u3002
+gb.authenticatedPushPolicy = \u9650\u5236\u63a8\u9001 (\u6388\u6743\u8bbf\u95ee)
+gb.authenticatedPushPolicyDescription = \u4efb\u4f55\u4eba\u90fd\u53ef\u4ee5\u67e5\u770b\u4ee5\u53ca\u514b\u9686\u6b64\u7248\u672c\u5e93\u3002\u4efb\u4f55\u5df2\u6388\u6743\u7528\u6237\u62e5\u6709RW+\u63a8\u9001\u6743\u9650\u3002
+gb.namedPushPolicy = \u9650\u5236\u63a8\u9001 (\u6307\u5b9a\u7528\u6237)
+gb.namedPushPolicyDescription = \u4efb\u4f55\u4eba\u90fd\u53ef\u4ee5\u67e5\u770b\u4ee5\u53ca\u514b\u9686\u6b64\u7248\u672c\u5e93\u3002 \u60a8\u53ef\u4ee5\u9009\u62e9\u62e5\u6709\u63a8\u9001\u6743\u9650\u7684\u7528\u6237\u3002
+gb.clonePolicy = \u9650\u5236\u514b\u9686\uff0c\u63a8\u9001
+gb.clonePolicyDescription = \u4efb\u4f55\u4eba\u90fd\u53ef\u4ee5\u770b\u5230\u6b64\u7248\u672c\u5e93\u3002\u60a8\u53ef\u4ee5\u9009\u62e9\u62e5\u6709\u514b\u9686\u548c\u63a8\u9001\u6743\u9650\u7684\u7528\u6237\u3002
+gb.viewPolicy = \u9650\u5236\u67e5\u770b\uff0c\u514b\u9686\u548c\u63a8\u9001
+gb.viewPolicyDescription = \u60a8\u53ef\u4ee5\u9009\u62e9\u62e5\u6709\u67e5\u770b\uff0c\u514b\u9686\u548c\u63a8\u9001\u6743\u9650\u7684\u7528\u6237\u3002
+gb.initialCommit = \u521d\u59cb\u5316\u63d0\u4ea4
+gb.initialCommitDescription = \u6b64\u529f\u80fd\u76f8\u5f53\u4e8e\u76f4\u63a5\u5bf9\u5f53\u524d\u7248\u672c\u5e93\u8fdb\u884c <code>git clone</code> \u3002 \u5982\u679c\u8df3\u8fc7\u6b64\u6b65\uff0c\u60a8\u5fc5\u987b\u5728\u672c\u5730\u8fdb\u884c <code>git init</code> \u3002
+gb.initWithReadme = \u52a0\u5165 README
+gb.initWithReadmeDescription = \u6b64\u529f\u80fd\u4f1a\u81ea\u52a8\u751f\u6210\u4e00\u4e2a\u60a8\u7684\u7248\u672c\u5e93\u7684 README \u6587\u4ef6\u3002
+gb.initWithGitignore = \u52a0\u5165 .gitignore \u6587\u4ef6
+gb.initWithGitignoreDescription = \u6b64\u529f\u80fd\u4f1a\u751f\u6210\u4e00\u4e2a\u914d\u7f6e\u6587\u4ef6\uff0c\u65e8\u5728\u63d0\u793a Git \u5ba2\u6237\u7aef\u5ffd\u7565\u5bf9\u5e94\u7684\u6587\u4ef6\u6216\u6587\u4ef6\u5939\u3002
+gb.pleaseSelectGitIgnore = \u8bf7\u9009\u62e9\u4e00\u4e2a .gitignore \u6587\u4ef6
+gb.receive = receive
+gb.permissions = permissions
+gb.ownersDescription = \u7248\u672c\u5e93\u62e5\u6709\u8005\u62e5\u6709\u7248\u672c\u5e93\u7684\u6240\u6709\u7ba1\u7406\u6743\u9650\uff0c\u4f46\u662f\u53ea\u5141\u8bb8\u4fee\u6539\u79c1\u6709\u7248\u672c\u5e93\u7684\u540d\u79f0\u3002
+gb.userPermissionsDescription = \u60a8\u53ef\u4ee5\u8bbe\u7f6e\u79c1\u6709\u7528\u6237\u6743\u9650\u3002 \u6b64\u8bbe\u7f6e\u4f1a\u8986\u76d6\u56e2\u961f\u6743\u9650\u4ee5\u53caregex\u6743\u9650\u3002
+gb.teamPermissionsDescription = \u60a8\u53ef\u4ee5\u8bbe\u7f6e\u79c1\u6709\u56e2\u961f\u6743\u9650\u3002 \u6b64\u8bbe\u7f6e\u4f1a\u8986\u76d6regex\u6743\u9650\u3002
+gb.ticketSettings = \u5de5\u5355\u8bbe\u7f6e
+gb.receiveSettings = Receive \u8bbe\u7f6e
+gb.receiveSettingsDescription = Receive\u8bbe\u7f6e\u8bbe\u5b9a\u63a8\u9001\u81f3\u7248\u672c\u5e93\u65f6\u7684\u884c\u4e3a\u3002
+gb.preReceiveDescription = Pre-receive hooks \u4f1a\u5728\u63a8\u9001\u63a5\u6536\u540e\uff0c refs \u66f4\u65b0<em>\u4e4b\u524d</em>\u6267\u884c\u3002<p>\u8fd9\u79cdhook\u662f\u8fdb\u884c\u63a8\u9001\u62d2\u7edd\u7684\u597d\u5de5\u5177\u3002</p>
+gb.postReceiveDescription = Post-receive hooks \u4f1a\u5728\u63a8\u9001\u63a5\u6536\u540e\uff0c refs \u66f4\u65b0<em>\u4e4b\u540e</em>\u6267\u884c\u3002<p>\u8fd9\u79cdhook\u662f\u8fdb\u884c\u901a\u77e5\uff0c\u4f7f\u7528\u6784\u5efa\u89e6\u53d1\u5668\u7b49\u7684\u597d\u5de5\u5177\u3002</p>
+gb.federationStrategyDescription = \u8bbe\u7f6e\u662f\u5426\u4ee5\u53ca\u5982\u4f55\u5c06\u5f53\u524d\u7248\u672c\u5e93\u4e0e\u5176\u4ed6Gitblit\u8fdb\u884cfederate\u3002
+gb.federationSetsDescription = \u5f53\u524d\u7248\u672c\u5e93\u5c06\u4f1a\u88ab\u5305\u542b\u8fdb\u9009\u5b9a\u7684federation\u96c6\u4e2d\u3002
+gb.miscellaneous = miscellaneous
+gb.originDescription = \u5f53\u524d\u7248\u672c\u5e93\u7684\u514b\u9686\u6e90\u5730\u5740\u3002
+gb.gc = GC
+gb.garbageCollection = \u5783\u573e\u6536\u96c6
+gb.garbageCollectionDescription = \u5783\u573e\u6536\u96c6\u5668\u4f1a\u5c06\u5ba2\u6237\u7aef\u6240\u53d1\u9001\u7684\u677e\u6563\u6587\u4ef6\u6253\u5305\u5e76\u5220\u9664\u5f53\u524d\u7248\u672c\u5e93\u4e2d\u672a\u88ab\u5f15\u7528\u7684\u5bf9\u8c61\u3002
+gb.commitMessageRendererDescription = \u53ef\u4ee5\u5c06\u63d0\u4ea4\u4fe1\u606f\u663e\u793a\u4e3a\u7eaf\u6587\u672c\u6216\u8005\u5df2\u6392\u7248\u7684Markup\u6587\u672c
+gb.preferences = \u504f\u597d
+gb.accountPreferences = \u7528\u6237\u504f\u597d
+gb.accountPreferencesDescription = \u8bbe\u7f6e\u60a8\u7684\u7528\u6237\u504f\u597d
+gb.languagePreference = \u8bed\u8a00\u504f\u597d
+gb.languagePreferenceDescription = \u9009\u62e9\u60a8\u559c\u6b22\u7684Gitblit\u7ffb\u8bd1
+gb.emailMeOnMyTicketChanges = \u5728\u6211\u7684\u5de5\u5355\u53d1\u751f\u53d8\u5316\u540e\u90ae\u4ef6\u901a\u77e5\u6211
+gb.emailMeOnMyTicketChangesDescription = \u5bf9\u6211\u5728\u5de5\u5355\u4e2d\u4f5c\u51fa\u7684\u4fee\u6539\u53d1\u9001\u90ae\u4ef6\u901a\u77e5\u3002
+gb.displayNameDescription = \u9009\u62e9\u663e\u793a\u540d\u79f0
+gb.emailAddressDescription = \u63a5\u6536\u901a\u77e5\u7684\u4e3b\u8981\u90ae\u7bb1\u5730\u5740
+gb.sshKeys = SSH Keys
+gb.sshKeysDescription = SSH \u516c\u7ea6\u8ba4\u8bc1\u662f\u4e00\u79cd\u4e0d\u540c\u4e8e\u5bc6\u7801\u8ba4\u8bc1\u7684\u5b89\u5168\u8ba4\u8bc1\u65b9\u6cd5\u3002
+gb.addSshKey = \u6dfb\u52a0 SSH Key
+gb.key = Key
+gb.comment = \u53d1\u8868
+gb.sshKeyCommentDescription = \u8f93\u5165\u8bc4\u8bba\uff08\u53ef\u4e3a\u7a7a\uff09. \u5982\u679c\u4e3a\u7a7a\uff0c \u8bc4\u8bba\u5185\u5bb9\u5c06\u4f1a\u4ece\u4e3b\u8981\u6570\u636e\u4e2d\u63d0\u53d6\u3002
+gb.permission = \u6743\u9650
+gb.sshKeyPermissionDescription = \u8bbe\u7f6eSSH key\u7684\u8bbf\u95ee\u6743\u9650
+gb.transportPreference = Transport \u504f\u597d
+gb.transportPreferenceDescription = \u9009\u62e9\u60a8\u7528\u6765\u514b\u9686\u7684 Transport
\ No newline at end of file
diff --git a/src/main/java/com/gitblit/wicket/charting/Flotr2Charts.java b/src/main/java/com/gitblit/wicket/charting/Flotr2Charts.java
index dd72362..7a8adcf 100644
--- a/src/main/java/com/gitblit/wicket/charting/Flotr2Charts.java
+++ b/src/main/java/com/gitblit/wicket/charting/Flotr2Charts.java
@@ -32,24 +32,30 @@
 
 	@Override
 	public void renderHead(IHeaderResponse response) {
-		
+
 		// add Google Chart JS API reference
 		ServletContext servletContext = WebApplication.get().getServletContext();
 		String contextPath = servletContext.getContextPath();
-		
+
 		response.renderJavascriptReference(contextPath + "/bootstrap/js/jquery.js");
 		response.renderJavascriptReference(contextPath + "/flotr2/flotr2.min.js");
 		response.renderCSSReference(contextPath + "/flotr2/flotr2.custom.css");
-		
+
 		// prepare draw chart function
 		StringBuilder sb = new StringBuilder();
-		
+
 		line(sb, "$( document ).ready(function() {");
+		line(sb, "try {");
 		// add charts to header
 		for (Chart chart : charts) {
 			chart.appendChart(sb);
 		}
-
+		line(sb, "} catch (exception) {");
+		line(sb, "  if (window.console && window.console.log) {");
+		line(sb, "    window.console.log('flotr2 exception');");
+		line(sb, "    window.console.log(exception);");
+		line(sb, "  }");
+		line(sb, "}");
 		// end draw chart function
 		line(sb, "});");
 		response.renderJavascript(sb.toString(), null);
@@ -72,5 +78,5 @@
 			String valueName) {
 		return new Flotr2BarChart(tagId, title, keyName, valueName);
 	}
-	
+
 }
diff --git a/src/main/java/com/gitblit/wicket/pages/EmptyRepositoryPage_de.html b/src/main/java/com/gitblit/wicket/pages/EmptyRepositoryPage_de.html
new file mode 100644
index 0000000..6888e1d
--- /dev/null
+++ b/src/main/java/com/gitblit/wicket/pages/EmptyRepositoryPage_de.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

+<html xmlns="http://www.w3.org/1999/xhtml"  

+      xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd"  

+      xml:lang="en"  

+      lang="en"> 

+

+<body>

+<wicket:extend>

+<div class="container">

+<div class="markdown">

+<div class="row">

+<div class="span10 offset1">	

+	<h3><center>Leeres Repository</center></h3>

+	<div class="alert alert-info">

+		<span wicket:id="repository" style="font-weight: bold;">[repository]</span> ist ein leeres Repository und kann von Gitblit nicht angezeigt werden.

+		<p></p>		

+		Bitte pushen Sie einige Commits nach <span wicket:id="pushurl"></span>

+		<hr/>

+        Nachdem Sie Commits gepusht haben, können Sie diese Seite <b>aktualisieren</b>, um Ihr Repository anzuzeigen.

+	</div>

+		

+	<h3><center>Neues Respository auf der Kommandozeile erstellen</center></h3>

+

+	<pre wicket:id="createSyntax"></pre>

+

+	<h3><center>Ein existierendes Repository von der Kommandozeile pushen</center></h3>

+

+	<pre wicket:id="existingSyntax"></pre>

+	

+	<div class="span8 offset1">

+		<h2><center>Git lernen</center></h2>

+		<p>Falls Sie unsicher sind, was Sie mit diesen Informationen anfangen sollen, können Sie sich das <a href="http://git-scm.com/book/de">Git Community Buch</a> anschauen, um ein besseres Verständnis über die Verwendung von Git aufzubauen.</p>

+

+		<h4>Open Source Git Clients</h4>

+		<table>

+		<tbody>

+			<tr><td><a href="http://git-scm.com">Git</a></td><td>der offizielle Kommandozeilen-Git-Client</td></tr>

+			<tr><td><a href="http://tortoisegit.googlecode.com">TortoiseGit</a></td><td>Windows Datei Explorer Integration (erfordert den offiziellen Kommandozeilen-Client)</td></tr>

+			<tr><td><a href="http://eclipse.org/egit">Eclipse/EGit</a></td><td>Git für die Eclipse IDE (basiert auf JGit, ebenso wie Gitblit)</td></tr>

+			<tr><td><a href="https://code.google.com/p/gitextensions/">Git Extensions</a></td><td>C# Frontend für Git mit Windows Explorer und Visual Studio Integration</td></tr>

+			<tr><td><a href="http://rowanj.github.io/gitx/">GitX-dev</a></td><td>ein Mac OS X Git Client</td></tr>

+		</tbody>			

+		</table>

+

+		<h4>Kommerzielle/Closed-Source Git Clients</h4>

+		<table>

+		<tbody>

+			<tr><td><a href="http://www.syntevo.com/smartgithg">SmartGit/Hg</a></td><td>Ein Java Git und Mercurial Client für Windows, Mac und Linux</td></tr>

+			<tr><td><a href="http://www.sourcetreeapp.com/">SourceTree</a></td><td>Ein freier Git und Mercurial Client für Windows und Mac</td></tr>

+			<tr><td><a href="http://www.git-tower.com/">Tower</a></td><td>Ein Mac OS X Git Client</td></tr>

+		</tbody>

+		</table>

+	</div>

+</div>

+</div>

+</div>

+</div>

+</wicket:extend>	

+</body>

+</html>

diff --git a/src/main/java/com/gitblit/wicket/pages/EmptyRepositoryPage_ko.html b/src/main/java/com/gitblit/wicket/pages/EmptyRepositoryPage_ko.html
index 7fbcee1..0ecb54d 100644
--- a/src/main/java/com/gitblit/wicket/pages/EmptyRepositoryPage_ko.html
+++ b/src/main/java/com/gitblit/wicket/pages/EmptyRepositoryPage_ko.html
@@ -14,41 +14,41 @@
 	<div class="alert alert-info">
 		<span wicket:id="repository" style="font-weight: bold;">[repository]</span> 저장소는 비어 있어서 Gitblit 에서 볼 수 없습니다.
 		<p></p>		
-		이 Git url 에 커밋해 주세요. <span wicket:id="pushurl"></span>
+		이 Git url 에 커밋을 푸시하세요. <span wicket:id="pushurl"></span>
 		<hr/>
-		After you have pushed commits you may <b>refresh</b> this page to view your repository.
+		커밋을 푸시한 후 이 페이지를 <b>새로고침</b>하면 저장소가 보여질 것입니다.
 	</div>
 		
-	<h3><center>Create a new repository on the command-line</center></h3>
+	<h3><center>커맨드라인에서 새 저장소 생성하기</center></h3>
 
 	<pre wicket:id="createSyntax"></pre>
 
-	<h3><center>Push an existing repository from the command-line</center></h3>
+	<h3><center>커맨드라인에서 기존의 저장소를 푸시하기</center></h3>
 
 	<pre wicket:id="existingSyntax"></pre>
 
 	<div class="span8 offset1">
 		<h2><center>Git 배우기</center></h2>
 		<p>만약 사용법에 자신이 없다면, Git 사용법을 더 잘 이해하기 위해 
-			 <a href="http://book.git-scm.com/ko">Git Community Book</a> 또는 을 볼 것을 고려해 보세요.</p>
+			 <a href="http://book.git-scm.com/ko">Git Community Book</a> 을 볼 것을 고려해 보세요.</p>
 
-		<h4>오픈소스 Git 클라이언트</h4>
+		<h4>오픈 소스 Git 클라이언트</h4>
 		<table>
 		<tbody>
 			<tr><td><a href="http://git-scm.com">Git</a></td><td>명령어 기반 공식 Git</td></tr>
 			<tr><td><a href="http://tortoisegit.googlecode.com">TortoiseGit</a></td><td>윈도의 파일 탐색기에 통합된 UI 클라이언트 (명령어 기반 공식 Git 필요)</td></tr>
 			<tr><td><a href="http://eclipse.org/egit">Eclipse/EGit</a></td><td>이클립스 IDE 플러그인 (Gitblit 과 같은 JGit 기반)</td></tr>
-			<tr><td><a href="https://code.google.com/p/gitextensions/">Git Extensions</a></td><td>C# frontend for Git that features Windows Explorer and Visual Studio integration</td></tr>
-			<tr><td><a href="http://rowanj.github.io/gitx/">GitX-dev</a></td><td>a Mac OS X Git client</td></tr>
+			<tr><td><a href="https://code.google.com/p/gitextensions/">Git Extensions</a></td><td>윈도 탐색기와 비주얼스튜디어를 위한 C#으로 개발된 기능</td></tr>
+			<tr><td><a href="http://rowanj.github.io/gitx/">GitX-dev</a></td><td>맥 OS X 용 Git 클라이언트</td></tr>
 		</tbody>			
 		</table>
 
-		<h4>유료 Git 클라이언트</h4>
+		<h4>유료/클로즈드 소스 Git 클라이언트</h4>
 		<table>
 		<tbody>
 			<tr><td><a href="http://www.syntevo.com/smartgithg">SmartGit/Hg</a></td><td>자바 어플리케이션 (명령어 기반 공식 Git 필요)</td></tr>
-			<tr><td><a href="http://www.sourcetreeapp.com/">SourceTree</a></td><td>A free Git and Mercurial client for Windows & Mac</td></tr>
-			<tr><td><a href="http://www.git-tower.com/">Tower</a></td><td>a Mac OS X Git client</td></tr>
+			<tr><td><a href="http://www.sourcetreeapp.com/">SourceTree</a></td><td>윈도와 맥에서 가능한 Git 과 Mercurial용 무료 클라이언트</td></tr>
+			<tr><td><a href="http://www.git-tower.com/">Tower</a></td><td>맥 OS X 용 Git 클라이언트</td></tr>
 		</tbody>
 		</table>
 	</div>
diff --git a/src/main/java/com/gitblit/wicket/pages/EmptyRepositoryPage_nl.html b/src/main/java/com/gitblit/wicket/pages/EmptyRepositoryPage_nl.html
index 84373d2..ab207d1 100644
--- a/src/main/java/com/gitblit/wicket/pages/EmptyRepositoryPage_nl.html
+++ b/src/main/java/com/gitblit/wicket/pages/EmptyRepositoryPage_nl.html
@@ -19,11 +19,11 @@
 		Nadat u een commits gepushed heeft, kunt u deze pagina <b>verversen</b> om uw repository te bekijken.

 	</div>

 		

-	<h3><center>Create a new repository on the command-line</center></h3>

+	<h3><center>Maak een nieuwe repositorie via de command-line</center></h3>

 

 	<pre wicket:id="createSyntax"></pre>

 

-	<h3><center>Push an existing repository from the command-line</center></h3>

+	<h3><center>Push een bestaande repositorie vanaf de command-line</center></h3>

 

 	<pre wicket:id="existingSyntax"></pre>

 

@@ -31,18 +31,18 @@
 		<h2><center>Leer Git</center></h2>

 		<p>Als u niet goed weet wat u met deze informatie aan moet, raden we u aan om het <a href="http://book.git-scm.com/nl">Git Community Book</a> te bestuderen voor een beter begrip over hoe u Git kunt gebruiken.</p>

 

-		<h4>Open Source Git Clients</h4>

+		<h4>Open Source Git Programma's</h4>

 		<table>

 		<tbody>

 			<tr><td><a href="http://git-scm.com">Git</a></td><td>de officiele, command-line Git</td></tr>

-			<tr><td><a href="http://tortoisegit.googlecode.com">TortoiseGit</a></td><td>Windows bestandsverkenner ingetratie (officiele command-line Git is wel nodig)</td></tr>

+			<tr><td><a href="http://tortoisegit.googlecode.com">TortoiseGit</a></td><td>Windows bestandsverkenner integratie (officiele command-line Git is wel nodig)</td></tr>

 			<tr><td><a href="http://eclipse.org/egit">Eclipse/EGit</a></td><td>Git voor de Eclipse IDE (gebaseerd op JGit, zoals Gitblit)</td></tr>

 			<tr><td><a href="https://code.google.com/p/gitextensions/">Git Extensions</a></td><td>C# frontend voor Git met Windows Explorer en Visual Studio integratie</td></tr>

 			<tr><td><a href="http://rowanj.github.io/gitx/">GitX-dev</a></td><td>een Mac OS X Git client</td></tr>

 		</tbody>			

 		</table>

 

-		<h4>Commercial/Closed-Source Git Clients</h4>

+		<h4>Commerciele/Closed-Source Git Programma's</h4>

 		<table>

 		<tbody>

 			<tr><td><a href="http://www.syntevo.com/smartgithg">SmartGit/Hg</a></td><td>Een Java Git, Mercurial, en SVN client applicatie (officiele command-line Git is wel nodig)</td></tr>

diff --git a/src/main/java/com/gitblit/wicket/pages/EmptyRepositoryPage_no.html b/src/main/java/com/gitblit/wicket/pages/EmptyRepositoryPage_no.html
new file mode 100644
index 0000000..273e15f
--- /dev/null
+++ b/src/main/java/com/gitblit/wicket/pages/EmptyRepositoryPage_no.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"  
+      xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd"  
+      xml:lang="en"  
+      lang="en"> 
+
+<body>
+<wicket:extend>
+<div class="container">
+<div class="markdown">
+<div class="row">
+	<div class="span10 offset1">	
+	<h3><center>Tomt Repository</center></h3>
+	<div class="alert alert-info">
+		<span wicket:id="repository" style="font-weight: bold;">[repository]</span> er et tomt repository som ikke kan vises av Gitblit.
+					<p></p>		
+					Vennligst push noen endringer inn til <span wicket:id="pushurl"></span>
+					<hr/>
+					Etter at du har pushet noen endringer, kan du <b>oppfriske</b> denne siden for \u00e5 se repositoriet. 
+		</div>
+		
+	<h3><center>Opprett et nytt repository fra kommandolinjen</center></h3>
+
+	<pre wicket:id="createSyntax"></pre>
+
+	<h3><center>Push et eksisternde repository fra kommandolinjen</center></h3>
+
+	<pre wicket:id="existingSyntax"></pre>
+
+	<div class="span8 offset1">
+		<h2><center>L\u00e6r Git</center></h2>
+		<p>Hvis du er usikker p\u00e5 hvordan du kan benytte denne informasjonen, vurder \u00e5 lese  <a href="http://book.git-scm.com">Git Community Book</a> eller <a href="http://progit.org/book" target="_blank">Pro Git</a> for \u00e5 f\u00e5 en bedre forst\u00e5else av hvordan du kan bruke Git. </p>
+
+		<h4>Open Source Git Clients</h4>
+		<table>
+		<tbody>
+			<tr><td>a href="http://git-scm.com">Git</a> - den offisielle, kommando-linje git</td></tr>
+			<tr><td>a href="http://tortoisegit.googlecode.com">TortoiseGit</a> - Windows filutforsker integrasjon (krever den offisielle kommando-linje git versjonen installert</td></tr>
+			<tr><td><a href="http://eclipse.org/egit">Eclipse/EGit</a> - Git for Eclipse IDE (basert p\u00e5 JGit, akkurat som Gitblit er)</tr>
+			<tr><td><a href="https://code.google.com/p/gitextensions/">Git Extensions</a> - En C# frontend for Git som integrerer med filutforskeren og Visual Studio.</td></tr>
+			<tr><td><a href="http://rowanj.github.io/gitx/">GitX-dev</a> - En  git klient for OS X</td></tr>
+		</tbody>			
+		</table>
+
+		<h4>Commercial/Closed-Source Git Clients</h4>
+		<table>
+		<tbody>
+			<tr><td><a href="http://www.syntevo.com/smartgithg">SmartGit/Hg</a> - En Git og Mercurial klient for Windows, Mac, og Linux</td></tr>
+			<tr><td><a href="http://www.sourcetreeapp.com/">SourceTree</a> - En gratis Git og Mercurial klient for Windows og Mac</td></tr>
+			<tr><td>a href="http://www.git-tower.com/">Tower</a> - En git klient for Mac OS X </td></tr>
+		</tbody>
+		</table>
+	</div>
+</div>
+</div>
+</div>
+</div>
+</wicket:extend>	
+</body>
+</html>
diff --git a/src/main/java/com/gitblit/wicket/pages/EmptyRepositoryPage_zh_CN.html b/src/main/java/com/gitblit/wicket/pages/EmptyRepositoryPage_zh_CN.html
index 1acf4f8..72ce051 100644
--- a/src/main/java/com/gitblit/wicket/pages/EmptyRepositoryPage_zh_CN.html
+++ b/src/main/java/com/gitblit/wicket/pages/EmptyRepositoryPage_zh_CN.html
@@ -20,11 +20,11 @@
 		当你推送完毕后你可以 <b>刷新</b> 此页面重新查看您的版本库。
 	</div>
 		
-	<h3><center>Create a new repository on the command-line</center></h3>
+	<h3><center>通过命令行创建一个新的版本库</center></h3>
 
 	<pre wicket:id="createSyntax"></pre>
 
-	<h3><center>Push an existing repository from the command-line</center></h3>
+	<h3><center>通过命令行推送一个已存在的版本库</center></h3>
 
 	<pre wicket:id="existingSyntax"></pre>
 
@@ -46,7 +46,7 @@
 		<h4>商业/闭源 Git 客户端</h4>
 		<table>
 		<tbody>
-			<tr><td><a href="http://www.syntevo.com/smartgithg">SmartGit/Hg</a></td><td>Java 版本的支持 Git, Mercurial 和 SVN 客户端应用 (需要官方, 命令行 Git 的支持)</td></tr>
+			<tr><td><a href="http://www.syntevo.com/smartgithg">SmartGit/Hg</a></td><td>Java 版本的支持 Git, Mercurial 和 SVN 客户端应用 </td></tr>
 			<tr><td><a href="http://www.sourcetreeapp.com/">SourceTree</a></td><td>免费的 Mac Git Mercurial 以及 SVN 客户端 and Mercurial</td></tr>
 			<tr><td><a href="http://www.git-tower.com/">Tower</a></td><td>Mac OS X Git 客户端</td></tr>
 		</tbody>
diff --git a/src/main/java/com/gitblit/wicket/pages/UserPage.html b/src/main/java/com/gitblit/wicket/pages/UserPage.html
index 8dccfee..6bdd3ce 100644
--- a/src/main/java/com/gitblit/wicket/pages/UserPage.html
+++ b/src/main/java/com/gitblit/wicket/pages/UserPage.html
@@ -64,8 +64,8 @@
 		<form wicket:id="prefsForm">

 			<div wicket:id="displayName"></div>

 			<div wicket:id="emailAddress"></div>

-			<div wicket:id="language"></div>

 			<div wicket:id="emailMeOnMyTicketChanges"></div>

+			<div wicket:id="language"></div>

 			<div wicket:id="transport"></div>

 			

 			<div class="form-actions"><input class="btn btn-appmenu" type="submit" value="Save" wicket:message="value:gb.save" wicket:id="save" /></div>

diff --git a/src/main/java/com/gitblit/wicket/pages/UserPage.java b/src/main/java/com/gitblit/wicket/pages/UserPage.java
index 306eea6..7c6b7b0 100644
--- a/src/main/java/com/gitblit/wicket/pages/UserPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/UserPage.java
@@ -172,6 +172,7 @@
 		Form<Void> prefs = new Form<Void>("prefsForm");

 

 		List<Language> languages = Arrays.asList(

+				new Language("Deutsch","de"),

 				new Language("English","en"),

 				new Language("Español", "es"),

 				new Language("Français", "fr"),

diff --git a/src/main/java/login_de.mkd b/src/main/java/login_de.mkd
new file mode 100644
index 0000000..0c89092
--- /dev/null
+++ b/src/main/java/login_de.mkd
@@ -0,0 +1,3 @@
+## Bitte melden Sie sich an

+

+Bitte geben Sie Ihre Zugangsdaten ein um auf Gitblit zuzugreifen.

diff --git a/src/main/java/welcome_de.mkd b/src/main/java/welcome_de.mkd
new file mode 100644
index 0000000..d597ebe
--- /dev/null
+++ b/src/main/java/welcome_de.mkd
@@ -0,0 +1,3 @@
+## Willkommen bei Gitblit

+

+Eine schnelle und einfache Art und Weise Ihre eigenen [Git](http://www.git-scm.com) Repositories zu hosten.

diff --git a/src/site/administration.mkd b/src/site/administration.mkd
index 6fc334e..049a827 100644
--- a/src/site/administration.mkd
+++ b/src/site/administration.mkd
@@ -20,7 +20,7 @@
 	    federationSets = 

 

 #### Repository Names

-Repository names must be case-insensitive-unique but are CASE-SENSITIVE ON CASE-SENSITIVE FILESYSTEMS.  The name must be composed of letters, digits, or `/ _ - . ~`<br/>

+Repository names must be case-insensitive-unique but are CASE-SENSITIVE ON CASE-SENSITIVE FILESYSTEMS.  The name must be composed of letters, digits, or `/ _ - . ~ +`<br/>

 Whitespace is illegal.

 

 Repositories can be grouped within subfolders.  e.g. *libraries/mycoollib.git* and *libraries/myotherlib.git*

diff --git a/src/site/features.mkd b/src/site/features.mkd
index 5981f83..9aa8196 100644
--- a/src/site/features.mkd
+++ b/src/site/features.mkd
@@ -69,6 +69,8 @@
     - Dutch

     - Simplified Chinese (zh_CN)

     - French

+    - German

+    - Norwegian

 

 ## Gitblit GO Features

 - Out-of-the-box integrated stack requiring minimal configuration

diff --git a/src/site/plugins_extensions.mkd b/src/site/plugins_extensions.mkd
index 0e06643..9e0d170 100644
--- a/src/site/plugins_extensions.mkd
+++ b/src/site/plugins_extensions.mkd
@@ -96,7 +96,6 @@
 import org.kohsuke.args4j.Option;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import com.gitblit.models.UserModel;
 import com.gitblit.transport.ssh.commands.CommandMetaData;
 import com.gitblit.transport.ssh.commands.DispatchCommand;
 import com.gitblit.transport.ssh.commands.UsageExample;
diff --git a/src/site/plugins_overview.mkd b/src/site/plugins_overview.mkd
index f7872fd..14192f1 100644
--- a/src/site/plugins_overview.mkd
+++ b/src/site/plugins_overview.mkd
@@ -53,7 +53,7 @@
 
     plugins.registry = http://plugins.gitblit.com/plugins.json
 
-The [registry](http://plugins.gitblit.com/plugins.json) is currently hosted in a [Git repository on Github](https://github.com/gitblit/gitblit-registry).  This git repository is also a [Maven-compatible repository](http://plugins.gitblit.com), which hosts some plugin binaries.
+The [default plugins registry](http://plugins.gitblit.com) is currently hosted in a [Git repository on Github](https://github.com/gitblit/gitblit-registry).  You can view the default registry file [here](http://plugins.gitblit.com/plugins.json).  The default plugin registry is also a Maven-2 compatible repository.
 
 ### Contributing Plugins to the Default Registry