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
|
* This class is for i18n and l10n
|
||||||
*/
|
*/
|
||||||
class OC_L10N {
|
class OC_L10N implements \OCP\IL10N {
|
||||||
/**
|
|
||||||
* cached instances
|
|
||||||
*/
|
|
||||||
protected static $instances=array();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* cache
|
* cache
|
||||||
*/
|
*/
|
||||||
|
@ -83,13 +78,10 @@ class OC_L10N {
|
||||||
* @return OC_L10N
|
* @return OC_L10N
|
||||||
*/
|
*/
|
||||||
public static function get($app, $lang=null) {
|
public static function get($app, $lang=null) {
|
||||||
if(is_null($lang)) {
|
if (is_null($lang)) {
|
||||||
if(!isset(self::$instances[$app])) {
|
return OC::$server->getL10N($app);
|
||||||
self::$instances[$app]=new OC_L10N($app);
|
} else {
|
||||||
}
|
return new \OC_L10N($app, $lang);
|
||||||
return self::$instances[$app];
|
|
||||||
}else{
|
|
||||||
return new OC_L10N($app, $lang);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -102,6 +102,9 @@ class Server extends SimpleContainer implements IServerContainer {
|
||||||
$this->registerService('AllConfig', function($c) {
|
$this->registerService('AllConfig', function($c) {
|
||||||
return new \OC\AllConfig();
|
return new \OC\AllConfig();
|
||||||
});
|
});
|
||||||
|
$this->registerService('L10NFactory', function($c) {
|
||||||
|
return new \OC\L10N\Factory();
|
||||||
|
});
|
||||||
$this->registerService('UserCache', function($c) {
|
$this->registerService('UserCache', function($c) {
|
||||||
return new UserCache();
|
return new UserCache();
|
||||||
});
|
});
|
||||||
|
@ -217,6 +220,15 @@ class Server extends SimpleContainer implements IServerContainer {
|
||||||
return $this->query('AllConfig');
|
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
|
* 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();
|
function getConfig();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get an L10N instance
|
||||||
|
* @param $app string appid
|
||||||
|
* @return \OCP\IL10N
|
||||||
|
*/
|
||||||
|
function getL10N($app);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns an ICache instance
|
* Returns an ICache instance
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue