首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Swift可本地化字符串在SwiftUI中不起作用

在SwiftUI中,如果你发现本地化的字符串没有按预期工作,可能是由于以下几个原因:

基础概念

本地化(Localization)是指将应用程序中的文本和其他资源翻译成不同的语言,并适应当地的文化习惯。SwiftUI通过Localizable.strings文件来支持本地化。

相关优势

  • 用户体验:使应用能够适应不同语言和文化背景的用户。
  • 市场扩展:支持多种语言可以增加应用的潜在用户群。

类型

  • 字符串本地化:最常见的形式,涉及翻译文本。
  • 格式本地化:日期、时间和数字的格式根据地区变化。
  • 图片和图标本地化:适应不同文化的视觉元素。

应用场景

  • 国际化应用:需要支持多种语言的应用程序。
  • 区域特定功能:根据用户的地理位置提供特定的功能或内容。

可能的问题及原因

  1. Localizable.strings文件未正确配置:确保你的Localizable.strings文件已经添加到项目中,并且为每种支持的语言都创建了相应的文件。
  2. 键值对错误:检查Localizable.strings文件中的键值对是否正确无误。
  3. 构建设置未配置:确保项目的构建设置中已经启用了本地化支持。
  4. SwiftUI视图中的使用方式不正确:在SwiftUI中使用本地化字符串时,需要使用正确的API。

解决方法

  1. 检查Localizable.strings文件: 确保你的Localizable.strings文件格式正确,例如:
  2. 检查Localizable.strings文件: 确保你的Localizable.strings文件格式正确,例如:
  3. 在SwiftUI中正确使用本地化字符串: 使用Text视图的初始化器来获取本地化的字符串:
  4. 在SwiftUI中正确使用本地化字符串: 使用Text视图的初始化器来获取本地化的字符串:
  5. 清理并重建项目: 有时候,Xcode可能需要清理缓存后重新构建项目才能正确识别本地化字符串的变化。
  6. 检查构建设置: 在Xcode的项目设置中,确保Localizations部分包含了所有需要支持的语言。

示例代码

假设你有一个Localizable.strings文件,内容如下:

代码语言:txt
复制
"welcome_message" = "欢迎使用我们的应用!";

在SwiftUI视图中使用这个字符串:

代码语言:txt
复制
import SwiftUI

struct ContentView: View {
    var body: some View {
        Text("welcome_message")
            .padding()
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

确保你的项目支持中文(简体),并在Info.plist中配置了相应的本地化标识。

通过以上步骤,你应该能够解决SwiftUI中本地化字符串不起作用的问题。如果问题仍然存在,建议检查控制台输出是否有相关的错误信息,这可能会提供更多线索。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

在Swift中创建可缩放的图像视图

在本教程中,我们将建立一个可缩放、可平移的图像视图来实现这一功能。 计划 他们说,一张图片胜过千言万语--但它不一定要花上一千行代码!对于我们的可缩放图像视图,我们要做的是让它成为一个可缩放的视图。...medium.com/media/afad3… 在commonInit()中,我们将图像视图居中,并设置它的高度和宽度,而不是把它固定在父视图上。这样一来,滚动视图就会从图像视图中获得其内容大小。...设置滚动视图 我们需要实际设置我们的滚动视图,使其可缩放和可平移。这包括设置最小和最大的缩放级别,以及指定用户放大时使用的UIView(在我们的例子中,它将是图像视图)。...我们有了一个UIIm我们已经有了一个嵌套在UIScrollView中的UIImageView,一切都应该是可滚动和可平移的。但是我们如何设置我们的图像呢?...我们将通过在我们的类中添加imageName字符串,并在字符串改变时更新UIImageView来实现。

5.7K20
  • 百行代码变十行,苹果SwiftUI可视化编程让开发者惊呼完美

    而对于开发者来说,新发布的 SwiftUI 可能是最吸引人的特性,在 Craig Federighi 的演示中,我们可以轻松地把一百行的前端代码缩减到十几行。...SwiftUI 自动支持动态字体调整(Dynamic Type)、暗黑模式(Dark Mode)、本地化(localization)和辅助功能(accessibility),这意味着开发者的第一行 SwiftUI...当我们在设计面板时,我们编辑的所有内容都与左边编辑器的代码完全同步。当我们修改预览(preview)时,对应代码可实时生成,也就是说我们对预览修改的内容能实时体现在代码中。...这些视觉编辑器在代码编辑器中也能用,所以我们可以使用检查器挖掘每个控件的不同选项,即使在界面的手动编程部分也是一样的。我们可以从库中拖拽控件,再放入到设计面板或代码面板都是可以的。...Xcode 会通过「动态替换」在实时 APP 中交换编辑的代码,这是 Swift 中的新特征。

    4.1K10

    苹果全新UI框架来了!可视化编程,自动化减少20%代码量

    Swift是苹果最新的开发语言,有人呼吁谷歌取代TensorFlow的Python。目前在TOIBE排名18位: ? 在RedMond排名11 ?...SwiftUI还提供对动态类型、暗黑模式、本地化和可访问性的自动支持。 SwiftUI都更新了什么? 此次更新主要有5点: 声明式:更加易读的代码。...而SwiftUI通过4种方式,解决了上述问题: 用一个新的声明式UI结构,定义了的布局的外观和工作方式 更新UI预览会自动生成新的Swift代码,反之,更改Swift代码也会更新UI预览 Swift中的任何绑定例如有效的...感受一下SwiftUI的代码风格 ? Github一个repo整理了在WWDC 2019发布的SwiftUI布局框架的一些官方示例: SwiftUI Essentials 创建和组合视图: ?...比如,它只支持Swift,你不能在Obj-C里使用SwiftUI;SwiftUI目前还不是很成熟,正在从事iOS开发的程序员可能更应该继续使用Obj-C,直到SwiftUI足够成熟。

    5.4K20

    分享集锦:设计模式讲解、Node.js 教程、Swift UI、Java 开发

    设计模式讲解 在我们在开发软件时,为了保证代码的可读性、可复用性、稳定性,都会结合软件特性,为其挑选一套最为适用的设计模式,以减少后期的维护成本。...https://www.nodejs.red/#/README SwiftUI 资料汇总 自今年 Apple 在开发者大会上宣布开放 SwiftUI 以来,其开发平台的讨论热度明显又上升了不少。...什么是 SwiftUI?在这里我引用下 InfoQ 的内容给大家解答下: SwiftUI 是一种非常简单的创新方法,可以利用 Swift 的强大能力在所有苹果设备平台上构建用户界面。...SwiftUI 使用易于阅读和编写的声明式 Swift 语法,可与新的 Xcode 设计工具无缝协作,使你的代码和设计完美同步。...SwiftUI 自动支持动态类型、黑暗模式、本地化和可访问性,你的 SwiftUI 代码将成为你写过的最强大的 UI 代码。

    1.2K20

    Swift 周报 第十四期

    前言 本期是 Swift 编辑组自主整理周报的第五期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。...《付费 App 协议》的附录 B 将会更新,表明 Apple 在越南征收和汇付适用税款。 以上调整生效后,在“我的 App”中“价格与销售范围”部分会随即更新。...您可以随时在 App Store Connect 中更改您的 App 和 App 内购买项目的价格 (包括自动续期订阅)。如果您有提供订阅项目,您可以选择为现有订阅者保留当前价格。...App 的实时活动会显示在锁定屏幕和灵动岛中 — “灵动岛”作为一项全新设计,可以让用户直观、愉悦地体验 iPhone 14 Pro 和 iPhone 14 Pro Max。...实现模块化应用的本地化 摘要: 本文详细的介绍了本地化上线的过程,建议收藏,以后新开项目作为参考。

    3.3K10

    如何在 SwiftUI 中使用 AccessibilityCustomContentKey 修饰符

    本篇文章来聊聊另一个新的 API,我们可以使用 SwiftUI 中的新 accessibilityCustomContent 视图修饰符提供自定义的辅助功能内容。...在开箱即用时为我们提供了出色的辅助功能支持。...不需要执行任何操作即可使你的 UserView 可访问。UserView 内的每个文本片段都对辅助技术(如VoiceOver和Switch Control)可访问。...通常,我们使用不同的字体和颜色在视觉上为文本设置优先级,但是如何在辅助技术中实现相同的影响呢?...accessibilityCustomContent 视图修饰符有三个参数:用于你的自定义内容的本地化标签,VoiceOver 用于宣布。用于呈现自定义内容的本地化标签或字符串值。

    11010

    SwiftUI WWDC作为开发者的我最激动的部分

    SwiftUI 所有Apple平台都是原生的 ---- SwiftUI在创造世界上最创新、最直观的用户界面方面积累了数十年的经验。...用户喜欢苹果生态系统的所有方面,比如控件和特定于平台的体验,都可以在代码中很好地表现出来。SwiftUI是真正的本地应用程序, ?...SwiftUI是什么 ---- SwiftUI是一种创新的、非常简单的方法,可以利用Swift的强大功能在所有苹果平台上构建用户界面。使用一组工具和api为任何苹果设备构建用户界面。...SwiftUI的声明式Swift语法易于阅读和编写,与新的Xcode设计工具无缝合作,使您的代码和设计完美同步。...自动支持动态类型、暗模式、本地化和可访问性意味着您的第一行SwiftUI代码已经是您编写过的最强大的UI代码。 ?

    2.3K30

    iOS字符串的本地化(APP 内的本地化切换) 、nib本地化、图片本地化

    如果找到了相应的文件夹,就会载入这个文件夹中的资源 I、nib& info.plist 本地化 本地化前的准备 先创建本地化文件夹(zh-Hans.lproj),让应用程序支持对应的语言环境,并选择选择当前需要本地化的资源...预先准备好的图片替换对应语言的图片即可 例如替换中文 zh-Hans.lproj文件夹中的home.png 在代码中照常使用图片即可 [UIImage imageNamed:@"icon_hyxq_youhuiq..."]; III、字符串本地化 应用场景: iOS APP 内的国际化切换 (对话框中的文字)、 应用名称本地化 3.1 APP 内的本地化切换 【iOS APP 内的国际化切换】1、字符串的本地化...{m,c,cpp,swift} ... filen....-SwiftUI enables SwiftUI Text() support.

    1.6K30

    Apple 营收有望再创新高 | Swift 周报 issue 47

    6) 讨论在字符串插值中附加文字内容大概用户正在询问字符串插值中 appendLiteral 方法的用法和潜在限制。...用户在特定情况下希望自定义字符串插值的行为,特别是在本地化字符串的上下文中。 他们提供了一个示例,其中使用可变大小写的字符串插值动态构造本地化字符串键。...该摘要捕获了用户对 appendLiteral 的正确使用以及他们在 Swift 中为本地化字符串键自定义字符串插值的具体情况的询问。...生成的客户端代码为每个操作提供了一个方法,可与任何提供 Swift OpenAPI Generator 集成包的 HTTP 库一起使用。...SwiftUI 中的 visionOS ornament摘要: 这篇博客介绍了在 Swift 中使用 SwiftU I构建 visionOS 应用程序的方法,重点介绍了新的 SwiftUI API 中的

    14032

    在多包项目中统一管理资源

    SPM 本身提供了对包中各类资源( 包括本地化资源 )的管理能力,但主要局限于在本包中使用这些资源,难以将资源进行共享。在有多个 Target 均需调用同一资源的情况下,原有的方式很难应对。...欢迎大家在 Discord 频道[2] 中进行更多地交流问题笔者最近正在使用 TCA( The Composable Architecture[3] )结合 SwiftUI 做一些开发,在 TCA 中,...每个 Feature 基本上可以被视作一个可独立运行的小应用( 在注入所需的环境后 )。...这个结构不仅允许预测性地加载代码和资源,同时也支持类似于本地化这样的系统性特性。Bundle 在存储上以目录的形式存在,在代码中则需要通过 Foundation 框架中的 Bundle 类来体现。...I18NResource在 Target 对应的目录下创建 Resources 目录修改 Package.swift,添加 defaultLocalization: "en", 启用本地化支持在 I18NResource.swift

    1.5K20

    在 Swift 中实现字符串分割问题:以字典中的单词构造句子

    不积跬步,无以至千里;不积小流,无以成江海,Swift社区 伴你前行。如果大家有建议和意见欢迎在文末留言,我们会尽力满足大家的需求。...难度水平:困难摘要本篇文章将探讨如何在 Swift 中解决字符串分割问题,即将给定字符串根据字典中的单词构造出所有可能的句子。本问题属于经典的递归与动态规划问题,涉及搜索和记忆化优化。...核心思路:遍历字符串的前缀部分,检查它是否在字典中。如果是,则递归处理剩余部分。将递归结果与当前前缀拼接成完整的句子。利用字典存储每个子问题的结果,避免重复计算。...递归分割字符串 遍历字符串的所有分割点,将字符串划分为前缀和后缀。如果前缀在字典中,则递归处理后缀。最终将前缀和后缀的结果拼接成句子。...关于我们我们是由 Swift 爱好者共同维护,我们会分享以 Swift 实战、SwiftUI、Swift 基础为核心的技术内容,也整理收集优秀的学习资料。

    12922

    ViewBuilder 研究(上)—— 掌握 Result builders

    通过对函数语句应用构建器进行转译,result builders 提供了在 Swift 中创建新的领域特定语言( DSL )的能力(为了保留原始代码的动态语义,Swift 有意地限制了这些构建器的能力)...随着 Swift 与 SwiftUI 的不断进化,最终被正式纳入到 Swift 5.4 版本之中。...另外,在最新的 Swift 提案中,已出现了 Regex builder DSL[4] 的身影。其他的开发者利用该功能也创建了不少的 第三方库[5]。..." .color(.red) "World" .color(.blue) .bold() } AttributedString 提供了对本地化字符串以及部分...这种情况在 SwiftUI 中很常见,例如某些 View 或 modifier 仅支持较新的平台,我们需要为不支持的平台提供其他的内容。

    3.1K20

    SwiftUI TextField进阶——格式与校验

    其他需要注意的问题 在使用上面的思路进行实际编程前,我们还需要考虑其他几个问题: 本地化 本文提供的演示代码[6]中实现了对Int和Double两种类型的实时处理。...如果你需要判断的是日期或其他自定义格式数据,最好也在代码中提供针对本地化字符的处理过程。 Formatter SwiftUI的TextField目前对新老两种Formatter都提供了对应的构造方法。...•支持的类型种类方案一可以直接使用多种数据类型,方案二中需在TextField的构造方法中将原始数值转换成对应格式的字符串。方案二的演示代码中,可以通过result获取字符串对应的数值。...不利于判断用户是否录入新的信息(更多的信息可参阅如何在SwiftUI中创建一个实时响应的Form[10])。方案二中允许不提供初始值,支持可选值。...本文仅涉及了TextField的部分内容,在【SwiftUI TextField进阶】的其他篇幅中,我们将探讨更多的技巧和思路,让开发者在SwiftUI中创建不一样的文本录入体验。

    8.2K20

    WWDC 23 之后的 SwiftUI 有哪些新功能

    前言 WWDC 23 已经到来,SwiftUI 框架中有很多改变和新增的功能。在本文中将主要介绍 SwiftUI 中数据流、动画、ScrollView、搜索、新手势等功能的新变化。...数据流 Swift 5.9 引入了宏功能,成为 SwiftUI 数据流的核心。SwiftUI 不再使用 Combine,而是使用新的 Observation 框架。...在之前的 SwiftUI 框架版本中,应该使用 @ObservedObject 属性包装器来订阅更改。现在不需要了,因为 SwiftUI 视图会自动跟踪符合 Observable 协议的类型的更改。...动画 动画始终是 SwiftUI 框架中最重要的部分。在 SwiftUI 中轻松实现任何动画,但之前的框架版本缺少一些现在具有的功能。...Swift Charts 也具有可滚动和可动画的功能。

    40320

    Swift 5.4 新特性

    Swift 一直具有对简单表达式使用隐式成员语法的能力,例如,如果您想在 SwiftUI 中为某些文本着色,则可以使用 .red 而不是 Color.red: struct ContentView1:...() 中的每个语句自动转换为单个字符串。...在我们的代码中,我们根本不需要转换字符串,因此我们可以立即将它们发送回去: @resultBuilder struct ConditionalStringBuilder { static func...Swift 5.4 之前,只有在未嵌套在 makeCookies() 中的情况下,才可以重载这三个 add() 方法,但是从 Swift 5.4 开始,在这种情况下也支持函数重载。...现在支持局部变量的属性包装器 属性包装器最初是在 Swift 5.1 中引入的,它是一种通过简单,可重复使用的方式将附加功能附加到属性的方法,但是在 Swift 5.4 中,它们的行为得到扩展以支持将其用作函数中的局部变量

    1.7K40

    iOS之深入解析Xcode 13正式版发布的40个新特性

    ,以找到要加载的 dylib; 十五、本地化 Xcode 现在可以打开 Xcode 本地化目录 (.xcloc) 以查看和编辑字符串和其他本地化资产的翻译; 新的 Use Compiler to Extract...的 LocalizedStringKey 和 Foundation 的 StringLocalizationKey 中准确地提取字符串插值和字符串文字; 添加了对 genstrings 和本地化导入和导出的支持...,以提取在 Objective-C 代码中使用新 NSLocalizedAttributedString 宏的字符串; 导出本地化时,多个本地化中的错误现在会聚合到一个警报对话框中; 在导出以进行本地化时...; 从 Swift 类、协议或方法声明跳转到定义还可以轻松导航到整个工作区中的所有子类、扩展和符合协议的类型; Xcode 13 包括重新设计的 Swift 代码完成功能,可最大限度地提高可靠性和性能,...这可以简化您的代码并减少提供的本地化字符串的数量,因为它会自动对本地化字符串进行变形以说明复数、语法协议。它适用于英语和西班牙语。

    8.8K40
    领券