aboutsummaryrefslogtreecommitdiffstats
path: root/public/system/library/language.php
diff options
context:
space:
mode:
Diffstat (limited to 'public/system/library/language.php')
-rw-r--r--public/system/library/language.php85
1 files changed, 85 insertions, 0 deletions
diff --git a/public/system/library/language.php b/public/system/library/language.php
new file mode 100644
index 0000000..2e59668
--- /dev/null
+++ b/public/system/library/language.php
@@ -0,0 +1,85 @@
+<?php
+/**
+ * @package OpenCart
+ * @author Daniel Kerr
+ * @copyright Copyright (c) 2005 - 2017, OpenCart, Ltd. (https://www.opencart.com/)
+ * @license https://opensource.org/licenses/GPL-3.0
+ * @link https://www.opencart.com
+*/
+
+/**
+* Language class
+*/
+class Language {
+ private $default = 'en-gb';
+ private $directory;
+ public $data = array();
+
+ /**
+ * Constructor
+ *
+ * @param string $file
+ *
+ */
+ public function __construct($directory = '') {
+ $this->directory = $directory;
+ }
+
+ /**
+ *
+ *
+ * @param string $key
+ *
+ * @return string
+ */
+ public function get($key) {
+ return (isset($this->data[$key]) ? $this->data[$key] : $key);
+ }
+
+ public function set($key, $value) {
+ $this->data[$key] = $value;
+ }
+
+ /**
+ *
+ *
+ * @return array
+ */
+ public function all() {
+ return $this->data;
+ }
+
+ /**
+ *
+ *
+ * @param string $filename
+ * @param string $key
+ *
+ * @return array
+ */
+ public function load($filename, $key = '') {
+ if (!$key) {
+ $_ = array();
+
+ $file = DIR_LANGUAGE . $this->default . '/' . $filename . '.php';
+
+ if (is_file($file)) {
+ require($file);
+ }
+
+ $file = DIR_LANGUAGE . $this->directory . '/' . $filename . '.php';
+
+ if (is_file($file)) {
+ require($file);
+ }
+
+ $this->data = array_merge($this->data, $_);
+ } else {
+ // Put the language into a sub key
+ $this->data[$key] = new Language($this->directory);
+ $this->data[$key]->load($filename);
+ }
+
+ return $this->data;
+ }
+} \ No newline at end of file