Closed Bug 159809 Opened 22 years ago Closed 20 years ago

Camino defaults to old Mac OS 9 fonts for most non-Western European languages

Categories

(Camino Graveyard :: Preferences, defect)

PowerPC
macOS
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: hsivonen, Assigned: sfraser_bugs)

References

Details

(Keywords: intl)

Attachments

(3 files, 15 obsolete files)

(deleted), patch
jshin1987
: review+
sfraser_bugs
: superreview+
Details | Diff | Splinter Review
(deleted), text/plain; charset=UTF-8
Details
(deleted), text/html
Details
Build: Chimera 0.4

Steps to reproduce:
1) Take a look at the Central European, Baltic and Turkish font prefs.

Actual results:
Chimera defaults to various legacy variants of the Apple core fonts (the
Foo CE fonts in particular). These fonts aren't installed with OS X and
are only available if they have been installed as a part of a language
kit for Classic.

Expected results:
Since the glyphs from the legacy fonts have been migrated to the main
versions of Times, Helvetica etc. and are available via ATSUI, Chimera
should use the same defaults for Central European, Baltic and Turkish as
it does for Western.

Additional info:
The patch from bug 111728 is needed, though.
This is because no-one has bothered to go through the prefs file for Mac OS X,
and figure out which fonts to use. We'd also need a new default prefs file for OS X.
QA Contact: winnie → sairuh
over to simon (with his permission).
Assignee: saari → sfraser
ftang: do we have a list of the Mac OS X preferred fonts for non-Western languages?
Status: NEW → ASSIGNED
For Hebrew, see bug 149796   
This problem (non-optimal default fonts for non-Roman scripts) applies across the board (Greek, Japanese, Chinese ...) -- ideally, copy the defaults from Safari, which has this one nailed.
Why not just fix this simple bug? Henri, can you give us the list of Mac OS X
fonts for CE, Baltic, and Greek? It looks like just  removing 'CE' and 'GR'
would do assuming 'Times', 'Helvetica' and 'Courier' have glyphs for CE and Greek. 
Keywords: intl
I wrote to Debora Goldsmith at Apple to ask for the list of the default fonts
(for all scripts supported by Mac OS X) and she replied that she'd help after
the holiday season (early next year).

*** Bug 273035 has been marked as a duplicate of this bug. ***
Between this bug and the comments about non-Western Euro langs in the (resolved)
bug 183932, it looks like we have info for a fair amount of languages whose font
defaults are wrong, as well as a list of fonts in a default install of 10.2; did
Apple ever reply with its list (comment 7)?

Any chance of one/a few of us putting together a comprehensive list of new
defaults based on the comments and someone whipping up a patch for this?  I
think this should be targeted for at least 1.0, but it's probably simple enough
to make 0.9?
Updating the summary to reflect that it's more than just CE, Baltic, and Turkish
that have bad default fonts (fonts that no longer exist on Mac OS X).
Summary: Chimera defaults to old Central European, Baltic & Turkish fonts → Camino defaults to old Mac OS 9 fonts for most non-Western European languages
smfr: is it really Camino specific?
see also bug84271 - it looks as i'm talking with myself there ;)
(In reply to comment #11)
> smfr: is it really Camino specific?

You bring up an interesting point. I looked into
Camino.app/Contents/MacOS/defaults/pref/all-camino.js and right at the top there
it says:

/*
// Pick some reasonable OS X default fonts
// Note: these have lived here forever, but were never actually used (they
//  were overridden by all.js after being set here). Keeping them just for
//  posterity, but they're unused.
pref("font.name.serif.x-western", "Times");
pref("font.name.sans-serif.x-western", "Lucida Grande");
pref("font.size.variable.x-western", 15);
pref("font.size.fixed.x-western", 12);
pref("font.size.minimum-size.x-western", 10);
*/

notice how a) it's commented out and b) only western fonts are mentioned. 

the file all.js ic contained inside the package as well:
Camino.app/Contents/MacOS/greprefs/all.js - is this a Mozilla file that just
gets pulled during the build process? If so, we still need to change it soon.
If we go to the bottom of the file, we find everything that we need!
// default font name (in UTF8)

pref("font.name.serif.ar", "Lucida Grande");
pref("font.name.sans-serif.ar", "Lucida Grande");
pref("font.name.monospace.ar", "Monaco");
pref("font.name.cursive.ar", "XXX.cursive");
pref("font.name.fantasy.ar", "XXX.fantasy");

pref("font.name.serif.el", "Times GR");
pref("font.name.sans-serif.el", "Helvetica GR");
pref("font.name.monospace.el", "Courier GR");
pref("font.name.cursive.el", "XXX.cursive");
pref("font.name.fantasy.el", "XXX.fantasy");

pref("font.name.serif.he", "Lucida Grande");
pref("font.name.sans-serif.he", "Lucida Grande");
pref("font.name.monospace.he", "Monaco");
pref("font.name.cursive.he", "XXX.cursive");
pref("font.name.fantasy.he", "XXX.fantasy");

pref("font.name.serif.ja", "β€žΓ‰Γ­β€žΓ‰Β©β€žΓ‡Γ†β€žΓ‰Γ©ΓŠΓ²Γ©ΓŠΓΊΓΉ Pro W3"); 
pref("font.name.sans-serif.ja", "β€žΓ‰Γ­β€žΓ‰Β©β€žΓ‡Γ†β€žΓ‰Γ©Γ‹ΓŸΓ­β€žΓ‡Β₯ Pro W3"); 
pref("font.name.monospace.ja", "Osakaβ€šΓ Γ­Γ≠Γ’Γ‚πΓ–"); 
pref("font.name.cursive.ja", "XXX.cursive");
pref("font.name.fantasy.ja", "XXX.fantasy");

pref("font.name.serif.ko", "AppleMyungjo"); 
pref("font.name.sans-serif.ko", "AppleGothic"); 
pref("font.name.monospace.ko", "AppleGothic"); 
pref("font.name.cursive.ko", "XXX.cursive");
pref("font.name.fantasy.ko", "XXX.fantasy");

pref("font.name.serif.th", "Thonburi");
pref("font.name.sans-serif.th", "Krungthep");
pref("font.name.monospace.th", "Ayuthaya");
pref("font.name.cursive.th", "XXX.cursive");
pref("font.name.fantasy.th", "XXX.fantasy");

pref("font.name.serif.tr", "Times");
pref("font.name.sans-serif.tr", "Arial");
pref("font.name.monospace.tr", "CourierR");
pref("font.name.cursive.tr", "XXX.cursive");
pref("font.name.fantasy.tr", "XXX.fantasy");

pref("font.name.serif.x-baltic", "Times CE");
pref("font.name.sans-serif.x-baltic", "Helvetica CE");
pref("font.name.monospace.x-baltic", "Courier CE");
pref("font.name.cursive.x-baltic", "XXX.cursive");
pref("font.name.fantasy.x-baltic", "XXX.fantasy");

pref("font.name.serif.x-central-euro", "Times CE");
pref("font.name.sans-serif.x-central-euro", "Helvetica CE");
pref("font.name.monospace.x-central-euro", "Courier CE");
pref("font.name.cursive.x-central-euro", "XXX.cursive");
pref("font.name.fantasy.x-central-euro", "XXX.fantasy");

pref("font.name.serif.x-cyrillic", "Latinski");
pref("font.name.sans-serif.x-cyrillic", "Pryamoy Prop");
pref("font.name.monospace.x-cyrillic", "APC Courier");
pref("font.name.cursive.x-cyrillic", "XXX.cursive");
pref("font.name.fantasy.x-cyrillic", "XXX.fantasy");

pref("font.name.serif.x-unicode", "Times");
pref("font.name.sans-serif.x-unicode", "Helvetica");
pref("font.name.monospace.x-unicode", "Courier");
pref("font.name.cursive.x-unicode", "Zapfino");
pref("font.name.fantasy.x-unicode", "Lucida Grande");

pref("font.name.serif.x-western", "Times");
pref("font.name.sans-serif.x-western", "Helvetica");
pref("font.name.monospace.x-western", "Courier");
pref("font.name.cursive.x-western", "Zapfino");
pref("font.name.fantasy.x-western", "Lucida Grande");

pref("font.name.serif.zh-CN", "Song");
pref("font.name.sans-serif.zh-CN", "Hei");
pref("font.name.monospace.zh-CN", "Hei");
pref("font.name.cursive.zh-CN", "XXX.cursive");
pref("font.name.fantasy.zh-CN", "XXX.fantasy");

pref("font.name.serif.zh-TW", "Apple LiSung Light"); 
pref("font.name.sans-serif.zh-TW", "Apple LiGothic Medium");  
pref("font.name.monospace.zh-TW", "Apple LiGothic Medium");  
pref("font.name.cursive.zh-TW", "XXX.cursive");
pref("font.name.fantasy.zh-TW", "XXX.fantasy");

// ming_uni.ttf (HKSCS-2001) 
// http://www.info.gov.hk/digital21/eng/hkscs/download/uime.exe
// use Stuffit Expander to unzip it and install ming_uni.ttf
pref("font.name.serif.zh-HK", "Ming(for ISO10646)");
pref("font.name.sans-serif.zh-HK", "Apple LiGothic Medium");  
pref("font.name.monospace.zh-HK", "Apple LiGothic Medium");  
pref("font.name.cursive.zh-HK", "XXX.cursive");
pref("font.name.fantasy.zh-HK", "XXX.fantasy");

the lines after that define sizes, but those don't matter.
All that needs to happen is someone needs to go in and change this file, and
commit the changes. Apart from my comments on Cyrillic fonts in bug273035, we
can take the rest of the fonts from (comment 9) on bug84271 (note: my Cyrillic
list supercedes the one on there because it's more recent and complete). Perhaps
ftang can get in contact with xavier @ apple again to receive a more
complete/comprehensive list.
This requires almost no work! Can we put this into Camino 0.8.2 even?
Thanks!
It's not Camino-specific, no (though I'm not smfr), but I think Mike or Simon
made a comment in a similar bug about leaving it assigned to Camino because
Camino was more likely to do something about fixing it.

That said, I grabbed a bunch of info last night from this bug and bug 183932,
bugs mentioned in this bug and bug 183932, and Paul's list of CY fonts and am
working on comiling a current list of suggested defaults.  I'll cross-check with
bug 84271, too.
(In reply to comment #14)
> It's not Camino-specific, no (though I'm not smfr), but I think Mike or Simon
> made a comment in a similar bug about leaving it assigned to Camino because
> Camino was more likely to do something about fixing it.
> 
> That said, I grabbed a bunch of info last night from this bug and bug 183932,
> bugs mentioned in this bug and bug 183932, and Paul's list of CY fonts and am
> working on comiling a current list of suggested defaults.  I'll cross-check with
> bug 84271, too.

You're right, in bug183932 comment 11, Josh says it's not Camino-only. otoh,
that's good, because it affects all mac products (presumably including Firefox
and Mozilla).
Taking all the current info we have ... can Smokey land a path before 0.8.2
ships and have Mike include it in the shipping version? That'd be awesome!
Thanks again for taking note and working quickly to solve this.
Attached file Fixed list of Mac fonts in all.js (obsolete) (deleted) β€”
OK, so here's the fixed list.  Several comments:
1) I've fixed Arabic, Hebrew, Greek (only Lucida Grande in default install),
Turkish, Baltic, CE and CY.
2) Since bug 84271 comment 9, the Japanese font "display" names have been
Romanized.  (Luckily the *font file* names are still Japanese so I could match
things up!)
3) The Trad. Chinese and Japanese fonts had "style" info in their names in
all.js and this caused them to be reported by Camino as "missing," so I removed
the style info and all is well.
4) I followed the established pattern of "if we can't find an applicable font
for cursive or fantasy, leave it xxx.style", so there are a couple of these
still, but serif, sans-serif, and monospace are defined for all
charsets/locales.
5) Safari uses Papyrus for its Western/CE/Baltic/Turkish/Unicode fantasy font,
which looks a lot more fantastic/interesting than Lucida Grande, so I've
changed those mappings there.
6) Otherwise, unless I knew the pref was wrong/missing or found a specific
suggestion in the other bugs I looked at, I left the fonts alone.
7) I have no idea why Arabic, which fonts are often smaller at the same point
sizes than Roman fonts, was set to smaller sizes than Roman fonts, so I've set
Arabic sizes to match those of the Roman fonts.

I assume to create an actual patch one has to check everything out and run some
magic Unix commands with which I'm unfamiliar, so this attachment is the entire
#ifdef XP_MACOSX section of all.js edited as to reflect the changes.  I assume
that can be pasted into a complete all.js and then the patch can be generated. 
Will someone please make the patch?

Finally, once the patch gets checked in, I believe it resolves bug 84271, bug
153296, and perhaps bug 175651 (at least in terms of the fonts set as default
in all.js).

(Camino-specific question: is this something that can go on the branch and be
rolled out in 0.8.2?  It seems simple enough to me, but I don't have experience
to judge.)

Cheers!
Please do NOT change the default fonts for Hebrew and Arabic (and maybe other
languages), because of bug 246527, you should verify the fonts against each
language, there are some OS bugs here.
(In reply to comment #16)
> Created an attachment (id=167997)
> Fixed list of Mac fonts in all.js
...
> Finally, once the patch gets checked in, I believe it resolves bug 84271, bug
> 153296, and perhaps bug 175651 (at least in terms of the fonts set as default
> in all.js).
> 
> (Camino-specific question: is this something that can go on the branch and be
> rolled out in 0.8.2?  It seems simple enough to me, but I don't have experience
> to judge.)
> 
> Cheers!

Great!
Now someone needs to go through all these bugs and also look at the related bugs
mentioned inside the comments for those bugs. And close many of them, probably.
We also need to see what will happen in other Mozilla products.
Can we get a definitive answer about (comment 17) as well?
Attached file removed a leftover "Light" from LiSung (obsolete) (deleted) β€”
Attachment #167997 - Attachment is obsolete: true
(In reply to comment #17)
> Please do NOT change the default fonts for Hebrew and Arabic (and maybe other
> languages), because of bug 246527, you should verify the fonts against each
> language, there are some OS bugs here.

They all show up in Camino's font-selection menus, so Camino does not appear to
suffer from that bug.  (Moreover, for Arabic the serif/etc. font should be
changed from Lucida Grande because Lucida Grande is not an Arabic font; Geeza
Pro is and shows up in Firefox, too).

Oy, this is a big mess...Firefox sees the Japanese fonts by their Japanese
names, and the Japanese and Chinese fonts *with* the style info.  So if we
change things to fix Camino, we break Firefox and Seamokey and whatnot....

And now Greek doesn't display properly when *set* to Lucida Grande, even if it
uses that when set to something else.  And Thai, which I didn't touch, also
appears to no longer display correctly.

What a mess!
(In reply to comment #20)
> (In reply to comment #17)
> > Please do NOT change the default fonts for Hebrew and Arabic (and maybe other
> > languages), because of bug 246527, you should verify the fonts against each
> > language, there are some OS bugs here.
> 
> They all show up in Camino's font-selection menus, so Camino does not appear to
> suffer from that bug.  (Moreover, for Arabic the serif/etc. font should be
> changed from Lucida Grande because Lucida Grande is not an Arabic font; Geeza
> Pro is and shows up in Firefox, too).

They are shown because we camino uses the native font-dialog, but they just do
not work (because the gfx core doesn't know to handle them). I was messing with
the obselte gfx code in bug 120401, not fun.
Attached file Carbon-friendly, Cocoa-breaking version (obsolete) (deleted) β€”
OK, this listing reverts Chinese, Japanese, Arabic and Hebrew to the existing
settings to make Carbon apps happy (but leaves the font settings invalid for
Camino).  Also reverts Greek because the new setting failed to work in Camino.

However, this still fixes CE, CY, Baltic, Turkish and the fantasy font for
Roman languages for both sets of apps.

Nothing new should be broken, but not everything will be fixed for Camino. 
Should now be a safe source for a patch.
If you want, i can produce a patch from your last font list.
(In reply to comment #23)
> If you want, i can produce a patch from your last font list.

No one else seems to be jumping on it, so that would be much appreciated. 
Thanks for the layman's explanation in Comment 21, too...I now "understand"
what's going on and will stop saying mean things about the Carbon apps :-)
See Attachment 168059 [details] to Bug 84271 for a test webpage.  

I'm starting to think that Thai suffers from bug 246527, too (since I didn't
touch it and it still seems messed up in the three styles where it has an
explicit definition) and perhaps its core serif/sans/mono should be reassigned
to xxx.serif, xxx.sans-serif and xxx.courier (assinging to Lucida Grande will
work in Firefox but still leaves gibberish in Camino).
(In reply to comment #25)

> I'm starting to think that Thai suffers from bug 246527, too [...]
> (assinging to Lucida Grande will
> work in Firefox but still leaves gibberish in Camino).

Assigning the Thai fonts to Lucida Grande is working now in Camino; I don't know
what was going on before.  Leaving them the assigned (Thai) fonts does produce
gibberish instead of Thai in both Fx and Cm (aka, I think, bug 246527).

I'll attach a new "pseudo" all.js with the three Thai fonts changed out for
Lucida Grande so that if someone wants to make a patch.  It will completely fix
CE, CY, Baltic, Turkish and the fantasy font for Roman languages for both sets
of apps (as before) and now partially-fix Thai (at least make it display
characters rather than gibberish, just as we're doing now with Arabic, Hebrew,
and Greek).
Attached file Revised version of Mac fonts list in all.js (obsolete) (deleted) β€”
As noted above, this fixes CE, CY, Baltic, Turkish default fonts and the
fantasy font for Roman languages as well as makes sure that Thai is legible by
backing out the existing Thai fonts and replacing them with Lucida Grande.
Attachment #168007 - Attachment is obsolete: true
"Times GR" "Helvetica GR" "Courier GR" do'nt exist in MacOS X.
CJK fonts and "Lucida Grande" only have Greek Alphabet fully.
(In reply to comment #28)
> "Times GR" "Helvetica GR" "Courier GR" do'nt exist in MacOS X.
> CJK fonts and "Lucida Grande" only have Greek Alphabet fully.

The problem with explicitly setting Greek to Lucida Grande is that Greek
displays as gibberish in that case (at least in Camino, see comments 20 and 22).
 I didn't try the CJK fonts; it would be quite an odd solution.  

What happens when these are left set to fonts thad don't exist is that either
Gecko or the OS "falls back" to a font that will display the
language/characters.  For Greek that's Lucida Grande and it actually displays
properly as a fallback font; I'm not sure why it doesn't when explicitly set as
the Greek font.

The other argument for leaving the existing font names there is that for people
who have upgraded their Macs and have those fonts, they'll be used (and thus
reflect the serif/sans/mono differences.  For everyone else, Lucida Grande will
be used as a fallback font and will display properly.
Some (all?) of the CJK fonts have full-width glyphs for Greek chars. Those are
truly ugly for displaying Greek text.
Hmmm...

How soon will this be integrated into a nightly or release version? The changes
have been made by Smokey...what's next?
Comment on attachment 172542 [details]
Revised version of Mac fonts list in all.js


>pref("font.name.serif.el", "Times GR");
>pref("font.name.sans-serif.el", "Helvetica GR");
>pref("font.name.monospace.el", "Courier GR");
>pref("font.name.cursive.el", "XXX.cursive");
>pref("font.name.fantasy.el", "XXX.fantasy");

Greek: Why the missing "GR" fonts and not Lucida Grande?

>pref("font.name.serif.he", "Lucida Grande");
>pref("font.name.sans-serif.he", "Lucida Grande");
>pref("font.name.monospace.he", "Monaco");
>pref("font.name.cursive.he", "XXX.cursive");
>pref("font.name.fantasy.he", "XXX.fantasy");

Hebrew: is there a better monospace choice than Monaco?

>pref("font.name.serif.ja", "ヒラギノ明朝 Pro W3"); 
>pref("font.name.sans-serif.ja", "ヒラギノ角ゴ Pro W3"); 
>pref("font.name.monospace.ja", "Osaka−等幅"); 
>pref("font.name.cursive.ja", "XXX.cursive");
>pref("font.name.fantasy.ja", "XXX.fantasy");

Japanese: I guess Camino needs "Hiragino Mincho Pro" here currently.

>pref("font.name.serif.ko", "AppleMyungjo"); 
>pref("font.name.sans-serif.ko", "AppleGothic"); 
>pref("font.name.monospace.ko", "AppleGothic"); 
>pref("font.name.cursive.ko", "XXX.cursive");
>pref("font.name.fantasy.ko", "XXX.fantasy");

Korean: looks ok.

>pref("font.name.serif.th", "Lucida Grande");
>pref("font.name.sans-serif.th", "Lucida Grande");
>pref("font.name.monospace.th", "Lucida Grande");
>pref("font.name.cursive.th", "XXX.cursive");
>pref("font.name.fantasy.th", "XXX.fantasy");

Thai: looks OK

>pref("font.name.serif.tr", "Times");
>pref("font.name.sans-serif.tr", "Helvetica");
>pref("font.name.monospace.tr", "Courier");
>pref("font.name.cursive.tr", "Zapfino");
>pref("font.name.fantasy.tr", "Papyrus");

Turkish: any point in defaulting to Lucida Grande here?

>pref("font.name.serif.x-baltic", "Times");
>pref("font.name.sans-serif.x-baltic", "Helvetica");
>pref("font.name.monospace.x-baltic", "Courier");
>pref("font.name.cursive.x-baltic", "Zapfino");
>pref("font.name.fantasy.x-baltic", "Papyrus");

Baltic: ditto.

>pref("font.name.serif.x-central-euro", "Times");
>pref("font.name.sans-serif.x-central-euro", "Helvetica");
>pref("font.name.monospace.x-central-euro", "Courier");
>pref("font.name.cursive.x-central-euro", "Zapfino");
>pref("font.name.fantasy.x-central-euro", "Papyrus");

CE: ditto.

>pref("font.name.serif.x-cyrillic", "Times CY");
>pref("font.name.sans-serif.x-cyrillic", "Helvetica CY");
>pref("font.name.monospace.x-cyrillic", "Monaco CY");
>pref("font.name.cursive.x-cyrillic", "XXX.cursive");
>pref("font.name.fantasy.x-cyrillic", "Charcoal CY");

Cyrillic: looks OK

>pref("font.name.serif.x-unicode", "Times");
>pref("font.name.sans-serif.x-unicode", "Helvetica");
>pref("font.name.monospace.x-unicode", "Courier");
>pref("font.name.cursive.x-unicode", "Zapfino");
>pref("font.name.fantasy.x-unicode", "Papyrus");

Unicode: ok

>pref("font.name.serif.x-western", "Times");
>pref("font.name.sans-serif.x-western", "Helvetica");
>pref("font.name.monospace.x-western", "Courier");
>pref("font.name.cursive.x-western", "Zapfino");
>pref("font.name.fantasy.x-unicode", "Papyrus");

Western: OK

>pref("font.name.serif.zh-CN", "Song");
>pref("font.name.sans-serif.zh-CN", "Hei");
>pref("font.name.monospace.zh-CN", "Hei");
>pref("font.name.cursive.zh-CN", "XXX.cursive");
>pref("font.name.fantasy.zh-CN", "XXX.fantasy");

Simp. chinese (Mandarin): OK

>pref("font.name.serif.zh-TW", "Apple LiSung Light"); 
>pref("font.name.sans-serif.zh-TW", "Apple LiGothic Medium");  
>pref("font.name.monospace.zh-TW", "Apple LiGothic Medium");  
>pref("font.name.cursive.zh-TW", "XXX.cursive");
>pref("font.name.fantasy.zh-TW", "XXX.fantasy");

Trad. chinese: OK

>// ming_uni.ttf (HKSCS-2001) 
>// http://www.info.gov.hk/digital21/eng/hkscs/download/uime.exe
>// use Stuffit Expander to unzip it and install ming_uni.ttf
>pref("font.name.serif.zh-HK", "Ming(for ISO10646)");
>pref("font.name.sans-serif.zh-HK", "Apple LiGothic Medium");  
>pref("font.name.monospace.zh-HK", "Apple LiGothic Medium");  
>pref("font.name.cursive.zh-HK", "XXX.cursive");
>pref("font.name.fantasy.zh-HK", "XXX.fantasy");

Cantonese: Is there an installed font that will work?
> Cantonese: Is there an installed font that will work?

Not that I know of. My query to Apple hasn't been answered for over a year. 
Anyway, can you help me with bug 221919? There are a few langGroups (and more
are coming. see bug 237434 and bug 248690) that need to be added to Camino font
pref. UI 
sorry for bug spam. it's bug 222919 (adding zh-HK to the font pref. UI of Camino)
First, note that this is technically a core bug (all.js) but Mike/Josh earlier
said to keep it assigned to Camino because we were more likely to do something
to fix it.

Unfortunately, there are bugs blocking "complete and proper" fixes of font prefs
for Arabic, Hebrew, and apparently Greek and Thai, too--at least for fixes that
keep both Camino and Firefox happy; some of these choices make the prefs "less
broken" or enable the fallback mechanism to work properly.  (Bug 246527 needs
some serious love!)

This will, however, completely fix CE, Baltic, Turkish, and Cyrillic.

At least as I understand things from empirical observation and Asaf Romano's
explanations.

Attachment 168059 [details] in bug 84271 is what I constructed for empirical
observations/testing.

(In reply to comment #32)
> (From update of attachment 172542 [details] [edit])
> 
> Greek: Why the missing "GR" fonts and not Lucida Grande?

Because explicitly setting it to Lucida Grande causes Camino to display
gibberish rather than Greek.  See comment 29 for my full logic.  Is there a
better option?

> Hebrew: is there a better monospace choice than Monaco?

Hebrew suffers from bug 246527, so Asaf Romano wants us to leave it alone. 
There's a bug (two of them for Hebrew and one for Arabic, actually) for getting
better Hebrew defaults once bug 246527 is fixed/worked-around and Gfx:Mac can
interpret Mac Hebrew (and Arabic and other) fonts.

> Japanese: I guess Camino needs "Hiragino Mincho Pro" here currently.

According to bug 175651 comment 14, Gecko needs the Carbon font name (not the
file name), and supposedly Carbon returns the Japanese name, not the English.  I
haven't tested this theory since your last fix in bug 175651, etc., though--and
I'd really like to hear from a (native) speaker who can recognize the difference
than simply trusting my eye. :-)

> Thai: looks OK

Note that once bugs are fixed, there are actual OS X Thai fonts that need to be
replaced here.  See comment 26 and bug 225217.

> Turkish/Baltic/CE: any point in defaulting to Lucida Grande here?

Nope; Apple merged the CE/Turkish/Baltic variants into the "standard" Roman
fonts in Mac OS X.

> Cantonese: Is there an installed font that will work?
 
I defer to our zh-HK readers, but this is what's in the existing all.js.  I just
included the whole Mac OS X section of the file because I have no idea how to
make a patch. :-)
*** Bug 166971 has been marked as a duplicate of this bug. ***
Zapfino has wildly unconventional metrics, which makes it a bad choice for a
generic family. I suggest using Apple Chancery as the cursive font instead.
re comment #35:

> According to bug 175651 comment 14, Gecko needs the Carbon font name (not the
> file name), and supposedly Carbon returns the Japanese name, not the English.

That's the case not only of Japanese but also TC, SC and Korean. I just
confirmed it. Currently, Camino and Firefox/Suite use two different font
enumeration APIs so that they cannot share font preference. What is good for
Camino doesn't work for firefox/Suite and vice versa. Mac:Gfx code needs a lot
of love....



(In reply to comment #37)
> Zapfino has wildly unconventional metrics, which makes it a bad choice for a
> generic family. I suggest using Apple Chancery as the cursive font instead.

See bug 183932 for an explanation.  Interestingly, that's the font Apple seems
to use for Safari, though I don't know what happens when one doesn't have
Classic installed.

I put in some more time on the remaining non-CJK problems this afternoon, and I
think I have a better solution for Greek (that at least in my case works in Cm
0.8.2 and 20050305 0.8+ and Fx 1.0.1 and 20050306-trunk 1.0+ with fresh profiles).

This is my testing methodology: 

1) take the #ifdef XP_MACOSX section from my attachment (revised version to
follow), paste it over the #ifdef XP_MACOSX section in
<appname>/Contents/MacOS/greprefs/all.js (this is where all.js is delivered in
the final Mac builds)

2) delete existing ~/Library/Application Support/<appname> folder to ensure a
fresh profile

3) launch <appname> and view CSS testcase (Attachment 168059 [details] in bug 84271;
revised version to follow)

As I noted, for me this fixes Greek and Thai (it's now a complete duplicate of
the "work-around" fix Asaf Romano applied for Hebrew and Arabic; since Greek and
Thai fonts seem to suffer from bug 246527 also, that makes sense).

However, I noticed that the fantasy font for Roman script languages, Papyrus
(Apple's choice in Safari) does not "show up" when delivered via all.js.  Camino
claims the font is "Geneva" and visually it is some odd serif--Times New Roman,
maybe?; Fx doesn't have a UI for fantasy but also displays the same odd serif. 
If I change the font manually to Papyrus (either via the UI in Cm or via
user_pref("font.name.fantasy.x-western", "Papyrus");
in prefs.js in Fx, Papyrus displays as expected.

A) Can some Gecko guru explain to me why a font that works properly otherwise is
replaced by "Geneva" displaying as Times NR when assigned via all.js?
LXR returns three gfx/mac hits for Geneva, so I'm guessing one of those is
wonky? <http://lxr.mozilla.org/mozilla/search?string=Geneva>

B) Can others follow my testing methodology and confirm that Greek and Thai
display as Greek and Thai in all five categories now (and that everything else,
non-CJK, seems OK)?  (And correct my methodology if it's wrong?)

If A and B are resolved/confirmed OK, then I think we have a list that fixes,
within the bounds of open bugs like bug 246527, all the non-CJK font defaults
(CJK are fine in Fx but not in Cm yet).  Hopefully we could get a patch ready
and landed before Cm 0.8.3/0.9 and Fx 1.1....

Revised Mac OS X section of all.js and testcase forthcoming.
Attached file Revised version of Mac fonts list in all.js (v2) (obsolete) (deleted) β€”
Attachment #172542 - Attachment is obsolete: true
Attached file Revised version of Mac fonts list in all.js (v2.1) (obsolete) (deleted) β€”
Er, viewing the attachment in bugzilla shows some spurious blank lines.  This
v2.1 removes them.  Sorry for the extra noise.
Attachment #176517 - Attachment is obsolete: true
*** Bug 175626 has been marked as a duplicate of this bug. ***
As per the discussion on bug 166971 and my personal testing, I think it's safe
to change the "Times CY" for Cyrillic to regular "Times New Roman". However, the
other fonts should be left alone for now...I don't think anything else works
(I'm assuming we're dropping 10.1 support? if not let's have three versions, one
each for 10.1, 10.2, and 10.3. I say this because I have a feeling that the
whole "one font includes all character sets" hasn't always been that way and
Apple has been quietly adding character sets in each OS version. This would need
lots of testing though....).
Side note: We need to come up with a Cursive russian font. It doesn't need to
actually be cursive, but it needs to display text correctly (which it currently
doesn't) and be different from the 3 others already used. The list again, here
for convenience:
Charcoal CY, Geneva CY, Helvetica CY, Monaco CY, and Times CY (the actual
filenames contain no spaces and have a .dfont extension). Note that we decided
to drop Times CY and use Times New Roman instead (at least on 10.2+), and
Monaco, Helvetica, and Charcoal are used for other kinds of text. Which leaves
us with Geneva, really.
So.
Change the serif font to "Times New Roman" and the cursive font to "Geneva".
If anyone knows more than I do, please speak! I might post this on some Russian
Mac user forums.
Attached file Revised version of Mac fonts list in all.js (v2.2) (obsolete) (deleted) β€”
Here's a new attachment with my suggestions. Smokey, can you make the previous
one obsolete?
Also, I just noticed - is there a reason why we're using "Times" as opposed to
"Times New Roman" (in othe other charsets)? I know that only the latter has the
Cyrillic charset.
(In reply to comment #46)
> Created an attachment (id=176640) [edit]
> Revised version of Mac fonts list in all.js (v2.2)
> 
> Also, I just noticed - is there a reason why we're using "Times" as opposed to
> "Times New Roman" (in othe other charsets)? I know that only the latter has the
> Cyrillic charset.

The standard version of Times New Roman shipped with Mac OS X (at least through
10.3) does not contain any CY glyphs.  We can't set a default font that doesn't
ship with Mac OS X (or, as shipped, doesn't contain the glyphs); that's why
we're using Times CY.  Attachment 108609 [details] from bug 183932 lists all fonts present
in a default install of 10.2 (strangely Geneva CY is not present in that list;
it is, however, on my 10.3 Mac).
(In reply to comment #47)
> (In reply to comment #46)
> > Also, I just noticed - is there a reason why we're using "Times" as opposed to
> > "Times New Roman" (in othe other charsets)? I know that only the latter has the
> > Cyrillic charset.
> 
> The standard version of Times New Roman shipped with Mac OS X (at least through
> 10.3) does not contain any CY glyphs.  We can't set a default font that doesn't
> ship with Mac OS X (or, as shipped, doesn't contain the glyphs); that's why
> we're using Times CY.  Attachment 108609 [details] [edit] from bug 183932 lists all
fonts present
> in a default install of 10.2 (strangely Geneva CY is not present in that list;
> it is, however, on my 10.3 Mac).

Indeed. That list seems to be incorrect. The list to which I was referring was
the one I compiled myself, on bug 273035, which can be also found on Apple
Russia's Support Page, which explains how to install Russian fonts on your
system: http://www.apple.ru/support/cyrillic/russian2x102.html
I am also assuming that all Apple comps sold through authorized dealers in
Russia come with these fonts installed.
My thoughts about TNR come from bug 166971, in which Vladimir mentions this
font. In addition, if I pull up the Character Palette and select a Cyrillic
character and then choose "Show only fonts containing selected character" (this
in 10.2), I only have Times CY and TNR show up. Interestingly, Verdana also
shows up in this list but doesn't work (I've tested that TNR does - could it
have been added by MS Office 2004?).
On a side note" bug 166971 isn't really a dupe of this one. First, it only deals
with Mozilla. Second, it talks about font selection, not the default fonts. His
problem was that he was limited in which font he could choose. Camino, in fact,
doesn't even have this restriction.
Attached patch attempt at making a patch using v2.1 with geneva cy (obsolete) (deleted) β€” β€” Splinter Review
THis doesn't seem right to me. Yet I can't seem to notice what I did wrong.
Any tips?
Comment on attachment 176666 [details] [diff] [review]
attempt at making a patch using v2.1 with geneva cy

You're just getting rid of Mac OS X section? 

Anyway, see comment #38. Unless we fix bug 175651, Camino and Firefox can't
share the font preference setting.
I think this should work. Though I have yet to figure out why I had to
partially do this by hand.
Attachment #176666 - Attachment is obsolete: true
Attached patch Possible patch (obsolete) (deleted) β€” β€” Splinter Review
Here we go again. I'm pretty certain this will be my last try...I have also
taken out all of the non-font prefs that follow at the end of the section.
Attachment #176669 - Attachment is obsolete: true
Attachment #176671 - Attachment is obsolete: true
My profuse apologies to all whose mailboxes are now littered with my "patch"
notices. It was worth a try since no one else seemed to be jumping on it. For
now, though, I think I might have to resort to reading the CVS manual on my
spare time.
(In reply to comment #50)
 
> Anyway, see comment #38. Unless we fix bug 175651, Camino and Firefox can't
> share the font preference setting.

Except for CJK, Cm and Fx seem to share fine.  But either bug 175651 has to be
fixed or Cm has to invent another way of delivering the default CJK font prefs :-)

If we land a patch based on v2.1 + Geneva CY, this bug can be considered "fixed"
(within the limits of bug 246527), and Cm then has bug 175651 open to fix its
problem generating CJK font names that Gecko likes.  Correct?

Until Paul figures out cvs diff, I'll attach a clean copy of the #ifdef
XP_MACOSX section in case anyone else wants to take a shot at generating a patch.
Attached file Revised version of Mac fonts list in all.js (v2.3) (obsolete) (deleted) β€”
This is v2.1 + Geneva CY for x-cyrillic.cursive.

N.B. Some of the font sizes have been synched in these lists, in addition to
fixing the font family defaults.
Attachment #176519 - Attachment is obsolete: true
Attachment #176640 - Attachment is obsolete: true
(In reply to comment #54)

> Except for CJK, Cm and Fx seem to share fine.  But either bug 175651 has to be
> fixed or Cm has to invent another way of delivering the default CJK font prefs :-)

We can easily add '#ifdef TOOLKIT_COCOA' (this is a pseudo-code. I have to find
out what 'define' to check) to all.js to set different fonts for Camino and
Firefox. Of course, that's not necessary if we can find out a way to map between
Cocoa and Carbon font names.
Comment on attachment 176681 [details]
Revised version of Mac fonts list in all.js (v2.3)

What are you guys using to edit these files? Mac OS X is a Unix and you're
still generating files with the old Mac classic line-ending convention. 

Anyway, I made a patch based on this, but I realized that you got rid of all
'font.default.xx' (introduced in bug 95227). Please, keep them. (I have to run
now. I may upload a patch with that fixed if you don't fix them)
Mea culpa on the font.default.xx stuff; I was still working with an old copy of
that Mac OS X section.

As for the line-endings, I'm using TextEdit, which I thought defaulted to
Unix-style endings.  I've run this through TextWrangler, had it set
line-endings to Unix and then normalize line endings.  I hope it's fixed this
time. :-)
Attachment #176681 - Attachment is obsolete: true
The MS fonts that come with OS X only cover MacRoman. If you have MS fonts with
larger repertoires, you have either installed the core fonts from SourceForge or
have installed MS Office.

Apple Chancery does not depend on Classic. The .dfont is in /Library/Fonts. (The
font even uses contextual AAT features.)
Attached patch Working patch using version 2.4 of revised OS X fonts (obsolete) (deleted) β€” β€” Splinter Review
I believe this is finally working. I'm not really sure why it wasn't working
before, but whatever.
Let's get this in!
Attachment #177188 - Flags: review?
(In reply to comment #59)

> Apple Chancery does not depend on Classic. The .dfont is in /Library/Fonts. (The
> font even uses contextual AAT features.)

Only in 10.3; I can't find the .dfont anywhere on my 10.2 install disk.  The
only version of Apple Chancery in 10.2 is the Classic font installed with
Classic.  Once Mozilla drops 10.2 support, we can revert Zapfino to Apple
Chancery :-)

Thanks for making the patch, Paul!
Attached patch Patched all.js file with v2.4 of font list (obsolete) (deleted) β€” β€” Splinter Review
Slight typo makes the last patch obsolete...this one should be good.
Attachment #177188 - Attachment is obsolete: true
Attachment #177189 - Flags: review?
Just for the record (Smokey, now you'll be able to do this yourself on other
bugs...), a patch is simply a cvs diff (i.e. file showing the changes made)
between your local (modified) file and the most recent version of the same file
on the server.
First make sure you are logged in...navigate to the folder with the file, and
execute "cvs login" in the Terminal. Press enter when prompted for password.
The command to perform the actual diff is
cvs diff -w -u -b -a FILENAME
-w and -b ignores whitespace; -a forces a textual comparison; and -u gives us
the +/- notation that seems to be used on mozilla.
Good luck!
Comment on attachment 177189 [details] [diff] [review]
Patched all.js file with v2.4 of font list


>-pref("font.size.variable.ar", 15);
>+pref("font.size.variable.ar", 16);
> pref("font.size.fixed.ar", 13);
> 

Do not do this change, quickdraw has an issue with 16px font-size... for some
langauges, including Hebrew, Arabic and Chinese (see also bug 143557 and bug
120401)
Attachment #177189 - Flags: review? → review-
(In reply to comment #16)
> Created an attachment (id=167997) [edit]
> Fixed list of Mac fonts in all.js
> 
> OK, so here's the fixed list.  Several comments:
> ...
> 7) I have no idea why Arabic, which fonts are often smaller at the same point

> sizes than Roman fonts, was set to smaller sizes than Roman fonts, so I've
set
> Arabic sizes to match those of the Roman fonts.

As per comment 64, I'm changing this back and submitting a new patch. The other
(i.e. Hebrew + Chinese) were kept as they were, so only the Arabic is getting
changed back.
Right after this I am also going to upload an updated font list, v2.4.1
Attachment #177189 - Attachment is obsolete: true
Attachment #177195 - Flags: review?
Here's our latest OS X pref file compilation; it is identical to the patch I
just submitted. Smokey, this should supercede the v2.4, so please make that
obsolete.

*crosses fingers to get approval for patch*
Attachment #177196 - Attachment mime type: text/plain → text/plain; charset=UTF-8
Attachment #177188 - Flags: review? → review-
Attached file test case (fixed) (deleted) β€”
attachment 176518 [details] doesn't have 'lang' specified for most langGroups, without
which  it's impossible to test a new font setting. In addition, traditional
Chinese section has a character (U+7232) not usually found in TC fonts (because
that's not a part of Big5. this is an oversight of the author of the origianl
document from which attachment 176518 [details]  was derived). I replaced it with U+70BA
(that is covered by Big5)
Attachment #176518 - Attachment is obsolete: true
Comment on attachment 177195 [details] [diff] [review]
Patched all.js (using v2.4.1 of font list)

I've conducted some tests with both Camino and Firefox. It seems that for now
this is as good as it can get except that Zapfino has really wide metrics (as
pointed out earlier). I like to have Apple Chancery which is available on my OS
10.3.8 I wonder where it came from (I don't think I installed Classic.)

Let's get this in for now and continue to fix other Gfx-Mac issues (there are
several of them including  font.name-list support)

Btw, you have a 'typo' here:

 pref("font.name.cursive.x-western", "Zapfino");
-pref("font.name.fantasy.x-western", "Lucida Grande");
+pref("font.name.fantasy.x-unicode", "Papyrus");

the last line should read

+pref("font.name.fantasy.x-western", "Papyrus");
Attachment #177195 - Flags: superreview?(sfraser_bugs)
Attachment #177195 - Flags: review?
Attachment #177195 - Flags: review+
(In reply to comment #68)
> Btw, you have a 'typo' here:
> 
>  pref("font.name.cursive.x-western", "Zapfino");
> -pref("font.name.fantasy.x-western", "Lucida Grande");
> +pref("font.name.fantasy.x-unicode", "Papyrus");
> 
> the last line should read
> 
> +pref("font.name.fantasy.x-western", "Papyrus");
> 

Should i resubmit the patch? Or should I be able to just "edit" the existing
one? I will make the change in the all.js list as well.
Great! Could this make into a nightly?
I think defaulting to a font (Apple Chancery) that is not available to people
who are still running 10.2 but don't have Classic is less of a problem than
defaulting  to a font with exceedingly weird metrics (Zapfino). The latter has
the potential of rendering the generic cursive family unusable.
(In reply to comment #70)
> I think defaulting to a font (Apple Chancery) that is not available to people
> who are still running 10.2 but don't have Classic is less of a problem than
> defaulting  to a font with exceedingly weird metrics (Zapfino). The latter has
> the potential of rendering the generic cursive family unusable.

If we set AC to default, what would be the fallback font? Lucida Grande?

Also: what's the status on this? Jungshik never got back to me, and the
superreview flag is still a question mark...
(In reply to comment #69)

> Should i resubmit the patch? Or should I be able to just "edit" the existing
> one? I will make the change in the all.js list as well.

No, you don't. It's probably me who's gonna commit it so that I can fix it myself. 

> Great! Could this make into a nightly?

Once sfraser gives his nod, I'll land this. Anyway, I agree that Apple Chancery
is better. Currently, it's set to 'fantasy(xx)' so that setting it to 'Apple
Chancery' we'd not  lose  anything compared with the current setting (even where
'Apple Chancery' is not available). 
Attachment #177195 - Flags: superreview?(sfraser_bugs) → superreview+
fix landed on the trunk with 'Apple Chancery' in place of 'Za...'

Do we want to land this on branches? I guess we do..

Status: ASSIGNED → RESOLVED
Closed: 20 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: