Blame view

sources/lib/private/l10n/string.php 1.13 KB
31b7f2792   Kload   Upgrade to ownclo...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
  <?php
  /**
   * Copyright (c) 2012 Bart Visscher <bartv@thisnet.nl>
   * This file is licensed under the Affero General Public License version 3 or
   * later.
   * See the COPYING-README file.
   */
  
  class OC_L10N_String{
  	/**
  	 * @var OC_L10N
  	 */
  	protected $l10n;
  
  	/**
  	 * @var string
  	 */
  	protected $text;
  
  	/**
  	 * @var array
  	 */
  	protected $parameters;
  
  	/**
  	 * @var integer
  	 */
  	protected $count;
6d9380f96   Cédric Dupont   Update sources OC...
29
30
31
  	/**
  	 * @param OC_L10N $l10n
  	 */
31b7f2792   Kload   Upgrade to ownclo...
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
  	public function __construct($l10n, $text, $parameters, $count = 1) {
  		$this->l10n = $l10n;
  		$this->text = $text;
  		$this->parameters = $parameters;
  		$this->count = $count;
  	}
  
  	public function __toString() {
  		$translations = $this->l10n->getTranslations();
  
  		$text = $this->text;
  		if(array_key_exists($this->text, $translations)) {
  			if(is_array($translations[$this->text])) {
  				$fn = $this->l10n->getPluralFormFunction();
  				$id = $fn($this->count);
  				$text = $translations[$this->text][$id];
  			}
  			else{
  				$text = $translations[$this->text];
  			}
  		}
  
  		// Replace %n first (won't interfere with vsprintf)
  		$text = str_replace('%n', $this->count, $text);
  		return vsprintf($text, $this->parameters);
  	}
  }