[BZ,14172] Add South Azerbaijani (azb) locale

Message ID 554BFC89.1060003@gmail.com
State Committed
Delegated to: Mike Fabian
Headers

Commit Message

Mjbmr May 8, 2015, midnight UTC
  Sorry, I think I missed a thing.

On 5/8/2015 3:55 AM, Mjbmr wrote:
> Hi,
>
> Thank you for your feedback, new patch attached.
>
> On 5/7/2015 12:54 PM, Marko Myllynen wrote:
>> Hi,
>>
>> On 2015-05-07 07:55, Mjbmr wrote:
>>> Add South Azerbaijani (azb) locale
>>>
>>> https://sourceware.org/bugzilla/show_bug.cgi?id=14172#c11
>>> https://www.ethnologue.com/language/azb
>> I don't know the language so I cannot comment on those aspects but in
>> general it looks pretty good with one major and few minor issues. The
>> major issue is that the locale does not compile, please see the Locales
>> wiki page for instructions how to test locales (looks like you need to
>> adjust the country codes and perhaps also introduce a new language code
>> definition in iso-639.def):
>>
>> https://sourceware.org/glibc/wiki/Locales
>>
>> Also see the manual page or other locales (like de_DE) for the format to
>> use (ie, plain strings / texts are very rarely used):
>>
>> http://man7.org/linux/man-pages/man5/locale.5.html
>>
>> Please add the week definition to LC_TIME section and fix the fr_IR 
>> typo.
>>
>> Cheers,
>>
>
commit 783a728315e3a0ba4fc93b3a6d6c3c77449b8ac2
Author: mjbmr <mjbmri@gmail.com>
Date:   Thu May 7 23:17:10 2015 +0000

    Add South Azerbaijani (azb) locale
  

Comments

Marko Myllynen May 8, 2015, 8:50 a.m. UTC | #1
Hi,

looks pretty good to me. Again, I can't comment on the language itself
but if it now compiles then at least the basics should be ok.

Thanks,

On 2015-05-08 03:00, Mjbmr wrote:
> Sorry, I think I missed a thing.
> 
> On 5/8/2015 3:55 AM, Mjbmr wrote:
>> Hi,
>>
>> Thank you for your feedback, new patch attached.
>>
>> On 5/7/2015 12:54 PM, Marko Myllynen wrote:
>>> Hi,
>>>
>>> On 2015-05-07 07:55, Mjbmr wrote:
>>>> Add South Azerbaijani (azb) locale
>>>>
>>>> https://sourceware.org/bugzilla/show_bug.cgi?id=14172#c11
>>>> https://www.ethnologue.com/language/azb
>>> I don't know the language so I cannot comment on those aspects but in
>>> general it looks pretty good with one major and few minor issues. The
>>> major issue is that the locale does not compile, please see the Locales
>>> wiki page for instructions how to test locales (looks like you need to
>>> adjust the country codes and perhaps also introduce a new language code
>>> definition in iso-639.def):
>>>
>>> https://sourceware.org/glibc/wiki/Locales
>>>
>>> Also see the manual page or other locales (like de_DE) for the format to
>>> use (ie, plain strings / texts are very rarely used):
>>>
>>> http://man7.org/linux/man-pages/man5/locale.5.html
>>>
>>> Please add the week definition to LC_TIME section and fix the fr_IR
>>> typo.
>>>
>>> Cheers,
>>>
>>
>
  
Carlos O'Donell May 8, 2015, 3:18 p.m. UTC | #2
On 05/08/2015 04:50 AM, Marko Myllynen wrote:
> Hi,
> 
> looks pretty good to me. Again, I can't comment on the language itself
> but if it now compiles then at least the basics should be ok.

Marko,

How do we want to handle this patch? Should we just check in as a new
supported localization? I feel like the answer should be "Yes." Then
the downstream distributions can enable it if they see fit, and we can
start getting feedback from real azb users about the quality of the
locale itself.

Thoughts? Do you have commit privileges to check this in? Do you want
them? It would require at least doing a quick glibc build to validate
the locale works before committing :-)

Cheers,
Carlos.
  

Patch

diff --git a/locale/iso-639.def b/locale/iso-639.def
index 2529425..b62f44a 100644
--- a/locale/iso-639.def
+++ b/locale/iso-639.def
@@ -49,6 +49,7 @@  DEFINE_LANGUAGE_CODE3 ("Awadhi", awa, awa)
 DEFINE_LANGUAGE_CODE ("Aymara, Southern", ay, ayc, ayc)
 DEFINE_LANGUAGE_CODE ("Aymara", ay, aym, aym)
 DEFINE_LANGUAGE_CODE ("Azerbaijani", az, aze, aze)
+DEFINE_LANGUAGE_CODE3 ("South Azerbaijani", azb, azb)
 DEFINE_LANGUAGE_CODE3 ("Balinese", ban, ban)
 DEFINE_LANGUAGE_CODE3 ("Baltic (Other)", bat, bat)
 DEFINE_LANGUAGE_CODE3 ("Baluchi", bal, bal)
diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED
index 9bf2a4f..ac99dbf 100644
--- a/localedata/SUPPORTED
+++ b/localedata/SUPPORTED
@@ -51,6 +51,7 @@  ar_YE.UTF-8/UTF-8 \
 ar_YE/ISO-8859-6 \
 ayc_PE/UTF-8 \
 az_AZ/UTF-8 \
+azb_IR/UTF-8 \
 as_IN/UTF-8 \
 ast_ES.UTF-8/UTF-8 \
 ast_ES/ISO-8859-15 \
diff --git a/localedata/locales/azb_IR b/localedata/locales/azb_IR
new file mode 100644
index 0000000..74fafd8
--- /dev/null
+++ b/localedata/locales/azb_IR
@@ -0,0 +1,290 @@ 
+comment_char %
+escape_char  /
+%
+% South Azerbaijani Language Locale for Iran
+% Source:
+% Contact: Mousa Moradi
+% Email: <mousamk@gmail.com>
+% Language: azb
+% Territory: IR
+% Revision: 1.0
+% Date: 2015-05-07
+% Application: general
+% Users: general
+% Charset: UTF-8
+% Distribution and use is free, also
+% for commercial purposes.
+
+% FIXME: Azerbaijani O in the arabic script which should have a circle above WAW,
+% was not found in the unicode table, so we're using the simple WAW and the Sukun
+% after that. This should be changed if they add the unified character to table.
+
+% NOTE: Azerbaijani dotless 'i' in the arabic script exists in the Unicode table by
+% code U063D, but according to arthography rules, it should not be used in usual
+% texts and can be used just in kids' learning books and whenever there is ambiguity,
+% so here in the words that have it like 'Xanim' it's not been used.
+
+LC_IDENTIFICATION
+title "South Azerbaijani language locale for Iran"
+source ""
+address ""
+contact "Mousa Moradi"
+email "mousamk@gmail.com"
+tel "(+98) 914 492 1058"
+fax ""
+language "South Azerbaijani"
+territory "Iran"
+revision "1.0"
+date "2015-05-07"
+
+category azb_IR:2015;LC_IDENTIFICATION
+category azb_IR:2015;LC_CTYPE
+category azb_IR:2015;LC_COLLATE
+category azb_IR:2015;LC_TIME
+category azb_IR:2015;LC_NUMERIC
+category azb_IR:2015;LC_PAPER
+category azb_IR:2015;LC_TELEPHONE
+category azb_IR:2015;LC_MEASUREMENT
+category azb_IR:2015;LC_ADDRESS
+category azb_IR:2015;LC_MONETARY
+category azb_IR:2015;LC_MESSAGES
+
+END LC_IDENTIFICATION
+
+%
+% TODO: check LC_COLLATE
+
+LC_COLLATE
+% FIXME: For now we're going with persian collation, but the few Azerbaijani specific
+% characters need to be considered too.
+copy "fa_IR"
+
+% Azerbaijani letters can be ordered like this:
+% ALEF WITH MADDA ABOVE, ALEF, ALEF WITH HAMZA ABOVE, ALEF WITH HAMZA BELOW,
+% BEH, PEH, TEH, THEH, JIM, CHEH, HHEH, KHEH, DAL, ZAL, REH, ZEH, JEH, SIN,
+% SHIN, SAD, ZAD, TAH, ZAH, AYN, GHAYN, FEH, QAF, KAF, GAF, LAM, MIM, NUN, WAW,
+% WAW WITH SOKUN ABOVE (O in latic script - It's not in unicode table yet),
+% WAW WITH HAMZA ABOVE (O with two dots above in latin script), WAW WITH LITTLE
+% WAW ABOVE (U in latic script), WAW WITH LITTLE V ABOVE (U with two dots
+% above in latin script), HEH, YEH WITH HAMZA ABOVE (E in latin script), YEH
+% WITH LITTLE INVERTED V ABOVE (Dotless i in latic script), YEH
+
+% collating-symbol <az_ar_oe>     % O with two dots above in latic script
+% collating-symbol <az_ar_u>      % U in latic script
+% collating-symbol <az_ar_ue>     % U with two dots above in latic script
+% collating-symbol <az_ar_e>      % E in latic script
+% collating-symbol <az_ar_ih>     % dotless I in latic script
+
+% collating-element <az_ar_o> from "<U0648><U0652>"     % O in latic script
+% ...
+
+END LC_COLLATE
+
+LC_CTYPE
+copy "fa_IR"
+END LC_CTYPE
+
+LC_MESSAGES
+% This is "^[yY<HEH><BEH>].*"
+yesexpr "<U005E><U005B><U0079><U0059><U0647><U0628><U005D><U002E><U002A>"
+% This is "^[nN<YEH><KHEH>].*"
+noexpr  "<U005E><U005B><U006E><U004E><U06CC><U062E><U005D><U002E><U002A>"
+% This is "Hen":
+yesstr  "<U0647><U0646>"
+% This is "Yox":
+nostr   "<U06CC><U0648><U0652><U062E>"
+END LC_MESSAGES
+
+LC_MONETARY
+copy "fa_IR"
+END LC_MONETARY
+
+LC_NUMERIC
+copy "fa_IR"
+END LC_NUMERIC
+
+LC_TIME
+% copied from "fa_IR"
+% Alternative digits are used for Persian numerals in date and time. This is
+% a hack, until a new prefix is defined for alternative digits.
+alt_digits      "<U06F0><U06F0>";"<U06F0><U06F1>";/
+                "<U06F0><U06F2>";"<U06F0><U06F3>";/
+                "<U06F0><U06F4>";"<U06F0><U06F5>";/
+                "<U06F0><U06F6>";"<U06F0><U06F7>";/
+                "<U06F0><U06F8>";"<U06F0><U06F9>";/
+                "<U06F1><U06F0>";"<U06F1><U06F1>";/
+                "<U06F1><U06F2>";"<U06F1><U06F3>";/
+                "<U06F1><U06F4>";"<U06F1><U06F5>";/
+                "<U06F1><U06F6>";"<U06F1><U06F7>";/
+                "<U06F1><U06F8>";"<U06F1><U06F9>";/
+                "<U06F2><U06F0>";"<U06F2><U06F1>";/
+                "<U06F2><U06F2>";"<U06F2><U06F3>";/
+                "<U06F2><U06F4>";"<U06F2><U06F5>";/
+                "<U06F2><U06F6>";"<U06F2><U06F7>";/
+                "<U06F2><U06F8>";"<U06F2><U06F9>";/
+                "<U06F3><U06F0>";"<U06F3><U06F1>";/
+                "<U06F3><U06F2>";"<U06F3><U06F3>";/
+                "<U06F3><U06F4>";"<U06F3><U06F5>";/
+                "<U06F3><U06F6>";"<U06F3><U06F7>";/
+                "<U06F3><U06F8>";"<U06F3><U06F9>";/
+                "<U06F4><U06F0>";"<U06F4><U06F1>";/
+                "<U06F4><U06F2>";"<U06F4><U06F3>";/
+                "<U06F4><U06F4>";"<U06F4><U06F5>";/
+                "<U06F4><U06F6>";"<U06F4><U06F7>";/
+                "<U06F4><U06F8>";"<U06F4><U06F9>";/
+                "<U06F5><U06F0>";"<U06F5><U06F1>";/
+                "<U06F5><U06F2>";"<U06F5><U06F3>";/
+                "<U06F5><U06F4>";"<U06F5><U06F5>";/
+                "<U06F5><U06F6>";"<U06F5><U06F7>";/
+                "<U06F5><U06F8>";"<U06F5><U06F9>";/
+                "<U06F6><U06F0>";"<U06F6><U06F1>";/
+                "<U06F6><U06F2>";"<U06F6><U06F3>";/
+                "<U06F6><U06F4>";"<U06F6><U06F5>";/
+                "<U06F6><U06F6>";"<U06F6><U06F7>";/
+                "<U06F6><U06F8>";"<U06F6><U06F9>";/
+                "<U06F7><U06F0>";"<U06F7><U06F1>";/
+                "<U06F7><U06F2>";"<U06F7><U06F3>";/
+                "<U06F7><U06F4>";"<U06F7><U06F5>";/
+                "<U06F7><U06F6>";"<U06F7><U06F7>";/
+                "<U06F7><U06F8>";"<U06F7><U06F9>";/
+                "<U06F8><U06F0>";"<U06F8><U06F1>";/
+                "<U06F8><U06F2>";"<U06F8><U06F3>";/
+                "<U06F8><U06F4>";"<U06F8><U06F5>";/
+                "<U06F8><U06F6>";"<U06F8><U06F7>";/
+                "<U06F8><U06F8>";"<U06F8><U06F9>";/
+                "<U06F9><U06F0>";"<U06F9><U06F1>";/
+                "<U06F9><U06F2>";"<U06F9><U06F3>";/
+                "<U06F9><U06F4>";"<U06F9><U06F5>";/
+                "<U06F9><U06F6>";"<U06F9><U06F7>";/
+                "<U06F9><U06F8>";"<U06F9><U06F9>"
+
+% South Azerbaijani like Persian doesn't have abbreviations for weekdays and month
+% names, so "abday" is the same as "day" and "abmon" is the same as "mon".
+day     "<U06CC><U06A9><U0634><U0646><U0628><U0647>";/
+        "<U062F><U0648><U0634><U0646><U0628><U0647>";/
+        "<U0633><U0647><U200C><U0634><U0646><U0628><U0647>";/
+        "<U0686><U0627><U0631><U0634><U0646><U0628><U0647>";/
+        "<U062C><U06C6><U0645><U0639><U0647><U0020><U0622><U062E><U0634><U0627><U0645><U06CC>";/
+        "<U062C><U06C6><U0645><U0639><U0647>";/
+        "<U0634><U0646><U0628><U0647>"
+abday   "<U06CC><U06A9><U0634><U0646><U0628><U0647>";/
+        "<U062F><U0648><U0634><U0646><U0628><U0647>";/
+        "<U0633><U0647><U200C><U0634><U0646><U0628><U0647>";/
+        "<U0686><U0627><U0631><U0634><U0646><U0628><U0647>";/
+        "<U062C><U06C6><U0645><U0639><U0647><U0020><U0622><U062E><U0634><U0627><U0645><U06CC>";/
+        "<U062C><U06C6><U0645><U0639><U0647>";/
+        "<U0634><U0646><U0628><U0647>"
+mon     "<U0698><U0627><U0646><U0648><U06CC><U0647>";/
+        "<U0641><U0648><U0631><U06CC><U0647>";/
+        "<U0645><U0627><U0631><U0633>";/
+        "<U0622><U0648><U0631><U06CC><U0644>";/
+        "<U0645><U0626><U06CC>";/
+        "<U0698><U0648><U0626><U0646>";/
+        "<U062C><U0648><U0644><U0627><U06CC>";/
+        "<U0622><U0642><U06C7><U0633><U062A>";/
+        "<U0633><U067E><U062A><U0627><U0645><U0628><U0631>";/
+        "<U0627><U0648><U0652><U06A9><U062A><U0648><U0652><U0628><U0631>";/
+        "<U0646><U0648><U0652><U0648><U0627><U0645><U0628><U0631>";/
+        "<U062F><U0633><U0627><U0645><U0628><U0631>"
+abmon   "<U0698><U0627><U0646><U0648><U06CC><U0647>";/
+        "<U0641><U0648><U0631><U06CC><U0647>";/
+        "<U0645><U0627><U0631><U0633>";/
+        "<U0622><U0648><U0631><U06CC><U0644>";/
+        "<U0645><U0626><U06CC>";/
+        "<U0698><U0648><U0626><U0646>";/
+        "<U062C><U0648><U0644><U0627><U06CC>";/
+        "<U0622><U0642><U06C7><U0633><U062A>";/
+        "<U0633><U067E><U062A><U0627><U0645><U0628><U0631>";/
+        "<U0627><U0648><U0652><U06A9><U062A><U0648><U0652><U0628><U0631>";/
+        "<U0646><U0648><U0652><U0648><U0627><U0645><U0628><U0631>";/
+        "<U062F><U0633><U0627><U0645><U0628><U0631>"
+%
+% Copied from "fa_IR":
+% Appropriate date representation (%x)
+%       "%Oy/%Om/%Od"
+d_fmt   "<U0025><U004F><U0079><U002F>/
+<U0025><U004F><U006D><U002F>/
+<U0025><U004F><U0064>"
+%
+% Cofied from "fa_IR":
+% Appropriate time representation (%X)
+%       "%OH:%OM:%OS"
+t_fmt   "<U0025><U004F><U0048><U003A>/
+<U0025><U004F><U004D><U003A>/
+<U0025><U004F><U0053>"
+%
+% Copied from "fa_IR":
+% Appropriate date and time representation (%c)
+%       "<RLE>%A %Oe %B %Oy<ARABIC COMMA> %OH:%OM:%OS<PDF>"
+d_t_fmt "<U202B><U0025><U0041><U0020>/
+<U0025><U004F><U0065><U0020>/
+<U0025><U0042><U0020>/
+<U0025><U004F><U0079><U060C><U0020>/
+<U0025><U004F><U0048><U003A>/
+<U0025><U004F><U004D><U003A>/
+<U0025><U004F><U0053><U202C>"
+am_pm     "";""
+t_fmt_ampm ""
+%
+% Copied from "fa_IR" and changed a little:
+% Appropriate date representation (date(1))
+% "<RLE>%A %Oe %B %Oy<ARABIC COMMA> <SEEN><ALEF><AIN><ALEF><TEH> %OH:%OM:%OS (%Z)<PDF>"
+date_fmt "<U202B><U0025><U0041><U0020>/
+<U0025><U004F><U0065><U0020>/
+<U0025><U0042><U0020>/
+<U0025><U004F><U0079><U060C><U0020>/
+<U0633><U0627><U0639><U0627><U062A><U0020>/
+<U0025><U004F><U0048><U003A>/
+<U0025><U004F><U004D><U003A>/
+<U0025><U004F><U0053><U0020>/
+<U0028><U0025><U005A><U0029><U202C>"
+week 7;19971059;4
+first_weekday 7
+first_workday 7
+cal_direction 3
+END LC_TIME
+
+LC_PAPER
+copy "fa_IR"
+END LC_PAPER
+
+LC_MEASUREMENT
+copy "fa_IR"
+END LC_MEASUREMENT
+
+LC_ADDRESS
+% NOTE: Copied from "fa_IR", it should be checked and reconsidered if necessary:
+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><U007A><U0020><U0025><U0054><U0025>/
+<U004E><U0025><U0063><U0025><U004E>"
+
+country_name "<U0627><U06CC><U0631><U0627><U0646>"
+country_ab2 "<U0049><U0052>"
+country_ab3 "<U0049><U0052><U004E>"
+country_num 364
+country_car "<U0049><U0052>"
+country_isbn "<U0039><U0036><U0034>"
+
+% Turkce
+lang_name "<U062A><U06C6><U0631><U06A9><U062C><U0647>"
+lang_term "<U0061><U007A><U0062>"
+lang_lib "<U0061><U007A><U0062>"
+END LC_ADDRESS
+
+LC_TELEPHONE
+copy "fa_IR"
+END LC_TELEPHONE
+
+LC_NAME
+name_gen ""
+% Xanim:
+name_miss "<U062E><U0627><U0646><U06CC><U0645>"
+name_ms "<U062E><U0627><U0646><U06CC><U0645>"
+name_mrs "<U062E><U0627><U0646><U06CC><U0645>"
+% Agha
+name_mr "<U0622><U063A><U0627>"
+name_fmt "<U0025><U0064><U0025><U0074><U0025><U0073><U0025><U0074>/
+<U0025><U0067><U0025><U0074><U0025><U006D><U0025><U0074><U0025><U0066>"
+END LC_NAME