Merge pull request #91951 from dalexeev/gds-pot-gen-add-atr-and-atr-n

GDScript: Add support for `atr` and `atr_n` to POT generator
This commit is contained in:
Rémi Verschelde 2024-05-15 12:09:56 +02:00
commit 5caa8e41f7
No known key found for this signature in database
GPG key ID: C3336907360768E1
2 changed files with 6 additions and 4 deletions

View file

@ -276,8 +276,8 @@ void GDScriptEditorTranslationParserPlugin::_assess_call(const GDScriptParser::C
id_ctx_plural.resize(3); id_ctx_plural.resize(3);
bool extract_id_ctx_plural = true; bool extract_id_ctx_plural = true;
if (function_name == tr_func) { if (function_name == tr_func || function_name == atr_func) {
// Extract from tr(id, ctx). // Extract from `tr(id, ctx)` or `atr(id, ctx)`.
for (int i = 0; i < p_call->arguments.size(); i++) { for (int i = 0; i < p_call->arguments.size(); i++) {
if (_is_constant_string(p_call->arguments[i])) { if (_is_constant_string(p_call->arguments[i])) {
id_ctx_plural.write[i] = p_call->arguments[i]->reduced_value; id_ctx_plural.write[i] = p_call->arguments[i]->reduced_value;
@ -289,8 +289,8 @@ void GDScriptEditorTranslationParserPlugin::_assess_call(const GDScriptParser::C
if (extract_id_ctx_plural) { if (extract_id_ctx_plural) {
ids_ctx_plural->push_back(id_ctx_plural); ids_ctx_plural->push_back(id_ctx_plural);
} }
} else if (function_name == trn_func) { } else if (function_name == trn_func || function_name == atrn_func) {
// Extract from tr_n(id, plural, n, ctx). // Extract from `tr_n(id, plural, n, ctx)` or `atr_n(id, plural, n, ctx)`.
Vector<int> indices; Vector<int> indices;
indices.push_back(0); indices.push_back(0);
indices.push_back(3); indices.push_back(3);

View file

@ -45,6 +45,8 @@ class GDScriptEditorTranslationParserPlugin : public EditorTranslationParserPlug
// List of patterns used for extracting translation strings. // List of patterns used for extracting translation strings.
StringName tr_func = "tr"; StringName tr_func = "tr";
StringName trn_func = "tr_n"; StringName trn_func = "tr_n";
StringName atr_func = "atr";
StringName atrn_func = "atr_n";
HashSet<StringName> assignment_patterns; HashSet<StringName> assignment_patterns;
HashSet<StringName> first_arg_patterns; HashSet<StringName> first_arg_patterns;
HashSet<StringName> second_arg_patterns; HashSet<StringName> second_arg_patterns;