### Godot version

master

### System information

Win11

### Issue description

When use `Generate POT` for multiline texts, it drops `\n` and generates single line message.

- **Label text in Main.tscn:**
![image](https://user-images.githubusercontent.com/12966814/209623668-19fd1d76-038a-4c19-938e-7559eb7652a3.png)


- **tr() text in Main.gd:**
```gdscript
func _ready():
	print(tr("MULTILINE text\nfrom\nMain.gd"))
```

- **Generated .pot:**
```pot
#: Main.tscn
#: Main.gd
msgid "MULTILINE text"
"from"
"Main.gd"
msgstr ""

#: Main.tscn
msgid "This is"
"MULTILINE text"
"from Main.tscn"
msgstr ""
```
This is actually single line like `This isMULTILINE textfrom Main.tscn`


- **Expected:**

```pot
#: Main.tscn Main.gd
msgid ""
"MULTILINE text\n"
"from\n"
"Main.gd"
msgstr ""

#: Main.tscn
msgid ""
"This is\n"
"MULTILINE text\n"
"from Main.tscn"
msgstr ""
```

### Steps to reproduce

Generate pot file for multiline texts.


### Minimal reproduction project

[generate_pot_newline.zip](https://github.com/godotengine/godot/files/10306460/generate_pot_newline.zip)

String msgid = E_pair.key;
		const Vector<MsgidData> &v_msgid_data = E_pair.value;
		for (int i = 0; i < v_msgid_data.size(); i++) {
			String context = v_msgid_data[i].ctx;
			String plural = v_msgid_data[i].plural;
			const HashSet<String> &locations = v_msgid_data[i].locations;
			
			file->store_line("");
			
			for (const String &E : locations) {
				file->store_line("#: " + E.trim_prefix("res://"));
			}
			
			if (!context.is_empty()) {
				file->store_line("msgctxt \"" + context + "\"");
			}
			
			_write_msgid(file, msgid, false);
			
			if (!plural.is_empty()) {
				_write_msgid(file, plural, true);
				file->store_line("msgstr[0] \"\"");
				file->store_line("msgstr[1] \"\"");
			} else {
				file->store_line("msgstr \"\"");
			}
		}
	}
}
void POTGenerator::_write_msgid(Ref<FileAccess> r_file, const String &p_id, bool p_plural) {