Es werden ausschließlich für die Funktion des Forums notwendige Cookies verwendet!

Unsere Datenschutzerklärung


Sprachauswahl funktioniert nicht für selbst angelegte Sprache
Ergebnis 1 bis 5 von 5

Thema: Sprachauswahl funktioniert nicht für selbst angelegte Sprache

  1. #1
    Benutzer
    Registriert seit
    24.11.2015
    Beiträge
    88
    Downloads
    35
    Uploads
    0

    Sprachauswahl funktioniert nicht für selbst angelegte Sprache

    Seit einer ganzen Weile versuche ich die Sprachauswahl in der top Navigation zum laufen zu bringen.

    Bekomme nur "Anhang 1" zu sehen. Obwohl ich "Anhang 2" meine selbst angelegte Sprache eigentlich korrekt installiert haben müsste.

    Die init.inc.php Hauptordner müsste auch in Ordnung sein:

    Code:
    @setlocale(LC_TIME, 'it_IT.utf8', 'it_IT.UTF-8', 'it_IT@euro', 'it_IT', 'it-IT', 'it-IT', 'it', 'Italian');
    
    $coo_lang_file_master->init_from_lang_file('language_settings');
    $coo_lang_file_master->init_from_lang_file('general');
    $coo_lang_file_master->init_from_lang_file('gm_logger');
    $coo_lang_file_master->init_from_lang_file('gm_shopping_cart');
    $coo_lang_file_master->init_from_lang_file('gm_account_delete');
    $coo_lang_file_master->init_from_lang_file('gm_price_offer');
    $coo_lang_file_master->init_from_lang_file('gm_tell_a_friend');
    $coo_lang_file_master->init_from_lang_file('gm_callback_service');
    Adminbereich:
    Code:
    @setlocale(LC_TIME, 'it_IT.utf8', 'it_IT.UTF-8', 'it_IT@euro', 'it_IT', 'it-IT', 'it-IT', 'it', 'Italian');
    
    $coo_lang_file_master->init_from_lang_file('language_settings');
    $coo_lang_file_master->init_from_lang_file('admin_general');
    $coo_lang_file_master->init_from_lang_file('gm_general');
    $coo_lang_file_master->init_from_lang_file('admin/yoochoose/yoo_lang_german.php');
    Yoochoose ist nur ein Empfehlungsdienst.

    Länder habe ich nur eins zur Auswahl: Italien, habe versucht auch Deutschland anzumachen hat aber nichts gebracht.

    Muss ich etwas in der Datenbank einstellen ?
    Habe den Shop neu hochgeladen mit den beiden vorinstallierten Sprachen scheint alles zu klappen.

    Der Rest funktioniert eigentlich auch problemlos wie z.b. der content manager oder email vorlagen usw. Anhang 3.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken 1.png   2.jpg   3.jpg  

  2. #2
    Benutzer
    Registriert seit
    24.11.2015
    Beiträge
    88
    Downloads
    35
    Uploads
    0

    AW: Sprachauswahl funktioniert nicht für selbst angelegte Sprache

    Hat keiner eine Lösung dafür ? Habe schon alles erdenkliche ausprobiert.
    Das wäre sehr wichtig für unseren Shop, vor allem da in Italien hier 2 Sprachen sind und die Browsersprache häufig random ist.

  3. #3
    Benutzer
    Registriert seit
    24.11.2015
    Beiträge
    88
    Downloads
    35
    Uploads
    0

    AW: Sprachauswahl funktioniert nicht für selbst angelegte Sprache

    Ich habe das jetzt so gemacht:
    in der index.html
    Code:
    					{if $smarty.session.language == german}
    						<div id="languageflags">
    							<a class="germanflag" href="{page_url}"><b>DE</b></a>
    							<a class="italianflag" href="{momurl}"><b>IT</b></a>
    						</div>
    					{else}
    						<div id="languageflags">
    							<a class="germanflag" href="{momurl}"><b>DE</b></a>
    							<a class="italianflag" href="{page_url}"><b>IT</b></a>
    						</div>
    					{/if}
    und meine Funktion von hier nochmal etwas abgeändert:


    Code:
    function smarty_function_momurl($params, &$smarty)
    {
    	$seoBoost     = MainFactory::create_object('GMSEOBoost', [], true);
    	$languageCode = new LanguageCode(new StringType(strtoupper($_SESSION['language_code'])));
    	$url          = '';
    	$html         = '';
    	$robots       = 'index,follow';
    	
    	$requestUri = gm_get_env_info('REQUEST_URI');
    	$getParams  = parse_url($requestUri, PHP_URL_QUERY);
    	parse_str($getParams, $getArray);
    	$getArray = array_keys($getArray);
    	
    	$languageProvider = MainFactory::create('LanguageProvider', StaticGXCoreLoader::getDatabaseQueryBuilder());
    	$activeCodes      = $languageProvider->getActiveCodes();
    	
    	
    	if(isset($GLOBALS['actual_products_id']) && !empty($GLOBALS['actual_products_id']))
    	{
    		/** @var ProductReadService $productReadService */
    		$productReadService = StaticGXCoreLoader::getService('ProductRead');
    		$product            = $productReadService->getProductById(new IdType((int)$GLOBALS['actual_products_id']));
    		
    		if($seoBoost->boost_products)
    		{
    			$url = xtc_href_link($seoBoost->get_boosted_product_url($GLOBALS['actual_products_id']));
    		}
    		else
    		{
    			try
    			{
    				$productLinkParams = xtc_product_link($GLOBALS['actual_products_id'], $product->getName($languageCode),
    				                                      $product->getUrlKeywords($languageCode),
    				                                      $_SESSION['languages_id']);
    			}
    			catch(InvalidArgumentException $e)
    			{
    				$productLinkParams = xtc_product_link($GLOBALS['actual_products_id'], '', '',
    				                                      $_SESSION['languages_id']);
    			}
    			
    			$url = xtc_href_link(FILENAME_DEFAULT, $productLinkParams);
    		}
    		
    		if($robots === 'index,follow' && $activeCodes->count() > 1)
    		{
    			foreach($activeCodes as $code)
    			{
    				$langCode   = new LanguageCode(new StringType($code->asString()));
    				$languageId = $languageProvider->getIdByCode($langCode);
    				
    				if($languageId != $_SESSION['languages_id'])
    				{
    					if($seoBoost->boost_products)
    					{
    						$altUrl = xtc_href_link($seoBoost->get_boosted_product_url($GLOBALS['actual_products_id'], '',
    						                                                           $languageId));
    					}
    					else
    					{
    						try
    						{
    							$productLinkParams = xtc_product_link($GLOBALS['actual_products_id'],
    							                                      $product->getName($langCode),
    							                                      $product->getUrlKeywords($langCode), $languageId);
    						}
    						catch(InvalidArgumentException $e)
    						{
    							continue;
    						}
    						
    						$altUrl = xtc_href_link(FILENAME_DEFAULT, $productLinkParams);
    					}
    										
    					if($altUrl !== $url)
    					{
    						
    						$html .= htmlspecialchars($altUrl);
    					}
    				}
    			}
    		}
    	}
    	elseif(isset($_GET['cat']) && isset($GLOBALS['current_category_id']) && !empty($GLOBALS['current_category_id']))
    	{
    		/** @var CategoryReadService $categoryReadService */
    		$categoryReadService = StaticGXCoreLoader::getService('CategoryRead');
    		$category            = $categoryReadService->getCategoryById(new IdType((int)$GLOBALS['current_category_id']));
    		
    		if($seoBoost->boost_categories)
    		{
    			$url = xtc_href_link($seoBoost->get_boosted_category_url($GLOBALS['current_category_id']));
    		}
    		else
    		{
    			try
    			{
    				$categoryLinkParams = xtc_category_link($GLOBALS['current_category_id'],
    				                                        $category->getName($languageCode),
    				                                        $category->getUrlKeywords($languageCode),
    				                                        $_SESSION['languages_id']);
    			}
    			catch(InvalidArgumentException $e)
    			{
    				$categoryLinkParams = xtc_category_link($GLOBALS['current_category_id'], '', '', 
    				                                        $_SESSION['languages_id']);
    			}
    			
    			$url = xtc_href_link(FILENAME_DEFAULT, $categoryLinkParams);
    		}
    		
    		if($robots === 'index,follow' && $activeCodes->count() > 1)
    		{
    			foreach($activeCodes as $code)
    			{
    				$langCode   = new LanguageCode(new StringType($code->asString()));
    				$languageId = $languageProvider->getIdByCode($langCode);
    				
    				if($languageId != $_SESSION['languages_id'])
    				{
    					if($seoBoost->boost_categories)
    					{
    						$altUrl = xtc_href_link($seoBoost->get_boosted_category_url($GLOBALS['current_category_id'],
    						                                                            $languageId));
    					}
    					else
    					{
    						try
    						{
    							$categoryLinkParams = xtc_category_link($GLOBALS['actual_products_id'],
    							                                        $category->getName($langCode),
    							                                        $category->getUrlKeywords($langCode), $languageId);
    						}
    						catch(InvalidArgumentException $e)
    						{
    							continue;
    						}
    						
    						$altUrl = xtc_href_link(FILENAME_DEFAULT, $categoryLinkParams);
    					}
    					
    					
    					if($altUrl !== $url)
    					{
    						$html .= htmlspecialchars($altUrl);
    											
    					}
    				}
    			}
    		}
    		
    	}
    	elseif(isset($_GET['coID']) && $activeCodes->count() > 1)
    	{
    		$coID = (int)$_GET['coID'];
    		
    		if($seoBoost->boost_content)
    		{
    			$contentId = $seoBoost->get_content_id_by_content_group($coID);
    			$url       = xtc_href_link($seoBoost->get_boosted_content_url($contentId));
    		}
    		else
    		{
    			$url = xtc_href_link(FILENAME_CONTENT, 'coID=' . $coID);
    		}
    		
    		if($robots === 'index,follow' && $activeCodes->count() > 1)
    		{
    			foreach($activeCodes as $code)
    			{
    				$langCode   = new LanguageCode(new StringType($code->asString()));
    				$languageId = $languageProvider->getIdByCode($langCode);
    				
    				if($languageId != $_SESSION['languages_id'])
    				{
    					if($seoBoost->boost_content)
    					{
    						$contentId = $seoBoost->get_content_id_by_content_group($coID, $languageId);
    						$altUrl    = xtc_href_link($seoBoost->get_boosted_content_url($contentId, $languageId));
    					}
    					else
    					{
    						$altUrl = xtc_href_link(FILENAME_CONTENT, 'coID=' . $coID);
    					}
    										
    					
    					if($altUrl !== $url)
    					{
    						$html .= htmlspecialchars($altUrl);
    														 
    					}
    				}
    			}
    		}
    	}
    	if (empty($html)){
    		$html = 'MAINURL';
    		
    	}
    	return $html;
    }
    Allerdings habe ich das Problem, dass z.b. auf der Startseite, privater Bereich, Warenkorb usw. diese Funktion nicht funktioniert, weil sich die url nicht verändert... Wie könnte ich stattdessen die Sprache ändern eventuell über Session ?

  4. #4
    Benutzer
    Registriert seit
    24.11.2015
    Beiträge
    88
    Downloads
    35
    Uploads
    0

    AW: Sprachauswahl funktioniert nicht für selbst angelegte Sprache

    HTML-Code:
    <form action="{page_url}" method="get" class="form-horizontal">
       {if $content_data.LANGUAGE_ICON}
    	<div class="form-group">
    		<label for="language-select">{$txt.title_language}</label>
    
      <!--             ###LANGUAGES_DROPDOWN###   =     $LANGUAGES_DROPDOWN müsste sein:   -->
    		<select name="language" class="form-control" id="language-select">
    	               {foreach name=language item=language_data from=$content_data.languages_data}
    		            <option value="{$language_data.CODE}"{if $language_data.ID == $content_data.CURRENT_LANGUAGES_ID} selected="selected"{/if}>{$language_data.NAME}</option>
    	               {/foreach}
                    </select>
     <!--             ###LANGUAGES_DROPDOWN###   ende  -->
    
    	</div>
       {/if}
    </form>
    So macht es Gambio (mit dem Dropdownmenu oben), versteh aber nicht wie das funktioniert. Wenn ich das umschreiben könnte auf mein Beispiel.

  5. #5
    Benutzer
    Registriert seit
    24.11.2015
    Beiträge
    88
    Downloads
    35
    Uploads
    0

    AW: Sprachauswahl funktioniert nicht für selbst angelegte Sprache

    Ok tut mir Leid für die ganzen Posts aber ich habe jetzt die Lösung dafür:

    HTML-Code:
    					{if {momurl}}
    						{if $smarty.session.language == german}
    							<div id="languageflags">
    								<a class="germanflag" href="{page_url}"><b>DE</b></a>
    								<a class="italianflag" href="{momurl}"><b>IT</b></a>
    							</div>
    						{else}
    							<div id="languageflags">
    								<a class="germanflag" href="{momurl}"><b>DE</b></a>
    								<a class="italianflag" href="{page_url}"><b>IT</b></a>
    							</div>
    						{/if}
    					{else}
    							<div id="languageflags">
    								<a class="germanflag" href="{cururl}?language=de"><b>DE</b></a>
    								<a class="italianflag" href="{cururl}?language=it"><b>IT</b></a>
    							</div>
    
    					{/if}
    momurl von oben, cururl das selbe wie beim anderen Thread von mir. Hier nochmal:

    PHP-Code:
    function smarty_function_cururl($params, &$smarty)
    {
        
        
        
    $seoBoost     MainFactory::create_object('GMSEOBoost', [], true);
        
    $languageCode = new LanguageCode(new StringType(strtoupper($_SESSION['language_code'])));
        
    $url          '';
        
    $html         '';
        
    $robots       'index,follow';
        
        
    $requestUri gm_get_env_info('REQUEST_URI');
        
    $getParams  parse_url($requestUriPHP_URL_QUERY);
        
    parse_str($getParams$getArray);
        
    $getArray array_keys($getArray);
        
        
    $languageProvider MainFactory::create('LanguageProvider'StaticGXCoreLoader::getDatabaseQueryBuilder());
        
    $activeCodes      $languageProvider->getActiveCodes();
        
        
        if(isset(
    $GLOBALS['actual_products_id']) && !empty($GLOBALS['actual_products_id']))
        {
            
    /** @var ProductReadService $productReadService */
            
    $productReadService StaticGXCoreLoader::getService('ProductRead');
            
    $product            $productReadService->getProductById(new IdType((int)$GLOBALS['actual_products_id']));
            
            if(
    $seoBoost->boost_products)
            {
                
    $url xtc_href_link($seoBoost->get_boosted_product_url($GLOBALS['actual_products_id']));
            }
            else
            {
                try
                {
                    
    $productLinkParams xtc_product_link($GLOBALS['actual_products_id'], $product->getName($languageCode),
                                                          
    $product->getUrlKeywords($languageCode),
                                                          
    $_SESSION['languages_id']);
                }
                catch(
    InvalidArgumentException $e)
                {
                    
    $productLinkParams xtc_product_link($GLOBALS['actual_products_id'], '''',
                                                          
    $_SESSION['languages_id']);
                }
                
                
    $url xtc_href_link(FILENAME_DEFAULT$productLinkParams);
            }
            
            if(
    $robots === 'index,follow' && $activeCodes->count() > 1)
            {
                foreach(
    $activeCodes as $code)
                {
                    
    $langCode   = new LanguageCode(new StringType($code->asString()));
                    
    $languageId $languageProvider->getIdByCode($langCode);
                    
                    if(
    $languageId != $_SESSION['languages_id'])
                    {
                        if(
    $seoBoost->boost_products)
                        {
                            
    $altUrl xtc_href_link($seoBoost->get_boosted_product_url($GLOBALS['actual_products_id'], '',
                                                                                       
    $languageId));
                        }
                        else
                        {
                            try
                            {
                                
    $productLinkParams xtc_product_link($GLOBALS['actual_products_id'],
                                                                      
    $product->getName($langCode),
                                                                      
    $product->getUrlKeywords($langCode), $languageId);
                            }
                            catch(
    InvalidArgumentException $e)
                            {
                                continue;
                            }
                            
                            
    $altUrl xtc_href_link(FILENAME_DEFAULT$productLinkParams);
                        }
                                            
                        if(
    $altUrl !== $url)
                        {
                            
                            if(
    $html === '')
                            {
                                
    $html .= htmlspecialchars($url);
                            }
                        }
                    }
                }
            }
        }
        elseif(isset(
    $_GET['cat']) && isset($GLOBALS['current_category_id']) && !empty($GLOBALS['current_category_id']))
        {
            
    /** @var CategoryReadService $categoryReadService */
            
    $categoryReadService StaticGXCoreLoader::getService('CategoryRead');
            
    $category            $categoryReadService->getCategoryById(new IdType((int)$GLOBALS['current_category_id']));
            
            if(
    $seoBoost->boost_categories)
            {
                
    $url xtc_href_link($seoBoost->get_boosted_category_url($GLOBALS['current_category_id']));
            }
            else
            {
                try
                {
                    
    $categoryLinkParams xtc_category_link($GLOBALS['current_category_id'],
                                                            
    $category->getName($languageCode),
                                                            
    $category->getUrlKeywords($languageCode),
                                                            
    $_SESSION['languages_id']);
                }
                catch(
    InvalidArgumentException $e)
                {
                    
    $categoryLinkParams xtc_category_link($GLOBALS['current_category_id'], ''''
                                                            
    $_SESSION['languages_id']);
                }
                
                
    $url xtc_href_link(FILENAME_DEFAULT$categoryLinkParams);
            }
            
            if(
    $robots === 'index,follow' && $activeCodes->count() > 1)
            {
                foreach(
    $activeCodes as $code)
                {
                    
    $langCode   = new LanguageCode(new StringType($code->asString()));
                    
    $languageId $languageProvider->getIdByCode($langCode);
                    
                    if(
    $languageId != $_SESSION['languages_id'])
                    {
                        if(
    $seoBoost->boost_categories)
                        {
                            
    $altUrl xtc_href_link($seoBoost->get_boosted_category_url($GLOBALS['current_category_id'],
                                                                                        
    $languageId));
                        }
                        else
                        {
                            try
                            {
                                
    $categoryLinkParams xtc_category_link($GLOBALS['actual_products_id'],
                                                                        
    $category->getName($langCode),
                                                                        
    $category->getUrlKeywords($langCode), $languageId);
                            }
                            catch(
    InvalidArgumentException $e)
                            {
                                continue;
                            }
                            
                            
    $altUrl xtc_href_link(FILENAME_DEFAULT$categoryLinkParams);
                        }
                        
                        
                        if(
    $altUrl !== $url)
                        {
                            if(
    $html === '')
                            {
                                
    $html .= htmlspecialchars($url);
                            }
                                                
                        }
                    }
                }
            }
            
        }
        elseif(isset(
    $_GET['coID']) && $activeCodes->count() > 1)
        {
            
    $coID = (int)$_GET['coID'];
            
            if(
    $seoBoost->boost_content)
            {
                
    $contentId $seoBoost->get_content_id_by_content_group($coID);
                
    $url       xtc_href_link($seoBoost->get_boosted_content_url($contentId));
            }
            else
            {
                
    $url xtc_href_link(FILENAME_CONTENT'coID=' $coID);
            }
            
            if(
    $robots === 'index,follow' && $activeCodes->count() > 1)
            {
                foreach(
    $activeCodes as $code)
                {
                    
    $langCode   = new LanguageCode(new StringType($code->asString()));
                    
    $languageId $languageProvider->getIdByCode($langCode);
                    
                    if(
    $languageId != $_SESSION['languages_id'])
                    {
                        if(
    $seoBoost->boost_content)
                        {
                            
    $contentId $seoBoost->get_content_id_by_content_group($coID$languageId);
                            
    $altUrl    xtc_href_link($seoBoost->get_boosted_content_url($contentId$languageId));
                        }
                        else
                        {
                            
    $altUrl xtc_href_link(FILENAME_CONTENT'coID=' $coID);
                        }
                                            
                        
                        if(
    $altUrl !== $url)
                        {
                            if(
    $html === '')
                            {
                                
    $html .= htmlspecialchars($url);
                            }
                                                             
                        }
                    }
                }
            }
        }


         
    //$this->html_output_array['alternateurlcheck'] = $html;

        
    return $html;
        
        

    Edit:
    Das einzige Problem hierbei noch ist, SEO. Denn dynamische Parameter hat google nicht gerne.
    Aber jene betroffenen Seiten bis auf der Startseite sind für Google sowieso nicht relevant. Somit sollte man am besten die Startseite mit .htaccess umschreiben.

Ähnliche Themen

  1. Kleinunternehmerregelung funktioniert nicht
    Von toto666 im Forum Gambio GX Adminbereich
    Antworten: 2
    Letzter Beitrag: 12.07.2014, 19:10
  2. Antworten: 4
    Letzter Beitrag: 06.03.2014, 16:48
  3. Marketing - Bereich funktioniert nicht
    Von v-sand im Forum Gambio GX Adminbereich
    Antworten: 7
    Letzter Beitrag: 06.03.2014, 06:20
  4. Antworten: 5
    Letzter Beitrag: 26.02.2013, 17:54

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •