Changeset 1583

Show
Ignore:
Timestamp:
05/24/08 01:21:55 (5 months ago)
Author:
mikey
Message:

enhance i18n: enable l10n

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/main/php/net/stubbles/websites/xml/skin/stubDefaultSkinGenerator.php

    r1535 r1583  
    115115        $xslProcessor->importXSLStylesheet($this->createXSLStylesheet()); 
    116116        $xslProcessor->setParameter('', 'page', $page->getProperty('name')); 
    117         $xslProcessor->setParameter('', 'lang', $this->getLanguage($session, $page)); 
     117        $lang = $this->getLanguage($session, $page); 
     118        $xslProcessor->setParameter('', 'lang', $lang); 
     119        $xslProcessor->setParameter('', 'lang_base', substr($lang, 0, strpos($lang, '_')) . '_*'); 
    118120        stubXMLXIncludeStreamWrapper::register(); 
    119121        stubXMLXIncludeStreamWrapper::setIncludePath(stubConfig::getPagePath() . '/txt'); 
  • trunk/src/main/resources/ipo/request.xml

    r1059 r1583  
    55  <error id="FIELD_EMPTY"> 
    66    <messages> 
    7       <message locale="en_EN">Please enter a value.</message> 
    8       <message locale="de_DE">Bitte geben Sie einen Wert an.</message> 
     7      <message locale="default">Please enter a value.</message> 
     8      <message locale="en_*">Please enter a value.</message> 
     9      <message locale="de_*">Bitte geben Sie einen Wert an.</message> 
    910    </messages> 
    1011    <valueKeys /> 
     
    1213  <error id="FIELD_NO_SELECT"> 
    1314    <messages> 
    14       <message locale="en_EN">Please choose a value.</message> 
    15       <message locale="de_DE">Bitte wÀhlen Sie einen Wert aus.</message> 
     15      <message locale="default">Please choose a value.</message> 
     16      <message locale="en_*">Please choose a value.</message> 
     17      <message locale="de_*">Bitte wÀhlen Sie einen Wert aus.</message> 
    1618    </messages> 
    1719    <valueKeys /> 
     
    1921  <error id="FIELD_WRONG_VALUE"> 
    2022    <messages> 
    21       <message locale="en_EN">Please enter a correct value.</message> 
    22       <message locale="de_DE">Bitte geben Sie einen korrekten Wert an.</message> 
     23      <message locale="default">Please enter a correct value.</message> 
     24      <message locale="en_*">Please enter a correct value.</message> 
     25      <message locale="de_*">Bitte geben Sie einen korrekten Wert an.</message> 
    2326    </messages> 
    2427    <valueKeys /> 
     
    2629  <error id="VALUE_TOO_SMALL"> 
    2730    <messages> 
    28       <message locale="en_EN">Please enter a value greater or equal to {minNumber}.</message> 
    29       <message locale="de_DE">Bitte geben Sie einen Wert größer oder gleich {minNumber} an.</message> 
     31      <message locale="default">Please enter a value greater or equal to {minNumber}.</message> 
     32      <message locale="en_*">Please enter a value greater or equal to {minNumber}.</message> 
     33      <message locale="de_*">Bitte geben Sie einen Wert größer oder gleich {minNumber} an.</message> 
    3034    </messages> 
    3135    <valueKeys> 
     
    3539  <error id="VALUE_TOO_GREAT"> 
    3640    <messages> 
    37       <message locale="en_EN">Please enter a value smaller or equal to {maxNumber}.</message> 
    38       <message locale="de_DE">Bitte geben Sie einen Wert kleiner oder gleich {maxNumber} an.</message> 
     41      <message locale="default">Please enter a value smaller or equal to {maxNumber}.</message> 
     42      <message locale="en_*">Please enter a value smaller or equal to {maxNumber}.</message> 
     43      <message locale="de_*">Bitte geben Sie einen Wert kleiner oder gleich {maxNumber} an.</message> 
    3944    </messages> 
    4045    <valueKeys> 
     
    4449  <error id="PASSWORDS_NOT_EQUAL"> 
    4550    <messages> 
    46       <message locale="en_EN">Your passwords are not equal. Please enter the same password in both fields.</message> 
    47       <message locale="de_DE">Die eingegebenen Passwörter stimmen nicht ÃŒberein. Bitte geben Sie in beiden Feldern das gleiche Passwort an.</message> 
     51      <message locale="default">Your passwords are not equal. Please enter the same password in both fields.</message> 
     52      <message locale="en_*">Your passwords are not equal. Please enter the same password in both fields.</message> 
     53      <message locale="de_*">Die eingegebenen Passwörter stimmen nicht ÃŒberein. Bitte geben Sie in beiden Feldern das gleiche Passwort an.</message> 
    4854    </messages> 
    4955    <valueKeys /> 
     
    5157  <error id="PASSWORD_INVALID"> 
    5258    <messages> 
    53       <message locale="en_EN">You choose an invalid password. Please choose another password.</message> 
    54       <message locale="de_DE">Sie haben ein ungÃŒltiges Passwort angegeben. Bitte wÀhlen Sie ein anderes Passwort.</message> 
     59      <message locale="default">You choose an invalid password. Please choose another password.</message> 
     60      <message locale="en_*">You choose an invalid password. Please choose another password.</message> 
     61      <message locale="de_*">Sie haben ein ungÃŒltiges Passwort angegeben. Bitte wÀhlen Sie ein anderes Passwort.</message> 
    5562    </messages> 
    5663    <valueKeys /> 
     
    5865  <error id="PASSWORD_TOO_LESS_DIFF_CHARS"> 
    5966    <messages> 
    60       <message locale="en_EN">Your password has to less different characters. Please choose another password.</message> 
    61       <message locale="de_DE">Ihr Passwort hat zu wenig unterschiedliche Zeichen. Bitte wÀhlen Sie ein anderes Passwort.</message> 
     67      <message locale="default">Your password has to less different characters. Please choose another password.</message> 
     68      <message locale="en_*">Your password has to less different characters. Please choose another password.</message> 
     69      <message locale="de_*">Ihr Passwort hat zu wenig unterschiedliche Zeichen. Bitte wÀhlen Sie ein anderes Passwort.</message> 
    6270    </messages> 
    6371    <valueKeys /> 
     
    6573  <error id="STRING_TOO_SHORT"> 
    6674    <messages> 
    67       <message locale="en_EN">Please enter at least {minLength} characters.</message> 
    68       <message locale="de_DE">Bitte geben Sie mindestens {minLength} Zeichen an.</message> 
     75      <message locale="default">Please enter at least {minLength} characters.</message> 
     76      <message locale="en_*">Please enter at least {minLength} characters.</message> 
     77      <message locale="de_*">Bitte geben Sie mindestens {minLength} Zeichen an.</message> 
    6978    </messages> 
    7079    <valueKeys> 
     
    7483  <error id="STRING_TOO_LONG"> 
    7584    <messages> 
    76       <message locale="en_EN">Please use not more than {maxLength} characters.</message> 
    77       <message locale="de_DE">Bitte geben Sie nicht mehr als {maxLength} Zeichen an.</message> 
     85      <message locale="default">Please use not more than {maxLength} characters.</message> 
     86      <message locale="en_*">Please use not more than {maxLength} characters.</message> 
     87      <message locale="de_*">Bitte geben Sie nicht mehr als {maxLength} Zeichen an.</message> 
    7888    </messages> 
    7989    <valueKeys> 
     
    8393  <error id="DATE_INVALID"> 
    8494    <messages> 
    85       <message locale="en_EN">Please enter a correct time.</message> 
    86       <message locale="de_DE">Bitte wÀhlen Sie ein korrektes Datum.</message> 
     95      <message locale="default">Please enter a correct time.</message> 
     96      <message locale="en_*">Please enter a correct time.</message> 
     97      <message locale="de_*">Bitte wÀhlen Sie ein korrektes Datum.</message> 
    8798    </messages> 
    8899    <valueKeys /> 
     
    90101  <error id="DATE_TOO_EARLY"> 
    91102    <messages> 
    92       <message locale="en_EN">The choosen date is too early. The earliest possible date is {earliestDate}.</message> 
    93       <message locale="de_DE">Das gewÀhlte Datum ist zu frÃŒh. Das frÃŒhestmögliche Datum ist {earliestDate}.</message> 
     103      <message locale="default">The choosen date is too early. The earliest possible date is {earliestDate}.</message> 
     104      <message locale="en_*">The choosen date is too early. The earliest possible date is {earliestDate}.</message> 
     105      <message locale="de_*">Das gewÀhlte Datum ist zu frÃŒh. Das frÃŒhestmögliche Datum ist {earliestDate}.</message> 
    94106    </messages> 
    95107    <valueKeys> 
     
    99111  <error id="DATE_TOO_LATE"> 
    100112    <messages> 
    101       <message locale="en_EN">The choosen date is too late. The latest possible date is {latestDate}.</message> 
    102       <message locale="de_DE">Das gewÀhlte Datum ist zu spÀt. Das spÀtestmögliche Datum ist {latestDate}.</message> 
     113      <message locale="default">The choosen date is too late. The latest possible date is {latestDate}.</message> 
     114      <message locale="en_*">The choosen date is too late. The latest possible date is {latestDate}.</message> 
     115      <message locale="de_*">Das gewÀhlte Datum ist zu spÀt. Das spÀtestmögliche Datum ist {latestDate}.</message> 
    103116    </messages> 
    104117    <valueKeys> 
     
    108121  <error id="MAILADDRESS_INCORRECT"> 
    109122    <messages> 
    110       <message locale="en_EN">The mail address is not correct.</message> 
    111       <message locale="de_DE">Die E-Mail-Adresse ist nicht korrekt.</message> 
     123      <message locale="default">The mail address is not correct.</message> 
     124      <message locale="en_*">The mail address is not correct.</message> 
     125      <message locale="de_*">Die E-Mail-Adresse ist nicht korrekt.</message> 
    112126    </messages> 
    113127    <valueKeys /> 
     
    115129  <error id="URL_INCORRECT"> 
    116130    <messages> 
    117       <message locale="en_EN">The URL is not a valid HTTP-URL.</message> 
    118       <message locale="de_DE">Der URL ist kein gÃŒltiger HTTP-URL.</message> 
     131      <message locale="default">The URL is not a valid HTTP-URL.</message> 
     132      <message locale="en_*">The URL is not a valid HTTP-URL.</message> 
     133      <message locale="de_*">Der URL ist kein gÃŒltiger HTTP-URL.</message> 
    119134    </messages> 
    120135    <valueKeys /> 
     
    122137  <error id="URL_NOT_AVAILABLE"> 
    123138    <messages> 
    124       <message locale="en_EN">The URL is not available.</message> 
    125       <message locale="de_DE">Der URL ist nicht erreichbar.</message> 
     139      <message locale="default">The URL is not available.</message> 
     140      <message locale="en_*">The URL is not available.</message> 
     141      <message locale="de_*">Der URL ist nicht erreichbar.</message> 
    126142    </messages> 
    127143    <valueKeys /> 
  • trunk/src/main/resources/xsl/master.xsl

    r1355 r1583  
    1515  <xsl:param name="page" select="@page"/> 
    1616  <xsl:param name="lang" select="@lang"/> 
     17  <xsl:param name="lang_base" select="@lang_base"/> 
    1718 
    1819  <xsl:template match="/"> 
  • trunk/src/main/resources/xsl/stub.xsl

    r1581 r1583  
    217217  <xsl:template match="stub:langselect" name="stub:langselect"> 
    218218    <xsl:variable name="langnodes" select="./stub:lang[@name = $lang]"/> 
     219    <xsl:variable name="langbasenodes" select="./stub:lang[@name = $lang_base]"/> 
    219220    <xsl:variable name="defaultnodes" select="./stub:lang[@name = 'default']"/> 
    220221    <xsl:choose> 
    221222      <xsl:when test="$langnodes"> 
    222223        <xsl:apply-templates select="$langnodes/node()"/> 
     224      </xsl:when> 
     225      <xsl:when test="$langbasenodes"> 
     226        <xsl:apply-templates select="$langbasenodes/node()"/> 
    223227      </xsl:when> 
    224228      <xsl:when test="$defaultnodes"> 
     
    229233          <xsl:text>[ No content for </xsl:text> 
    230234          <xsl:value-of select="$lang"/> 
    231             <xsl:text> - specify at least language default ]</xsl:text> 
     235          <xsl:text> or </xsl:text> 
     236          <xsl:value-of select="$lang_base"/> 
     237          <xsl:text> - specify at least language default ]</xsl:text> 
    232238        </small> 
    233239      </xsl:otherwise> 
     
    448454                    <xsl:value-of select="$lang"/> 
    449455                  </xsl:when> 
     456                  <xsl:when test="$lang_base"> 
     457                    <xsl:value-of select="$lang_base"/> 
     458                  </xsl:when> 
    450459                  <xsl:otherwise> 
    451                     <xsl:text>en_EN</xsl:text> 
     460                    <xsl:text>default</xsl:text> 
    452461                  </xsl:otherwise> 
    453462                </xsl:choose> 
  • trunk/src/test/php/net/stubbles/integration/stubRequestValueErrorXJConfFactoryTestCase.php

    r1326 r1583  
    7373        $this->assertType('stubRequestValueError', $requestError); 
    7474        $this->assertEquals('FIELD_EMPTY', $requestError->getId()); 
    75         $this->assertTrue($requestError->hasMessage('en_EN')); 
    76         $this->assertTrue($requestError->hasMessage('de_DE')); 
     75        $this->assertTrue($requestError->hasMessage('default')); 
     76        $this->assertTrue($requestError->hasMessage('en_*')); 
     77        $this->assertTrue($requestError->hasMessage('de_*')); 
    7778        $requestError2 = $rveFactory->create('FIELD_EMPTY'); 
    7879        $this->assertNotSame($requestError, $requestError2); 
     
    8990        $this->assertType('stubRequestValueError', $requestError); 
    9091        $this->assertEquals('FIELD_NO_SELECT', $requestError->getId()); 
    91         $this->assertTrue($requestError->hasMessage('en_EN')); 
    92         $this->assertTrue($requestError->hasMessage('de_DE')); 
     92        $this->assertTrue($requestError->hasMessage('default')); 
     93        $this->assertTrue($requestError->hasMessage('en_*')); 
     94        $this->assertTrue($requestError->hasMessage('de_*')); 
    9395        $requestError2 = $rveFactory->create('FIELD_NO_SELECT'); 
    9496        $this->assertNotSame($requestError, $requestError2); 
     
    105107        $this->assertType('stubRequestValueError', $requestError); 
    106108        $this->assertEquals('FIELD_WRONG_VALUE', $requestError->getId()); 
    107         $this->assertTrue($requestError->hasMessage('en_EN')); 
    108         $this->assertTrue($requestError->hasMessage('de_DE')); 
     109        $this->assertTrue($requestError->hasMessage('default')); 
     110        $this->assertTrue($requestError->hasMessage('en_*')); 
     111        $this->assertTrue($requestError->hasMessage('de_*')); 
    109112        $requestError2 = $rveFactory->create('FIELD_WRONG_VALUE'); 
    110113        $this->assertNotSame($requestError, $requestError2); 
     
    121124        $this->assertType('stubRequestValueError', $requestError); 
    122125        $this->assertEquals('VALUE_TOO_SMALL', $requestError->getId()); 
    123         $this->assertTrue($requestError->hasMessage('en_EN')); 
    124         $this->assertTrue($requestError->hasMessage('de_DE')); 
     126        $this->assertTrue($requestError->hasMessage('default')); 
     127        $this->assertTrue($requestError->hasMessage('en_*')); 
     128        $this->assertTrue($requestError->hasMessage('de_*')); 
    125129        $requestError2 = $rveFactory->create('VALUE_TOO_SMALL'); 
    126130        $this->assertNotSame($requestError, $requestError2); 
     
    137141        $this->assertType('stubRequestValueError', $requestError); 
    138142        $this->assertEquals('VALUE_TOO_GREAT', $requestError->getId()); 
    139         $this->assertTrue($requestError->hasMessage('en_EN')); 
    140         $this->assertTrue($requestError->hasMessage('de_DE')); 
     143        $this->assertTrue($requestError->hasMessage('default')); 
     144        $this->assertTrue($requestError->hasMessage('en_*')); 
     145        $this->assertTrue($requestError->hasMessage('de_*')); 
    141146        $requestError2 = $rveFactory->create('VALUE_TOO_GREAT'); 
    142147        $this->assertNotSame($requestError, $requestError2); 
     
    153158        $this->assertType('stubRequestValueError', $requestError); 
    154159        $this->assertEquals('PASSWORDS_NOT_EQUAL', $requestError->getId()); 
    155         $this->assertTrue($requestError->hasMessage('en_EN')); 
    156         $this->assertTrue($requestError->hasMessage('de_DE')); 
     160        $this->assertTrue($requestError->hasMessage('default')); 
     161        $this->assertTrue($requestError->hasMessage('en_*')); 
     162        $this->assertTrue($requestError->hasMessage('de_*')); 
    157163        $requestError2 = $rveFactory->create('PASSWORDS_NOT_EQUAL'); 
    158164        $this->assertNotSame($requestError, $requestError2); 
     
    169175        $this->assertType('stubRequestValueError', $requestError); 
    170176        $this->assertEquals('PASSWORD_INVALID', $requestError->getId()); 
    171         $this->assertTrue($requestError->hasMessage('en_EN')); 
    172         $this->assertTrue($requestError->hasMessage('de_DE')); 
     177        $this->assertTrue($requestError->hasMessage('default')); 
     178        $this->assertTrue($requestError->hasMessage('en_*')); 
     179        $this->assertTrue($requestError->hasMessage('de_*')); 
    173180        $requestError2 = $rveFactory->create('PASSWORD_INVALID'); 
    174181        $this->assertNotSame($requestError, $requestError2); 
     
    185192        $this->assertType('stubRequestValueError', $requestError); 
    186193        $this->assertEquals('PASSWORD_TOO_LESS_DIFF_CHARS', $requestError->getId()); 
    187         $this->assertTrue($requestError->hasMessage('en_EN')); 
    188         $this->assertTrue($requestError->hasMessage('de_DE')); 
     194        $this->assertTrue($requestError->hasMessage('default')); 
     195        $this->assertTrue($requestError->hasMessage('en_*')); 
     196        $this->assertTrue($requestError->hasMessage('de_*')); 
    189197        $requestError2 = $rveFactory->create('PASSWORD_TOO_LESS_DIFF_CHARS'); 
    190198        $this->assertNotSame($requestError, $requestError2); 
     
    201209        $this->assertType('stubRequestValueError', $requestError); 
    202210        $this->assertEquals('STRING_TOO_SHORT', $requestError->getId()); 
    203         $this->assertTrue($requestError->hasMessage('en_EN')); 
    204         $this->assertTrue($requestError->hasMessage('de_DE')); 
     211        $this->assertTrue($requestError->hasMessage('default')); 
     212        $this->assertTrue($requestError->hasMessage('en_*')); 
     213        $this->assertTrue($requestError->hasMessage('de_*')); 
    205214        $requestError2 = $rveFactory->create('STRING_TOO_SHORT'); 
    206215        $this->assertNotSame($requestError, $requestError2); 
     
    217226        $this->assertType('stubRequestValueError', $requestError); 
    218227        $this->assertEquals('STRING_TOO_LONG', $requestError->getId()); 
    219         $this->assertTrue($requestError->hasMessage('en_EN')); 
    220         $this->assertTrue($requestError->hasMessage('de_DE')); 
     228        $this->assertTrue($requestError->hasMessage('default')); 
     229        $this->assertTrue($requestError->hasMessage('en_*')); 
     230        $this->assertTrue($requestError->hasMessage('de_*')); 
    221231        $requestError2 = $rveFactory->create('STRING_TOO_LONG'); 
    222232        $this->assertNotSame($requestError, $requestError2); 
     
    233243        $this->assertType('stubRequestValueError', $requestError); 
    234244        $this->assertEquals('DATE_INVALID', $requestError->getId()); 
    235         $this->assertTrue($requestError->hasMessage('en_EN')); 
    236         $this->assertTrue($requestError->hasMessage('de_DE')); 
     245        $this->assertTrue($requestError->hasMessage('default')); 
     246        $this->assertTrue($requestError->hasMessage('en_*')); 
     247        $this->assertTrue($requestError->hasMessage('de_*')); 
    237248        $requestError2 = $rveFactory->create('DATE_INVALID'); 
    238249        $this->assertNotSame($requestError, $requestError2); 
     
    249260        $this->assertType('stubRequestValueError', $requestError); 
    250261        $this->assertEquals('DATE_TOO_EARLY', $requestError->getId()); 
    251         $this->assertTrue($requestError->hasMessage('en_EN')); 
    252         $this->assertTrue($requestError->hasMessage('de_DE')); 
     262        $this->assertTrue($requestError->hasMessage('default')); 
     263        $this->assertTrue($requestError->hasMessage('en_*')); 
     264        $this->assertTrue($requestError->hasMessage('de_*')); 
    253265        $requestError2 = $rveFactory->create('DATE_TOO_EARLY'); 
    254266        $this->assertNotSame($requestError, $requestError2); 
     
    265277        $this->assertType('stubRequestValueError', $requestError); 
    266278        $this->assertEquals('DATE_TOO_LATE', $requestError->getId()); 
    267         $this->assertTrue($requestError->hasMessage('en_EN')); 
    268         $this->assertTrue($requestError->hasMessage('de_DE')); 
     279        $this->assertTrue($requestError->hasMessage('default')); 
     280        $this->assertTrue($requestError->hasMessage('en_*')); 
     281        $this->assertTrue($requestError->hasMessage('de_*')); 
    269282        $requestError2 = $rveFactory->create('DATE_TOO_LATE'); 
    270283        $this->assertNotSame($requestError, $requestError2); 
     
    281294        $this->assertType('stubRequestValueError', $requestError); 
    282295        $this->assertEquals('MAILADDRESS_INCORRECT', $requestError->getId()); 
    283         $this->assertTrue($requestError->hasMessage('en_EN')); 
    284         $this->assertTrue($requestError->hasMessage('de_DE')); 
     296        $this->assertTrue($requestError->hasMessage('default')); 
     297        $this->assertTrue($requestError->hasMessage('en_*')); 
     298        $this->assertTrue($requestError->hasMessage('de_*')); 
    285299        $requestError2 = $rveFactory->create('MAILADDRESS_INCORRECT'); 
    286300        $this->assertNotSame($requestError, $requestError2); 
     
    297311        $this->assertType('stubRequestValueError', $requestError); 
    298312        $this->assertEquals('URL_INCORRECT', $requestError->getId()); 
    299         $this->assertTrue($requestError->hasMessage('en_EN')); 
    300         $this->assertTrue($requestError->hasMessage('de_DE')); 
     313        $this->assertTrue($requestError->hasMessage('default')); 
     314        $this->assertTrue($requestError->hasMessage('en_*')); 
     315        $this->assertTrue($requestError->hasMessage('de_*')); 
    301316        $requestError2 = $rveFactory->create('URL_INCORRECT'); 
    302317        $this->assertNotSame($requestError, $requestError2); 
     
    313328        $this->assertType('stubRequestValueError', $requestError); 
    314329        $this->assertEquals('URL_NOT_AVAILABLE', $requestError->getId()); 
    315         $this->assertTrue($requestError->hasMessage('en_EN')); 
    316         $this->assertTrue($requestError->hasMessage('de_DE')); 
     330        $this->assertTrue($requestError->hasMessage('default')); 
     331        $this->assertTrue($requestError->hasMessage('en_*')); 
     332        $this->assertTrue($requestError->hasMessage('de_*')); 
    317333        $requestError2 = $rveFactory->create('URL_NOT_AVAILABLE'); 
    318334        $this->assertNotSame($requestError, $requestError2);