Re: [PATCH v4] localedata: Add brh_PK locale for Brahui language [BZ #33952]

Hammad via Libc-locales <[email protected]>
Newsgroups gmane.comp.lib.glibc.locales,gmane.comp.lib.glibc.alpha
Message-ID <CALoFT+7OuEBoCrXTQzao3Dd2TAWxp7=S1hSP56TMSDY1COLo6Q@mail.gmail.com>
Apologies - the patch attachment was missing from my previous mail.
Attaching it here.

The patch applies cleanly to current master and adds:

  locale/iso-639.def        |   1 +
  localedata/SUPPORTED      |   1 +
  localedata/locales/brh_PK | 235 +++++++++++++++++++++++++++++++++++
  3 files changed, 237 insertions(+)

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=33952

Thanks,
Hammad Mengal

On Mon, 20 Jul 2026 at 12:43, Hammad <[email protected]> wrote:
>
> Hello,
>
> This is v4 of the Brahui (brh_PK) locale patch.  v3 was sent on
> 17 May 2026 and has not yet been reviewed.
>
> Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=33952
>
> Brahui is a Dravidian language spoken by approximately 2.8 million
> people (2023 Pakistan Census), primarily in Balochistan, Pakistan.
> It is the only Dravidian language written in the Perso-Arabic
> (Nastaliq) script, with ISO 639-3 code "brh".  I am a native Brahui
> speaker, author and translator, and the contributing submitter for
> CLDR locale brh.
>
> The full list of changes since v3 is in the commit message.  The main
> ones:
>
> - iso-639.def: restored alphabetical order (Brahui before Braj).
> - LC_TIME: first_weekday corrected from 7 to 1.  The old value
>   selected Saturday; CLDR territory data for PK gives firstDay = sun,
>   and ur_PK and sd_PK both use 1.
> - LC_TIME: d_t_fmt and date_fmt reordered so the date precedes the
>   time, matching the CLDR brh combination pattern and sd_PK, with
>   U+060C ARABIC COMMA as the separator.
> - LC_TIME: abday now repeats the full day names; Brahui has no
>   distinct abbreviated forms and CLDR brh gives identical values at
>   both widths, as ur_PK, pa_PK and fa_IR also do.
> - LC_MONETARY: n_sep_by_space now matches p_sep_by_space.
>
>
> Tested with localedef on glibc 2.39.  The only diagnostics are the two
> ISO 639 lookups that this patch's iso-639.def hunk resolves; verified
> by substituting an already-registered 639-3 code (brx) into the same
> file, which compiles with no diagnostics at all.  LC_TIME, LC_COLLATE,
> LC_MESSAGES, LC_MONETARY, LC_CTYPE and LC_ADDRESS output verified at
> runtime through strftime, strcoll, rpmatch, strfmon, iconv and
> nl_langinfo.
>
>
> CLDR locale brh exists; CLDR ticket CLDR-19285 is accepted for
> CLDR 49.
>
> Thanks,
> Hammad Mengal
v4-0001-localedata-Add-brh_PK-locale-for-Brahui-language-.patch (application/octet-stream, 9.1 KB)
From 225650ea2fbda6a1dc2524f17b2f6623c3dea0bd Mon Sep 17 00:00:00 2001
From: Hammad Mengal <[email protected]>
Date: Mon, 20 Jul 2026 12:09:58 +0500
Subject: [PATCH v4] localedata: Add brh_PK locale for Brahui language [BZ
 #33952]

Add locale data for Brahui (brh), a Dravidian language spoken by
approximately 2.8 million people (2023 Pakistan Census) primarily in
Balochistan, Pakistan.  Brahui is the only Dravidian language written
in the Perso-Arabic (Nastaliq) script.

The ISO 639-3 code brh is added to iso-639.def.  Brahui has no ISO
639-1 or ISO 639-2 code, so the three-letter code is used for both the
terminology and bibliographic fields, as is already done for other
639-3-only entries such as brx (Bodo).

Locale content follows CLDR locale brh, for which the submitter is the
contributing native speaker.

Changes since v3:
  - iso-639.def: place Brahui before Braj, restoring alphabetical
    order by English language name.
  - LC_TIME: add first_weekday 1 and first_workday 2.  The previous
    value of 7 selected Saturday, which does not match CLDR territory
    data for PK (firstDay = sun); ur_PK and sd_PK both use 1.
  - LC_TIME: reorder d_t_fmt and date_fmt so the date precedes the
    time, matching the CLDR brh date-time combination pattern and the
    shape used by sd_PK, and use U+060C ARABIC COMMA as the separator,
    which is the comma in the CLDR brh punctuation exemplar set.
  - LC_TIME: abday repeats the full day names, as Brahui has no
    distinct abbreviated forms; CLDR brh gives identical values at the
    abbreviated and wide widths, and ur_PK, pa_PK and fa_IR do the
    same.
  - LC_TIME: am_pm now matches the CLDR brh day-period values.
  - LC_MONETARY: n_sep_by_space 1, matching p_sep_by_space, so that
    positive and negative amounts are spaced alike.
  - LC_MESSAGES: yesexpr accepts U+062C and U+0647, and noexpr accepts
    U+0627, since these initials occur in attested spellings of the
    affirmative and negative words.
  - LC_CTYPE: add transliterations for U+06C1 and U+06B7.
  - LC_TELEPHONE: use the "+%c %a %l" form.
  - LC_IDENTIFICATION: record CLDR as the source; bump revision.

Signed-off-by: Hammad Mengal <[email protected]>
---
 locale/iso-639.def        |   1 +
 localedata/SUPPORTED      |   1 +
 localedata/locales/brh_PK | 235 ++++++++++++++++++++++++++++++++++++++
 3 files changed, 237 insertions(+)
 create mode 100644 localedata/locales/brh_PK

diff --git a/locale/iso-639.def b/locale/iso-639.def
index 029d4f35..3fff5be2 100644
--- a/locale/iso-639.def
+++ b/locale/iso-639.def
@@ -77,6 +77,7 @@ DEFINE_LANGUAGE_CODE ("Bislama", bi, bis, bis)
 DEFINE_LANGUAGE_CODE3 ("Blin; Bilin", byn, byn)
 DEFINE_LANGUAGE_CODE3 ("Bodo", brx, brx)
 DEFINE_LANGUAGE_CODE ("Bosnian", bs, bos, bos)
+DEFINE_LANGUAGE_CODE3 ("Brahui", brh, brh)
 DEFINE_LANGUAGE_CODE3 ("Braj", bra, bra)
 DEFINE_LANGUAGE_CODE ("Breton", br, bre, bre)
 DEFINE_LANGUAGE_CODE3 ("Buginese", bug, bug)
diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED
index 41cfcd6c..efc54cc1 100644
--- a/localedata/SUPPORTED
+++ b/localedata/SUPPORTED
@@ -74,6 +74,7 @@ bo_IN/UTF-8 \
 br_FR.UTF-8/UTF-8 \
 br_FR/ISO-8859-1 \
 br_FR@euro/ISO-8859-15 \
+brh_PK/UTF-8 \
 brx_IN/UTF-8 \
 bs_BA.UTF-8/UTF-8 \
 bs_BA/ISO-8859-2 \
diff --git a/localedata/locales/brh_PK b/localedata/locales/brh_PK
new file mode 100644
index 00000000..05da9137
--- /dev/null
+++ b/localedata/locales/brh_PK
@@ -0,0 +1,235 @@
+comment_char %
+escape_char /
+
+% This file is part of the GNU C Library and contains locale data.
+% The Free Software Foundation does not claim any copyright interest
+% in the locale data contained in this file.  The foregoing does not
+% affect the license of the GNU C Library as a whole.  It does not
+% exempt you from the conditions of the license if your use would
+% otherwise be governed by that license.
+
+% Brahui Language Locale for Pakistan
+% Source: Unicode CLDR (locale brh)
+% Contact: Hammad Mengal
+% Email: [email protected]
+% Language: brh
+% Territory: PK
+% Revision: 0.4
+% Date: 2026-07-19
+% Users: general
+
+LC_IDENTIFICATION
+title      "Brahui Language Locale for Pakistan"
+source     "Unicode CLDR"
+address    ""
+contact    "Hammad Mengal"
+email      "[email protected]"
+tel        ""
+fax        ""
+language   "Brahui"
+territory  "Pakistan"
+revision   "0.4"
+date       "2026-07-19"
+
+category "i18n:2012";LC_IDENTIFICATION
+category "i18n:2012";LC_CTYPE
+category "i18n:2012";LC_COLLATE
+category "i18n:2012";LC_TIME
+category "i18n:2012";LC_NUMERIC
+category "i18n:2012";LC_MONETARY
+category "i18n:2012";LC_MESSAGES
+category "i18n:2012";LC_PAPER
+category "i18n:2012";LC_NAME
+category "i18n:2012";LC_ADDRESS
+category "i18n:2012";LC_TELEPHONE
+category "i18n:2012";LC_MEASUREMENT
+END LC_IDENTIFICATION
+
+LC_CTYPE
+copy "i18n"
+translit_start
+include "translit_combining";""
+
+
+% Maddah above -> Alef with madda above
+<U0653> "<U0622>"
+% Farsi yeh -> yeh
+<U06CC> "<U064A>"
+% Heh goal -> heh
+<U06C1> "<U0647>"
+% Lam with three dots above -> lam
+<U06B7> "<U0644>"
+
+translit_end
+END LC_CTYPE
+
+LC_COLLATE
+% Brahui uses the Arabic-Urdu based Nastaliq script with one additional
+% letter not found in standard Urdu: ڷ (Lam with Three Dots Above),
+% representing a retroflex lateral.The tailoring below states the
+% Brahui rule explicitly rather than relying on that default.
+copy "iso14651_t1"
+
+reorder-after <S0644> % Lam
+<S06B7> % ڷ Lam with Three Dots Above - Brahui retroflex lateral
+
+reorder-end
+
+END LC_COLLATE
+
+LC_MONETARY
+int_curr_symbol      "PKR "
+currency_symbol      "Rs"
+mon_decimal_point    "."
+mon_thousands_sep    ","
+mon_grouping         3
+positive_sign        ""
+negative_sign        "-"
+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          2
+n_sign_posn          1
+END LC_MONETARY
+
+LC_NUMERIC
+% Brahui uses Western (Latin) digits, not Eastern Arabic-Indic digits.
+decimal_point        "."
+thousands_sep        ","
+grouping             3
+END LC_NUMERIC
+
+
+LC_TIME
+% Brahui day names follow the Persian/Dari ordinal convention
+% (yak-shanbeh, do-shanbeh, ...).
+% The two elements are written with a space, matching CLDR brh.
+% Brahui has no distinct abday names, so abday repeats the
+% full forms. ur_PK, pa_PK and fa_IR do the same.
+abday	"یک شنبہ";/
+	"دو شنبہ";/
+	"سہ شنبہ";/
+	"چار شنبہ";/
+	"پنچ شنبہ";/
+	"جمعہ";/
+	"شنبہ"
+day	"یک شنبہ";/
+	"دو شنبہ";/
+	"سہ شنبہ";/
+	"چار شنبہ";/
+	"پنچ شنبہ";/
+	"جمعہ";/
+	"شنبہ"
+abmon	"جنوری";/
+	"فروری";/
+	"مارچ";/
+	"اپریل";/
+	"مئی";/
+	"جون";/
+	"جولائی";/
+	"اگست";/
+	"ستمبر";/
+	"اکتوبر";/
+	"نومبر";/
+	"دسمبر"
+mon	"جنوری";/
+	"فروری";/
+	"مارچ";/
+	"اپریل";/
+	"مئی";/
+	"جون";/
+	"جولائی";/
+	"اگست";/
+	"ستمبر";/
+	"اکتوبر";/
+	"نومبر";/
+	"دسمبر"
+
+% Date and time format.  The date precedes the time, matching the CLDR
+% brh date-time combination pattern, and runs weekday, day, month,
+% year, as in the CLDR brh full date pattern.  The separator before the
+% time is U+060C ARABIC COMMA, which is the comma in the CLDR brh
+% punctuation exemplar set.  Same shape as sd_PK.
+d_t_fmt "%A %d %B %Y<U060C> %H:%M:%S"
+
+% Date and time format for date(1)
+date_fmt "%A %d %B %Y<U060C> %H:%M:%S %Z"
+
+% date Format. standard in Pakistan
+d_fmt "%d//%m//%Y"
+
+% time format 24 hour
+t_fmt "%H:%M:%S"
+
+am_pm "AM";"PM"
+
+% time format 12 hour
+t_fmt_ampm "%I:%M:%S %p"
+
+% Calender rtl
+cal_direction	3
+first_weekday	1
+first_workday	2
+week 7;19971130;1
+END LC_TIME
+
+LC_MESSAGES
+% Brahui yes/no expressions
+% ہ = ہان (Brahui: yes) - U+06C1 Heh Goal
+% آ = آخہ (Brahui: no)
+% yesexpr also accepts:
+%   ه U+0647 ARABIC LETTER HEH, since both spellings of the initial
+%     letter of ہان are in use
+%   ب U+0628, the initial of بلکل (bilkul, "absolutely"), a common
+%     affirmative
+% yesexpr matches: +  1  y  Y  ج(U+062C)  ہ(U+06C1)  ه(U+0647)  ب(U+0628)
+% noexpr matches:  -  0  n  N  آ(U+0622)  ا(U+0627)  ن(U+0646)
+yesexpr "^[+1yYجہهب]"
+noexpr  "^[-0nNآان]"
+yesstr  "ہان"
+nostr   "آخہ"
+END LC_MESSAGES
+
+
+LC_PAPER
+copy "i18n"
+END LC_PAPER
+
+LC_MEASUREMENT
+copy "i18n"
+END LC_MEASUREMENT
+
+LC_NAME
+% Brahui name formatting
+% Western order: salutation, given name, middle name, family name
+name_fmt    "%d%t%g%t%m%t%f"
+name_gen    "جواننگا"
+name_mr     "خواجہ"
+name_mrs    "گودی"
+name_miss   "بی بی"
+name_ms     "بی بی"
+END LC_NAME
+
+LC_ADDRESS
+% Brahui address format for Pakistan
+postal_fmt    "%a%N%f%N%d%N%b%N%h %s %e %r%N%T %z%N%c%N"
+country_name  "پاکستان"
+country_ab2   "PK"
+country_ab3   "PAK"
+country_num   586
+country_car   "PK"
+% Brahui has no ISO 639-1 (two-letter) code, so lang_ab is omitted,
+% following the ckb_IQ precedent.  brh is an ISO 639-3 code.
+lang_name     "براہوئی"
+lang_term     "brh"
+lang_lib      "brh"
+END LC_ADDRESS
+
+LC_TELEPHONE
+tel_int_fmt "+%c %a %l"
+int_prefix "92"
+int_select "00"
+END LC_TELEPHONE
-- 
2.55.0.windows.3
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.