Lokaĵaro

Lokaĵaro (angle: Locale) estas ulturspecifa konvenciaro por la prezentado de ekzemple datoj, tempoindikoj, monsignoj, dekuma signo, citiloj. Esperanto ankoraŭ ne konas tre fiksan lokaĵaron(eo, en, nl) Terminareto pri tradukado, Tekstoj.nl. 

En komputado lokaĵaro estas datumaro (dosiero en
operaciumo aŭ rikordo en programlingvo) entenanta la lokaĵojn, t.e. kulture kaj geografie lokajn konvenciojn por prezenti datumojn. La uzanto povas ŝalti la deziratan lokaĵaron por asimili sian labormedion al siaj preferoj.

La plej gravaj lokaĵoj estas la homlingvo de la uzanto (Esperanto, la angla, germana, rusa ktp); la signaro, la alfabeta ordo de la literoj;
la monsigno ($, €, ¥ ktp); la maniero skribi datojn ktp.

En Uniksoj nomo de lokaĵaro havas la formon
homlingvo[_regno][.signokodo]; ekz-e
en_AU.UTF-8 estas la nomo de anglalingva lokaĵaro
aŭstralia, uzanta la kodoprezenton UTF-8.

Aparte menciindas «neŭtralaj», eksterteritoriaj (fakte, minimume
usonecaj) lokaĵaroj C (omaĝe al la programlingvo C), kaj ties pli moderna varianto
C.UTF-8.

Jen la listo de Linuksaj lokaĵoj (por en_AU.UTF-8):

 $ locale
 LANG=en_AU.UTF-8          # homlingvo (la aŭstralie angla)
 LC_CTYPE=en_US.UTF-8      # klasado de signoj (literoj, interpunkcio ktp)
 LC_NUMERIC="en_AU.UTF-8"  # nombroprezentoj (3.14)
 LC_TIME="en_AU.UTF-8"     # datoj, diurnotempo (Sun Feb 24 18:21:06)
 LC_COLLATE=en_US.UTF-8    # la alfabeta ordo de literoj
 LC_MONETARY="en_AU.UTF-8" # monsigno
 LC_MESSAGES=en_US.UTF-8   # kiulingve la sistemo aperigu mesaĝojn
 LC_PAPER="en_AU.UTF-8"    # paperformatoj (A4 aŭ «Letero»?)
 [...]
 LC_ALL=                   # por ŝanĝi lokaĵojn «pogrande»
 $

Por vidi ĉiujn lokaĵarojn instalitajn en via Unikso, uzu la komandon
locale -a.

 Lokaĵaroj por Esperanto en Uniksoj 
Komercaj operaciumoj (kiel Vindozo) Esperanton ignoras, tamen en Linuksoj ĝi estas disponebla. Se ĝi estas instalita elskatole, vi ĝin vidos en la listo:

 $ locale -a | grep eo
 eo.utf8
 $

Tio estas «eksterteritoria» lokaĵaro, simila al C.UTF-8.

Se ĝi ne aperas, provu ĝin instali per

 $ sudo localedef -f UTF-8 -i eo eo.UTF-8

— aŭ, eventuale, la «regnohavan» lokaĵaron por Esperanto usona:

 $ sudo localedef -f UTF-8 -i eo eo_US.UTF-8

Se tio eraras, oni povas kopii la Debianan version sube (aŭ el https://lists.debian.org/debian-glibc/2006/01/msg00108.html) al /usr/share/i18n/locales/eo:

comment_char %
escape_char /

% Esperanto language locale for ...
% Edmund GRIMLEY EVANS <edmundo at rano dot org>

LC_IDENTIFICATION
title "Esperanto locale"
source ""
address ""
contact ""
email "debian-esperanto@lists.debian.org"
tel ""
fax ""
language "Esperanto"
territory ""
revision "draft"
date "2002-07-04"
%
category "eo_XX:2000";LC_IDENTIFICATION
category "eo_XX:2000";LC_CTYPE
category "eo_XX:2000";LC_COLLATE
category "eo_XX:2000";LC_TIME
category "eo_XX:2000";LC_NUMERIC
category "eo_XX:2000";LC_MONETARY
category "eo_XX:2000";LC_MESSAGES
category "eo_XX:2000";LC_PAPER
category "eo_XX:2000";LC_NAME
category "eo_XX:2000";LC_ADDRESS
category "eo_XX:2000";LC_TELEPHONE

END LC_IDENTIFICATION

LC_CTYPE
copy "i18n"
END LC_CTYPE

LC_COLLATE
copy "iso14651_t1"

collating-symbol <ccirc>
collating-symbol <gcirc>
collating-symbol <hcirc>
collating-symbol <jcirc>
collating-symbol <scirc>
collating-symbol <ubreve>

reorder-after <c>
<ccirc>
reorder-after <g>
<gcirc>
reorder-after <h>
<hcirc>
reorder-after <j>
<jcirc>
reorder-after 

<scirc>
reorder-after <u>
<ubreve>

reorder-after <U0043>
<U0108> <ccirc>;<CIR>;<CAP>;IGNORE % Ä?
reorder-after <U0063>
<U0109> <ccirc>;<CIR>;<MIN>;IGNORE % Ä?
reorder-after <U0047>
<U011C> <gcirc>;<CIR>;<CAP>;IGNORE % Ä?
reorder-after <U0067>
<U011D> <gcirc>;<CIR>;<MIN>;IGNORE % Ä?
reorder-after <U0048>
<U0124> <hcirc>;<CIR>;<CAP>;IGNORE % Ä¤
reorder-after <U0068>
<U0125> <hcirc>;<CIR>;<MIN>;IGNORE % Ä¥
reorder-after <U004A>
<U0134> <jcirc>;<CIR>;<CAP>;IGNORE % Ä´
reorder-after <U006A>
<U0135> <jcirc>;<CIR>;<MIN>;IGNORE % Äµ
reorder-after <U0053>
<U015C> <scirc>;<CIR>;<CAP>;IGNORE % Å?
reorder-after <U0073>
<U015D> <scirc>;<CIR>;<MIN>;IGNORE % Å?
reorder-after <U0055>
<U016C> <ubreve>;<BRE>;<CAP>;IGNORE % Å¬
reorder-after <U0075>
<U016D> <ubreve>;<BRE>;<MIN>;IGNORE % Å­

reorder-end

END LC_COLLATE

LC_MONETARY
int_curr_symbol "<U0045><U0055><U0052><U0020>" % "EUR"
currency_symbol "<U0045><U0055><U0052><U0020>" % "EUR"
% "<U20AC>" ne eblas en ISO-8859-3
mon_decimal_point "<U002C>"
mon_thousands_sep "<U0020>"
mon_grouping 3;3
positive_sign ""
negative_sign "<U002D>"
int_frac_digits 2
frac_digits 2
p_cs_precedes 1
p_sep_by_space 1
n_cs_precedes 1
n_sep_by_space 1
p_sign_posn 1
n_sign_posn 1
END LC_MONETARY

LC_NUMERIC
decimal_point "<U002C>"
thousands_sep ""
grouping 0;0
END LC_NUMERIC

LC_TIME

% "dim";"lun";"mar";"mer";"ÄµaÅ­";"ven";"sab"
abday "<U0064><U0069><U006D>";"<U006C><U0075><U006E>";/
    "<U006D><U0061><U0072>";"<U006D><U0065><U0072>";/
    "<U0135><U0061><U016D>";"<U0076><U0065><U006E>";/
    "<U0073><U0061><U0062>"

% "dimanÄ?o";"lundo";"mardo";"merkredo";"ÄµaÅ­do";"vendredo";"sabato"
day "<U0064><U0069><U006D><U0061><U006E><U0109><U006F>";/
    "<U006C><U0075><U006E><U0064><U006F>";/
    "<U006D><U0061><U0072><U0064><U006F>";/
    "<U006D><U0065><U0072><U006B><U0072><U0065><U0064><U006F>";/
    "<U0135><U0061><U016D><U0064><U006F>";/
    "<U0076><U0065><U006E><U0064><U0072><U0065><U0064><U006F>";/
    "<U0073><U0061><U0062><U0061><U0074><U006F>"

% "Jan";"Feb";"Mar";"Apr";"Maj";"Jun";"Jul";"AÅ­g";"Sep";"Okt";"Nov";"Dec"
abmon "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
    "<U004D><U0061><U0072>";"<U0041><U0070><U0072>";/
    "<U004D><U0061><U006A>";"<U004A><U0075><U006E>";/
    "<U004A><U0075><U006C>";"<U0041><U016D><U0067>";/
    "<U0053><U0065><U0070>";"<U004F><U006B><U0074>";/
    "<U004E><U006F><U0076>";"<U0044><U0065><U0063>"

% "Januaro";"Februaro";"Marto";"Aprilo";"Majo";"Junio";
% "Julio";"AÅ­gusto";"Septembro";"Oktobro";"Novembro";"Decembro"
mon "<U004A><U0061><U006E><U0075><U0061><U0072><U006F>";/
    "<U0046><U0065><U0062><U0072><U0075><U0061><U0072><U006F>";/
    "<U004D><U0061><U0072><U0074><U006F>";/
    "<U0041><U0070><U0072><U0069><U006C><U006F>";/
    "<U004D><U0061><U006A><U006F>";/
    "<U004A><U0075><U006E><U0069><U006F>";/
    "<U004A><U0075><U006C><U0069><U006F>";/
    "<U0041><U016D><U0067><U0075><U0073><U0074><U006F>";/
    "<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0072><U006F>";/
    "<U004F><U006B><U0074><U006F><U0062><U0072><U006F>";/
    "<U004E><U006F><U0076><U0065><U006D><U0062><U0072><U006F>";/
    "<U0044><U0065><U0063><U0065><U006D><U0062><U0072><U006F>"

am_pm "";""

% "%a %d %b %Y %T %z"
d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U007A>"

% "%Y-%m-%d"
d_fmt "<U0025><U0059><U002D><U0025><U006D><U002D><U0025><U0064>"

% "%T"
t_fmt "<U0025><U0054>"

t_fmt_ampm ""

% date_fmt ?

END LC_TIME

LC_MESSAGES
% "^[JjYy].*"
yesexpr "<U005E><U005B><U004A><U006A><U0059><U0079><U005D><U002E><U002A>"
% "^[Nn].*"
noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
END LC_MESSAGES

LC_PAPER
height 297
width 210
END LC_PAPER

LC_TELEPHONE
% "+%c %a %l"
tel_int_fmt "<U002B><U0025><U0063><U0020><U0025><U0061><U0020>/
<U0025><U006C>"
% "00"
int_select "<U0030><U0030>"
END LC_TELEPHONE

LC_MEASUREMENT
measurement 1
END LC_MEASUREMENT

LC_NAME
% "%d%t%g%t%m%t%f"
name_fmt "<U0025><U0064><U0025><U0074><U0025><U0067><U0025><U0074>/
<U0025><U006D><U0025><U0074><U0025><U0066>"
name_mr "<U0073><U002D><U0072><U006F>" % "s-ro"
name_mrs "<U0073><U002D><U0069><U006E><U006F>" % "s-ino"
name_ms "<U0073><U002D><U0069><U006E><U006F>" % "s-ino"
END LC_NAME

LC_ADDRESS
% "%f%N%a%N%d%N%b%N%s %h %e %r%N%%z %T%N%c%N"
postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
<U004E><U0025><U0025><U007A><U0020><U0025><U0054><U0025>/
<U004E><U0025><U0063><U0025><U004E>"
% "Esperanto"
lang_name "<U0045><U0073><U0070><U0065><U0072><U0061><U006E><U0074><U006F>"
lang_ab "<U0065><U006F>" % "eo"
lang_lib "<U0065><U006F>" % "eo"
END LC_ADDRESS

Tiu instalo nur disponigas la esperantan lokaĵaron, sed ne ŝaltas ĝin. Oni devas fari tion per malsamaj metadoj laŭ distributaĵo.

 Gentuo 
En Gentuo, lokaĵarojn ŝanĝas eselect kaj locale-gen aŭtomate. Por ŝanĝi la lokaĵaron per ĝi:

1. Redaktu la dosieron /etc/locale.gen kaj aldonu la linion "eo UTF-8":

# /etc/locale.gen: list all of the locales you want to have on your system.
# See the locale.gen(5) man page for more details.
#
# The format of each line:
# <locale name> <charset>
#
# Where <locale name> starts with a name as found in /usr/share/i18n/locales/.
# It must be unique in the file as it is used as the key to locale variables.
# For non-default encodings, the <charset> is typically appended.
#
# Where <charset> is a charset located in /usr/share/i18n/charmaps/ (sans any
# suffix like ".gz").
#
# All blank lines and lines starting with # are ignored.
#
# For the default list of supported combinations, see the file:
# /usr/share/i18n/SUPPORTED
#
# Whenever glibc is emerged, the locales listed here will be automatically
# rebuilt for you. After updating this file, you can simply run `locale-gen`
# yourself instead of re-emerging glibc.

eo UTF-8
en_US ISO-8859-1
en_US.UTF-8 UTF-8
#ja_JP.EUC-JP EUC-JP
#ja_JP.UTF-8 UTF-8
#ja_JP EUC-JP
#en_HK ISO-8859-1
#en_PH ISO-8859-1
#de_DE ISO-8859-1
#de_DE@euro ISO-8859-15
#es_MX ISO-8859-1
#fa_IR UTF-8
#fr_FR ISO-8859-1
#fr_FR@euro ISO-8859-15
#it_IT ISO-8859-1

2. Uzu la komandon "locale-gen":

# locale-gen
 * Generating locale-archive: forcing # of jobs to 1
 * Generating 3 locales (this might take a while) with 1 jobs
 *  (1/3) Generating en_US.ISO-8859-1 ...                                                                                                                                     [ ok ]
 *  (2/3) Generating en_US.UTF-8 ...                                                                                                                                          [ ok ]
 *  (3/3) Generating eo.UTF-8 ...                                                                                                                                             [ ok ]
 * Generation complete

3. Uzu la komandon eselect locale list por vidi la lokaĵarojn:

# eselect locale list
Available targets for the LANG variable:
  [1]   C *
  [2]   POSIX
  [3]   en_US
  [4]   en_US.iso88591
  [5]   en_US.utf8
  [6]   eo
  [7]   eo.utf8
  [ ]   (free form)

4. Elektu la lokaĵaron per la komandon eselect locale set <nombro de la esperanta lokaĵaro>:
# eselect locale set 7
Setting LANG to eo.utf8 ...
Run ". /etc/profile" to update the variable in your shell.

 Aliaj distribuaĵoj 
En aliaj distribuaĵoj, oni povas ŝanĝi apartajn lokaĵojn individue — aŭ ĉiujn kune:
 $ echo $LANG
 en_AU.UTF-8
 $ cal
    February 2013
 Su Mo Tu We Th Fr Sa
                 1  2
  3  4  5  6  7  8  9
 10 11 12 13 14 15 16
 17 18 19 20 21 22 23
 24 25 26 27 28

 $ export LC_TIME=eo.UTF-8
 $ cal
    Februaro 2013
 di lu ma me ĵa ve sa
                 1  2
  3  4  5  6  7  8  9
 10 11 12 13 14 15 16
 17 18 19 20 21 22 23
 24 25 26 27 28

 $

Multajn ekzemplojn pri uzo de la lokaĵo LC_COLLATE vidu en la artikolo pri leksikografia ordo.

 Vidu ankaŭ 
 Internaciigo
 Lokaĵigo (lingva)

 Eksteraj ligiloj 
 Bertilo Wennergren: Esperanto en la komputilo.

Referencoj

Kategorio:Operaciumoj