Support for official regional languages
=======================================


There are some keyboards which had  their  functionality  enhanced
for one or more of the following reasons:

a) The language they were meant to assist is not fully  supported.

b) Other languages are spoken and have official  status  (national
   or regional) in the countries for which  a particular  keyboard
   was developed.

c) There were user requests for supporting a  particular  language
   on a particular keyboard.

Nevertheless, it is important to explain that all enhancements are
only accessed when the user is NOT using the default codepage  for
that keyboard. This is to avoid sudden, unexpected discomfort when
using the keyboard with its default codepage.

Below are the enhanced keyboards:

1) Belgian

   * Full french and german
     Codepage: 859

     The capital Y with diaeresis is available.

     Combining <AltGr> and <Shift> + <AltGr> with:
     <A> = /
     <O> = oe/OE ligature

     <AltGr> + <S> = 
     <AltGr> + <Z> = 
     <AltGr> + <X> = 

   * Walloon, Picard, Champenois, Gaumais and frankish
     Codepage: 30007

     Combining <AltGr> and <Shift> + <AltGr> with:
     <A> = /
     <E> = e/E with ring
     <Z> = /
     <O> = oe/OE ligature

     Deadkeys:
     <`> for <A, E, U>
     <~> for <N>
     <^> for <A, E, I, O, U>
     <'> for <E> and <C> (cedilla)
     <"> for <A, E, I, U, Y>

     <AltGr> + <4> = 
     <AltGr> + <Z> = 
     <AltGr> + <X> = 

2) Canadian (standard)

   * Full french support
     Codepage: 859

     The capital Y with diaeresis is available.

     Combining <AltGr> and <Shift> + <AltGr> with:
     <A> = /
     <L> = oe/OE ligature

   * Inuktitut, inuvialuktun, inuinnaqtun, slavey (north/south),
     gwich'in, dogrib, cree, chipewyan and full french
     Codepage: 30022

     Combining <AltGr> and <Shift> + <AltGr> with:
     <Y> = small/capital glottal stop
     <P> = oe/OE ligature
     <A> = /
     <L> = l/L with slash

     <AltGr> + <E> = 

     Deadkeys:
     <`> for <A, E, I, O, U>
     <^> for <A, E, I, O, U>
     <> for <A, E, I, O, U>
     <> for <E, I, U, Y>
     Ogonek/cedilla: <> for <A, E, I, O, U, C>
     Macron/tilde: <-> for <A, E, I, O, N> (*)
     Ogonek and grave: <<> for <A, E, I, O, U>
     Ogonek and acute: <>> for <A, E, I, O, U>

     (*) <AltGr> + <.>

3) Canadian (/id: 445)

   * Full french support
     Codepage: 859

     The capital Y with diaeresis is available.

     Combining <AltGr> and <Shift> + <AltGr> with:
     <O> = oe/OE ligature

   * Inuktitut, inuvialuktun, inuinnaqtun, slavey (north/south),
     gwich'in, dogrib, cree, chipewyan and full french
     Codepage: 30022

     Combining <AltGr> and <Shift> + <AltGr> with:
     <AltGr> + <8> = small/capital glottal stop
     <O> = oe/OE ligature
     <A> = /
     <L> = l/L with slash

     <AltGr> + <E> = 

     Deadkeys:
     <`> for <A, E, I, O, U>
     <^> for <A, E, I, O, U>
     <'> for <A, E, I, O, U>
     <> for <E, I, U, Y>
     Macron/tilde: <~> for <A, E, I, O, N>
     Ogonek: <"> for <A, E, I, O, U>
     Ogonek and grave: <<> for <A, E, I, O, U>
     Ogonek and acute: <>> for <A, E, I, O, U>

4) Canadian (/id: 501)

   * Full french support
     Codepage: 859

     The capital Y with diaeresis is available.

     Combining <AltGr> and <Shift> + <AltGr> with:
     <I> = oe/OE ligature

   * Inuktitut, inuvialuktun, inuinnaqtun, slavey (north/south),
     gwich'in, dogrib, cree, chipewyan and full french
     Codepage: 30022

     Combining <AltGr> and <Shift> + <AltGr> with:
     <T> = small/capital glottal stop
     <I> = oe/OE ligature
     <L> = l/L with slash

     <AltGr> + <E> = 

     Deadkeys:
     <`> for <A, E, I, O, U>
     <^> for <A, E, I, O, U>
     <> for <A, E, I, O, U>
     <> for <E, I, U, Y>
     Macron/tilde: <~> for <A, E, I, O, N>
     Ogonek/cedilla: <> for <A, E, I, O, U, C>
     Ogonek and grave: <<> for <A, E, I, O, U>
     Ogonek and acute: <>> for <A, E, I, O, U>

5) Danish

   * Greenlandic, faeroese and german
     Codepage: 30004

     Deadkeys:
     <~> for <A, I, U>
     <^> for <A, E, I, O, U>
     <> for <A, E, I, O, U, Y>
     <> for <A, O, U>

     <AltGr> + <D> and <Shift> + <AltGr> + <D> = /

     <AltGr> + <K> = KRA
     <AltGr> + <S> = 
     <AltGr> + <Z> = 
     <AltGr> + <X> = 
 
6) French (standard)

   * Full french support
     Codepage: 859

     The capital Y with diaeresis is available.

     Combining <AltGr> and <Shift> + <AltGr> with:
     <A> = /
     <O> = oe/OE ligature

     <AltGr> + <Z> = 
     <AltGr> + <X> = 
     
   * Tahitian
     Codepage: 30021

     <^> works as deadkey for all 5 macron-accented vowels.

7) Finnish/swedish and norwegian

   * Full finnish support (finnish/swedish keyboard)
     Codepage: 859

     <AltGr> + <> works as a deadkey for s/S and z/Z with caron.

   * Saami languages and finnish romani
     Codepage: 30000

     Combining <AltGr> and <Shift> + <AltGr> with:
     <Q> = /
     <T> = t/T with stroke
     <I> = /
     <O> = /
     <A> = /
     <S> = s/S with caron
     <D> = d/D with stroke
     <F> = g/G with stroke
     <G> = g/G with caron
     <H> = h/H with caron
     <K> = k/K with caron
     <> = / (finnish/swedish keyboard)
     <> = / (finnish/swedish keyboard)
     <> = / (norwegian keyboard)
     <> = / (norwegian keyboard)
     <Z> = z/Z with caron
     <C> = c/C with caron
     <V> = ezh/EZH with caron
     <B> = ezh/EZH
     <N> = eng/ENG

     If <Alt> + <Right_Ctrl> is pressed, the secondary layer is selected
     and the following keys are encoded as follows:

     Combining <AltGr> and <Shift> + <AltGr> with:
     <> = q/Q
     <S with caron> = w/W
     <T with stroke> = y/Y
     <I> = /
     <O> = /
     <A> = /
     <G> = g/G with caron
     <H> = g/G with stroke
     <K> = k/K with caron
     <> = / (based on finnish/swedish keyboard)
     <> = / (based on finnish/swedish keyboard)
     <> = / (based on norwegian keyboard)
     <> = / (based on norwegian keyboard)
     <D with stroke> (at the right side of <>/<>) = '/*
     <Z with caron> = ezh/EZH with caron
     <Z> = ezh/EZH
     <C with caron> = x/X

     There is the following key, to the right of <>:
     <ENG>

     Both layers:
     <AltGr> + <E> = 
     <Shift> + <AltGr> + <8> = 
     <Shift> + <AltGr> + <9> = 

8) German

   * Polish, slovenian, croatian, hungarian, sorbian (upper/lower),
     czech and slovak
     Codepage: 852

     Deadkeys:
     <> for all acute-accented letters.
     <^> for all caron-accented letters and / (Standard keyboard)
     <`> for all caron-accented letters and / (Keyboard /id: 453)

     Combining <AltGr> and <Shift> + <AltGr> with:
     <A> = a/A with ogonek
     <E> = e/E with ogonek
     <O> = o/O with double acute
     <U> = u/U with double acute
     <I> = u/U with ring
     <D> = d/D with stroke
     <L> = l/L with slash
     <Z> = z/Z with dot above

     <AltGr> + <4> = Euro sign
     <Shift> + <AltGr> + <8> = 
     <Shift> + <AltGr> + <9> = 

   * Esperanto
     Codepage: 853

     Keyb /id:453: <> works as deadkey for all 6 esperanto accented letters.
     Standard keyb: <^> works as deadkey for all 6 esperanto accented letters.

   * Danish and french
     Codepage: 859

     Combining <AltGr> and <Shift> + <AltGr> with:
     <A> = /
     <> = /
     <> = /
     <C> = / (standard keyboard)
     <N> = / (standard keyboard)
     <O> = oe/OE ligature

     Deadkeys:
     <^> for <A, E, I, O, U>
     <> for <A, E, O>
     <`> for <A, E, U>
     <"> for <A, E, I, O, U, Y>

     <Shift> + <AltGr> + <8> = 
     <Shift> + <AltGr> + <9> = 
     <AltGr> + <E> = 

   * Low German and Frisian
     Codepage: 30020

     Combining <AltGr> and <Shift> + <AltGr> with:
     <A> = /
     <> = /
     <> = /
     <O> = oe/OE ligature
     <I> = ij/IJ ligature

     <AltGr> + <E> = 

     Deadkeys:
     <^> for <A, E, I, O, U, Y>
     <> for <A, E, I, O, U, Y>
     <"> for <A, E, I, O, U, Y>
     <`> for <A, E, I, O, U>
     Standard keyboard: <|> for <A, E, I, O, U> with macron
                        <~> for <E, O, > with ogonek
     Keyb /id:453: <~> for <A, E, I, O, U> with macron
                   <> for <E, O, > with ogonek

   * Romani
     Codepage: 30009

     Deadkeys:
     <> for all acute-accented letters
     <^> for all circumflex- and caron-accented letters (Standard keyboard)
     <`> for all circumflex- and caron-accented letters (Keyboard /id: 453)

     Combining <AltGr> and <Shift> + <AltGr> with:
     <A> = /
     <I> = /
     <> = schwa/SCHWA

     <AltGr> + <E> = Euro sign

9) Italian

   * German, french, provenal, occitan, friulian, latin, albanian, catalan
     and sardinian
     Codepage: 30007
 
     Deadkeys:
     <"> for <A, E, I, O, U, Y>
     <'> for <A, E, I, O, U>
     <^> for <A, E, I, O, U>
     <`> for <A, E, I, O, U>
     Macron: <> for <A, E, I, O, U>
     Breve: <> for <A, E, I, O, U>

     Combining <AltGr> and <Shift> + <AltGr> with:
     <A> = /
     <O> = oe/OE ligature
     <L> = l/L with middle dot
     <C> = /
     <N> = /

     <AltGr> + <5> or <AltGr> + <E> = 
     <AltGr> + <S> = 
     <AltGr> + <\> = 
     <AltGr> + <Z> = 
     <AltGr> + <X> = 

   * Croatian and slovenian
     Codepage: 852

     Caron: <^> works as deadkey for <C, S, Z>
      Combining <AltGr> and <Shift> + <AltGr> with:
     <C> = c/C with acute
     <D> = d/D with stroke

     <AltGr> + <5> or <AltGr> + <E>: Euro sign

   * Greek
     Codepage: 869
 
     Deadkeys:
     Tonos: <> + <letters>
     Diaeresis: <> + <letters>
     Dialytika Tonos: <> + <letters>

     <Q> = Left/Right single quotation mark

     <AltGr> + <E> = Euro sign

10) Latin-american

    * Guaran
      Codepage: 30003

      Combining <AltGr> and <Shift> + <AltGr> with:
      <A, E, I, O, U, G, N, Y> = tilde-accented letters.

      <AltGr> + <4> = Guaran sign
      <AltGr> + <5> = 
      <AltGr> + <Z> = 
      <AltGr> + <X> = 

11) Macedonian

    * Albanian, turkish and balkan romani
      Codepage: 30009

      Deadkeys:
      <"> for <A, E, O, U>
      <'> for <C, G>
      Circumflex/Caron: <^> for <A, I, U, C, S, Z>

      Combining <AltGr> and <Shift> + <AltGr> with:
      <C> = /
      <G> = g/G with breve
      <S> = s/S with cedilla
      <I> = small dotless i/capital dotted I

      <AltGr> + <E> = 

12) Dutch

    * Low Saxon, limburgish and frisian
      Codepage: 30020

      Deadkeys:
      Macron: <~> works for <A, E, I, O, U>
      Ogonek: <> works for <E, O>
      <`> works for <A, E, I, O, U>
      <> works for <A, E, I, O, U, Y>
      <^> works for <A, E, I, O, U, Y>
      <> works for <A, E, I, O, U, Y>

      Combining <AltGr> and <Shift> + <AltGr> with:
      <A> = /
      <Q> = /
      <P> = /
      <I> = ij/IJ ligature
      <O> = oe/OE ligature
      <L> = o/O with diaeresis and ogonek

      <AltGr> + <E> = 

13) Nigerian

    | Modified version of the layout devised on Nigeria.    |
    | <Q> and <X> are not sacrificed. English can be typed. |
    | Deadkeys are the ones labeled on the keyboard.        |

    * Yoruba, Igbo, Hausa
      Codepage: 30005

      Combining <AltGr> and <Shift> + <AltGr> with:
      <W> = e/E with acute and dot below
      <E> = e/E with grave and dot below
      <Y> = u/U with acute and dot below
      <U> = u/U with grave and dot below
      <I> = i/I with grave and dot below
      <J> = i/I with acute and dot below
      <O> = o/O with grave and dot below
      <P> = o/O with acute and dot below
      <B> = b/B with hook
      <D> = d/D with hook
      <K> = k/K with hook
      <N> = /

      Deadkeys:
      <`> for <A, E, I, O, U>
      <'> for <A, E, I, O, U, N>
      <^> for <A, E, I, O, U>
      Dot: <~> for <E, I, O, U, N, S>

      <Shift> + <4> = Naira sign
      <AltGr> + <4> = $
      <Shift> + <AltGr> + <4> = 
      <AltGr> + <5> = 

14) Polish

    * Kashubian
      Codepage: 58335

      Combining <AltGr> and <Shift> + <AltGr> with:
      <Q> = a/A with tilde
      <W> = e/E with acute
      <E> = e/E with ogonek
      <R> = e/E with diaeresis
      <U> = u/U with grave
      <I> = o/O with grave
      <O> = o/O with acute
      <P> = o/O with circumflex
      <A> = a/A with ogonek
      <S> = s/S with acute
      <L> = l/L with slash
      <Z> = z/Z with dot above
      <X> = z/Z with acute
      <C> = c/C with acute
      <N> = n/N with acute

      <AltGr> + <4> = zloty sign

15) Romanian

    * Russian, gagauz and romanian (all cyrillic)
      Codepage: 30010

      Diaeresis: <"> works as deadkey for cyrillic <A, E, O, U>.

      <'> = SOFT SIGN
      <AltGr> + <'> and <Shift> + <AltGr> + <'> = '/*

      Standard romanian keyboard:
      <]> = HARD SIGN
      <AltGr> + <]> and <Shift> + <AltGr> + <]> = ]/[
 
      Romanian keyboard (/id: 446):
      <> = HARD SIGN

    * Gagauz (latin)
      Codepage: 30009

      Combining <AltGr> and <Shift> + <AltGr> with:
      <E> = /
      <O> = /
      <U> = /
      <G> = g/G with breve

      <AltGr> + <4> = 

      <> = / (Romanian keyboard /id: 446)

    * Ukrainian
      Codepage: 848

      <'> = SOFT SIGN
      <AltGr> + <'> and <Shift> + <AltGr> + <'> = '/*

      Standard romanian keyboard:
      <]> = ukrainian YE
      <AltGr> + <]> and <Shift> + <AltGr> + <]> = ]/[

      Romanian keyboard (/id: 446):
      <> = ukrainian YE

16) Serbian

    * Ruthenian
      Codepage: 848

      <Q> = YA
      <W> = YI
      <DJERV> = YERY
      <TJERV> = YU
      <DZE> = Y
      <DZHE> = KHA
      <I> = SOFT SIGN (serbian standard)
      <\> = SOFT SIGN (serbian /id:450)

      <AltGr> + <E> = Euro sign

17) Spanish

    * Catalan
      Codepage: 30007

      Deadkeys:
      <> for <E, I, O, U>
      <`> for <A, E, O>
      <> for <I, U>

      Combining <AltGr> and <Shift> + <AltGr> with <L>: l/L with middle dot

      <AltGr> + <Z> = 
      <AltGr> + <X> = 
      <AltGr> + <5> and <AltGr> + <E> = 

18) Swiss-french

    * Full french support
      Codepage: 859

      The capital Y with diaeresis is available.

      <AltGr> + <O> = oe ligature; <AltGr> + <I> = OE ligature
      <AltGr> + <A> = ae ligature; <AltGr> + <Z> = AE ligature
      <AltGr> + <Z> = 
      <AltGr> + <X> = 

19) Turkish
 
    * Esperanto
      Codepage: 853

      <^> also works as a deadkey for all esperanto accented letters.

20) Turkmen

    * Turkmen - cyrillic alphabet
      Codepage: 59234

      Combining <AltGr> and <Shift> + <AltGr> with:
      <`, -, =, [, ], ', \, /> = the labeled characters

21) UK (standard)

    * Polish
      Codepage: 852

      <`> works as deadkey for all 9 polish accented letters.
 
      <AltGr> + <4> = 

    * Esperanto, maltese and afrikaans
      Codepage: 853

      Deadkeys:
      <`> for <A, E, I, O, U>
      <^> for <C, G, J, H, S, E, I, O, U>
      <"> for <E, I>

      Combining <AltGr> and <Shift> + <AltGr> with:
      <C> = c/C with dot above
      <G> = g/G with dot above
      <H> = h/H with stroke
      <Z> = z/Z with dot above
      <U> = u/U with breve
      <E> = /

      <AltGr> + <N> = 'n

    * Scottish gaelic, irish gaelic, manx, welsh, breton and scots
      Codepage: 30001

      Deadkeys:
      <`> for all grave-accented letters
      <"> for all diaeresis-accented letters
      <^> for all circumflex-accented letters
      <'> for all acute-accented letters
      <~> for all overdotted consonants

      Combining <AltGr> and <Shift> + <AltGr> with:
      <C> = /
      <N> = /
      <Z> = yogh/YOGH

      <AltGr> + <4> = 
      <AltGr> + <,> = 
      <AltGr> + <.> = 

    * English, french and spanish
      Codepage: 859

      Deadkeys:
      <^> for <A, E, I, O, U>
      <`> for <A, E, U>
      <"> for <E, I, O, U, Y>

      Combining <AltGr> and <Shift> + <AltGr> with:
      <Q> = /
      <P> = oe/OE ligature
      <C> = /
      <N> = /

      <AltGr> + <,> = 
      <AltGr> + <.> = 
      <AltGr> + <4> = 
      <AltGr> + <1> = 
      <Shift> + <AltGr> + </> = 

22) UK (/ID: 168)
  
    * Polish
      Codepage: 852

      <> works as deadkey for all 9 polish accented letters.

      <AltGr> + <E> = Euro sign

    * Esperanto, maltese and afrikaans
      Codepage: 853

      Deadkeys:
      <`> for <A, E, I, O, U>
      <^> for <C, G, J, H, S, E, I, O, U>
      <"> for <E, I>

      Combining <AltGr> and <Shift> + <AltGr> with:
      <C> = c/C with dot above
      <G> = g/G with dot above
      <H> = h/H with stroke
      <Z> = z/Z with dot above
      <U> = u/U with breve
      <E> = /

      <AltGr> + <N> = 'n

    * Scottish gaelic, irish gaelic, manx, welsh, breton and scots
      Codepage: 30001

      Deadkeys:
      <`> for all grave-accented letters
      <"> for all diaeresis-accented letters
      <#> for all circumflex-accented letters
      <'> for all acute-accented letters
      <> for all overdotted consonants

      Combining <AltGr> and <Shift> + <AltGr> with:
      <C> = /
      <N> = /
      <Y> = yogh/YOGH

      <AltGr> + <,> = 
      <AltGr> + <.> = 
      <AltGr> + <E> = 

    * English, french and spanish
      Codepage: 859

      Deadkeys:
      <^> for <A, E, I, O, U>
      <`> for <A, E, U>
      <"> for <E, I, O, U, Y>
      <'> for <A, E, I, O, U>

      Combining <AltGr> and <Shift> + <AltGr> with:
      <A> = /
      <O> = oe/OE ligature
      <C> = /
      <N> = /

      <AltGr> + <,> = 
      <AltGr> + <.> = 
      <AltGr> + <E> = 
      <AltGr> + </> = 
      <Shift> + <AltGr> + <1> = 

23) US

    * Hawaiian, samoan, maori, niuean and tokelauan
      Codepage: 30021

      <`> works as deadkey for all 5 macron-accented vowels.

    * Spanish, french, chamorro, german and luxembourgish
      Codepage: 859
  
      Deadkeys:
      <`> for <A, E, U>
      <~> for <N>
      <^> for <A, E, I, O, U>
      <'> for <A, E, I, O, U>
      <"> for <A, E, I, O, U, Y>

      Combining <AltGr> and <Shift> + <AltGr> with:
      <A> = /
      <C> = /
      <E> = /
      <N> = /
      <O> = oe/OE ligature

      <AltGr> + <S> = 
      <AltGr> + <1> = 
      <AltGr> + </> = 
      <AltGr> + <5> = 
      <AltGr> + <,> = 
      <AltGr> + <.> = 

    * Esperanto, maltese and afrikaans
      Codepage: 853

      Deadkeys:
      <`> for <A, E, I, O, U>
      <^> for <C, G, J, H, S, E, I, O, U>
      <"> for <E, I>

      Combining <AltGr> and <Shift> + <AltGr> with:
      <C> = c/C with dot above
      <G> = g/G with dot above
      <H> = h/H with stroke
      <Z> = z/Z with dot above
      <U> = u/U with breve
      <E> = /

      <AltGr> + <N> = 'n



Final comments
--------------

All corrections or suggestions are welcome; if there are languages other
than the ones stated as official or co-official in this  document  which
are not assisted, I would appreciate info regarding the necessary  extra
letters, the name of the language(s) and the country(ies) where they are
spoken and I thank in advance.

Henrique Peron
hperon@terra.com.br

