2017-06-19 2 views
1

Comment puis-je définir les langues prises en charge par l'application ios? Par exemple, j'utilise NSDate pour obtenir le jour actuel. Si la langue du périphérique est différente de celle des langues prises en charge, NSDateFormatter renvoie "jour" dans la langue de l'appareil, mais je souhaite obtenir l'anglais si je ne supporte pas cette langue.Emplacement de l'application ios

Je sais qu'il existe un moyen d'obtenir le jour dans un langage spécifique en utilisant NSLocal, mais je ne veux pas le faire car j'ai aussi besoin de convertir d'autres chaînes.

Répondre

0

La pomme documentation couvre ce joli clairement. Je sais que tout ce dont vous avez besoin est le mot "jour", mais ce qui suit vous aidera à inclure n'importe quel mot pour n'importe quelle langue:

1) Vous devez placer tous les mots (String s) dans votre application en un seul fichier .swift. Chaque mot doit être retourné dans une fonction qui convertit cette chaîne dans la chaîne localisée par NSLocal ensemble de l'appareil dans les paramètres de l'appareil:

struct Localization { 
    static let all: String = { 
     return getLocalized("All") 
    }() 
    static let allMedia: String = { 
     return getLocalized("All Media") 
    }() 
    static let back: String = { 
     return getLocalized("Back") 
    }() 

    // ...and do this for each string 

} 

2) Ce fichier doit également contenir une fonction statique qui convertira la chaîne:

static func getLocalized(_ string: String) -> String { 
    return NSLocalizedString(string, comment: "") 
} 

Ici, la méthode NSLocalizedString( fera tout le travail de levage pour vous. Si se penchera sur le fichier .XLIFF (nous y reviendrons) dans votre projet et saisir la chaîne correcte par l'appareil NSLocale. Cette méthode inclut également un "commentaire" pour indiquer au traducteur de langage ce qu'il doit faire avec le paramètre "chaîne" que vous lui avez transmis.

3) En examinant toutes les chaînes que vous avez placées dans votre fichier .swift, vous devez inclure chacune d'elles dans un .XLIFFfile. C'est le fichier qu'un expert en langues devra parcourir et inclure le mot correctement traduit par chaîne dans le .XLIFF. Comme je l'ai déjà dit, c'est le fichier qui a déjà été inclus dans votre projet, la méthode NSLocalizedString( va chercher ce fichier et récupérer la bonne chaîne traduite pour vous.

Et c'est tout! Et si je dois obtenir la ville de l'utilisateur en utilisant CLGeocoder.

+0

Il renvoie la ville de l'utilisateur dans une langue de l'appareil. Je dois utiliser uniquement les langues prises en charge. –