2

I'm using Poedit/1.8.11 on Windows 10 to manage translations for a CakePHP project, namely English and Spanish.

For each catalog, I've chosen the translation language from the drop down list so I presume they are correct:

Catalogue properties

In source *.po they look like this:

  • "Language: en_GB\n"
  • "Language: es_AR\n"

Nonetheless, spell checker is checking both translations as Spanish. The program does not seem to recognise the language and I can't find any menu item to pick it manually:

Spell errors

Online help does not even mention spelling. How do you set the spell checking language in Poedit?

Álvaro González
  • 142,137
  • 41
  • 261
  • 360

2 Answers2

1

This isn’t a programming question, but a “how to use Windows 10” one. In Windows 8+, the spellchecker always uses the language of your keyboard (which is a different thing from its layout!).

See https://superuser.com/questions/480540/how-can-i-change-the-spell-check-and-auto-correction-language-of-ie10-windows8 for detailed instructions.

Community
  • 1
  • 1
Václav Slavík
  • 6,445
  • 2
  • 28
  • 25
  • Do you mean that the spell checker does not belong to Poedit but it's actually a Windows feature? *About whether the question belongs here, yes, I've had problems with that in the past even though the [What topics can I ask about here?](http://stackoverflow.com/help/on-topic) explictly states "software tools commonly used by programmers"—but of course nobody actually reads the site guidelines ;-)* – Álvaro González Dec 30 '16 at 11:08
  • Yes. Just as the controls (including the RICHEDIT text entry in question) “belong” to win32. – Václav Slavík Dec 30 '16 at 12:05
  • Thank you. I might post an answer with the specific Poedit details if I end up with something to add but you've definitively answered my question. I'll test it for a while (so far, it seems to work so badly with more than one language that I'm considering disabling it entirely) – Álvaro González Dec 30 '16 at 12:21
  • There *aren’t* any “specific Poedit details”, spellchecker behaves exactly the same across Windows. And it works perfectly with any number of languages, *provided* that you configure your keyboards per the linked article (and in particular, have *distinct keyboards* for distinct languages). – Václav Slavík Dec 30 '16 at 14:25
  • @VáclavSlavík isn't this question for IE Windows and not for Windows in General? – Chagai Friedlander Feb 26 '20 at 14:43
  • 1
    @ChagaiFriedlander MSIE uses Windows' spellchecker API. Which makes sense if you consider who makes it. – Václav Slavík Feb 26 '20 at 18:10
  • I think they changed the settings anyway, but thanks! – Chagai Friedlander Feb 26 '20 at 22:35
  • *It's partly false that this is not a programming question*. It is indeed a programming question about setting language of Windows' built-in richtext control. The whole brouhaha stems from the control not having the language set correctly for its contents. – Kuba hasn't forgotten Monica Jun 24 '20 at 19:43
  • @ReinstateMonica Thanks for the tip, language tag should be set for a11y alone. That snark is uninformed, though: this does *not* affect the builtin spellchecker. As of current Windows 10, spellchecker uses *all* installed language packs to underline misspellings and provides suggestions for current keyboard only — both regardless of the language tag set. – Václav Slavík Jul 03 '20 at 08:14
0

As Václav Slavík explains, Poedit does not implement its own spell checking solution. Instead, it relies on Windows builtin spell checker.

In any case, Windows spell engine appears to ignore both current input language at OS level:

Current language

... and current translation language set in gettext catalogue:

Translation language

Instead, it appears to merge the dictionaries of all available languages and run a simultaneous check on all of them:

Simultaneous spelling

I understand it's a feature aimed at mobile users since it's similar to what Android virtual keyboard does but in this particular case it renders the entire tool useless.

Given that configuring languages is particularly difficult and counter-intuitive, I recommend to just ignore the feature.

Álvaro González
  • 142,137
  • 41
  • 261
  • 360
  • Nope, Windows spellchecker uses the language of the currently active keyboard. – Václav Slavík Mar 07 '20 at 11:44
  • The windows spell checker has no way of knowing the things that were not set by the poedit's author. **It's up to them to make it work**.In multilingual applications where the language is known, the default character format in the control has to be set to the proper locale identifier! (CHARFORMAT2::lcid) – Kuba hasn't forgotten Monica Jun 24 '20 at 19:48
  • @ReinstateMonica Thanks for the tip, language tag should be set for a11y alone. That snark is uninformed, though: this does *not* affect the builtin spellchecker. As of current Windows 10, spellchecker uses *all* installed language packs to underline misspellings and provides suggestions for current keyboard only — both regardless of the language tag set. – Václav Slavík Jul 03 '20 at 08:14
  • @VáclavSlavík Have you tried it? That doesn't jive with the behavior I see. The spellchecker is driven by the richedit control - i.e. it the control actively enables it, uses its output to draw squiggly line, passes language data to it, etc. The richedit documentation is awful - i.e. all the information is there, but there's no way to find it other than by reading the whole thing, so I imagine not many have gotten it to work. There's another setting on the control besides character formatting that is required so that the spellchecker is forwarded the language tag... Works For Me (tm) :) – Kuba hasn't forgotten Monica Jul 07 '20 at 15:34
  • @ReinstateMonica Yes, of course I tried it. If it "works for you", why don't you either submit a PR or speak *in working code* instead of vague allusions to others' incompetence? This is StackOverflow after all and giving useful answers backed by working code is what we do around here. TIA! – Václav Slavík Jul 08 '20 at 06:09