EditorTranslationParserPlugin

Eredita: RefCounted < Object

Estensione per aggiungere parser personalizzati per estrarre stringhe da tradurre dai file personalizzati (.csv, .json ecc.).

Descrizione

EditorTranslationParserPlugin viene richiamato quando un file viene analizzato per estrarre stringhe che richiedono una traduzione. Per definire la logica di analisi ed estrazione delle stringhe, sovrascrivi il metodo _parse_file() da script.

Il valore restituito dovrebbe essere un Array di PackedStringArray, uno per ogni stringa traducibile estratta. Ogni voce dovrebbe contenere [msgid, msgctxt, msgid_plural, comment], dove tutti tranne msgid sono facoltativi. Le stringhe vuote verranno ignorate.

Le stringhe estratte verranno inserite in un file POT selezionato dall'utente in "Generazione del POT" nella scheda "Localizzazione" nel menu "Impostazioni del progetto".

Di seguito è riportato un esempio di un parser personalizzato che estrae stringhe da un file CSV per scriverle in un POT.

@tool
extends EditorTranslationParserPlugin

func _parse_file(path):
    var ret: Array[PackedStringArray] = []
    var file = FileAccess.open(path, FileAccess.READ)
    var text = file.get_as_text()
    var split_strs = text.split(",", false)
    for s in split_strs:
        ret.append(PackedStringArray([s]))
        #print("Stringa estratta: " + s)

    return ret

func _get_recognized_extensions():
    return ["csv"]

Per aggiungere una stringa traducibile associata a un contesto, a un plurale o a un commento:

# Questo aggiungerà un messaggio con msgid "Test 1", msgctxt "contesto" e msgid_plural "test 1 plurals" e commento "test 1 commento".
ret.append(PackedStringArray(["Test 1", "contesto", "test 1 plurali", "test 1 commento"]))
# Questo aggiungerà un messaggio con msgid "Un test senza contesto" e msgid_plural "plurali".
ret.append(PackedStringArray(["Un test senza contesto", "", "plurali"]))
# Questo aggiungerà un messaggio con msgid "Solo con contesto" e msgctxt "un contesto leggibile".
ret.append(PackedStringArray(["Solo con contesto", "un contesto leggibile"]))

Nota: Se si sovrascrive la logica di analisi per i tipi di script standard (GDScript, C#, ecc.), sarebbe meglio caricare l'argomento path tramite ResourceLoader.load(). Questo perché gli script integrati sono caricati come tipo Resource, non come tipo FileAccess. Ad esempio:

func _parse_file(path):
    var res = ResourceLoader.load(path, "Script")
    var text = res.source_code
    # Logica di analisi.

func _get_recognized_extensions():
    return ["gd"]

Per utilizzare EditorTranslationParserPlugin, registrarlo prima attraverso il metodo EditorPlugin.add_translation_parser_plugin().

Metodi

PackedStringArray

_get_recognized_extensions() virtual const

Array[PackedStringArray]

_parse_file(path: String) virtual


Descrizioni dei metodi

PackedStringArray _get_recognized_extensions() virtual const 🔗

Ottiene la lista delle estensioni di file da associare a questo parser, ad esempio ["csv"].


Array[PackedStringArray] _parse_file(path: String) virtual 🔗

Sovrascrivi questo metodo per definire una logica di analisi personalizzata per estrarre le stringhe da tradurre.