Closed Bug 204586 Opened 21 years ago Closed 20 years ago

unrecognized lang tag should be regarded as x-unicode instead of x-western

Categories

(Core :: Internationalization, defect)

defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 256383

People

(Reporter: jshin1987, Assigned: jshin1987)

Details

(Keywords: intl)

Attachments

(1 file)

This bug is related with bug 91190, but is different.

Currently, unrecognized lang tags are regarded as x-western [1]. Howeer, I think
it's better to regard them as x-unicode because most, if not all, languages
covered by ISO-8859-1/ISO-8859-15 are listed in 
http://lxr.mozilla.org/seamonkey/source/intl/locale/src/langGroups.properties

When a lang tag is not listed there, it's much more likely that it's
only supported by Unicode than that it's supported by ISO 8859-1/15.  Now that
Mozilla-Win can properly display Indic scripts (and Mozilla-Xft will follow
it soon : see bug 204439, bug 204286), there should be ways to 
designate separate fonts for those scripts. At the moment, when
a page is tagged as 'ta' (Tamil), fonts to render the page come
from fonts for x-western (only if the coverage of western fonts is not 
sufficient, other fonts are searched for). Therefore, Tamil speakers
have to set fonts for Western to specify fonts to render Tamil
pages (tagged with 'ta') with. It's not very intuitive.

There are three ways to solve this problem.

  1. Add a whole bunch of lang tags to langGroups.properties mapping 
     them to x-unicode lang group. This is not such a good idea because
     eventually (#3 below) we have to map them to their own langgroup.
     [0]

  2. Fix 
http://lxr.mozilla.org/seamonkey/source/intl/locale/src/nsLanguageAtomService.cpp#187
[1]
     to assign x-unicode to unrecognized lang tags instead of x-western.
     It has to be checked whether this has any unexpected result somewhere.

  3. Add new lang tags to pref-fonts.xul and pref-fonts.dtd [2] as support for
     them are added. This is a bit tricky because the list of supported scripts
     are platform-dependent. On Win2k/XP, virtually all scripts supported by
Win2k/XP
     are also supported by Mozilla. On other platforms, Mozilla is not quite
there yet.

I think we have to push forward #2 and #3 in parallel.   

[0] IMHO, 'script(name/group)' would have been a better choice than 'langgroup'.
'x-dv' would be a scriptgroup not just for Hindi(hi) but also for other
languages written with Devanagari just as 'x-western'(latin1), 'x-baltic',
'x-centraleuro', and 'x-cyrillic' are for a number of European languages.   

[1]
http://lxr.mozilla.org/seamonkey/source/intl/locale/src/nsLanguageAtomService.cpp#197

197       res = mLangGroups->GetStringFromName(lowered.get(),
getter_Copies(langGroupStr));
198       if (NS_FAILED(res)) {
199         PRInt32 hyphen = lowered.FindChar('-');
200         if (hyphen >= 0) {
201           nsAutoString truncated(lowered);
202           truncated.Truncate(hyphen);
203           res = mLangGroups->GetStringFromName(truncated.get(),
getter_Copies(langGroupStr));
204           if (NS_FAILED(res)) {
205             langGroupStr.Assign(NS_LITERAL_STRING("x-western"));
206           }
207         } else {
208           langGroupStr.Assign(NS_LITERAL_STRING("x-western"));
209         }
 
[2]   
http://lxr.mozilla.org/seamonkey/source/xpfe/components/prefwindow/resources/content/pref-fonts.xul#66
      
http://lxr.mozilla.org/seamonkey/source/xpfe/components/prefwindow/resources/locale/en-US/pref-fonts.dtd
Attached patch a patchSplinter Review
I added several European and African languages supported by X-Western
langgroup to langGroups.properties file. I also changed the default
langGroup for unrecognized lang tags to  x-unicode.
As I mentioned earlier, this will enable speakers of those languages to 
set fonts to use when viewing lang-tagged web pages in UTF-8 by
setting fonts for X-unicode (instead of x-western) until we add them
to font preference menu.
If this changes get in, we have to release-note that 'Unicode' fonts
have to be set  to controll fonts for pages lang-tagged with languages not
belonging to those covered by font-pref. menu. They include but not are limited
to  languages written with Tamil, Bengali, and other Indic scripts. Otherwise,
they have to change Western fonts, which is not desriable in most cases because
Western European text had better be rendered  with  high-quality Latin fonts
refined over the years instead of non-Latin fonts that happen to cover Latin
letters. 

Needless to say, as more and more web pages are put up in Unicode, this is not
the best either (because European text in Unicode will be rendered with
less-than-optimal fonts). Therefore, we have to implement item #3 soon. The only
roadblock is the platform-dependent coverage of scripts. I wnoder if 
platform-dependent xul overlay can solve this problem. 
Implementing #1 and #3 alone doesn't work. Gfx ports for different platforms
have different ways of selecting fonts based on langGroup and currently most of
Gfx ports support only 'major' scripts (Latin, Greek, Cyrillic, CJK, Thai,
Hebrew and Arabic). I filed bug 206123 for Gfx-Win on this issue. In my patch to
bug 204039, I partly fixed it for Tamil and Devanagari. 
langGroups.properties changes were already checked in.
I forgot I had filed this bug and filed bug 256383 where I uploaded a patch and
asked for r/sr.

*** This bug has been marked as a duplicate of 256383 ***
Status: NEW → RESOLVED
Closed: 20 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: