Gnope is a free and open source Telegram bot for translating gettext .po
files. Send a file, translate it one string at a time and get the finished file
back, from any phone, with nothing to install. Made for GNOME translators, works
with any gettext project.
🇹🇷 Türkçe · 🇦🇿 Azərbaycanca
Open @gnope_bot in Telegram and tap Start. More about the bot: https://azelinux.com/tools/poeditor
- Choose the interface language: English, Türkçe or Azərbaycanca.
- Enter your name and email once. They go into the header of the files you
save (
Last-Translator, the translator line). - Send a
.poor.potfile. If you translate for GNOME, reserve the file on Damned Lies first so that two people do not work on the same file. - Choose what to work on: untranslated, fuzzy, both, or all strings.
- The bot shows one string at a time with its context, notes and source references. Reply with the translation, or use the buttons to skip, go back or keep a fuzzy translation.
- Tap Save file (or send
/save) to get the translated file. Upload it to Damned Lies or send it to your team. - Send
/cancelto close the file and delete it from the server.
Other commands: /continue, /status, /profile, /language, /help,
/about.
- Plural forms: each form is asked separately, with example numbers. The plural rules of about 70 languages are built in.
- Checks before saving: placeholders (
%s,%d,%1$s,%(name)s,{name}),_keyboard shortcuts, markup tags and line breaks. Mistakes thatmsgfmt -cwould reject are blocked; likely mistakes are shown as warnings. - Header update:
PO-Revision-Date,Last-Translator,Language-Team,Language,Plural-Formsand the translator line are updated on save. A.potfile comes back asname.<lang>.po. - Small diffs: strings you did not touch are written back exactly as they were.
- Interface in three languages: English, Turkish and Azerbaijani.
What the bot stores, on the server that runs it:
- your Telegram user ID, interface language, the name and email you entered for file headers, and the language you last translated into;
- the file you are working on and your progress in it;
- a daily upload counter, and the IDs of recent Telegram updates (kept for 3 days, so an update is not processed twice).
How long:
- Your file is deleted as soon as you close it (
/cancel→ close), or after 14 days without activity. - Your name and email are kept so you do not have to enter them again. Change
them with
/profile; to have them removed, write to the developer.
What it does not do:
- File contents and translations are not written to logs. The log only records errors.
- Your files are not shared with anyone. Messages between Telegram and the bot pass through a small relay server that forwards them without storing anything.
Your chat with the bot stays in Telegram like any other chat.
Would you like to see Gnope in your language? Translate the .po file in
app/locale/ and send it:
- Copy
app/locale/messages.pottoapp/locale/<code>.po, for examplede.po. - Translate it with any PO editor, or with Gnope itself.
- Add the language to
UI_LANGUAGESinapp/i18n.py. - Open a pull request, or send the file to the developer.
When interface texts change, python scripts/extract_messages.py refreshes
messages.pot.
The bot is a small WSGI app (Python 3.8+, only dependency: polib). It uses a
Telegram webhook, so it runs on ordinary shared hosting such as cPanel's
Setup Python App (Passenger).
- Create a bot with @BotFather.
- Create a Python app whose root is outside
public_html, and put this repository in it. Startup file:passenger_wsgi.py, entry point:application. Installrequirements.txt. - Copy
.env.exampleto.envand setBOT_TOKENandBASE_URL. - Open
BASE_URLin a browser once. This registers the webhook, the commands and the descriptions.
Notes:
- cPanel replaces an existing
passenger_wsgi.pywhen the app is created. Rungit checkout -- passenger_wsgi.pyandtouch tmp/restart.txtafterwards. - If your host reaches Telegram badly, put
relay/telegram-relay.phpon another PHP host and setTELEGRAM_RELAY_URL. The file header explains the setup. - Tests:
pip install polib pytest && pytest
GPL-3.0-or-later. Developer: Ramal Rahimov — https://azelinux.com — Telegram @rahimovramal.
Gnope is an independent project. It is not affiliated with, authorized by, sponsored by, or otherwise approved by the GNOME Foundation. GNOME is a trademark of the GNOME Foundation.
Gnope, gettext .po dosyalarını hiçbir program kurmadan, telefondan Telegram
üzerinden çevirmenizi sağlayan ücretsiz ve açık kaynak bir bottur. GNOME
çevirmenleri için yapıldı, her gettext projesiyle çalışır. Başlamak için
@gnope_bot'u açın.
Gnope gettext .po fayllarını heç bir proqram qurmadan, telefondan Telegram
vasitəsilə tərcümə etməyə imkan verən pulsuz və açıq mənbəli botdur. GNOME
tərcüməçiləri üçün hazırlanıb, istənilən gettext layihəsi ilə işləyir.
Başlamaq üçün @gnope_bot-u açın.