Categories
general

Calendars and Usable Calendrical Calculations Code

Shane and I were busy this past summer May – August co-hosting our interns Andrew and Pedro, who worked hard on implementing more calendar systems in ICU4X. In the icu::calendar crate, they added the modules chinese, dangi (Korean), hebrew, islamic (includes civil, observational, tabular, and Umm-al-Qura), persian, and roc (Taiwan). The summer required us all learning a lot about calendar systems, and how dates and times are just smaller units of the larger calendar systems. Humans created those calendar systems to precisely calculate the mathematically messy phenomena we use to orient our lives: the spin of the Earth, the orbit of the moon, and the orbit of Earth. It turns out there is one book that authoritatively catalogs all human calendar systems. The following are short videos giving an introduction to what makes calendars interesting, and a properly working version of the code for the Calendrical Calculations book.

Categories
general

Face/Interface 2023

The Face/Interface 2023 event was interesting. I wasn’t there for the first iteration in 2017, but I still felt entertained to spend this second iteration with internationalization people I know & got to meet. It felt like 90% of the event was about fonts and typography, and only the remaining 10% was for keyboards/input methods, but nonetheless, I got to learn quite a few things about the field. More importantly, it was a chance to meet people in a related discipline who also care about better supporting languages/scripts/people around the world who need it the most, even though it requires volunteer effort in their free time to achieve. Making connections with people was one of the best things I have taken away from the event, including people to collaborate with on interesting followup work that can help even more people.

Categories
general i18n internationalization tamil thamil

Unicode Technology Workshop 2023

I’m happy that Unicode’s first Unicode Technology Workshop a month ago went well. The video recordings from the event are still being processed, but should be up soon. I’m looking forward to sending out my presentation to people, and working on a prototype for Malayalam next (and who knows what’s after, Devanagari? Balinese?) The event was so good that I defied my instincts and posted something on a social media platform (LinkedIn) after it was over:

Categories
general

See you at the Unicode Technology Workshop tomorrow

Our first Unicode Technology Workshop is about to happen, over the course of tomorrow and Wednesday. I’m looking forward seeing everyone there, joining the discussions, and hosting a session myself. It’s our first in-person event since the Unicode Conference 2 years ago. However, as I wrote recently, we have had a different outlook for engaging a wider audience, as evidenced by our 7 online events in the last year, and videos up on our Unicode Youtube channel. More to follow.

Categories
general

Rendering Arabic in Computers

Here’s a fun and interesting crash course in Arabic letters:

The way it ended reminded me of what Kumail Nanjiani had said a few years prior about the same sort of thing.

Similar to Rami Ismail above, Ramsey Nasser had a tongue in cheek talk about Arabic in technology:

And we still have no end of content fails for https://notarabic.com/. Handling languages correctly matters to people. We still have a long way to go.

Categories
general i18n internationalization programming unicode

More Sources to Learn Internationalization

Here is a collection of more links to learn about internationalization, beyond the really good videos from the recent Unicode event and other links that I mentioned along with them. I might continually update this space to organize all of the links for learning about internationalization, organized by what might be most useful to total beginners.

  • Getting Started with Internationalization – A quick, well-written intro to basic terms and concepts with illustrative pictures
  • Unicode Demystified by Rich Gillam – a book written in simple language that explains the technical aspects of Unicode, gives a survey of writing systems / languages, and an overview of the higher level things. You should probably read this before reading the Unicode core specification, if you ever need to do that.
Categories
C++ i18n internationalization java Rust unicode

Introduction to Internationalization and Unicode

The Unicode Consortium had its online event last week entitled “Overview of Internationalization and Unicode Projects”. The 6 videos have an average runtime less than 15 minutes and create a nice, gradual explanation of the internationalization / Unicode ecosystem that nicely builds upon itself. The videos are also embedded below.

A colleague asked me a good way to get a background of internationalization. Here is what I told that person:

Categories
general

Run Maven exec:java for multi-module projects

Many Java projects are built with Maven, and it is common for these projects to be structured as multi-module projects to allow for clean code separation and better reuse. It’s well documented how to use the Maven CLI options -am in conjunction with -pl <project-dir-list> in order to run Maven commands like compile and test within a single submodule, while still taking into account the other submodules in the project needed as dependencies. Meanwhile, we can execute a Java class using the exec:java command. But how do we get that to work in a multi-module project?

Categories
general programming tamil thamil

Redesigning an Input Method for an Abugida Script

After I previously talked about problems of input methods for abugida scripts, and added more supporting details to the point, I finally started prototyping possible implementations of the idea (try it out!).

But there are quite a few constraints and tradeoffs that come up once you start thinking about the details. I think these issues apply generally to most abugida scripts. So I am documenting all of the details below. Also, getting a new input method adopted requires more than perfecting just the technical details and user experience — it also requires overcoming user inertia (or creating awareness), and it also requires educating industry experts and those implementing changes. If you have feedback, please send it my way so that I can continue to update this post with the latest information.

Categories
general

Supporting and fixing North American Indigenous languages in technology

This recent blog post from font maker Typotheque has a video explaining the work involved to support an under-/unrepresented language in technology:

It shows the added challenges for a language when it is spoken in rural areas by dwindling numbers due to a history of active suppression by the government in charge (in this case, the Canadian government). The sounds of First Nations languages like this are fascinating. What’s also neat is to see how these efforts materialize via the Unicode Consortium into the official technology standards that all major hardware and software companies subsequently implement to make it real. This is the proposal to add the needed characters to the Unified Canadian Aboriginal Syllabics block, and this is the proposal to fix up the standard’s documentation so that the example display of characters appear correctly for these languages. There is a lot of other technical work that goes on behind the scenes to make this useful in a practical sense — ex: a language-specific (smartphone) keyboard, or the software that helps your phone/computer know how to handle text layout and display for any language. The video above shows the real impact of this unseen work by the people around me.