Sneak peek on what's coming up for #PhanpySocialDev
Current progress with documentation.
Progress on some technical notes.
@cheeaun Pinging some friends to be ready to contribute to @phanpy translations.
@Quenti Occitan `oc`
@kaixo Euskara (Basque) `eus`
@silkevicious Italian `it`
@Taflelli and me in Kabyle `kab`
@ghose Galician (Galego) `gl`
@cheeaun Just wanted to say that I’m impressed at the effort going into i18n here, a lot of otherwise-excellent developers think they can ignore this stuff.
Now up on #PhanpySocialDev (dev site), so expecting bugs 🤞🐛
Docs: https://github.com/cheeaun/phanpy?tab=readme-ov-file#internationalization
76 changed files with 13,528 additions and 2,215 deletions: https://github.com/cheeaun/phanpy/commit/c2e6d732c4938dcfdcfd2ed5e6162fdd97d96609
Interesting last-minute discovery: turns out strings like '5 minutes', '1 hour', '2,000kB', '50%', etc don't need to be translated as they can be generated via `Intl.NumberFormat` or `toLocaleString()` (or `i18n.number` from Lingui)
Todos:
- Check if Crowdin-GitHub integration works.
- Prepare for translators onboarding
@cheeaun Be careful of the browser support for those `Intl` functions, the most advanced ones are not well supported even in some quite recent browsers. You might want to add dynamic detection of those, and load polyfills if not present
Good progress so far, thanks to translators! 🙇♂️👏
Crowdin project: https://crowdin.com/project/phanpy
Some languages now up on dev site (https://dev.phanpy.social/), for testing (layout issues, translation mistakes, etc) 🙏🤞
@cheeaun awesome work as always! Whats the thought behind listing a country next to the language?
Now let's see if all the RTL stuff works 🤞
Current progress. "Development" section in the language selector only shows on local dev & dev site.
Crowdin: https://crowdin.com/project/phanpy
@cheeaun Alphanumerically by the actual presented text, although depending on the use case it might be worth to pull the detected user language and maybe even English to the front, followed by a a divider.
@mhd user language is pulled. Currently text will show "[language name in its own language] - [language name in current set language]". But there is no alphanumeric sort in a list of languages shown in their own language e.g. how should "中文" be sorted? 🤔
@liaizon not me, it's the translators' work 🫣
All the language codes have region codes (which shows as countries next to it). They could be omitted but may lead to ambiguity and doesn't account regional variations. It's kinda like `en-US` and `en-GB` vs the regionless `en`.
@renchap thanks, Phanpy had some bugs with Intl.Segmenter previously (with older Firefox) but fixed now. Now there's a (huge!) polyfill that's conditionally loaded on-demand for unsupported browsers 🫣
Will be keeping track of the other Intl APIs (Intl.Locale is also polyfilled now).
@cheeaun I wrote this verbose monstruosity a while ago for Mastodon: https://github.com/mastodon/mastodon/blob/main/app/javascript/mastodon/polyfills/intl.ts
(most is commented because we dont use those features, but I wanted to have them ready). This is relatively lightweight if your browser supports it, and only loads the current locale.