Swift 中 NSLocalizedString 的等效方法是什么?


在真实的 iOS 应用中,通常需要支持本地化以确保应用程序在全球范围内的可访问性。通过将本地化整合到您的应用程序中,您可以获得更多用户。在 Swift 中,我们使用 NSLocalizedString 函数来创建本地化字符串。

什么是本地化?

本地化是指允许您的应用程序支持多种语言的过程。它有助于为用户创建更本地化的体验,而不是仅使用单一语言的软件。本地化在您的应用程序中非常易于集成。Apple 提供了一种完全原生的方法来将本地化集成到您的程序中。

语法

在 Swift 中使用 NSLocalizedString 的语法如下所示。

NSLocalizedString("key", comment: "")

在上述语法中,函数体中有两个参数。首先是键,它需要是唯一的。根据您在函数中提供的键,将在字符串文件中搜索本地化字符串。此外,您可以提供有关特定字符串的附加信息,这有助于其他开发人员理解该字符串的作用。

NSLocalizedString 函数中的注释参数是一个字符串,用于提供附加信息。此信息对翻译人员和其他开发人员很有帮助。

正如您所看到的,提供的函数中的注释参数是可选的。但是,强烈建议传递简短的信息,以提供正在本地化的字符串的上下文。例如,如果字符串是错误消息,则注释可以解释显示错误消息的情况。如果字符串是按钮标签,则注释可以解释按钮的作用。

NSLocalizedString

Swift 中的 NSLocalizedString 方法用于应用程序管理字符串本地化。该字符串在应用程序的字符串表中查找。此字符串表包含项目中所有需要本地化的字符串。如果需要向项目添加更多副本,只需将其添加到应用程序的字符串表中即可。

当您将字符串传递给此方法时,它会在应用程序的字符串表(称为键)中查找它。一旦在表中找到指定的键,它就会返回给调用者。如果在本地化表中找不到该键,则返回相同的键作为值。

这种方法在应用程序中启用多种语言非常简单。每个字符串副本必须根据代码将支持的语言放置在每个文件中。请注意,您不需要为每种语言编写单独的代码。

以下是如何使用 NSLocalizedString 函数获取本地化字符串的示例

键“enter_name”的本地化字符串应在应用程序的字符串表中定义。以下是英语、西班牙语和法语的字符串表示例

英语

"enter_name" = "Enter your full name";

西班牙语

"enter_name" = "Ingresa tu nombre completo";

法语

"enter_name" = "Entrez votre nom complet";

在此示例中,本地化字符串取决于您的首选语言。例如,

  • 如果您偏好英语,NSLocalizedString 将返回“Enter your full name”。

  • 如果您偏好西班牙语,NSLocalizedString 将返回“Ingresa tu nombre completo”。

  • 如果您偏好法语,NSLocalizedString 将返回“Entrez votre nom complet”。

在 NSLocalizedString 函数中,您还可以将参数传递给 NSLocalizedString 以将动态值插入本地化字符串。

键“greeting_message”的本地化字符串应包含用户名的占位符。以下是英语、西班牙语和法语的字符串表示例

英语

"greeting_message" = "Good morning, %@ !!";

西班牙语

"greeting_message" = "Buenos días, %@ !!";

法语

"greeting_message" = "Bonjour, %@ !!";

以下是如何在 NSLocalizedString 函数中插入动态值的示例

let message = NSLocalizedString("greeting_message", comment: "A message to greet the user")
let userName = "Amit"
let greeting = String(format: message, userName)

在此示例中,NSLocalizedString 用于检索键“greeting_message”的本地化字符串。“A message to greet the user”注释提供了有关该字符串的附加信息。然后使用 String(format:) 方法将 userName 值插入本地化字符串。

在此示例中,本地化字符串取决于您的首选语言。例如,

  • 如果您偏好英语,NSLocalizedString 将返回“Good morning, Amit !!”。

  • 如果您偏好西班牙语,NSLocalizedString 将返回“Buenos días, Amit !!”。

  • 如果您偏好法语,NSLocalizedString 将返回“Bonjour, Amit !!”。

应用程序本地化的一些主要好处包括:

  • 改进的用户体验 − 当您将本地化集成到您的应用程序中时,您的用户将获得良好的体验。它有助于为用户提供更易于访问的体验,从而提高参与度和用户满意度。

  • 覆盖范围扩大 − 通过在应用程序中采用本地化,它将有助于增加数量。应用程序可以覆盖更广泛的受众,无论其语言或位置如何。

  • 竞争优势 − 通过支持多种语言,应用程序可以将自己与仅支持单一语言的竞争对手区分开来,并且还可以吸引那些正在寻找支持其语言的应用程序的客户。

  • 文化意识 − 通过支持多种语言,应用程序可以展现对不同文化的尊重,同时也有助于消除语言障碍。

  • 增强 SEO: − 当应用程序本地化后,它可以针对多个位置进行定制,从而增加其在应用商店和搜索结果中的曝光率,并使消费者更容易找到。

结论

总而言之,NSLocalizedString 是 Swift 中一个强大的工具,使开发人员能够构建支持多种语言的应用程序。通过使用 NSLocalizedString 从应用程序的字符串表中检索字符串,开发人员可以为其用户提供本地化体验,而无需为每种语言更改应用程序的代码。NSLocalizedString 还允许将动态值插入本地化字符串以进一步定制用户的体验。无论您是为全球受众开发应用程序,还是只想在您的应用程序中支持多种语言,NSLocalizedString 都是您应该掌握的工具。

更新于:2023年4月11日

484 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.