Skip to content

Commit

Permalink
Merge pull request #303 from behdad/fonnapa
Browse files Browse the repository at this point in the history
Support Americanist Phonetic Notation
  • Loading branch information
brawer committed Aug 18, 2016
2 parents bd1aac9 + e7ecbba commit 547ddb0
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 2 deletions.
14 changes: 12 additions & 2 deletions src/hb-ot-tag.cc
Expand Up @@ -892,13 +892,21 @@ hb_ot_tag_from_language (hb_language_t language)
}

/*
* The International Phonetic Alphabet is a variant tag in BCP-47,
* which can be applied to any language.
* "fonipa" is a variant tag in BCP-47, meaning the International Phonetic Alphabet.
* It can be applied to any language.
*/
if (strstr (lang_str, "-fonipa")) {
return HB_TAG('I','P','P','H'); /* Phonetic transcription—IPA conventions */
}

/*
* "fonnapa" is a variant tag in BCP-47, meaning the North American Phonetic Alphabet
* also known as Americanist Phonetic Notation. It can be applied to any language.
*/
if (strstr (lang_str, "-fonnapa")) {
return HB_TAG('A','P','P','H'); /* Phonetic transcription—Americanist conventions */
}

/* Find a language matching in the first component */
{
const LangTag *lang_tag;
Expand Down Expand Up @@ -970,6 +978,8 @@ hb_ot_tag_to_language (hb_tag_t tag)

/* struct LangTag has only room for 3-letter language tags. */
switch (tag) {
case HB_TAG('A','P','P','H'): /* Phonetic transcription—Americanist conventions */
return hb_language_from_string ("und-fonnapa", -1);
case HB_TAG('I','P','P','H'): /* Phonetic transcription—IPA conventions */
return hb_language_from_string ("und-fonipa", -1);
}
Expand Down
6 changes: 6 additions & 0 deletions test/api/test-ot-tag.c
Expand Up @@ -232,6 +232,12 @@ test_ot_tag_language (void)
test_tag_from_language ("IPPH", "zh-fonipa");
test_tag_to_language ("IPPH", "und-fonipa");

/* North American Phonetic Alphabet (Americanist Phonetic Notation) */
test_tag_from_language ("APPH", "en-fonnapa");
test_tag_from_language ("APPH", "chr-fonnapa");
test_tag_from_language ("APPH", "und-fonnapa");
test_tag_to_language ("APPH", "und-fonnapa");

/* Test that x-hbot overrides the base language */
test_tag_from_language ("ABC", "fa-x-hbotabc-zxc");
test_tag_from_language ("ABC", "fa-ir-x-hbotabc-zxc");
Expand Down

0 comments on commit 547ddb0

Please sign in to comment.