Мой клиент дал мне собственный шрифт TTF только для английского языка. Поэтому я намерен загрузить этот TTF только для английского языка, а для других языков он должен использовать доступный системный шрифт.
Я делаю следующие шаги:
- Регистрация шрифтов в моем приложении. Копирую в папку Resources и добавляю в свой проект.
Загрузка шрифта с именем.
NSMutableDictionary * aTitleAttributes = [[[NSMutableDictionary alloc] initWithObjectsAndKeys: [NSFont fontWithName:CP_FONT_NAME size:[NSFont systemFontSize]], NSFontAttributeName, aParagraphStyle, NSParagraphStyleAttributeName, nil] autorelease];
Но это приводит к другой проблеме, поскольку я загружаю шрифты таким образом для всех языков, мой текст локализации выглядит английским. Поэтому я думаю, что у меня должно быть какое-то условие, например
NSFont *font = nil;
If (currentLocaleIsEnglish()) {
/// font to load my custom TTF
}
Then use [NSFont fontwithName:font ...]
Так может ли кто-нибудь помочь мне понять, что все, что я делаю, правильно с регистрацией шрифта в приложении. Если да, то как я могу зарегистрировать свой шрифт только для английской версии. Поскольку для других локалей этот шрифт недоступен, тогда NSFont::fontWithName
вернет nil и автоматически вернется к SystemFont, и, следовательно, моя локаль будет отображаться правильно.
В противном случае у меня должно быть условие, подобное тому, что я упомянул выше, что является грубым способом сделать. Если да, то как я могу написать такой API для поиска английского языка currentLocale?
NSFont::fontWithName
. Правильная сигнатура метода —+[NSFont fontWithName:]
— обратите внимание на +, который указывает, что это метод класса, и на :, который указывает, что он принимает один аргумент. - person Peter Hosey   schedule 29.11.2009