Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus / 2012-08

language setup / http://bugs.freepascal.org/view.php?id=22574

17 messages · 6 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Martin

Please read: http://bugs.freepascal.org/view.php?id=22574

Then join the discussion here if you wish to add anything. (Thanks to Reinier Olislagers for proposing a patch, though it may be a bit early)

-------------------------------------------------
There are currently 2 approaches:

1) Installer
2) Lazarus setup dialog

-------------------------------------------------
1) Installer

- Contra: Only works on certain platform
- Contra: Must be implemented for each platform (more work/maintenance)
- Contra: can not differentiate between new install, and upgrade (upgrade must not interfere with existing settings) upgrade will have an existing config, but this may be at a none default location, if the user uses a --primary-config-path=
- Pro: Every user will be prompted once. (Can be archived with "setup" too)

The pro only applies, if it is not hard-coded.
Reinier's patch does set it always to English. No choice.

My opinion:
Using the installer is an (undesirable) second choice ** A hard-coded always English is *not* acceptable. ** It should either be a checkbox:
- English or Automatic (confusing since Auto can be English)
- English or Installer language (limited because installer has limited options)
Or it should be a dropdown, with all languages.

Both, options have the issue of being displayed in case of an upgrade, in which case they should not.

-------------------------------------------------
2) Lazarus setup dialog

- Can use existing code
- Works on all platforms
- Can (if decided) be always shown, if there is no pre-existing config (new install)
- Can have an icon/start-menu entry. This allows easy resetting of the language, if a user got it wrong.

My opinion:
The way to go.

------------
Also in my opinion: It is too late to push this for 1.0. There is a risk of adding bugs (including bugs in the installer)

Reply by email

Maxim Ganetsky
to Martin

13.08.2012 0:51, Martin ?????:

Show quoted text 25 lines
Please read: http://bugs.freepascal.org/view.php?id=22574 Then join the discussion here if you wish to add anything. (Thanks to Reinier Olislagers for proposing a patch, though it may be a bit early) ------------------------------------------------- There are currently 2 approaches: 1) Installer 2) Lazarus setup dialog ------------------------------------------------- 1) Installer <...> 2) Lazarus setup dialog - Can use existing code - Works on all platforms - Can (if decided) be always shown, if there is no pre-existing config (new install) - Can have an icon/start-menu entry. This allows easy resetting of the language, if a user got it wrong. My opinion: The way to go.

Fully agree with this.

------------ Also in my opinion: It is too late to push this for 1.0. There is a risk of adding bugs (including bugs in the installer)

Yes, indeed. This should be trunk only.

Best regards, Maxim Ganetsky mailto:

Reply by email

Reinier Olislagers
to Martin: Please read: http://bugs.freepascal.org/view.php?id=22574 Then join the discussion here…
Martin wrote 28 lines
Please read: http://bugs.freepascal.org/view.php?id=22574 Then join the discussion here if you wish to add anything. (Thanks to Reinier Olislagers for proposing a patch, though it may be a bit early) ------------------------------------------------- There are currently 2 approaches: 1) Installer 2) Lazarus setup dialog ------------------------------------------------- 1) Installer - Contra: Only works on certain platform - Contra: Must be implemented for each platform (more work/maintenance) - Contra: can not differentiate between new install, and upgrade (upgrade must not interfere with existing settings) upgrade will have an existing config, but this may be at a none default location, if the user uses a --primary-config-path= - Pro: Every user will be prompted once. (Can be archived with "setup" too) The pro only applies, if it is not hard-coded. Reinier's patch does set it always to English. No choice. My opinion: Using the installer is an (undesirable) second choice ** A hard-coded always English is *not* acceptable. **

Don't agree, but I'm not a core dev.
A lot of users have expressed their wish for default English. If an installer (or the setup program below) offers the choice of changing this, I would be fine with this. Finally, Lazarus itself offers the choice of changing language, but yes... that may be too hidden if you don't speak English.
However the patch is not strictly necessary - see my suggestion below.

Show quoted text 6 lines
It should either be a checkbox: - English or Automatic (confusing since Auto can be English) - English or Installer language (limited because installer has limited options) Or it should be a dropdown, with all languages.

That would be my choice, with the default being English. This means we don't need to have some mapping between the installer's idea of languages and the user choice, etc.
Also, who knows, a user may want to have a different language (e.g. Japanese on a English system) for testing or whatever other reason. We allow this choice in Lazarus itself, so allowing it here would be consistent.

Both, options have the issue of being displayed in case of an upgrade, in which case they should not.

Depends on the installer, I'd think.

Show quoted text 7 lines
------------------------------------------------- 2) Lazarus setup dialog - Can use existing code - Works on all platforms - Can (if decided) be always shown, if there is no pre-existing config (new install)

Very good point, yes.

- Can have an icon/start-menu entry. This allows easy resetting of the language, if a user got it wrong.

Presumably by some call like
lazarus --setup --showlanguagetab
(--showlanguagetab to select and show a language tab next to the existing tabs)
?

My opinion: The way to go.

I like that solution, too.

However, we can also do both.
1) Use an installer language choice screen that calls
2) a separate program that uses the Lazarus IDE code (similar to how lazbuild does this) with an argument to set language lazset --primary-config-path=c:\example --set="lang=en" which creates or updates primary config settings with, in this case, English language.

This lazset program can then also be used in people's existing svn update batch files, fpcup, etc, so the main functionality would not be platform/installer dependent.

If an installer doesn't suport calling lazset or if there is no installer (e.g. svn install), the system can fall back to not setting any options, thereby showing setup with language choice as per Martin's idea.

Also in my opinion: It is too late to push this for 1.0. There is a risk of adding bugs (including bugs in the installer)

Yes, that seems prudent.

Reply by email

Martin
to Reinier Olislagers
Reinier Olislagers wrote 6 lines
> ------------------------------------------------- > 2) Lazarus setup dialog However, we can also do both. 1) Use an installer language choice screen that calls 2) a separate program that uses the Lazarus IDE code (similar to how lazbuild does this) with an argument to set language

I' d rather add a final page to the installer with the option to start the IDE (as many other installers do)

It can have an option to start the IDE in setup mode (which would 1st prompt the language)

This lazset program can then also be used in people's existing svn update batch files, fpcup, etc, so the main functionality would not be platform/installer dependent.

IMHO this lazset is the IDE itself. If the installer creates 2 startupmenu entries: one normal, and one with forced setup

Reply by email

Reinier Olislagers
to Martin
Martin wrote 12 lines
On 13/08/2012 08:36, Reinier Olislagers wrote: >> ------------------------------------------------- >> 2) Lazarus setup dialog > However, we can also do both. > 1) Use an installer language choice screen that calls > 2) a separate program that uses the Lazarus IDE code (similar to how > lazbuild does this) with an argument to set language I' d rather add a final page to the installer with the option to start the IDE (as many other installers do) It can have an option to start the IDE in setup mode (which would 1st prompt the language)

Yes, but you'd have no unattended install option that permits setting the language.
Also, IMO an installer should set up as much as possible; leaving configuration to Lazarus seems sloppy. But that's esthetics/preference and minor.

Having a final page with a "Run Lazarus" option is easy to do in Inno and perhaps could be added anyway.

Show quoted text 5 lines
> This lazset program can then also be used in people's existing svn > update batch files, fpcup, etc, so the main functionality would not be > platform/installer dependent. IMHO this lazset is the IDE itself. If the installer creates 2 startupmenu entries: one normal, and one with forced setup

Could be.
Having a separate program could be handy though for unattended install and scripting purposes (e.g. schools, universities). That program could also be expanded to change other settings.

In the end, I do really like having the setup dialog show language selection if none chosen - that's a big step forward. Having installers preselect languages would be a plus.

PS: a bit OT, but the setup dialog is beginning to replicate a lot of settings in the Tools/Options dialog. What are your thoughts about moving the graphic "something is not right" icon to the regular Options dialog and showing that?
That would cut down on maintenance/code duplication and allow easier additions of items to be checked... recently we added debugger location, now we're talking about language settings, in future it might be a check for existence of help files.

Reply by email

Ludo Brands
to Martin: I' d rather add a final page to the installer with the option to start the IDE (as many…
Show quoted text 7 lines
> This lazset program can then also be used in people's existing svn > update batch files, fpcup, etc, so the main functionality would not be > platform/installer dependent. IMHO this lazset is the IDE itself. If the installer creates 2 startupmenu entries: one normal, and one with forced setup

Having "lazset"=IDE is indeed the easiest to maintain. But to accomodate 3rd party setup programs like fpcup, codetyphon(?), it would be nice if the IDE could be told what the setup params are instead of doing a forced setup. Compiler, fpc sources, debugger and perhaps language are known by these installers. Having something like a lazarus --setup="gdb=path-to-gdb language=the-language fpc=path-to-compiler ..." which sets the corresponding values in the lazarus configuration (eventually specified with --pcp) and doesn't launch the ide (returns immediately) would be a good compromise.

Ludo

Reply by email

Reinier Olislagers
to Ludo Brands
Ludo Brands wrote 15 lines
>> This lazset program can then also be used in people's existing svn >> update batch files, fpcup, etc, so the main functionality > would not be >> platform/installer dependent. > IMHO this lazset is the IDE itself. If the installer creates 2 > startupmenu entries: one normal, and one with forced setup > Having "lazset"=IDE is indeed the easiest to maintain. But to accomodate 3rd party setup programs like fpcup, codetyphon(?), it would be nice if the IDE could be told what the setup params are instead of doing a forced setup. Compiler, fpc sources, debugger and perhaps language are known by these installers. Having something like a lazarus --setup="gdb=path-to-gdb language=the-language fpc=path-to-compiler ..." which sets the corresponding values in the lazarus configuration (eventually specified with --pcp) and doesn't launch the ide (returns immediately) would be a good compromise.

If the devs can live with that solution, I certainly can ;)

Reply by email

Martin
to Ludo Brands: Having "lazset"=IDE is indeed the easiest to maintain. But to accomodate 3rd party setup…
Ludo Brands wrote 12 lines
> IMHO this lazset is the IDE itself. If the installer creates 2 > startupmenu entries: one normal, and one with forced setup > Having "lazset"=IDE is indeed the easiest to maintain. But to accomodate 3rd party setup programs like fpcup, codetyphon(?), it would be nice if the IDE could be told what the setup params are instead of doing a forced setup. Compiler, fpc sources, debugger and perhaps language are known by these installers. Having something like a lazarus --setup="gdb=path-to-gdb language=the-language fpc=path-to-compiler ..." which sets the corresponding values in the lazarus configuration (eventually specified with --pcp) and doesn't launch the ide (returns immediately) would be a good compromise.

The need to specify such params should only apply to the 1st start of an installation (or a new primary-conf....)

Once a config exists, the values are (IIRC) taken from there, and updates (eg reset language) are to be made by the user.

There is no need to specify first time setup on the command line. That is what the environmentopts.xml in the exe directory (secondary conf) is for.
If the IDE does not find a config, it looks for this.

So custom installers can provide there own settings there. (by means of editing the XML file, or replacing it (might loose new settings added to it)

Reply by email

Ludo Brands
to Martin
Show quoted text 5 lines
The need to specify such params should only apply to the 1st start of an installation (or a new primary-conf....)

Yes. A repair-install would also be a candidate to override settings. The Lazarus installer doesn't have this option but other could have it.

Show quoted text 15 lines
Once a config exists, the values are (IIRC) taken from there, and updates (eg reset language) are to be made by the user. There is no need to specify first time setup on the command line. That is what the environmentopts.xml in the exe directory (secondary conf) is for. If the IDE does not find a config, it looks for this. So custom installers can provide there own settings there. (by means of editing the XML file, or replacing it (might loose new settings added to it)

That is what fpcup is currently doing and iirc codetyphon as well. Problem is that the format of the XML file is nowhere specified and versions have changed several times. Current version is "107". I'm not going to repeat all the arguments you all mentioned against managing settings outside the IDE and keeping the maintenance to a minimum but these are the same for this feature request for 3rd party installers. A command line parameter, once defined, is much more stable than an undocumented XML file. As usual, I'm willing to make a patch for that provided there is a broad consensus for it.

Ludo

Reply by email

Martin
to Ludo Brands
Ludo Brands wrote 10 lines
That is what fpcup is currently doing and iirc codetyphon as well. Problem is that the format of the XML file is nowhere specified and versions have changed several times. Current version is "107". I'm not going to repeat all the arguments you all mentioned against managing settings outside the IDE and keeping the maintenance to a minimum but these are the same for this feature request for 3rd party installers. A command line parameter, once defined, is much more stable than an undocumented XML file. As usual, I'm willing to make a patch for that provided there is a broad consensus for it.

True you have a point.

Though technically this a 2 issues.
The language needs a visual setup (it already has a command line option) You need a none visual tool. And I think for that a separate exe (with no forms or dialogs) may be good. It can use existing code.

Only it needs to be ensured that it is tested regularly. I have that issue with a testcase I wrote (debugger) that tries to read the options. Every now and then it breaks, because the environment options object/unit changed the pre-conditions to create the object.....

This is a further point why I want the language as part of the IDE. It is far less work to maintain.

Reply by email

Ludo Brands
to Martin
Show quoted text 9 lines
> True you have a point. Though technically this a 2 issues. The language needs a visual setup (it already has a command line option) You need a none visual tool. And I think for that a separate exe (with no forms or dialogs) may be good. It can use existing code.

The command line option overrides the configuration settings, it doesn't change them.

Show quoted text 10 lines
Only it needs to be ensured that it is tested regularly. I have that issue with a testcase I wrote (debugger) that tries to read the options. Every now and then it breaks, because the environment options object/unit changed the pre-conditions to create the object..... This is a further point why I want the language as part of the IDE. It is far less work to maintain.

I agree that it is better to keep -all- the XML stuff inside the IDE because it is far less work to maintain for everybody. What I proposed is to add a command line option that would skip the IDE setup screen and take the values instead from the command line, store the config and (optionally) exit immediately. As long as the format of the command line values and the format of the values in the IDE setup screen match, maintenance should be minimal and if the environment options object/unit changes, it will affect the setup screen and command options in the same way.

Ludo

Reply by email

Zaher Dirkey
to Martin: Please read: http://bugs.freepascal.org/view.php?id=22574 Then join the discussion here…
Martin wrote
2) Lazarus setup dialog

I agree, and as you said in the next version, but you can set the Default language to English in this 1.0 version, at least for languages that not finished/completed.

Best Regards
Zaher Dirkey
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20120814/aee14604/attachment.html>

Reply by email

Martin
to Zaher Dirkey
Zaher Dirkey wrote 10 lines
On Sun, Aug 12, 2012 at 11:51 PM, Martin < <mailto:>> wrote: 2) Lazarus setup dialog I agree, and as you said in the next version, but you can set the Default language to English in this 1.0 version, at least for languages that not finished/completed.

How to do that ONLY for incomplete languages?

For complete languages, people with both preferences exist: default to english OR native (The percentage of preferences may depend on the language).

And there also are people who's English will make it hard to find the option. to change it.

On the other hand, I would expect people who want their software in English, to also have set their Desktop to English, in which case I would expect "Automatic" to follow that?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20120814/e6ac5ffe/attachment.html>

Reply by email

Avishai
to Martin

I haven't seen what you are working on so I'm not sure if what I say is relevant. Often I am logged into my Hebrew account and sometime my English account. When I first tried to install Lazarus, I was in Hebrew, so Lazarus started in Hebrew. I had too much trouble trying to figure out the menus and had to uninstall it, switch to English login, and reinstall it. Lazarus is not alone in this practice of "automatic" install. In my opinion, "automatic" is a very bad choice.

To make matters worse, there is no such thing as a consistent Translation. MS Word's Hebrew menu is not the same as OpenOffice menu, even for the basic operations, even though their English menus are almost the same. Trying to figure out what is what is a pain I don't need. In a lot of software, I work in English even in my Hebrew login. I've talked about this with other Israelis and a couple of Russians and they work the same way, for the same reasons.

As I said, I haven't seen what you are working on so none of this may be relevant, and it's only my opinion anyway.

@Zaher. It is good to see you posting again. Be safe.

Martin wrote 35 lines
On 14/08/2012 20:26, Zaher Dirkey wrote: On Sun, Aug 12, 2012 at 11:51 PM, Martin wrote: > > 2) Lazarus setup dialog I agree, and as you said in the next version, but you can set the Default language to English in this 1.0 version, at least for languages that not finished/completed. How to do that ONLY for incomplete languages? For complete languages, people with both preferences exist: default to english OR native (The percentage of preferences may depend on the language). And there also are people who's English will make it hard to find the option. to change it. On the other hand, I would expect people who want their software in English, to also have set their Desktop to English, in which case I would expect "Automatic" to follow that? -- _______________________________________________ Lazarus mailing list http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Shalom, Avishai ????? ????

Reply by email

Martin
to Avishai
Avishai wrote 8 lines
I haven't seen what you are working on so I'm not sure if what I say is relevant. Often I am logged into my Hebrew account and sometime my English account. When I first tried to install Lazarus, I was in Hebrew, so Lazarus started in Hebrew. I had too much trouble trying to figure out the menus and had to uninstall it, switch to English login, and reinstall it. Lazarus is not alone in this practice of "automatic" install. In my opinion, "automatic" is a very bad choice.

At the moment, I am not is generally agreed that this should be improved. Most likely by prompting the user, when he runs Lazarus for the very first time. (existing users/upgrades will not be prompted, as they likely already made there choice.)

However, it is impossible to do all that for the next release. So the question is, what, if anything can be done within a couple of days? And how can it be done.

There are suggestions. BUT: are hey really better.

Would it be better, for all users to start in English? Even if there is a really good translation? Some people can not ask questions in the English forums, due to lack of English experience. WIll it be good to force them into an Englis IDE, or would they prefer it in their native language?

For that reason I am not convinced that a global, unconditional change of the default will really make things better.

Especially, since this discussion is in English, so those people will not raise their voice here.

Some people say, that for the language they speak it would be better:
- Some assume that all their countryman will prefer this.
- Some say that the translation for the specific language is so bad, that it can't be used.

The second, may be an argument. But it may mean that the translation will have to be removed completely. If so, then it will not be an issue.

--------------------
Unfortunately this only came up so close to the next release.

Rushing into something now, without even being sure, that it really is an improvement does not seem a wise choice to me.

Reply by email

Avishai
to Martin

I agree with most of what you are saying here. This is not an easy issue to answer and there are so many variables to consider. Everyone has an opinion and most of them have some merit.

In my opinion though, please don't let Locale "automatically" pick a language for Lazarus. I'm only one voice, but I think that is a very bad choice. ListBox? ComboBox? I don't have the answers. Just adding my two cents worth.

Martin wrote 54 lines
On 14/08/2012 21:29, Avishai wrote: > > I haven't seen what you are working on so I'm not sure if what I say > is relevant. Often I am logged into my Hebrew account and sometime my > English account. When I first tried to install Lazarus, I was in > Hebrew, so Lazarus started in Hebrew. I had too much trouble trying > to figure out the menus and had to uninstall it, switch to English > login, and reinstall it. Lazarus is not alone in this practice of > "automatic" install. In my opinion, "automatic" is a very bad choice. > At the moment, I am not working at it. It is generally agreed that this should be improved. Most likely by prompting the user, when he runs Lazarus for the very first time. (existing users/upgrades will not be prompted, as they likely already made there choice.) However, it is impossible to do all that for the next release. So the question is, what, if anything can be done within a couple of days? And how can it be done. There are suggestions. BUT: are hey really better. Would it be better, for all users to start in English? Even if there is a really good translation? Some people can not ask questions in the English forums, due to lack of English experience. WIll it be good to force them into an Englis IDE, or would they prefer it in their native language? For that reason I am not convinced that a global, unconditional change of the default will really make things better. Especially, since this discussion is in English, so those people will not raise their voice here. Some people say, that for the language they speak it would be better: - Some assume that all their countryman will prefer this. - Some say that the translation for the specific language is so bad, that it can't be used. The second, may be an argument. But it may mean that the translation will have to be removed completely. If so, then it will not be an issue. -------------------- Unfortunately this only came up so close to the next release. Rushing into something now, without even being sure, that it really is an improvement does not seem a wise choice to me. -- _______________________________________________ Lazarus mailing list http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Shalom, Avishai ????? ????

Reply by email

Reinier Olislagers
to Martin: At the moment, I am not is generally agreed that this should be improved. Most likely by…
Martin wrote 19 lines
On 14/08/2012 21:29, Avishai wrote: > I haven't seen what you are working on so I'm not sure if what I say > is relevant. Often I am logged into my Hebrew account and sometime my > English account. When I first tried to install Lazarus, I was in > Hebrew, so Lazarus started in Hebrew. I had too much trouble trying > to figure out the menus and had to uninstall it, switch to English > login, and reinstall it. Lazarus is not alone in this practice of > "automatic" install. In my opinion, "automatic" is a very bad choice. > At the moment, I am not working at it. It is generally agreed that this should be improved. Most likely by prompting the user, when he runs Lazarus for the very first time. (existing users/upgrades will not be prompted, as they likely already made there choice.) However, it is impossible to do all that for the next release. So the question is, what, if anything can be done within a couple of days? And how can it be done.

I wouldn't change things for the 1.0 release (and honestly, haven't even thought about that). Any changes can go in trunk as far as I am concerned - better some more time to think things over, and make sure things work correctly.

In the time up to now, while there have been complaints about language translations being incomplete or unnecessary, much more than complaints that it is impossible to switch languages back to English.

Show quoted text 7 lines
There are suggestions. BUT: are hey really better. Would it be better, for all users to start in English? Even if there is a really good translation? Some people can not ask questions in the English forums, due to lack of English experience. WIll it be good to force them into an Englis IDE, or would they prefer it in their native language?

See my opinion in earlier posts...

Reply by email