Guest User

Untitled

a guest
Aug 16th, 2018
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.71 KB | None | 0 0
  1. Automate Spreadsheet to strings.xml for localization
  2. name,plural value,en,fr,de,it,es,ja
  3.  
  4. package
  5. {
  6. import flash.display.Sprite;
  7. import flash.events.Event;
  8. import flash.events.MouseEvent;
  9. import flash.net.FileReference;
  10. import flash.utils.ByteArray;
  11.  
  12. /**
  13. * ...
  14. * @author Plastic Sturgeon
  15. */
  16. public class Main extends Sprite
  17. {
  18. private var rows:Array;
  19. private var en:XML = <resources></resources>;
  20. private var fr:XML = <resources></resources>;
  21. private var de:XML = <resources></resources>;
  22. private var it:XML = <resources></resources>;
  23. private var es:XML = <resources></resources>;
  24. private var xmls:Vector.<XML> = new Vector.<XML>;
  25.  
  26. private var counter:uint = 0;
  27. public function Main():void
  28. {
  29. xmls.push(en);
  30. xmls.push(fr);
  31. xmls.push(de);
  32. xmls.push(it);
  33. xmls.push(es);
  34.  
  35. if (stage) init();
  36. else addEventListener(Event.ADDED_TO_STAGE, init);
  37. }
  38.  
  39. private function init(e:Event = null):void
  40. {
  41. removeEventListener(Event.ADDED_TO_STAGE, init);
  42. // entry point
  43. dumpIt();
  44. graphics.beginFill(0xFFCC00);
  45. graphics.drawRect(0, 0, 100, 100);
  46. stage.addEventListener(MouseEvent.CLICK, onMouseClick);
  47. }
  48.  
  49. private function onMouseClick(e:MouseEvent):void
  50. {
  51. var language:int = counter % 5;
  52. var suffixes:Array = new Array("en", "fr", "de", "it", "es");
  53. var fr:FileReference = new FileReference();
  54. var ba:ByteArray = new ByteArray();
  55. ba.writeObject('<?xml version="1.0" encoding="utf-8"?>r'+xmls[language].toXMLString());
  56. fr.save(ba, "strings-"+suffixes[language]+".xml");
  57. counter++
  58. }
  59. public function dumpIt():void
  60. {
  61. var obj:EmbeddedText = new EmbeddedText();
  62. //txt.text = obj.toString();
  63. rows = obj.toString().split("r");
  64. trace(rows.length);
  65. for (var i:uint = 0; i < rows.length; i++ ) {
  66. var row:Array = String(rows[i]).split(",");
  67. for (var j:uint = 0; j < xmls.length; j++ ) {
  68. var name:String = row[0]
  69. name = name.substring(1);
  70. var value:String = row[2 + j];
  71. var node:XML = new XML('<string name="' + name + '">' + value + '</string>');
  72. //trace('<string name="' + name + '">' + value + '</string>');
  73. xmls[j].appendChild(node);
  74. }
  75. }
  76. trace("en",en);
  77. }
  78. }
  79.  
  80. }
  81.  
  82. package
  83. {
  84. import flash.utils.ByteArray;
  85.  
  86. /**
  87. * ...
  88. * @author Plastic Sturgeon
  89. */
  90. [Embed(source="translateion_csv.txt", mimeType="application/octet-stream")]
  91. public class EmbeddedText extends ByteArray
  92. {
  93.  
  94. public function EmbeddedText()
  95. {
  96.  
  97. }
  98.  
  99. }
  100. }
  101.  
  102. name,plural value,en,fr,de,it,es,ja
  103. homescreen_new_button,,NEW TOURNAMENT,NOUVEAU TOURNOI,NEUES TURNIER,NUOVO TORNEO,NUEVO TORNEO,
  104. homescreen_current_button,,VIEW CURRENT BRACKET,VOIR LE TABLEAU ACTUEL,AKTUELLER TURNIERSTAND,VISUALIZZA GRIGLIA,VER NIVEL ACTUAL,
  105. tournament_type_title,,TOURNAMENT SETTINGS,PARAMÈTRES DU TOURNOI,TURNIER-EINSTELLUNGEN,IMPOSTAZIONI TORNEO,CONFIGURACIÓN DE TORNEO,
  106. tournament_type_gaming_stations,,HOW MANY GAMING STATIONS,COMBIEN DE POSTES,WIE VIELE SPIELGERÄTE,NUMERO DI POSTAZIONI DI GIOCO,NÚMERO DE MÁQUINAS DE JUEGO,
  107. tournament_type_tournament_type,,TOURNAMENT TYPE,TYPE DE TOURNOI,TURNIERART,TIPO DI TORNEO,TIPO DE TORNEO,
  108. tournament_type_tournament_type_single,,SINGLE ELIMINATION,ÉLIMINATION DIRECTE,EINFACHE ELIMINIERUNG,ELIMINAZIONE SINGOLA,ELIMINACIÓN INDIVIDUAL,
  109. tournament_type_tournament_type_double,,DOUBLE ELIMINATION,DOUBLE ÉLIMINATION,DOPPELTE ELIMINIERUNG,ELIMINAZIONE DOPPIA,ELIMINACIÓN DOBLE,
  110. tournament_type_back_warning_title,,WARNING,AVERTISSEMENT,ACHTUNG,AVVISO,ATENCIÓN,
  111. tournament_type_back_warning_message,,Going back to the home screen will clear all information.nDo you want to continue?,Retourner à l'écran d'accueil effacera toutes les données.nVoulez-vous continuer ?,Durch die Rückkehr zum Home-Bildschirm werden alle Informationen gelöscht.nWirklich fortfahren?,Tornando alla schermata iniziale perderai tutte le informazioni.nVuoi continuare?,"Si vuelves a la pantalla principal, se borrará toda la información.n¿Continuar?",
  112. tournament_type_back_warning_confirm,,OK,OK,OK,OK,Aceptar,
  113. tournament_type_back_warning_cancel,,Cancel,Annuler,Abbrechen,Annulla,Cancelar,
  114. tournament_type_help_single,,Players are eliminated after their first loss.,Les joueurs sont éliminés dès la première défaite.,Spieler scheiden nach ihrer ersten Niederlage aus.,I giocatori vengono eliminati dopo la prima sconfitta.,Los jugadores quedan eliminados a la primera derrota.,
  115. tournament_type_help_double,,"After a player loses once, they enter the Loser's bracket. They are eliminated if they lose a second time.","Après une première défaite, le joueur intègre le tableau des perdants. Il est éliminé s'il perd une seconde fois.",Nach einer ersten Niederlage nimmt der Spieler an der Verliererrunde teil. Bei einer zweiten Niederlage scheidet er aus.,"Dopo una sconfitta, i giocatori vengono inseriti nella griglia sconfitti. Vengono eliminati se perdono per la seconda volta.","Al perder una vez, pasan al nivel de perdedores. Si pierden una segunda vez, quedan eliminados.",
  116. add_players_title,,ADD PLAYERS,AJOUTER DES JOUEURS,SPIELER HINZUFÜGEN,AGGIUNGI GIOCATORI,AÑADIR JUGADORES,
  117. add_players_seed,,SEED,CLASSER,SETZEN,TESTA DI SERIE,CABEZA DE SERIE,
  118. add_players_delete,,DELETE,SUPPRIMER,LÖSCHEN,CANCELLA,QUITAR,
  119. add_players_default_value,,PLAYER NAME,NOM DU JOUEUR,SPIELERNAME,NOME GIOCATORE,NOMBRE DE JUGADOR,
  120. add_players_dialog_title,,ADD PLAYER,AJOUTER UN JOUEUR,SPIELER HINZUFÜGEN,AGGIUNGI GIOCATORE,AÑADIR JUGADOR,
  121. add_players_dialog_message,,ENTER THE PLAYER NAME,ENTRER LE NOM DU JOUEUR,SPIELERNAMEN EINGEBEN,INSERISCI IL NOME DEL GIOCATORE,ESCRIBE EL NOMBRE DE JUGADOR,
  122. add_players_dialog_OK,,OK,OK,OK,OK,ACEPTAR,
  123. add_players_dialog_ok_and_add,,OK + ADD ANOTHER,OK + EN AJOUTER UN AUTRE,OK + MEHR HINZUFÜGEN,OK + AGGIUNGI ALTRO,ACEPTAR Y AÑADIR OTRO,
  124. add_players_dialog_cancel,,CANCEL,ANNULER,ABBRECHEN,ANNULLA,CANCELAR,
  125. add_players_dialog_name_taken,,Name Already Taken,Nom déjà utilisé,Name bereits vergeben,Nome già in uso,Nombre ya utilizado,
  126. add_players_dialog_name_added,,Player Added,Joueur ajouté,Spieler hinzugefügt,Giocatore aggiunto,Jugador añadido,
  127. add_players_delete_confirm,,DELETE,SUPPRIMER,LÖSCHEN,CANCELLA,QUITAR,
  128. add_players_delete_cancel,,DONE,TERMINÉ,FERTIG,FATTO,HECHO,
Add Comment
Please, Sign In to add comment