Giter Club home page Giter Club logo

phondue's Introduction

An IPA entry tool so good, it's delicious


Phondue (pronounced /fɔ̃dy/) is a tool for input of IPA symbols with the primary goal of being intuitive and easy to use.

Try Phondue in your browser here!

Compile with make from the root of the project, and then run by executing the phondue helper script.

screenshot

Usage

As seen in the above table, certain symbols of the IPA can be entered by clicking on them. However, it is far more efficient to use the many keyboard shortcuts that Phondue provides. These are called digraphs, since they are made up of two letters, and they allow you to type any IPA symbol with only a standard keyboard.

These symbols were decided to be intuitive as possible:

  • Many symbols that look similar to letters of the English alphabet (such as small caps) can be produced by doubling the capital letter:

      GG -> ɢ   ?? -> ʔ   NN -> ɴ   BB -> ʙ   RR -> ʀ   XX -> χ
      LL -> ʟ   II -> ɪ   YY -> ʏ   UU -> ʊ   EE -> ɛ   OO -> ɞ
      AA -> ɑ   '' -> ˈ   ,, -> ˌ   :: -> ː
    
  • The slash is used to "reflect," "rotate," or otherwise flip around a given symbol:

      ʀ/ -> ʁ   ʔ/ -> ʕ   ?/ -> ʕ   r/ -> ɹ   y/ -> ʎ   m/ -> ɯ
      o/ -> ø   e/ -> ə   ɛ/ -> ɜ   c/ -> ɔ   a/ -> ɐ   ɑ/ -> ɒ
      w/ -> ʍ   h/ -> ɥ   k/ -> ʞ   !/ -> ¡   v/ -> ʌ
    

    Also note that for any digraph, if either of the two characters that compose it are not "standard" letters you can find on your keyboard, the digraph can be done in reverse order—so since ʀ/ produces ʁ, you can press / again to go back to ʀ in case of accidental flippage (it's also weirdly amusing to press RR///////).

    This sometimes makes it easier to enter certain pairs; you may prefer to use AA for ɑ and AA/ for ɒ instead of the visual o| and |o.

  • Digraphs have also been designed for when a symbol looks like two overlayed characters, or two characters next to each other. This includes "hooked" letters (such as ŋ), produced with the original letter and a comma, and "stroked" letters (such as ɟ), produced with the original letter and a dash:

      m, -> ɱ   n, -> ŋ   ŋ, -> ɲ   v, -> ⱱ   c, -> ç   j, -> ʝ
      x, -> ɣ   ɣ, -> χ   h, -> ɦ   w, -> ɰ
    
      j- -> ɟ   h- -> ħ   l- -> ɬ   i- -> ɨ   u- -> ʉ   e- -> ɘ
      o- -> ɵ   ʕ- -> ʢ   ?- -> ʡ   ʔ- -> ʡ
    
      LZ -> ɮ   OX -> ɤ   XO -> ɤ   OE -> œ   EB -> ɞ   AE -> æ
      CE -> ɶ   RL -> ɺ   LR -> ɺ   ɾl -> ɺ   lɾ -> ɺ
    
      w| -> ɰ   o/ -> ø   ɜ( -> ɞ   /\ -> ʌ   o| -> ɑ   a| -> ɑ
      |o -> ɒ   |a -> ɒ
    
      o. -> ʘ   |= -> ǂ   || -> ‖   /^ -> ↗   /> -> ↗   \v -> ↘
      \> -> ↘
    
  • Others are based on pronunciation:

      PH -> ɸ   BH -> β   TH -> θ   DH -> ð   SH -> ʃ   ZH -> ʒ
      SJ -> ɕ   ZJ -> ʑ   ʃx -> ɧ   xʃ -> ɧ
    

    It may be worth noting at this point that digraphs of two lowercase letters were intentionally avoided to prevent interference with regular typing. If you need to type a sequence without it turning into a digraph (maybe you want to type an actual ʃx), place a backslash between the two characters (so, type ʃ\x).

    In fact, [backslash][anything] is treated as a digraph that simply resolves to the second character.

  • A few digraphs are based on shape:

      rO -> ɾ   r0 -> ɾ   vO -> ʋ   v0 -> ʋ
    

    Another related point: digraphs that contain a lowercase letter can also be typed with that letter as uppercase. So, if RO is easier to type than rO, that works as well.

  • Retroflex and nonpulmonic symbols have their own categories:

      retroflex: ) looks like the shape of the tongue
      t) -> ʈ   d) -> ɖ   n) -> ɳ   r) -> ɽ   ɾ) -> ɽ   s) -> ʂ
      z) -> ʐ   ɹ) -> ɻ   l) -> ɭ   ɗ) -> ᶑ
    
      clicks: clicking noise reminiscent of a *
      o* -> ʘ   |* -> ǀ   !* -> ǃ   =* -> ǁ
    
      implosives and ejective marker: direction of airflow
      b( -> ɓ   d( -> ɗ   j( -> ʄ   ɟ( -> ʄ   g( -> ɠ   ɢ( -> ʛ
      ɖ( -> ᶑ   ') -> ʼ
    
  • Superscripts and diacritics that go above the letter use ^, diacritics that go below use _, and miscellaneous "moved" symbols use < or >:

      ^h -> ʰ   ^n -> ⁿ   ^l -> ˡ   ^w -> ʷ   ^j -> ʲ   ^ɥ -> ᶣ
      ^ʋ -> ᶹ   ^ɣ -> ˠ   ^ʕ -> ˤ
    
      _| -> ◌̩   ^| -> ◌̍   _o -> ◌̥   ^o -> ◌̊   _v -> ◌̬   ^v -> ◌̌
    
      _^ -> ◌̯   _: -> ◌̤   _~ -> ◌̰   _[ -> ◌̪   _] -> ◌̺   _{ -> ◌̼
      _+ -> ◌̟   __ -> ◌̠   _) -> ◌̹   _( -> ◌̜   _# -> ◌̻   [] -> ◌̻
    
      ^> -> ◌̚   ^: -> ◌̈   ^x -> ◌̽   ^~ -> ◌̃
    
      -' -> ˔   _˔ -> ◌̝   -, -> ˕   _˕ -> ◌̞   <| -> ⊣   _⊣ -> ◌̘
      >| -> ⊢   _⊢ -> ◌̙
    
      ~~ -> ◌̴   >r -> ˞
    

    Note that all of these sequences can be flipped in order—that is, ^h produces the same thing as h^. This allows usage such as |<_ to produce ⊣_ which becomes ◌̘.

  • Tonal countours use numbers plus |:

      5| -> ˥   4| -> ˦   3| -> ˧   2| -> ˨   1| -> ˩
      +| -> ꜛ   -| -> ꜜ
    
  • Finally, some digraphs simply have unique mnemonics:

      ː-  -> ˑ   "chop off" the bottom triangle
      ((  -> ◌͡◌  two parens for a tie that connects 2 chars
      ))  -> ◌͜◌
      ◌͜◌) -> ‿   one more paren to make it a little bit longer
    

Other features

In the desktop version, the contents of the text input box are automatically copied to your clipboard whenever they are changed. This means you can type some stuff and immediately paste it anywhere without having to manually copy.

phondue's People

Contributors

tckmn avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.