Arabic

Arabic (script)

Second-Level Reference Label Generation Rules, 25 October 2024 Current

Summary

Version3 — Second Level Reference LGR
Date
Tag und-Arab (Arabic)
Unicode11.0.0
Source filelgr-second-level-arabic-script-25oct24-en.xml (78.9kb)

This ruleset is integrated into the Common (integrated set) ruleset of this release.

Description

INSTRUCTIONS

  • These instructions cover how to adopt an LGR based on this reference LGR for a given zone and how to prepare the file for deposit in the IANA Repository of IDN Practices.
  • As described the IANA procedure (https://www.iana.org/help/idn-repository-procedure) an LGR MUST contain the following elements in its header:
    • Script or Language Designator (see below for guidance)
    • Version Number (this must increase with each amendment to the LGR, even if the updates are limited to the header itself)
    • Effective Date (the date at which the policy becomes applicable in operational use)
    • Registry Contact Details (contact name, email address, and/or phone number)
  • The following information is optional:
    • Document creation date
    • Applicable Domain(s)
    • Changes made to the Reference LGR before adopting

Please add or modify the following items in the XML source code for this file before depositing the document in the IANA Repository. (https://www.iana.org/domains/idn-tables)

Meta Data

Note: version numbers start at 1. RFC 7940 recommends using simple integers. The version comment is optional, please replace or delete the default comment. Version comments may be used by some tools as part of the page header.

<version comment="[Please replace (or delete) the optional comment]">[Please fill in version number, starting at 1]</version>

<date>[Please fill in with publication date, in YYYY-MM-DD format]</date>

<validity-start>[Please fill in effective date, in YYYY-MM-DD format]</validity-start>

Note: the scope element may be repeated, so that the same document can serve for multiple domains.

<scope type="domain">[Please provide, in ".domain" format]</scope>

Registry Contact Information:

Please fill in the Registry Contact Details.

Change History

If you made technical modifications to the LGR, please summarize them in the Change History (and also note the details in the appropriate section of the description).

PLEASE DELETE THESE INSTRUCTIONS BEFORE DEPOSITING THE DOCUMENT

Read the rest of the description Show less

Registry Contact Details

  • Contact Name: [Please fill in Contact Name]
  • Email address: [Please fill in Email address]
  • Phone Number: [Please fill in optional Phone Number]

Label Generation Rules for the Arabic Script

Overview

This document specifies a set of Label Generation Rules (LGR) for the Arabic script for the second level domain or domains identified above. The starting point for the development of this LGR can be found in the related Root Zone LGR [RZ-LGR-Arab]. The format of this file follows [RFC 7940]. This LGR is adapted from the “Reference LGR for the Second Level for the Arabic Script” [Ref-LGR-und-Arab], for details, see Change History below.

For details and additional background on the Arabic script, see TF-AIDN, “Proposal for Arabic Script Root Zone LGR”, Version 3.4, 18 November 2015 [Proposal-Arabic]. Additional work was done by a TF-AIDN group to create extensions appropriate to the second level and these are incorporated in this LGR. (See “Methodology” below).

The document contains certain provisions for customization. (See “Customizing actions for International Reachability” below.)

Repertoire

The repertoire includes the 128 code points for letters used by languages that are actively written in the Arabic script. The repertoire is a subset of [Unicode 11.0.0]. For details, see Section 3.2 in [Proposal-Arabic]. (The proposal cited has been adopted for the Arabic script portion of the Root Zone LGR.)

For the second level, the repertoire has been augmented with the HYPHEN-MINUS, and three sets of decimal digits:

  • European (common) digits
  • Arabic-Indic digits
  • Extended Arabic-Indic digits

for a total of 159 repertoire elements.

The repertoire excludes code points for which TF-AIDN was unable to find sufficient evidence of use (see Appendix F in [Proposal-Arabic]).

This LGR does not include combining marks or code point sequences. All combining marks have been excluded for these reasons:

  • First, they can significantly overproduce and would require additional rules to contain them effectively, complicating the design.
  • Second, even where they are required for some languages, they are optional for others.
  • Third, this also circumvents the issue regarding duplication between some precomposed code points and combining sequences raised by [IAB].

Repertoire Listing: Each code point or range is tagged with the script or scripts with which the code point is used and one or more other character categories. For each repertoire element, one or more references document sufficient justification for inclusion in the repertoire; see the “References” below. Comments identify the principal languages or orthographies using the code point. Languages are given with their [EGIDS] level.

Note: use of standard Arabic code points by other languages is not marked.

Correlation Between Repertoire and Bidi Rules

Because this LGR contains only a subset of PVALID code points, the Bidi rules expressed in Section 2 of RFC 5893 [160] (Bidi Rule) can be simplified to two constraints:

  • Prevent digits (whether European, Arabic-Indic, or Extended-Arabic-Indic) from starting a label.
  • In any label, allow only digits from one the sets (whether European, Arabic-Indic, or Extended-Arabic-Indic).

Variants

The variants defined in this LGR are limited to those required for use in zones not shared with any other script. However, because it does not share cross-script variants with other script LGRs, this LGR can be mixed easily with other LGRs in the same zone.

For details on the methodology used to assign in-script variants for letters, see “Methodology for Defining Variants” below.

Digit Variants: All Arabic digits are treated as semantic variants of the corresponding common (ASCII) digits. By transitivity, they are also semantic variants of any native digits in scripts that also include the common digits. Such variant relations are deemed to exist implicitly by transitivity but are not listed explicitly in each reference LGR. Instead, if needed, they are applied by using the Common LGR in label processing.

Because of the restriction on leading digits, most labels would contain a unique code point in addition to any digits, thus no variant labels would actually result from any pro-forma cross-script variants.

To keep digit variant sets manageable in zones where multiple scripts are present, no attempt has been made at identifying cross-script variants among digits of different numeric value or between a digit in one script and a letter in another, such as between digit zero and Latin letter ‘o’. Other mechanisms may be required to prevent homograph labels.

Variant Disposition: This LGR includes “blocked” and “allocatable” variants, assigned according to Section 4, “Final recommendation of variants for Top Level Domains (TLDs)” in [Proposal-Arabic]. These recommendations balance the desire to minimize the number of possible allocatable variants with the need to keep the definition of variants simple. See also the comments given in the listing.

For the second level, three additional variant types are added: “optionally-allocatable”, “activated”, and “optionally-activated”. They are used to improve user acceptance. The rationale for these new types is provided below.

Methodology for Defining Variants

In generating the variant tables, a number of concepts have been used:

  • One of the main principles for the stability of the Internet and IDNs is that the end user should be able to reach a website connected to his/her domain name regardless of location. Additionally, an end user reads and types website addresses based on his/her language alphabet and whatever is available in his/her keyboard. Therefore, in order to enforce this principle the input devices (language table) that the user may use to reach a domain name (based on the user location) should be carefully considered when defining variants. Otherwise, it may cause a reachability problem and reduce the user acceptance. For example, if someone registered the domain name “مكة” (all characters from the Arabic language) and a user try to reach the website connected to this domain name from an Internet café or airport, say, in Pakistan. He/she will not be able to reach that website unless if the variant “مکۃ” (Urdu variant) is already allocated and activated. Thus, variants need to be studied from both similarity point of view (by language community) and reachability point of view (based on input devices used by other language communities).

  • Consistency is a very important concept in generating variants. Regardless of the selected applied-for label the list of generated allocatable variants should be the same. As we are dealing with normal users at the SLD, their 1st choice (applied-for) label might not be the one that will be used by the internet community. Therefore, a registry should provide the registrant the ability to “correct” his/her choice if he/she was not successful with the first try. For example, the word “Internet” is written in most Arab countries in North Africa as (أنترنت) while it is written in other Arab countries as (إنترنت), while end users often write it as (انترنت). Therefore, if someone registered “أنترنت”, he/she should be able to enable “إنترنت” or “انترنت”. Additionally, many words have two correct ways to write them, for example, both “آدم” and “أدم” are widely used for the same name Adam. Hence, if someone registered “أدم” he/she should be able to enable “آدم” or “ادم”. This is achieved by making variants allocatable in at least one direction in the LGR.

  • Based on the principle expressed in the previous item, some code points are involved in at least one variant mapping of type “activated”, “optionally-activated”, or “optionally-allocatable. The dispositions related to these mappings may be optionally modified by a registry by editing the appropriate action elements. See the section on “Customizing Actions for International Reachability” for details of how this feature can be made mandatory or disabled.

The specification of variants in this LGR follows the guidelines in [RFC 8228].

Character Classes

This proposal defines the following named character classes:

  • common-digits — ASCII digits: U+0030 to U+0039
  • arabic-indic-digits — Arabic-Indic digits used with Arabic: U+0660 to U+0669
  • extended arabic-indic-digits — Arabic-Indic digits used with other languages: U+06F0 to U+06F9

Whole Label Evaluation (WLE) and Context Rules

Common Rules

By default, the LGR includes the rules and actions to implement the following restrictions mandated by the IDNA protocol. They are marked with ⍟.

  • Hyphen Restrictions — restrictions on the allowable placement of hyphens (no leading/ending hyphen and no hyphen in positions 3 and 4). These restrictions are described in Section 4.2.3.1 of RFC 5891 [150]. They are implemented here as context rule on U+002D (-) HYPHEN-MINUS.
  • Leading Combining Marks — restrictions on the allowable placement of combining marks (no leading combining mark). This rule is described in Section 4.2.3.2 of RFC 5891 [150].

Right-to-Left Rules

  • leading-digit — restrictions on the allowable placement of digits in a right-to-left context (no leading digit), (see section 2.1 of RFC 5893 [160]); implemented here as a context rule on each digit.

Repertoire

Glyph Code point Tags and context Variants
- U+002D HYPHEN-MINUS 0 HYPHEN-MINUS; Tagsc:Zyyy Contextnot hyphen-minus-disallowed
0 U+0030 DIGIT ZERO 0 DIGIT ZERO; TagCommon-digitTagsc:Zyyy Contextnot leading-digit ٠ U+0660 activated Arabic digit variant ۰ U+06F0 activated Extended digit variant
1 U+0031 DIGIT ONE 0 DIGIT ONE; TagCommon-digitTagsc:Zyyy Contextnot leading-digit ١ U+0661 activated Arabic digit variant ۱ U+06F1 activated Extended digit variant
2 U+0032 DIGIT TWO 0 DIGIT TWO; TagCommon-digitTagsc:Zyyy Contextnot leading-digit ٢ U+0662 activated Arabic digit variant ۲ U+06F2 activated Extended digit variant
3 U+0033 DIGIT THREE 0 DIGIT THREE; TagCommon-digitTagsc:Zyyy Contextnot leading-digit ٣ U+0663 activated Arabic digit variant ۳ U+06F3 activated Extended digit variant
4 U+0034 DIGIT FOUR 0 DIGIT FOUR; TagCommon-digitTagsc:Zyyy Contextnot leading-digit ٤ U+0664 activated Arabic digit variant ۴ U+06F4 activated Extended digit variant
5 U+0035 DIGIT FIVE 0 DIGIT FIVE; TagCommon-digitTagsc:Zyyy Contextnot leading-digit ٥ U+0665 activated Arabic digit variant ۵ U+06F5 activated Extended digit variant
6 U+0036 DIGIT SIX 0 DIGIT SIX; TagCommon-digitTagsc:Zyyy Contextnot leading-digit ٦ U+0666 activated Arabic digit variant ۶ U+06F6 activated Extended digit variant
7 U+0037 DIGIT SEVEN 0 DIGIT SEVEN; TagCommon-digitTagsc:Zyyy Contextnot leading-digit ٧ U+0667 activated Arabic digit variant ۷ U+06F7 activated Extended digit variant
8 U+0038 DIGIT EIGHT 0 DIGIT EIGHT; TagCommon-digitTagsc:Zyyy Contextnot leading-digit ٨ U+0668 activated Arabic digit variant ۸ U+06F8 activated Extended digit variant
9 U+0039 DIGIT NINE 0 DIGIT NINE; TagCommon-digitTagsc:Zyyy Contextnot leading-digit ٩ U+0669 activated Arabic digit variant ۹ U+06F9 activated Extended digit variant
ؠ U+0620 ARABIC LETTER KASHMIRI YEH 11 115 Kashmiri (4) Tagsc:Arab
ء U+0621 ARABIC LETTER HAMZA 0 100 Arabic (1) Tagsc:Arab
آ U+0622 ARABIC LETTER ALEF WITH MADDA ABOVE 0 100 Arabic (1) Tagsc:Arab أ U+0623 optionally-allocatable إ U+0625 optionally-allocatable ا U+0627 allocatable U+0622 ALEF WITH MADDA ABOVE is simplified to U+0627 ALEF in the Arabic language ٲ U+0672 blocked
أ U+0623 ARABIC LETTER ALEF WITH HAMZA ABOVE 0 100 Arabic (1) Tagsc:Arab آ U+0622 optionally-allocatable إ U+0625 optionally-allocatable ا U+0627 allocatable U+0623 ALEF WITH HAMZA ABOVE is simplified to U+0627 ALEF in the Arabic language ٲ U+0672 blocked
ؤ U+0624 ARABIC LETTER WAW WITH HAMZA ABOVE 0 100 Arabic (1) Tagsc:Arab و U+0648 allocatable U+0624 WAV WITH HAMZA ABOVE is simplified to U+0648 WAV in the Arabic language
إ U+0625 ARABIC LETTER ALEF WITH HAMZA BELOW 0 100 Arabic (1) Tagsc:Arab آ U+0622 optionally-allocatable أ U+0623 optionally-allocatable ا U+0627 allocatable U+0625 ALEF WITH HAMZA BELOW is simplified to U+0627 ALEF in the Arabic language ٲ U+0672 blocked
ئ U+0626 ARABIC LETTER YEH WITH HAMZA ABOVE 0 100 Arabic (1) Tagsc:Arab ى U+0649 blocked ي U+064A blocked ٻ U+067B blocked ی U+06CC blocked ۍ U+06CD blocked ې U+06D0 blocked +1 more
ا U+0627 ARABIC LETTER ALEF 0 100 Arabic (1) Tagsc:Arab آ U+0622 optionally-allocatable أ U+0623 optionally-allocatable إ U+0625 optionally-allocatable ٲ U+0672 blocked
ب U+0628 ARABIC LETTER BEH 0 100 Arabic (1) Tagsc:Arab
ة U+0629 ARABIC LETTER TEH MARBUTA 0 100 Arabic (1) Tagsc:Arab ه U+0647 allocatable In the Arabic language, U+0647 HEH may be substituted for U+0629 TEH MARBUTA. [RFC 6365] ھ U+06BE blocked ۀ U+06C0 blocked ہ U+06C1 blocked ۂ U+06C2 blocked ۃ U+06C3 optionally-activated
Comment The two are visually identical and the same label could be typed using one or the other based on the set language settings and keyboard layout of a user. Labels in the Arabic language using U+0629 TEH MARBUTA in the final and isolated positions will be typed in other languages using U+06C3 TEH MARBUTA GOAL (Urdu, etc.) which is identical in isolated and has a variant glyph or identical glyph form in final position
+1 more
ت U+062A ARABIC LETTER TEH 0 100 Arabic (1) Tagsc:Arab ٺ U+067A blocked
ث U+062B ARABIC LETTER THEH 0 100 Arabic (1) Tagsc:Arab ٽ U+067D blocked
ج U+062C ARABIC LETTER JEEM 0 100 Arabic (1) Tagsc:Arab
ح U+062D ARABIC LETTER HAH 0 100 Arabic (1) Tagsc:Arab
خ U+062E ARABIC LETTER KHAH 0 100 Arabic (1) Tagsc:Arab
د U+062F ARABIC LETTER DAL 0 100 Arabic (1) Tagsc:Arab
ذ U+0630 ARABIC LETTER THAL 0 100 Arabic (1) Tagsc:Arab
ر U+0631 ARABIC LETTER REH 0 100 Arabic (1) Tagsc:Arab
ز U+0632 ARABIC LETTER ZAIN 0 100 Arabic (1) Tagsc:Arab
س U+0633 ARABIC LETTER SEEN 0 100 Arabic (1) Tagsc:Arab
ش U+0634 ARABIC LETTER SHEEN 0 100 Arabic (1) Tagsc:Arab
ص U+0635 ARABIC LETTER SAD 0 100 Arabic (1) Tagsc:Arab
ض U+0636 ARABIC LETTER DAD 0 100 Arabic (1) Tagsc:Arab
ط U+0637 ARABIC LETTER TAH 0 100 Arabic (1) Tagsc:Arab
ظ U+0638 ARABIC LETTER ZAH 0 100 Arabic (1) Tagsc:Arab
ع U+0639 ARABIC LETTER AIN 0 100 Arabic (1) Tagsc:Arab
غ U+063A ARABIC LETTER GHAIN 0 100 Arabic (1) Tagsc:Arab
ف U+0641 ARABIC LETTER FEH 0 100 Arabic (1) Tagsc:Arab ق U+0642 blocked ڢ U+06A2 allocatable Used interchangeably in Africa for languages using Western (African) orthography ڧ U+06A7 blocked
ق U+0642 ARABIC LETTER QAF 0 100 Arabic (1) Tagsc:Arab ف U+0641 blocked ڢ U+06A2 blocked ڧ U+06A7 allocatable Used interchangeably in Africa for languages using Western (African) orthography
ك U+0643 ARABIC LETTER KAF 0 100 Arabic (1) Tagsc:Arab ک U+06A9 optionally-activated
Comment The two have identical shapes in initial and medial positions and are used by different language communities to refer to the same letter
ڪ U+06AA allocatable
Comment The two have similar (interchangeable) shapes in initial and medial positions and are used by different language communities to refer to the same letter
ل U+0644 ARABIC LETTER LAM 0 100 Arabic (1) Tagsc:Arab
م U+0645 ARABIC LETTER MEEM 0 100 Arabic (1) Tagsc:Arab
ن U+0646 ARABIC LETTER NOON 0 100 Arabic (1) Tagsc:Arab ں U+06BA allocatable Used interchangeably in Africa for languages using Western (African) orthography
ه U+0647 ARABIC LETTER HEH 0 100 Arabic (1) Tagsc:Arab ة U+0629 blocked ھ U+06BE optionally-activated
Comment Labels in the Arabic language using U+0647 HEH in the initial and medial positions will be visually similar in Urdu language to U+06BE LETTER HEH DOACHASHMEE
ۀ U+06C0 blocked ہ U+06C1 optionally-activated
Comment Labels in the Arabic language using U+0647 HEH in the final and isolated positions will be typed in other languages using U+06C1 HEH GOAL (Urdu, Pashto, Saraiki, etc.) which is identical in isolated and has a variant glyph or identical glyph form in final position
ۂ U+06C2 blocked ۃ U+06C3 blocked +1 more
و U+0648 ARABIC LETTER WAW 0 100 Arabic (1) Tagsc:Arab ؤ U+0624 blocked
ى U+0649 ARABIC LETTER ALEF MAKSURA 0 100 Arabic (1) Tagsc:Arab Contextnot initial-or-medial-position ئ U+0626 blocked ي U+064A blocked ٻ U+067B blocked ی U+06CC optionally-activated
Comment The two are visually identical and the same label could be typed using one or the other based on the set language settings and keyboard layout of a user
ۍ U+06CD blocked ې U+06D0 blocked +1 more
ي U+064A ARABIC LETTER YEH 0 100 Arabic (1) Tagsc:Arab ئ U+0626 blocked ى U+0649 blocked ٻ U+067B blocked ی U+06CC optionally-activated
Comment The two are visually identical and the same label could be typed using one or the other based on the set language settings and keyboard layout of a user
ۍ U+06CD blocked ې U+06D0 blocked +1 more
٠ U+0660 ARABIC-INDIC DIGIT ZERO 0 100 201 401 600 700 ARABIC-INDIC DIGIT ZERO; TagArabic-indic-digitTagsc:Arab Contextnot leading-digit 0 U+0030 activated ASCII digit variant ۰ U+06F0 activated Extended digit variant
١ U+0661 ARABIC-INDIC DIGIT ONE 0 100 201 401 600 700 ARABIC-INDIC DIGIT ONE; TagArabic-indic-digitTagsc:Arab Contextnot leading-digit 1 U+0031 activated ASCII digit variant ۱ U+06F1 activated Extended digit variant
٢ U+0662 ARABIC-INDIC DIGIT TWO 0 100 201 401 600 700 ARABIC-INDIC DIGIT TWO; TagArabic-indic-digitTagsc:Arab Contextnot leading-digit 2 U+0032 activated ASCII digit variant ۲ U+06F2 activated Extended digit variant
٣ U+0663 ARABIC-INDIC DIGIT THREE 0 100 201 401 600 700 ARABIC-INDIC DIGIT THREE; TagArabic-indic-digitTagsc:Arab Contextnot leading-digit 3 U+0033 activated ASCII digit variant ۳ U+06F3 activated Extended digit variant
٤ U+0664 ARABIC-INDIC DIGIT FOUR 0 100 201 401 600 700 ARABIC-INDIC DIGIT FOUR; TagArabic-indic-digitTagsc:Arab Contextnot leading-digit 4 U+0034 activated ASCII digit variant ۴ U+06F4 activated Extended digit variant
٥ U+0665 ARABIC-INDIC DIGIT FIVE 0 100 201 401 600 700 ARABIC-INDIC DIGIT FIVE; TagArabic-indic-digitTagsc:Arab Contextnot leading-digit 5 U+0035 activated ASCII digit variant ۵ U+06F5 activated Extended digit variant
٦ U+0666 ARABIC-INDIC DIGIT SIX 0 100 201 401 600 700 ARABIC-INDIC DIGIT SIX; TagArabic-indic-digitTagsc:Arab Contextnot leading-digit 6 U+0036 activated ASCII digit variant ۶ U+06F6 activated Extended digit variant
٧ U+0667 ARABIC-INDIC DIGIT SEVEN 0 100 201 401 600 700 ARABIC-INDIC DIGIT SEVEN; TagArabic-indic-digitTagsc:Arab Contextnot leading-digit 7 U+0037 activated ASCII digit variant ۷ U+06F7 activated Extended digit variant
٨ U+0668 ARABIC-INDIC DIGIT EIGHT 0 100 201 401 600 700 ARABIC-INDIC DIGIT EIGHT; TagArabic-indic-digitTagsc:Arab Contextnot leading-digit 8 U+0038 activated ASCII digit variant ۸ U+06F8 activated Extended digit variant
٩ U+0669 ARABIC-INDIC DIGIT NINE 0 100 201 401 600 700 ARABIC-INDIC DIGIT NINE; TagArabic-indic-digitTagsc:Arab Contextnot leading-digit 9 U+0039 activated ASCII digit variant ۹ U+06F9 activated Extended digit variant
ٲ U+0672 ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE 0 102 Kashmiri (4) Tagsc:Arab آ U+0622 blocked أ U+0623 blocked إ U+0625 blocked ا U+0627 allocatable U+0672 ALEF WITH WAVY HAMZA ABOVE is simplified to U+0627 ALEF in the Kashmiri language
ٹ U+0679 ARABIC LETTER TTEH 0 112 Urdu (1) Tagsc:Arab ڻ U+06BB blocked
ٺ U+067A ARABIC LETTER TTEHEH 0 111 Sindhi (2) Tagsc:Arab ت U+062A blocked
ٻ U+067B ARABIC LETTER BEEH 0 111 Sindhi (2) Tagsc:Arab ئ U+0626 blocked ى U+0649 blocked ي U+064A blocked ی U+06CC blocked ۍ U+06CD blocked ې U+06D0 blocked +1 more
ټ U+067C ARABIC LETTER TEH WITH RING 0 108 Pashto (1) Tagsc:Arab
ٽ U+067D ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS 0 111 Sindhi (2) Tagsc:Arab ث U+062B blocked
پ U+067E ARABIC LETTER PEH 0 109 Persian (1) Tagsc:Arab ڽ U+06BD blocked ۑ U+06D1 blocked ݒ U+0752 blocked
ٿ U+067F ARABIC LETTER TEHEH 0 111 Sindhi (2) Tagsc:Arab
ڀ U+0680 ARABIC LETTER BEHEH 0 111 Sindhi (2) Tagsc:Arab
ځ U+0681 ARABIC LETTER HAH WITH HAMZA ABOVE 0 108 138 Pashto (1) Tagsc:Arab
ڃ U+0683 ARABIC LETTER NYEH 0 111 Sindhi (2) Tagsc:Arab ڄ U+0684 blocked
ڄ U+0684 ARABIC LETTER DYEH 0 111 Sindhi (2) Tagsc:Arab ڃ U+0683 blocked
څ U+0685 ARABIC LETTER HAH WITH THREE DOTS ABOVE 0 108 138 Pashto (1) Tagsc:Arab
چ U+0686 ARABIC LETTER TCHEH 0 109 Persian (1) Tagsc:Arab
ڇ U+0687 ARABIC LETTER TCHEHEH 0 111 Sindhi (2) Tagsc:Arab
ڈ U+0688 ARABIC LETTER DDAL 0 112 Urdu (1) Tagsc:Arab
ډ U+0689 ARABIC LETTER DAL WITH RING 0 108 138 Pashto (1) Tagsc:Arab
ڊ U+068A ARABIC LETTER DAL WITH DOT BELOW 0 111 Sindhi (2) Tagsc:Arab
ڋ U+068B ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH 0 110 Saraiki (4) Tagsc:Arab
ڌ U+068C ARABIC LETTER DAHAL 0 111 Sindhi (2) Tagsc:Arab
ڍ U+068D ARABIC LETTER DDAHAL 0 111 Sindhi (2) Tagsc:Arab
ڎ U+068E ARABIC LETTER DUL 0 137 Malay (1) Tagsc:Arab ڏ U+068F blocked
ڏ U+068F ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS 0 111 Sindhi (2) Tagsc:Arab ڎ U+068E blocked
ڑ U+0691 ARABIC LETTER RREH 0 112 Urdu (1) Tagsc:Arab
ړ U+0693 ARABIC LETTER REH WITH RING 0 108 138 Pashto (1) Tagsc:Arab
ڕ U+0695 ARABIC LETTER REH WITH SMALL V BELOW 0 106 140 Kurdish (1) Tagsc:Arab
ږ U+0696 ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE 0 108 138 Pashto (1) Tagsc:Arab
ڗ U+0697 ARABIC LETTER REH WITH TWO DOTS ABOVE 0 119 146 ANT Tagsc:Arab
ژ U+0698 ARABIC LETTER JEH 0 112 Urdu (1) Tagsc:Arab
ڙ U+0699 ARABIC LETTER REH WITH FOUR DOTS ABOVE 0 111 143 Sindhi (2), Torwali (6b) Tagsc:Arab
ښ U+069A ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE 0 108 138 Pashto (1) Tagsc:Arab
ڟ U+069F ARABIC LETTER TAH WITH THREE DOTS ABOVE 0 121 123 130 Hausa (2), Ajami Tagsc:Arab
ڠ U+06A0 ARABIC LETTER AIN WITH THREE DOTS ABOVE 0 107 129 144 Malay (1) Tagsc:Arab
ڢ U+06A2 ARABIC LETTER FEH WITH DOT MOVED BELOW 0 101 130 131 132 Ajami, Fulfulde (3), Hausa (2) Tagsc:Arab ف U+0641 allocatable ق U+0642 blocked ڧ U+06A7 blocked
ڤ U+06A4 ARABIC LETTER VEH 0 106 107 127 140 Malay (1), Kurdish (1) Tagsc:Arab ڨ U+06A8 blocked
ڦ U+06A6 ARABIC LETTER PEHEH 0 111 Sindhi (2) Tagsc:Arab
ڧ U+06A7 ARABIC LETTER QAF WITH DOT ABOVE 0 101 130 131 132 Ajami, Fulfulde (3), Hausa (2) Tagsc:Arab ف U+0641 blocked ق U+0642 allocatable ڢ U+06A2 blocked
ڨ U+06A8 ARABIC LETTER QAF WITH THREE DOTS ABOVE 0 124 Western Arabic Tagsc:Arab ڤ U+06A4 blocked
ک U+06A9 ARABIC LETTER KEHEH 0 112 Urdu (1) Tagsc:Arab ك U+0643 allocatable ڪ U+06AA allocatable
Comment The two have similar (interchangeable) shapes in initial and medial positions and are used by different language communities to refer to the same letter
ڪ U+06AA ARABIC LETTER SWASH KAF 0 111 Sindhi (2) Tagsc:Arab ك U+0643 allocatable ک U+06A9 allocatable
ګ U+06AB ARABIC LETTER KAF WITH RING 0 108 138 Pashto (1) Tagsc:Arab ڭ U+06AD blocked گ U+06AF blocked U+06AB KAF WITH RING interchangeably used in Pashto with U+06AF GAF ݣ U+0763 blocked
ڭ U+06AD ARABIC LETTER NG 0 105 114 133 134 Kirghiz (1), Uyghur (2) Tagsc:Arab ګ U+06AB blocked گ U+06AF blocked ݣ U+0763 blocked
ڮ U+06AE ARABIC LETTER KAF WITH THREE DOTS BELOW 0 116 ANT Tagsc:Arab
گ U+06AF ARABIC LETTER GAF 0 109 Persian (1) Tagsc:Arab ګ U+06AB blocked ڭ U+06AD blocked ݣ U+0763 blocked
Comment Iraqi Arabic uses U+06AF GAF, whereas Moroccan Arabic uses U+0763 KEHEH WITH THREE DOTS ABOVE
ڰ U+06B0 ARABIC LETTER GAF WITH RING 0 110 Saraiki (4) Tagsc:Arab
ڱ U+06B1 ARABIC LETTER NGOEH 0 111 Sindhi (2) Tagsc:Arab
ڳ U+06B3 ARABIC LETTER GUEH 0 111 Sindhi (2) Tagsc:Arab
ڵ U+06B5 ARABIC LETTER LAM WITH SMALL V 0 106 140 Kurdish (1) Tagsc:Arab
ں U+06BA ARABIC LETTER NOON GHUNNA 0 112 Urdu (1) Tagsc:Arab ن U+0646 allocatable
ڻ U+06BB ARABIC LETTER RNOON 0 111 Sindhi (2) Tagsc:Arab ٹ U+0679 blocked
ڼ U+06BC ARABIC LETTER NOON WITH RING 0 108 138 Pashto (1) Tagsc:Arab
ڽ U+06BD ARABIC LETTER NOON WITH THREE DOTS ABOVE 0 107 Malay (1) Tagsc:Arab پ U+067E blocked ۑ U+06D1 blocked ݒ U+0752 blocked
ھ U+06BE ARABIC LETTER HEH DOACHASHMEE 0 112 Urdu (1) Tagsc:Arab ة U+0629 blocked ه U+0647 blocked ۀ U+06C0 blocked ہ U+06C1 blocked ۂ U+06C2 blocked ۃ U+06C3 blocked +1 more
ۀ U+06C0 ARABIC LETTER HEH WITH YEH ABOVE 0 116 140 ANT, Kurdish (1) Tagsc:Arab ة U+0629 blocked ه U+0647 blocked ھ U+06BE blocked ہ U+06C1 blocked ۂ U+06C2 blocked ۃ U+06C3 blocked +1 more
ہ U+06C1 ARABIC LETTER HEH GOAL 0 112 Urdu (1) Tagsc:Arab ة U+0629 blocked ه U+0647 allocatable ھ U+06BE blocked ۀ U+06C0 blocked ۂ U+06C2 blocked ۃ U+06C3 blocked
Comment This is not allocatable in either direction because, unlike the allocatable relationship between U+0647 HEH and U+0629 TEH MARBUTA due to variation in the Arabic language, Urdu and other languages using U+06C1 HEH GOAL do not exhibit such variation with U+06C3 TEH MARBUTA GOAL
+1 more
ۂ U+06C2 ARABIC LETTER HEH GOAL WITH HAMZA ABOVE 0 125 135 141 Urdu (1) Tagsc:Arab ة U+0629 blocked ه U+0647 blocked ھ U+06BE blocked ۀ U+06C0 blocked ہ U+06C1 allocatable U+06C2 HEH GOAL WITH HAMZA ABOVE is simplified to U+06C1 HEH GOAL in Urdu ۃ U+06C3 blocked +1 more
ۃ U+06C3 ARABIC LETTER TEH MARBUTA GOAL 0 126 Urdu (1) Tagsc:Arab ة U+0629 allocatable ه U+0647 blocked ھ U+06BE blocked ۀ U+06C0 blocked ہ U+06C1 blocked ۂ U+06C2 blocked +1 more
ۄ U+06C4 ARABIC LETTER WAW WITH RING 0 102 Kashmiri (4) Tagsc:Arab
ۆ U+06C6 ARABIC LETTER OE 0 102 140 142 Kashmiri (4), Kurdish (1), Uyghur (2) Tagsc:Arab
ۋ U+06CB ARABIC LETTER VE 0 103 114 136 Kazakh (1), Kirghiz (1), Uyghur (2) Tagsc:Arab
ی U+06CC ARABIC LETTER FARSI YEH 0 112 Urdu (1) Tagsc:Arab ئ U+0626 blocked ى U+0649 blocked ي U+064A allocatable ٻ U+067B blocked ۍ U+06CD blocked ې U+06D0 blocked +1 more
ۍ U+06CD ARABIC LETTER YEH WITH TAIL 0 108 138 Pashto (1) Tagsc:Arab ئ U+0626 blocked ى U+0649 blocked ي U+064A blocked ٻ U+067B blocked ی U+06CC blocked ې U+06D0 blocked +1 more
ێ U+06CE ARABIC LETTER YEH WITH SMALL V 0 127 140 Kurdish (1) Tagsc:Arab
ۏ U+06CF ARABIC LETTER WAW WITH DOT ABOVE 3 107 Malay (1) Tagsc:Arab
ې U+06D0 ARABIC LETTER E 0 108 138 Pashto (1) Tagsc:Arab ئ U+0626 blocked ى U+0649 blocked ي U+064A blocked ٻ U+067B blocked ی U+06CC blocked ۍ U+06CD blocked +1 more
ۑ U+06D1 ARABIC LETTER YEH WITH THREE DOTS BELOW 0 122 Bamana (4), Mandika (5) Tagsc:Arab پ U+067E blocked ڽ U+06BD blocked ݒ U+0752 blocked
ے U+06D2 ARABIC LETTER YEH BARREE 0 112 Urdu (1) Tagsc:Arab ئ U+0626 blocked ى U+0649 blocked ي U+064A blocked ٻ U+067B blocked ی U+06CC blocked ۍ U+06CD blocked +1 more
ە U+06D5 ARABIC LETTER AE 0 106 114 140 Kurdish (1), Uyghur (2) Tagsc:Arab ة U+0629 blocked ه U+0647 blocked ھ U+06BE blocked ۀ U+06C0 blocked ہ U+06C1 blocked ۂ U+06C2 blocked +1 more
۰ U+06F0 EXTENDED ARABIC-INDIC DIGIT ZERO 0 109 TagExtended-arabic-indic-digitTagsc:Arab Contextnot leading-digit 0 U+0030 activated ASCII digit variant ٠ U+0660 activated Arabic digit variant
۱ U+06F1 EXTENDED ARABIC-INDIC DIGIT ONE 0 109 TagExtended-arabic-indic-digitTagsc:Arab Contextnot leading-digit 1 U+0031 activated ASCII digit variant ١ U+0661 activated Arabic digit variant
۲ U+06F2 EXTENDED ARABIC-INDIC DIGIT TWO 0 109 TagExtended-arabic-indic-digitTagsc:Arab Contextnot leading-digit 2 U+0032 activated ASCII digit variant ٢ U+0662 activated Arabic digit variant
۳ U+06F3 EXTENDED ARABIC-INDIC DIGIT THREE 0 109 TagExtended-arabic-indic-digitTagsc:Arab Contextnot leading-digit 3 U+0033 activated ASCII digit variant ٣ U+0663 activated Arabic digit variant
۴ U+06F4 EXTENDED ARABIC-INDIC DIGIT FOUR 0 109 TagExtended-arabic-indic-digitTagsc:Arab Contextnot leading-digit 4 U+0034 activated ASCII digit variant ٤ U+0664 activated Arabic digit variant
۵ U+06F5 EXTENDED ARABIC-INDIC DIGIT FIVE 0 109 TagExtended-arabic-indic-digitTagsc:Arab Contextnot leading-digit 5 U+0035 activated ASCII digit variant ٥ U+0665 activated Arabic digit variant
۶ U+06F6 EXTENDED ARABIC-INDIC DIGIT SIX 0 109 TagExtended-arabic-indic-digitTagsc:Arab Contextnot leading-digit 6 U+0036 activated ASCII digit variant ٦ U+0666 activated Arabic digit variant
۷ U+06F7 EXTENDED ARABIC-INDIC DIGIT SEVEN 0 109 TagExtended-arabic-indic-digitTagsc:Arab Contextnot leading-digit 7 U+0037 activated ASCII digit variant ٧ U+0667 activated Arabic digit variant
۸ U+06F8 EXTENDED ARABIC-INDIC DIGIT EIGHT 0 109 TagExtended-arabic-indic-digitTagsc:Arab Contextnot leading-digit 8 U+0038 activated ASCII digit variant ٨ U+0668 activated Arabic digit variant
۹ U+06F9 EXTENDED ARABIC-INDIC DIGIT NINE 0 109 TagExtended-arabic-indic-digitTagsc:Arab Contextnot leading-digit 9 U+0039 activated ASCII digit variant ٩ U+0669 activated Arabic digit variant
ݑ U+0751 ARABIC LETTER BEH WITH DOT BELOW AND THREE DOTS ABOVE 7 121 128 130 147 Hausa (2), Wolof (3) Tagsc:Arab
ݒ U+0752 ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW 7 113 130 Ajami, Wolof (3) Tagsc:Arab پ U+067E blocked ڽ U+06BD blocked ۑ U+06D1 blocked
ݖ U+0756 ARABIC LETTER BEH WITH SMALL V 7 113 120 130 Ajami, Wolof (3) Tagsc:Arab
ݠ U+0760 ARABIC LETTER FEH WITH TWO DOTS BELOW 7 121 130 Ajami, Hausa (2) Tagsc:Arab
ݢ U+0762 ARABIC LETTER KEHEH WITH DOT ABOVE 7 118 129 Malay (1) Tagsc:Arab
ݣ U+0763 ARABIC LETTER KEHEH WITH THREE DOTS ABOVE 7 118 Moroccan (3) Tagsc:Arab ګ U+06AB blocked ڭ U+06AD blocked گ U+06AF blocked
ݦ U+0766 ARABIC LETTER MEEM WITH DOT BELOW 7 116 121 ANT Tagsc:Arab
ݧ U+0767 ARABIC LETTER NOON WITH TWO DOTS BELOW 7 113 120 Wolof (3) Tagsc:Arab ࢩ U+08A9 blocked
ݨ U+0768 ARABIC LETTER NOON WITH SMALL TAH 7 145 Saraiki (4) Tagsc:Arab
ݪ U+076A ARABIC LETTER LAM WITH BAR 7 113 116 120 ANT, Wolof (3) Tagsc:Arab
ݮ U+076E ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH BELOW 9 104 Khowar (3) Tagsc:Arab
ݯ U+076F ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH AND TWO DOTS 9 104 Khowar (3) Tagsc:Arab
ݰ U+0770 ARABIC LETTER SEEN WITH SMALL ARABIC LETTER TAH AND TWO DOTS 9 104 Khowar (3) Tagsc:Arab
ݱ U+0771 ARABIC LETTER REH WITH SMALL ARABIC LETTER TAH AND TWO DOTS 9 104 Khowar (3) Tagsc:Arab
ࢠ U+08A0 ARABIC LETTER BEH WITH SMALL V BELOW 12 117 DPLN Tagsc:Arab
ࢢ U+08A2 ARABIC LETTER JEEM WITH TWO DOTS ABOVE 12 117 DPLN Tagsc:Arab
ࢣ U+08A3 ARABIC LETTER TAH WITH TWO DOTS ABOVE 12 113 117 DPLN, Wolof (3) Tagsc:Arab
ࢤ U+08A4 ARABIC LETTER FEH WITH DOT BELOW AND THREE DOTS ABOVE 12 116 ANT Tagsc:Arab
ࢥ U+08A5 ARABIC LETTER QAF WITH DOT BELOW 12 116 ANT Tagsc:Arab
ࢦ U+08A6 ARABIC LETTER LAM WITH DOUBLE BAR 12 116 ANT Tagsc:Arab
ࢧ U+08A7 ARABIC LETTER MEEM WITH THREE DOTS ABOVE 12 116 ANT Tagsc:Arab
ࢨ U+08A8 ARABIC LETTER YEH WITH TWO DOTS BELOW AND HAMZA ABOVE 12 121 Hausa (2) Tagsc:Arab
ࢩ U+08A9 ARABIC LETTER YEH WITH TWO DOTS BELOW AND DOT ABOVE 12 121 Hausa (2) Tagsc:Arab ݧ U+0767 blocked

Variants

Code points grouped into sets of mutual variants. Every member of a set produces the same set of variant labels, so a registration of one has implications for all the others. Sets of a single member are omitted, as are the identity mappings RFC 7940 requires each member to declare.

26 variant sets, containing 252 variants.

Character classes

Named sets of code points that the rules below refer to.

NameDefinition
right-joining {jt:R}
dual-joining {jt:D}
joins-to-the-right ({right-joining} ∪ {dual-joining})
group1 [U+0629 U+0643 U+0649] Letters mostly used in the Arabic language
group2 [06A9-06AA U+06BE 06C1-06C3 U+06CC] Letters not commonly used in the Arabic language
common-digits {tag Common-digit} Digits from the ASCII range MSR default
arabic-indic-digits {tag Arabic-indic-digit} Arabic-Indic digits; MSR default
extended-arabic-indic-digits {tag Extended-arabic-indic-digit} Extended Arabic-Indic digits

Rules

Conditions evaluated against a whole label, or against the context around a single code point. The notation borrows from regular expressions: ^ and $ anchor to the start and end of a label, . matches any code point, (?= ) and (?<= ) look ahead and behind, and * and + repeat. Two symbols are specific to rulesets: ◆ is the code point being tested, and ⟨name⟩ refers to another rule.

leading-combining-mark MSR default 150

RFC 5891 restrictions on placement of combining marks

^ ({gc:Mn} ∪ {gc:Mc})
Structure
  • ^ start
  • ({gc:Mn} ∪ {gc:Mc}) union
    • {gc:Mn} class
    • {gc:Mc} class
Referenced by 1 definition
  • action 3 (invalid)

hyphen-minus-disallowed MSR default 150

RFC 5891 restrictions on placement of U+002D HYPHEN-MINUS

( ( (?<= ^ ) ◆ ) │ ( ◆ (?= $ ) ) │ ( (?<= ^ . . U+002D ) ◆ ) )
Structure
  • ( ( (?<= ^ ) ◆ ) │ ( ◆ (?= $ ) ) │ ( (?<= ^ . . U+002D ) ◆ ) ) choice
    • (?<= ^ ) ◆ rule no leading hyphen
      • (?<= ^ ) look-behind
        • ^ start
      • ◆ anchor
    • ◆ (?= $ ) rule no trailing hyphen
      • ◆ anchor
      • (?= $ ) look-ahead
        • $ end
    • (?<= ^ . . U+002D ) ◆ rule no consecutive hyphens in third and fourth position in the label
      • (?<= ^ . . U+002D ) look-behind
        • ^ start
        • . any
        • . any
        • U+002D char hyphen-minus
      • ◆ anchor
Referenced by 1 definition
  • negative context of U+002D

language-mixing-restriction

a label/variant should avoid mixing languages

( ( {group1} .* {group2} ) │ ( {group2} .* {group1} ) )
Structure
  • ( ( {group1} .* {group2} ) │ ( {group2} .* {group1} ) ) choice
    • {group1} .* {group2} rule
      • {group1} class
      • .* any
      • {group2} class
    • {group2} .* {group1} rule
      • {group2} class
      • .* any
      • {group1} class
Referenced by 1 definition
  • action 1 (invalid)

leading-digit MSR default 160

RFC 5893 RTL labels cannot start with a digit

(?<= ^ ) ◆
Structure
  • (?<= ^ ) look-behind
    • ^ start
  • ◆ anchor
Referenced by 30 definitions
  • negative context of U+0030
  • negative context of U+0031
  • negative context of U+0032
  • negative context of U+0033
  • negative context of U+0034
  • negative context of U+0035
  • negative context of U+0036
  • negative context of U+0037
  • negative context of U+0038
  • negative context of U+0039
  • negative context of U+0660
  • negative context of U+0661
  • and 18 more

digit-mixing 160

RFC 5892 and RFC 5893 restrictions on mixing digits; extended to all three sets

( ( {common-digits} .* ( {arabic-indic-digits} │ {extended-arabic-indic-digits} ) ) │ ( {arabic-indic-digits} .* ( {common-digits} │ {extended-arabic-indic-digits} ) ) │ ( {extended-arabic-indic-digits} .* ( {common-digits} │ {arabic-indic-digits} ) ) )
Structure
  • ( ( {common-digits} .* ( {arabic-indic-digits} │ {extended-arabic-indic-digits} ) ) │ ( {arabic-indic-digits} .* ( {common-digits} │ {extended-arabic-indic-digits} ) ) │ ( {extended-arabic-indic-digits} .* ( {common-digits} │ {arabic-indic-digits} ) ) ) choice
    • {common-digits} .* ( {arabic-indic-digits} │ {extended-arabic-indic-digits} ) rule
      • {common-digits} class
      • .* any
      • ( {arabic-indic-digits} │ {extended-arabic-indic-digits} ) choice
        • {arabic-indic-digits} class
        • {extended-arabic-indic-digits} class
    • {arabic-indic-digits} .* ( {common-digits} │ {extended-arabic-indic-digits} ) rule
      • {arabic-indic-digits} class
      • .* any
      • ( {common-digits} │ {extended-arabic-indic-digits} ) choice
        • {common-digits} class
        • {extended-arabic-indic-digits} class
    • {extended-arabic-indic-digits} .* ( {common-digits} │ {arabic-indic-digits} ) rule
      • {extended-arabic-indic-digits} class
      • .* any
      • ( {common-digits} │ {arabic-indic-digits} ) choice
        • {common-digits} class
        • {arabic-indic-digits} class
Referenced by 1 definition
  • action 2 (invalid)

initial-or-medial-position

U+0649 ALEF MAKSURA must not be in initial or medial position

◆ (?= {joins-to-the-right} )
Structure
  • ◆ anchor
  • (?= {joins-to-the-right} ) look-ahead
    • {joins-to-the-right} class
Referenced by 1 definition
  • negative context of U+0649

no-mix-heh-goal 100

WLE Rule 4: do not mix Arabic letters HEH and HEH GOAL in the same label

( ( U+0647 .* U+06C1 ) │ ( U+06C1 .* U+0647 ) )
Structure
  • ( ( U+0647 .* U+06C1 ) │ ( U+06C1 .* U+0647 ) ) choice
    • U+0647 .* U+06C1 rule
      • U+0647 char
      • .* any
      • U+06C1 char
    • U+06C1 .* U+0647 rule
      • U+06C1 char
      • .* any
      • U+0647 char
Referenced by 1 definition
  • action 5 (invalid)

no-mix-heh-goal-ae 100

WLE Rule 5: do not mix Arabic letters HEH GOAL and AE in the same label

( ( U+06C1 .* U+06D5 ) │ ( U+06D5 .* U+06C1 ) )
Structure
  • ( ( U+06C1 .* U+06D5 ) │ ( U+06D5 .* U+06C1 ) ) choice
    • U+06C1 .* U+06D5 rule
      • U+06C1 char
      • .* any
      • U+06D5 char
    • U+06D5 .* U+06C1 rule
      • U+06D5 char
      • .* any
      • U+06C1 char
Referenced by 1 definition
  • action 6 (invalid)

no-mix-heh-ae 100

WLE Rule 6: do not mix Arabic letters HEH and AE in the same label

( ( U+0647 .* U+06D5 ) │ ( U+06D5 .* U+0647 ) )
Structure
  • ( ( U+0647 .* U+06D5 ) │ ( U+06D5 .* U+0647 ) ) choice
    • U+0647 .* U+06D5 rule
      • U+0647 char
      • .* any
      • U+06D5 char
    • U+06D5 .* U+0647 rule
      • U+06D5 char
      • .* any
      • U+0647 char
Referenced by 1 definition
  • action 7 (invalid)

no-mix-heh-doachashmee 100

WLE Rule 7: do not mix Arabic letters HEH and HEH DOACHASHMEE in the same label

( ( U+0647 .* U+06BE ) │ ( U+06BE .* U+0647 ) )
Structure
  • ( ( U+0647 .* U+06BE ) │ ( U+06BE .* U+0647 ) ) choice
    • U+0647 .* U+06BE rule
      • U+0647 char
      • .* any
      • U+06BE char
    • U+06BE .* U+0647 rule
      • U+06BE char
      • .* any
      • U+0647 char
Referenced by 1 definition
  • action 8 (invalid)

no-mix-noon-with-three-dots-above-yeh-with-three-dots-below 100

WLE Rule 9: do not mix Arabic letters NOON WITH THREE DOTS ABOVE and YEH WITH THREE DOTS BELOW in the same label

( ( U+06BD .* U+06D1 ) │ ( U+06D1 .* U+06BD ) )
Structure
  • ( ( U+06BD .* U+06D1 ) │ ( U+06D1 .* U+06BD ) ) choice
    • U+06BD .* U+06D1 rule
      • U+06BD char
      • .* any
      • U+06D1 char
    • U+06D1 .* U+06BD rule
      • U+06D1 char
      • .* any
      • U+06BD char
Referenced by 1 definition
  • action 9 (invalid)

no-mix-peh-noon-with-three-dots-above 100

WLE Rule 10: do not mix Arabic letters PEH and NOON WITH THREE DOTS ABOVE in the same label

( ( U+067E .* U+06BD ) │ ( U+06BD .* U+067E ) )
Structure
  • ( ( U+067E .* U+06BD ) │ ( U+06BD .* U+067E ) ) choice
    • U+067E .* U+06BD rule
      • U+067E char
      • .* any
      • U+06BD char
    • U+06BD .* U+067E rule
      • U+06BD char
      • .* any
      • U+067E char
Referenced by 1 definition
  • action 10 (invalid)

no-mix-feh-with-dot-moved-below 100

WLE 11:do not mix Arabic letters FEH and FEH WITH DOT MOVED BELOW in the same label

( ( U+0641 .* U+06A2 ) │ ( U+06A2 .* U+0641 ) )
Structure
  • ( ( U+0641 .* U+06A2 ) │ ( U+06A2 .* U+0641 ) ) choice
    • U+0641 .* U+06A2 rule
      • U+0641 char
      • .* any
      • U+06A2 char
    • U+06A2 .* U+0641 rule
      • U+06A2 char
      • .* any
      • U+0641 char
Referenced by 1 definition
  • action 11 (invalid)

no-mix-qaf-with-dot-above 100

WLE Rule 12: do not mix Arabic letters QAF and QAF WITH DOT ABOVE in the same label

( ( U+0642 .* U+06A7 ) │ ( U+06A7 .* U+0642 ) )
Structure
  • ( ( U+0642 .* U+06A7 ) │ ( U+06A7 .* U+0642 ) ) choice
    • U+0642 .* U+06A7 rule
      • U+0642 char
      • .* any
      • U+06A7 char
    • U+06A7 .* U+0642 rule
      • U+06A7 char
      • .* any
      • U+0642 char
Referenced by 1 definition
  • action 12 (invalid)

no-mix-feh-qaf-with-dot-above 100

WLE Rule 13: do not mix Arabic letters FEH and QAF WITH DOT ABOVE in the same label

( ( U+0641 .* U+06A7 ) │ ( U+06A7 .* U+0641 ) )
Structure
  • ( ( U+0641 .* U+06A7 ) │ ( U+06A7 .* U+0641 ) ) choice
    • U+0641 .* U+06A7 rule
      • U+0641 char
      • .* any
      • U+06A7 char
    • U+06A7 .* U+0641 rule
      • U+06A7 char
      • .* any
      • U+0641 char
Referenced by 1 definition
  • action 13 (invalid)

no-mix-kaf-with-ring-gaf 100

WLE Rule 14: do not mix Arabic letters KAF WITH RING and GAF in the same label

( ( U+06AB .* U+06AF ) │ ( U+06AF .* U+06AB ) )
Structure
  • ( ( U+06AB .* U+06AF ) │ ( U+06AF .* U+06AB ) ) choice
    • U+06AB .* U+06AF rule
      • U+06AB char
      • .* any
      • U+06AF char
    • U+06AF .* U+06AB rule
      • U+06AF char
      • .* any
      • U+06AB char
Referenced by 1 definition
  • action 14 (invalid)

no-mix-kaf-with-ring-keheh-with-three-dots-above 100

WLE Rule 15: do not mix Arabic letters KAF WITH RING and KEHEH WITH THREE DOTS ABOVE

( ( U+06AB .* U+0763 ) │ ( U+0763 .* U+06AB ) )
Structure
  • ( ( U+06AB .* U+0763 ) │ ( U+0763 .* U+06AB ) ) choice
    • U+06AB .* U+0763 rule
      • U+06AB char
      • .* any
      • U+0763 char
    • U+0763 .* U+06AB rule
      • U+0763 char
      • .* any
      • U+06AB char
Referenced by 1 definition
  • action 15 (invalid)

no-mix-gaf-keheh-with-three-dots-above 100

WLE Rule 16: do not mix Arabic letters GAF and KEHEH WITH THREE DOTS ABOVE in the same label

( ( U+06AF .* U+0763 ) │ ( U+0763 .* U+06AF ) )
Structure
  • ( ( U+06AF .* U+0763 ) │ ( U+0763 .* U+06AF ) ) choice
    • U+06AF .* U+0763 rule
      • U+06AF char
      • .* any
      • U+0763 char
    • U+0763 .* U+06AF rule
      • U+0763 char
      • .* any
      • U+06AF char
Referenced by 1 definition
  • action 16 (invalid)

Actions

Actions are evaluated in the order shown. The first action whose conditions match determines the disposition of the label.

Actions in precedence order
# Disposition Conditions
1 invalid label matches language-mixing-restriction all labels (including variants) must avoid unnecessary language mixing
2 invalid label matches digit-mixing 160 a label matching the RFC 5892 and RFC 5893 restriction on digit mixing is invalid
3 invalid label matches leading-combining-mark 150 labels with leading combining marks are invalid MSR default
4 invalid any variant is out-of-repertoire-var any variant label with a code point out of repertoire is invalid MSR default
5 invalid label matches no-mix-heh-goal do not mix Arabic letters HEH and HEH GOAL in the same label
6 invalid label matches no-mix-heh-goal-ae do not mix Arabic letters HEH GOAL and AE in the same label
7 invalid label matches no-mix-heh-ae do not mix Arabic letters HEH and AE in the same label
8 invalid label matches no-mix-heh-doachashmee do not mix Arabic letters HEH and HEH DOACHASHMEE in the same label
9 invalid label matches no-mix-noon-with-three-dots-above-yeh-with-three-dots-below do not mix Arabic letters NOON WITH THREE DOTS ABOVE and YEH WITH THREE DOTS BELOW in the same label
10 invalid label matches no-mix-peh-noon-with-three-dots-above do not mix Arabic letters PEH and NOON WITH THREE DOTS ABOVE in the same label
11 invalid label matches no-mix-feh-with-dot-moved-below do not mix Arabic letters FEH and FEH WITH DOT MOVED BELOW in the same label
12 invalid label matches no-mix-qaf-with-dot-above do not mix Arabic letters QAF and QAF WITH DOT ABOVE in the same label
13 invalid label matches no-mix-feh-qaf-with-dot-above do not mix Arabic letters FEH and QAF WITH DOT ABOVE in the same label
14 invalid label matches no-mix-kaf-with-ring-gaf do not mix Arabic letters KAF WITH RING and GAF in the same label
15 invalid label matches no-mix-kaf-with-ring-keheh-with-three-dots-above do not mix Arabic letters KAF WITH RING and KEHEH WITH THREE DOTS ABOVE
16 invalid label matches no-mix-gaf-keheh-with-three-dots-above do not mix Arabic letters GAF and KEHEH WITH THREE DOTS ABOVE in the same label
17 blocked any variant is blocked any variant label containing blocked variants is blocked MSR default
18 blocked any variant is optionally-allocatable optional allocation for certain within-repertoire variants; to make allocation possible, change (blocked) to (allocatable)
19 allocatable any variant is optionally-activated optional delegation for certain cross-repertoire variants; to make delegation mandatory, change (allocatable) to (activated)
20 activated any variant is activated variant labels containing activated variants are activated
21 allocatable all variants are allocatable variant labels with all variants allocatable are allocatable MSR default
22 valid any label default catch all (default action) MSR default

References

RefSource
0 The Unicode Standard, Version 1.1
Any code point originally encoded in Unicode Version 1.1
3 The Unicode Standard, Version 3.0
Any code point originally encoded in Unicode Version 3.0
7 The Unicode Standard, Version 4.1
Any code point originally encoded in Unicode Version 4.1
9 The Unicode Standard, Version 5.1
Any code point originally encoded in Unicode Version 5.1
11 The Unicode Standard, Version 6.0
Any code point originally encoded in Unicode Version 6.0
12 The Unicode Standard, Version 6.1
Any code point originally encoded in Unicode Version 6.1
100 RFC 5564 Linguistic Guidelines for the Use of the Arabic Language in Internet Domains https://tools.ietf.org/html/rfc5564
101 Omniglot, “Hausa” https://omniglot.com/writing/hausa.htm
102 Omniglot, “Kashmiri” https://omniglot.com/writing/kashmiri.htm
103 Omniglot, “Kazakh” https://omniglot.com/writing/kazakh.htm
104 Omniglot, “Khowar” https://omniglot.com/writing/khowar.htm
105 Omniglot, “Kirghiz” https://omniglot.com/writing/kirghiz.htm
106 Omniglot, “Kurdish” https://omniglot.com/writing/kurdish.htm
107 Omniglot, “Malay” https://omniglot.com/writing/malay.htm
108 Omniglot, “Pashto” https://omniglot.com/writing/pashto.htm
109 Omniglot, “Persian(Farsi)” https://omniglot.com/writing/persian.htm
110 Omniglot, “Saraiki” https://omniglot.com/writing/saraiki.htm
111 Omniglot, “Sindhi” https://omniglot.com/writing/sindhi.htm
112 Omniglot, “Urdu” https://omniglot.com/writing/urdu.htm
113 Omniglot, “Wolof” https://omniglot.com/writing/wolof.htm
114 Omniglot, “Uyghur” https://omniglot.com/writing/uyghur.htm
115 Unicode, Kashmiri, Yeh https://www.unicode.org/L2/L2009/09215-kashmiri.pdf
116 Unicode, Chad ANT, pp. 19-20 https://www.unicode.org/L2/L2010/10288r-arabic-proposal.pdf
117 Unicode, DPLN, p.21 https://www.unicode.org/L2/L2010/10288r-arabic-proposal.pdf
118 Unicode, Jawi and Moroccan Arabic GAF, https://www.unicode.org/L2/L2003/03176-gafs.pdf
119 Unicode, Chadian, p.5 https://www.unicode.org/L2/L2010/10288r-arabic-proposal.pdf
120 Wolof, Paul Timothy https://paul-timothy.net/pages/ajamisenegal/primers/je_sais_le_wolofal_harmattan_20-oct-2015_a4.pdf
121 Hausa, pp. 261-289 Warren-Rothlin, Andy (2014): West African scripts and Arabic-script orthographies in socio-political context. Meikal Mumin, Kees (C.) H. Versteegh (Eds.): The Arabic script in Africa. Studies in the use of a writing system. Leiden, Boston: Brill (Studies in Semitic Languages and Linguistics, 71)
122 Mandika, Bamana, pp. 225-260 Vydrin, Valentin Feodos’evich; Dumestre, Gérard (2014): Manding Ajami samples. In Meikal Mumin, Kees (C.) H. Versteegh (Eds.): The Arabic script in Africa. Studies in the use of a writing system. Leiden, Boston: Brill (Studies in Semitic Languages and Linguistics, 71)
123 Ethiopian, Wetter, Andreas (2006): Arabic in Ethiopia. In Kees (C.) H. Versteegh (Ed.): Encyclopedia of Arabic Language and Linguistics. Volume I. A-Ed, vol. 2. With assistance of Mushira Eid, Alaa Elgibali, Manfred Woidich, Andrzej Zaborski. Leiden: E. J. Brill, pp. 51-56.
124 Western Arabic, Qaf with three dots above, city of Gabes, Tunisia
125 Urdu, Heh goal with hamza above, Section 3 in https://www.columbia.edu/~mk2580/urdu_section/handouts/izafat.pdf
126 Urdu, Teh marbuta goal, Code point UZT 76 of Urdu Zabta Takhti 1.01, the official code page standard for Govt. of Pakistan, approved in 2001; see https://cle.org.pk/Publication/papers/2001/uzt1.01.pdf
127 Kurdish-Sorani, p.7 in https://www.fas.harvard.edu/~iranian/Sorani/sorani_1_grammar.pdf
128 Wolof, Beh with dot below and three dots above, “Wolofal Orthography” by Galen Currah, revised 20 May 2011
129 Malay, Jawi Keyboard standard by Department of Standards Malaysia https://en.wikipedia.org/wiki/Jawi_keyboard (Accessed on 13 November 2015)
130 Ajami usage, “Language planning in West Africa - who writes the script?” by Friederike Lüpke; https://www.elpublishing.org/docs/1/02/ldd02_08.pdf
131 Scott Clark, “Alphabet and Orthography Statement For Fulfulde [FUB] Ajamiya”, SIL, Yaoundé, Cameroon, 2007, https://www.sil.org/system/files/reapdata/11/59/46/115946668959791144133440092187534320035/AlphabetandOrthographyStatementforFulfuldeFUBAjamiyafortheinternet.pdf (Accessed on June 17 2019)
132 Hausa, Newspapers and books published in Hausa using Arabic script, https://aflang.humanities.ucla.edu/language-materials/chadic-languages/hausa/hausa-online-grammar/pronunciation-writing/hausa-writing/
133 Kyrgyz, https://www.ethnologue.com/language/kir
134 Kyrgyz, https://www.ethnologue.com/country/CN/languages
135 Urdu, https://www.bbc.com/urdu
136 Wikipedia: “Kyrgyz alphabets”, https://en.wikipedia.org/wiki/Kazakh_alphabets (accessed on 13 November 2015)
137 Malay, Information technology - Jawi Coded Character Set for Information Interchange MS 2443:2012, Department of Standards, Malaysia. https://www.jsm.gov.my
138 Pashto Academy Peshawar University
140 Kurdish, https://kurdpress.com/
141 Internet Architecture Board (IAB), “IAB Statement on Identifiers and Unicode 7.0.0” https://www.iab.org/documents/correspondence-reports-documents/2015-2/iab-statement-on-identifiers-and-unicode-7-0-0/
Combining Hamza not recommended for use by IAB statement and combining marks not included by TF-AIDN; So combined form needs to be included
142 An introduction to Latin-Script Uyghur: by Waris Abdukerim Janbaz ,State Library of Victoria, 2006, https://docplayer.net/42224797-An-introduction-to-latin-script-uyghur.html
143 Torwali online and printed dictionaries
144 Wikipedia: “Jawi keyboard” https://en.wikipedia.org/wiki/Jawi_keyboard (Accessed on 13 November 2015)
145 Wikipedia: “Saraiki alphabet” https://en.wikipedia.org/wiki/Saraiki_alphabet (Accessed on 13 November 2015)
146 ANT (Alphabet National du Tchad) is the national standard for Chad/Tchad; See Figures in L2/10-288R (used for “tr” sound as given in the table in Section 6.1.2): https://www.unicode.org/L2/L2010/10288r-arabic-proposal.pdf and Appendix B
147 Wolof, https://www.openbookpublishers.com/htmlreader/978-1-78374-062-8/11.Ngom.xhtml
150 RFC 5891, Internationalized Domain Names in Applications (IDNA): Protocol https://tools.ietf.org/html/rfc5891
160 RFC 5893, Right-to-Left Scripts for Internationalized Domain Names for Applications (IDNA) https://tools.ietf.org/html/rfc5893
201 Omniglot Arabic https://www.omniglot.com/writing/arabic.htm
401 The Unicode Consortium, Common Locale Data Repository.- CLDR Version 28 (2015-09-16)- Locale Data Summary for Arabic (ar)- https://www.unicode.org/cldr/charts/28/summary/ar.html
Code points cited are from the set of Main Letters
600 Wikipedia Arabic alphabet https://en.wikipedia.org/wiki/Arabic_alphabet accessed 2015-10-31
Code points cited are from the set of Basic letters
700 Saudi Network Information Center (.sa, Saudi Arabia ccTLD) https://www.iana.org/domains/idn-tables/tables/sa_ar_2.0.pdf