Skip to content

Commit

Permalink
Multilanguage support for IIS servers.
Browse files Browse the repository at this point in the history
  • Loading branch information
grinry committed Nov 30, 2015
1 parent ddbd9c8 commit dab55df
Show file tree
Hide file tree
Showing 5 changed files with 51 additions and 14 deletions.
2 changes: 2 additions & 0 deletions MultiLanguageServiceProvider.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
<?php
/**
* @author Rytis Grincevicius <rytis@kiberzauras.com>
* @link http://www.github.com/kiberzauras/laravel.multilanguage
* @version 1.1.3
* @license MIT
*/
namespace Kiberzauras\MultiLanguage;
Expand Down
48 changes: 37 additions & 11 deletions Request.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
<?php
/**
* @author Rytis Grincevicius <rytis@kiberzauras.com>
* @link http://www.github.com/kiberzauras/laravel.multilanguage
* @version 1.1.3
* @license MIT
*/
namespace Kiberzauras\MultiLanguage;
Expand All @@ -24,22 +26,46 @@ public static function capture()
$params = require_once $config_url;

if (!empty($params['array'])) {
$uri = trim($_SERVER['REQUEST_URI'], '/');
$lang = strstr($uri, '/', true);
if (in_array($lang, $params['array'])) {
// for accessing /en/page/page
$_SERVER['REQUEST_URI'] = strstr($uri, '/');
define('Language', $lang);
} elseif (in_array($uri, $params['array'])) {
// for accessing /, /en, and /en/ pages
$_SERVER['REQUEST_URI'] = '/';
define('Language', $uri);
}

if (array_key_exists('HTTP_X_ORIGINAL_URL', $_SERVER))
self::parseServerVars('HTTP_X_ORIGINAL_URL', $params);

elseif (array_key_exists('HTTP_X_REWRITE_URL', $_SERVER))
self::parseServerVars('HTTP_X_REWRITE_URL', $params);

elseif ($_SERVER['UNENCODED_URL'] && $_SERVER['IIS_WasUrlRewritten'] == 1)
self::parseServerVars('UNENCODED_URL', $params);

elseif ($_SERVER['REQUEST_URI'])
self::parseServerVars('REQUEST_URI', $params);

elseif ($_SERVER['ORIG_PATH_INFO'])
self::parseServerVars('ORIG_PATH_INFO', $params);

}
defined('Language') || define('Language', !empty($params['default']) ? $params['default'] : 'en');
}

static::enableHttpMethodParameterOverride();
return static::createFromBase(SymfonyRequest::createFromGlobals());
}

/**
* @param $var
* @param $params
*/
protected static function parseServerVars($var, $params)
{
$uri = trim($_SERVER[$var], '/');
$lang = strstr($uri, '/', true);
if (in_array($lang, $params->enabled)) {
// for accessing /en/page/page
$_SERVER[$var] = strstr($uri, '/');
define('Language', $lang);
} elseif (in_array($uri, $params->enabled)) {
// for accessing /, /en, and /en/ pages
$_SERVER[$var] = '/';
define('Language', $uri);
}
}
}
2 changes: 2 additions & 0 deletions UrlGenerator.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
<?php
/**
* @author Rytis Grincevicius <rytis@kiberzauras.com>
* @link http://www.github.com/kiberzauras/laravel.multilanguage
* @version 1.1.3
* @license MIT
*/
namespace Kiberzauras\MultiLanguage;
Expand Down
6 changes: 4 additions & 2 deletions composer.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
{
"name": "kiberzauras/laravel.multilanguage",
"description": "Multilanguage support for Laravel 5.1 routes",
"description": "Multilanguage support for Laravel 5.1 routes.",
"keywords": ["laravel", "multilanguage", "kiberzauras"],
"license": "MIT",
"time": "2015-11-30",
"authors": [
{
"name": "Rytis Grincevicius",
"email": "rytis@kiberzauras.com"
"email": "rytis@kiberzauras.com",
"homepage": "http://www.github.com/kiberzauras/laravel.multilanguage"
}
],
"require": {
Expand Down
7 changes: 6 additions & 1 deletion test/config/multiLanguage.php
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
<?php
/**
* Write down all available languages for your site to array
* @author Rytis Grincevicius <rytis@kiberzauras.com>
* @link http://www.github.com/kiberzauras/laravel.multilanguage
* @version 1.1.3
* @license MIT
*/

// Write down all available languages for your site to array
return [
'default'=>'en',
'array'=>[
Expand Down

0 comments on commit dab55df

Please sign in to comment.