A couple of days ago I started experimenting with Hugo’s multilingual mode(external link). Basically, I had the idea of creating a version of this site in Ido – not translating everything, of course, but mainly things like photo posts, or simple anecdotes and things to exercise my command of the language. While I was at it, I also thought of making an edition of this site in Spanish, because well… I could probably use the practice in that too 😅 But TBH, I’m a lot more self-conscious about making posts in Spanish, even if I’m much stronger in it than Ido (with many more years of study, and especially serious study, under my belt). Part of me is afraid of looking stupid if I make any linguistic mistakes, and another part feels like there’s not really any point anyway because there are probably enough personal blogs already out there in Spanish for people who are interested in reading them. With so much more of a dearth of online content in Ido, plus my feeling that IALs like it and Esperanto are more forgiving of non-fluent speakers’ quirks, it just feels less intimidating.

Anyway, all my efforts are still lingering in an unmerged experimental branch of this site’s git repository, because it turns out there’s a lot I would have to do to get this project up and running. Lots of hard-coded stuff in my theme I need to make un-hard-coded, lots of strings I need to translate. Hugo has an i18n function(external link) which makes it relatively straightforward to provide translations for strings, but you still have to, you know, track them all down and replace them all with {{ i18n "translation key goes here" }} and add entries to your .yaml files with translations for each one.

Since 0.87.0, Hugo has supported a certain degree of datetime localisation(external link) (like you can set a date’s format to :date_long and it’ll produce “March 31, 2022” in English but “31 de marzo de 2022” in Spanish, for example). It seems to support a pretty wide range of languages but not, unsurprisingly, Ido. So, to support that I have to go back to the pre-0.87.0 strategy(external link) where you define translations for all the month names in your .yaml files in your i18n/ folder. (Note: If you do this, you need to define translations for English, as well.) For example:

# io.yaml
- id: January
  translation: januaro
- id: February
  translation: februaro
- id: March
  translation: marto
- id: April
  translation: aprilo
- id: May
  translation: mayo
- id: June
  translation: junio
- id: July
  translation: julio
- id: August
  translation: agosto
- id: September
  translation: septembro
- id: October
  translation: oktobro
- id: November
  translation: novembro
- id: December
  translation: decembro
- id: at
  translation: ye
# en.yaml
- id: January
  translation: January
- id: February
  translation: February
- id: March
  translation: March
- id: April
  translation: April
- id: May
  translation: May
- id: June
  translation: June
- id: July
  translation: July
- id: August
  translation: August
- id: September
  translation: September
- id: October
  translation: October
- id: November
  translation: November
- id: December
  translation: December
- id: at
  translation: at

The “id” can be anything, it doesn’t have to match the English text. You could make the ids “month01”, “month02”, etc. if you preferred. Anyway, once you have .yaml files with all this data for every language you want a version of your site in, you can print a long-form date in this very verbose way:

{{ .Date.Day }} {{ i18n .Date.Month }} {{ .Date.Year }} {{ i18n "at" }} {{ .Date.Format "15:04" }}

…and it’ll produce a string like “31 March 2022 at 20:15” in English and “31 marto 2022 ye 20:15” in Ido. (As an aside, yes, even in English I strongly prefer date formats that put the month in the middle, especially when unambiguous because letters were used for the month or because the order is yyyy-mm-dd.) So, that’s one thing that you might’ve thought would be difficult to customise for such a seldom-used language as Ido, but is actually quite doable. Unfortunately, there’s still lots else I need to do. Things like “Older Posts” and “Newer Posts” (I’m not even really sure how to translate “posts” into Ido; so far I’ve gone with “skribaji”, i.e. “writings”) and the names of every tag and category and the copyright notice and that little blurb about me that goes at the bottom of each post in my h-card… it’s just a lot, ok.

Another problem I encountered is that one guide to multilingual Hugo suggested defining a language-appropriate slug for each language’s version of a post or page (because your “About” page shouldn’t still be at about.html on a non-English version of your site, right?). However, in my config, I’d set it so URLs were generated based on the source files’ filenames, not any slug. I forgot why I’d done this in the first place, so experimentally, I changed it to use slugs. Quickly realised why it used filenames: all my microposts are titleless, and with no manually-defined slugs, that means Hugo thinks they don’t have slugs 🤦🏻‍♀️ so it tries to link to them just at, for example, 2022/03.html. Not sure why Hugo doesn’t eventually fall back to filenames for slugs, but apparently it doesn’t. Anyway, I guess I could work around this by manually specifying a post’s URL (like /io/2022/03/gidget-inspektas-buxo.html) instead of only the slug.

Anyway, idk, this is all clearly a lot of effort to expend on a whim. I have idly wondered whether I could more easily practise my Ido just by, like, setting up a dedicated Mastodon account or something. But honestly, I think I’d rather keep my efforts on my own site rather than on yet another Mastodon account I’ll forget to log into (I’m really bad at keeping more than one active at a time). Even though something like a Mastodon account would mean other people interested in Ido could reply to my posts, I guess 🤔 I guess the short answer is probably that yes, Mastodon would be easier but I just like the idea of posting on my own site more. #indieweb4lyfe

So, I feel like this post has been a rambling mess, but regardless, that’s where I’m at with that. Maybe one of these days I’ll actually have an Ido-language site edition to show you 😅 Until then, tinkering with my git repository it is – and if nothing else, this whole project has taught me much more about how to use git diff and git merge. So at least I’m learning transferable skills, hey?