Go to main content

man pages section 5: File Formats

Exit Print View

Updated: Thursday, June 13, 2019
 
 

idn2.conf (5)

Name

idn2.conf - configuration files for idnkit version 2

Synopsis

/etc/idn2.conf
~/.idn2rc

Description

idn2.conf(5)                  File Formats Manual                 idn2.conf(5)



NAME
       idn2.conf, .idn2rc - configuration files for idnkit version 2

SYNOPSIS
       /etc/idn2.conf
       ~/.idn2rc

DESCRIPTION
       idn2.conf  and  .idn2rc  are default configuration files for the idnkit
       library version 2 which is a  toolkit  for  handling  internationalized
       domain  names.   idnkit version 2 supports IDNA2008 only. For IDNA2003,
       use idnkit version 1.  idnkit version 2 also supports UTS #46,  but  it
       is restrictive and experimental (see ``UTS #46 SUPPORT'').

       If  a  path  to  the  configuration  file is specified explicitly by an
       application, the idnkit library tries to read the file.  Otherwise, the
       idnkit  library  tries  to load the user's configuration file ~/.idn2rc
       first, and then tries the  system  configuration  file  /etc/idn2.conf.
       Note that idnkit library loads either, not both.

       If  no  default  configuration  file  exists  on the system, the idnkit
       library assumes the configuration file is empty.

SYNTAX
       The configuration file is a simple text file, and each line in the file
       (other  than  comment  lines,  which begin with ``#'', and empty lines)
       forms an entry of the following format:

           keyword value..

LANGUAGE ENTRY
       ``language'' entry specifies the  ``current  language''.   The  current
       language  is used when the idnkit library performs lowercase conversion
       (see ``MAP ENTRY'') and language-based local mapping  (see  ``LANGUAGE-
       LOCAL ENTRY'').

       The  entry  can  be specified only once. If the entry is not specified,
       the library determines the current language from locale information.

       syntax)
           language  language

       language must be an ISO639 language code. Both  ISO639-1  (e.g.  ``en''
       for English) and ISO639-2 (e.g. ``eng'') codes are recognized.

MAP ENTRY
       ``map''  entry specifies mapping procedures.  Unlike IDNA2003, IDNA2008
       doesn't define explicit mapping procedures.  The  idnkit  library  per-
       forms mapping procedures according with the entry.

       syntax)
           map  procedure ...

       The following procedures are currently available:

           lowercase
                  Map uppercase letters to lowercase.

           width  Decompose full-width and half-width characters.

           nfc    Unicode Normalization Form C.

           nfkc   Unicode Normalization Form KC.

           delimitermap
                  Map specific characters to ``.'' (U+002E; FULL STOP).

           tr46-map
                  UTS #46 non-transitional mapping.

           tr46-map-deviation
                  UTS #46 transitional mapping.

           tr46-check
                  UTS #46 non-transitional validation.

           tr46-check-deviation
                  UTS #46 transitional validation.

           language-local
                  Language based local mapping.

           tld-local
                  TLD based local mapping.

           rfc5895
                  Apply ``lowercase'', ``width'', ``nfc'' and ``delimitermap''
                  in that order.

           resman-idna2008-mappings-01
                  Same as ``rfc5895''.

           tr46-processing
                  Apply  ``tr46-map'',  ``nfc''  and  ``tr46-check''  in  that
                  order.

           tr46-processing-deviation
                  Apply ``tr46-map-deviation'', ``nfc'' and ``tr46-check-devi-
                  ation'' in that order.

       The procedures are executed in the order listed in the entry.  The same
       procedure  can  be specified twice or more. Suppose that ``map nfc lan-
       guage-local nfc'' is specified, idnkit does Unicode Normalization  Form
       C, language based local mapping, and then performs NFC again.

       The  entry  can  be specified only once. If the entry is not specified,
       the library supposes that:

           map rfc5895 language-local nfc

       is specified.

DELIMITERS ENTRY
       ``delimiters'' specifies code points which should be  mapped  to  ``.''
       (U+002E; FULL STOP) at delimitermap.

       The  mapping  is  applied  only when ``delimitermap'' is specified in a
       ``map'' entry.

       syntax)
           delimitermap  code-point ...

       code-point is a hexadecimal integer of Unicode code point of  a  delim-
       iter (e.g. 3002), which can be preceded by ``U+'' (e.g. U+3002).

       The  entry  can  be specified only once. If the entry is not specified,
       the library assumes "3002" is specified.

LANGUAGE-LOCAL ENTRY
       ``language-local'' entry specifies language based local mapping.

       The mapping procedure is applied only when ``language-local'' is speci-
       fied in a ``map'' entry.

       syntax)
           language-local  language  map-file

       If the current language matches language, mapping specified by map-file
       is performed.  Otherwise no mappings are performed.

       language must be an ISO639 language code. Both  ISO639-1  (e.g.  ``en''
       for English) and ISO639-2 (e.g. ``eng'') codes are recognized.

       A  local mapping with ``*'' as language is a default mapping.  When the
       current language is not matched to any languages of  ``language-local''
       entries, the default mapping is applied.

TLD-LOCAL ENTRY
       ``tld-local''  entry  specifies TLD (top level domain) based local map-
       ping.

       The mapping is applied  only  when  ``tld-local''  is  specified  in  a
       ``map'' entry.

       syntax)
           tld-local  tld  map-file

       If a TLD of a domain name matches tld, mapping specified by map-file is
       performed on the domain name. Otherwise no mappings are performed.

       If tld is ``*'', mapping is applied to domain names whose TLD does  not
       match any TLDs specified in ``tld-local'' entries. If tld is ``-'', the
       mapping is applied to domain names without any dots.

       For backward compatibility  to  idnkit  version  1.0,  the  entry  name
       ``local-map''  can  be used instead of ``tld-local''.  The entry can be
       defined multiple times.

LOCAL ENCODING
       idn2.conf or ~/.idn2rc doesn't have  an  entry  to  specify  the  local
       encoding,  since it is determined from the application's current locale
       information.  That is to say each application can use  different  local
       encoding.

       Though  idnkit  tries hard to find out the local encoding, sometimes it
       fails.  For example, there are applications which use non-ASCII  encod-
       ing  but  work in C locale.  In this case, you can specify the applica-
       tion's local encoding by an environment variable ``IDN_LOCAL_CODESET''.
       Just  set  the  encoding  name (or its alias name) to the variable, and
       idnkit will use the encoding as the local one, regardless of the locale
       setting.

UTS #46 SUPPORT
       idnkit  version  2  also supports UTS (Unicode Technical Standard) #46,
       but it is restrictive since the goal of idnkit version 2 is to  support
       IDNA2008.

       idnkit version 2 provides four mapping procedures for UTS #46:

           tr46-map

           tr46-map-deviation

           tr46-check

           tr46-check-deviation

       Input  of  the  mapping procedure is a whole domain name, not a list of
       labels, and the domain name may contains A-labels.  ``tr46-check''  and
       ``tr46-check-deviation''  themselves  don't  split the domain name into
       labels or convert A-labels in it to U-labels.   That  is  to  say  that
       idnkit  cannot  apply  ``tr46-check'' or ``tr46-check-deviation'' to A-
       labels.

SAMPLE CONFIGURATION
       The following shows a sample configuration file.

           #
           # a sample configuration.
           #

           # The current language.
           language ja

           # Mapping procedures.
           map lowercase width nfc delimitermap language-local nfc

           # Register delimiters
           delimiters 3002 ff0e ff61

           # Register language-specific mappings for Japanese and Turkish.
           language-local ja /usr/local/share/idnkit/map/ja.map
           language-local tr /usr/local/share/idnkit/map/tr.map

FILES
       /etc/idn2.conf
       ~/.idn2rc



ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+------------------+
       |ATTRIBUTE TYPE | ATTRIBUTE VALUE  |
       +---------------+------------------+
       |Availability   | library/idnkit   |
       +---------------+------------------+
       |Stability      | Committed        |
       +---------------+------------------+
NOTES
       To avoid potential security issues, the library functions will check if
       the  configuration  files are in a proper access mode (0444) and owner-
       ship (root:sys). If they are not in the proper access  mode  or  owner-
       ship,  the function will not read and use the configurations defined in
       the files, but use the default values. In this case, a warning  message
       will be issued, for example:

         idn_nameinit: warning: config file (/etc/idn2.conf) not in proper
                                access mode or ownership - the file ignored.


       In  the  same  security  concern,  while  they are mentioned in the man
       pages, all user configuration files  (i.e.,  $(HOME)/.idn2rc)  will  be
       ignored as if the files do not exist.


SEE ALSO
       idncheck(1),  idncmp(1),  idnconv2(1),  iconv(3),  libidnkit(3),  idna-
       lias.conf(5), idnlang.conf(5)


       This    software    was    built    from    source     available     at
       https://github.com/oracle/solaris-userland.    The  original  community
       source was downloaded from  https://jprs.co.jp/idn/idnkit-2.3.tar.bz2

       Further information about this software can be found on the open source
       community website at https://jprs.co.jp/idn.



                                 Sep 21, 2012                     idn2.conf(5)