【问题标题】:How to localize iMessage stickers?如何本地化 iMessage 贴纸?
【发布时间】:2016-12-07 14:31:43
【问题描述】:

我正在创建一个 iMessage 贴纸包扩展,其中包含包含文本的贴纸。我在 Xcode 中没有看到任何用于本地化贴纸的选项?可以本地化贴纸吗?

【问题讨论】:

    标签: ios imessage-extension


    【解决方案1】:

    也许这很明显,但您可以在扩展程序中对其进行管理。如果您创建的不是包,而是扩展,则可以为您的本地化获取准确的贴纸

    【讨论】:

      【解决方案2】:

      如果您想显示不同的贴纸资产,例如取决于您的设备语言,您需要创建 iMessage 应用程序而不是贴纸包应用程序。 而且您需要编写一些代码,因为在简单的贴纸包应用程序中不可能有这种行为。

      不过,这很简单。首先,请遵循本教程: http://blog.qbits.eu/ios-10-stickers-application/

      那里的一些代码语法已经过时,但 XCode 将帮助您轻松修复它。

      您可以将本地化资源放在不同的文件夹中,然后将它们拖放到您的 XCode 项目中(确保选中“创建文件夹引用”): Screenshot of project structure

      然后您可以在您的viewDidLoad() 中执行类似的操作:

      //-- get current language set
          var imageSetPath = "/EN";   //-- default to english
      
          let languageCode = NSLocale.preferredLanguages[0]
          if      languageCode.hasPrefix("zh-Hans") { imageSetPath = "/CNS"   }
          else if languageCode.hasPrefix("zh-Hans") { imageSetPath = "/CNT"   }
          else if languageCode.hasPrefix("ko")      { imageSetPath = "/KR"    }
          else if languageCode.hasPrefix("ja")      { imageSetPath = "/JP"    }
      
          //-- load localized stickers
          imageUrls = recursivePathsForResources(path: Bundle.main.bundlePath + imageSetPath, type: "png")
          loadStickers(urls: imageUrls)
      

      在哪里

      func recursivePathsForResources(path: String, type: String) -> [URL] {
          // Enumerators are recursive
          let enumerator = FileManager.default.enumerator(atPath: path)
          var filePaths = [URL]()
      
          while let filePath = enumerator?.nextObject() as? String {
              if NSURL(fileURLWithPath: filePath).pathExtension == type {
                  let url = URL(fileURLWithPath: path).appendingPathComponent(filePath)
                  filePaths.append(url)
              }
          }
          return filePaths
      }
      

      (由https://stackoverflow.com/a/5860015/6649403更改)

      【讨论】:

        猜你喜欢
        • 2017-06-14
        • 1970-01-01
        • 1970-01-01
        • 2017-12-05
        • 1970-01-01
        • 2017-04-19
        • 1970-01-01
        • 2018-12-25
        • 2016-11-21
        相关资源
        最近更新 更多