Die Verwendung von verschiedenen Schriftarten für verschiedene Sprachen in einer iOS-Anwendung?
Ich bin in einem Szenario, wo ich will, um verschiedene Schriftarten für verschiedene Sprachen in meinem iOS-Anwendung.
Zuerst habe ich daran gedacht, mit lokalisierten Versionen von .ttf-Dateien. Ich versucht, indem die lokalisierte .ttf-Dateien in den lokalisierten Projekt-Ordner für verschiedene Sprachen mit dem gleichen Namen und schriftart-Namen installiert. Es hat nicht funktioniert.
Dann sah ich in der InfoPlist.strings-Dateien für die verschiedenen Sprachen. Es erschien mir als der Schlüssel-Wert-Kombination für den "Schlüssel", strings fand in der Haupt-Info.plist. Ich fand den font-Eintrag gegen die key 'UIAppFonts' wurde ein array. Ich bin nicht in der Lage, um herauszufinden, wie man die lokalisierten Schriftarten-Datei-Namen in der InfoPlist.Zeichenfolgen als array.
Als letzten Ausweg, ich bin am überlegen, das hinzufügen lokalisierte font-Namen in der Localizable.sticht Dateien wählen Sie die schriftart, die Namen nach dem aktuellen Gebietsschema und ersetzen Sie alle Vorkommnisse in meinem Projekt, wo ich die verwendeten Schriftarten. (Natürlich ist es viel zu umständlich). Wie:
UIFont *font = [UIFont fontWithName:NSLocalizedString(@"font-name", nil) size:16];
Bitte helfen, wenn jemand dies getan hat, bevor. Es wäre toll, wenn irgendwie einer der ersten beiden Ideen umgesetzt werden können.
- mögliche Duplikate von stackoverflow.com/questions/9051658/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eigentlich habe ich dies durch die Zugabe von verschiedenen font-Dateien für die verschiedenen Sprachen in das Projekt und in die plist gegen UIAppFonts. Dann habe ich eingeführt:
in Lokalisierbar.strings für jede unterstützte Sprache
Ich dann zugegriffen mit:
Wie ich bereits in meiner Frage, dass die anderen beiden Ansätze scheinen mehr elegant. Jede Lösung für diejenigen sehr hilfreich.
Sind Sie auf dem richtigen Weg mit UIAppFonts. Zunächst fügen Sie die .ttf-Dateien zu Ihrem Projekt unter dem Ordner "Resources". Dann fügen Sie eine neue Zeile in die Info.plist (nicht InfoPlist.strings?). Sie tun dies durch klicken auf das Plus-Zeichen (+) auf der rechten Seite der letzten Zeile in der plist, oder ich denke, Sie können Control-klicken Sie auf eine andere Eigenschaft, und wählen Sie Neu. Wählen Sie UIAppFonts aus dem Dropdown-Listenfeld in der ersten Spalte, und das sollte einen Pfeil (>) auf der linken Seite ist es. Klicken Sie auf diesen Pfeil, um erweitern Sie die Eigenschaft, und Sie sollten sehen, item0, geben Sie den Namen Ihres .ttf-Datei gibt. Control-klicken Sie auf, um weitere Gegenstände hinzuzufügen wie nötig.
Dies wird fügen Sie Ihren benutzerdefinierten Schriftarten in die Anwendung. Es ist wichtig zu beachten, dass, wenn Sie laden Sie Sie mit fontWithName, den Namen, die Sie liefern, in @"font-name" kann nicht (und IST in der Regel NICHT) den exakt gleichen Namen wie die .ttf-Datei. Vielmehr ist es der ganze name wird in der Schriftart Book unter Vorschau --> Show Font Info.
All das ist in Ordnung, aber es nicht lokalisieren, nichts. Sie könnte so etwas wie die Zeile unten, um eine Abfrage der language code und dann entscheiden, welche schriftart zu laden, auf dieser Basis:
Bestimmte
UIFonts
innerhalb einer app erstellt habe ich eine Erweiterung vonUIButton
undUILabel
. Weil ich hatte das gleiche problem, die Auswahl an verschiedenenUIFonts
für verschiedene Sprachen, die ich auch eingefügt ein Häkchen in meiner extension. Was aussah wie:Diese Weise kannst du immer wechseln
UIFonts
automatisch. Nächste, Sie müssen nur fügen Sie diese Klasse in denInterface Builder
. Wählen Sie dieUIButton
Sie wollen, und fügen Sie Ihre benutzerdefinierteUIButton
Klasse:Für
UILabel
verwenden SiesetText
stattsetTitleLabel" and
setTextColorinstead of
setTitleColor`.Für weitere Informationen zu preferredLanguages Blick auf diese website und natürlich nicht zu vergessen, um Ihre
fonts
um die Projekte und auch dieplist
.