View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000759 | CATS.cacert.org | Admin Interface | public | 2009-07-24 19:02 | 2012-12-27 17:22 |
Reporter | J Steijlen | Assigned To | Ted | ||
Priority | low | Severity | minor | Reproducibility | N/A |
Status | closed | Resolution | duplicate | ||
Summary | 0000759: Dutch translation of the UI | ||||
Description | This has the downside of soon becoming a really long switch list (CATS/functions/translation.php) and a really long options list (CATS/index.php.template) These lists should be auto-build (and cached) or gettext_ed By the way, CATS/lang/dutch.php is still incomplete. Untranslated are commented out. Poorly translated strings usually have a comment near them. Still, it's a start. | ||||
Additional Information | And let's not forget the "questiontype"/"questiontype_v2" tables. Those also have to be translated/updated. | ||||
Tags | No tags attached. | ||||
Attached Files | UI_translation_-_add_dutch.patch (14,272 bytes)
This has the downside of soon becoming a really long switch list (CATS/functions/translation.php) and a really long options list (CATS/index.php.template) These lists should be auto-build (and cached) By the way, CATS/lang/dutch.php is still incomplete. Untranslated are commented out. Poorly translated strings usually have a comment near them. Still, it's a start. And let's not forget the "questiontype"/"questiontype_v2" tables. Those also have to be translated/updated. Index: CATS/functions/translation.php =================================================================== --- CATS/functions/translation.php (revision 1641) +++ CATS/functions/translation.php (working copy) @@ -2,9 +2,13 @@ function getlang(){ - if(isset($_SESSION['profile']['language']) && $_SESSION['profile']['language']=='DE'){ - include_once ("lang/german.php"); - } + if(isset($_SESSION['profile']['language'])){ + switch($_SESSION['profile']['language']){ + case "DE" : include_once ("lang/german.php"); break; + case "NL" : include_once ("lang/dutch.php"); break; + default : include_once ("lang/english.php"); break; + } + } else{ include_once ("lang/english.php"); } Index: CATS/index.php.template =================================================================== --- CATS/index.php.template (revision 1641) +++ CATS/index.php.template (working copy) @@ -60,6 +60,7 @@ <option value="none">choose language</option> <option value="DE">DE</option> <option value="EN">EN</option> + <option value="NL">NL</option> </select><input name="submit" class="language_Button" type="submit" value="change" /> </div> </form><?php Index: CATS/lang/dutch.php =================================================================== --- CATS/lang/dutch.php (revision 0) +++ CATS/lang/dutch.php (revision 0) @@ -0,0 +1,183 @@ +<?php +define("accept_Login_01","U bent niet geregistreerd. <br />Controleer a.u.b. onderstaande certificaat informatie en bevestig uw registratie."); +define("accept_Login_02","certificaat informatie"); +define("accept_Login_03","Uitgegeven aan:"); +define("accept_Login_04","Common Name (CN)"); /* to be translated. */ +define("accept_Login_05","Serie Nummer"); +define("accept_Login_06","Email adres"); +define("accept_Login_07","Uitgegeven door :"); +define("accept_Login_08","Organisatie (O)"); +define("accept_Login_09","Organisatie afdeling (OU)"); +define("accept_Login_10","Uitgegeven op"); +define("accept_Login_11","Tenminste Houdbaar tot"); +define("accept_Login_12","Uzelf registreren met dit certificaat?<br /><br />". + "Enkel het serienummer van het certificaat zal opgeslagen worden. Als u echter een gedrukte oorkonde wil aanvragen na succesvol afleggen van de toets kan de oorkonde alleen uitgegeven worden met de Common Name van het certificaat!<br />". + "Gedrukte oorkondes kunnen niet worden uitgegeven voor anonieme certificaten (Common Name \"CAcert WoT User\")."); /* translation to be finished */ +define("accept_Login_13","Geldigheid:"); +define("Button_01","cre�er een nieuw onderwerp"); +define("Button_02","terug naar onderwerp management"); +define("Button_03","terug naar vragen-management"); +define("Button_04","nieuwe vraag"); +define("Button_05","toon als lijst"); +define("Button_06","toon als lijngrafiek"); +define("Button_07","toon als staafgrafiek"); +define("Button_08","beste antwoorden"); +define("Button_09","slechste antwoorden"); +define("Button_10","aanmelden gelukt"); +define("Button_11","opslaan"); +define("Button_12","wijzigingen opslaan"); +define("Button_13","antwoorden wijzigen"); +define("Button_14","antwoord toevoegen"); +define("Button_15","antwoord verwijderen"); +define("Button_16","evalueer toets"); +define("Button_17","statistische informatie"); +define("Button_18","gebruikers informatie"); /**/ +define("Button_19","toets statistieken"); +//define("Check_Cert_01","If you wish to get a document via postal service or via email, your name has to be included in the certificate!<br /> You can go ahead with the registration, but you can't choose the options <i>send via postal service</i> or <i>send via email</i>.<br /> The other choice is, you can cancel this registration and register with another certificate, in which your name is included."); +//define("certificateDocu_01","If you like we can engross a document stating that you have sucessfully passed the Assurer test. The Document will be issued to your name as stated in your digital certifcate."); +//define("certificateDocu_02","No, I don't need that document."); +//define("certificateDocu_03","Yes, please send me the document as a pdf attachment via email (We use the email-address and name provided in the certificate)"); +//define("certificateDocu_04","Yes, please send me the document via postal service to the following address :"); +define("certificateDocu_05","voornaam"); +define("certificateDocu_06","achternaam"); +define("certificateDocu_07","straat"); +define("certificateDocu_08","postcode"); +define("certificateDocu_09","plaatsnaam"); +define("certificateDocu_10","provincie"); +define("certificateDocu_11","land"); +define("certificateDocu_12","Alle velden moeten ingevuld zijn als u het per post wilt ontvangen."); +define("Class_Answer_01","details van de antwoorden"); +define("Class_Answer_02","antwoorden"); +define("Class_Answer_03","antwoord"); +define("Class_Answer_04","Er moeten minimaal 2 antwoorden opgegeven worden."); +define("Class_Answer_05","Tenminste 1 antwoord moet als 'correct' gemarkeerd worden. En er moeten minimaal 2 antwoorden opgegeven worden."); +define("Class_Answer_06","Tenminste 1 antwoord moet als 'correct' gemarkeerd worden."); +//define("Class_Answer_07","In a cloze correct and incorrect answers must be different"); +define("Class_Answer_08","Er moet tenminste 1 correct en 1 incorrect antwoord zijn."); +define("Class_Answer_09","waar"); +define("Class_Answer_10","niet waar"); +define("Class_Progress_01","aantal vragen"); +define("Class_Progress_02","Te veel informatie opgeslagen in de database."); /* geh�rt zu Lernfortschritte_angezeigt */ +define("Class_Progress_03","Beeld van de laatste"); +define("Class_Progress_04","toetsen."); +//define("Class_Progress_05","No more data available"); /*Bsp: Keine weiteren Infos zu : 5 Fragen */ +//define("Class_Progress_06","No more information available for:"); +//define("Class_Progress_07","question(s)"); +//define("Class_Progress_08","incorrectly answered questions"); +define("Class_Question_01","Klik voor meer informatie over dit onderwerp"); +define("Class_Question_02","deactiveer vraag"); +define("Class_Question_03","activeer vraag"); +define("Class_Question_04","verwijder vraag"); +define("Class_Question_05","Geen vragen in de database"); +define("Class_Question_06","details van de vraag"); +define("Class_Quiz_01","Er zijn niet voldoende vragen over dit onderwerp. Kies a.u.b. een ander onderwerp."); +define("Class_Quiz_02","toets"); +define("Class_Quiz_03","Evaluatie van de toets"); +define("Class_Quiz_04","Uw totaal score is :"); +define("Class_Quiz_05","Minimum resultaat voor deze toets is :"); +define("Class_Quiz_06","U heeft gehaald: "); /*Bsp: You have reached 0 % .... */ +define("Class_Quiz_07","en daarmee bent u"); /* You have reached 0 % and so you did not pass */ +define("Class_Quiz_08","door."); +define("Class_Quiz_09","gezakt.");/*Bsp:You have reached 0 % and so you did not pass */ +define("Class_Quiz_10_AnonymousCert", "U maakte de toets m.b.v. een anoniem certificaat. U kunt dus geen gedrukte of PDF oorkonde aanvragen.<br />"); +define("Class_Quiz_11_RequestCert", "Oorkonde aanvragen"); +define("Class_Quiz_12_ExplainCert", "In verband met privacy richtlijnen mogen we hier geen persoonlijke gegevens verzamelen of bewaren.<br /><br />". + "Om een gedrukte of PDF oorkonde aan te vragen kunt u een email sturen naar <a class=\"http\" href=\"mailto:education@cacert.org?subject=Certificate for AssurerChallenge\">education@cacert.org</a> waarin u schrijft of u een gedrukte versie of een PDF versie wilt. Indien u een gedrukte oorkonde wilt, voeg dan uw post adres toe.<br />". + "De email mag <a class=\"http\" href=\"education_2010.txt\">versleuteld</a> worden, en <b>moet ondertekend worden met het certificaat dat gebruikt is tijdens het maken van de toets</b>. D.m.v. het serienummer kan gecontroleerd worden dat u de toets gehaald heeft.". + "<br />Kijk bij het \"Aangemeld als:\" vak in de rechter bovenhoek om te zien welk certificaat u momenteel gebruikt.<br />". + "<br /><em>Voor gedrukte oorkondes vragen wij een donatie van 5 EUR voor verzending binnnen Europa, en 10 EUR voor verzending buiten Europa, i.v.m. de handelings en verzendkosten.<br />". /**/ + "Om te doneren kunt u een van onderstaande Paypal knoppen gebruiken, <a class=\"http\" href=\"https://www.cacert.org/index.php?id=13\">https://www.cacert.org/index.php?id=13</a> toont alle methoden om te doneren aan CAcert.</em><br />". + "<br />Excuses voor eventueel ongemak.<br />"); +define("Class_Quiz_13_Donate5", "5 EUR voor verzending binnen Europa"); +define("Class_Quiz_14_Donate10", "10 EUR voor verzending buiten Europa"); +define("Class_Topic_01","naam"); +define("Class_Topic_02","aantal vragen"); +define("Class_Topic_03","vragen per toets"); +define("Class_Topic_04","minimum resultaat"); +define("Class_Topic_05","bewerk onderwerp"); +define("Class_Topic_06","activeer onderwerp"); +define("Class_Topic_07","Deactiveer onderwerp: Alle vragen over dit onderwerp zullen ook gede�ctiveerd worden."); +define("Class_Topic_08","Verwijder dit onderwerp, met alle toegevoegde vragen en antwoorden"); +define("Class_Topic_09","Min. percentage moet een nummer zijn, en mag niet groter dan 100 zijn"); +define("Class_Topic_10","Onderwerp bestaat al."); +define("Class_Topic_11","Aantal vragen moet een positieve integer zijn."); +define("Class_Topic_12","minimum resultaat"); +define("Collect_Question_01","Deze vraag bestaat al."); +define("Collect_Question_02","Ten minste 1 'gat' moet gedefineerd zijn. Gaten worden gedefineerd met [ ]. Het goede andwoord moet tussen de haken staan. Alle haken moeten gesloten worden."); +define("Collect_Question_03","vraag invullen"); +define("Function_getContent_01","Welkom"); +define("Function_getContent_02_Intro",'<div class="centered">Voor een korte introductie kijk a.u.b. even op de <a href="http://wiki.cacert.org/wiki/AssurerChallenge" rel="external">WiKi</a>.</div><br />'); +define("Function_getTopic_01","Toon vorderingen"); +define("Function_getTopic_02","Toon statistieken"); +define("Function_getTopic_03","start toets"); +define("Function_reallyDel_01","Zeker weten?"); +define("Function_reallyDel_02","Bent u heel zeker dat u dit onderwerp wil verwijderen?"); +define("Function_reallyDel_03","Als u ja antwoord zullen ook alle vragen en antwoorden verwijderd worden."); +define("Function_reallyDel_04","Bent u zeker dat u deze vraag wil verwijderen?"); +define("Get_Content_01","Registratie geannuleerd!"); +define("Global_01","U moet aangemeld zijn voor deze functie"); +define("Global_02","terug"); +define("Global_03","correct"); +define("Global_04","datum"); +define("Global_05","Resultaat"); +define("Global_06","ID"); +define("Global_07",'<h4 class="centered">Onvoldoende gegevens</h4>'); +define("Global_08","vraag"); +define("Global_09","onderwerp"); +define("Global_10","rang"); /* translation to be finished */ +define("Global_11","frequentie"); +define("Global_12","type vraag"); +define("Global_13","Ja"); +define("Global_14","Nee"); +define("Global_15","correcte antwoorden in %"); +define("Global_16","U bent momenteel niet aangemeld"); +//define("Global_17","Login failed! A valid CAcert client certificate is required."); +//define("Global_18","Question ID"); +//define("Global_19","Login failed"); +define("Global_20","omschrijving"); +define("Index_01","Aangemeld als :"); +define("Login_01","Uw certificaat kon niet gecontroleerd worden."); +define("Login_02","Uw certificaat is ingetrokken."); +define("Login_03_No_Org_Certs","Organisatie (OA) certificaten worden niet aanvaard door CATS omdat deze niet eenvoudig naar een gebruikersaccount te herleiden zijn."); +define("Menue_01","Help"); +define("Menue_02","Aanmelden"); +define("Menue_03","Afmelden"); +define("Menue_04","Voortgang"); +define("Menue_05","Statistieken"); +define("Menue_06","Toetsen"); +define("Menue_07","Onderwerpen"); +//define("Menue_08","EN"); +//define("Menue_09","DE"); +define("Statistic_01","beste antwoorden voor het onderwerp: "); +define("Statistic_02","slechtste antwoorden voor het onderwerp: "); +define("Statistic_03","vragen over dit onderwerp:"); +define("Statistic_04","gehaald"); +define("Statistic_05","gezakt"); +define("Statistic_06","gebruiker informatie"); +define("Statistic_07","Gebruiker"); +define("Statistic_08","geregistreerde gebruikers"); +define("Statistic_09","administratoren"); +define("Statistic_10","root certificaten"); +define("Statistic_11","gebruikers met Class I certificaten"); +define("Statistic_12","gebruikers met Class III certificaten"); +define("Statistic_13","taalinstellingen"); +define("Statistic_14","duits"); +define("Statistic_15","engels"); +define("Statistic_16","oorkonde verstuurd per "); /**/ +define("Statistic_17","post"); +define("Statistic_18","email"); +define("Statistic_19","n.v.t."); +define("Statistic_20","toets informatie"); /**/ +define("Statistic_21","datum"); +define("Statistic_22","toetsen gemaakt"); /**/ +define("Statistic_23","toetsen gehaald"); +define("Title_01","CATS onderwerpen"); +define("Title_02","CATS vragen invoeren"); +define("Title_03","CATS statistieken"); +define("Title_04","CATS start toets"); +define("Title_05","CATS vorderingen"); +define("Title_06","CATS certificaat informatie"); +//define("Topic_01","Note: You cannot declare answers as correct here, that have been declared incorrect below."); +define("Topic_02","Onderwerpen Overzicht"); +define("Topic_03","vragen over dit onderwerp:"); +?> | ||||
related to | 0000758 | closed | Ted | Any addition of an UI language would require a redesign of the DB table "questiontype". I.e. adding a column. |
related to | 0000760 | closed | Ted | adding UI languages - a different approach |
related to | 0000969 | needs review & testing | Ted | User Interface Translation to Dutch |
related to | 0001107 | new | CACert CATS Manual has only one page, which is mostly empty |
Date Modified | Username | Field | Change |
---|---|---|---|
2009-07-24 19:02 | J Steijlen | New Issue | |
2009-07-24 19:02 | J Steijlen | File Added: UI_translation_-_add_dutch.patch | |
2009-07-28 20:27 | Ted | Relationship added | related to 0000758 |
2009-07-28 20:29 | Ted | Note Added: 0001466 | |
2009-07-28 20:29 | Ted | Assigned To | => Ted |
2009-07-28 20:29 | Ted | Priority | normal => low |
2009-07-28 20:29 | Ted | Status | new => needs work |
2009-07-28 20:32 | Ted | Relationship added | related to 0000760 |
2011-08-22 21:57 | Ted | Relationship added | related to 0000969 |
2012-11-19 22:57 | Ted | Note Added: 0003345 | |
2012-11-19 22:57 | Ted | Status | needs work => closed |
2012-11-19 22:57 | Ted | Resolution | open => duplicate |
2012-12-27 17:22 | Werner Dworak | Relationship added | related to 0001107 |