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

SwiftUI本地化没有翻译一个字符串

在 SwiftUI 中进行本地化时,如果发现某个字符串没有被翻译,可能是由于以下几个原因:

  1. 本地化文件缺失或配置错误:确保你的本地化文件(.strings 文件)存在并且配置正确。
  2. 字符串键错误:确保你在代码中使用的键与本地化文件中的键一致。
  3. 本地化文件未包含目标语言:确保你的本地化文件包含目标语言的翻译。

以下是一些详细的步骤和示例,帮助你排查和解决 SwiftUI 本地化问题:

1. 创建和配置本地化文件

首先,确保你已经创建了本地化文件并正确配置。

创建本地化文件

  1. 在 Xcode 中,选择你的项目文件。
  2. 在项目导航栏中,选择 Info 选项卡。
  3. Localizations 部分,点击 + 按钮添加新的语言。
  4. 选择要本地化的文件类型(例如,Main.storyboardLocalizable.strings 等)。

配置本地化文件

  1. 右键点击项目导航栏中的 Localizable.strings 文件,选择 Show in Finder
  2. 在 Finder 中,确保 Localizable.strings 文件存在于每个语言的文件夹中(例如,en.lprojzh-Hans.lproj 等)。

2. 在本地化文件中添加翻译

确保在 Localizable.strings 文件中添加了正确的键值对。

示例:Localizable.strings 文件

英文(en.lproj/Localizable.strings

代码语言:javascript
复制
"hello_world" = "Hello, World!";

简体中文(zh-Hans.lproj/Localizable.strings

代码语言:javascript
复制
"hello_world" = "你好,世界!";

3. 在 SwiftUI 代码中使用本地化字符串

使用 NSLocalizedStringLocalizedStringKey 来引用本地化字符串。

示例:使用 NSLocalizedString

代码语言:javascript
复制
import SwiftUI

struct ContentView: View {
    var body: some View {
        Text(NSLocalizedString("hello_world", comment: ""))
    }
}

示例:使用 LocalizedStringKey

代码语言:javascript
复制
import SwiftUI

struct ContentView: View {
    var body: some View {
        Text(LocalizedStringKey("hello_world"))
    }
}

4. 检查本地化设置

确保你的应用程序的本地化设置正确,并且设备或模拟器的语言设置为目标语言。

检查设备语言设置

  1. 打开设备或模拟器的 Settings 应用。
  2. 导航到 General > Language & Region
  3. 确保语言设置为你要测试的语言(例如,中文)。

5. 清理和重建项目

有时,Xcode 可能没有正确加载本地化文件。尝试清理和重建项目。

  1. 在 Xcode 中,选择 Product > Clean Build Folder
  2. 重新构建并运行项目。

6. 检查控制台输出

如果仍然没有翻译字符串,请检查 Xcode 控制台输出,看看是否有任何错误或警告。

7. 确保本地化文件包含在构建中

确保本地化文件被正确包含在构建中。

  1. 在 Xcode 中,选择你的项目文件。
  2. 在项目导航栏中,选择 Build Phases 选项卡。
  3. 确保 Copy Bundle Resources 部分包含所有本地化文件。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

3.1 APP 内的本地化切换 iOS APP 内的本地化切换【修订】 3.2 一个语言对应多个字符串资源文件的方案 3.3 iOS本地化字符串指定参数顺序(应用:app内的多语言切换) iOS...本地化字符串指定参数顺序(应用场景:app内的多语言切换)【修订】 前言 使用本地化功能,可以轻松地将应用程序翻译成多种语言,甚至可以翻译成同一语言的多种方言 如果要添加本地化功能,需要为每种支持的语言创建一个子目录...应用场景: iOS APP 内的国际化切换 (对话框中的文字)、 应用名称本地化 3.1 APP 内的本地化切换 【iOS APP 内的国际化切换】1、字符串本地化、2、自定义解析本地化字符串的工具类...(采用) 2、通过发通知,到各个控制器更新文字(不采用) 3.2 一个语言对应多个字符串资源文件的方案 应用场景:解决部分英文国际化没有生效的问题 存储国际化英文字符串的.string文件长度受限,...-SwiftUI enables SwiftUI Text() support.

1.6K30
  • 对iOS应用中的文本进行本地化

    本文的Demo[2]采用SwiftUI编写。 文本本地化的原理 作为一个程序员,如果让你考虑设计一套逻辑对原始文本针对不同语言的进行本地化转换,我想大多数人都会考虑使用字典(键值对)的解决方案。...我们可以在一个app中创建多个字符串文件,有些名字的字符串文件是有其特殊含义的。 •Localizable.stringsUI默认对应的字符串文件。...什么都没有变! 原因是,我们在字符串文件中设定的键是有问题的。...不知道大家注意没有,目前的English文件是空的,Chinese文件我们也只对四个内容设置了对应的本地化文本。所有我们没有设置的内容,app都将显示我们在代码中设置的原始文本。...总结 本文原为我针对iOS的本地化主题系列文章中的一篇,不过由于琐事较多,始终没有最终完成。

    2.2K20

    SwiftUI TextField进阶——格式与校验

    尽管这两种类型基本上都是以数字为主,但在处理时仍需注意本地化问题。...如果你需要判断的是日期或其他自定义格式数据,最好也在代码中提供针对本地化字符的处理过程。 Formatter SwiftUI的TextField目前对新老两种Formatter都提供了对应的构造方法。...不利于判断用户是否录入新的信息(更多的信息可参阅如何在SwiftUI中创建一个实时响应的Form[10])。方案二中允许不提供初始值,支持可选值。...•对其他修饰方法的兼容性无论方案一还是方案二都满足了本文之前提出的对官方API的完全兼容,在没有损失的情况下获得了其他功能的提升。 总结 每个开发者都希望为用户提供一个高效、优雅的交互环境。...中创建一个实时响应的Form: https://www.fatbobman.com/posts/swiftui-input-form/

    8.2K20

    如何在 SwiftUI 中使用 AccessibilityCustomContentKey 修饰符

    前言SwiftUI 3 发布了许多新的辅助功能 API,我们可以利用这些 API 以轻松的方式显著提高用户体验。...本篇文章来聊聊另一个新的 API,我们可以使用 SwiftUI 中的新 accessibilityCustomContent 视图修饰符提供自定义的辅助功能内容。...创建 User 结构体让我们从一个简单的示例开始,定义 User 结构体以及呈现 User 结构体实例的视图。...accessibilityCustomContent 视图修饰符有三个参数:用于你的自定义内容的本地化标签,VoiceOver 用于宣布。用于呈现自定义内容的本地化标签或字符串值。...可运行代码在这个示例中,我们创建了一个 ContentView,在其中创建了一个 User 实例,并将其传递给 UserView。这个示例使用了文章中第三个代码段,其中包括了一些辅助功能的设置。

    10610

    Swift 周报 第十四期

    苹果确认 iOS16 存漏洞影响新机激活 据 MacRumors 看到的一份备忘录,苹果称,“iOS 16 有一个已知的问题,可能会影响到使用开放的 Wi-Fi 网络的设备激活”。...SwiftUI Layout 协议——第 2 部分[13] 摘要: 本篇文章是 SwiftUI Layout 协议的第二部分介绍,主要讲述 Layout 协议的高级布局包含自定义动画、递归布局等功能。...实现模块化应用的本地化 摘要: 本文详细的介绍了本地化上线的过程,建议收藏,以后新开项目作为参考。...Layout 协议——第 1 部分: https://swiftui-lab.com/layout-protocol-part-1/ [13]SwiftUI Layout 协议——第 2 部分: https...://swiftui-lab.com/layout-protocol-part-2/ 如果没有你想要的选项,请在留言中留下心仪的公司。

    3.3K10

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

    Node.js 技术栈 本文档是作者从事 Node.js Developer 以来的学习历程,旨在为大家提供一个较详细的学习教程,侧重点更倾向于 Node.js 服务端所涉及的技术栈。 ?...https://www.nodejs.red/#/README SwiftUI 资料汇总 自今年 Apple 在开发者大会上宣布开放 SwiftUI 以来,其开发平台的讨论热度明显又上升了不少。...什么是 SwiftUI?在这里我引用下 InfoQ 的内容给大家解答下: SwiftUI 是一种非常简单的创新方法,可以利用 Swift 的强大能力在所有苹果设备平台上构建用户界面。...SwiftUI 自动支持动态类型、黑暗模式、本地化和可访问性,你的 SwiftUI 代码将成为你写过的最强大的 UI 代码。...https://github.com/Juanpe/About-SwiftUI 如果你与我一样,对 SwiftUI 感兴趣,那可以选择从这份文档开始探索这些技术。

    1.2K20

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

    SwiftUI 所有Apple平台都是原生的 ---- SwiftUI在创造世界上最创新、最直观的用户界面方面积累了数十年的经验。...SwiftUI是真正的本地应用程序, ? SwiftUI是什么 ---- SwiftUI是一种创新的、非常简单的方法,可以利用Swift的强大功能在所有苹果平台上构建用户界面。...自动支持动态类型、暗模式、本地化和可访问性意味着您的第一行SwiftUI代码已经是您编写过的最强大的UI代码。 ?...SwiftUI语法是什么样的呢 ---- SwiftUI使用声明性语法,因此您可以简单地声明用户界面应该做什么。例如,您可以编写一个包含文本字段的项列表,然后描述每个字段的对齐方式、字体和颜色。...轻松添加动画到几乎任何控件,并选择一个集合的准备使用的效果只有几行代码。在运行时,系统会处理创建平滑移动所需的所有步骤,甚至会处理中断以保持应用程序的稳定。

    2.3K30

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

    那么,SwiftUI解决了哪些痛点?带来哪些好处?代码风格如何?敬请阅读本文。 刚刚结束的苹果WWDC推出了一个对于开发者非常重要的框架:SwiftUI。...SwiftUI一个非常方便快速的构建UI的框架,与最新Xcode设计工具无缝协作,可为所有苹果设备构建UI。开发者通过SwiftUI,利用Swift语法就能够完成代码和设计的同步。...SwiftUI还提供对动态类型、暗黑模式、本地化和可访问性的自动支持。 SwiftUI都更新了什么? 此次更新主要有5点: 声明式:更加易读的代码。...outlets和操作,都会在编译时进行检查,因此在运行时不会出现UI失败的风险 虽然背后使用来自UIKit和AppKit的控件,但SwiftUI凌驾于二者之上,能够有效地使底层UI框架成为一个实现细节,...感受一下SwiftUI的代码风格 ? Github一个repo整理了在WWDC 2019发布的SwiftUI布局框架的一些官方示例: SwiftUI Essentials 创建和组合视图: ?

    5.4K20

    软件本地化中的 10 个常见错误

    如何避免误用本地化,可以注意以下 10 点: 1. 直接硬编码文字 将文字直接嵌入代码将极大地拖慢软件本地化的进度,翻译者不得不阅读代码以决定哪些段落需要翻译。...如果对此一无所知,就可能在本地化过程中造成没有足够的布局空间,文字可能会超出控件,从而不得不在翻译后重新调整设计。...一方面,这种文字游戏有时很难甚至无法被翻译,也会让翻译者对你的胡闹心怀怨恨,因为没有人喜欢因为拼接过多带来的猜字游戏;另一方面,同一句话的前后结构可能完全不同,这使得翻译完全无法进行。...从右到左可能还能通过反向字符串解决;但当字符串竖版排练时,并非简单地旋转 90 度。比较正确的方式是基于 locale 在资源文件中包含一个指示方向的字符串,并根据其调用不同的 CSS 样式。...缺少上下文造成的困惑和歧义 当字符串包含变量,且被用在一个特定上下文或使用了有歧义的措辞时,你的翻译团队就不好过了。翻译者通常基于无上下文格式的文件和字符串工作。

    72710

    python如何解决国际化Internationalization(i18n)问题

    使用gettext库: gettext 是Python的一个标准库,用于处理国际化问题。它允许你将应用程序中的字符串标记为可本地化的,并提供翻译文件以支持不同的语言。...使用babel库: babel 是一个强大的国际化和本地化库,它支持日期、时间、数字、货币等的本地化,同时也支持翻译文本。...from babel import _ # 设置本地化信息 lang = 'zh_CN' babel_locale = Locale(lang) # 在代码中标记需要本地化字符串 print(_('Hello...你可以使用 gettext 来标记和翻译字符串。 4....在实际项目中,通常需要创建翻译文件,包含不同语言的翻译字符串,并使用相应的工具进行翻译和管理。 收藏 | 0点赞 | 0打赏

    1.1K10

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

    无主只是假设它已分配,如果没有分配则崩溃。在 weak MyClass 中,如果其中一个引用被释放,会发生什么? 它会将自己从数组中删除吗? 当元素随机失效时,这可能会引起一些混乱。...用户在特定情况下希望自定义字符串插值的行为,特别是在本地化字符串的上下文中。 他们提供了一个示例,其中使用可变大小写的字符串插值动态构造本地化字符串键。...该摘要捕获了用户对 appendLiteral 的正确使用以及他们在 Swift 中为本地化字符串键自定义字符串插值的具体情况的询问。...SwiftUI 中的 visionOS ornament摘要: 这篇博客介绍了在 Swift 中使用 SwiftU I构建 visionOS 应用程序的方法,重点介绍了新的 SwiftUI API 中的...文章首先展示了如何使用 TabView 创建一个基本的 ornamen t,然后介绍了如何使用 SwiftUI 的 Toolbar API 在 ornament 中添加操作控件。

    13632

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

    今天苹果就为 Switf 前端编程插上了翅膀,其最新发布的 SwiftUI一个基于 Swift 语言的、创新而又极为简单的用户界面解决方案,各种平台上的应用都能用它打造精致的用户界面。...SwiftUI 使用统一的一套工具和 API,即可创建在任意苹果设备使用的用户界面。通过定义一个易读易写的声明式 Swift 语法,SwiftUI 可以顺畅的和 Xcode 工具一起完成设计工作。...SwiftUI 自动支持动态字体调整(Dynamic Type)、暗黑模式(Dark Mode)、本地化(localization)和辅助功能(accessibility),这意味着开发者的第一行 SwiftUI...简化动画构建 创建流畅的动画效果十分简单,如同声明一个简单的方法。SwiftUI 可以在需要的时候自动计算并渲染。 ?...预览:现在,我们可以创建任何 SwiftUI 视图的一个或多个预览,从而得到样本数据,并配置几乎用户能看到的所有内容,例如大字体、定位或「暗黑模式」等。

    4.1K10

    三分钟让 IntelliJ IDEA 显示简体中文

    暂时停用插件来更改 UI 语言 目前已完成核心 UI(包括最常用的对话框和功能)的本地化,其他部分仍在持续完善中。你可能会发现一些翻译错误或是有些技术词汇不需要翻译。...同样的字符串在软件里可能会出现多次,而根据字符串出现的位置不同,有可能会需要不同的翻译。因此在提交反馈时,请详述你的操作步骤,将看到错误翻译的操作步骤记录下来。...如此可帮助本地化团队复现相同的画面。另外,为了让本地化团队更清楚应该要更新哪个字符串,若是能够提供错误的中文字符串对照的英文原文就最好了。...您可以将简体中文插件暂时关闭,让 UI 回复成英文后取得原文字符串,再将插件开启取得简体中文字符串。...假如觉得这流程太繁琐,我也为你准备好一个提交模板(阅读原文查阅博客内容即可了解模板详细信息),点击链接即会另开一个新的浏览器窗口,你可以依照我的格式填写,让提交反馈更高效。 ?

    2.7K30

    IOS本地化应用

    应用本地化是分别对字符串、图片和 xib 或 storyboard 文件本地化,而传统的做法是对 xib 上的字符串(包含UILabel和UIButton、UITextField等)关联一个变量,通过NSLocalizedString...还是先介绍一下本地化的一般流程: (1)伪本地化本地化是将字符串本地化为无意义语言的过程。...即将须要翻译字符串替换成其它如果已经是翻译过的“译文”,能够用谷歌翻译替换一下或者是将全部元音字母替换成x。...以防止改动可本地化的属性、不可本地化的属性或者是全部属性,如图所看到的。然后将需要翻译的文本发给翻译人员或者是本地化服务提供商去翻译即可了。...(6b)本地化变更假设你做了一些本地化变更,比方改变了已本地化的文本,那么就须要从头開始这个过程。并将这些变更发给本地化人员。能够重用之前的字符串翻译,这么做会大大提高效率,但仍然非常麻烦。

    89200

    django 1.8 官方文档翻译: 9-1-1 国际化和本地化

    国际化和本地化 概述 国际化和本地化的目的就是让一个网站应用能做到根据用户语种和指定格式的不同而提供不同的内容。 Django 对文本翻译, 日期、时间和数字的格式化,以及时区提供了完善的支持。...实际上,Django做了两件事: 由开发者和模板作者指定应用的哪些部分应该翻译,或是根据本地语种和文化进行相应的格式化。 根据用户的偏好设置,使用钩子将web应用本地化。...定义 国际化和本地化通常会被混淆,这里我们对其进行简单的定义和区分: 国际化 让软件支持本地化的准备工作,通常由开发者完成。 本地化 编写翻译和本地格式,通常由翻译者完成。...警告 是否启用翻译和格式化分别由配置项USE_I18N和 USE_L10N 决定。 但是,这两个配置项都同时影响国际化和本地化。 这种情况是Django的历史因素所致。...消息文件 消息文件是纯文本文件,包含某种语言下所有可用的翻译字符串及其对应的翻译结果。消息文件以 .po 做为文件扩展名。 翻译字符串 可以被翻译的文字。

    33920
    领券