Hi,
I wrote a small thingy to help in translating RoundCube. This is not intended to be added to RoundCube, just a little helpful tool.
Place the attached translate.php in ./program/localization, and point your browser to '<your-RC-URL>/program/localization/translate.php?language=<your-language>' .
Example in my case:
http://eddy.introweb.nl/roundcubemail/program/localization/translate.php?lan...
The output is copy&pasteable to the files labels.inc and messages.inc, and untranslated labels and messages will show in red.
Robin
2006/12/4, Robin Elfrink elfrink@introweb.nl:
Hi,
I wrote a small thingy to help in translating RoundCube. This is not intended to be added to RoundCube, just a little helpful tool.
Place the attached translate.php in ./program/localization, and point your browser to
'<your-RC-URL>/program/localization/translate.php?language=<your-language>' .
Example in my case:
http://eddy.introweb.nl/roundcubemail/program/localization/translate.php?lan...
The output is copy&pasteable to the files labels.inc and messages.inc, and untranslated labels and messages will show in red.
Robin
array('en_US'=>$labels), 'messages'=>array('en_US'=>$messages)); $labels = array(); $messages = array(); if (file_exists($_GET['language'] . '/labels.inc')) { include_once($_GET['language'] . '/labels.inc'); $translations['labels'][$_GET['language']] = $labels; echo '' . $_GET['language'] . '/labels.inc' . ''; echo "<?php \n"; echo "\$labels = array(); \n"; foreach ($translations['labels']['en_US'] as $label=>$content) { if (isset($translations['labels'][$_GET['language']][$label])) echo "\$labels['" . $label . "'] = '" . $translations['labels'][$_GET['language']][$label] . "'; \n"; else echo "\$labels['" . $label . "'] = '" . $content . "'; \n"; } echo "?> \n"; } if (file_exists($_GET['language'] . '/messages.inc')) { include_once($_GET['language'] . '/messages.inc'); $translations['messages'][$_GET['language']] = $messages; echo '' . $_GET['language'] . '/messages.inc' . ''; echo "<?php \n"; echo "\$messages = array(); \n"; foreach ($translations['messages']['en_US'] as $message=>$content) { if (isset($translations['messages'][$_GET['language']][$message])) echo "\$messages['" . $message . "'] = '" . $translations['messages'][$_GET['language']][$message] . "'; \n"; else echo "\$messages['" . $message . "'] = '" . $content . "'; \n"; } echo "?> \n"; } } else { echo 'Directory ' . $_GET['language'] . ' not found.'; } ?>
Hello
My version of translation tool http://loru.mine.nu/roundcube/ You can comment it in here or @ http://roundcubeforum.net/forum/index.php?topic=56.0
Cheers, Üllar
Yllar Pajus wrote:
My version of translation tool http://loru.mine.nu/roundcube/ You can comment it in here or @ http://roundcubeforum.net/forum/index.php?topic=56.0
Damn, that looks nice!
We should integrate that into RoundCube somehow.
Thomas, how about putting translations in the database? Would that affect performance significally?
Robin
Yllar Pajus wrote:
Hello
My version of translation tool http://loru.mine.nu/roundcube/ You can comment it in here or @ http://roundcubeforum.net/forum/index.php?topic=56.0
Yeah, that's cool! The only thing missing is a "new language" entry in the drop-down menu. This can be chosen by people who want to translate RoundCube to a new language.
If you want, we could place the script somewhere on roundcube.net. Just send me the PHP file. If you prefer to keep it on your site, I'll link it from the according wiki-page.
Regards, Thomas
2006/12/4, Thomas Bruederli roundcube@gmail.com:
Yllar Pajus wrote:
Hello
My version of translation tool http://loru.mine.nu/roundcube/ You can comment it in here or @ http://roundcubeforum.net/forum/index.php?topic=56.0
Yeah, that's cool! The only thing missing is a "new language" entry in the drop-down menu. This can be chosen by people who want to translate RoundCube to a new language.
If you want, we could place the script somewhere on roundcube.net. Just send me the PHP file. If you prefer to keep it on your site, I'll link it from the according wiki-page.
Regards, Thomas
I'm not a programmer so the code is ugly but source is http://loru.mine.nu/roundcube/lang.txt If i have more time i try to add "new language" part
r, Üllar
Hi everybody
I've worked on the code and now set up the translator at http://translator.roundcube.net/
The language files are directly fetched from the SVN repository and cached for one hour. This tool always shows the current state of translation as it is in the repository.
Have fun with it! Thomas
Yllar Pajus wrote:
I'm not a programmer so the code is ugly but source is http://loru.mine.nu/roundcube/lang.txt If i have more time i try to add "new language" part
r, Üllar
Thomas Bruederli wrote:
I've worked on the code and now set up the translator at http://translator.roundcube.net/
The language files are directly fetched from the SVN repository and cached for one hour. This tool always shows the current state of translation as it is in the repository.
Great work everybody!
We might actually carry that as a separate piece of code, a universal translator for projects that use language-based variables :P
~Mik
just a quick shot: german messages.inc including
deletemessagesconfirm Do you really want to delete the selected message(s)? deletedsuccessfully Successfully deleted converting Removing formatting from message...
kind regards, raoul --
<?php /* +-----------------------------------------------------------------------+ | language/de_DE/messages.inc | | | | Language file of the RoundCube Webmail client | | Copyright (C) 2005, RoundCube Dev. - Switzerland | | Licensed under the GNU GPL | | | +-----------------------------------------------------------------------+ | Author: Thomas Bruederli <roundcube@gmail.com> | +-----------------------------------------------------------------------+ | de_DE translation: Stephan Diehl <info@sd-edv.de> | +-----------------------------------------------------------------------+ $Id$ */ $messages = array(); $messages[loginfailed] = 'Anmelden fehlgeschlagen'; $messages[cookiesdisabled] = 'Ihr Browser akzeptiert keine Cookies'; $messages[sessionerror] = 'Ihre Session ist ungültig oder abgelaufen'; $messages[imaperror] = 'Keine Verbindung zum IMAP Server'; $messages[nomessagesfound] = 'Keine Nachrichten in diesem Ordner'; $messages[loggedout] = 'Sie haben Ihre Session erfolgreich beendet. Auf Wiedersehen!'; $messages[mailboxempty] = 'Ordner ist leer'; $messages[loading] = 'Daten werden geladen...'; $messages[loadingdata] = 'Daten werden geladen...'; $messages[checkingmail] = 'Überprüfung auf neue Nachrichten...'; $messages[sendingmessage] = 'Nachricht wird gesendet...'; $messages[messagesent] = 'Nachricht erfolgreich gesendet'; $messages[savingmessage] = 'Nachricht wird gespeichert...'; $messages[messagesaved] = 'Nachricht als Entwurf gespeichert'; $messages[successfullysaved] = 'Erfolgreich gespeichert'; $messages[addedsuccessfully] = 'Kontakt zum Adressbuch hinzugefügt'; $messages[contactexists] = 'Es existiert bereits ein Eintrag mit dieser E-Mail-Adresse'; $messages[blockedimages] = 'Um Ihre Privatsphäre zur schützen, wurden externe Bilder blockiert.'; $messages[encryptedmessage] = 'Dies ist eine verschlüsselte Nachricht und kann leider nicht angezeigt werden.'; $messages[nocontactsfound] = 'Keine Kontakte gefunden'; $messages[sendingfailed] = 'Versand der Nachricht fehlgeschlagen'; $messages[errorsaving] = 'Beim Speichern ist ein Fehler aufgetreten'; $messages[errormoving] = 'Nachricht konnte nicht verschoben werden'; $messages[errordeleting] = 'Nachricht konnte nicht gelöscht werden'; $messages[deletecontactconfirm] = 'Wollen Sie die ausgewählten Kontakte wirklich löschen'; $messages[deletemessagesconfirm] = 'Wollen Sie die ausgewählten Nachrichten wirklich löschen?'; $messages[deletefolderconfirm] = 'Wollen Sie diesen Ordner wirklich löschen?'; $messages[purgefolderconfirm] = 'Wollen Sie diesen Ordner wirklich leeren?'; $messages[formincomplete] = 'Das Formular wurde nicht vollständig ausgefüllt'; $messages[noemailwarning] = 'Bitte geben Sie eine gültige E-Mail-Adresse ein'; $messages[nonamewarning] = 'Bitte geben Sie einen Namen ein'; $messages[nopagesizewarning] = 'Bitte geben Sie eine Einträge pro Seite ein'; $messages[norecipientwarning] = 'Bitte geben Sie mindestens einen Empfänger an'; $messages[nosubjectwarning] = 'Die Betreffzeile ist leer. Möchten Sie jetzt einen Betreff eingeben?'; $messages[nobodywarning] = 'Diese Nachricht ohne Inhalt senden?'; $messages[notsentwarning] = 'Ihre Nachricht wurde nicht gesendet. Wollen Sie die Nachricht verwerfen?'; $messages[noldapserver] = 'Bitte wählen Sie einen LDAP-Server aus'; $messages[nocontactsreturned] = 'Es wurden keine Kontakte gefunden'; $messages[nosearchname] = 'Bitte geben Sie einen Namen oder eine E-Mail-Adresse ein'; $messages[searchsuccessful] = '$nr Nachrichten gefunden'; $messages[searchnomatch] = 'Keine Treffer'; $messages[searching] = 'Suche...'; $messages[checking] = 'Prüfe...'; $messages[nospellerrors] = 'Keine Rechtschreibfehler gefunden'; $messages[folderdeleted] = 'Ordner erfolgreich gelöscht'; $messages[deletedsuccessfully] = 'Erfolgreich gelöscht.'; $messages[converting] = 'Entferne Formatierung von Nachricht...'; $messages[messageopenerror] = 'Die Nachricht konnte nicht vom Server geladen werden'; ?>
For existing translations, please leave it up to the initial translator to update the files or at least send him/her a notice with the new/corrected strings.
Regards, Thomas
Raoul Bhatia [IPAX] wrote:
just a quick shot: german messages.inc including
deletemessagesconfirm Do you really want to delete the selected message(s)?
deletedsuccessfully Successfully deleted
converting Removing formatting from message...kind regards, raoul