compiling localeinfo error

Asked by Jwtiyar Nariman

hey
i have compiled the localinfo to my kurdish(sorani) language and get errors , but i dont know how to fix them .
this is my localinfo file:
http://paste.ubuntu.com/1333259/
after compiling give this error:
http://paste.ubuntu.com/1333185/

Best Regards.

Question information

Language:
English Edit question
Status:
Answered
For:
Ubuntu Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
actionparsnip (andrew-woodhead666) said :
#1

I suggest you post the texts here. Pastebins have finite life and there is no length restriction here

Revision history for this message
Jwtiyar Nariman (jwtiyar) said :
#2

ok
comment_char %
escape_char /
%
%
%%%%%%%%%%%%%%%% local Definition ku_ckb | ckb_iq | ckb_ir %%%%%%%%%%%%%%%%%%%%%%%
% Kurdish (Sorani) language locale for Iraq and Iran.
% Contributed by Aras Noori <email address hidden>
% Filename: ckb_iq
% Locale name: ckb_iq.UTF-8
% Language: kurdish sorani
% Charset: UTF-8
% Creation Date: 2009-11-03
% History:
% January 2009: Defining CKB locale
% March 2009: Adding rule for CKB
% October 2009: bug fixing and redefine
% April 2010 fixing "not found category" problems
% March 2011 fixing all bugs
%

LC_IDENTIFICATION
title "Kurdish language locale for Sorani dialects - Central Kurdish branch"
source "Aras Noori"
address "see e-mail"
contact "Aras Noori"
email "<email address hidden>"
tel "+49 17629857380"
fax ""
language "Kurdish"
territory "Iraq, Iran"
revision "0.5"
date "2011-03-15"

category "ckb_IQ:2000";LC_IDENTIFICATION
category "ckb_IQ:2000";LC_CTYPE
category "ckb_IQ:2000";LC_COLLATE
category "ckb_IQ:2000";LC_MONETARY
category "ckb_IQ:2000";LC_NUMERIC
category "ckb_IQ:2000";LC_TIME
category "ckb_IQ:2000";LC_MESSAGES
category "ckb_IQ:2000";LC_PAPER
category "ckb_IQ:2000";LC_NAME
category "ckb_IQ:2000";LC_ADDRESS
category "ckb_IQ:2000";LC_TELEPHONE
category "ckb_IQ:2000";LC_MEASUREMENT

END LC_IDENTIFICATION

LC_CTYPE
copy "i18n"
END LC_CTYPE

LC_COLLATE
% The Sorani Kurdish dialect is mainly written using a modified Arabic-based alphabet with 33 letters.
% Unlike the regular Arabic alphabet, which is an abjad, Sorani is an alphabet in which vowels are mandatory, making the script easy to read.
%
% The CKB (Sorani) alphabet order is:
% in Latin: a, b, c, ç, d, e, ê, f, g, h, i, î, j, k, l, ll, m, n, o, p, q, r, rr, s, sh, t, u, uu, v, w, x, y, z
% vowels: A, E, I, O, U, UU
%
% Copy the template from ISO/IEC 14651

order_start forward; forward
%
% Kurdish numeric characters.
%
<U0660> <U0660>
<U0661> <U0661>
<U0662> <U0662>
<U0663> <U0663>
<U0664> <U0664>
<U0665> <U0665>
<U0666> <U0666>
<U0667> <U0667>
<U0668> <U0668>
<U0669> <U0669>

%
% Characters from space to / and from : to ~ and nbsp.
%
<U0020> <U0020>
<U0021> <U0021>
<U0022> <U0022>
<U0023> <U0023>
<U0024> <U0024>
<U0025> <U0025>
<U0026> <U0026>
<U0027> <U0027>
<U0028> <U0028>
<U0029> <U0029>
<U002A> <U002A>
<U002B> <U002B>
<U002C> <U002C>
<U002D> <U002D>
<U002E> <U002E>
<U002F> <U002F>
<U003A> <U003A>
<U003B> <U003B>
<U003C> <U003C>
<U003D> <U003D>
<U003E> <U003E>
<U003F> <U003F>
<U0040> <U0040>
<U005B> <U005B>
<U005C> <U005C>
<U005D> <U005D>
<U005E> <U005E>
<U005F> <U005F>
<U0060> <U0060>
<U007B> <U007B>
<U007C> <U007C>
<U007D> <U007D>
<U007E> <U007E>
<U00A0> <U00A0>
%
% Kurish Sorani(CKB) alphabet order.
%
<U0626> <U0626>
<U0627> <U0627>
<U0628> <U0628>
<U067E> <U067E>
<U062A> <U062A>
<U062C> <U062C>
<U0686> <U0686>
<U062D> <U062D>
<U062E> <U062E>
<U062F> <U062F>
<U0631> <U0631>
<U0695> <U0695>
<U0632> <U0632>
<U0698> <U0698>
<U0633> <U0633>
<U0634> <U0634>
<U0641> <U0641>
<U06A4> <U06A4>
<U0642> <U0642>
<U0639> <U0639>
<U063A> <U063A>
<U06A9> <U06A9>
<U06AF> <U06AF>
<U0644> <U0644>
<U06B5> <U06B5>
<U0645> <U0645>
<U0646> <U0646>
<U0648> <U0648>
<U06C6> <U06C6>
<U06D7> <U06D7>
<U0647> <U0647>
<U06CC> <U06CC>
<U06CE> <U06CE>
%
  %
  % English numeric characters.
  %
  <U0030> <U0030>
  <U0031> <U0031>
  <U0032> <U0032>
  <U0033> <U0033>
  <U0034> <U0034>
  <U0035> <U0035>
  <U0036> <U0036>
  <U0037> <U0037>
  <U0038> <U0038>
  <U0039> <U0039>
  %
  %
  % English alphabet.
  %
  <U0041> <U0041>;<U0041>
  <U0061> <U0041>;<U0061>
  <U0042> <U0042>;<U0042>
  <U0062> <U0042>;<U0062>
  <U0043> <U0043>;<U0043>
  <U0063> <U0043>;<U0063>
  <U0044> <U0044>;<U0044>
  <U0064> <U0044>;<U0064>
  <U0045> <U0045>;<U0045>
  <U0065> <U0045>;<U0065>
  <U0046> <U0046>;<U0046>
  <U0066> <U0046>;<U0066>
  <U0047> <U0047>;<U0047>
  <U0067> <U0047>;<U0067>
  <U0048> <U0048>;<U0048>
  <U0068> <U0048>;<U0068>
  <U0049> <U0049>;<U0049>
  <U0069> <U0049>;<U0069>
  <U004A> <U004A>;<U004A>
  <U006A> <U004A>;<U006A>
  <U004B> <U004B>;<U004B>
  <U006B> <U004B>;<U006B>
  <U004C> <U004C>;<U004C>
  <U006C> <U004C>;<U006C>
  <U004D> <U004D>;<U004D>
  <U006D> <U004D>;<U006D>
  <U004E> <U004E>;<U004E>
  <U006E> <U004E>;<U006E>
  <U004F> <U004F>;<U004F>
  <U006F> <U004F>;<U006F>
  <U0050> <U0050>;<U0050>
  <U0070> <U0050>;<U0070>
  <U0051> <U0051>;<U0051>
  <U0071> <U0051>;<U0071>
  <U0052> <U0052>;<U0052>
  <U0072> <U0052>;<U0072>
  <U0053> <U0053>;<U0053>
  <U0073> <U0053>;<U0073>
  <U0054> <U0054>;<U0054>
  <U0074> <U0054>;<U0074>
  <U0055> <U0055>;<U0055>
  <U0075> <U0055>;<U0075>
  <U0056> <U0056>;<U0056>
  <U0076> <U0056>;<U0076>
  <U0057> <U0057>;<U0057>
  <U0077> <U0057>;<U0077>
  <U0058> <U0058>;<U0058>
  <U0078> <U0058>;<U0078>
  <U0059> <U0059>;<U0059>
  <U0079> <U0059>;<U0079>
  <U005A> <U005A>;<U005A>
  <U007A> <U005A>;<U007A>
  %
  %
  % Other control characters etc. upto order_end
  %
  <U0000> <U0000>
  <U0001> <U0001>
  <U0002> <U0002>
  <U0003> <U0003>
  <U0004> <U0004>
  <U0005> <U0005>
  <U0006> <U0006>
  <U0007> <U0007>
  <U0008> <U0008>
  <U0009> <U0009>
  <U000A> <U000A>
  <U000B> <U000B>
  <U000C> <U000C>
  <U000D> <U000D>
  <U000E> <U000E>
  <U000F> <U000F>
  <U0010> <U0010>
  <U0011> <U0011>
  <U0012> <U0012>
  <U0013> <U0013>
  <U0014> <U0014>
  <U0015> <U0015>
  <U0016> <U0016>
  <U0017> <U0017>
  <U0018> <U0018>
  <U0019> <U0019>
  <U001A> <U001A>
  <U001B> <U001B>
  <U001C> <U001C>
  <U001D> <U001D>
  <U001E> <U001E>
  <U001F> <U001F>

  <U0080> <U0080>
  <U0081> <U0081>
  <U0082> <U0082>
  <U0083> <U0083>
  <U0084> <U0084>
  <U0085> <U0085>
  <U0086> <U0086>
  <U0087> <U0087>
  <U0088> <U0088>
  <U0089> <U0089>
  <U008A> <U008A>
  <U008B> <U008B>
  <U008C> <U008C>
  <U008D> <U008D>
  <U008E> <U008E>
  <U008F> <U008F>
  <U0090> <U0090>
  <U0091> <U0091>
  <U0092> <U0092>
  <U0093> <U0093>
  <U0094> <U0094>
  <U0095> <U0095>
  <U0096> <U0096>
  <U0097> <U0097>
  <U0098> <U0098>
  <U0099> <U0099>
  <U009A> <U009A>
  <U009B> <U009B>
  <U009C> <U009C>
  <U009D> <U009D>
  <U009E> <U009E>
  <U009F> <U009F>
  <U007F> <U007F>
  <U0640> IGNORE
order_end

% collating-element <LAM WITH SMALL V-ALEF> from <U06B5><U0627>
% collating-element <WAW-WAW> from "<U0648><U0648>"
% collating-element <YEH WITH HAMZA ABOVE-ALEF> from "<U0626><U0627>"
% collating-element <HEH-AE> from "<U0647><U06D5>"

END LC_COLLATE

LC_MONETARY
int_curr_symbol "<U0049><U0051><U0044><U0020>"
currency_symbol "<U062F><U002E><U0639><U002E>"
mon_decimal_point "<U002E>"
mon_thousands_sep "<U002C>"
mon_grouping 3
positive_sign ""
negative_sign "<U002D>"
int_frac_digits 3
frac_digits 3
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 2

END LC_MONETARY

LC_NUMERIC
% This is the POSIX Locale definition for the LC_NUMERIC category.
decimal_point "<U002E>"
thousands_sep "<U002C>"
grouping 3
END LC_NUMERIC

LC_TIME
% This is the POSIX Locale definition for the LC_TIME category.
% These are generated based on XML base Locale difintion file
%
% Abbreviated weekday names
abday "<U06CC><U06D5><U0626><U0634>";/
  "<U062F><U0648><U0648><U0634>";/
     "<U0633><U0626><U0634>";/
  "<U0686><U0648><U0631><U0634>";/
     "<U067E><U0626><U0634>";/
  "<U0647><U0647>";/
     "<U0634><U06D5><U0645>"
%
% Full weekday names
day "<U06CC><U06D5><U0643><U0634><U06D5><U0645><U0645><U06D5>";/
  "<U062F><U0648><U0648><U0634><U06D5><U0645><U0645><U06D5>";/
  "<U0633><U06CE><U0634><U06D5><U0645><U0645><U06D5>";/
  "<U0686><U0648><U0624><U0631><U0634><U06D5><U0645><U0645><U06D5>";/
  "<U067E><U06CE><U0646><U062C><U0634><U06D5><U0645><U0645><U06D5>";/
  "<U0647><U06D5><U06CC><U0646><U06CC>";/
  "<U0634><U06D5><U0645><U0645><U06D5>"
%
% Abbreviated month names
abmon "<U064A><U0646><U0627>";/
   "<U0641><U0628><U0631>";/
   "<U0645><U0627><U0631>";/
   "<U0623><U0628><U0631>";/
   "<U0645><U0627><U064A>";/
   "<U064A><U0648><U0646>";/
   "<U064A><U0648><U0644>";/
   "<U0623><U063A><U0633>";/
   "<U0633><U0628><U062A>";/
   "<U0623><U0643><U062A>";/
   "<U0646><U0648><U0641>";/
   "<U062F><U064A><U0633>"
%
% Full month names
mon "<U064A><U0646><U0627><U064A><U0631>";/
  "<U0641><U0628><U0631><U0627><U064A><U0631>";/
     "<U0645><U0627><U0631><U0633>";/
     "<U0623><U0628><U0631><U064A><U0644>";/
     "<U0645><U0627><U064A><U0648>";/
     "<U064A><U0648><U0646><U064A><U0648>";/
     "<U064A><U0648><U0644><U064A><U0648>";/
     "<U0623><U063A><U0633><U0637><U0633>";/
  "<U0633><U0628><U062A><U0645><U0628><U0631>";/
  "<U0623><U0643><U062A><U0648><U0628><U0631>";/
  "<U0646><U0648><U0641><U0645><U0628><U0631>";/
  "<U062F><U064A><U0633><U0645><U0628><U0631>"
%
% Equivalent of AM PM
am_pm "<U067E><U0646>";"<U062F><U0646>"
%
% Appropriate date and time representation
d_t_fmt "<U0025><U0064><U0020><U0025><U0062><U002C><U0020><U0025>/
<U0059><U0020><U0025><U005A><U0020><U0025><U0049><U003A><U0025><U004D>/
<U003A><U0025><U0053><U0020><U0025><U0070>"

%
% Appropriate date representation(%x)
% "%Oy/%Om/%Od"
d_fmt "<U0025><U0064><U0020><U0025><U0062><U002C><U0020><U0025><U0059>"
%
% Appropriate time representation
%
t_fmt "<U0025><U005A><U0020><U0025><U0049><U003A>/
<U0025><U004D><U003A><U0025><U0053><U0020>"
%
% Appropriate 12 h time representation
t_fmt_ampm "<U0025><U005A><U0020><U0025><U0049><U003A>/
<U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070>"
%
% Appropriate date representation
date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
<U0020><U0025><U0048><U003A><U0025>/
<U004D><U003A><U0025><U0053><U0020>/
<U0025><U005A><U0020><U0025><U0059>"

% FIXME: found in CLDR
first_weekday 7
first_workday 7
cal_direction 3
END LC_TIME

LC_MESSAGES
yesexpr "<U0628><U06D5><U06B5><U06CE>"
noexpr "<U0646><U06D5><U062E><U06CE><U0631>"
END LC_MESSAGES

LC_PAPER
% This is the ISO_IEC TR14652 Locale definition for the
height 297
width 210
END LC_PAPER

LC_NAME
%
name_gen "<U002D><U0073><U0061><U006E>"
name_miss "<U062E><U0627><U062A><U0648>"
name_ms "<U062E><U0627><U062A><U0648>"
name_mrs "<U062E><U0627><U062A><U0648>"
name_mr "<U0643><U0627><U0643>"
name_fmt "<U0025><U0069><U0025><U0074><U0025>/
<U0066><U0025><U0074><U0025><U0067>"
END LC_NAME

LC_ADDRESS
postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0049>/
<U0025><U0073><U0025><U0062><U0025><U0065><U0025><U0072>"
country_ab2 "<U0049><U0052>"
country_ab3 "<U0049><U0052><U0051>"
country_post "<U0049><U0052><U0051>"
country_num 364
country_car "<U0049><U0052><U0051>"
% kurd<U00EE>
lang_name "<U0643><U0648><U0631><U062F><U06CC>"
lang_ab "<U0643><U0648>"
lang_term "<U0066><U0061><U0073>"
lang_lib "<U006B><U0075><U0072>"

END LC_ADDRESS

LC_TELEPHONE
%
tel_int_fmt "<U002B><U0025><U0063><U0020><U003B><U0025><U0061><U0020>/
<U003B><U0025><U006C>"
tel_dom_fmt "<U202A><U0025><U0041><U2012><U0025><U006C><U202C>"
int_select "<U0030><U0030>"
int_prefix "<U0039><U0036><U0034>"

END LC_TELEPHONE

LC_MEASUREMENT
% This is the ISO_IEC TR14652 Locale definition
%
measurement 1

END LC_MEASUREMEN

Revision history for this message
Jwtiyar Nariman (jwtiyar) said :
#3

any Fix?

Revision history for this message
Manfred Hampl (m-hampl) said :
#4

Look at your error message:

jwtiyar@Jwtiyar:~$ localedef -i ./ckb_iq -c -f UTF-8 ./home
LC_NAME: invalid escape sequence in field `name_fmt'
LC_ADDRESS: invalid escape `%I' sequence in field `postal_fmt'
LC_ADDRESS: `lang_ab' value does not match `lang_term' value
LC_ADDRESS: `lang_lib' value does not match `lang_term' value
LC_ADDRESS: `country_ab3' value does not match `country_num' value

Apparently there are restrictions that certain values have to be identical, and it seems that you have not met that.

From the source code at http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/quantal/eglibc/quantal/view/head:/locale/programs/ld-address.c I see that the only allowed characters in postal_fmt in LC_ADDRESS are 'RafdbshNtreCzTSc%', but not %I (...<U0025><U0049>...) as you have entered.

Similar for name_fmt in LC_NAME allowed only 'RdfFgGlomMpsSt%', but not %i (...<U0025><U0069>...) as you have entered.

By the way, do you know these documents:
http://sourceware.org/bugzilla/show_bug.cgi?id=9809
https://bugs.launchpad.net/ubuntu/+source/langpack-locales/+bug/266975

Revision history for this message
Jwtiyar Nariman (jwtiyar) said :
#5

thank you , but i didnt enter %i any where.

Revision history for this message
Manfred Hampl (m-hampl) said :
#6

re: "i didnt enter %i any where"

name_fmt "<U0025><U0069><U0025><U0074><U0025>/
<U0066><U0025><U0074><U0025><U0067>"

If you translate the string from Unicode to latin characters you see that the value is
"%i%t%f%t%g" which definitely contains %i

Revision history for this message
Jwtiyar Nariman (jwtiyar) said :
#7

How to fox it ? thank you.

Revision history for this message
Manfred Hampl (m-hampl) said :
#8

I think you have to look at http://www.open-std.org/jtc1/sc22/wg20/docs/n972-14652ft.pdf for the specification of the field contents and adapt your localinfo file accordingly.
As I do not have knowlegde of the Kurdic languages and culture, and am no expert in multi-langiage configuration of Ubuntu, I cannot help further.

Can you help with this problem?

Provide an answer of your own, or ask Jwtiyar Nariman for more information if necessary.

To post a message you must log in.