public function editEmail(Request $request) { $file_locale = $request->input('file_locale', 'en'); $file_name = $request->input('file_name', 'welcome'); $storage = Storage::disk('email'); $file_path = str_replace(['../', '..'], '', $file_name . '/' . $file_locale . '.blade.php'); if (!$storage->exists($file_path)) { abort(404); } $file_content = $storage->get($file_path); $php_files = []; $supportedLocaleCodes = allSupportedLocaleCodes(); foreach ($storage->directories() as $directory) { $files = $storage->files($directory); foreach ($files as $file) { $localeCode = preg_replace('/(^' . $directory . '\\/|\\.blade\\.php$)/', '', $file); if (in_array($localeCode, $supportedLocaleCodes)) { $locale = $localeCode . ' (' . allSupportedLocale($localeCode, 'native') . ')'; $php_files[$locale][] = ['locale' => $localeCode, 'file' => $directory]; } } } $this->theme->title(trans('pages.admin_ui_lang_email_title')); $this->theme->description(trans('pages.admin_ui_lang_email_desc')); return $this->_any('email', ['file_locale' => $file_locale, 'file_name' => $file_name, 'file_content' => $file_content, 'files' => $php_files]); }
public function validateMultipleLocaleData(Request $request, array $fieldNames, array $rules, &$data, &$successes, &$fails, &$old, array $htmlInputs = []) { $emptyHtmlInputs = empty($htmlInputs); $allSupportedLocaleCodes = allSupportedLocaleCodes(); $data = []; $successes = []; $fails = []; $old = []; foreach ($fieldNames as $fieldName) { $input = $request->input($fieldName); if (empty($input)) { $input = $request->file($fieldName); } if (empty($input)) { continue; } foreach ($input as $locale => $value) { if (!in_array($locale, $allSupportedLocaleCodes)) { continue; } if (!isset($data[$locale])) { $data[$locale] = []; } if (!$emptyHtmlInputs && array_key_exists($fieldName, $htmlInputs)) { $value = clean($value, $htmlInputs[$fieldName]); } $data[$locale][$fieldName] = $value; $old[$fieldName . '_' . $locale] = $value; } } if (empty($rules)) { $successes[] = array_keys($data); return; } foreach ($data as $locale => $inputs) { $validator = Validator::make($inputs, $rules); if ($validator->fails()) { $fails[] = $validator; } else { $successes[] = $locale; } } }
public function update(Request $request) { $validator = Validator::make($request->all(), ['country' => 'required|in:' . implode(',', allCountryCodes()), 'locale' => 'required|in:' . implode(',', allSupportedLocaleCodes()), 'timezone' => 'required', 'currency' => 'required|in:' . implode(',', allCurrencyCodes()), 'number_format' => 'required|in:' . implode(',', allNumberFormats()), 'first_day_of_week' => 'required|integer|min:0|max:6', 'long_date_format' => 'required|integer|min:0|max:3', 'short_date_format' => 'required|integer|min:0|max:3', 'long_time_format' => 'required|integer|min:0|max:4', 'short_time_format' => 'required|integer|min:0|max:4']); if ($validator->fails()) { return redirect(homeUrl('custom-settings'))->withErrors($validator); } $settings = settings(); $settings->setLocale($request->input('locale')); $settings->setCountry($request->input('country')); $settings->setTimezone($request->input('timezone')); $settings->setCurrency($request->input('currency')); $settings->setNumberFormat($request->input('number_format')); $settings->setFirstDayOfWeek($request->input('first_day_of_week')); $settings->setLongDateFormat($request->input('long_date_format')); $settings->setShortDateFormat($request->input('short_date_format')); $settings->setLongTimeFormat($request->input('long_time_format')); $settings->setShortTimeFormat($request->input('short_time_format')); $settings->storeUser(); $settings->storeSession(); return $settings->storeCookie(redirect(homeUrl('my-settings', [], $settings->getLocale()))); }
protected function checkForceLocale(Request $request) { $allSupportedLocaleCodes = allSupportedLocaleCodes(); $isDirectLocale = in_array($request->segment(1), $allSupportedLocaleCodes); $forceLocale = $isDirectLocale ? currentLocaleCode() : SettingsFacade::getLocale(); if ($request->has(AppConfig::KEY_FORCE_LOCALE)) { $forceLocale = $request->input(AppConfig::KEY_FORCE_LOCALE); } if (in_array($forceLocale, $allSupportedLocaleCodes)) { if ($forceLocale != SettingsFacade::getLocale()) { SettingsFacade::setLocale($forceLocale); SettingsFacade::storeSession(); SettingsFacade::storeUser(); } if ($forceLocale != currentLocaleCode()) { $rdr = redirect(currentURL($forceLocale)); return SettingsFacade::storeCookie($rdr); } } return false; }
/** * @return array */ function allSupportedFullLocaleCodes() { $localeCodes = allSupportedLocaleCodes(); $fullLocaleCodes = []; foreach ($localeCodes as $localeCode) { $fullLocaleCodes[] = fullLocaleCode($localeCode); } return $fullLocaleCodes; }