【问题标题】:Is there a way to use a specific locale for a SF Symbol which is different from the current locale?有没有办法为与当前语言环境不同的 SF 符号使用特定语言环境?
【发布时间】:2021-10-29 23:07:38
【问题描述】:

我有一个支持英语和日语语言环境的应用程序。在那里,我正在创建一个button 并为其设置一个UIImage,它使用SF Symbol

let image = UIImage(systemName: "textbox")!.withConfiguration(UIImage.SymbolConfiguration(pointSize: 30, weight: .regular))
button.setImage(image, for: .normal)

现在对于英语和日语语言环境,按钮如下所示。

我需要停止针对此特定 button 的图像进行本地化。对于这两种语言环境,我希望现在出现 SF Symbol,以便在 button 中显示英语。有没有办法通过SF Symbols 实现这一目标?

【问题讨论】:

  • 您可以尝试的一种可能的解决方案是从 SF Symbol 应用程序中导出符号并将其作为资产添加到您的项目中。您应该检查这样做是否存在版权问题或类似问题。
  • @JoakimDanielson 我查看了 Apple 文档,我们被允许导出 SF Symbol,然后对其进行自定义和使用。谢谢你的建议。我会采用这种方法。文档 -> developer.apple.com/documentation/uikit/uiimage/…

标签: ios swift sf-symbols


【解决方案1】:

似乎为 SF 符号强制使用特定语言的唯一方法是附加语言代码,所以在 textbox 的情况下:

UIImage(systemName: "textbox")
UIImage(systemName: "textbox.ar")
UIImage(systemName: "textbox.he")
UIImage(systemName: "textbox.hi")
UIImage(systemName: "textbox.ja")
UIImage(systemName: "textbox.ko")
UIImage(systemName: "textbox.th")
UIImage(systemName: "textbox.zh")
UIImage(systemName: "textbox.zh.traditional")

但是,这不允许您强制使用英文版本,而只能强制使用非英文版本。通过 Apple 的 API 加载 SF 符号时,您可能不走运。我会采用 Joakim Danielson 的方法并尝试导出默认图标。

【讨论】:

  • 不知道我们可以将语言环境附加到 SF 符号。太糟糕了,但这不能用英语完成:)
【解决方案2】:

如果有人想为除英语以外的任何语言环境执行此操作,那么answer from @wakel 将是更好的选择。

对于英语语言环境,正如@JoakimDanielson 在评论中建议的那样,我通过下载 SF Symbols 应用程序并将所需的 SF Symbol 导出为 custom symbol template 来完成此操作

SF Symbols 应用程序 -> 文件 -> 导出自定义符号模板

这个自定义符号默认没有任何语言环境,可以添加到项目的Assets。添加后,您可以将其用作您使用 UIImage(named:) 添加的任何其他图像资产

let image = UIImage(named: "textbox")!.withConfiguration(UIImage.SymbolConfiguration(pointSize: 30, weight: .regular))
button.setImage(image, for: .normal)

从 SF Symbols 应用程序导出符号的官方 Apple 文档在这里 https://developer.apple.com/documentation/uikit/uiimage/creating_custom_symbol_images_for_your_app

【讨论】:

    猜你喜欢
    • 2017-12-27
    • 2021-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多