ios 如何将选择器本地化为另一种语言?

tkclm6bt  于 2023-10-21  发布在  iOS
关注(0)|答案(3)|浏览(163)
  1. @State var selectedSpace : FreeSpace = .Big_Bag
  2. Picker("", selection: $selectedSpace) {
  3. ForEach(FreeSpace.allCases) { FreeSpace in
  4. Text(FreeSpace.rawValue.capitalized)
  5. }
  6. }.environment(\.locale, Locale.init(identifier: "az-Arab"))
  7. .foregroundColor(Color("Color"))
  8. .padding(.trailing)

知道pickerValues

  1. enum FreeSpace: String, CaseIterable, Identifiable {
  2. case Big_Bag, Small_Bag
  3. var id: Self { self }
  4. }

我正试图转换什么是内选择器到阿拉伯语和无法找到一个解决方案,它总是显示在英语。

xzlaal3s

xzlaal3s1#

Apple Doc:
如果你初始化一个文本视图,视图使用init(:)初始化器,它不会本地化字符串。但是,您可以通过首先创建LocalizedStringKey示例来请求本地化,这会触发init(:tableName:bundle:comment:)初始化器:

  1. // Don't localize a string variable...
  2. Text(writingImplement)
  3. // ...unless you explicitly convert it to a localized string key.
  4. Text(LocalizedStringKey(writingImplement))

这意味着您必须用途:

  1. Text(LocalizedStringKey(FreeSpace.rawValue.capitalized))
5anewei6

5anewei62#

我认为你误解了iOS本地化的概念。在您的应用程序中,您需要提供可本地化的字符串文件(通常名为Localizable.strings),其中包含您支持的语言的本地化值。
因此,基本上在您的项目设置中,您需要启用所需的语言(屏幕截图上的英语和阿拉伯语)。

然后创建Localizable.strings文件并将其添加为应用程序的资源。然后只需在文件检查器中单击本地化即可将其本地化。

这将允许您选择要为当前文件使用的语言。一旦你使它可本地化,你可以勾选要使用的语言,你可以在项目导航器中切换它们。

从现在开始,您将把本地化文本放在相应的Localizable文件中,并使用其密钥访问它。
如果你使用Text(String(localized: "key").uppercased()),你应该没问题。

ego6inou

ego6inou3#

你可以这样本地化**picker。**但是如果你设置你的picker段来自一个Array:
let qiuzSegments = [NSLocalizedString(“5000 Words”,comment:“5000 Kelime”),NSLocalizedString(“Favorite Words”,注解:“Favori Kelimeler”)]
这是帮助土耳其语->英语翻译。
我的意思是第一个字符串是你的目标语言,第二个字符串(注解)是你的主要应用语言。您可以这样设置picker本地化。
有关更多信息,请查看我的Medium页面:https://beratridvanasilturk.medium.com/

相关问题