Time Ago (German)
Time ago (friendly) in German language
Description
A translated copy of brendo's friendly time ago (which is again an improved copy of Nick Dunn's utility). German language has a different structure of time expressions and this utility reflects these.
XSLT
View Raw
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:date="http://exslt.org/dates-and-times" xmlns:math="http://exslt.org/math" extension-element-prefixes="date math"> <xsl:template name="time-ago"> <xsl:param name="date-and-time"/> <xsl:variable name="now" select="concat($today, 'T', $current-time, ':00', $timezone)" /> <xsl:variable name="minutes" select="date:seconds(date:difference($date-and-time, $now)) div 60" /> <xsl:variable name="delta-minutes" select="math:abs($minutes)" /> <xsl:variable name="delta-in-words"> <xsl:choose> <xsl:when test="$delta-minutes < 1"> <xsl:text>weniger als einer Minute</xsl:text> </xsl:when> <xsl:when test="$delta-minutes < 2"> <xsl:text>einer Minute</xsl:text> </xsl:when> <xsl:when test="$delta-minutes < 45"> <xsl:value-of select="floor($delta-minutes)"/> <xsl:text> Minuten</xsl:text> </xsl:when> <xsl:when test="$delta-minutes < 90"> <xsl:text>etwa einer Stunde</xsl:text> </xsl:when> <xsl:when test="$delta-minutes < 1440"> <xsl:value-of select="floor($delta-minutes div 60)"/> <xsl:text> Stunden</xsl:text> </xsl:when> <xsl:when test="$delta-minutes < 2880"> <xsl:text>einem Tag</xsl:text> </xsl:when> <xsl:when test="$delta-minutes < 43200"> <xsl:value-of select="round($delta-minutes div 1440)"/> <xsl:text> Tagen</xsl:text> </xsl:when> <xsl:when test="$delta-minutes < 86400"> <xsl:text>etwa einem Monat</xsl:text> </xsl:when> <xsl:when test="$delta-minutes < 525600"> <xsl:value-of select="floor($delta-minutes div 43200)"/> <xsl:text> Monaten</xsl:text> </xsl:when> <xsl:when test="$delta-minutes < 1051200"> <xsl:value-of select="floor($delta-minutes div 10080)"/> <xsl:text>etwa einem Jahr</xsl:text> </xsl:when> <xsl:otherwise> <xsl:value-of select="floor($delta-minutes div 525600)"/> <xsl:text> Jahren</xsl:text> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:choose> <xsl:when test='$minutes < 0'> <xsl:choose> <xsl:when test='$delta-in-words = "one day"'> <xsl:text>morgen</xsl:text> </xsl:when> <xsl:when test='$delta-in-words = "about one month"'> <xsl:text>letzten Monat</xsl:text> </xsl:when> <xsl:when test='$delta-in-words = "about one year"'> <xsl:text>letztes Jahr</xsl:text> </xsl:when> <xsl:otherwise> <xsl:text>vor </xsl:text> <xsl:value-of select='$delta-in-words' /> </xsl:otherwise> </xsl:choose> </xsl:when> <xsl:otherwise> <xsl:choose> <xsl:when test='$delta-in-words = "one day"'> <xsl:text>gestern</xsl:text> </xsl:when> <xsl:when test='$delta-in-words = "about one month"'> <xsl:text>nächsten Monat</xsl:text> </xsl:when> <xsl:when test='$delta-in-words = "about one year"'> <xsl:text>nächstes Jahr</xsl:text> </xsl:when> <xsl:otherwise> <xsl:text>vor </xsl:text> <xsl:value-of select='$delta-in-words' /> </xsl:otherwise> </xsl:choose> </xsl:otherwise> </xsl:choose> </xsl:template> </xsl:stylesheet>