#gettext

2025-10-28

Little spinoff library from one of my projects: `go-gettext`! Want to use GNU #gettext in #Go , e.g. to do i18n in your GTK app, but without using CGo? Then this might be helpful to you :) https://github.com/pojntfx/go-gettext

GitHub - pojntfx/go-gettext: G...

Felicitas Pojtingerpojntfx
2025-10-28

Little spinoff library from one of my projects: `go-gettext`!

Want to use GNU in , e.g. to do i18n in your GTK app, but without using CGo? Then this might be helpful to you :)

github.com/pojntfx/go-gettext

2025-10-12

potodo 0.25 released last Friday! A number of quality of life improvements inside 🫡 Thank you @mdk for the release! #i18n #gettext

git.afpy.org/AFPy/potodo#relea

2025-07-20

Learning a bit more every day. #til
Here is a piece of #django or better #gettext, #Django is just the user.

{% trans "Series" context "singular" %}

The "context ..." is a contextual marker [1].
Here I need it because the word "Series" in german (and other language) has a different translation for singular and plural, so I explicitly pass it a context that I will get in my .po file. Now I can differentiate

Series => Serie (singular)
Series => Serien (plural)

[1] docs.djangoproject.com/en/5.2/

2025-07-19

Just discussed it with a friend and shared that I am quite rigorous on doing translations in a certain way.
One example is the last change, read the commit message:

Don't do any simple string translations like "in" which totally miss all context, they will go wrong in some language. Use "in $location" now, so one can see the context what the "in" is meant to be for.

#i18n #django #gettext #goodcode

2025-07-04

I was always struggling with wrapping in GNU #gettext PO files; #Django ./manage.py makemessages does it one way, Poedit.app does it differently. To avoid dirty Git diffs, I used to re-wrap the strings by hand this whole time... until TIL that you can just use msgcat without arguments :neocat_facepalm:

msgcat -o django.po django.po

To re-wrap all PO files:

fd -epo . -x msgcat -o '{}' '{}'
Rafael Fontenellerafaelff
2025-06-30

Gettext is adding support for custom flags in PO files! 🎉

The intention it to make it easier to handle workflows like AI pretranslation, review/approval, or project-specific checks — all while keeping flags reliably stored. ✨

Details: lists.gnu.org/archive/html/bug

Kushal Das :python: :tor: 🇸🇪kushal@toots.dgplug.org
2025-05-23

What are the modern tools available for #translation #po files? #gettext I specially want to know about how to find suggestions from all the previous work done in many other project's po files. I can clone those repos somewhere locally, but is there any way to find suggestion from existing translations? #l10n #localization

2025-03-26

cl-po-parser is a Common Lisp package for parsing a GNU Gettext po file.

github.com/veer66/cl-po-parser

#commonlisp #po #gettext

2025-02-20

#taidan is now #gettext free
full migration to
#fluent ​:ablobcatattentionreverse:​

#ultramarinelinux #rust #foss #linux

github page for the commit that removes all the .po and .pot files (that is, gettext files)
Vivien (Requin Mou)gugurumbe@mastouille.fr
2025-01-02

News in my #guile minimal #gettext run-time for static (expand-time) #i18n!
The API changed: there is now only 1 macro with keyword arguments, which does not update PO files by default.
Your PO files now have scheme-format and range flags, and translator comments!
I now parse PO files directly and not MO files anymore.
The next step is to show how to use this with #Hoot (the license also changed to AGPL).
labo.planete-kraus.eu/guile-st

Ténno Seremél’tennoseremel@lor.sh
2024-12-26

Looks like actually using gettext takes a bit too much steps for my liking for a few simple Guile scripts I wrote. The example was using automake, which certainly didn’t help 🤷

#lang_en #gettext #guile

Vivien (Requin Mou)gugurumbe@mastouille.fr
2024-12-21

I don’t know how you feel about it, but I find #hoot very interesting. There’s a problem though: you can’t do #i18n (internationalization). In #guile, you would use the #gettext library, but since its run-time is written in C and relies on the file system, it’s a bit inconvenient to use in Hoot.
I present to you my static-i18n library: it provides translations at compile-time and so it does not need the gettext runtime.
labo.planete-kraus.eu/guile-st

It was more work than I hoped for, but I finally moved #Lazarr! from #Luanti's legacy TR format to the superior #gettext PO format and added the missing level names and level hints to #Codeberg Translate (#Weblate).

#GameDev #translation

With #Luanti (formerly #Minetest) version 5.10 out, games can finally use the #gettext PO format natively.

I've recently updated #Repixture to use this format, which makes the translation process much simpler. Previously, I had to use a hacky Python script to convert between formats before I could upload the texts to Weblate. Now it can be used natively.

▶️ Repixture translations: translate.codeberg.org/project

#GameDev #translation

2024-11-28

Перевод CLI-приложения на Python: локализация click и typer с GNU gettext

Для регистрации ПО в реестре Минцифры России нужно соблюсти несколько условий, одно из них — наличие русского языка на сайте и в документах. И хотя требований к языку в самом программном обеспечении я не нашёл (может быть, пока), но задача по русификации интерфейса появилась. Мы в «Тантор Лабс» развиваем корпоративную платформу баз данных Tantor XData, один из её компонентов — CLI (интерфейс командной строки) на Python с библиотекой Typer , которая, в свою очередь, написана поверх Click . Этот инструмент мы и попробуем русифицировать, а в идеале — научимся переводить приложение на разные языки, если потребуется. В статье рассмотрим концепции и инструменты, применяемые для локализации, включая использование библиотеки gettext в Python, а также стандарты, предоставляемые GNU gettext . Разберём работу с .pot , .po и .mo файлами, а также обработку плюральных форм, учитывающих языковые особенности множественных чисел.

habr.com/ru/companies/astralin

#python #gettext #typer #click #локализация #локализация_интерфейса #cli

रञ्जित (Ranjit Mathew)rmathew
2024-11-01

Excited about , , and 😍; good riddance to the “newline in file-name” charade 😒:

“What’s New In POSIX 2024 – XCU”, Chloe Kudryavtsev (blog.toast.cafe/posix2024-xcu).

Via HN: news.ycombinator.com/item?id=4

On Lobsters: lobste.rs/s/puq8jd/what_s_new_

2024-10-22

Good .po #gettext editor for #Windows ? #translation

𝘋𝘪𝘳𝘬dirk@gts.0x7be.net
2024-10-13

@Minetest #gettext support to me personally is the killer feature of this update! 👍

2024-10-12

Just pushed version 3.0.0 of #Kielet, my GNU #Gettext package for #Gleam: hexdocs.pm/kielet/index.html

This release brings support for pgettext and npgettext, which are used to provide context and disambiguate translations of words that are written identically but need different translations, such as homographs.

I considered adding dgettext and dcgettext and all their variations, but they don't seem to provide enough benefit in Gleam.

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst