mirror of
https://github.com/Dimillian/IceCubesApp.git
synced 2024-06-02 10:32:12 +00:00
add localization to EditTagGroupView
(#1692)
This commit is contained in:
parent
2e2a9f5f14
commit
1f703fc1f4
|
@ -128,20 +128,20 @@ private struct TitleInputView: View {
|
|||
focusedField = .symbol
|
||||
}
|
||||
|
||||
if focusedField == .title, !warningText.isEmpty {
|
||||
if focusedField == .title, warningText != "" {
|
||||
Text(warningText).warningLabel()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var warningText: String {
|
||||
var warningText: LocalizedStringKey {
|
||||
if case let .invalid(description) = titleValidationStatus {
|
||||
return description
|
||||
} else if
|
||||
isNewGroup,
|
||||
tagGroups.contains(where: { $0.title == title })
|
||||
{
|
||||
return "\(title) already exists"
|
||||
return "\(title) add-tag-groups.edit.title.field.warning.already-exists"
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
@ -243,14 +243,14 @@ private struct TagsInputView: View {
|
|||
}
|
||||
}
|
||||
|
||||
if focusedField == .new, !warningText.isEmpty {
|
||||
if focusedField == .new, warningText != "" {
|
||||
Text(warningText).warningLabel()
|
||||
}
|
||||
}
|
||||
|
||||
var warningText: String {
|
||||
var warningText: LocalizedStringKey {
|
||||
if tags.contains(newTag) {
|
||||
return "duplicated tag"
|
||||
return "add-tag-groups.edit.tags.field.warning.duplicated-tag"
|
||||
} else if case let .invalid(description) = tagsValidationStatus {
|
||||
return description
|
||||
}
|
||||
|
@ -337,7 +337,7 @@ private struct SymbolSearchResultsView: View {
|
|||
// MARK: search results validation
|
||||
enum ValidationStatus: Equatable {
|
||||
case valid
|
||||
case invalid(description: String)
|
||||
case invalid(description: LocalizedStringKey)
|
||||
}
|
||||
|
||||
var validationStatus: ValidationStatus {
|
||||
|
@ -346,9 +346,9 @@ private struct SymbolSearchResultsView: View {
|
|||
&& !symbolQuery.isEmpty
|
||||
&& results.count == 0
|
||||
{
|
||||
return .invalid(description: "\(symbolQuery) is already selected")
|
||||
return .invalid(description: "\(symbolQuery) add-tag-groups.edit.tags.field.warning.search-results.already-selected")
|
||||
} else {
|
||||
return .invalid(description: "No Symbol Found")
|
||||
return .invalid(description: "add-tag-groups.edit.tags.field.warning.search-results.no-symbol-found")
|
||||
}
|
||||
} else {
|
||||
return .valid
|
||||
|
@ -360,24 +360,26 @@ extension TagGroup {
|
|||
// MARK: title validation
|
||||
enum TitleValidationStatus: Equatable {
|
||||
case valid
|
||||
case invalid(description: String)
|
||||
case invalid(description: LocalizedStringKey)
|
||||
}
|
||||
|
||||
var titleValidationStatus: TitleValidationStatus {
|
||||
title.isEmpty ? .invalid(description: "title is empty") : .valid
|
||||
title.isEmpty
|
||||
? .invalid(description: "add-tag-groups.edit.title.field.warning.empty-title")
|
||||
: .valid
|
||||
}
|
||||
|
||||
// MARK: symbolName validation
|
||||
enum SymbolNameValidationStatus: Equatable {
|
||||
case valid
|
||||
case invalid(description: String)
|
||||
case invalid(description: LocalizedStringKey)
|
||||
}
|
||||
|
||||
var symbolNameValidationStatus: SymbolNameValidationStatus {
|
||||
if symbolName.isEmpty {
|
||||
return .invalid(description: "no symbol is selected yet")
|
||||
return .invalid(description: "add-tag-groups.edit.title.field.warning.no-symbol-selected")
|
||||
} else if !Self.allSymbols.contains(symbolName) {
|
||||
return .invalid(description: "\(symbolName) is not a valid FSSymbol name")
|
||||
return .invalid(description: "\(symbolName) add-tag-groups.edit.title.field.warning.invalid-sfsymbol-name")
|
||||
}
|
||||
|
||||
return .valid
|
||||
|
@ -386,12 +388,12 @@ extension TagGroup {
|
|||
// MARK: tags validation
|
||||
enum TagsValidationStatus: Equatable {
|
||||
case valid
|
||||
case invalid(description: String)
|
||||
case invalid(description: LocalizedStringKey)
|
||||
}
|
||||
|
||||
var tagsValidationStatus: TagsValidationStatus {
|
||||
if tags.count < 2 {
|
||||
return .invalid(description: "the number of tags is smaller than 2")
|
||||
return .invalid(description: "add-tag-groups.edit.tags.field.warning.number-of-tags")
|
||||
}
|
||||
return .valid
|
||||
}
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
{
|
||||
"sourceLanguage" : "en",
|
||||
"strings" : {
|
||||
"" : {
|
||||
|
||||
},
|
||||
" ⸱ " : {
|
||||
"localizations" : {
|
||||
"be" : {
|
||||
|
@ -225,6 +228,36 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"%@ add-tag-groups.edit.tags.field.warning.search-results.already-selected" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "%@ is already selected"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"%@ add-tag-groups.edit.title.field.warning.already-exists" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "%@ already exists"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"%@ add-tag-groups.edit.title.field.warning.invalid-sfsymbol-name" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "%@ is an invalid SFSymbol name"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"%@©2023 Thomas Ricouard" : {
|
||||
"localizations" : {
|
||||
"be" : {
|
||||
|
@ -17930,6 +17963,36 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"add-tag-groups.edit.tags.field.warning.duplicated-tag" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Duplicated tag"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"add-tag-groups.edit.tags.field.warning.number-of-tags" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Number of tags is less than 2"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"add-tag-groups.edit.tags.field.warning.search-results.no-symbol-found" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "No Symbol Found"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"add-tag-groups.edit.title.field" : {
|
||||
"comment" : "MARK: Tag Groups",
|
||||
"localizations" : {
|
||||
|
@ -18049,6 +18112,26 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"add-tag-groups.edit.title.field.warning.empty-title" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Empty title"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"add-tag-groups.edit.title.field.warning.no-symbol-selected" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "No symbol is selected"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"alert.button.ok" : {
|
||||
"localizations" : {
|
||||
"be" : {
|
||||
|
@ -70392,4 +70475,4 @@
|
|||
}
|
||||
},
|
||||
"version" : "1.0"
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue