Add L10N interface to server container
This commit is contained in:
parent
bae121b16d
commit
9f777fba98
|
@ -0,0 +1,34 @@
|
|||
<?php
|
||||
/**
|
||||
* Copyright (c) 2013 Bart Visscher <bartv@thisnet.nl>
|
||||
* This file is licensed under the Affero General Public License version 3 or
|
||||
* later.
|
||||
* See the COPYING-README file.
|
||||
*
|
||||
*/
|
||||
|
||||
namespace OC\L10N;
|
||||
|
||||
/**
|
||||
* TODO: Description
|
||||
*/
|
||||
class Factory {
|
||||
/**
|
||||
* cached instances
|
||||
*/
|
||||
protected $instances = array();
|
||||
|
||||
/**
|
||||
* get an L10N instance
|
||||
* @param $app string
|
||||
* @param $lang string|null
|
||||
* @return OC_L10N
|
||||
*/
|
||||
public function get($app) {
|
||||
if (!isset($this->instances[$app])) {
|
||||
$this->instances[$app] = new \OC_L10N($app);
|
||||
}
|
||||
return $this->instances[$app];
|
||||
}
|
||||
|
||||
}
|
|
@ -25,12 +25,7 @@
|
|||
/**
|
||||
* This class is for i18n and l10n
|
||||
*/
|
||||
class OC_L10N {
|
||||
/**
|
||||
* cached instances
|
||||
*/
|
||||
protected static $instances=array();
|
||||
|
||||
class OC_L10N implements \OCP\IL10N {
|
||||
/**
|
||||
* cache
|
||||
*/
|
||||
|
@ -83,13 +78,10 @@ class OC_L10N {
|
|||
* @return OC_L10N
|
||||
*/
|
||||
public static function get($app, $lang=null) {
|
||||
if(is_null($lang)) {
|
||||
if(!isset(self::$instances[$app])) {
|
||||
self::$instances[$app]=new OC_L10N($app);
|
||||
}
|
||||
return self::$instances[$app];
|
||||
}else{
|
||||
return new OC_L10N($app, $lang);
|
||||
if (is_null($lang)) {
|
||||
return OC::$server->getL10N($app);
|
||||
} else {
|
||||
return new \OC_L10N($app, $lang);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -102,6 +102,9 @@ class Server extends SimpleContainer implements IServerContainer {
|
|||
$this->registerService('AllConfig', function($c) {
|
||||
return new \OC\AllConfig();
|
||||
});
|
||||
$this->registerService('L10NFactory', function($c) {
|
||||
return new \OC\L10N\Factory();
|
||||
});
|
||||
$this->registerService('UserCache', function($c) {
|
||||
return new UserCache();
|
||||
});
|
||||
|
@ -217,6 +220,15 @@ class Server extends SimpleContainer implements IServerContainer {
|
|||
return $this->query('AllConfig');
|
||||
}
|
||||
|
||||
/**
|
||||
* get an L10N instance
|
||||
* @param $app string appid
|
||||
* @return \OC_L10N
|
||||
*/
|
||||
function getL10N($app) {
|
||||
return $this->query('L10NFactory')->get($app);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an ICache instance
|
||||
*
|
||||
|
|
|
@ -0,0 +1,67 @@
|
|||
<?php
|
||||
/**
|
||||
* Copyright (c) 2013 Bart Visscher <bartv@thisnet.nl>
|
||||
* This file is licensed under the Affero General Public License version 3 or
|
||||
* later.
|
||||
* See the COPYING-README file.
|
||||
*
|
||||
*/
|
||||
|
||||
namespace OCP;
|
||||
|
||||
/**
|
||||
* TODO: Description
|
||||
*/
|
||||
interface IL10N {
|
||||
/**
|
||||
* @brief Translating
|
||||
* @param $text String The text we need a translation for
|
||||
* @param array $parameters default:array() Parameters for sprintf
|
||||
* @return \OC_L10N_String|string Translation or the same text
|
||||
*
|
||||
* Returns the translation. If no translation is found, $text will be
|
||||
* returned.
|
||||
*/
|
||||
public function t($text, $parameters = array());
|
||||
|
||||
/**
|
||||
* @brief Translating
|
||||
* @param $text_singular String the string to translate for exactly one object
|
||||
* @param $text_plural String the string to translate for n objects
|
||||
* @param $count Integer Number of objects
|
||||
* @param array $parameters default:array() Parameters for sprintf
|
||||
* @return \OC_L10N_String|string Translation or the same text
|
||||
*
|
||||
* Returns the translation. If no translation is found, $text will be
|
||||
* returned. %n will be replaced with the number of objects.
|
||||
*
|
||||
* The correct plural is determined by the plural_forms-function
|
||||
* provided by the po file.
|
||||
*
|
||||
*/
|
||||
public function n($text_singular, $text_plural, $count, $parameters = array());
|
||||
|
||||
/**
|
||||
* @brief Localization
|
||||
* @param $type Type of localization
|
||||
* @param $params parameters for this localization
|
||||
* @returns String or false
|
||||
*
|
||||
* Returns the localized data.
|
||||
*
|
||||
* Implemented types:
|
||||
* - date
|
||||
* - Creates a date
|
||||
* - l10n-field: date
|
||||
* - params: timestamp (int/string)
|
||||
* - datetime
|
||||
* - Creates date and time
|
||||
* - l10n-field: datetime
|
||||
* - params: timestamp (int/string)
|
||||
* - time
|
||||
* - Creates a time
|
||||
* - l10n-field: time
|
||||
* - params: timestamp (int/string)
|
||||
*/
|
||||
public function l($type, $data);
|
||||
}
|
|
@ -101,6 +101,13 @@ interface IServerContainer {
|
|||
*/
|
||||
function getConfig();
|
||||
|
||||
/**
|
||||
* get an L10N instance
|
||||
* @param $app string appid
|
||||
* @return \OCP\IL10N
|
||||
*/
|
||||
function getL10N($app);
|
||||
|
||||
/**
|
||||
* Returns an ICache instance
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue