2016-12-07 1 views

Répondre

1

Peut-être que c'est évident, mais vous pouvez le gérer à l'intérieur d'une extension. Si vous ne créez pas un pack, mais une extension, vous pouvez récupérer des autocollants pour votre localisation.

1

Si vous souhaitez afficher différents autocollants dépendants, par ex. Dans la langue de votre appareil, vous devez créer une application iMessage au lieu d'une application Sticker Pack. Et vous devez écrire du code car il n'est pas possible d'avoir ce comportement dans une simple application Sticker Pack.

Cependant, ceci est assez simple. Pour commencer, suivez ce tutoriel: http://blog.qbits.eu/ios-10-stickers-application/

Une syntaxe de code est obsolète, mais XCode vous aidera à résoudre ce problème.

Vous pouvez placer vos ressources localisées dans différents dossiers et les projets que vous en simple glisser-déposer XCode (assurez-vous de vérifier « créer des références de dossier »): Screenshot of project structure

Vous pouvez faire quelque chose comme cela dans votre 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 
} 

(modifié à partir https://stackoverflow.com/a/5860015/6649403)