diff --git a/Features/Perpetuals/Sources/Types/ChartGridStyle.swift b/Features/Perpetuals/Sources/Types/ChartGridStyle.swift new file mode 100644 index 000000000..4290f5c1f --- /dev/null +++ b/Features/Perpetuals/Sources/Types/ChartGridStyle.swift @@ -0,0 +1,13 @@ +// Copyright (c). Gem Wallet. All rights reserved. + +import SwiftUI +import Charts +import Style + +struct ChartGridStyle { + static let opacity: Double = 0.13 + static let lineWidth: CGFloat = 1 + static let dash: [CGFloat] = [4, 4] + static let strokeStyle = StrokeStyle(lineWidth: lineWidth, dash: dash) + static let color = Colors.gray.opacity(opacity) +} diff --git a/Features/Perpetuals/Sources/ViewModels/ChartLineViewModel.swift b/Features/Perpetuals/Sources/ViewModels/ChartLineViewModel.swift index 06384ec18..5fe4eb3b7 100644 --- a/Features/Perpetuals/Sources/ViewModels/ChartLineViewModel.swift +++ b/Features/Perpetuals/Sources/ViewModels/ChartLineViewModel.swift @@ -4,36 +4,36 @@ import SwiftUI import Style import Localization import Primitives +import Formatters struct ChartLineViewModel: Identifiable { let line: ChartLine + let formatter: CurrencyFormatter var id: String { "\(line.type)_\(line.price)" } var price: Double { line.price } var label: String { - switch line.type { + let typeLabel: String = switch line.type { case .takeProfit: Localized.Charts.takeProfit case .stopLoss: Localized.Charts.stopLoss case .entry: Localized.Charts.entry case .liquidation: Localized.Charts.liquidation } + let priceText = formatter.string(double: line.price) + return "\(typeLabel) | \(priceText)" } var color: Color { switch line.type { case .takeProfit: Colors.green - case .stopLoss: Colors.red - case .entry: Colors.blue - case .liquidation: Colors.orange + case .stopLoss: Colors.orange + case .entry: Colors.gray + case .liquidation: Colors.red } } var lineStyle: StrokeStyle { - switch line.type { - case .takeProfit, .stopLoss: StrokeStyle(lineWidth: 1, dash: [6, 4]) - case .entry: StrokeStyle(lineWidth: 1.5) - case .liquidation: StrokeStyle(lineWidth: 1, dash: [2, 2]) - } + StrokeStyle(lineWidth: 1, dash: [4, 3]) } } diff --git a/Features/Perpetuals/Sources/ViewModels/PerpetualSceneViewModel.swift b/Features/Perpetuals/Sources/ViewModels/PerpetualSceneViewModel.swift index e13b98614..17563e9bd 100644 --- a/Features/Perpetuals/Sources/ViewModels/PerpetualSceneViewModel.swift +++ b/Features/Perpetuals/Sources/ViewModels/PerpetualSceneViewModel.swift @@ -13,6 +13,7 @@ import Formatters import ExplorerService import Preferences import BigInt +import GemstonePrimitives @Observable @MainActor @@ -77,7 +78,10 @@ public final class PerpetualSceneViewModel { ) } - public var navigationTitle: String { perpetualViewModel.name } + public var navigationTitle: String { + let name = perpetualViewModel.name + return name.isEmpty ? asset.symbol : name + } public var currency: String { preference.currency } public var hasOpenPosition: Bool { !positionViewModels.isEmpty } @@ -96,7 +100,8 @@ public final class PerpetualSceneViewModel { public var positionViewModels: [PerpetualPositionViewModel] { positions.map { PerpetualPositionViewModel($0) } } var chartLineModels: [ChartLineViewModel] { - guard let position = positions.first?.position else { return [] } + guard let positionData = positions.first else { return [] } + let position = positionData.position let prices: [(ChartLineType, Double?)] = [ (.entry, position.entryPrice), (.takeProfit, position.takeProfit?.price), @@ -104,7 +109,12 @@ public final class PerpetualSceneViewModel { (.liquidation, position.liquidationPrice) ] return prices.compactMap { type, price in - price.map { ChartLineViewModel(line: ChartLine(type: type, price: $0)) } + price.map { + ChartLineViewModel( + line: ChartLine(type: type, price: $0), + formatter: CurrencyFormatter(type: .currency, currencyCode: .empty) + ) + } } } diff --git a/Features/Perpetuals/Sources/Views/CandlestickChartView.swift b/Features/Perpetuals/Sources/Views/CandlestickChartView.swift index 67ebbb8f8..4e7872a1e 100644 --- a/Features/Perpetuals/Sources/Views/CandlestickChartView.swift +++ b/Features/Perpetuals/Sources/Views/CandlestickChartView.swift @@ -88,16 +88,16 @@ struct CandlestickChartView: View { } .chartXAxis { AxisMarks(position: .bottom, values: .automatic(desiredCount: 6)) { _ in - AxisGridLine(stroke: StrokeStyle(lineWidth: 1, dash: [4, 4])) - .foregroundStyle(Colors.gray.opacity(0.5)) + AxisGridLine(stroke: ChartGridStyle.strokeStyle) + .foregroundStyle(ChartGridStyle.color) } } .chartYAxis { AxisMarks(position: .trailing, values: .automatic(desiredCount: 5)) { _ in - AxisGridLine(stroke: StrokeStyle(lineWidth: 1, dash: [4, 4])) - .foregroundStyle(Colors.gray.opacity(0.5)) - AxisTick(stroke: StrokeStyle(lineWidth: 1)) - .foregroundStyle(Colors.gray.opacity(0.5)) + AxisGridLine(stroke: ChartGridStyle.strokeStyle) + .foregroundStyle(ChartGridStyle.color) + AxisTick(stroke: StrokeStyle(lineWidth: ChartGridStyle.lineWidth)) + .foregroundStyle(ChartGridStyle.color) AxisValueLabel() .foregroundStyle(Colors.gray) .font(.caption2) @@ -132,7 +132,7 @@ struct CandlestickChartView: View { private func linesMarks(_ bounds: ChartBounds) -> some ChartContent { ForEach(bounds.visibleLines) { line in RuleMark(y: .value(ChartKey.price, line.price)) - .foregroundStyle(line.color.opacity(0.8)) + .foregroundStyle(line.color.opacity(0.6)) .lineStyle(line.lineStyle) } @@ -141,12 +141,11 @@ struct CandlestickChartView: View { .foregroundStyle(.clear) .annotation(position: .overlay, alignment: .leading, spacing: 0) { Text(line.label) - .font(.system(size: Spacing.space10, weight: .bold)) + .font(.system(size: .space10, weight: .semibold)) .foregroundStyle(Colors.whiteSolid) - .padding(.horizontal, Spacing.extraSmall) - .padding(.vertical, 1) + .padding(.tiny) .background(line.color) - .clipShape(RoundedRectangle(cornerRadius: Spacing.extraSmall)) + .clipShape(RoundedRectangle(cornerRadius: .tiny)) .offset(x: labelXOffset(for: index, in: bounds)) } } @@ -154,10 +153,9 @@ struct CandlestickChartView: View { private func labelXOffset(for index: Int, in bounds: ChartBounds) -> CGFloat { guard index > 0 else { return 0 } - let priceRange = bounds.maxPrice - bounds.minPrice - let threshold = priceRange * 0.06 - let space: CGFloat = 75 + let threshold = (bounds.maxPrice - bounds.minPrice) * 0.06 let lines = bounds.visibleLines + let space = 115.0 return (1...index).reduce(0.0) { offset, idx in abs(lines[idx].price - lines[idx - 1].price) < threshold ? offset + space : offset } diff --git a/Packages/Formatters/Sources/CurrencyFormatter.swift b/Packages/Formatters/Sources/CurrencyFormatter.swift index c08a47982..5ec98b5b1 100644 --- a/Packages/Formatters/Sources/CurrencyFormatter.swift +++ b/Packages/Formatters/Sources/CurrencyFormatter.swift @@ -133,7 +133,7 @@ public struct CurrencyFormatter: Sendable, Hashable { let formatter = formatter(for: double) formatter.currencySymbol = "" - let value = formatter.string(from: NSNumber(value: double)) ?? "" + let value = (formatter.string(from: NSNumber(value: double)) ?? "").trimmingCharacters(in: .whitespaces) return combined(value: value, symbol: symbol) } diff --git a/Packages/Formatters/Tests/FormattersTests/CurrencyFormatterTests.swift b/Packages/Formatters/Tests/FormattersTests/CurrencyFormatterTests.swift index f2c6dd945..cc96cc6c2 100644 --- a/Packages/Formatters/Tests/FormattersTests/CurrencyFormatterTests.swift +++ b/Packages/Formatters/Tests/FormattersTests/CurrencyFormatterTests.swift @@ -14,7 +14,8 @@ final class CurrencyFormatterTests { let percentFormatterUK = CurrencyFormatter(type: .percent, locale: .UK, currencyCode: Currency.gbp.rawValue) let percentSignLess = CurrencyFormatter(type: .percentSignLess, locale: .US, currencyCode: Currency.usd.rawValue) - let cryptoFormatter = CurrencyFormatter(type: .currency, locale: .US, currencyCode: "") + let cryptoFormatter = CurrencyFormatter(type: .currency, locale: .US, currencyCode: .empty) + let cryptoFormatterUA = CurrencyFormatter(type: .currency, locale: .RU_UA, currencyCode: .empty) let abbreviatedFormatterUS = CurrencyFormatter(type: .abbreviated, locale: .US, currencyCode: Currency.usd.rawValue) let abbreviatedFormatterUK = CurrencyFormatter(type: .abbreviated, locale: .UK, currencyCode: Currency.gbp.rawValue) @@ -90,6 +91,10 @@ final class CurrencyFormatterTests { #expect(cryptoFormatter.string(double: 11.12) == "11.12") #expect(cryptoFormatter.string(double: 11) == "11.00") #expect(cryptoFormatter.string(double: 12000123) == "12,000,123.00") + + #expect(cryptoFormatterUA.string(double: 0.003011) == cryptoFormatterUA.string(double: 0.003011).trimmingCharacters(in: .whitespaces)) + #expect(cryptoFormatterUA.string(double: 92500) == "92 500,00") + #expect(cryptoFormatterUA.string(double: 29.73) == "29,73") } @Test diff --git a/Packages/Localization/Sources/Localized.swift b/Packages/Localization/Sources/Localized.swift index 1d50df968..a31466118 100644 --- a/Packages/Localization/Sources/Localized.swift +++ b/Packages/Localization/Sources/Localized.swift @@ -211,8 +211,8 @@ public enum Localized { public static let entry = Localized.tr("Localizable", "charts.entry", fallback: "Entry") /// 1H public static let hour = Localized.tr("Localizable", "charts.hour", fallback: "1H") - /// Liquidation - public static let liquidation = Localized.tr("Localizable", "charts.liquidation", fallback: "Liquidation") + /// Liq + public static let liquidation = Localized.tr("Localizable", "charts.liquidation", fallback: "Liq") /// 1M public static let month = Localized.tr("Localizable", "charts.month", fallback: "1M") /// SL diff --git a/Packages/Localization/Sources/Resources/ar.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/ar.lproj/Localizable.strings index 8207055a1..57ba0ff99 100644 --- a/Packages/Localization/Sources/Resources/ar.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/ar.lproj/Localizable.strings @@ -518,7 +518,7 @@ "charts.take_profit" = "TP"; "charts.stop_loss" = "SL"; "charts.entry" = "Entry"; -"charts.liquidation" = "Liquidation"; +"charts.liquidation" = "Liq"; "nft.report.reason.spam" = "رسائل إلكترونية مزعجة"; "nft.report.reason.malicious" = "خبيث"; "nft.report.reason.inappropriate" = "محتوى غير لائق"; diff --git a/Packages/Localization/Sources/Resources/bn.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/bn.lproj/Localizable.strings index 82d27dc4b..d93448b0c 100644 --- a/Packages/Localization/Sources/Resources/bn.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/bn.lproj/Localizable.strings @@ -518,7 +518,7 @@ "charts.take_profit" = "TP"; "charts.stop_loss" = "SL"; "charts.entry" = "Entry"; -"charts.liquidation" = "Liquidation"; +"charts.liquidation" = "Liq"; "nft.report.reason.spam" = "স্প্যাম"; "nft.report.reason.malicious" = "দূষিত"; "nft.report.reason.inappropriate" = "অনুপযুক্ত কন্টেন্ট"; diff --git a/Packages/Localization/Sources/Resources/cs.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/cs.lproj/Localizable.strings index 9a5164f77..3fa168e8a 100644 --- a/Packages/Localization/Sources/Resources/cs.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/cs.lproj/Localizable.strings @@ -518,7 +518,7 @@ "charts.take_profit" = "TP"; "charts.stop_loss" = "SL"; "charts.entry" = "Entry"; -"charts.liquidation" = "Liquidation"; +"charts.liquidation" = "Liq"; "nft.report.reason.spam" = "Spam"; "nft.report.reason.malicious" = "Zlomyslný"; "nft.report.reason.inappropriate" = "Nevhodný obsah"; diff --git a/Packages/Localization/Sources/Resources/da.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/da.lproj/Localizable.strings index acfbd90ee..58d4cd0db 100644 --- a/Packages/Localization/Sources/Resources/da.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/da.lproj/Localizable.strings @@ -518,7 +518,7 @@ "charts.take_profit" = "TP"; "charts.stop_loss" = "SL"; "charts.entry" = "Entry"; -"charts.liquidation" = "Liquidation"; +"charts.liquidation" = "Liq"; "nft.report.reason.spam" = "Spam"; "nft.report.reason.malicious" = "Ondsindet"; "nft.report.reason.inappropriate" = "Upassende indhold"; diff --git a/Packages/Localization/Sources/Resources/de.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/de.lproj/Localizable.strings index 822e37f80..ad081284e 100644 --- a/Packages/Localization/Sources/Resources/de.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/de.lproj/Localizable.strings @@ -518,7 +518,7 @@ "charts.take_profit" = "TP"; "charts.stop_loss" = "SL"; "charts.entry" = "Entry"; -"charts.liquidation" = "Liquidation"; +"charts.liquidation" = "Liq"; "nft.report.reason.spam" = "Spam"; "nft.report.reason.malicious" = "Böswillig"; "nft.report.reason.inappropriate" = "Unangemessene Inhalte"; diff --git a/Packages/Localization/Sources/Resources/en.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/en.lproj/Localizable.strings index 113dc9ec5..c18c2cfca 100644 --- a/Packages/Localization/Sources/Resources/en.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/en.lproj/Localizable.strings @@ -518,7 +518,7 @@ "charts.take_profit" = "TP"; "charts.stop_loss" = "SL"; "charts.entry" = "Entry"; -"charts.liquidation" = "Liquidation"; +"charts.liquidation" = "Liq"; "nft.report.reason.spam" = "Spam"; "nft.report.reason.malicious" = "Malicious"; "nft.report.reason.inappropriate" = "Inappropriate Content"; diff --git a/Packages/Localization/Sources/Resources/es.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/es.lproj/Localizable.strings index 4aad0d0af..ebb43a2cb 100644 --- a/Packages/Localization/Sources/Resources/es.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/es.lproj/Localizable.strings @@ -518,7 +518,7 @@ "charts.take_profit" = "TP"; "charts.stop_loss" = "SL"; "charts.entry" = "Entry"; -"charts.liquidation" = "Liquidation"; +"charts.liquidation" = "Liq"; "nft.report.reason.spam" = "Correo basura"; "nft.report.reason.malicious" = "Malicioso"; "nft.report.reason.inappropriate" = "Contenido inapropiado"; diff --git a/Packages/Localization/Sources/Resources/fa.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/fa.lproj/Localizable.strings index d91f0a71d..d067b4ca2 100644 --- a/Packages/Localization/Sources/Resources/fa.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/fa.lproj/Localizable.strings @@ -518,7 +518,7 @@ "charts.take_profit" = "TP"; "charts.stop_loss" = "SL"; "charts.entry" = "Entry"; -"charts.liquidation" = "Liquidation"; +"charts.liquidation" = "Liq"; "nft.report.reason.spam" = "هرزنامه"; "nft.report.reason.malicious" = "مخرب"; "nft.report.reason.inappropriate" = "محتوای نامناسب"; diff --git a/Packages/Localization/Sources/Resources/fil.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/fil.lproj/Localizable.strings index 1c413d428..998ec76ad 100644 --- a/Packages/Localization/Sources/Resources/fil.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/fil.lproj/Localizable.strings @@ -518,7 +518,7 @@ "charts.take_profit" = "TP"; "charts.stop_loss" = "SL"; "charts.entry" = "Entry"; -"charts.liquidation" = "Liquidation"; +"charts.liquidation" = "Liq"; "nft.report.reason.spam" = "Spam"; "nft.report.reason.malicious" = "Malisyoso"; "nft.report.reason.inappropriate" = "Hindi Naaangkop na Nilalaman"; diff --git a/Packages/Localization/Sources/Resources/fr.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/fr.lproj/Localizable.strings index 4844c7e9b..be585470a 100644 --- a/Packages/Localization/Sources/Resources/fr.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/fr.lproj/Localizable.strings @@ -518,7 +518,7 @@ "charts.take_profit" = "TP"; "charts.stop_loss" = "SL"; "charts.entry" = "Entry"; -"charts.liquidation" = "Liquidation"; +"charts.liquidation" = "Liq"; "nft.report.reason.spam" = "Courrier indésirable"; "nft.report.reason.malicious" = "Malveillant"; "nft.report.reason.inappropriate" = "Contenu inapproprié"; diff --git a/Packages/Localization/Sources/Resources/ha.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/ha.lproj/Localizable.strings index a8e90a780..45f1c0c67 100644 --- a/Packages/Localization/Sources/Resources/ha.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/ha.lproj/Localizable.strings @@ -518,7 +518,7 @@ "charts.take_profit" = "TP"; "charts.stop_loss" = "SL"; "charts.entry" = "Entry"; -"charts.liquidation" = "Liquidation"; +"charts.liquidation" = "Liq"; "nft.report.reason.spam" = "Spam"; "nft.report.reason.malicious" = "Mai mugunta"; "nft.report.reason.inappropriate" = "Abun ciki mara dacewa"; diff --git a/Packages/Localization/Sources/Resources/he.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/he.lproj/Localizable.strings index 23dd9b644..39486331e 100644 --- a/Packages/Localization/Sources/Resources/he.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/he.lproj/Localizable.strings @@ -518,7 +518,7 @@ "charts.take_profit" = "TP"; "charts.stop_loss" = "SL"; "charts.entry" = "Entry"; -"charts.liquidation" = "Liquidation"; +"charts.liquidation" = "Liq"; "nft.report.reason.spam" = "ספאם"; "nft.report.reason.malicious" = "זְדוֹנִי"; "nft.report.reason.inappropriate" = "תוכן לא הולם"; diff --git a/Packages/Localization/Sources/Resources/hi.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/hi.lproj/Localizable.strings index 2fa6a4a60..6c9d66800 100644 --- a/Packages/Localization/Sources/Resources/hi.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/hi.lproj/Localizable.strings @@ -518,7 +518,7 @@ "charts.take_profit" = "TP"; "charts.stop_loss" = "SL"; "charts.entry" = "Entry"; -"charts.liquidation" = "Liquidation"; +"charts.liquidation" = "Liq"; "nft.report.reason.spam" = "अवांछित ईमेल"; "nft.report.reason.malicious" = "दुर्भावनापूर्ण"; "nft.report.reason.inappropriate" = "अनुपयुक्त सामग्री"; diff --git a/Packages/Localization/Sources/Resources/id.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/id.lproj/Localizable.strings index 6a2a00e34..3e3e0b251 100644 --- a/Packages/Localization/Sources/Resources/id.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/id.lproj/Localizable.strings @@ -518,7 +518,7 @@ "charts.take_profit" = "TP"; "charts.stop_loss" = "SL"; "charts.entry" = "Entry"; -"charts.liquidation" = "Liquidation"; +"charts.liquidation" = "Liq"; "nft.report.reason.spam" = "Spam"; "nft.report.reason.malicious" = "Jahat"; "nft.report.reason.inappropriate" = "Konten yang Tidak Pantas"; diff --git a/Packages/Localization/Sources/Resources/it.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/it.lproj/Localizable.strings index 93bf9c2e0..4181ec77b 100644 --- a/Packages/Localization/Sources/Resources/it.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/it.lproj/Localizable.strings @@ -518,7 +518,7 @@ "charts.take_profit" = "TP"; "charts.stop_loss" = "SL"; "charts.entry" = "Entry"; -"charts.liquidation" = "Liquidation"; +"charts.liquidation" = "Liq"; "nft.report.reason.spam" = "Spam"; "nft.report.reason.malicious" = "Malizioso"; "nft.report.reason.inappropriate" = "Contenuto inappropriato"; diff --git a/Packages/Localization/Sources/Resources/ja.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/ja.lproj/Localizable.strings index 2e2cfc542..5873448c6 100644 --- a/Packages/Localization/Sources/Resources/ja.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/ja.lproj/Localizable.strings @@ -518,7 +518,7 @@ "charts.take_profit" = "TP"; "charts.stop_loss" = "SL"; "charts.entry" = "Entry"; -"charts.liquidation" = "Liquidation"; +"charts.liquidation" = "Liq"; "nft.report.reason.spam" = "スパム"; "nft.report.reason.malicious" = "悪意のある"; "nft.report.reason.inappropriate" = "不適切なコンテンツ"; diff --git a/Packages/Localization/Sources/Resources/ko.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/ko.lproj/Localizable.strings index 0c4b432b1..78bb76ded 100644 --- a/Packages/Localization/Sources/Resources/ko.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/ko.lproj/Localizable.strings @@ -518,7 +518,7 @@ "charts.take_profit" = "TP"; "charts.stop_loss" = "SL"; "charts.entry" = "Entry"; -"charts.liquidation" = "Liquidation"; +"charts.liquidation" = "Liq"; "nft.report.reason.spam" = "스팸"; "nft.report.reason.malicious" = "악의 있는"; "nft.report.reason.inappropriate" = "부적절한 콘텐츠"; diff --git a/Packages/Localization/Sources/Resources/ms.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/ms.lproj/Localizable.strings index ac9c0982a..9de1c6daf 100644 --- a/Packages/Localization/Sources/Resources/ms.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/ms.lproj/Localizable.strings @@ -518,7 +518,7 @@ "charts.take_profit" = "TP"; "charts.stop_loss" = "SL"; "charts.entry" = "Entry"; -"charts.liquidation" = "Liquidation"; +"charts.liquidation" = "Liq"; "nft.report.reason.spam" = "Spam"; "nft.report.reason.malicious" = "Berniat jahat"; "nft.report.reason.inappropriate" = "Kandungan Tidak Sesuai"; diff --git a/Packages/Localization/Sources/Resources/nl.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/nl.lproj/Localizable.strings index 61b167e2e..33bf480d4 100644 --- a/Packages/Localization/Sources/Resources/nl.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/nl.lproj/Localizable.strings @@ -518,7 +518,7 @@ "charts.take_profit" = "TP"; "charts.stop_loss" = "SL"; "charts.entry" = "Entry"; -"charts.liquidation" = "Liquidation"; +"charts.liquidation" = "Liq"; "nft.report.reason.spam" = "Spam"; "nft.report.reason.malicious" = "Kwaadwillend"; "nft.report.reason.inappropriate" = "Ongepaste inhoud"; diff --git a/Packages/Localization/Sources/Resources/pl.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/pl.lproj/Localizable.strings index e86f62f41..2a1ec2eaf 100644 --- a/Packages/Localization/Sources/Resources/pl.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/pl.lproj/Localizable.strings @@ -518,7 +518,7 @@ "charts.take_profit" = "TP"; "charts.stop_loss" = "SL"; "charts.entry" = "Entry"; -"charts.liquidation" = "Liquidation"; +"charts.liquidation" = "Liq"; "nft.report.reason.spam" = "Spam"; "nft.report.reason.malicious" = "Złośliwy"; "nft.report.reason.inappropriate" = "Niewłaściwa treść"; diff --git a/Packages/Localization/Sources/Resources/pt-BR.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/pt-BR.lproj/Localizable.strings index a88313a1c..bec5edcd4 100644 --- a/Packages/Localization/Sources/Resources/pt-BR.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/pt-BR.lproj/Localizable.strings @@ -518,7 +518,7 @@ "charts.take_profit" = "TP"; "charts.stop_loss" = "SL"; "charts.entry" = "Entry"; -"charts.liquidation" = "Liquidation"; +"charts.liquidation" = "Liq"; "nft.report.reason.spam" = "Spam"; "nft.report.reason.malicious" = "Malicioso"; "nft.report.reason.inappropriate" = "Conteúdo impróprio"; diff --git a/Packages/Localization/Sources/Resources/ro.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/ro.lproj/Localizable.strings index 01fcb9a5c..478303e69 100644 --- a/Packages/Localization/Sources/Resources/ro.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/ro.lproj/Localizable.strings @@ -518,7 +518,7 @@ "charts.take_profit" = "TP"; "charts.stop_loss" = "SL"; "charts.entry" = "Entry"; -"charts.liquidation" = "Liquidation"; +"charts.liquidation" = "Liq"; "nft.report.reason.spam" = "Spam"; "nft.report.reason.malicious" = "Malignorant"; "nft.report.reason.inappropriate" = "Conținut neadecvat"; diff --git a/Packages/Localization/Sources/Resources/ru.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/ru.lproj/Localizable.strings index e304356f3..30807cf2f 100644 --- a/Packages/Localization/Sources/Resources/ru.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/ru.lproj/Localizable.strings @@ -518,7 +518,7 @@ "charts.take_profit" = "TP"; "charts.stop_loss" = "SL"; "charts.entry" = "Entry"; -"charts.liquidation" = "Liquidation"; +"charts.liquidation" = "Liq"; "nft.report.reason.spam" = "Спам"; "nft.report.reason.malicious" = "Вредоносный"; "nft.report.reason.inappropriate" = "Неприемлемый контент"; diff --git a/Packages/Localization/Sources/Resources/sw.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/sw.lproj/Localizable.strings index 85cb351d0..08c7fca5a 100644 --- a/Packages/Localization/Sources/Resources/sw.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/sw.lproj/Localizable.strings @@ -518,7 +518,7 @@ "charts.take_profit" = "TP"; "charts.stop_loss" = "SL"; "charts.entry" = "Entry"; -"charts.liquidation" = "Liquidation"; +"charts.liquidation" = "Liq"; "nft.report.reason.spam" = "Barua taka"; "nft.report.reason.malicious" = "Uovu"; "nft.report.reason.inappropriate" = "Maudhui Yasiyofaa"; diff --git a/Packages/Localization/Sources/Resources/th.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/th.lproj/Localizable.strings index 3fda688e9..a7fd4fafc 100644 --- a/Packages/Localization/Sources/Resources/th.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/th.lproj/Localizable.strings @@ -518,7 +518,7 @@ "charts.take_profit" = "TP"; "charts.stop_loss" = "SL"; "charts.entry" = "Entry"; -"charts.liquidation" = "Liquidation"; +"charts.liquidation" = "Liq"; "nft.report.reason.spam" = "สแปม"; "nft.report.reason.malicious" = "อันตราย"; "nft.report.reason.inappropriate" = "เนื้อหาที่ไม่เหมาะสม"; diff --git a/Packages/Localization/Sources/Resources/tr.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/tr.lproj/Localizable.strings index 6fb2b8c18..e7e61fed3 100644 --- a/Packages/Localization/Sources/Resources/tr.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/tr.lproj/Localizable.strings @@ -518,7 +518,7 @@ "charts.take_profit" = "TP"; "charts.stop_loss" = "SL"; "charts.entry" = "Entry"; -"charts.liquidation" = "Liquidation"; +"charts.liquidation" = "Liq"; "nft.report.reason.spam" = "İstenmeyen e-posta"; "nft.report.reason.malicious" = "Kötü niyetli"; "nft.report.reason.inappropriate" = "Uygunsuz İçerik"; diff --git a/Packages/Localization/Sources/Resources/uk.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/uk.lproj/Localizable.strings index 7fb94c36f..aee80b0de 100644 --- a/Packages/Localization/Sources/Resources/uk.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/uk.lproj/Localizable.strings @@ -518,7 +518,7 @@ "charts.take_profit" = "TP"; "charts.stop_loss" = "SL"; "charts.entry" = "Entry"; -"charts.liquidation" = "Liquidation"; +"charts.liquidation" = "Liq"; "nft.report.reason.spam" = "Спам"; "nft.report.reason.malicious" = "Зловмисний"; "nft.report.reason.inappropriate" = "Неприйнятний контент"; diff --git a/Packages/Localization/Sources/Resources/ur.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/ur.lproj/Localizable.strings index 98f7bc2db..2d3556b4d 100644 --- a/Packages/Localization/Sources/Resources/ur.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/ur.lproj/Localizable.strings @@ -518,7 +518,7 @@ "charts.take_profit" = "TP"; "charts.stop_loss" = "SL"; "charts.entry" = "Entry"; -"charts.liquidation" = "Liquidation"; +"charts.liquidation" = "Liq"; "nft.report.reason.spam" = "سپیم"; "nft.report.reason.malicious" = "بدنیتی پر مبنی"; "nft.report.reason.inappropriate" = "نامناسب مواد"; diff --git a/Packages/Localization/Sources/Resources/vi.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/vi.lproj/Localizable.strings index fdd461ce4..0ecad4f4b 100644 --- a/Packages/Localization/Sources/Resources/vi.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/vi.lproj/Localizable.strings @@ -518,7 +518,7 @@ "charts.take_profit" = "TP"; "charts.stop_loss" = "SL"; "charts.entry" = "Entry"; -"charts.liquidation" = "Liquidation"; +"charts.liquidation" = "Liq"; "nft.report.reason.spam" = "Thư rác"; "nft.report.reason.malicious" = "Độc hại"; "nft.report.reason.inappropriate" = "Nội dung không phù hợp"; diff --git a/Packages/Localization/Sources/Resources/zh-Hans.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/zh-Hans.lproj/Localizable.strings index e95d0e5ce..a3b9b325f 100644 --- a/Packages/Localization/Sources/Resources/zh-Hans.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/zh-Hans.lproj/Localizable.strings @@ -518,7 +518,7 @@ "charts.take_profit" = "TP"; "charts.stop_loss" = "SL"; "charts.entry" = "Entry"; -"charts.liquidation" = "Liquidation"; +"charts.liquidation" = "Liq"; "nft.report.reason.spam" = "垃圾邮件"; "nft.report.reason.malicious" = "恶意"; "nft.report.reason.inappropriate" = "不当内容"; diff --git a/Packages/Localization/Sources/Resources/zh-Hant.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/zh-Hant.lproj/Localizable.strings index 210d9454b..c67538c9e 100644 --- a/Packages/Localization/Sources/Resources/zh-Hant.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/zh-Hant.lproj/Localizable.strings @@ -518,7 +518,7 @@ "charts.take_profit" = "TP"; "charts.stop_loss" = "SL"; "charts.entry" = "Entry"; -"charts.liquidation" = "Liquidation"; +"charts.liquidation" = "Liq"; "nft.report.reason.spam" = "垃圾郵件"; "nft.report.reason.malicious" = "惡意"; "nft.report.reason.inappropriate" = "不當內容";