diff --git a/src/helpers/ApiHelper.php b/src/helpers/ApiHelper.php index a7997ab..b20bce0 100644 --- a/src/helpers/ApiHelper.php +++ b/src/helpers/ApiHelper.php @@ -12,6 +12,7 @@ namespace doublesecretagency\googlemaps\helpers; use Craft; +use craft\helpers\UrlHelper; use doublesecretagency\googlemaps\GoogleMapsPlugin; /** @@ -95,22 +96,22 @@ public static function setServerKey(string $key): string */ public static function getApiUrl(array $params = []): string { + $baseParams = []; + // Get browser key - $key = static::getBrowserKey(); + $baseParams['key'] = static::getBrowserKey(); - // Set base URL of Google Maps API - $googleMapsApi = 'https://maps.googleapis.com/maps/api/js'; - $googleMapsApi .= "?key={$key}"; + // Optionally append language parameters + $language = GoogleMapsPlugin::$plugin->getSettings()->language; + if ($language) { + $baseParams['language'] = $language; + } // Optionally append additional parameters - if ($params) { - foreach ($params as $param => $value) { - $googleMapsApi .= "&{$param}={$value}"; - } - } + $params = array_merge($baseParams, $params); // Return complete API URL - return $googleMapsApi; + return UrlHelper::urlWithParams('https://maps.googleapis.com/maps/api/js', $params); } } diff --git a/src/models/Settings.php b/src/models/Settings.php index 25fd0f6..0d950da 100644 --- a/src/models/Settings.php +++ b/src/models/Settings.php @@ -60,4 +60,9 @@ class Settings extends Model */ public $enableJsLogging = true; + /** + * @var string|null Google API Language. + * @see https://developers.google.com/maps/documentation/javascript/localization + */ + public $language; }