Category: Language

  • CSS Counter Style with Gothic Numerals

    CSS Counter Style with Gothic Numerals

    With me making my Gothic language web pages, I realised it would be neat to have the HTML ordered list element showing Gothic numerals. And it turns out it’s possible with the new @counter-style CSS at-rule.

    Just add the following to the CSS:

    @counter-style gothic {
      system: additive;
      additive-symbols:
        900 𐍊, 800 𐍉, 700 𐍈, 600 𐍇, 500 𐍆, 400 𐍅, 300 𐍄, 200 𐍃, 100 𐍂,
         90 𐍁,  80 𐍀,  70 𐌿,  60 𐌾,  50 𐌽,  40 𐌼,  30 𐌻,  20 𐌺,  10 𐌹,
          9 𐌸,   8 𐌷,   7 𐌶,   6 𐌵,   5 𐌴,   4 𐌳,   3 𐌲,   2 𐌱,   1 𐌰;
      range: 1 999;
      prefix: "·";
      suffix: "· ";
    }

    Add list-style: gothic; to the ol element’s style:

    ol {
      list-style: gothic;
    }

    And then the following HTML:

    <ol>
      <li>List item 1</li>
      <li>List item 2</li>
      <li>List item 3</li>
      <li>List item 4</li>
      <li value="99">List item 99</li>
      <li>List item 100</li>
      <li>List item 101</li>
      <li value="111">List item 111</li>
      <li value="523">List item 523</li>
      <li value="1001">List item 1001</li>
    </ol>

    Results in:

    1. List item 1
    2. List item 2
    3. List item 3
    4. List item 4
    5. List item 99
    6. List item 100
    7. List item 101
    8. List item 111
    9. List item 523
    10. List item 1001

    As you can see, 1001 unfortunately ends up with the dots on each side too. Changing the prefix and suffix of the style referenced from the fallback descriptor did not seem to make a difference. It’s a relatively new browser feature (2023) so hopefully it’ll be possible to improve this in the future.

    Here is another use of the counter style from my Psalm translation:

    body
    {
      counter-reset: verse;
    }
    
    .verse::before
    {
      counter-increment: verse;
      content: "·" counter(verse, gothic) "·";
      /* Further style properties */
    }
    
    .psalm
    {
      /* As the first verse number is usually skipped, I've defaulted
      to start with verse number 2. This can be changed by setting
      `style='--init-verse: <N>'` on the element with the psalm class. */
      counter-set: verse calc(var(--init-verse, 2) - 1)
    }

    This adds a Gothic numeral before each verse, incrementing with each use of the verse class. Strangely, this method ignores the prefix and suffix properties in the above counter-style so they need to be added within the content property.

  • Sound Changes of the Indo-European Stop Consonants

    Sound Changes of the Indo-European Stop Consonants

    Indo-European languages are classified as either centum or satem languages. From their Proto-Indo-European (PIE) ancestor language, these two language groups developed two distinct stop consonant merger patterns. Out of interest I created some tables which roughly show the development of the stop consonants from PIE to the various Indo-European languages. The tables show which sounds they evolved to and also which sounds from PIE merged together.

    The following table shows centum and satem language difference nicely:

    gʷʰ labiovelars Merged in
    satem languages
    Merged in
    centum languages
    k g plain velars
    ǵ ǵʰ palatovelars Assibilated in
    satem languages

    The Proto-Indo-European stop consonants:

    p t k
    b d ǵ g
    ǵʰ gʷʰ

    The following are centum languages.

    Latin:

    p t c [k] qu [kʷ];
    c [k]
    b d g u/v [w>v];
    gu [ɡʷ]
    b; f d; f; b h; h/g f; g/u [w];
    gu [ɡʷ]

    Greek:

    p t k p; t; k
    b d g b; d; g
    ph [pʰ] th [tʰ] kh [kʰ] ph [pʰ];
    th [tʰ];
    kh [kʰ]

    Proto-Germanic:

    f [ɸ] þ [θ] h [x] hw [xʷ]
    p t k kw [kʷ]
    b [b~β] d [d~ð] g [ɡ~ɣ] gw [gʷ~ɣʷ];
    b; g; w

    Proto-Celtic:

    ɸ; b; w; p t k
    b d g b

    The following are satem languages.

    Sanskrit:

    p; ph [pʰ] t; th [t̪ʰ] ś [ɕ] k; c [t͡ɕ]; kh [kʰ]
    b; bh d; dh j [d͡ʑ]; h [ɦ] g; j [d͡ʑ]; gh; h [ɦ]
    bh [bʱ] dh [dʱ] h [ɦ] gh [ɡʱ]; h [ɦ]

    Old Church Slavic:

    p t s k; č [tʃ]; c [ts]
    b d z g; ž [ʒ]; dz

    Lithuanian:

    p t š [ʃ] k
    b d ž [ʒ] g

    With the mouse, hover over the red text to get more info.

    An example of these changes from the PIE word for “heart”:

    Proto-Indo-Europeanḗr/r̥d-
    Latincor/cord-
    Greekkardiá
    German (See Proto-Germanic)Herz
    Gothic (See Proto-Germanic)hairto
    Welsh (See Proto-Celtic)craidd
    Irish (See Proto-Celtic)croí
    Russian (See Old Church Slavic)sérdce
    Lithuanianširdis

    And another for the PIE word for “to convey”:

    Proto-Indo-Europeanweǵʰ
    Englishway, weigh
    Latinvehō
    Ancient Greekkhō
    German (See Proto-Germanic)Weg, Wagen
    Russian (See Old Church Slavic)vezǫ
    Lithuanianvežti