[Kobv-opus-tester] Frontdoor Spracheinstellung

Jens Schwidder schwidder at zib.de
Mi Jun 23 15:30:20 CEST 2021


Lieber Herr Schwarten,

ich habe mal ein Issue dafür angelegt. Die Zusammenarbeit zwischen der 
Nutzer-Community und der Entwicklung muss unbedingt gestärkt werden, 
insbesondere bei der detailierten Ausarbeitung von Anforderungen. Und 
irgendwo muss man ja mal anfangen.

https://github.com/OPUS4/application/issues/408

In einem Enrichment ist das Datum ja vermutlich als String gespeichert 
und um "formatDate" zu verwenden müsste dieser String in seine Teile 
zerlegt werden, richtig? Wenn ja, dann bräuchte man also eine Funktion, 
die von einem Datumsstring in einen anderen konvertiert.

Da sich die unterstützten Anzeigesprachen einer konkreten Instanz in der 
Regel nicht verändern, wäre es vermutlich akzeptabel im XSLT eine 
Unterscheidung zu implementieren.

Ich fände es gut, wenn wir die Überlegungen auf GitHub fortsetzen könnten.

Vielen Dank und viele Grüße

Jens Schwidder

On 23.06.21 13:25, Martin Schwarten wrote:
> Lieber Herr Schidder,
> 
>> im PHP Code kann man folgendes verwenden
>>
>> $locale = Application_Translate::getInstance()::getLocale();
>>
>> und sollte dann 'einen String wie 'en' bekommen. Es kann sein, dass 
>> sich diese Zeile mit dem Laminas umstieg ändert, der aber noch eine 
>> Weile dauern wird.
>>
>> Im XSLT wird die gleiche Funktionalität über einen ViewHelper 
>> verfügbar gemacht, z.B. in folgender Datei
>>
>> modules/frontdoor/views/scripts/index/templates/services.xslt
>>
>> Dort wird mit
>>
>> <xsl:value-of select="php:functionString('Application_Xslt::locale')" />
>>
>> die Locale mit im HTML ausgegeben. Man könnte das aber auch xsl:when 
>> test Ausdrücken verwenden.
>>
>> <xsl:when test="php:functionString('Application_Xslt::locale') == 'en'">
>>
>> Hoffe das hilft Ihnen erst einmal weiter!
> 
> vielen Dank für die ausführlichen Informationen. Ich werde sie nachher 
> gleich mal austesten.
> 
> 
>> Eigentlich sollte diese Funktionalität für Enrichment-Felder, die 
>> Datumsangaben enthalten, in den Standard aufgenommen werden. Man 
>> müsste dann berücksichtigen, dass sich die unterstützten Sprachen von 
>> Instanz zu Instanz unterscheiden können und man würde vermutlich einen 
>> weiteren ViewHelper bauen, um die Unterscheidungslogik im XSLT zu 
>> vermeiden.
>>
>> In der Datei "metadata.xslt" wird bereits der ViewHelper formatDate
>> verwendet.
>>
>> <xsl:template name="formatDate">
>>     <xsl:param name="day"/>
>>     <xsl:param name="month"/>
>>     <xsl:param name="year"/>
>>     <xsl:value-of 
>> select="php:functionString('Application_Xslt::formatDate', $day, 
>> $month, $year)" />
>> </xsl:template>
>>
>> Leider unterstützt dieser alte ViewHelper momentan nur 
>> unterschiedliche Formate für Deutsch und Englisch. Für andere Sprachen 
>> wird die englische Formatierung verwendet.
> 
> Er funktioniert für einen vollständigen Datumseintrag problemlos. Ich 
> brauche so etwas auch für Datierungen wie YYYY/MM bzw. MM.YYYY oder 
> Mai/May 2020.
> 
> 
> Herzliche Grüße
> Martin Schwarten
> 

-- 
==============================================================
Jens Schwidder
Kooperativer Bibliotheksverbund Berlin-Brandenburg (KOBV)
c/o Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB)
Takustr. 7, D-14195 Berlin
Telefon: (030) 841 85 - 308
Telefax: (030) 841 85 - 269
  E-Mail: schwidder at zib.de
     WWW: http://www.kobv.de
==============================================================


Mehr Informationen über die Mailingliste Kobv-opus-tester