Index: dbLearnStar-webApp/src/main/java/dblearnstar/webapp/components/Layout.java
===================================================================
--- dbLearnStar-webApp/src/main/java/dblearnstar/webapp/components/Layout.java	(revision 4fe833cfa96bc296c31e1c1a1740c30340d68488)
+++ dbLearnStar-webApp/src/main/java/dblearnstar/webapp/components/Layout.java	(revision 62d99bc37ac1b7ba2274433ad95d5dfbadd11f73)
@@ -99,5 +99,5 @@
 			return new String[] { "admin/ManagePersons", "admin/GroupManagement", "admin/ManageModels",
 					"admin/TestAdmin", "admin/TestCollectionManagement", "admin/StudentGroupProgress",
-					"admin/SubmissionEvaluations", "admin/Reevaluation", "admin/ActiveUsers" };
+					"admin/SubmissionEvaluations", "admin/Reevaluation", "admin/ActiveUsers", "admin/TranslationPage" };
 		} else {
 			return null;
Index: dbLearnStar-webApp/src/main/java/dblearnstar/webapp/model/TestCollectionSelectModel.java
===================================================================
--- dbLearnStar-webApp/src/main/java/dblearnstar/webapp/model/TestCollectionSelectModel.java	(revision 4fe833cfa96bc296c31e1c1a1740c30340d68488)
+++ dbLearnStar-webApp/src/main/java/dblearnstar/webapp/model/TestCollectionSelectModel.java	(revision 62d99bc37ac1b7ba2274433ad95d5dfbadd11f73)
@@ -27,12 +27,18 @@
 import org.apache.tapestry5.OptionModel;
 import org.apache.tapestry5.internal.OptionModelImpl;
+import org.apache.tapestry5.services.PersistentLocale;
 import org.apache.tapestry5.util.AbstractSelectModel;
 
 import dblearnstar.model.entities.TestCollection;
+import dblearnstar.webapp.services.TranslationService;
 
 public class TestCollectionSelectModel extends AbstractSelectModel {
 	private List<TestCollection> testCollections;
 
-	public TestCollectionSelectModel(List<TestCollection> testCollections) {
+	private TranslationService translationService;
+	private PersistentLocale persistentLocale;
+
+	public TestCollectionSelectModel(List<TestCollection> testCollections, TranslationService translationService,
+			PersistentLocale persistentLocale) {
 		if (testCollections == null) {
 			this.testCollections = new ArrayList<TestCollection>();
@@ -40,4 +46,6 @@
 			this.testCollections = testCollections;
 		}
+		this.persistentLocale = persistentLocale;
+		this.translationService = translationService;
 	}
 
@@ -59,5 +67,10 @@
 		List<OptionModel> options = new ArrayList<OptionModel>();
 		for (TestCollection tc : testCollections) {
-			String name = getPrefix(tc) + tc.getTitle();
+			String title = translationService.getTranslation(TestCollection.class.getSimpleName(), "title",
+					tc.getTestCollectionId(), persistentLocale.get().getLanguage().toLowerCase());
+			if (title == null) {
+				title = tc.getTitle();
+			}
+			String name = getPrefix(tc) + title;
 			options.add(new OptionModelImpl(name, tc));
 		}
Index: dbLearnStar-webApp/src/main/java/dblearnstar/webapp/pages/ExamsAndTasksOverviewPage.java
===================================================================
--- dbLearnStar-webApp/src/main/java/dblearnstar/webapp/pages/ExamsAndTasksOverviewPage.java	(revision 4fe833cfa96bc296c31e1c1a1740c30340d68488)
+++ dbLearnStar-webApp/src/main/java/dblearnstar/webapp/pages/ExamsAndTasksOverviewPage.java	(revision 62d99bc37ac1b7ba2274433ad95d5dfbadd11f73)
@@ -151,5 +151,5 @@
 			Collections.sort(list, c);
 			// return selectModelFactory.create(list, "title");
-			return new TestCollectionSelectModel(list);
+			return new TestCollectionSelectModel(list, translationService, persistentLocale);
 		}
 	}
@@ -210,8 +210,20 @@
 	}
 
+	public String getTranslatedTestInstanceDescription() {
+		String translated = translationService.getTranslation("TestInstance", "description",
+				testInstance.getTestInstanceId(), persistentLocale.get().getLanguage().toLowerCase());
+		return (translated != null ? translated : testInstance.getDescription());
+	}
+
 	public String getTranslateTestTypeTitle() {
 		String translated = translationService.getTranslation("TestType", "title", testType.getTestTypeId(),
 				persistentLocale.get().getLanguage().toLowerCase());
 		return (translated != null ? translated : testType.getTitle());
+	}
+
+	public String getTranslatedTaskInTestInstanceTaskTitle() {
+		String translated = translationService.getTranslation("Task", "title", taskInTestInstance.getTask().getTaskId(),
+				persistentLocale.get().getLanguage().toLowerCase());
+		return (translated != null ? translated : taskInTestInstance.getTask().getTitle());
 	}
 
Index: dbLearnStar-webApp/src/main/java/dblearnstar/webapp/pages/admin/TranslationPage.java
===================================================================
--- dbLearnStar-webApp/src/main/java/dblearnstar/webapp/pages/admin/TranslationPage.java	(revision 62d99bc37ac1b7ba2274433ad95d5dfbadd11f73)
+++ dbLearnStar-webApp/src/main/java/dblearnstar/webapp/pages/admin/TranslationPage.java	(revision 62d99bc37ac1b7ba2274433ad95d5dfbadd11f73)
@@ -0,0 +1,74 @@
+package dblearnstar.webapp.pages.admin;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+import org.apache.tapestry5.annotations.Import;
+import org.apache.tapestry5.annotations.Persist;
+import org.apache.tapestry5.annotations.Property;
+import org.apache.tapestry5.hibernate.annotations.CommitAfter;
+import org.apache.tapestry5.ioc.annotations.Inject;
+
+import dblearnstar.model.entities.Translation;
+import dblearnstar.webapp.annotations.AdministratorPage;
+import dblearnstar.webapp.annotations.InstructorPage;
+import dblearnstar.webapp.services.GenericService;
+import dblearnstar.webapp.services.TranslationService;
+
+@AdministratorPage
+@InstructorPage
+@Import(stylesheet = { "TranslationPage.css" })
+public class TranslationPage {
+
+	@Inject
+	private TranslationService translationService;
+	@Inject
+	private GenericService genericService;
+
+	@Persist
+	@Property
+	private String filter;
+
+	@Persist
+	@Property
+	private Translation editedTranslation;
+
+	@Property
+	private Translation translationRow;
+
+	public List<Translation> getListTranslations() {
+		List<Translation> l = (List<Translation>) genericService.getAll(Translation.class);
+		if (filter != null && filter.length() > 0) {
+			for (String filterWord : filter.split(" ")) {
+				l = l.stream().filter(
+						t -> (t.getOriginalObjectId() + t.getClassName() + t.getAttributeCode() + t.getTranslatedText())
+								.toLowerCase().contains(filterWord.toLowerCase()))
+						.collect(Collectors.toList());
+			}
+		}
+		return l;
+	}
+
+	void onActionFromEditTranslation(Translation t) {
+		editedTranslation = t;
+	}
+
+	void onActionFromNewTranslation() {
+		editedTranslation = new Translation();
+	}
+
+	void onActionFromCancelTranslation() {
+		editedTranslation = null;
+	}
+
+	@CommitAfter
+	void onActionFromDeleteTranslation(Translation t) {
+		genericService.delete(t);
+	}
+
+	@CommitAfter
+	void onSuccessFromFrmTranslation() {
+		genericService.save(editedTranslation);
+		editedTranslation = null;
+	}
+}
Index: dbLearnStar-webApp/src/main/java/dblearnstar/webapp/services/AppModule.java
===================================================================
--- dbLearnStar-webApp/src/main/java/dblearnstar/webapp/services/AppModule.java	(revision 4fe833cfa96bc296c31e1c1a1740c30340d68488)
+++ dbLearnStar-webApp/src/main/java/dblearnstar/webapp/services/AppModule.java	(revision 62d99bc37ac1b7ba2274433ad95d5dfbadd11f73)
@@ -74,5 +74,5 @@
 
 	public static void contributeFactoryDefaults(MappedConfiguration<String, Object> configuration) {
-		configuration.override(SymbolConstants.APPLICATION_VERSION, "0.8.6");
+		configuration.override(SymbolConstants.APPLICATION_VERSION, "0.8.7");
 		configuration.override(SymbolConstants.PRODUCTION_MODE, false);
 	}
Index: dbLearnStar-webApp/src/main/resources/META-INF/assets/ComplaintsAndDiscussions.css
===================================================================
--- dbLearnStar-webApp/src/main/resources/META-INF/assets/ComplaintsAndDiscussions.css	(revision 4fe833cfa96bc296c31e1c1a1740c30340d68488)
+++ dbLearnStar-webApp/src/main/resources/META-INF/assets/ComplaintsAndDiscussions.css	(revision 62d99bc37ac1b7ba2274433ad95d5dfbadd11f73)
@@ -43,2 +43,5 @@
 }
 
+.feedback img {
+	width: 100%;	
+}
Index: dbLearnStar-webApp/src/main/resources/META-INF/assets/ExamsAndTasksOverviewPage.css
===================================================================
--- dbLearnStar-webApp/src/main/resources/META-INF/assets/ExamsAndTasksOverviewPage.css	(revision 4fe833cfa96bc296c31e1c1a1740c30340d68488)
+++ dbLearnStar-webApp/src/main/resources/META-INF/assets/ExamsAndTasksOverviewPage.css	(revision 62d99bc37ac1b7ba2274433ad95d5dfbadd11f73)
@@ -31,5 +31,5 @@
 
 td.taskContentCell {
-	max-height: 3em;
+	max-height: 3.7em;
 	overflow: hidden;
 	display: block;
Index: dbLearnStar-webApp/src/main/resources/META-INF/assets/QueryTest.css
===================================================================
--- dbLearnStar-webApp/src/main/resources/META-INF/assets/QueryTest.css	(revision 4fe833cfa96bc296c31e1c1a1740c30340d68488)
+++ dbLearnStar-webApp/src/main/resources/META-INF/assets/QueryTest.css	(revision 62d99bc37ac1b7ba2274433ad95d5dfbadd11f73)
@@ -61,4 +61,5 @@
 	padding: 0.0em !important;
 	font-size: 85%;
+	min-height:25em;
 }
 
Index: dbLearnStar-webApp/src/main/resources/META-INF/assets/TranslationPage.css
===================================================================
--- dbLearnStar-webApp/src/main/resources/META-INF/assets/TranslationPage.css	(revision 62d99bc37ac1b7ba2274433ad95d5dfbadd11f73)
+++ dbLearnStar-webApp/src/main/resources/META-INF/assets/TranslationPage.css	(revision 62d99bc37ac1b7ba2274433ad95d5dfbadd11f73)
@@ -0,0 +1,4 @@
+.translation {
+	max-height: 10em !important;
+	overflow: auto;
+}
Index: dbLearnStar-webApp/src/main/resources/dblearnstar/webapp/pages/ComplaintsAndDiscussions.tml
===================================================================
--- dbLearnStar-webApp/src/main/resources/dblearnstar/webapp/pages/ComplaintsAndDiscussions.tml	(revision 4fe833cfa96bc296c31e1c1a1740c30340d68488)
+++ dbLearnStar-webApp/src/main/resources/dblearnstar/webapp/pages/ComplaintsAndDiscussions.tml	(revision 62d99bc37ac1b7ba2274433ad95d5dfbadd11f73)
@@ -50,5 +50,5 @@
 						</div>
 					</div>
-					<div class="card-body"
+					<div class="card-body feedback"
 						style="font-size: 80% !important; line-height: 0.8em !important;">
 						<t:outputRaw t:value="solutionAssessmentToDiscuss.feedback" />
Index: dbLearnStar-webApp/src/main/resources/dblearnstar/webapp/pages/ExamsAndTasksOverviewPage.tml
===================================================================
--- dbLearnStar-webApp/src/main/resources/dblearnstar/webapp/pages/ExamsAndTasksOverviewPage.tml	(revision 4fe833cfa96bc296c31e1c1a1740c30340d68488)
+++ dbLearnStar-webApp/src/main/resources/dblearnstar/webapp/pages/ExamsAndTasksOverviewPage.tml	(revision 62d99bc37ac1b7ba2274433ad95d5dfbadd11f73)
@@ -9,5 +9,4 @@
 		<form t:type="form" t:id="formCollection">
 			<div class="form-group">
-
 				<label t:type="label" for="selectTestCollection"></label> <select
 					class="form-control form-control-sm" t:id="selectTestCollection"
@@ -15,5 +14,4 @@
 					t:value="testCollection" t:zone="collectionZone" t:required="true"
 					t:blankOption="NEVER"></select>
-
 			</div>
 		</form>
@@ -65,5 +63,5 @@
 						</p>
 						<p>
-							<t:outputraw t:value="testInstance.description">Test Instance Description</t:outputraw>
+							<t:outputraw t:value="translatedTestInstanceDescription" />
 						</p>
 						<table class="table table-hover table-bordered table-striped">
@@ -82,12 +80,12 @@
 										class="col-12 btn ${classBtnSolved} btn-sm" t:type="PageLink"
 										t:page="QueryTest" t:id="SolveTest"
-										t:context="taskInTestInstance">${taskInTestInstance.task.title}</a>
+										t:context="taskInTestInstance">${translatedTaskInTestInstanceTaskTitle}</a>
 									</td>
 									<td class="col-1">${taskInTestInstance.points}</td>
 									<td class="col-7 taskContentCell"><p t:type="outputraw"
 											t:value="translateTaskDescription" /></td>
-									<td class="col-2">${message:numPersonsTriedToSolve-label}:${numPersonsTriedToSolve}
-										<br /> ${message:numPersonsSuccessful-label}:
-										${numPersonsSuccessful}
+									<td class="col-2">${message:numPersonsTriedToSolve-label}:
+										${numPersonsTriedToSolve} <br />
+										${message:numPersonsSuccessful-label}: ${numPersonsSuccessful}
 									</td>
 								</tr>
Index: dbLearnStar-webApp/src/main/resources/dblearnstar/webapp/pages/admin/TranslationPage.tml
===================================================================
--- dbLearnStar-webApp/src/main/resources/dblearnstar/webapp/pages/admin/TranslationPage.tml	(revision 62d99bc37ac1b7ba2274433ad95d5dfbadd11f73)
+++ dbLearnStar-webApp/src/main/resources/dblearnstar/webapp/pages/admin/TranslationPage.tml	(revision 62d99bc37ac1b7ba2274433ad95d5dfbadd11f73)
@@ -0,0 +1,56 @@
+<html t:type="layout" title="message:admin/TranslationPage-pagelink"
+	xmlns:t="http://tapestry.apache.org/schema/tapestry_5_4.xsd"
+	xmlns:p="tapestry:parameter">
+
+<h1>${message:admin/TranslationPage-pagelink}</h1>
+
+<div t:type="if" t:test="editedTranslation">
+	<t:modalbox t:additionalclassdialog="modal-lg">
+		<form t:type="beaneditform" t:id="frmTranslation"
+			t:object="editedTranslation" t:exclude="translationId"
+			t:add="cancelLink">
+			<p:cancelLink>
+				<a class="float-right btn btn-secondary mr-3" href=""
+					t:type="actionLink" t:id="cancelTranslation">${message:Cancel-label}</a>
+			</p:cancelLink>
+		</form>
+	</t:modalbox>
+</div>
+
+<div class="row">
+	<div class="col-9">
+		<div class="card">
+			<div class="card-header">Filter</div>
+			<div class="card-body">
+				<form t:type="form">
+					<input t:type="textfield" t:value="filter" />
+				</form>
+			</div>
+		</div>
+	</div>
+	<div class="col-3">
+		<a href="" t:type="actionlink" t:id="newTranslation"
+			class="btn btn-primary"><img t:type="svgicon" t:path="plus" />
+			${message:translation-label}</a>
+	</div>
+</div>
+
+<table class="table table-sm" t:type="grid" t:source="listTranslations"
+	t:row="translationRow" t:add="actions">
+	<p:translatedTextCell>
+		<div class="translation">
+			<t:outputraw t:value="translationRow.translatedText" />
+		</div>
+	</p:translatedTextCell>
+	<p:actionsCell>
+		<a href="" t:type="actionlink" t:id="EditTranslation"
+			t:context="translationRow" class="btn btn-sm btn-primary"><t:SVGIcon
+				t:path="edit" /> ${message:edit-label}</a>
+		<a href="" t:type="actionlink" t:id="DeleteTranslation"
+			t:context="translationRow" class="btn btn-sm btn-secondary"
+			t:mixins="confirm"><t:SVGIcon t:path="user-minus" />
+			${message:remove-label}</a>
+	</p:actionsCell>
+</table>
+
+</html>
Index: dbLearnStar-webApp/src/main/webapp/WEB-INF/app.properties
===================================================================
--- dbLearnStar-webApp/src/main/webapp/WEB-INF/app.properties	(revision 4fe833cfa96bc296c31e1c1a1740c30340d68488)
+++ dbLearnStar-webApp/src/main/webapp/WEB-INF/app.properties	(revision 62d99bc37ac1b7ba2274433ad95d5dfbadd11f73)
@@ -99,5 +99,5 @@
 noCorrectSolutionsByOthers-label=There are no correct solutions by others
 numPersonsSuccessful-label=Num. of persons with correct solutions
-numPersonsTriedToSolve-label=Num. of persons that tried to solve
+numPersonsTriedToSolve-label=Num. of persons that attempted the task
 onlyCorrect-label=Only correct
 onlyEval-label=Only for eval
@@ -173,4 +173,6 @@
 toggle-status-label=Toggle status
 totalPoints-label=Total points
+translation-label=Translation
+admin/TranslationPage-pagelink=Translations
 upload-label=Upload
 userName-label=User name
Index: dbLearnStar-webApp/src/main/webapp/WEB-INF/app_mk.properties
===================================================================
--- dbLearnStar-webApp/src/main/webapp/WEB-INF/app_mk.properties	(revision 4fe833cfa96bc296c31e1c1a1740c30340d68488)
+++ dbLearnStar-webApp/src/main/webapp/WEB-INF/app_mk.properties	(revision 62d99bc37ac1b7ba2274433ad95d5dfbadd11f73)
@@ -173,4 +173,6 @@
 toggle-status-label=Смени статус
 totalPoints-label=Вкупно поени
+translation-label=Превод
+admin/TranslationPage-pagelink=Преводи
 upload-label=Испрати
 userName-label=Корисничко име
