Localization 我可以更改Apple Watch模拟器语言吗?

Localization 我可以更改Apple Watch模拟器语言吗?,localization,watchkit,apple-watch,Localization,Watchkit,Apple Watch,是否可以更改Apple Watch模拟器的区域设置?我想测试我的手表应用程序的本地化。我可以在iPhone模拟器上更改语言,但手表模拟器总是用英语。我找不到任何语言设置: 不幸的是,此时您似乎无法更改手表模拟器中的语言。在设备上,它位于iPhone Watch应用程序的General->Language&Region下。然而,在iPhone模拟器上,甚至没有通用部分的选项。以下是Watch应用程序下显示的所有内容: 您不能更改Apple Watch模拟器的区域设置,但可以更改手表应用程序的区域

是否可以更改Apple Watch模拟器的区域设置?我想测试我的手表应用程序的本地化。我可以在iPhone模拟器上更改语言,但手表模拟器总是用英语。我找不到任何语言设置:


不幸的是,此时您似乎无法更改手表模拟器中的语言。在设备上,它位于iPhone Watch应用程序的General->Language&Region下。然而,在iPhone模拟器上,甚至没有通用部分的选项。以下是Watch应用程序下显示的所有内容:


您不能更改Apple Watch模拟器的区域设置,但可以更改手表应用程序的区域设置。我用它来测试本地化。要更改应用程序区域设置,请编辑手表应用程序方案:运行->选项->应用程序语言-选择语言并重新运行Apple Watch应用程序。

Run | Options |应用程序语言

不幸的是,它只能在Xcode 7.2上工作,不能在Xcode 7.1上工作。没有其他已知的可能性

编辑


有一个全新的语言和语言环境自动化测试库。它被称为
自动化
。可以找到文档。

我发表了我的评论,以获得更具可读性的格式

希望这是一个“可行”的解决办法

  • 创建不同的本地化文件:英语、法语、西班牙语、中文
  • 在此处本地化所有元素
  • 然后,打开英文文件
  • 将要测试的语言内容复制到当前的英文文本之后(该文本将取代当前的英文文本)
  • 若要返回英语,请删除此添加的外来文本
我测试过了,它能工作

我只是得到一个错误日志,没有明显的后果

监视扩展[3520:334638][default]-[SPRemoteInterface\u InterfaceControllerClient ForControllerID::2140:ComF:interfaceControllerID的客户端标识:DC00003未找到

但这足以在模拟器上测试本地化


删除额外的文本将清除错误。

当然,无论是通过Watch Simulator UI还是iOS Simulator Watch app都不可能,但您可以从位于以下位置的iOS Simulator文件夹复制值:

/data/Library/Preferences/.GlobalPreferences.plist

到手表模拟器中的同一文件

Plist要查找的关键点:

  • AppleScale
  • AppleLanguages
  • AppleKeyboards
    • 我改进了这个答案。

    • 将目录更改为您的模拟器设备。例如/用户/用户名/库/开发者/核心模拟器/设备
    • 检测你的手表模拟器。我在构建之后使用了
      ls-trl
      命令。例如046D5EDA-1808-4BE2-A16E-04DF0324B032
    • plutil-convert xml1./046D5EDA-1808-4BE2-A16E-04DF0324B032/data/Library/Preferences/.GlobalPreferences.plist-o change_global.plist
    • 编辑希望vim使用的change_global.plist AppLanguages部分。我想使用ja,所以它就像
      AppleLanguages ja
    • 将change_global.plist改为./046D5EDA-1808-4BE2-A16E-04DF0324B032/data/Library/Preferences/.GlobalPreferences.plist。如
      cp change\u global.plist./046D5EDA-1808-4BE2-A16E-04DF0324B032/data/Library/Preferences/.GlobalPreferences.plist
    • 重新启动模拟器
      @克林,你有没有让它工作过?重新启动Xcode似乎对我没用。@Jordan,不幸的是没有。@ken你运行的是什么版本的Xcode?试图找出为什么它对某些人有效而对其他人无效。@Jordan我正在使用XCode 7.3运行
      11.2.1版(11B53)
      ,但它对我无效。。我删除了所有的模拟器并重新设置了它们,但没有改变任何东西。只是一个关于赏金的说明-一个只在本地化模式下运行应用程序的解决方案是好的。目前,这似乎都不可能。你可以使用-这是一个语言和位置自动化库testing@xenteros除了iOS,而不是watchOS…使用Xcode 10.1,这似乎可以在模拟iPhone/iPad的Watch应用程序中实现。问题是它通常会告诉你它与手表没有连接。我一次成功地为一块手表设置了语言,但无法复制它。@Koraktor,好消息,我们又向前迈进了一步。不幸的是,我已经在运行Xcode 7.3了。除非这是你的意思,而不是7.1,否则它似乎不起作用。重新启动etc似乎无法解决问题。还有什么我可以尝试的吗?好的,澄清一下-你是说它在7.2中有效,在7.3中是一种回归?只有在实际有效的情况下才会投票:-)。。。你发布的框架不起作用。watchOS尚不支持UITests。在当前的模拟器中,出现了选项,但当您尝试时,它会显示“此设备未与此apple watch配对”,这可能是一个解决办法-创建所有本地化文件:英语、法语等-在英语文件中,将要测试的语言内容附加在英语文本之后。-若要返回英语,请删除此添加的外来文本。瞧,转眼间,手表模拟器出现了严重的失误!我测试过了,它能工作。只需获取一个错误日志,没有明显的后果-未找到Watch Extension[3520:334638][default]-[SPRemoteInterface\u InterfaceControllerClientId ForControllerId:]:2140:ComF:interfaceControllerID的clientIdentifier:DC00003。删除额外文本将清除错误。在iOS模拟器中,您可以在“设置”>“常规”>“语言和区域”>“iPhone语言”中更改语言。就像你在设备上做的一样。我已经在iOS sim卡上更改了语言,并尝试按照你的建议去做。我在watchOS sim中打开了
      .GlobalPreferences.plist
      ,不幸的是,
      AppleLocale
      AppleLanguages
      键没有显示在那里。不管怎样,你的想法很好。不用担心,科林,只要从iOS plist复制过来看plist;)重新启动手表模拟器后,哟