akeeba / panopticon

Self-hosted site monitoring and management
GNU Affero General Public License v3.0
42 stars 20 forks source link

Missing strings #352

Closed morphinestyle closed 11 months ago

morphinestyle commented 11 months ago

Missing strings in the site panel.

IMG_20231201_014745.jpg

nikosdion commented 11 months ago

Please see https://github.com/akeeba/panopticon/discussions/353

brianteeman commented 11 months ago

The problem is that the german translation file only has 229 lines instead of 1695 lines

morphinestyle commented 11 months ago

Strange situation: I just searched on Weblate for one of the apparently missing strings PANOPTICON_SITES_LBL_DROPDOWN_AUTOMATIONS_HEAD_BACKUP_SECURITY: in English Weblate shows it to me, it's present, while in Italian it doesn't find it, it's missing...

Shouldn't Weblate show all the strings in English in other languages ​​too?

EDIT: in fact, by downloading the INI file of both the English and Italian languages ​​directly from Weblate, I confirm that the string is present only in English

Furthermore, Weblate shows that the Italian translation is complete

weblate

nikosdion commented 11 months ago

It should show new strings. That is the entire reason of using something like Weblate. But you are right, it doesn't. Some language strings it just… ignores? They are different on every language as well.

morphinestyle commented 11 months ago

The problem is that the german translation file only has 229 lines instead of 1695 lines

Same situation: English has 1,605 strings, while Italian has 1,592. What am I doing wrong?

nikosdion commented 11 months ago

I don't think any of us is doing anything wrong. Something is not right with Weblate. This is really unfortunate, because this is the only affordable translation environment. The pricing of other translation services (e.g. CrowdIn, Transifex, etc) is unrealistic. They also won't give a free account to small projects like ours.

I could write scripts to convert between GNU GetText POT and INI files and have you use Poedit to translate, then do PRs with the translations. The problem is that this is developer-friendly, not translator-friendly. I was trying to remove that barrier to entry, and also the fact that in cases like that I end up spending all my time managing translation files instead of working on code (the overlap of people with the base skills to work with GitHub and the people who are willing to do translations is somewhere between scant to non-existent).

I don't know what is the solution, or if one even exists to be honest.

brianteeman commented 11 months ago

In another project I am involved with they use poedit which is free for open source projects and it directly connects with github and supports ini files

nikosdion commented 11 months ago

@brianteeman It supports INI files now? Well, that's one less step in what I described (as you saw, I did mention Poedit above).

The problem that the translation has a higher barrier to entry remains, though. I would only be able to accept translations as PRs. You and I can do that, but can all translators do it? In some other free software I have asked volunteer translators to do that and all I got was file attached in the issue comments. That's okay for once a year updates, but it's not manageable for multiple times per week, per language updates. I want to spend my time writing code, not managing files.

If anyone would volunteer to be the translations manager, helping people set up GitHub Desktop and poedit, use them to translate and send PRs, I would be more than happy to document the process and start asking people to use that process for translating instead. Any takers? Pretty please? 😉

brianteeman commented 11 months ago

It does the pr automatically. Translators dont need to do anything

nikosdion commented 11 months ago

@brianteeman Thank you very much for the very interesting feedback! I will play with it and see if I can come up with a decent, documented translation process.

brianteeman commented 11 months ago

See https://github.com/ChurchCRM/CRM/blob/fb311a9e446b0c4f642760ed85913e997188eb8c/.github/workflows/poeditor.yml

nikosdion commented 11 months ago

Ugh, I don't like that. It requires an action to pull the translations via an API. This actually costs me money, because GitHub doesn't give me free action minutes; these come from my own pocket.

Also, I was talking about the standalone software Poedit. I was not talking about a service. Weblate is also free for FOSS projects, but look where we are now, still wondering why we have problems with translations.

brianteeman commented 11 months ago

I think thats a very old method of integration. there might be newer and better ways now using webhooks see https://poeditor.com/help/how_to_translate_a_language_file_from_a_github_project but github should be giving you free minutes for actions according to their docs

Rolli1962 commented 11 months ago

In case of giving weblate a chance... Have a little bit compared. Seems it do only create entries in the ini-files, if a translation is given. Means if it would be possible in the code of panopticon to output the translated words only, if the language-string is set in the ini-file of the language. If not to use the default-language (English) for those output. To be honest - I do not know how much effort it takes to implement it as code.

nikosdion commented 11 months ago

You are confusing two different things.

Partial translations is one thing. This should not be happening, and I need to see why it's happening for some people (when I tried the same locally I did get the untranslated strings in English, as it should be the case). That's not a very big issue, especially since version 1.0.5 lets you select a specific language in your user profile.

Weblate randomly not even giving us the option to translate strings in some languages – different strings, in different languages – is a different thing. I cannot address it for them. It's literally its one job. Not having a reliable translation environment is about as useful as having no translation environment. So, that's what I want to address next.

nikosdion commented 11 months ago

Version 1.0.6 will be released this week.

We are no longer going to be using Weblate for translations. I have written some code to convert to and from PO files which can be used very easily for translation using the free of charge, cross-platform Poedit software. I have also written up the instructions for easily submitting a pull request with new languages and language changes to Panopticon.

Regarding the loading of languages, the fallback language (en-GB) is always loaded and used to backfill the strings for which there is no translation in your preferred language. I am not sure what happened with 1.0.5, but all tests I have performed now show that to be working. So, at least we know that 1.0.6 won't have that problem.

morphinestyle commented 11 months ago

Ok, where do I find the instructions for submitting the translated files?

nikosdion commented 11 months ago

Just wait a bit. I need to make the new release first :)