IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

Traduction des sous titres d'un fichier .srt


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    étudiant
    Inscrit en
    Avril 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : étudiant

    Informations forums :
    Inscription : Avril 2016
    Messages : 6
    Points : 16
    Points
    16
    Par défaut Traduction des sous titres d'un fichier .srt
    Bonjour,
    Mon objectif est :
    -Enregistrer un travail temporaire de la traduction du fichier .srt, pouvoir le stocker dans une base de données pour pouvoir revenir plus tard.
    -pouvoir exporter la traduction dans un autre fichier de sous-titres .srt qu'on doit réaliser.
    -stocker toute la traduction ou juste une traduction partielle en base de données
    -upload d'un nouveau fichier .srt à traduire.
    -utilisation du pattern DAO

    Pour cela j'ai créé deux classes : une classe Morceau
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    public class Morceau {
     
    	private int id;
    	private int numero_morceau;
    	private String debutPeriode;  
    	private String finPeriode;
    	private String texte;
     
    	public int getId() {
    		return id;
    	}
    	public void setId(int id) {
    		this.id = id;
    	}
     
    	public int getNumero_morceau() {
    		return numero_morceau;
    	}
    	public void setNumero_morceau(int numero_morceau) {
    		this.numero_morceau = numero_morceau;
    	}
    	public String getDebut() {
    		return debutPeriode;
    	}
    	public void setDebut(String debut) {
    		this.debutPeriode = debut;
    	}
    	public String getFin() {
    		return finPeriode ;
    	}
    	public void setFin(String fin) {
    		finPeriode = fin;
    	}
    	public String getTexte() {
    		return texte;
    	}
    	public void setTexte(String texte) {
    		this.texte = texte;
    	}
    }

    Ensuite, j'ai créé une classe ListeMorceaux :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    public class ListeMorceaux {
     
    	private int id;
    	private List<Morceau> morceaux;
     
    	public int getId() {
    		return id;
    	}
    	public void setId(int id) {
    		this.id = id;
    	}
    	public List<Morceau> getMorceaux() {
    		return morceaux;
    	}
    	public void setMorceaux(List<Morceau> morceaux) {
    		this.morceaux = morceaux;
    	}
    }
    Ensuite j'ai créé la classe SubtitlesHandler :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    public class SubtitlesHandler {
    	private ArrayList<String> originalSubtitles = null;
    	private ArrayList<String> translatedSubtitles = null;
     
    	public SubtitlesHandler(String fileName) {
    		originalSubtitles = new ArrayList<String>();
    		translatedSubtitles = new ArrayList<String>();
     
    		BufferedReader br;
    		try {
    			br = new BufferedReader(new FileReader(fileName));
    			String line;
    			while ((line = br.readLine()) != null) {
    				originalSubtitles.add(line);
    			}
    			br.close();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
     
    	public void exportTexteTraduitFichierSRT(String fileName) {
    		File file = new File(fileName);
    		try {
    			if (!file.exists()) {
    				boolean res = file.createNewFile();
    			}
    			FileWriter fw = new FileWriter(file, true);
    			BufferedWriter bw = new BufferedWriter(fw);
    			for (int i = 0; i < this.translatedSubtitles.size(); i++) {
    				bw.write(translatedSubtitles.get(i) + "\n");
    				bw.flush();
    			}
    			bw.close();
    			System.out.println("Fichier créé ! ");
     
    		} catch (IOException e) {
    			System.out.println("Échec d'écriture ! ");
    			e.printStackTrace();
    		}
    	}
     
    	public ArrayList<String> getSubtitles() {
    		return originalSubtitles;
    	}
     
    	public ArrayList<String> getTranslatedSubtitles() {
    		return translatedSubtitles;
    	}
     
    	public ArrayList<String> ExtraireTexteUniquement(ArrayList<String> original) {
    		originalSubtitles = new ArrayList<String>();
    		for (int i = 0; i < original.size(); i++) {
    			String ch = original.get(i);
    			if (!estUnEntier(ch)
    					&& !ch.matches("^$") // pas de ligne vide
    					&& !ch.matches("[0-2][0-3]:[0-5][0-9]:[0-5][0-9],[0-9][0-9][0-9] --> [0-2][0-3]:[0-5][0-9]:[0-5][0-9],[0-9][0-9][0-9]")) {
    				originalSubtitles.add(ch);
    			}
    		}
    		return originalSubtitles;
    	}
     
    	private boolean estUnEntier(String line) {
    		try {
    			Integer.parseInt(line);
    			return true;
    		} catch (NumberFormatException e) {
    			return false;
    		}
    	}
    }
    Ensuite la jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <%@ page pageEncoding="UTF-8" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8" />
    <title>Editer les sous-titres</title>
    </head>
    <body>
        <form method="post" action="/edit">    
            <input type="submit" value="valider" style="position:fixed; top: 10px; right: 10px;" />
    	    <table>
    	        <c:forEach items="${ subtitles }" var="line" varStatus="status">
    	        	<tr>
    	        		<td style="text-align:right;"><c:out value="${line}" /></td>
    	        		<td><input type="text" name="line${ status.index }" id="line${ status.index }" size="35" /></td>
    	        	</tr>
    	    	</c:forEach>
    	    </table>
        </form>
    </body>
    </html>
    J'ai utilisé aussi pattern DAO.
    La jsp permet d'afficher le texte du fichier .srt et de pouvoir traduire.
    Pour le constructeur de la classe SubtitleHandler doit en même temps lire le fichier.srt de la langue originale et remplir au fur et à mesure la liste translatedSubtitles.

    Enfin mon problème est de trouver une idée pour la traduction : je pense qu'à chaque fois que je traduis une ligne de texte, en appuyant sur le bouton valider de la jsp, il y aura enregistrement dans la base de données.

    C'est quelqu'un a des idées, je le remercie d'avance de me les faire partager.


    Avatar71

  2. #2
    Candidat au Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2018
    Messages : 1
    Points : 2
    Points
    2
    Par défaut Meme probleme actuellement
    Salut avez-vous trouver une solution à ce problème, j'ai le meme presentement.

Discussions similaires

  1. Ajouter des sous titres dans une combo box
    Par Djaiffe dans le forum VB.NET
    Réponses: 5
    Dernier message: 24/05/2018, 16h55
  2. Empecher "l'ouverture" des sous fonctions d'un fichier-m
    Par lapinoufly dans le forum MATLAB
    Réponses: 1
    Dernier message: 01/07/2009, 10h07
  3. remplacer des sous titres d une video
    Par kaking dans le forum Vidéo
    Réponses: 0
    Dernier message: 10/06/2009, 14h22
  4. Réponses: 0
    Dernier message: 17/01/2009, 11h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo