From ec253f1354b6993cf204ee60ec87350119a3c91e Mon Sep 17 00:00:00 2001 From: scambra Date: Thu, 7 Jun 2012 14:44:59 +0200 Subject: [PATCH 1/3] Use strftime to format date with translated month names --- core/l10n/l10n-de.php | 6 +++--- core/l10n/l10n-en.php | 5 +++++ core/l10n/l10n-es.php | 5 +++++ lib/l10n.php | 10 ++++++---- lib/util.php | 4 ++-- 5 files changed, 21 insertions(+), 9 deletions(-) create mode 100644 core/l10n/l10n-en.php create mode 100644 core/l10n/l10n-es.php diff --git a/core/l10n/l10n-de.php b/core/l10n/l10n-de.php index f3084b05df8..976f8ce3c51 100644 --- a/core/l10n/l10n-de.php +++ b/core/l10n/l10n-de.php @@ -1,5 +1,5 @@ 'd.m.Y', - 'datetime' => 'd.m.Y H:i:s', - 'time' => 'H:i:s' ); + 'date' => '%d.%m.%Y', + 'datetime' => '%d.%m.%Y %H:%M:%S', + 'time' => '%H:%M:%S' ); diff --git a/core/l10n/l10n-en.php b/core/l10n/l10n-en.php new file mode 100644 index 00000000000..3a050d477ce --- /dev/null +++ b/core/l10n/l10n-en.php @@ -0,0 +1,5 @@ + '%B %e, %Y', + 'datetime' => '%B %e, %Y %H:%M', + 'time' => '%H:%M:%S' ); diff --git a/core/l10n/l10n-es.php b/core/l10n/l10n-es.php new file mode 100644 index 00000000000..b81464b491a --- /dev/null +++ b/core/l10n/l10n-es.php @@ -0,0 +1,5 @@ + '%e de %B de %Y', + 'datetime' => '%e de %B de %Y %H:%M', + 'time' => '%H:%M:%S' ); diff --git a/lib/l10n.php b/lib/l10n.php index 4eb4c323d88..7df01ced72f 100644 --- a/lib/l10n.php +++ b/lib/l10n.php @@ -58,9 +58,9 @@ class OC_L10N{ * Localization */ private $localizations = array( - 'date' => 'd.m.Y', - 'datetime' => 'd.m.Y H:i:s', - 'time' => 'H:i:s'); + 'date' => '%d.%m.%Y', + 'datetime' => '%d.%m.%Y %H:%M:%S', + 'time' => '%H:%M:%S'); /** * get an L10N instance @@ -216,7 +216,9 @@ class OC_L10N{ case 'time': if($data instanceof DateTime) return $data->format($this->localizations[$type]); elseif(is_string($data)) $data = strtotime($data); - return date($this->localizations[$type], $data); + $language = self::findLanguage(); + setlocale(LC_TIME, array($language, $language.'_'.strtoupper($language))); + return strftime($this->localizations[$type], $data); break; default: return false; diff --git a/lib/util.php b/lib/util.php index 5771b89f265..880a519d347 100755 --- a/lib/util.php +++ b/lib/util.php @@ -162,8 +162,8 @@ class OC_Util { $offset=$clientTimeZone-$systemTimeZone; $timestamp=$timestamp+$offset*60; } - $timeformat=$dateOnly?'F j, Y':'F j, Y, H:i'; - return date($timeformat,$timestamp); + $l=OC_L10N::get('lib'); + return $l->l($dateOnly ? 'date' : 'datetime', $timestamp); } /** From 5ecce8bfb7e615b4b0576ff28d21e5b8a5d68878 Mon Sep 17 00:00:00 2001 From: scambra Date: Fri, 21 Sep 2012 07:38:07 +0200 Subject: [PATCH 2/3] Translate modification date when file is created/uploaded, use same strings as lib/template.php --- apps/files/js/files.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/apps/files/js/files.js b/apps/files/js/files.js index 777a5ec647e..fe89b8105ac 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -843,20 +843,19 @@ function relative_modified_date(timestamp) { var diffhours = Math.round(diffminutes/60); var diffdays = Math.round(diffhours/24); var diffmonths = Math.round(diffdays/31); - var diffyears = Math.round(diffdays/365); if(timediff < 60) { return t('files','seconds ago'); } - else if(timediff < 120) { return '1 '+t('files','minute ago'); } - else if(timediff < 3600) { return diffminutes+' '+t('files','minutes ago'); } + else if(timediff < 120) { return t('files','1 minute ago'); } + else if(timediff < 3600) { return t('files','{minutes} minutes ago',{minutes: diffminutes}); } //else if($timediff < 7200) { return '1 hour ago'; } //else if($timediff < 86400) { return $diffhours.' hours ago'; } else if(timediff < 86400) { return t('files','today'); } else if(timediff < 172800) { return t('files','yesterday'); } - else if(timediff < 2678400) { return diffdays+' '+t('files','days ago'); } + else if(timediff < 2678400) { return t('files','{days} days ago',{days: diffdays}); } else if(timediff < 5184000) { return t('files','last month'); } //else if($timediff < 31556926) { return $diffmonths.' months ago'; } else if(timediff < 31556926) { return t('files','months ago'); } else if(timediff < 63113852) { return t('files','last year'); } - else { return diffyears+' '+t('files','years ago'); } + else { return t('files','years ago'); } } function getMimeIcon(mime, ready){ From d8eb62232e2b3003925c87b316b66ed6b39ff100 Mon Sep 17 00:00:00 2001 From: scambra Date: Wed, 26 Sep 2012 07:10:54 +0200 Subject: [PATCH 3/3] don't duplicate locales with country code --- lib/l10n.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/l10n.php b/lib/l10n.php index 7df01ced72f..26611537175 100644 --- a/lib/l10n.php +++ b/lib/l10n.php @@ -216,8 +216,9 @@ class OC_L10N{ case 'time': if($data instanceof DateTime) return $data->format($this->localizations[$type]); elseif(is_string($data)) $data = strtotime($data); - $language = self::findLanguage(); - setlocale(LC_TIME, array($language, $language.'_'.strtoupper($language))); + $locales = array(self::findLanguage()); + if (strlen($locales[0]) == 2) $locales[] = $language.'_'.strtoupper($language); + setlocale(LC_TIME, $locales); return strftime($this->localizations[$type], $data); break; default: