Outil de traduction japonais à anglais pour les fichiers SWF (Adobe Flash)
Cet outil Python peut être utilisé pour extraire des chaînes des actifs SWF pour la traduction, faire la traduction elle-même (basée sur le cloud ou hors ligne) et réécrire les chaînes traduites aux actifs. Vous aurez également besoin du décompilateur JPEXS Flash open-source pour déplacer les actifs dans et hors du fichier SWF.
PyTranslateswf est sous licence sous la licence MIT (voir LICENSE.txt ).
Vous aurez besoin de Python 3.6+ et des bibliothèques suivantes:
... Si vous souhaitez utiliser Microsoft Azure Traduction Service (recommandé):
pip install regex uuid requests... Si vous souhaitez utiliser le traducteur hors ligne fourni:
pip install regex jamdict stanza Nous utiliserons le Script JPEXS Flash et translateSfw.py pour interagir avec la bibliothèque. Vous pouvez utiliser -h pour obtenir de l'aide: translateSfw.py -h ou translateSfw.py translate -h .
texts et scripts et cliquez sur le bouton Export Selection dans le ruban ci-dessus. Assurez-vous d'exporter le texte comme "texte brut" et les scripts comme "ActionScript".texts et scripts ).Dans votre répertoire de travail, exécutez ce qui suit:
translateSfw.py gatherCela générera un fichier JSON avec toutes les chaînes extraites (uniques), prêtes à la traduction. Notez qu'il est peu probable que cela extrait 100% des textes, notamment les textes enregistrés en graphiques bitmap / vector et tout littéral de chaîne dans ActionScript que l'heuristique a manqué.
Si vous utilisez Microsoft Azure (recommandé), exécutez ce qui suit:
translateSfw.py translate azure --azure-subscription-key < YOUR-KEY > --azure-subscription-region < YOUR-REGION >Vous pouvez également utiliser le backend de traduction hors ligne (qui générera un texte de qualité beaucoup plus faible):
translateSfw.py translate offlineDans votre répertoire de travail, exécutez ce qui suit:
translateSfw.py export Cela modifiera les actifs avec les nouvelles chaînes. Ne pas exécuter gather ou export à nouveau après avoir fait cela, car le script serait confus par les nouvelles chaînes des actifs. Si vous souhaitez faire quelque chose différemment, supprimez les actifs et recommencez par les exporter (voir l'étape 1).
Import Text et Import Scripts dans le ruban ci-dessus pour charger vos actifs modifiés à partir du répertoire de travail.Save As... dans le ruban et générez votre fichier SWF traduit. Actuellement, il existe deux backends disponibles pour la traduction machine: le traducteur des services cognitifs Microsoft Azure (traduction machine basée sur le cloud, "approprié") et une solution hors ligne personnalisée (basée sur le dictionnaire, marginalement utilisable). Il est recommandé d'utiliser Microsoft Azure si possible - vous aurez besoin d'une clé d'abonnement pour le faire.
| Texte de saisie | Traduction (Microsoft Azure) | Traduction (traducteur hors ligne) |
|---|---|---|
| こんにちは世界 | Bonjour le monde | Konnichi ha le monde |
De plus, vous pouvez ignorer l'étape de traduction machine et traduire vous-même les chaînes extraites. Ils sont stockés comme JSON.
Les sous-classes Translator sont utilisées comme suit:
from pyTranslateSwf import OfflineTranslator , MicrosoftAzureTranslator
translator = OfflineTranslator ()
input_strings = [ "こんにちは世界" ]
output_strings = translator . translate_all ( input_strings )
print ( output_strings [ 0 ]) Les sous-classes Parser sont utilisées comme suit:
from pyTranslateSwf import JPEXSActionScriptParser , JPEXSPlainTextParser
parser = JPEXSActionScriptParser ( "./scripts/test.as" )
input_strings = parser . get_extracted_strings ()
output_strings = [ my_translate_function ( s ) for s in input_strings ]
parser . replace_strings ( output_strings )
parser . save ()Reportez-vous au module et aux docstrings de classe pour plus d'informations.