### Godot version

v4.1.stable.official [970459615]

### System information

Godot v4.1.stable - Windows 10.0.22621 - Vulkan (Forward+) - dedicated NVIDIA GeForce GTX 1050 (NVIDIA; 31.0.15.3667) - Intel(R) Core(TM) i5-8300H CPU @ 2.30GHz (8 Threads)

### Issue description

When generating a POT file using Godot Editor, if the `String` contains double quotes, its entry in the POT file will be wrong (see below).

### Steps to reproduce

Create this script:
```
extends Control


func _ready():
	
	var a: String = tr("\"Problematic\" string")
	print(a)
```

And then generate a POT file from it. You will get something like:
```
# LANGUAGE translation for Bugs for the following files:
# res://main.gd
#
# FIRST AUTHOR < EMAIL @ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Bugs\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"

#: main.gd
msgid ""Problematic" string"
msgstr ""
```

The problem cames from the extra double quotes inside the string, they will raise an error when generating a PO file.

A possible solution would be to make:
```
extends Control


func _ready():
	
	TranslationServer.set_locale("fr")
	var a: String = tr("\\\"Problematic\\\" string")
	print(a)
```

Therefore, the POT file:
```
# LANGUAGE translation for Bugs for the following files:
# res://main.gd
#
# FIRST AUTHOR < EMAIL @ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Bugs\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"

#: main.gd
msgid "\"Problematic\" string"
msgstr ""
```

But then, the string is not recognized. This is the PO file with an extra entry added manually:
```
# LANGUAGE translation for Bugs for the following files:
# res://main.gd
#
# FIRST AUTHOR < EMAIL @ADDRESS>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: Bugs\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

#: main.gd
msgid "\"Problematic\" string"
msgstr "TEST0"

msgid "\\\"Problematic\\\" string"
msgstr "TEST1"
```
Then `print(a)` prints `TEST1` instead of `TEST0`.

### Minimal reproduction project

[project.zip](https://github.com/godotengine/godot/files/12207357/project.zip)

#include "pot_generator.h"
#include "core/config/project_settings.h"
#include "core/error/error_macros.h"
#include "editor/editor_translation_parser.h"
#include "plugins/packed_scene_translation_parser_plugin.h"
POTGenerator *POTGenerator::singleton = nullptr;
#ifdef DEBUG_POT
void POTGenerator::_print_all_translation_strings() {
	for (HashMap<String, Vector<POTGenerator::MsgidData>>::Element E = all_translation_strings.front(); E; E = E.next()) {
		Vector<MsgidData> v_md = all_translation_strings[E.key()];
		for (int i = 0; i < v_md.size(); i++) {
			print_line("++++++");
			print_line("msgid: " + E.key());
			print_line("context: " + v_md[i].ctx);
			print_line("msgid_plural: " + v_md[i].plural);
			for (const String &F : v_md[i].locations) {
				print_line("location: " + F);
			}
		}
	}
}
#endif
void POTGenerator::generate_pot(const String &p_file) {