Beta 7 vanilla install, open installer, press submit:

Yeah I can still confirm this issue and I think this caused by the flarum-ext-english extension. This extension isn't loaded or used during the installation, so there aren't translations available, but the translator interface is used to create the validation factory. See InstallCommand
You can also see that all strings in the install.php file are hard coded.
Hello @tobscure,
maybe you can suggest how we should deal with this problem.
I think there's the choice between these two solutions:
My first idea is that we try to load the the flarum-ext-englisch extension during the execution of the install command. Then the translator should work properly, but then the installation process would be depent on this extension.
The second idea is just to create a simple implementation for the TranslatorInterface which contains the required translations but in this case the translations would be hard coded.
I'm currently in the favor of the second idea but I'm not sure about it.
I think we should try and load flarum-ext-english. That way, in the future we can provide a dropdown at the start of the installer so another language can be selected (if any others are installed).
Just in case, I'd say implement both options. Use hardcoded strings if loading flarum-ext-english fails.
This sounds like a good idea to have a fallback option. I'll soon start working on it 👍
@datitisev I don’t think there should be a fallback. If you don’t have a language pack loaded, you’re going to have issues after installation. The installer should show an error if it cannot load a language pack.
@dav-is How are you going to show the error without hardcoding strings? In the end, you still need to have some fallback, else you are just going to throw gibberish at the person.
You’d have to hardcode the error, in English. It’d be simple to google the error string if they don’t speak English. Where as a non English speaker tried to fill out the installation with the fallback English, they’d get stuck pretty easily, not know why it was in English and not the language they selected, and see a messed up Flarum installation after they finished.
We cannot really hardcode those errors, because we use for the validation of the values (MySQL configuration etc.) a external composer package (illuminate/contracts). The fallback translator is (at the moment) just for this validator, all other strings are hardcoded. It's only used when there's no english language extension installed alongside. But the fallback translator may become more important in the future when we want to create a multilingual installation process.
And yes I agree with you, a check whether there's a language pack installed, would be very useful to prevent other errors after the installation.
Why would a fallback translator be useful? Just check if language pack is installed, if not, throw a full screen error saying “no language pack installed” with a link to a FAQ. That’s all you need. No inputs should be displayed. Flarum shouldn’t be able to be installed without a language! This is what you are allowing by providing a fallback.
@dav-is The fallback translator does not allow it to be installed without a language. The fallback translator is just for the installer, so the user can understand their errors. Having validation.required doesn't tell you which field. It's easier in any case if the error is in English and not something no one understands. I would like to see Toby's thoughts on this, tho.
what’s the point of allowing them to input anything if they can’t complete the installation?
@dav-is Why would a fallback translator be useful? Just check if language pack is installed, if not, throw a full screen error saying “no language pack installed” with a link to a FAQ. That’s all you need. No inputs should be displayed. Flarum shouldn’t be able to be installed without a language! This is what you are allowing by providing a fallback.
Exactly, I agree. No need for a fallback translator, just require a language pack to be installed to proceed with installation.
Okay I get your point. I'll add a error message if no language pack is installed and I guess to enable the language extension I'll change the ExtensionManager not the LocaleServiceProdiver, so that all language extensions enabled if Flarum hasn't been installed yet.
I'm now working on it and encountered one problem: Is there a similar thing like the Exception Handler in the Api for the normal Http Request. As far as I know the HandleErrors middleware doesn't handle error which occur while booting the application, but I want to throw an error during this phase. Any ideas?
@LukBukkit no there's nothing like that currently - for now I would suggest just doing the detection/error handling directly in the Install\Controller\IndexController (we don't necessarily want an exception to be thrown in LocaleServiceProvider, I think that's outside the scope of this issue)
Validation error messages have been hardcoded in English for a while now (just like all the other strings in the installer).
If anybody is serious about making the installer translatable (and enforcing the presence of at least one language pack), then feel free to create a new issue about that.
Most helpful comment
This sounds like a good idea to have a fallback option. I'll soon start working on it 👍