Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
LOCALEDEF(1)		  BSD General Commands Manual		  LOCALEDEF(1)

     localedef -- define locale	environment

     localedef [-bcDlUv] [-f charmap] [-i sourcefile] [-u codeset]
	       [-w widthfile] localename

     The localedef utility converts source definitions for locale categories
     into a format usable by the functions and utilities whose operational be-
     havior is determined by the setting of the	locale environment variables;
     see environ(7).

     The utility reads source definitions for one or more locale categories
     belonging to the same locale from the file	named in the -i	option (if
     specified)	or from	standard input.

     Each category source definition is	identified by the corresponding	envi-
     ronment variable name and terminated by an	END category-name statement.
     The following categories are supported:

     LC_CTYPE	  Defines character classification and case conversion.

     LC_COLLATE	  Defines collation rules.

     LC_MONETARY  Defines the format and symbols used in formatting of mone-
		  tary information.

     LC_NUMERIC	  Defines the decimal delimiter, grouping and grouping symbol
		  for non-monetary numeric editing.

     LC_TIME	  Defines the format and content of date and time information.

     LC_MESSAGES  Defines the format and values	of affirmative and negative

     The following options are supported:

     -b	     Use big-endian byte order for output.

     -c	     Creates permanent output even if warning messages have been is-

     -D	     BSD-style output.	Rather than the	default	of creating the
	     localename	directory and creating files like LC_CTYPE,
	     LC_COLLATE, etc. in that directory, the output file names have
	     the format	"<localename>.<category>" and are dumped to the	cur-
	     rent directory.

     -f	charmap
	     Specifies the pathname of a file containing a mapping of charac-
	     ter symbols and collating element symbols to actual character en-
	     codings.  This option must	be specified if	symbolic names (other
	     than collating symbols defined in a collating-symbol keyword) are
	     used.  If the -f option is	not present, the default character
	     mapping will be used.

     -i	sourcefile
	     The path name of a	file containing	the source definitions.	 If
	     this option is not	present, source	definitions will be read from
	     standard input.

     -l	     Use little-endian byte order for output.

     -u	codeset
	     Specifies the name	of a codeset used as the target	mapping	of
	     character symbols and collating element symbols whose encoding
	     values are	defined	in terms of the	ISO/IEC	10646-1:2000 standard
	     position constant values.	See NOTES.

     -U	     Ignore the	presence of character symbols that have	no matching
	     character definition.  This facilitates the use of	a common lo-
	     cale definition file to be	used across multiple encodings,	even
	     when some symbols are not present in a given encoding.

     -v	     Emit verbose debugging output on standard output.

     -w	widthfile
	     The path name of the file containing character screen width defi-
	     nitions.  If not supplied,	then default screen widths will	be as-
	     sumed, which will generally not account for East Asian encodings
	     requiring more than a single character cell to display, nor for
	     combining or accent marks that occupy no additional screen	width.

     -V	version
	     Specifies a version string	describing the version of the locale
	     definition.  This string can be retrieved with querylocale(3),
	     and is intended to	allow applications to detect locale definition
	     changes.  Currently it is stored only for the LC_COLLATE cate-

     The following operands are	required:

     localename	 Identifies the	locale.	 If the	name contains one or more
		 slash characters, localename will be interpreted as a path
		 name where the	created	locale definitions will	be stored.
		 This capability may be	restricted to users with appropriate
		 privileges.  (As a consequence	of specifying one localename,
		 although several categories can be processed in one execu-
		 tion, only categories belonging to the	same locale can	be

     localedef creates a directory of files that represents the	locale's data,
     unless instructed otherwise by the	-D (- BSD output) option.  The con-
     tants of this directory should generally be copied	into the appropriate
     subdirectory of /usr/share/locale in order	the definitions	to be visible
     to	programs linked	with libc.

     See environ(7) for	definitions of the following environment variables
     that affect the execution of localedef: LANG, LC_ALL, LC_COLLATE,

     The following exit	values are returned:

     0	 No errors occurred and	the locales were successfully created.

     1	 Warnings occurred and the locales were	successfully created.

     2	 The locale specification exceeded implementation limits or the	coded
	 character set or sets used were not supported by the implementation,
	 and no	locale was created.

     >3	 Warnings or errors occurred and no output was created.

     If	an error is detected, no permanent output will be created.

     locale(1),	iconv_open(3), nl_langinfo(3), querylocale(3), strftime(3),

     If	warnings occur,	permanent output will be created if the	-c option was
     specified.	 The following conditions will cause warning messages to be

     +o	 If a symbolic name not	found in the charmap file is used for the de-
	 scriptions of the LC_CTYPE or LC_COLLATE categories (for other	cate-
	 gories, this will be an error condition).

     +o	 If optional keywords not supported by the implementation are present
	 in the	source.

     When the -u option	is used, the codeset option-argument is	interpreted as
     a name of a codeset to which the ISO/IEC 10646-1:2000 standard position
     constant values are converted.  Both the ISO/IEC 10646-1:2000 standard
     position constant values and other	formats	(decimal, hexadecimal, or oc-
     tal) are valid as encoding	values within the charmap file.	 The codeset
     can be any	codeset	that is	supported by the iconv_open(3) function.

     When conflicts occur between the charmap specification of codeset,
     mb_cur_max, or mb_cur_min and the corresponding value for the codeset
     represented by the	-u option-argument codeset, the	localedef utility
     fails with	an error.

     When conflicts occur between the charmap encoding values specified	for
     symbolic names of characters of the portable character set	and the	char-
     acter encoding values defined by the US-ASCII, the	result is unspecified.

     localedef first appeared in FreeBSD 11.

     It	was written by Garrett D'Amore <> for Illumos.
     John Marino <> provided the	alternations necessary to com-
     pile cleanly on DragonFly.	 Baptiste Daroussin <> ported
     it	to FreeBSD and converted it to tree(3).

BSD			       November	8, 2020				   BSD


Want to link to this manual page? Use this URL:

home | help