aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorJoas Schilling <coding@schilljs.com>2017-11-29 09:50:40 +0100
committerJoas Schilling <coding@schilljs.com>2017-11-29 10:04:53 +0100
commit8e684f76e5d599917b52ddfd0ea1d58e31222487 (patch)
tree4525d5c9f471f00f3abf623aea00a416cbba32c4 /lib
parenta0ce2c1204861e64219f6375f6ff8d13e63cfe32 (diff)
downloadnextcloud-server-8e684f76e5d599917b52ddfd0ea1d58e31222487.tar.gz
nextcloud-server-8e684f76e5d599917b52ddfd0ea1d58e31222487.zip
Allow `{lang}` as a placeholder in the skeleton directory
Signed-off-by: Joas Schilling <coding@schilljs.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/private/legacy/util.php15
1 files changed, 14 insertions, 1 deletions
diff --git a/lib/private/legacy/util.php b/lib/private/legacy/util.php
index 3ce11746672..b9a7706eaf7 100644
--- a/lib/private/legacy/util.php
+++ b/lib/private/legacy/util.php
@@ -379,7 +379,20 @@ class OC_Util {
*/
public static function copySkeleton($userId, \OCP\Files\Folder $userDirectory) {
- $skeletonDirectory = \OC::$server->getConfig()->getSystemValue('skeletondirectory', \OC::$SERVERROOT . '/core/skeleton');
+ $plainSkeletonDirectory = \OC::$server->getConfig()->getSystemValue('skeletondirectory', \OC::$SERVERROOT . '/core/skeleton');
+ $userLang = \OC::$server->getL10NFactory()->findLanguage();
+ $skeletonDirectory = str_replace('{lang}', $userLang, $plainSkeletonDirectory);
+
+ if (!file_exists($skeletonDirectory)) {
+ $dialectStart = strpos($userLang, '_');
+ if ($dialectStart !== false) {
+ $skeletonDirectory = str_replace('{lang}', substr($userLang, 0, $dialectStart), $plainSkeletonDirectory);
+ }
+ if ($dialectStart === false || !file_exists($skeletonDirectory)) {
+ $skeletonDirectory = str_replace('{lang}', 'en', $plainSkeletonDirectory);
+ }
+ }
+
$instanceId = \OC::$server->getConfig()->getSystemValue('instanceid', '');
if ($instanceId === null) {