+ } elseif (!$forceLanguage) {
+ $languages = XDB::fetchOneCell('SELECT IF(ISNULL(gc1.belongsTo), gl1.language, gl2.language)
+ FROM geoloc_countries AS gc1
+ INNER JOIN geoloc_languages AS gl1 ON (gc1.iso_3166_1_a2 = gl1.iso_3166_1_a2)
+ LEFT JOIN geoloc_countries AS gc2 ON (gc1.belongsTo = gc2.iso_3166_1_a2)
+ LEFT JOIN geoloc_languages AS gl2 ON (gc2.iso_3166_1_a2 = gl2.iso_3166_1_a2)
+ WHERE gc1.iso_3166_1_a2 = {?}',
+ $address->countryId);
+ $toGeocode = substr($address->text, strlen($extraLines));
+ foreach (explode(',', $languages) as $language) {
+ if ($language != Platal::globals()->geocoder->gmaps_hl) {
+ $geocodedData = $this->getPlacemarkForAddress($toGeocode, $language);
+ $address->geocodedText = str_replace(', ', "\n", $geocodedData['address']);
+ if ($extraLines) {
+ $address->geocodedText = $extraLines . "\n" . $address->geocodedText;
+ }
+ if ($this->compareAddress($address)) {
+ $this->fillAddressWithGeocoding($address, $geocodedData, true);
+ $address->geocodedText = null;
+ break;
+ }
+ }
+ }