Sun Java Solaris Communities My SDN Account Join SDN
 
FAQ

General

 

The answers below refer to the latest release of Solaris, unless otherwise indicated.

General Internationalization

  1. What is the GADC?
  2. What are Globalization, Internationalization, and Localization?
  3. What are G11N, I18N, and L10N?
  4. Is there an API call that detects which locale is used, and one that returns the number of bytes in a character?
  5. Which Korean character sets do UNIX terminals support?
  6. How are codepoints composed on a Korean keyboard?
  7. How are invalid code points displayed?
  8. What are the key sequences for typing accented characters in the Latin-1 codeset on the x86 Solaris platform?
  9. What is the International Standard (ISO) 216 paper size system?
  10. What standard is used to describe money? If ISO covers this, what is the ISO number?
  11. Does Sun support the KBD and Extended "curses" (libcurses, libcurses32.a)?
  12. How do I know if a specific character is Chinese?
  13. How do you input the composite character on Solaris using a PC keyboard?
  14. How can I add fonts to Solaris?

  1. What is the GADC?

    The Sun Global Application Developer Corner (GADC) is a collection of information and resources to help developers globalize their applications. Resource material, sample code, testing tools, and useful links provide information for developers to learn more about globalization. The GADC is an updated web version of the CD-ROM Global Application Developer Kit 1.0 (GADK).

    Back to Top


  2. What are Globalization, Internationalization, and Localization?

    Globalization is a product development and marketing approach which ensures that software products are usable in the world's major markets, and is acheived through a combination of internationalization and localization.

    Internationalization is the process of designing and implementing software to transparently handle different cultural and linguistic conventions without additional modification.

    Localization is the process of developing cultural-specific software components and translations that can be accessed by internationalized software at runtime. Software must be internationalized before it is localized.

    Back to Top


  3. What are G11N, I18N, and L10N?

    Globalization, Internationalization, and Localization are commonly abbreviated as g11n, i18n, and l10n, using the number of letters between the first and last letter as a placeholder.

    Back to Top


  4. Is there an API call that tells which locale is used, and one that returns the number of bytes in a character?

    Use the setlocale() call to check which locale is in use, by passing a null pointer as the second argument to query the current locale. For reference, see the man page for setlocale().

    If a locale is set up correctly, mblen() will return the correct number of bytes for either a single byte or multibyte character.

    Back to Top


  5. Which Korean character sets do UNIX terminals support?

    Most UNIX terminals support Korean EUC (KS C 5601-1992), and most popular Korean dumb terminal suppliers support Johap (KS C 5601-1992).

    For a more detailed listing, see Appendix A of Asian-Language Support in the Solaris Operating Environment.

    Back to Top


  6. How are codepoints composed on a Korean keyboard?

    Asian characters number in the thousands, so a special input method program is needed. From one to five keystrokes are required to compose one Korean character on the English keyboard, or you can use a Korean keyboard which contains additional compose keys and has a different layout.
    Most Korean dumb terminals have their own input method program stored in ROM.
    Solaris (dtterm) can convert ASCII character input to Korean characters.

    For more information on Korean input methods, see Section 4.3 of Asian-Language Support in the Solaris Operating Environment.

    Back to Top


  7. How are invalid code points displayed?

    They are displayed as meaningless characters or "garbage".

    Back to Top


  8. What are the key sequences for typing accented characters in the Latin-1 codeset on the x86 Solaris platform?

    To produce a compose character in the Latin-1 codeset on x86 systems, press Ctrl Shift F1 to switch to compose mode, and then press the keys that are required for the character. For example, to produce ?, switch to compose mode and then press A ". To produce an inverted question mark (?), switch to compose mode and then press ?. For more information, see /usr/share/lib/keytables

    NOTE: The SPARC keyboard uses the Compose key to switch to compose mode.

    Back to Top


  9. What is the International Standard (ISO) 216 paper size system?

    For information, see: http://www.cl.cam.ac.uk/~mgk25/iso-paper.html.

    To view and purchase the official ISO document, see http://www.iso.ch/cate/d4087.html.

    Back to Top


  10. What standard is used to describe money? If ISO covers this, what is the ISO number?

    The ISO monetary standard is ISO 4217. To view a description and order a copy of the document, see

    http://www.iso.ch/cate/d23132.html.

    Back to Top


  11. Does Sun support the KBD and extended "curses" such as libcurses and libcurses32.a?

    No. The curses library is not part of libc. The curses man page states that libcurses must be specified as follows:
    cc [ flag ...] file ... -|curses [ library ... ]

    Back to Top


  12. How do I know if a specific character is Chinese?

    We can write some simple functions to check whether a string contains some Chinese characters, the following are the C functions to check GB2312 (isgb), GBK (isgb18030_2) and GB18030 (isgb18030_4) characters:

    
    
    static int isgb(s)
    unsigned char *s;
    {
        if(s[0] >= 0xA0 && s[0] <= 0xf7 ){
          if(s[1] < 0xA1 ||  s[1] > 0xfe)
            return False;
          else
            return True;
        }else{
            return False;
        }
    }
    
    static int isgb18030_2(s)
    unsigned char *s;
    {
        if(s[0] >= 0x81 && s[0] <= 0xfe ){
          if(s[1] < 0x40 || s[1] == 0x7f || s[1] > 0xfe)
            return False;
          else
            return True;
        }else{
            return False;
        }
    }
    
    static int isgb18030_4(s)
    unsigned char *s;
    {
        if(s[0] >= 0x81 && s[0] <= 0xfe ){
          if(s[1] < 0x30 || s[1] > 0x39)
            return False;
          else
            return True;
        }else{
            return False;
        }
    }
    
    

    Back to Top


  13. How do I input the composite character on Solaris when I have a PC keyboard connected to the machine, which does not have the "compose" and "alt-graph" keys on it?

    The alternative key for the Compose key is Control+T, i.e., pressing Control, Shift and t keys all together, and it will work for any keyboard.
    There are certain AltGraph key related compose sequences, particularly, euro sign, and in recent Solaris Unicode locales and some Linux systems support additional compose sequences such as, well, either or both of the following:

    
    	Compose c =
    	Compose e =
    
    where the Compose key can be substituted to Control+T also.

    Back to Top


February 5, 2003