blob: 18d7b62e2165d10ac539b11d2994fee1df8893b2 (
plain)
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
29
30
31
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
59
60
61
62
63
64
65
66
67
68
69
70
71
|
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\language;
use Symfony\Component\Finder\Finder;
/**
* Helper class for language file related functions
*/
class language_file_helper
{
/**
* @var string Path to phpBB's root
*/
protected $phpbb_root_path;
/**
* Constructor
*
* @param string $phpbb_root_path Path to phpBB's root
*/
public function __construct($phpbb_root_path)
{
$this->phpbb_root_path = $phpbb_root_path;
}
/**
* Returns available languages
*
* @return array
*/
public function get_available_languages()
{
// Find available language packages
$finder = new Finder();
$finder->files()
->name('iso.txt')
->depth('== 1')
->in($this->phpbb_root_path . 'language');
$available_languages = array();
foreach ($finder as $file)
{
$path = $file->getRelativePath();
$info = explode("\n", $file->getContents());
$available_languages[] = array(
// Get the name of the directory containing iso.txt
'iso' => $path,
// Recover data from file
'name' => trim($info[0]),
'local_name' => trim($info[1]),
'author' => trim($info[2])
);
}
return $available_languages;
}
}
|