From 520d52a048c0046078ad48fd21638789c65bbbd0 Mon Sep 17 00:00:00 2001 From: Toby Zerner Date: Sat, 3 Oct 2015 16:25:17 +0930 Subject: [PATCH] Update for composer branch, add svg icon --- extensions/lang-english/assets/icon.svg | 10 +++++++ extensions/lang-english/bootstrap.php | 36 ++++++++++++------------- extensions/lang-english/composer.json | 29 ++++++++++++++++++++ extensions/lang-english/flarum.json | 26 ------------------ 4 files changed, 56 insertions(+), 45 deletions(-) create mode 100644 extensions/lang-english/assets/icon.svg create mode 100644 extensions/lang-english/composer.json delete mode 100644 extensions/lang-english/flarum.json diff --git a/extensions/lang-english/assets/icon.svg b/extensions/lang-english/assets/icon.svg new file mode 100644 index 000000000..36c988974 --- /dev/null +++ b/extensions/lang-english/assets/icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/extensions/lang-english/bootstrap.php b/extensions/lang-english/bootstrap.php index 54888ef87..db331d086 100644 --- a/extensions/lang-english/bootstrap.php +++ b/extensions/lang-english/bootstrap.php @@ -1,31 +1,31 @@ listen(RegisterLocales::class, function(RegisterLocales $event) { - $locale = $name = null; +return function (Application $app) { + $app->make('events')->listen(RegisterLocales::class, function(RegisterLocales $event) { + $name = $title = basename(__DIR__); - if (file_exists($manifest = __DIR__.'/flarum.json')) { + if (file_exists($manifest = __DIR__.'/composer.json')) { $json = json_decode(file_get_contents($manifest), true); - $locale = array_key_exists('locale', $json) ? $json['locale'] : null; - $name = array_key_exists('name', $json) ? $json['name'] : null; - unset($json); + + if (empty($json)) { + throw new RuntimeException("Error parsing composer.json in $name: ".json_last_error_msg()); + } + + $locale = array_get($json, 'extra.flarum-locale.code'); + $title = array_get($json, 'extra.flarum-locale.title', $title); } - if ($name === null) { - throw new RuntimeException("Language pack ".__DIR__." needs a \"name\" in flarum.json."); + if (! isset($locale)) { + throw new RuntimeException("Language pack $name must define \"extra.flarum-locale.code\" in composer.json."); } - if ($locale === null) { - throw new RuntimeException("Language pack {$name} needs a \"locale\" in flarum.json."); - } - - $event->addLocale($locale, $name); + $event->addLocale($locale, $title); if (! is_dir($localeDir = __DIR__.'/locale')) { - throw new RuntimeException("Language pack {$name} needs a \"locale\" subdirectory."); + throw new RuntimeException("Language pack $name must have a \"locale\" subdirectory."); } if (file_exists($file = $localeDir.'/config.js')) { @@ -36,9 +36,7 @@ return function (Dispatcher $events) { $event->addConfig($locale, $file); } - $files = new DirectoryIterator($localeDir); - - foreach ($files as $file) { + foreach (new DirectoryIterator($localeDir) as $file) { if ($file->isFile() && in_array($file->getExtension(), ['yml', 'yaml'])) { $event->addTranslations($locale, $file->getPathname()); } diff --git a/extensions/lang-english/composer.json b/extensions/lang-english/composer.json new file mode 100644 index 000000000..2a489aad3 --- /dev/null +++ b/extensions/lang-english/composer.json @@ -0,0 +1,29 @@ +{ + "name": "flarum/english", + "type": "flarum-extension", + "description": "English language pack.", + "license": "MIT", + "require": { + "composer/installers": "dev-master" + }, + "extra": { + "flarum-extension": { + "title": "English", + "icon": { + "backgroundImage": "url('{$assets}/icon.svg')", + "backgroundSize": "cover", + "backgroundPosition": "center" + } + }, + "flarum-locale": { + "code": "en", + "title": "English" + } + }, + "repositories": [ + { + "type": "vcs", + "url": "https://github.com/tobscure/installers" + } + ] +} diff --git a/extensions/lang-english/flarum.json b/extensions/lang-english/flarum.json deleted file mode 100644 index ba6fddadb..000000000 --- a/extensions/lang-english/flarum.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "english", - "title": "English", - "locale": "en", - "description": "English language pack.", - "keywords": ["language"], - "version": "0.1.0-beta.3", - "author": { - "name": "Toby Zerner", - "email": "toby@flarum.org", - "homepage": "http://tobyzerner.com" - }, - "license": "MIT", - "require": { - "flarum": ">=0.1.0-beta.3" - }, - "support": { - "source": "https://github.com/flarum/english", - "issues": "https://github.com/flarum/core/issues" - }, - "icon": { - "name": "language", - "backgroundColor": "#eee", - "color": "#000" - } -}