代码之家  ›  专栏  ›  技术社区  ›  karlmz

本地化。更改语言时,图表图例文本不会更改

  •  0
  • karlmz  · 技术社区  · 10 月前

    图表图例文本的本地化在我的应用程序中不起作用。显然,我做错了什么。以下是代码:

    Chart {
    
        ForEach(morningTemp) { item in
            LineMark(
                x: .value("Date", item.date),
                y: .value("Morning Temp", item.value),
                series: .value("Morning Temp", "B")
            )
            .foregroundStyle(Color.red)        
        }
    
        ForEach(eveningTemp) { item in
            LineMark(
                x: .value("Date", item.date),
                y: .value("Evening Temp", item.value),
                series: .value("Evening Temp", "C")
            )
            .foregroundStyle(Color.blue)        
        }
    }
    .chartForegroundStyleScale(["Morning Temp": Color.red, "Evening Temp": Color.blue])
    

    这是可行的,但.chartForegroundStyleScale中的文本“晨间温度”和“晚间温度”在我更改语言时不会改变。传说文本仍然是英文的。我做错了什么?

    我通过让应用程序进行本地化来解决这个问题,即检测使用的语言,相应地准备文本,然后将它们插入.chartForegroundStyleScale中。这可能适用于两种或三种语言,但不可能适用于更多的语言。一定有更好的办法。请帮忙。

    1 回复  |  直到 10 月前
        1
  •  0
  •   Bram    10 月前

    您可以使用替代方案 String 初始化器

    .chartForegroundStyleScale([
        String(localized: "Morning Temp"): Color.red,
        String(localized: "Evening Temp"): Color.blue
    ])