diff --git a/src/resources/i18n/CompareLocales.java b/src/resources/i18n/CompareLocales.java new file mode 100644 index 00000000..cd1711b3 --- /dev/null +++ b/src/resources/i18n/CompareLocales.java @@ -0,0 +1,145 @@ +package pkg; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashSet; + +/** + * Use this Class to compare your locale with the standard english to find missing entries + * @author wolf.posdorfer + * + */ +public class CompareLocales { + + private static ArrayList _mainlist = new ArrayList(); + static ArrayList _standardlist = new ArrayList(); + static ArrayList _mylocalelist = new ArrayList(); + + static String _endofFile = "#!#"; + + public static void main(String[] args) + { + // Change Path + String path = "C:\\spark\\spark_i18n"; + File standard = new File(path + ".properties"); + + /** + * Change this to your locale + */ + File mylocale = new File(path + "_de.properties"); + + + + readFile(standard, _standardlist); + readFile(mylocale, _mylocalelist); + + + // check if all standard items are in the german file + for (String s : _standardlist) { + if (!_mylocalelist.contains(s)) { + System.out.println(_mainlist.get(_standardlist.indexOf(s))); + } + } + // Check if all german-items are in the standard file + for (String s : _mylocalelist) { + if (!_standardlist.contains(s)) { + System.out.println(s); + } + } + + System.out.println("standardlist has: "+_standardlist.size() + " , my local has " + _mylocalelist.size()); + + + // Check if we have doubles + checkdoubles(standard); + checkdoubles(mylocale); + + } + + /** + * Check if our File has double entries + * @param file + */ + private static void checkdoubles(File file) { + try { + BufferedReader reader = new BufferedReader(new FileReader(file)); + + ArrayList liste = new ArrayList(); + HashSet hashliste = new HashSet(); + String zeile = ""; + + boolean t = true; + while (t) { + + // Skip all files that are not items + // like comments and empty lines + if (zeile != null && zeile.contains("=")) { + + String s = zeile.substring(0, zeile.indexOf("=") - 1); + s = s.replace(" ", ""); + liste.add(s); + if (!hashliste.add(s)) + System.out.println(zeile); + + } + + zeile = reader.readLine(); + t = !zeile.contains(_endofFile); + + } + + System.out.println(file.getName()+">>>\n containing " + liste.size() + " entries, with " + (liste.size()-hashliste.size())+ " doubles"); + reader.close(); + } catch (FileNotFoundException e) { + + e.printStackTrace(); + } catch (IOException e) { + + e.printStackTrace(); + } + + } + + /** + * Reads a file into the Destination + * @param file + * @param destination + */ + public static void readFile(File file, ArrayList destination) { + try { + BufferedReader reader = new BufferedReader(new FileReader(file)); + + String zeile = ""; + + boolean t = true; + while (t) { + + if (zeile != null && zeile.contains("=")) { + if (destination.equals(_standardlist)) + _mainlist.add(zeile); + String s = zeile.substring(0, zeile.indexOf("=") - 1); + s = s.replace(" ", ""); + destination.add(s); + + } + + zeile = reader.readLine(); + t = !zeile.contains(_endofFile); + + } + + reader.close(); + } catch (FileNotFoundException e) { + + e.printStackTrace(); + } catch (IOException e) { + + e.printStackTrace(); + } + + } +} diff --git a/src/resources/i18n/spark_i18n.properties b/src/resources/i18n/spark_i18n.properties index f087d2e2..eb1371e3 100644 --- a/src/resources/i18n/spark_i18n.properties +++ b/src/resources/i18n/spark_i18n.properties @@ -441,7 +441,7 @@ label.resource = Resource label.response.timeout = &Response timeout (sec) label.room = Room label.room.name = Room name -label.room.topic= Room topic +label.room.topic = Room topic label.search.service = Search service label.server = &Server label.server.address = Server address @@ -487,7 +487,7 @@ menuitem.add.contact = Add contact menuitem.add.contact.group = Add contact group menuitem.add.groupchat.myname = Highlight my &name when someone says it menuitem.add.groupchat.mytext = &Highlight my text when I say something -menuitem.add.groupchat.popname= Show &toast popup when someone says my name +menuitem.add.groupchat.popname = Show &toast popup when someone says my name menuitem.add.groupchat.showjoinleavemessage = &Show join and leave messages menuitem.add.groupchat.showrolesinsteadofstatus = Show chatroleicons instead of statusicons menuitem.always.on.top = Always on top @@ -900,6 +900,7 @@ title.gtalk.registration = GTalk account credentials title.history.for = Conversation history for {0} title.icq.registration = ICQ account credentials title.irc.registration = IRC account credentials +title.aim.registration = AIM account credentials title.sametime.registration = Sametime account credentials title.facebook.registration = Facebook account credentials title.myspace.registration = MySpace account credentials @@ -961,7 +962,7 @@ title.waiting.to.call = Waiting to place call title.xmpp.registration = XMPP account credentials title.yahoo.registration = Yahoo account credentials title.appearance.showVCards = Show &VCards in the contact list -title.subscription.request= Subscription request +title.subscription.request = Subscription request tooltip.place.a.call = Place a call to this individual tooltip.appearance = Change the appearance of your conversations @@ -975,4 +976,5 @@ tooltip.view.history = View conversation history tooltip.view.readme = View readme tree.conference.services = Conference services -tree.users.in.room = Users in room \ No newline at end of file +tree.users.in.room = Users in room +#!# \ No newline at end of file diff --git a/src/resources/i18n/spark_i18n_de.properties b/src/resources/i18n/spark_i18n_de.properties index 302cbb85..3d9075d0 100644 --- a/src/resources/i18n/spark_i18n_de.properties +++ b/src/resources/i18n/spark_i18n_de.properties @@ -124,10 +124,6 @@ ## Added key: 'administrator' ## Added key: 'menuitem.add.groupchat.showrolesinsteadofstatus' - - - - ok = Ok apply = Übernehmen administrator = Administrator @@ -156,11 +152,8 @@ yes = Ja no = Nein broadcast = Rundnachricht available = Anwesend - user.has.signed.in = hat sich eingeloggt. user.has.signed.off = hat sich ausgeloggt. - - button.create.account = &Account Erstellen button.close = Schließen button.advanced = &Erweitert @@ -186,7 +179,6 @@ button.update = &Update button.cancel = &Abbrechen button.decline = &Ablehnen button.join = &Beitreten -button.join.room = Ausgewähltem Raum beitreten button.login = &Login button.save.for.future.use = &Speichern für die spätere Verwendung button.register = &Registrierung @@ -203,7 +195,6 @@ button.send.email = Email button.send = Senden button.unset.file.explorer = entferne gespeicherten File Browser button.view.profile = Gesamtes Profil anzeigen - checkbox.save.password = Pass&wort speichern checkbox.auto.login = &Automatisches Login checkbox.use.proxy.server = &Proxy Server benutzen @@ -226,7 +217,6 @@ checkbox.start.in.tray = Spark automatisch in der &Taskleiste starten checkbox.split.chat.window = &Fenster 'andocken' (benötigt Neustart von Spark) checkbox.tabs.on.top = &Chat tabs oben anzeigen (benötigt Neustart von Spark) checkbox.allow.buzz = "&Buzzer" Funktion aktivieren. -checkbox.tabs.externalize = Neue Chat Tabs öffnen in seperaten Fenstern checkbox.enable.emoticons = &Emoticons aktivieren checkbox.use.system.look.and.feel = System Look And &Feel verwenden (benötigt Neustart von Spark) checkbox.notify.user.comes.online = &Benachrichtigen, wenn ein User Online kommt @@ -241,13 +231,12 @@ checkbox.use.krbconf = Verwende krb5.conf oder krb5.ini checkbox.use.krb.dns = Verwende DNS checkbox.use.specify.below = Specify Below checkbox.use.pki.authentication = Verwende PKI Authentifizierung - label.user.on.public.network = Teilnehmer befindet sich in einem öffentlichen Netzwerk label.change.password.to = &Neues Passwort eingeben label.username = &Benutzername label.name = &Name label.room.name = &Raumname -label.room.topic= Raum &Thema +label.room.topic = Raum &Thema label.password = &Passwort label.confirm.password = Neues Passwort &wiederholen label.server = &Server @@ -263,7 +252,6 @@ label.host = &Host label.resource = &Ressource label.protocol = &Protokoll label.accounts = A&ccounts -label.receieved = &Empfangen label.transfer.timeout = &Zeitspanne bis zum Abbruch des Transfers (min): label.transfer.download.directory = &Download Verzeichnis: label.find = &Finden @@ -334,7 +322,6 @@ label.trust.store.password = Trust Store Passwort label.enter.password = Password eingeben label.move.focus.forwards = Move Focus Forwards label.move.focus.backwards = Move Focus Backwards - message.username.error = Wählen Sie einen Benutzernamen für diesem Account. message.password.error = Wähle Sie Passwort für diesem Account. message.confirmation.password.error = Wiederholen Sie das Passwort. @@ -369,8 +356,6 @@ message.close.other.chats = Alle anderen Chats schlie message.close.stale.chats = Inaktive Chats schließen message.last.message.received = Letzte Nachricht empfangen um {0} message.shared.group = Gemeinsame Gruppen -message.internalize.tab = Chatroom wieder in Tabliste einbinden -message.externalize.tab = Chatroom in externes Fenster auslagern message.is.shared.group = {0} ist eine gemeinsame Gruppe. message.delete.confirmation = {0} - Wirklich löschen? message.idle.for = Inaktiv seit {0} @@ -445,7 +430,6 @@ message.user.granted.admin = {0} ist jetzt Administrator. message.user.revoked.admin = Administratorrechte wurden {0} entzogen. message.user.nickname.changed = {0} nennt sich jetzt {1}. message.your.kicked = Sie wurden von {0} ausgeladen. -message.your.voice.revoked = Sie haben jetzt Schreibrechte. message.your.voice.revoked = Das Schreibrecht wurde Ihnen entzogen. message.your.banned = Sie sind für diesen Raum gesperrt. message.your.membership.granted = Sie sind jetzt Mitglied. @@ -519,7 +503,6 @@ message.specify.valid.time.error = Bitte korrekte Werte eingeben. message.timeout.error = Die Zeitspanne muss mindestens 5 Sekunden betragen. message.version = Version: {0} message.file.size = Dateigröße: {0} -message.restart.spark = Das Programm muss beendet werden, \n bevor eine neue Version installiert werden kann. Programm beenden? message.updating.cancelled = Das Updaten wurde verweigert. message.transfer.rate = Datendurchsatz message.total.downloaded = Total Downloaded @@ -539,7 +522,6 @@ message.unable.to.retrieve.last.activity = Keine letzte Aktivit message.buzz.alert.notification = Sich beim Benutzer bemerkbar machen. message.buzz.sent = 'Buzzer' Benachrichtigung an Benutzer gesendet. message.invite.to.groupchat = Sie wurden von {0} zu einen Gruppen-Chat eingeladen - title.advanced.connection.preferences = Erweiterte Verbindungseinstellungen title.passwords.no.match = Passwörter stimmen nicht überein. Bitte Eingabe wiederholen. title.create.problem = Problem beim Anlegen eines Accounts @@ -548,7 +530,6 @@ title.create.new.account = Neuen Account erstellen title.account.create.registration = Account Registrieren title.register.account = Neuen Account registrieren title.notification = Benachrichtigungen -title.advanced.connection.preferences = Erweiterte Verbindungseinstellungen title.advanced.connection.usesso = Verwende Single Sign-ON (SSO) über GSSAPI title.preferences = Einstellungen title.error = Fehler @@ -651,14 +632,12 @@ title.input.openwith = Geben sie den Namen des Programms ein, welches sie nutzen title.error.find.app = Es konnte keine passende Anwendung gefunden werden. title.input.newname = Geben sie den neuen Namen ein: title.error.rename.file = Datei konnte nicht umbenannt werden! -title.delete.file = Möchten sie die Datei wirklich löschen? title.file = Datei title.filesize = Dateigröße title.error.delete.file = Datei konnte nicht gelöscht werden! title.error.couldnt.open.file = Datei konnte nicht geöffnet werden! Eventuell Dateityp unbekannt! title.bookmarks = Lesezeichen title.task.notification = Task notification - menuitem.contacts = Kontakte menuitem.actions = Aktionen menuitem.bookmarks = Lesezeichen @@ -751,24 +730,17 @@ menuitem.show.offline.users = Zeige Offline User menuitem.expand.all.groups = Öffne alle Gruppen menuitem.collapse.all.groups = Schließe alle Gruppen menuitem.always.on.top = Immer im Vodergrund -menuitem.join.room = Ausgewählten Raum betreten menuitem.bookmark.room = Raum als Lesezeichen setzen menuitem.refresh = Aktualisieren menuitem.create.room = Raum erstellen oder beitreten -menuitem.expand.all.groups = Öffne alle Gruppen -menuitem.collapse.all.groups = Schließe alle Gruppen - menuitem.chatframe.option = Einstellungen - status.away = Abwesend status.custom.messages = Benutzerdefinierte Nachricht status.do.not.disturb = Nicht stören status.on.phone = Am Telefon status.online = Verfügbar - tree.conference.services = Konferenzen tree.users.in.room = Teilnehmer im Raum - tab.general = Allgemein tab.proxy = Proxy tab.contacts = Kontakte @@ -781,7 +753,6 @@ tab.avatar = Avatar tab.conferences = Konferenzen tab.sso = SSO tab.pki = PKI - group.connection = Verbindung group.conferences.found = Konferenzen gefunden group.comma.delimited = Komma separiert @@ -791,10 +762,110 @@ group.notification.options = Optionen zur Benachrichtigung group.search.form = Suchformular group.search.results = Suchergebnisse group.login.information = Login Informationen - tooltip.place.a.call = Diesen Teilnehmer Anrufen tooltip.view.history = Nachrichtenverlauf anzeigen tooltip.view.changelog = Änderungen anzeigen tooltip.view.readme = ReadMe anzeigen tooltip.notifications = Einstellungen der Benachrichtigungen für eingehende Chats. tooltip.place.voice.call = VOIP Anruf starten. +answer = Antwort +offline = Offline +online = Online +participants = Teilnehmer +unfiled = Unfiled +while.offline = While offline +action.clear = Löschen +action.copy = Kopieren +action.cut = Ausschneiden +action.paste = Einfügen +action.print = Drucken +action.save = Speichern +action.select.all = Alles Auswählen +button.reject = Ablehnen +button.add2 = Hinzufügen +button.copy.to.clipboard = In Zwischenablage kopieren +button.reconnect2 = Wiederverbinden +button.tasks.active = Aktiv +button.tasks.all = Alles +button.view.notes = Notizen anschauen +button.view.tasklist = Aufgabenliste anschauen +button.re.detect = Wiede&rerkennen +delete.log.permanently = Logs permanent löschen +delete.permanently = Permanent Löschen? +gateway.username.password.error = Benutzername und/oder Passwort muss eingetragen sein +group.empty = Keine Offline-User in dieser Gruppe +group.offline = Offline Gruppe +group.chat.name.notification = Deinen Nick gesehen... +group.chat.name.match = Dein Name wurde im Gruppenchat erwähnt: +label.na = n/a +label.add.task = Aufgabe hinzufügen +label.downloads = Downloads +label.due = Due +label.received = Empfangen +label.show = Zeigen: +label.timeformat = Benutze {0} +label.keystore.location = Keystore Pfad +label.truststore.location = Truststore Pfad +label.pkcs.library.file = PKCS11 library Datei +label.x509.certificate = X.509 Zertifikat +label.apple.keychain = Apple KeyChain +label.add.to.roster = Benutzer zum Roster hinzufügen +label.audio.device = &Audio Gerät +label.video.device = &Video Gerät +menuitem.dial = Wählen +menuitem.languages = Sprachen +menuitem.inivite.again = Nochmals einladen +message = Nachricht +message.alert.notify = Warnungsbenachrichtigung +message.disconnected.shutdown = Deine Verbindung wurde unterbrochen, weil der Server heruntergefahren wurde +message.enter.gadugadu = GaduGadu Benutzername und Passwort eingeben +message.enter.gtalk = GTalk Benutzername und Passwort eingeben +message.enter.irc = IRC Benutzername und Passwort eingeben +message.enter.qq = QQ Benutzername und Passwort eingeben +message.enter.simple = SIMPLE Benutzername und Passwort eingeben +message.enter.xmpp = XMPP Benutzername und Passwort eingeben +message.file.transfer.notification = Dateitransferbenachrichtigung +message.file.transfer.short.message = sendet dir eine Datei mit Namen\: +message.file.transfer.chat.window = Dateitransfer angefordert: +message.gateway.username.error = Benutzername muss eingegeben werden +message.gateway.password.error = Passwort muss eingegeben werden +message.gateway.nickname.error = Spitzname muss eingegeben werden +message.invalid.username.password = Ungültiges Passwort oder Benutzername +message.no.updates = Es gibt keine Aktualisierungen +message.normal = Normale Nachricht +message.reconnect.attempting = Versuche... +message.reconnect.failed = Wiederverbinden gescheitert +message.reconnect.wait = Wiederverbingen in {0} Sekunden +message.restart.spark.changes = Das Plugin wird beim nächsten Start von Spark entfernt +message.restart.required = Du musst Spark neustarten damit die Änderungen wirksam werden, möchtest du jetzt Neustarten? +message.send.to.these.people = Sende an diese Leute +message.server.unavailable = Kann nicht mit Server verbinden: Ungültiger Name oder Server nicht erreichbar +message.unrecoverable.error = Ungültiger Benutzername oder Passwort +message.waiting.for.user.to.join = Warte auf {0} zum Beitritt +message.your.voice.granted = Du hast Schreibrechte in diesem Chat bekommen +message.groupchat.require.password = Dieser GruppenChat benötigt ein Passwort +message.search.for.history = Durchsuche Gesprächsverlauf +status.extended.away = Nicht verfügbar +status.free.to.chat = Bereit zu chatten +status.pending = Schwebend +title.about = Über +title.password.required = Passwort benötigt +title.appearance = Erscheinung +title.delete.file = Möchtest du diese Datei wirklich löschen? +title.gadugadu.registration = GaduGadu Account Informationen +title.general.media = Medien Einstellungen +title.gtalk.registration = GTalk Account Informationen +title.irc.registration = IRC Account Informationen +title.login.error = Login Fehler +title.no.updates = Keine Aktualisierungen +title.notes = Notizen +title.qq.registration = QQ Account Informationen +title.simple.registration = SIMPLE Account Informationen +title.tasks = Aufgaben +title.xmpp.registration = XMPP Account Informationen +title.subscription.request = Kontaktanfrage +tooltip.appearance = Ändere das Aussehen der Unterhaltungen +tooltip.file.transfer = Präferenzen für Dateitransfers +tooltip.send.email = Sende eine e-Mail +tooltip.start.chat = Starte eine Konversation +#!# \ No newline at end of file