summaryrefslogtreecommitdiff
path: root/editor/pot_generator.h
diff options
context:
space:
mode:
Diffstat (limited to 'editor/pot_generator.h')
-rw-r--r--editor/pot_generator.h27
1 files changed, 21 insertions, 6 deletions
diff --git a/editor/pot_generator.h b/editor/pot_generator.h
index abe1a21d41..ab055e0c0e 100644
--- a/editor/pot_generator.h
+++ b/editor/pot_generator.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -31,15 +31,30 @@
#ifndef POT_GENERATOR_H
#define POT_GENERATOR_H
-#include "core/ordered_hash_map.h"
-#include "core/set.h"
+#include "core/os/file_access.h"
+#include "core/templates/ordered_hash_map.h"
+#include "core/templates/set.h"
+
+//#define DEBUG_POT
class POTGenerator {
static POTGenerator *singleton;
- // Stores all translatable strings and the source files containing them.
- OrderedHashMap<String, Set<String>> all_translation_strings;
+
+ struct MsgidData {
+ String ctx;
+ String plural;
+ Set<String> locations;
+ };
+ // Store msgid as key and the additional data around the msgid - if it's under a context, has plurals and its file locations.
+ OrderedHashMap<String, Vector<MsgidData>> all_translation_strings;
void _write_to_pot(const String &p_file);
+ void _write_msgid(FileAccess *r_file, const String &p_id, bool p_plural);
+ void _add_new_msgid(const String &p_msgid, const String &p_context, const String &p_plural, const String &p_location);
+
+#ifdef DEBUG_POT
+ void _print_all_translation_strings();
+#endif
public:
static POTGenerator *get_singleton();