动态覆盖首选字符串本地化以进行测试

2024-01-06

使用 iPhone 模拟器中的“设置”应用程序切换语言是测试本地化调整的 PITA 方法。我正在尝试找出一种在我的应用程序中使用调试设置动态切换本地化(en/fr/es/etc)的方法,而无需重新启动应用程序。

NSBundle 提供了从任意本地化请求本地化资源的方法,例如

- (NSString *)pathForResource:(NSString *)name ofType:(NSString *)extension inDirectory:(NSString *)subpath forLocalization:(NSString *)localizationName

但我找不到字符串管理子系统的等效项。听起来来自these https://stackoverflow.com/questions/1669645/how-to-force-nslocalizedstring-to-use-a-specific-language 问题 https://stackoverflow.com/questions/1305564/use-specific-localization-in-cocoa-app您可以覆盖注册的默认值,这听起来很愚蠢并且需要重新启动应用程序。

这里还有其他策略吗?如果我用在调试构建中完成其自己工作的东西包装 NSLocalizedString ,那么加载给定的最短路径是什么.strings文件?是否有一种编程方式来访问这些字符串表,而无需自己亲自解析它们?

Thanks.


我发现的唯一方法是使用建议的微妙技巧这个答案 https://stackoverflow.com/questions/1669645/how-to-force-nslocalizedstring-to-use-a-specific-language/1746920#1746920。你可以包裹NSLocalizedString()在知道本地化“覆盖”的函数中,并根据是否设置来选择如何获取其字符串。当您想要覆盖时,您可以从本地化目录创建一个“子包”,然后从该包中提取字符串。这是它的要点:

if (CurrentLocalization != nil) {
    NSBundle * locBundle = [NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:CurrentLocalization ofType:@"lproj"]];
    return [locBundle localizedStringForKey:key value:nil table:nil];
} else {
    return NSLocalizedString(key, @"");
}    

etc.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

动态覆盖首选字符串本地化以进行测试 的相关文章

  • Cocoa - 在另一个 xib 上显示 xib

    谁能告诉我如何 或指导我有关信息 在另一个 xib 笔尖 上显示 xib 笔尖 我希望如何放置它 以便我可以以编程方式将它移动到主笔尖 就像这样 这显然不起作用 void drawRect NSRect dirtyRect NSRect c
  • WebView 不运行 loadHTMLString 中给出的 JavaScript

    我不明白为什么这不起作用 我的桌面上有一个 test htm 文件 如下所示 This is x 2 我有一个 WebVie
  • Cocoa 中播客应用程序的 Apple Api

    我正在为 mac 创建一个播客应用程序 用户可以在其中搜索 itunes 上的播客 是否有苹果内置的 api 我可以通过它从苹果 itunes 搜索和播放播客 或任何其他用于从 itunes 搜索播客的 api 谢谢 Edit 现在我找到并
  • 每个 CPU 核心处于 C0 电源状态的时间

    任何帮助弄清楚如何做到这一点都会很棒 在过去一秒内 每个 CPU 核心处于 C0 电源状态的时间有多少 这是针对 Mac 应用程序的 因此需要 Objective C cocoa 和 c OS X 没有任何公开 CPU c 状态的 API
  • 本地化 ASP.NET 资源的滑动过期

    假设我们有 2 个站点 myDomain AU 和 myDomain RU 具有相同的代码和本地化资源文件 resx 和 ru resx 我们预计大多数英语用户将使用 AU 网站 大多数俄语用户将使用 RU 网站 但是 如果 AU 域的某些
  • Apple 如何在机场菜单打开时更新它? (当 NSMenu 已经打开时如何更改它)

    我有一个状态栏项目 可以弹出一个 NSMenu 并且我有一个委托集 并且它已正确连接 void menuNeedsUpdate NSMenu menu工作正常 也就是说 该方法设置为在显示菜单之前调用 我需要监听该方法并触发异步请求 稍后在
  • 如何从 DTrace 脚本打印 NSString

    This question https stackoverflow com questions 1413623 how do i print a cfstringref in a dtrace action正在问同样的事情 但是当我尝试时
  • 使用 UIKeyCommand 检测删除键

    任何人都知道如何使用检测 删除 键UIKeyCommand在 iOS 7 上 当人们在使用 Swift 时遇到问题时 我认为用 Objective C 和 Swift 编写一个小型的 完整的例子可能是一个很好的答案 请注意 Swift 没有
  • 使用 Cocoa/OSX 合并/堆叠两个图像

    我有一个 CGImageRef 我们称之为原始图像 和一个透明 png 水印 我正在尝试编写一种方法将水印放置在原始内容之上 并返回 CGImageRef 在 iOS 中 我会使用 UIKit 将它们绘制到上下文中 但这在 OSX 中似乎不
  • 无法按住 CTRL+拖动 NSButton 到自定义 NSView 标题

    我想创建一个自定义的NSTableCellView由 Interface Builder 实例化 我已将 Table Cell View 类设置为MyTableCellView 并正确创建MyTableCellView NSTableCel
  • 是否有一个包可以维护所有带有符号的货币列表?

    是否有一个 python 包提供所有 或相当完整 货币的列表与符号 如美元的 有优秀的pycountry 贪财的 https github com limist py moneyed and ccy http code google com
  • .Net Core 数据注释 - 使用共享资源进行本地化

    我想使用共享的 resx 文件来指定所有可翻译的字符串 既是为了翻译方便 更重要的是为了避免出现与 DRY 原则冲突的数十个单独的 resx 文件 我让它与 IStringLocalizer 一起用于控制器和视图 但我只是不知道如何为模型的
  • 使用 NSError 检查错误的正确结构

    我正在编写各种例程 并尽力保持其整洁和重构 我正在创建的方法开始看起来与此代码类似 IBAction buttonPress id sender Create Document Shopping List with this documen
  • 如何使用 jquery-validate 本地化

    有没有办法使用存储库中现有的翻译来动态 即从 JS 代码 设置 更改错误消息的语言 非解决方案 1 加载本地化脚本
  • 页面中某些超链接控件上的本地化资源未发生变化

    上面是正在开发中的网站的屏幕截图 我们有一个 DropdownList 控件 并在其 SelectedIndexChanged 上进行回发 然后我们更改站点区域性 然后加载相应的资源文件 DropDownList ASP NET 代码
  • 准确地从屏幕上的像素获取颜色并转换其颜色空间

    我需要从屏幕上的像素获取颜色并转换其颜色空间 我遇到的问题是 将值与数字色度计应用程序进行比较时 颜色值不相同 create a 1x1 image at the mouse position if let image CGImage CG
  • NSRunAlertPanel 显示在“活动窗口”后面

    我正在尝试整理一个简单的错误报告包 如果我的主程序崩溃 它会保存崩溃日志 然后启动报告程序 报告程序询问用户是否可以将崩溃日志发送给我 然后就这样做了 我正在使用 NSRunAlertPanel 创建一个基本消息框 由于某种原因 该消息框显
  • 从沙箱中的帮助应用程序读取 NSUserDefaults

    我找到了一些阅读资源NSUserDefaults另一个应用程序的 Objective C NSUserDefaults 缓存会阻止其他应用程序准确读取更改 https stackoverflow com questions 10667848
  • 如何使用 NSWorkspace launchApplicationAtURL?

    我尝试使用以下命令运行 TextMate foo txt 的等效项在 URL 处启动应用程序 二进制文件的名称是 TextMate 我有一个参数 我尝试了以下代码 但它似乎不起作用 find the textmate NSURL bURL
  • 读取 DOMDocument 并使用 CSS 选择器查找元素

    我必须将 Android 应用程序转换为 iOS 该应用程序深入使用了jsoup http jsoup org 图书馆和element select cssQuery http jsoup org apidocs org jsoup nod

随机推荐

  • 如何在 swift 中声明一个可在 Objective C 中使用的常量

    如果我将 swift 常数声明为全局常数 like let a 123 but the a无法在以下位置找到目标c 怎么解决这个问题呢 SWIFT代码 public class MyClass NSObject public static
  • C++ HDF5 找不到 -lhdf5d

    情况 我想创建一个程序来读取一些内容 hdf5 file 我做了什么 没什么 但添加hdf5 lib到项目 Problem 我收到两个错误 当我尝试运行该程序时 cannot find lhdf5d error ld returned 1
  • SELECT 非规范化列到单独的记录中?

    我正在使用 SQL 一点 这样如果我在工作面试中被问到 我就不会完全不知道它 我的朋友最近在面试时被问到以下问题 他答不出来 我问了工作中熟悉 SQL 的人 他也不知道 你们能帮我回答这个问题 然后解释一下它是如何工作的吗 请 问题 数据库
  • “ccache”配置

    我有一个与 ccache 配置相关的问题 在我们的开发环境中 我们有数百个使用绝对路径构建对象的 make 文件 我想加快进程并使用 ccache 不幸的是 当从不同位置编译时 我可以看到缓存未命中 下面是一个例子 简化了源文件放置在不同目
  • Java 数据流编程 API? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何在 JDBC 上执行这条 Oracle 语句

    我在使用 JDBC 准备好的语句执行以下操作时遇到问题 CREATE OR REPLACE TRIGGER Time trg BEFORE INSERT ON Time FOR EACH ROW BEGIN SELECT Time seq
  • 使用 Jackson 从字符串反序列化 LocalDateTime

    我正在尝试反序列化String to LocalDateTime与杰克逊 但它不起作用 我有一个带有 LocalDateTime 字段的数据类 Data public class Registration JsonFormat shape
  • 在 IDS4 和 ASP.NET Core 2.2 下使用 JwtToken 访问安全页面时出现 401 错误

    我通过添加以下行配置了 MVC 客户端 services AddAuthentication JwtBearerDefaults AuthenticationScheme AddJwtBearer 正如 某种程度上 预期的那样 错误消息是
  • 我可以使用 getopt 按特定顺序处理选项吗?

    我正在实现一个命令行工具 并且我需要能够处理一堆选项 某些选项完成后必须终止程序 例如我有选项a b和c 如果 a 和 b 在完成后终止 并且我发出命令 myprogram bca file 在这种情况下 有没有办法使用 getopt 给予
  • 大 O 与小 omega

    为什么 n 小于 O n 我知道什么是小欧米茄 例如 n log n 但我不明白为什么 n 小于 O n 大 Oh O 是上限 小 omega 是上限Tight下限 O g n f n 存在正常数 c 和 n0 使得 0 f n cg n
  • 如何在jmeter中对csv数据集配置的文件名文本进行参数化

    我将 csv 数据集配置中归档的文件名文本的值传递为 filename 该变量包含整个路径 并从另一个 csv 数据集配置中获取它 该配置直接存在于线程组和我所在的变量中传递到 if 控制器内部的 csv 数据集配置我无法将该值传递到文件名
  • 在 C# .net 中发送电子邮件

    我有以下代码来发送电子邮件 System Net Mail SmtpClient client new System Net Mail SmtpClient client Send email protected cdn cgi l ema
  • 使用 PHP 编写“if”条件语句有哪些不同方法?

    使用 PHP 编写 if 条件语句有哪些不同的方式 我知道以下示例 if test 1 else and if test 1 echo asdsa else echo sdaaa 有的是替代控制结构语法 http php net manua
  • 字符串字典:任何不符合协议“可解码”[重复]

    这个问题在这里已经有答案了 我正在尝试实现 Decodable 来解析 json 请求 但 json 请求在对象内部有一个字典 这是我的代码 struct myStruct Decodable let content String Any
  • iOS-将数组对象复制到另一个数组对象中

    我有一个小问题 我需要帮助 我想循环遍历一个多维数组 每次我找到一个键 ex name 等于 ex 的值 你好 我想将该数组对象复制到另一个数组中 我怎么做 您将这样做 NSArray newArray NSArray arrayWithA
  • C++20 中允许 east constexpr / constinit / consteval 吗?

    我在网上找到的大多数例子都更喜欢 西方风格 constexpr C 11 consteval and constinit C 20 consteval auto sqr int n return n n constexpr auto r s
  • 如何创建面积范围图

    我想创建area range chart如下所示link http jsfiddle net D4w7G 3 我想使用数据循环将数据添加到范围 应该是什么类型ranges创建图表 请建议 提前致谢 这是 JSFiddle 代码 HTML d
  • 如何通过 Azure Devops CI/CD 使用单臂模板部署多个逻辑应用程序?

    我有多个带有相应 ARM 模板的逻辑应用程序 现在 我想将不同的 ARM 模板合并到一个 ARM 模板中 并通过 AZURE DEVOPS 管道同时部署多个逻辑应用 对于您的场景 您需要首先更改 ARM 模板结构 例如 我想将4个ARM模板
  • HTTP/2 与 OkHttp

    我正在尝试使用 HTTP 2 服务器进行通信OkHttp http square github io okhttp client 添加到 Maven POM
  • 动态覆盖首选字符串本地化以进行测试

    使用 iPhone 模拟器中的 设置 应用程序切换语言是测试本地化调整的 PITA 方法 我正在尝试找出一种在我的应用程序中使用调试设置动态切换本地化 en fr es etc 的方法 而无需重新启动应用程序 NSBundle 提供了从任意