Can I subscribe to an event from scripts who aren’t in the initial scene when the game is loaded? Because I have an event called OnLanguageChanged and I need to subscribe to this event from some scripts who aren’t called when the game is initialized, such as main menu, options menu, etc.
If the object with the script / class that contains the event is loaded in a different scene, you have to make sure it isn’t destroyed when you change the scene. Usually everything is destroyed when you load a level. In other words you need to use DontDestroyOnLoad on that gameobject. If you load another scene, you can access the gameobject like any other gameobject.
Not sure I understand your question correctly, but if your script providing the event is a persistent script (which it would need to be, using DontDestroyOnLoad()) in your initial scene, and the scripts that need to register to it are not in your initial scene, then just have them register to the event in their OnLevelWasLoaded().
If I misunderstood, please explain the situation more clearly.