Le module Text Manager permet d'avoir tous les textes de votre application centralisés dans un seul endroit via un fichier au format JSON.
De cette façon, aucun texte n'est en dur dans l'application et peut être directement modifiable en ligne. Cela évite d'avoir recours à une mise à jour d'une application pour un simple changement de texte.
Si une modification de texte est faite, les changements seront effectifs dés le prochain lancement de l'application (en mode connecté).
1. Format du JSON
Le format du JSON est simple, il se présente sous la forme de Clef - Valeur :
{
"nom" : "Apps",
"prenom" : "Panel",
"dateDeNaissance" : "mai 2016",
"citation" :"Apps par ci Apps partout",
"humeur" : "joyeuse"
}
Règles de nommage :
Les clefs commencent par une minuscule, chaque nouveau mot par une majuscule sans espace. Les caractères autorisés sont [a-z][A-Z] : pas de chiffres, de caractères spéciaux ou d'accents acceptés.
Accessible sur le BO depuis : Tools/Configurer mon App/ Gestion des Strings
http://bo.apps-panel.com/config/strings/
Fichier de Sortie :
Le fichier de sortie doit s'appeler apnl_strings_XX.json où XX correspond à la langue des textes.
Se référer à la table IOS 639-1 pour le code en 2 lettres
http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
ex :
apnl_strings_fr.json
apnl_strings_en.json
Ainsi, vous pouvez avoir plusieurs JSON ce qui vous permet de gérer une application multilingue, le fichier sera sélectionné automatiquement selon la langue mise en préférence par l'utilisateur sur son support.
2. Intégration pour le SDK Android
Les fichiers JSON sont à placer dans à la racine du dossier assets de votre application.
1. Méthodes disponibles
public static void setTextHashMap(String language, APTextManagerCallback callbackInterface)
public static int numberOfKey()
public static String stringForKey(String key)
2. Intégration
Initialisation
A placer généralement dans au démarrage de votre première activity après initialisation du SDK
APTextManager.setTextHashMap("fr", null)
Comportement : Chargement du des textes depuis le serveur si il existe sinon recherche d'un fichier en local.
Si la langue passée en paramètre n’existe pas ou n’est pas diponible, alors la langue pardéfaut sera chargée (ie la langue du device).
Utilisation
NSLog(@"Nombre de clefs dans le dictionnaire : %d",[APTextManager numberOfKeys]);
NSLog(@"%@",[APTextManager stringForKey:@"MaJolieClef"]);
3. Callback
Il est possible de savoir quand le SDK a terminé (ou s'il a échoué) de télécharger le fichier de string grâce à la classe APTextManagerCallback:
public interface APTextManagerCallback {
/**
* Check file from server begin
*/
public void downloadBegin();
/**
* Check file from server finished
*/
public void downloadFinished();
}