提交 bd891113 authored 作者: Thomas Mueller's avatar Thomas Mueller

Translating the H2 Console is now simpler.

上级 0693393f
......@@ -7,7 +7,9 @@
package org.h2.server.web;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
......@@ -22,6 +24,7 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Locale;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
import java.util.TimeZone;
......@@ -126,6 +129,7 @@ public class WebServer implements Service {
private boolean ifExists;
private boolean allowScript;
private boolean trace;
private TranslateThread translateThread;
/**
* Read the given file from the file system or from the resources.
......@@ -665,5 +669,71 @@ public class WebServer implements Service {
String s = (String) session.get("sessionId");
return url + "/frame.jsp?jsessionid=" + s;
}
/**
* The translate thread reads and writes the file translation.properties
* once a second.
*/
private static class TranslateThread extends Thread {
private final File file = new File("translation.properties");
private final Map translation;
private volatile boolean stopNow;
TranslateThread(Map translation) {
this.translation = translation;
}
public String getFileName() {
return file.getAbsolutePath();
}
public void stopNow() {
this.stopNow = true;
try {
join();
} catch (InterruptedException e) {
// ignore
}
}
public void run() {
while (!stopNow) {
try {
SortedProperties sp = new SortedProperties();
if (file.exists()) {
InputStream in = FileUtils.openFileInputStream(file.getName());
sp.load(in);
translation.putAll(sp);
} else {
OutputStream out = FileUtils.openFileOutputStream(file.getName(), false);
sp.putAll(translation);
sp.store(out, "Translation");
}
Thread.sleep(1000);
} catch (Exception e) {
e.printStackTrace();
// ignore
}
}
}
}
/**
* Start the translation thread that reads the file once a second.
*
* @param translation the translation map
* @return the name of the file to translate
*/
String startTranslate(Map translation) {
if (translateThread != null) {
translateThread.stopNow();
}
translateThread = new TranslateThread(translation);
translateThread.setDaemon(true);
translateThread.start();
return translateThread.getFileName();
}
}
......@@ -452,6 +452,8 @@ class WebThread extends Thread implements DatabaseEventListener {
file = admin();
} else if ("adminSave.do".equals(file)) {
file = adminSave();
} else if ("adminStartTranslate.do".equals(file)) {
file = adminStartTranslate();
} else if ("adminShutdown.do".equals(file)) {
file = adminShutdown();
} else if ("autoCompleteList.do".equals(file)) {
......@@ -620,6 +622,13 @@ class WebThread extends Thread implements DatabaseEventListener {
}
return "tools.jsp";
}
private String adminStartTranslate() {
Map p = (Map) session.map.get("text");
String file = server.startTranslate(p);
session.put("translationFile", file);
return "helpTranslate.jsp";
}
private String adminShutdown() {
stopNow();
......
......@@ -29,6 +29,8 @@ adminSave=Speichern
adminSessions=Aktive Verbindungen
adminShutdown=Shutdown
adminTitle=H2 Console Optionen
adminTranslateHelp=Die H2 Console übersetzen oder die Übersetzung verbessern.
adminTranslateStart=Übersetzen
helpAction=Aktion
helpAddAnotherRow=Fügt einen weiteren Datensatz hinzu
helpAddDrivers=Datenbank Treiber hinzufügen
......
......@@ -29,6 +29,8 @@ adminSave=Save
adminSessions=Active Sessions
adminShutdown=Shutdown
adminTitle=H2 Console Preferences
adminTranslateHelp=Translate or improve the translation of the H2 Console.
adminTranslateStart=Translate
helpAction=Action
helpAddAnotherRow=Add another row
helpAddDrivers=Adding Database Drivers
......
......@@ -29,6 +29,8 @@ adminSave=Guardar
adminSessions=Sesiones activas
adminShutdown=Parar servidor
adminTitle=Preferencias de H2 Consola
adminTranslateHelp=\#Translate or improve the translation of the H2 Console.
adminTranslateStart=\#Translate
helpAction=Action
helpAddAnotherRow=Añadir otra fila
helpAddDrivers=Añadiendo drivers de base de datos
......
.translator=?
.translator=Olivier Parent
a.help=Aide
a.language=Français
a.lynxNotSupported=Désolé, Lynx n'est pas encore supporté
a.password=Mot de passe
a.remoteConnectionsDisabled=Désolé, la gestion des connexions provenant de machines distantes est désactivée sur ce serveur ('webAllowOthers').
a.title=Console H2
a.tools=\#Tools
a.tools=Outils
a.user=Nom d'utilisateur
admin.executing=\#Executing
admin.ip=\#IP
admin.lastAccess=\#Last Access
admin.lastQuery=\#Last Query
admin.url=\#URL
admin.executing=Exécution en cours
admin.ip=Adresse IP
admin.lastAccess=Dernier accès
admin.lastQuery=Dernière requête
admin.url=URL
adminAllow=Clients autorisés
adminConnection=Sécurité des connexions
adminHttp=Utiliser des connexions HTTP non sécurisées
......@@ -24,15 +24,17 @@ adminLogout=Déconnexion
adminOthers=Autoriser les connexions d'ordinateurs distants
adminPort=Numéro de port
adminPortWeb=Numéro de port du serveur Web
adminRestart=Modifications effectuées aprè redémarrage du serveur.
adminRestart=Modifications effectuées après redémarrage du serveur.
adminSave=Enregistrer
adminSessions=Sessions actives
adminShutdown=\#Shutdown
adminShutdown=Arrêt
adminTitle=Console H2 de paramétrage des options
adminTranslateHelp=\#Translate or improve the translation of the H2 Console.
adminTranslateStart=\#Translate
helpAction=Action
helpAddAnotherRow=Ajouter un autre enregistrement
helpAddDrivers=Ajouter de drivers de base de données
helpAddDriversText=Des drivers additionels peuvent être configurés en déclarant l'emplacement du fichier Jar contenant ces drivers dans les variables d'environnement H2DRIVERS ou CLASSPATH. Exemple (Windows)\: Pour ajouter la librairie C\:\\Programs\\hsqldb\\lib\\hsqldb.jar, définir la valeur de la variable d'environnement H2DRIVERS en C\:\\Programs\\hsqldb\\lib\\hsqldb.jar.
helpAddDrivers=Ajouter des pilotes de base de données
helpAddDriversText=Des pilotes additionels peuvent être configurés en déclarant l'emplacement du fichier Jar contenant ces pilotes dans les variables d'environnement H2DRIVERS ou CLASSPATH. Exemple (Windows)\: Pour ajouter la bibliothèque C\:\\Programs\\hsqldb\\lib\\hsqldb.jar, définir la valeur de la variable d'environnement H2DRIVERS en C\:\\Programs\\hsqldb\\lib\\hsqldb.jar.
helpAddRow=Ajouter un nouvel enregistrement
helpCommandHistory=Affiche l'historique des commandes
helpCreateTable=Créer une nouvelle table
......@@ -51,7 +53,7 @@ helpUpdate=Modifier un enregistrement
helpWithColumnsIdName=avec les colonnes ID et NAME
login.connect=Connecter
login.driverClass=Pilote JDBC
login.driverNotFound=Driver non trouv&eacute;.<br />Veuillez consulter dans l'aide la proc&eacute;dure d'ajout de drivers.
login.driverNotFound=Pilote non trouv&eacute;.<br />Veuillez consulter dans l'aide la proc&eacute;dure d'ajout de pilotes.
login.goAdmin=Options
login.jdbcUrl=URL JDBC
login.language=Langue
......@@ -80,10 +82,10 @@ resultEdit.editResult=Editer
resultEdit.save=Enregistrer
toolbar.all=Tous
toolbar.autoCommit=Validation automatique (auto commit)
toolbar.autoComplete=\#Auto complete
toolbar.autoComplete.full=\#Full
toolbar.autoComplete.normal=\#Normal
toolbar.autoComplete.off=\#Off
toolbar.autoComplete=Compl&egrave;tement automatique
toolbar.autoComplete.full=Exhaustif
toolbar.autoComplete.normal=Normal
toolbar.autoComplete.off=D&eacute;sactiv&eacute;
toolbar.cancelStatement=Annuler l'instruction en cours
toolbar.clear=Effacer
toolbar.commit=Valider
......@@ -94,50 +96,50 @@ toolbar.refresh=Rafra&icirc;chir
toolbar.rollback=Revenir en arri&egrave;re
toolbar.run=Ex&eacute;cuter (Ctrl+Enter)
toolbar.sqlStatement=Instruction SQL
tools.backup=\#Backup
tools.backup.help=\#Creates a backup of a database.
tools.changeFileEncryption=\#ChangeFileEncryption
tools.changeFileEncryption.help=\#Allows changing the database file encryption password and algorithm.
tools.cipher=\#Cipher (AES or XTEA)
tools.commandLine=\#Command line
tools.convertTraceFile=\#ConvertTraceFile
tools.convertTraceFile.help=\#Converts a .trace.db file to a Java application and SQL script.
tools.createCluster=\#CreateCluster
tools.createCluster.help=\#Creates a cluster from a standalone database.
tools.databaseName=\#Database name
tools.decryptionPassword=\#Decryption password
tools.deleteDbFiles=\#DeleteDbFiles
tools.deleteDbFiles.help=\#Deletes all files belonging to a database.
tools.directory=\#Directory
tools.encryptionPassword=\#Encryption password
tools.javaDirectoryClassName=\#Java directory and class name
tools.recover=\#Recover
tools.recover.help=\#Helps recovering a corrupted database.
tools.restore=\#Restore
tools.restore.help=\#Restores a database backup.
tools.result=\#Result
tools.run=\#Run
tools.runScript=\#RunScript
tools.runScript.help=\#Runs a SQL script.
tools.script=\#Script
tools.script.help=\#Allows to convert a database to a SQL script for backup or migration.
tools.scriptFileName=\#Script file name
tools.serverList=\#Server list
tools.sourceDatabaseName=\#Source database name
tools.sourceDatabaseURL=\#Source database URL
tools.sourceDirectory=\#Target directory
tools.sourceFileName=\#Source file name
tools.sourceScriptFileName=\#Source script file name
tools.targetDatabaseName=\#Target database name
tools.targetDatabaseURL=\#Target database URL
tools.targetFileName=\#Target file name
tools.targetScriptFileName=\#Target script file name
tools.traceFileName=\#Trace file name
tools.backup=Sauvegarde
tools.backup.help=Cr&eacute;e une sauvegarde de base de donn&eacute;es.
tools.changeFileEncryption=Modifier le chiffrement
tools.changeFileEncryption.help=Permet la modification du mot de passe et de l'algorithme de chiffrement des fichiers de base de donn&eacute;es.
tools.cipher=Chiffrement (AES ou XTEA)
tools.commandLine=Ligne de commande
tools.convertTraceFile=Convertir le fichier trace
tools.convertTraceFile.help=Convertit un fichier .trace.db en une application Java ou un script SQL.
tools.createCluster=Cr&eacute;er une grappe de serveurs
tools.createCluster.help=Cr&eacute;e une grappe de serveurs depuis une base de donn&eacute;es autonome.
tools.databaseName=Nom de la base de donn&eacute;es
tools.decryptionPassword=Mot de passe de d&eacute;chiffrement
tools.deleteDbFiles=Supprimer les fichiers
tools.deleteDbFiles.help=Supprime tous les fichiers appartenant &agrave; une base de donn&eacute;es
tools.directory=R&eacute;pertoire
tools.encryptionPassword=Mot de passe de chiffrement
tools.javaDirectoryClassName=R&eacute;pertoire Java et nom de classe
tools.recover=R&eacute;paration
tools.recover.help=Aide la r&eacute;paration d'une base de donn&eacute;es corrompue
tools.restore=Restauration
tools.restore.help=Restaure une sauvegarde de base de donn&eacute;es.
tools.result=R&eacute;sultat
tools.run=Ex&eacute;cuter
tools.runScript=Ex&eacute;cuter le script
tools.runScript.help=Ex&eacute;cute un script SQL.
tools.script=Script
tools.script.help=Convertit une base de donn&eacute;es en script SQL pour une sauvegarde ou une migration.
tools.scriptFileName=Nom du fichier de script
tools.serverList=Liste des serveurs
tools.sourceDatabaseName=Base de donn&eacute;es source
tools.sourceDatabaseURL=URL base de donn&eacute;es source
tools.sourceDirectory=R&eacute;pertoire cible
tools.sourceFileName=Nom de fichier source
tools.sourceScriptFileName=Nom du fichier script source
tools.targetDatabaseName=Base de donn&eacute;es cible
tools.targetDatabaseURL=URL base de donn&eacute;es cible
tools.targetFileName=Nom de fichier cible
tools.targetScriptFileName=Nom de fichier script cible
tools.traceFileName=Nom du fichier de trace
tree.admin=Administrateur
tree.current=Valeur actuelle
tree.hashed=Hach&eacute; (hashed)
tree.increment=Increment
tree.indexes=Indexes
tree.increment=Incr&eacute;ment
tree.indexes=Index
tree.nonUnique=Non unique
tree.sequences=S&eacute;quences
tree.unique=Unique
......
......@@ -29,6 +29,8 @@ adminSave=Ment&eacute;s
adminSessions=Akt&iacute;v munkamenetek
adminShutdown=Le&aacute;ll&iacute;t&aacute;s
adminTitle=H2 Konzol tulajdons&aacute;gai
adminTranslateHelp=\#Translate or improve the translation of the H2 Console.
adminTranslateStart=\#Translate
helpAction=Parancs
helpAddAnotherRow=Rekord hozz&aacute;ad&aacute;sa
helpAddDrivers=Adatb&aacute;zis-illeszt&\#337;programok hozz&aacute;ad&aacute;sa
......
......@@ -29,6 +29,8 @@ adminSave=Simpan
adminSessions=Sesi aktif
adminShutdown=Matikan
adminTitle=Pilihan di Konsol H2
adminTranslateHelp=\#Translate or improve the translation of the H2 Console.
adminTranslateStart=\#Translate
helpAction=Aksi
helpAddAnotherRow=Menambah sebuah baris
helpAddDrivers=Menambah pengendali basis data
......
......@@ -29,6 +29,8 @@ adminSave=Salva
adminSessions=Connessioni attive
adminShutdown=Shutdown
adminTitle=Pannello di controllo preferenze H2
adminTranslateHelp=\#Translate or improve the translation of the H2 Console.
adminTranslateStart=\#Translate
helpAction=Azione
helpAddAnotherRow=Aggiunge un'altra riga
helpAddDrivers=Aggiunta di altri driver per l'accesso al database
......
......@@ -29,6 +29,8 @@ adminSave=\u4FDD\u5B58
adminSessions=\u30A2\u30AF\u30C6\u30A3\u30D6\u30BB\u30C3\u30B7\u30E7\u30F3
adminShutdown=\u30B7\u30E3\u30C3\u30C8\u30C0\u30A6\u30F3
adminTitle=H2\u30B3\u30F3\u30BD\u30FC\u30EB\u8A2D\u5B9A
adminTranslateHelp=\#Translate or improve the translation of the H2 Console.
adminTranslateStart=\#Translate
helpAction=\u30A2\u30AF\u30B7\u30E7\u30F3
helpAddAnotherRow=\u5225\u306E\u884C\u3092\u8FFD\u52A0
helpAddDrivers=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30C9\u30E9\u30A4\u30D0\u306E\u8FFD\u52A0
......
......@@ -29,6 +29,8 @@ adminSave=Opslaan
adminSessions=Actieve sessies
adminShutdown=Server stoppen
adminTitle=H2 Console instellingen
adminTranslateHelp=\#Translate or improve the translation of the H2 Console.
adminTranslateStart=\#Translate
helpAction=Gebeurtenis
helpAddAnotherRow=Voeg nogmaals een nieuwe regel toe
helpAddDrivers=Toevoegen drivers voor een database
......
......@@ -29,6 +29,8 @@ adminSave=Zapisz
adminSessions=Aktywne sesje
adminShutdown=Wy&\#322;&\#261;cz
adminTitle=Ustawienia konsoli H2
adminTranslateHelp=\#Translate or improve the translation of the H2 Console.
adminTranslateStart=\#Translate
helpAction=Akcja
helpAddAnotherRow=Dodaj kolejny rekord
helpAddDrivers=Dodatkowe sterowniki baz danych
......
......@@ -29,6 +29,8 @@ adminSave=Salvar
adminSessions=Sess&otilde;es ativas
adminShutdown=Terminar
adminTitle=Configura&ccedil;&atilde;o do H2 Terminal
adminTranslateHelp=\#Translate or improve the translation of the H2 Console.
adminTranslateStart=\#Translate
helpAction=A&ccedil;&atilde;o
helpAddAnotherRow=Adicionar outra linha
helpAddDrivers=Adicionar drivers de Base de Dados
......
......@@ -29,6 +29,8 @@ adminSave=Gravar
adminSessions=Sess&otilde;es activas
adminShutdown=Encerrar
adminTitle=Preferencias da Consola H2
adminTranslateHelp=\#Translate or improve the translation of the H2 Console.
adminTranslateStart=\#Translate
helpAction=Ac&ccedil;&atilde;o
helpAddAnotherRow=Adicionar outra linha
helpAddDrivers=Adicionar drivers de Base de Dados
......
......@@ -29,6 +29,8 @@ adminSave=&\#1057;&\#1086;&\#1093;&\#1088;&\#1072;&\#1085;&\#1080;&\#1090;&\#110
adminSessions=&\#1040;&\#1082;&\#1090;&\#1080;&\#1074;&\#1085;&\#1099;&\#1077; &\#1089;&\#1077;&\#1089;&\#1089;&\#1080;&\#1080;
adminShutdown=&\#1042;&\#1099;&\#1082;&\#1083;&\#1102;&\#1095;&\#1080;&\#1090;&\#1100;
adminTitle=H2 Console Preferences
adminTranslateHelp=\#Translate or improve the translation of the H2 Console.
adminTranslateStart=\#Translate
helpAction=&\#1044;&\#1077;&\#1081;&\#1089;&\#1090;&\#1074;&\#1080;&\#1077;
helpAddAnotherRow=&\#1044;&\#1086;&\#1073;&\#1072;&\#1074;&\#1080;&\#1090;&\#1100; &\#1089;&\#1090;&\#1088;&\#1086;&\#1082;&\#1091;
helpAddDrivers=&\#1044;&\#1072;&\#1073;&\#1072;&\#1074;&\#1083;&\#1103;&\#1077;&\#1084; &\#1076;&\#1088;&\#1072;&\#1081;&\#1074;&\#1077;&\#1088; &\#1073;&\#1072;&\#1079;&\#1099; &\#1076;&\#1072;&\#1085;&\#1085;&\#1099;&\#1093;
......
......@@ -29,6 +29,8 @@ adminSave=Kaydet
adminSessions=Aktif ba&\#287;lant&\#305;lar
adminShutdown=Kapat
adminTitle=H2 Konsol ayarlar&\#305;
adminTranslateHelp=\#Translate or improve the translation of the H2 Console.
adminTranslateStart=\#Translate
helpAction=Aksiyon
helpAddAnotherRow=Yeni bir sat&\#305;r ekle
helpAddDrivers=Veritaban&\#305; s&\#252;r&\#252;c&\#252;s&\#252; ekle
......
......@@ -29,6 +29,8 @@ adminSave=&\#x0417;&\#x0431;&\#x0435;&\#x0440;&\#x0435;&\#x0433;&\#x0442;&\#x043
adminSessions=&\#x0410;&\#x043A;&\#x0442;&\#x0438;&\#x0432;&\#x043D;&\#x0456; &\#x0441;&\#x0435;&\#x0441;&\#x0456;&\#x0457;
adminShutdown=&\#x0412;&\#x0438;&\#x043A;&\#x043B;&\#x044E;&\#x0447;&\#x0438;&\#x0442;&\#x0438;
adminTitle=&\#x041D;&\#x0430;&\#x0441;&\#x0442;&\#x0440;&\#x043E;&\#x0439;&\#x043A;&\#x0438; &\#x043A;&\#x043E;&\#x043D;&\#x0441;&\#x043E;&\#x043B;&\#x0456; H2
adminTranslateHelp=\#Translate or improve the translation of the H2 Console.
adminTranslateStart=\#Translate
helpAction=&\#x0414;&\#x0456;&\#x044F;
helpAddAnotherRow=&\#x0414;&\#x043E;&\#x0434;&\#x0430;&\#x0442;&\#x0438; &\#x043D;&\#x043E;&\#x0432;&\#x0438;&\#x0439; &\#x0440;&\#x044F;&\#x0434;&\#x043E;&\#x043A;
helpAddDrivers=&\#x0414;&\#x043E;&\#x0434;&\#x0430;&\#x0442;&\#x0438; &\#x0434;&\#x0440;&\#x0430;&\#x0439;&\#x0432;&\#x0435;&\#x0440; &\#x0431;&\#x0430;&\#x0437;&\#x0438; &\#x0434;&\#x0430;&\#x043D;&\#x0438;&\#x0445;
......
......@@ -29,6 +29,8 @@ adminSave=\u4FDD\u5B58
adminSessions=\u6D3B\u52A8\u7684\u4F1A\u8BDD
adminShutdown=\u5173\u95ED
adminTitle=H2 \u63A7\u5236\u53F0\u914D\u7F6E
adminTranslateHelp=\#Translate or improve the translation of the H2 Console.
adminTranslateStart=\#Translate
helpAction=\u6D3B\u52A8
helpAddAnotherRow=\u589E\u52A0\u53E6\u4E00\u884C
helpAddDrivers=\u589E\u52A0\u6570\u636E\u5E93\u9A71\u52A8
......
......@@ -29,6 +29,8 @@ adminSave=\u5132\u5B58
adminSessions=\u4F5C\u7528\u4E2D\u7684\u9032\u7A0B (Active Sessions)
adminShutdown=\u95DC\u9589
adminTitle=H2 \u63A7\u5236\u53F0\u500B\u4EBA\u559C\u597D\u8A2D\u5B9A
adminTranslateHelp=\#Translate or improve the translation of the H2 Console.
adminTranslateStart=\#Translate
helpAction=\u52D5\u4F5C
helpAddAnotherRow=\u589E\u52A0\u53E6\u4E00\u8CC7\u6599\u5217 (row)
helpAddDrivers=\u589E\u52A0\u8CC7\u6599\u5EAB\u9A45\u52D5\u7A0B\u5F0F
......
......@@ -82,6 +82,16 @@ Initial Developer: H2 Group
<p>
${text.adminRestart}
</p>
</form>
<hr />
<p>
<form name="translate" method="post" action="adminStartTranslate.do?jsessionid=${sessionId}">
<input type="submit" class="button" value="${text.adminTranslateStart}" />
</form>
</p>
<p>
${text.adminTranslateHelp}
</p>
<hr />
<h3>
${text.adminSessions}
......@@ -118,7 +128,6 @@ Initial Developer: H2 Group
</tr>
</c:forEach>
</table>
</form>
<br />
<form name="shutdown" method="post" action="adminShutdown.do?jsessionid=${sessionId}">
<input type="submit" class="button" value="${text.adminShutdown}" />
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论