瀏覽代碼

add severity and its list filter translatable

Armin Schrenk 2 年之前
父節點
當前提交
216abf224e

+ 38 - 2
src/main/java/org/cryptomator/ui/health/CheckDetailController.java

@@ -24,6 +24,7 @@ import javafx.scene.input.Clipboard;
 import javafx.scene.input.ClipboardContent;
 import javafx.util.StringConverter;
 import java.util.Arrays;
+import java.util.ResourceBundle;
 import java.util.function.Function;
 import java.util.function.Predicate;
 import java.util.stream.Stream;
@@ -54,6 +55,7 @@ public class CheckDetailController implements FxController {
 	private final Binding<Boolean> warnOrCritsExist;
 	private final ResultListCellFactory resultListCellFactory;
 	private final ResultFixApplier resultFixApplier;
+	private final ResourceBundle resourceBundle;
 
 	private final BooleanProperty fixAllInfoResultsExecuted;
 	private final BooleanBinding fixAllInfoResultsPossible;
@@ -65,9 +67,10 @@ public class CheckDetailController implements FxController {
 	private Subscription resultSubscription;
 
 	@Inject
-	public CheckDetailController(ObjectProperty<Check> selectedTask, ResultListCellFactory resultListCellFactory, ResultFixApplier resultFixApplier) {
+	public CheckDetailController(ObjectProperty<Check> selectedTask, ResultListCellFactory resultListCellFactory, ResultFixApplier resultFixApplier, ResourceBundle resourceBundle) {
 		this.resultListCellFactory = resultListCellFactory;
 		this.resultFixApplier = resultFixApplier;
+		this.resourceBundle = resourceBundle;
 		this.results = EasyBind.wrapList(FXCollections.observableArrayList());
 		this.check = selectedTask;
 		this.checkState = selectedTask.flatMap(Check::stateProperty);
@@ -115,7 +118,7 @@ public class CheckDetailController implements FxController {
 
 		severityChoiceBox.getItems().add(null);
 		severityChoiceBox.getItems().addAll(Arrays.stream(DiagnosticResult.Severity.values()).toList());
-		//severityFilter.setConverter(new SeverityStringifier());
+		severityChoiceBox.setConverter(new SeverityStringifier());
 		severityChoiceBox.setValue(null);
 
 		fixStateChoiceBox.getItems().add(null);
@@ -148,6 +151,39 @@ public class CheckDetailController implements FxController {
 		}
 	}
 
+	/* -- Internal classes -- */
+
+	class SeverityStringifier extends StringConverter<Severity> {
+
+		@Override
+		public String toString(Severity object) {
+			if (object == null) {
+				return resourceBundle.getString("health.result.severityFilter.none");
+			}
+			return switch (object) {
+				case GOOD -> resourceBundle.getString("health.result.severityFilter.good");
+				case INFO -> resourceBundle.getString("health.result.severityFilter.info");
+				case WARN -> resourceBundle.getString("health.result.severityFilter.warn");
+				case CRITICAL -> resourceBundle.getString("health.result.severityFilter.crit");
+			};
+		}
+
+		@Override
+		public Severity fromString(String string) {
+			if (resourceBundle.getString("health.result.severityFilter.good").equals(string)) {
+				return Severity.GOOD;
+			} else if (resourceBundle.getString("health.result.severityFilter.info").equals(string)) {
+				return Severity.INFO;
+			} else if (resourceBundle.getString("health.result.severityFilter.warn").equals(string)) {
+				return Severity.WARN;
+			} else if (resourceBundle.getString("health.result.severityFilter.crit").equals(string)) {
+				return Severity.CRITICAL;
+			} else {
+				return null;
+			}
+		}
+	}
+
 	/* Getter/Setter */
 
 	public String getCheckName() {

+ 1 - 1
src/main/java/org/cryptomator/ui/health/ResultListCellController.java

@@ -104,7 +104,7 @@ public class ResultListCellController implements FxController {
 			case GOOD -> "health.result.severityTip.good";
 			case INFO -> "health.result.severityTip.info";
 			case WARN -> "health.result.severityTip.warn";
-			case CRITICAL -> "health.result.severityTip.critical";
+			case CRITICAL -> "health.result.severityTip.crit";
 		});
 	}
 

+ 9 - 4
src/main/resources/i18n/strings.properties

@@ -225,10 +225,15 @@ health.check.detail.listFilters.fixState=Fix state
 health.check.detail.fixAllSpecificBtn=Fix all of type
 health.check.exportBtn=Export Report
 ## Result view
-health.result.severityTip.good=Vault structure intact.
-health.result.severityTip.info=Vault structure intact, fix suggested.
-health.result.severityTip.warn=Vault structure corrupted, fix highly advised.
-health.result.severityTip.critical=Vault structure corrupted, data loss determined.
+health.result.severityFilter.none=Severity - All
+health.result.severityFilter.good=Good
+health.result.severityFilter.info=Info
+health.result.severityFilter.warn=Warning
+health.result.severityFilter.crit=Critical
+health.result.severityTip.good=Severity: Good\nNormal vault structure.
+health.result.severityTip.info=Severity: Info\nVault structure intact, fix suggested.
+health.result.severityTip.warn=Severity: Warning\nVault structure corrupted, fix highly advised.
+health.result.severityTip.crit=Severity: Critical\nVault structure corrupted, data loss determined.
 ## Fix Application
 health.fix.fixBtn=Fix
 health.fix.successTip=Fix successful