summaryrefslogtreecommitdiffstats
path: root/core/string/translation_domain.h
diff options
context:
space:
mode:
Diffstat (limited to 'core/string/translation_domain.h')
-rw-r--r--core/string/translation_domain.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/core/string/translation_domain.h b/core/string/translation_domain.h
index 6139967217..55592d3b35 100644
--- a/core/string/translation_domain.h
+++ b/core/string/translation_domain.h
@@ -38,7 +38,28 @@ class Translation;
class TranslationDomain : public RefCounted {
GDCLASS(TranslationDomain, RefCounted);
+ struct PseudolocalizationConfig {
+ bool enabled = false;
+ bool accents_enabled = true;
+ bool double_vowels_enabled = false;
+ bool fake_bidi_enabled = false;
+ bool override_enabled = false;
+ bool skip_placeholders_enabled = true;
+ float expansion_ratio = 0.0;
+ String prefix = "[";
+ String suffix = "]";
+ };
+
HashSet<Ref<Translation>> translations;
+ PseudolocalizationConfig pseudolocalization;
+
+ String _get_override_string(const String &p_message) const;
+ String _double_vowels(const String &p_message) const;
+ String _replace_with_accented_string(const String &p_message) const;
+ String _wrap_with_fakebidi_characters(const String &p_message) const;
+ String _add_padding(const String &p_message, int p_length) const;
+ const char32_t *_get_accented_version(char32_t p_character) const;
+ bool _is_placeholder(const String &p_message, int p_index) const;
protected:
static void _bind_methods();
@@ -59,6 +80,27 @@ public:
StringName translate(const StringName &p_message, const StringName &p_context) const;
StringName translate_plural(const StringName &p_message, const StringName &p_message_plural, int p_n, const StringName &p_context) const;
+ bool is_pseudolocalization_enabled() const;
+ void set_pseudolocalization_enabled(bool p_enabled);
+ bool is_pseudolocalization_accents_enabled() const;
+ void set_pseudolocalization_accents_enabled(bool p_enabled);
+ bool is_pseudolocalization_double_vowels_enabled() const;
+ void set_pseudolocalization_double_vowels_enabled(bool p_enabled);
+ bool is_pseudolocalization_fake_bidi_enabled() const;
+ void set_pseudolocalization_fake_bidi_enabled(bool p_enabled);
+ bool is_pseudolocalization_override_enabled() const;
+ void set_pseudolocalization_override_enabled(bool p_enabled);
+ bool is_pseudolocalization_skip_placeholders_enabled() const;
+ void set_pseudolocalization_skip_placeholders_enabled(bool p_enabled);
+ float get_pseudolocalization_expansion_ratio() const;
+ void set_pseudolocalization_expansion_ratio(float p_ratio);
+ String get_pseudolocalization_prefix() const;
+ void set_pseudolocalization_prefix(const String &p_prefix);
+ String get_pseudolocalization_suffix() const;
+ void set_pseudolocalization_suffix(const String &p_suffix);
+
+ StringName pseudolocalize(const StringName &p_message) const;
+
TranslationDomain();
};