J'aimerais qu'une application inclue une police personnalisée pour rendre le texte, la charger, puis l'utiliser avec des UIKit
éléments standard comme UILabel
. Est-ce possible?
J'aimerais qu'une application inclue une police personnalisée pour rendre le texte, la charger, puis l'utiliser avec des UIKit
éléments standard comme UILabel
. Est-ce possible?
Réponses:
iOS 3.2 et versions ultérieures prennent en charge cela. Directement à partir du document Quoi de neuf dans iPhone OS 3.2 :
Prise en charge des polices personnalisées Les
applications qui souhaitent utiliser des polices personnalisées peuvent désormais inclure ces polices dans leur ensemble d'applications et enregistrer ces polices auprès du système en incluant la clé UIAppFonts dans leur fichier Info.plist. La valeur de cette clé est un tableau de chaînes identifiant les fichiers de polices dans le bundle de l'application. Lorsque le système voit la clé, il charge les polices spécifiées et les met à la disposition de l'application.
Une fois les polices définies dans le Info.plist
, vous pouvez utiliser vos polices personnalisées comme n'importe quelle autre police dans IB ou par programme.
Il existe un fil conducteur sur les forums des développeurs Apple:
https://devforums.apple.com/thread/37824 (connexion requise)
Et voici un excellent et simple tutoriel en 3 étapes sur la façon d'y parvenir (lien cassé supprimé)
Info.plist
fichier appelée UIAppFonts
.UIAppFonts
tableauInfo.plist
[UIFont fontWithName:@"CustomFontName" size:12]
pour obtenir la police personnalisée à utiliser avec vos UILabels et UITextViews , etc.Aussi: Assurez-vous que les polices sont dans vos ressources de bundle de copie.
Modifier: à partir d'iOS 3.2, cette fonctionnalité est intégrée. Si vous devez prendre en charge la version antérieure à 3.2, vous pouvez toujours utiliser cette solution.
J'ai créé un module simple qui étend UILabel
et gère le chargement des fichiers .ttf. Je l'ai publié opensource sous la licence Apache et l'ai mis sur github ici.
Les fichiers importants sont FontLabel.h
et FontLabel.m
.
Il utilise une partie du code de la réponse de Genericrich .
Parcourez la source ici.
OU
Copiez votre fichier de police dans les ressources
Ajoutez une clé à votre Info.plist
fichier appelée UIAppFonts. ("Polices fournies par l'application)
Faire de cette clé un tableau
Pour chaque police dont vous disposez, entrez le nom complet de votre fichier de police (y compris l'extension) en tant qu'éléments du tableau UIAppFonts
sauver Info.plist
Maintenant, dans votre application, vous pouvez simplement appeler [UIFont fontWithName:@"CustomFontName" size:15]
pour obtenir la police personnalisée à utiliser avec votre UILabels
et UITextViews
, etc.
Il existe un moyen simple d'utiliser des polices personnalisées dans iOS 4 .
Chalkduster.ttf
) au dossier Ressources du projet dans XCode.info.plist
et ajoutez une nouvelle clé appelée UIAppFonts
. Le type de cette clé doit être un tableau.Chalkduster.ttf
).[UIFont fontWithName:@"Chalkduster" size:16]
dans votre application.Malheureusement, IB ne permet pas d'initialiser les étiquettes avec des polices personnalisées. Consultez cette question pour résoudre ce problème. Ma solution préférée consiste à utiliser une UILabel
sous-classe personnalisée :
@implementation CustomFontLabel
- (id)initWithCoder:(NSCoder *)decoder
{
if (self = [super initWithCoder: decoder])
{
[self setFont: [UIFont fontWithName: @"Chalkduster" size: self.font.pointSize]];
}
return self;
}
@end
Dans Info.plist, ajoutez l'entrée "Polices fournies par l'application" et incluez les noms de police sous forme de chaînes:
Fonts provided by application
Item 0 myfontname.ttf
Item 1 myfontname-bold.ttf
...
Vérifiez ensuite que votre police est incluse en exécutant:
for (NSString *familyName in [UIFont familyNames]) {
for (NSString *fontName in [UIFont fontNamesForFamilyName:familyName]) {
NSLog(@"%@", fontName);
}
}
Notez que le nom de votre fichier ttf peut ne pas être le même que celui que vous utilisez lorsque vous définissez la police de votre étiquette (vous pouvez utiliser le code ci-dessus pour obtenir le paramètre "fontWithName"):
[label setFont:[UIFont fontWithName:@"MyFontName-Regular" size:18]];
modifier: Cette réponse est obsolète depuis iOS3.2; utiliser UIAppFonts
La seule façon dont j'ai réussi à charger des UIFont
s personnalisés est via le framework GraphicsServices privé.
Les éléments suivants chargeront toutes les .ttf
polices du bundle principal de l'application:
BOOL GSFontAddFromFile(const char * path);
NSUInteger loadFonts()
{
NSUInteger newFontCount = 0;
for (NSString *fontFile in [[NSBundle mainBundle] pathsForResourcesOfType:@"ttf" inDirectory:nil])
newFontCount += GSFontAddFromFile([fontFile UTF8String]);
return newFontCount;
}
Une fois les polices chargées, elles peuvent être utilisées comme les polices fournies par Apple:
NSLog(@"Available Font Families: %@", [UIFont familyNames]);
[label setFont:[UIFont fontWithName:@"Consolas" size:20.0f]];
GraphicsServices peut même être chargé au moment de l'exécution au cas où l'API disparaîtrait à l'avenir:
#import <dlfcn.h>
NSUInteger loadFonts()
{
NSUInteger newFontCount = 0;
NSBundle *frameworkBundle = [NSBundle bundleWithIdentifier:@"com.apple.GraphicsServices"];
const char *frameworkPath = [[frameworkBundle executablePath] UTF8String];
if (frameworkPath) {
void *graphicsServices = dlopen(frameworkPath, RTLD_NOLOAD | RTLD_LAZY);
if (graphicsServices) {
BOOL (*GSFontAddFromFile)(const char *) = dlsym(graphicsServices, "GSFontAddFromFile");
if (GSFontAddFromFile)
for (NSString *fontFile in [[NSBundle mainBundle] pathsForResourcesOfType:@"ttf" inDirectory:nil])
newFontCount += GSFontAddFromFile([fontFile UTF8String]);
}
}
return newFontCount;
}
[NSString sizeWithFont:[UIFont fontWithName:@"customFont" size:14]];
renvoie 0 largeur et hauteur pour toutes les polices personnalisées que j'ai essayées.
Avec iOS 8
+ et Xcode 6
+, vous pouvez le faire facilement. Voici les étapes:
1) Faites glisser et déposez votre police dans le Xcode
dossier Fichiers de support. N'oubliez pas de marquer votre application dans la section Ajouter aux cibles . À partir de ce moment, vous pouvez utiliser cette police IB
et la choisir dans la palette de polices.
2) Pour rendre cette police disponible dans votre appareil, ouvrez votre info.plist
et ajoutez la Fonts provided by application
clé. Il contiendra la clé de l'élément 0, vous devez ajouter votre nom de police comme valeur. Le nom de la police peut varier du nom de votre fichier de police. Mais d'abord, essayez d'ajouter votre nom de fichier dans la plupart des cas, cela fonctionne.
Sinon, cet article m'a toujours aidé.
Voici un extrait rapide du code de cet article pour vous aider à trouver votre nom de police.
func allFonts(){
for family in UIFont.familyNames(){
println(family)
for name in UIFont.fontNamesForFamilyName(family.description)
{
println(" \(name)")
}
}
}
Je tiens à mentionner que vous devez ajouter des fichiers de polices aux phases de construction de votre cible , copier les ressources de l'ensemble . Sans cela, vous ne verrez pas votre police sur l'appareil. Et cela pourrait conduire à un comportement inattendu.
Par exemple, je rencontre une bug
, quand UITextField
j'ai une police personnalisée, mais cette police n'était pas dans les ressources du bundle de copie . Et quand je me connecte à viewcontroller
ceci textfield
, il y a un délai d'environ 4 secondes avant que la viewDidLoad
fonction soit appelée. La résolution des problèmes de police a supprimé ce délai. Donc, recommandez de le vérifier deux fois. (rdar: // 20028250) Btw, je n'ai pas pu reproduire le bogue, mais je suis sûr que ce problème était lié à la police.
J'ai fait ça comme ceci:
Chargez la police:
- (void)loadFont{
// Get the path to our custom font and create a data provider.
NSString *fontPath = [[NSBundle mainBundle] pathForResource:@"mycustomfont" ofType:@"ttf"];
CGDataProviderRef fontDataProvider = CGDataProviderCreateWithFilename([fontPath UTF8String]);
// Create the font with the data provider, then release the data provider.
customFont = CGFontCreateWithDataProvider(fontDataProvider);
CGDataProviderRelease(fontDataProvider);
}
Maintenant, dans votre drawRect:
, faites quelque chose comme ceci:
-(void)drawRect:(CGRect)rect{
[super drawRect:rect];
// Get the context.
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextClearRect(context, rect);
// Set the customFont to be the font used to draw.
CGContextSetFont(context, customFont);
// Set how the context draws the font, what color, how big.
CGContextSetTextDrawingMode(context, kCGTextFillStroke);
CGContextSetFillColorWithColor(context, self.fontColor.CGColor);
UIColor * strokeColor = [UIColor blackColor];
CGContextSetStrokeColorWithColor(context, strokeColor.CGColor);
CGContextSetFontSize(context, 48.0f);
// Create an array of Glyph's the size of text that will be drawn.
CGGlyph textToPrint[[self.theText length]];
// Loop through the entire length of the text.
for (int i = 0; i < [self.theText length]; ++i) {
// Store each letter in a Glyph and subtract the MagicNumber to get appropriate value.
textToPrint[i] = [[self.theText uppercaseString] characterAtIndex:i] + 3 - 32;
}
CGAffineTransform textTransform = CGAffineTransformMake(1.0, 0.0, 0.0, -1.0, 0.0, 0.0);
CGContextSetTextMatrix(context, textTransform);
CGContextShowGlyphsAtPoint(context, 20, 50, textToPrint, [self.theText length]);
}
Fondamentalement, vous devez faire une boucle de force brute à travers le texte et faire des recherches avec le numéro magique pour trouver votre décalage (ici, voyez-moi en utilisant 29) dans la police, mais cela fonctionne.
De plus, vous devez vous assurer que la police est juridiquement intégrable. La plupart ne le sont pas et il y a des avocats spécialisés dans ce genre de choses, alors soyez prévenu.
CGContextShowTextAtPoint()
- bien que cela ne fonctionne pas avec UTF-8.
Oui, vous pouvez inclure des polices personnalisées. Reportez-vous à la documentation sur UIFont, en particulier à la fontWithName:size:
méthode.
1) Assurez-vous d'inclure la police dans votre dossier de ressources.
2) Le "nom" de la police n'est pas nécessairement le nom du fichier.
3) Assurez-vous que vous avez le droit légal d'utiliser cette police. En l'incluant dans votre application, vous le distribuez également et vous devez avoir le droit de le faire.
Si vous utilisez xcode 4.3
, vous devez ajouter font
à la Build Phase
sous Copy Bundle Resources
, selon https://stackoverflow.com/users/1292829/arne dans le fil, des polices personnalisées Xcode 4.3 . Cela a fonctionné pour moi, voici les étapes que j'ai suivies pour que les polices personnalisées fonctionnent dans mon application:
OTF
(ou TTF
) fichiers dans un nouveau groupe que j'ai créé et accepté le choix de xcode copying the files over to the project folder
.UIAppFonts
tableau avec vos polices répertoriées comme éléments dans le tableau. Juste l' names
extension, pas l'extension (par exemple " GothamBold
", " GothamBold-Italic
").project name
chemin en haut de la Project Navigator
partie gauche de l'écran.Build Phases
onglet qui apparaît dans la zone principale de xcode.Copy Bundle Resources
section " " et cliquez sur "+"
pour ajouter la police."+"
.add to the project
.Voici les instructions étape par étape pour le faire. Pas besoin de bibliothèque supplémentaire ou de codage spécial.
http://shang-liang.com/blog/custom-fonts-in-ios4/
La plupart du temps, le problème vient de la police et non de la méthode. La meilleure façon de le faire est d'utiliser une police qui fonctionnera à coup sûr, comme verdana ou geogia. Modifiez ensuite la police souhaitée. Si cela ne fonctionne pas, le nom de la police n'est peut-être pas correct ou la police n'est pas bien formatée.
Il est très facile d'ajouter une nouvelle police sur votre application iOS existante.
Vous avez juste besoin d'ajouter la police par exemple font.ttf dans votre dossier de ressources.
Ouvrez votre application info.plist
. Ajoutez une nouvelle ligne en tant que "Polices fournies par l'application" et tapez le nom de la police en tant que font.ttf.
Et lorsque vous définissez la police, faites comme setFont:"corresponding Font Name"
Vous pouvez vérifier si votre police est ajoutée ou non par NSArray *check = [UIFont familyNames];
.
Il renvoie toutes les polices prises en charge par votre application.
Je recommanderais de suivre l'un de mes courts tutoriels préférés ici: http://codewithchris.com/common-mistakes-with-adding-custom-fonts-to-your-ios-app/ d'où proviennent ces informations.
Étape 1 - Faites glisser votre .ttf ou .otf du Finder vers votre projet
REMARQUE - Assurez-vous de cocher la case «Ajouter aux cibles» sur la cible de votre application principale
Si vous avez oublié de cliquer pour l'ajouter à votre cible, cliquez sur le fichier de police dans la hiérarchie de votre projet et sur le panneau de droite, cliquez sur la cible principale de l'application dans la section Appartenance à la cible
Pour vous assurer que vos polices font partie de la cible de votre application, assurez-vous qu'elles apparaissent dans vos ressources de bundle de copie dans les phases de construction
Étape 2 - Ajoutez les noms des fichiers de polices à votre Plist
Accédez aux propriétés cibles iOS personnalisées dans votre section d' informations et ajoutez une clé aux éléments de cette section appelée Fonts provided by application
(vous devriez la voir apparaître comme une option lorsque vous la tapez et elle se configurera comme un tableau. Cliquez sur la petite flèche pour ouvrir les éléments du tableau et saisir les noms des fichiers .ttf ou .otf que vous avez ajoutés pour faire savoir à votre application qu'il s'agit des fichiers de police que vous souhaitez mettre à disposition
REMARQUE - Si votre application se bloque juste après cette étape, vérifiez l'orthographe des éléments que vous ajoutez ici
Étape 3 - Découvrez les noms de vos polices pour pouvoir les appeler
Très souvent, le nom de police vu par votre application est différent de ce que vous pensez qu'il est basé sur le nom de fichier de cette police, mettez-le dans votre code et consultez le journal de votre application pour voir quel nom de police appeler dans votre code
Rapide
for family: String in UIFont.familyNames(){
print("\(family)")
for names: String in UIFont.fontNamesForFamilyName(family){
print("== \(names)")
}
}
Objectif c
for (NSString* family in [UIFont familyNames]){
NSLog(@"%@", family);
for (NSString* name in [UIFont fontNamesForFamilyName: family]){
NSLog(@" %@", name);
}
}
Votre journal devrait ressembler à ceci:
Étape 4 - Utilisez votre nouvelle police personnalisée en utilisant le nom de l'étape 3
Rapide
label.font = UIFont(name: "SourceSansPro-Regular", size: 18)
Objectif c
label.font = [UIFont fontWithName:@"SourceSansPro-Regular" size:18];
Il n'est pas encore sorti, mais la prochaine version de cocos2d (framework de jeu 2d) prendra en charge les polices bitmap de longueur variable comme cartes de caractères.
http://code.google.com/p/cocos2d-iphone/issues/detail?id=317
L'auteur n'a pas de date de sortie précise pour cette version, mais j'ai vu une publication qui indiquait que ce serait dans le mois ou les deux prochains.
Une remarque importante: vous devez utiliser le "nom PostScript" associé à la police, pas son nom complet ou son nom de famille. Ce nom peut souvent être différent du nom normal de la police.
suivez cette étape
1) Copiez votre police dans votre projet
2) ouvrez votre .plist
fichier en mode code source ... (Remarque - Ne pas ouvririnfo.plist
)
3) Avant cela - Faites un clic droit sur votre police et ouvrez-la dans fontforge ou un éditeur similaire et install
dans votre système, il devrait êtreinstall
4) Tapez ceci
<key>UIAppFonts</key>
<array>
<string>MyriadPro.otf</string>
</array>
5) Tapez ce code dans votre class .m
[lblPoints setFont:[UIFont fontWithName:@"Myriad Pro" size:15.0]];
Ici, les lblPoints seront modifiés en fonction de votre UILabel
Terminé!! Si votre police ne fonctionne toujours pas, vérifiez d'abord la compatibilité de vos polices
info.plist
?
Peut-être que l'auteur a oublié de donner à la police un nom Mac FOND ?
Vous pouvez également essayer l'option "Apple" dans la boîte de dialogue d'exportation.
AVERTISSEMENT : je ne suis pas un développeur IPhone!
J'ai essayé les différentes suggestions de cette page sur iOS 3.1.2 et voici mes conclusions:
La simple utilisation [UIFont fontWithName:size:]
avec les polices du répertoire Resources ne fonctionnera pas, même si le nom FOND est défini à l'aide de FontForge.
[UIFont fontWithName:size:]
fonctionnera si les polices sont chargées en premier à l'aide de GSFontAddFromFile. Mais GSFontAddFromFile
ne fait pas partie d'iOS 3.1.2, il doit donc être chargé dynamiquement comme décrit par @rpetrich.
Chercher ATSApplicationFontsPath
Une entrée plist simple qui vous permet d'inclure le (s) fichier (s) de police dans votre dossier de ressources d'application et ils "fonctionnent" simplement dans votre application.
J'ai combiné certains des conseils de cette page en quelque chose qui fonctionne pour moi sur iOS 5.
Tout d'abord, vous devez ajouter la police personnalisée à votre projet. Ensuite, vous devez suivre les conseils de @iPhoneDev et ajouter la police à votre fichier info.plist.
Après cela, cela fonctionne:
UIFont *yourCustomFont = [UIFont fontWithName:@"YOUR-CUSTOM-FONT-POSTSCRIPT-NAME" size:14.0];
[yourUILabel setFont:yourCustomFont];
Cependant, vous devez connaître le nom Postscript de votre police. Suivez simplement les conseils de @Daniel Wood et appuyez sur commande-i pendant que vous êtes dans FontBook.
Ensuite, profitez de votre police personnalisée.
Ajoutez d'abord la police au format .odt à vos ressources, dans ce cas, nous utiliserons DINEngschriftStd.otf, puis utilisez ce code pour affecter la police à l'étiquette
[theUILabel setFont:[UIFont fontWithName:@"DINEngschriftStd" size:21]];
Pour vous assurer que votre police est chargée sur le projet, appelez simplement
NSLog(@"Available Font Families: %@", [UIFont familyNames]);
Sur le .plist, vous devez déclarer la police. Ajoutez simplement un enregistrement «Polices fournies par l'application» et ajoutez une chaîne d'élément 0 avec le nom de la police (DINEngschriftStd.otf)
Pour iOS 3.2 et supérieur: utilisez les méthodes fournies par plusieurs ci-dessus, qui sont:
[UIFont fontWithName:@"Real Font Name" size:16]
dans votre application.MAIS Le "vrai nom de police" n'est pas toujours celui que vous voyez dans Fontbook. La meilleure façon est de demander à votre appareil quelles polices il voit et quels sont les noms exacts.
J'utilise le uifont-name-grabber publié sur: uifont-name-grabber
Déposez simplement les polices que vous souhaitez dans le projet xcode, ajoutez le nom du fichier à sa liste et exécutez-le sur le périphérique pour lequel vous construisez, il vous enverra par e-mail une liste complète des polices en utilisant les noms UIFont fontWithName:
attendus.
Il existe une nouvelle façon d'utiliser des polices personnalisées, à partir d'iOS 4.1. Il vous permet de charger des polices dynamiquement, que ce soit à partir de fichiers inclus avec l'application, de données téléchargées ou de tout ce que vous avez. Il vous permet également de charger des polices selon vos besoins, tandis que l'ancienne méthode les charge toutes au démarrage de l'application, ce qui peut prendre trop de temps si vous avez plusieurs polices.
La nouvelle méthode est décrite sur ios-dynamic-font-loading
Vous utilisez la CTFontManagerRegisterGraphicsFont
fonction, en lui donnant un tampon avec vos données de police. Il est ensuite disponible pour UIFont
et des vues Web, tout comme avec l'ancienne méthode. Voici l'exemple de code de ce lien:
NSData *inData = /* your font-file data */;
CFErrorRef error;
CGDataProviderRef provider = CGDataProviderCreateWithCFData((CFDataRef)inData);
CGFontRef font = CGFontCreateWithDataProvider(provider);
if (! CTFontManagerRegisterGraphicsFont(font, &error)) {
CFStringRef errorDescription = CFErrorCopyDescription(error)
NSLog(@"Failed to load font: %@", errorDescription);
CFRelease(errorDescription);
}
CFRelease(font);
CFRelease(provider);
kCTFontManagerErrorAlreadyRegistered
«le fichier a déjà été enregistré dans la portée spécifiée». developer.apple.com/library/ios/#documentation/Carbon/Reference/…
Ajoutez les polices requises à votre projet (tout comme l'ajout d'images, faites simplement glisser vers Xcode), assurez-vous qu'elles sont ciblées sur votre projet,
ajoutez cette méthode et chargez des polices personnalisées (recommandé dans appDelegate didFinishLaunchingWithOptions
)
func loadFont(filePath: String) {
let fontData = NSData(contentsOfFile: filePath)!
let dataProvider = CGDataProviderCreateWithCFData(fontData)
let cgFont = CGFontCreateWithDataProvider(dataProvider)!
var error: Unmanaged<CFError>?
if !CTFontManagerRegisterGraphicsFont(cgFont, &error) {
let errorDescription: CFStringRef = CFErrorCopyDescription(error!.takeUnretainedValue())
print("Unable to load font: %@", errorDescription, terminator: "")
}
}
Exemple d'utilisation:
if let fontPath = NSBundle.mainBundle().pathForResource("My-Font", ofType: "ttf"){
loadFont(fontPath)
}
Utilisez la police:
UIFont(name: "My-Font", size: 16.5)
Vous pouvez ajouter les fichiers "FONT" requis dans le dossier des ressources. Allez ensuite sur le projetInfo.plist
fichier et utilisez la CLÉ "Polices fournies par l'application" et la valeur "NOM DE LA POLICE".
Ensuite, vous pouvez appeler la méthode [UIFont fontwithName:@"FONT NAME" size:12];
Bien que certaines des réponses ci-dessus soient correctes, j'ai écrit un didacticiel visuel détaillé pour les personnes ayant encore des problèmes avec les polices.
Les solutions ci-dessus qui vous indiquent d'ajouter la police à la liste et d'utiliser
[self.labelOutlet setFont:[UIFont fontWithName:@"Sathu" size:10]];
sont les bons. Veuillez maintenant utiliser toute autre méthode de piratage. Si vous rencontrez toujours des problèmes pour trouver et ajouter des noms de police, voici le didacticiel -
Utilisation de polices personnalisées dans l'application iOS
oui, vous pouvez utiliser une police personnalisée dans votre application
étape par étape qui suit:
Ajoutez vos fichiers de polices personnalisés dans votre projet dans les fichiers de prise en charge
Ajoutez une clé à votre fichier Info.plist appelée UIAppFonts.
Faire de cette clé un tableau
Pour chaque police dont vous disposez, entrez le nom complet de votre fichier de police (y compris l'extension) en tant qu'éléments du tableau UIAppFonts
Save Info.plist Maintenant dans votre application, vous pouvez simplement appeler [UIFont fontWithName: @ "votre nom de police personnalisé" taille: 20] pour obtenir la police personnalisée à utiliser avec vos UILabels après avoir appliqué ceci si vous n'obtenez pas la police correcte, puis vous double-cliquez sur la police personnalisée, et voyez attentivement le nom de la police du haut est en cours et copiez cette police, collez-la ici [UIFont fontWithName: @ "ici après votre nom de police personnalisé" taille: 20]
j'espère que vous obtiendrez la bonne réponse
oui, vous pouvez utiliser une police personnalisée dans votre application
étape par étape qui suit:
Info.plist
fichier appelée UIAppFonts.Info.plist
maintenant dans votre application, vous pouvez simplement appeler [UIFont fontWithName:@"your Custom font Name" size:20]
pour obtenir la police personnalisée à utiliser avec votreUILabels
après avoir appliqué ceci si vous n'obtenez pas la police correcte, vous double-cliquez sur la police personnalisée et voyez attentivement le nom de la police du haut est en train de venir et copiez cette police, collez, ici [UIFont fontWithName:@" here past your Custom font Name" size:20]
j'espère que vous obtiendrez la bonne réponse